This file contains 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
# Replays one order. | |
# @param order_cart_id int | |
# @return order_cart_id of the duplicate | |
# @see To be launched on vps-api-* | |
def duplicate_order(order_cart_id) | |
# 1. Datensammlung | |
o = Order.find(order_cart_id) | |
is = o.order_items | |
nis = [] |
This file contains 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
POLAPIX_PRODUCT_CODES = [ "CLXPXS1F", "CLXPXS2F", "CLXPXS3F" ] | |
POLAPIX_CALENDAR_PRODUCT_CODES = ["CLXPXK01", "CLXPXK03"] | |
POLAPIX_INVITATION_SET_PRODUCT_CODE = "CLXPXST1" | |
POLAPIX_BOX_SET_PRODUCT_CODES = ["CLXPXST2", "CLXPXST3"] | |
# string product_code - see list under. | |
# Date start_date - mit in den Report eingeschlossen | |
# Date end_date - nicht mit in den Report eingeschlossen | |
# string path - der User muss schreibberechtigt darauf sein | |
def make_bosch_stats( product_code, timespan, path ) |
This file contains 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
def make_stats( from_date, to_date = Date.today.to_s, products = [ 'CLXB5S1Q', 'CLXB5S2Q' ] ) | |
stats = [] | |
t0 = Date.parse( from_date ) | |
t1 = Date.parse( to_date ) | |
dt = t0 .. t1 | |
dt.each do | datum | | |
sdatum = I18n.l( datum, :locale => 'de' ) | |
os = Order.where( :created_at => datum .. datum + 1, :state => :printed.to_s ).map( &:id ) # Alle gedruckten Order im Zeitraum | |
ois = OrderItem.where( :order_id => os ) # Alle gedruckten OrderItem im Zeitraum | |
is = ois.where( :product_code => products ) # Alle gedruckten OrderItem mit Squarebüchern im Zeitraum |
This file contains 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
# Duplicates one order and delivers it to femory. | |
# @param order_cart_id int | |
# @return order_cart_id of the duplicate | |
# @see To be launched on vps-api-* | |
# 07.11.2013: Feste Rechnungsadresse für alle Nachdrucke. | |
def duplicate_order( order_cart_id, invoice_address_id = 38486 ) | |
# fotobuch-api-dev: 3, flexiphoto-api: 2388, flexiphoto-dev: 6556 | |
# 1. Datensammlung | |
o = Order.find( order_cart_id ) |
This file contains 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
User.group( :referrer_id ).having( "COUNT(*) > 2" ).count.sort_by{ |_key, value | value }.reduce( 0 ){ | memo, element | memo + ( element.second / 3 ).floor.to_i } |
This file contains 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
def weekly_polapix( start_date, end_date, classes ) | |
results = [] | |
results << "Week from #{ start_date } to #{ end_date }" | |
classes.each do | range | | |
n = Order.where( :state => :printed.to_s, :created_at => start_date .. end_date ).select{ | w | range.include?( w.order_items.map( &:quantity ).sum ) }.count | |
results << "#{ range }: #{ n }" | |
end | |
results | |
end | |
def auto_weekly_polapix( start_date = Date.today.beginning_of_week - 1.week, end_date = Date.today.beginning_of_week ) |
This file contains 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
# 2. Wieviele Polapix wurden im Schnitt bestellt? | |
# Note that / has higher precedence than |, @see also http://stackoverflow.com/q/21060234 | |
Voucher.all.map{ | g | [ g.code, Order.where( :voucher_id => g.id, :state => :printed.to_s ).map{ | w | w.order_items.map( &:quantity ).sum }.sum / ( Order.where( :voucher_id => g.id, :state => :printed.to_s ).count | 1 ) ] } | |
# 3. Wieviele Bilder wurden pro Kategorie (gemäß Aufsplittung von Julien - 1-3 bestellte Fotos, 4-6 bestellte Fotos, etc.) bestellt? | |
def class_voucher_detail( voucher_id, classes ) | |
results = [] | |
classes.each do | range | | |
n = Order.where( :state => :printed.to_s, :voucher_id => voucher_id ).select{ | w | range.include?( w.order_items.map( &:quantity ).sum ) }.count | |
results << "#{ range }: #{ n }" |
This file contains 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
def remove_from_mailchimp( date_from = Date.new, date_to = Date.tomorrow ) | |
c = Devise::Oauth2Providable::Client.where( :name => 'Playboy' ).last | |
os = Order.where( :client_id => c.id ) | |
ks = os.map( &:user ).uniq | |
ks_scoped = ks.select{ | k | k.created_at.to_date > date_from && k.created_at.to_date < date_to } | |
ks_nl = ks_scoped.select{ | k | k.newsletter } | |
ks_playboy = ks_nl.select{ | k | k.orders.map( &:client_id ).uniq.count == 1 }# playboy orders only | |
ks_playboy.map{ | k | k.newsletter = false; k.save } | |
puts ks_playboy.map{ | k | [ k.id, k.email, k.created_at.to_s, k.newsletter ] } | |
puts "#{ ks_playboy.count } playboy user unsubscribed." |
This file contains 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
q = Source.where( :code => 'telekom_mega_deal' ).last | |
gs = Voucher.where( :source_id => q.id ) # Deal2015 | |
ios = Order.where( :state => :printed.to_s, :voucher_id => gs, :client_id => 5 ).map( &:total_amount ).sum.to_f | |
android = Order.where( :state => :printed.to_s, :voucher_id => gs, :client_id => 4 ).map( &:total_amount ).sum.to_f | |
Order.where( :state => :printed.to_s, :voucher_id => gs, :client_id => 5 ).count | |
Order.where( :state => :printed.to_s, :voucher_id => gs ).select{ | w | w.user.orders.where( :state => :printed.to_s ).first.id == w.id if w.user | |
}.select{ | w | w.user.mobile_operator_id == 1 }.count | |
Order.where( :state => :printed.to_s, :voucher_id => gs ).select{ | w | w.user.orders.where( :state => :printed.to_s ).first.id != w.id if w.user | |
}.select{ | w | w.user.mobile_operator_id != 1 }.count | |
This file contains 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
Product.first.tap{ | p | p.price = 15 }.save |