Last active
May 15, 2017 09:03
-
-
Save airspeed/5c93849edefc0412fa99b11704016fd5 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=begin | |
Hey Francesco, | |
wir würden gerne für den Muttertag ein kleines Reporting machen. | |
Hättest du Montag oder Anfang nächster Woche ein wenig Zeit dafür. | |
Uns würde interessieren wie viele Orders waren Neukunden/Erstbestellung und wie viele Wiederkäufer | |
Einmal zu den Vouchern und einmal gesamt über den Zeitraum alle Fotobuch Orders vom 21.04.2017 - 14.05.2017 | |
Voucher | |
Fine | |
Marry | |
Eva | |
Ines | |
Andrea | |
Resi | |
Isabell | |
Anna | |
Annanas | |
Shopaholic | |
Lena | |
thanksmom | |
Muttertag17 | |
Mum17 | |
Mum2017 | |
=end | |
def fb144 | |
out = [] | |
out_csv = [] | |
# A) gesamt über den Zeitraum alle Fotobuch Orders vom 21.04.2017 - 14.05.2017 | |
out << "====================================================================================================" | |
out << "A) gesamt über den Zeitraum alle Fotobuch Orders vom 21.04.2017 - 14.05.2017" | |
out << "====================================================================================================" | |
# 1. wie viele Orders waren Neukunden | |
out << "----------------------------------------" | |
out << "1. wie viele Orders waren Neukunden" | |
out << "----------------------------------------" | |
out << Order.where( :created_at => Date.parse( '2017-04-21' ) .. Date.parse( '2017-05-14' ), :state => :printed.to_s ) | |
.select{ | w | w.user.orders.where( :state => :printed.to_s ).first.id == w.id if w.user }.count | |
# 2. wie viele Orders waren Wiederkäufer | |
out << "----------------------------------------" | |
out << "2. wie viele Orders waren Wiederkäufer" | |
out << "----------------------------------------" | |
out << Order.where( :created_at => Date.parse( '2017-04-21' ) .. Date.parse( '2017-05-14' ), :state => :printed.to_s ) | |
.select{ | w | w.user.orders.where( :state => :printed.to_s ).first.id != w.id if w.user }.count | |
# B) zu den Vouchern | |
out << "====================================================================================================" | |
out << "B) zu den Vouchern" | |
out << "====================================================================================================" | |
voucher_codes = [ | |
'Fine', | |
'Marry', | |
'Eva', | |
'Ines', | |
'Andrea', | |
'Resi', | |
'Isabell', | |
'Anna', | |
'Annanas', | |
'Shopaholic', | |
'Lena', | |
'thanksmom', | |
'Muttertag17', | |
'Mum17', | |
'Mum2017' | |
] | |
gs = Voucher.where( :code => voucher_codes ) | |
gs.each do | g | | |
out << "*************************" | |
out << "Voucher code #{ g.code }:" | |
out << "*************************" | |
# 1. wie viele Orders waren Neukunden | |
out << "----------------------------------------" | |
out << "1. wie viele Orders waren Neukunden" | |
out << "----------------------------------------" | |
v1 = Order.where( :voucher_id => g.id, :state => :printed.to_s ) | |
.select{ | w | w.user.orders.where( :state => :printed.to_s ).first.id == w.id if w.user }.count | |
out << v1 | |
# 2. wie viele Orders waren Wiederkäufer | |
out << "----------------------------------------" | |
out << "2. wie viele Orders waren Wiederkäufer" | |
out << "----------------------------------------" | |
v2 = Order.where( :voucher_id => g.id, :state => :printed.to_s ) | |
.select{ | w | w.user.orders.where( :state => :printed.to_s ).first.id != w.id if w.user }.count | |
out << v2 | |
out_csv << [ g.code, v1, v2 ] | |
end | |
out << "" | |
print_result( out ) | |
out << "" | |
print_csv( out_csv ) | |
out << "" | |
0 | |
end | |
def print_result( result ) | |
result.each do | s | | |
puts s | |
end | |
0 | |
end | |
def print_csv( result_csv ) | |
out = [] | |
result_csv.each do | row | | |
out << row.join( ',' ) | |
end | |
puts 'Code,Erstbesteller,Wiederkäufer' | |
out.each do | row | | |
puts row | |
end | |
0 | |
end | |
# fb144 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment