Skip to content

Instantly share code, notes, and snippets.

@airspeed
airspeed / resque.rb
Last active December 14, 2015 15:19
Resque tests.
class Job1
@queue = :tests
def self.perform(msg)
puts msg
end
end
#Resque.enqueue(Job1, Time.now.to_i.to_s)
@airspeed
airspeed / export_m2.rb
Last active December 15, 2015 06:59
Erstellt eine CSV-Darstellung aller Rechnungen im Status :m2.
def report_per_status(status)
include ActionView::Helpers::NumberHelper
m2list = Invoice.where(:state => status.to_s)
m2list.each do |r|
puts r.invoice_number + ";" + I18n.l(r.created_at.to_date) + ";" + number_with_precision(r.order_cart.final_amount) + ";5,00"
end
end
# usage report_per_status(:m2)
def ink_report
@airspeed
airspeed / trennzeichen.rb
Last active December 16, 2015 01:39
Prüft ob die angegebene Zeichenkette eine Nummer darstellt, die ein Komma als Trennzeichen für Nachkommastellen aufweist ( Rückgabewert 0 ), ein Punkt ( Rückgabewert 1 ) oder etwas anderes ( Rückgabewert -1 ).
def trennzeichen(formatted_number)
raise ArgumentError unless formatted_number.is_a?(String)
return -1 if formatted_number.split(",").count == 1 && formatted_number.split(".").count == 1 # nix
return 0 if formatted_number.split(",").count > 1 && formatted_number.split(".").count == 1 # bloß Komma
return 1 if formatted_number.split(".").count > 1 && formatted_number.split(",").count == 1 # bloß Punkt
# Gibt's beides, ein Komma UND einen Punkt?
teile = formatted_number.split(",").map { |teil|
@airspeed
airspeed / render.rb
Last active December 16, 2015 06:49
Gibt die HTML-Darstellung eines Mahndokumentes zurück.
def render_invoice(invoice)
i = invoice
o = i.order_cart
l = i.customer.lang[0..1].downcase === 'de' ? 'de' : 'en' # unoptimal, reicht aber im Augenblick
params = {:@invoice_address => o.invoice_address, :@order_cart => o, :@shipments => o.shipments, :@invoice => i, :@filedate => Date.today}
Clixxie::PdfGenerator.render_erb "invoice_mailer/invoice_#{l}.pdf.erb", params
end
# usage render_invoice(Invoice.last)
@airspeed
airspeed / roo.rb
Last active December 16, 2015 19:08
Durchläuft eine XSLX Datei mit roo.
def perform(timestamp, settings)
Dir.glob(Pathname.new(settings["in"]).join(settings["format"]).to_s).each do |filename|
xlsx_name = Pathname.new(settings["in"]).join("#{File.basename(filename, ".*")}.xlsx").to_s
FileUtils.mv(filename, xlsx_name)
xls = Roo::Spreadsheet.open(xlsx_name)
sh = xls.sheet(0)
CSV.open(filename, "w", {:col_sep => "\t"}) do |csv|
(0..sh.last_row).each do |rn|
row = sh.row(rn)
next if (/\d{4}-\d{2}-\d{2}|Beleg.+/).match(row[0].to_s).nil?
package week5
object higherOrderListFunctions {
val l: List[Int] = new Cons[Int](5, Nil) //> l : week5.List[Int] = 5,.
l.head //> res0: Int = 5
l.tail //> res1: week5.List[Int] = .
l.map(x => x * 2).head //> res2: Int = 10
def squareList1(xs: List[Int]): List[Int] = xs match {
case Nil => Nil
@airspeed
airspeed / schweizer_bestellte_anzahl.rb
Last active December 18, 2015 10:09
Schweizer bestellte Anzahl mit Datumfilter.
OrderItem.where(:created_at => Date.parse('2013-04-01')..Date.parse('2013-07-31')).select{|b| b.address.country_code == "CH"}.map(&:quantity).sum
# noch flexibler
OrderItem.where(:created_at => Date.parse('2013-04-01')..Date.today).select{|b| b.address.country_code == "CH"}.map(&:quantity).sum
@airspeed
airspeed / t-online.rb
Last active December 18, 2015 15:39
Schickt an alle T-Online Kunden ihre Bestellbestätigung und Rechnung wieder, die sie wohl aufgrund unserer Blacklistung bei der Telekom nicht erhalten haben.
def t_online(filename)
File.foreach(filename) do |f|
InvoiceMailer.sent_order_confirmation(Customer.where(:email => f.squish).first.order_carts.last).deliver
InvoiceMailer.sent_invoice(Customer.where(:email => f.squish).first.order_carts.last.invoices.last).deliver
end
end
@airspeed
airspeed / quadra.rb
Last active December 19, 2015 06:09
Liest alle Bestellungen aus der Datenbank heraus, die nach Überfälligkeit zu überprüfen sind.
OrderItem.where( :state => Settings.shipping.timeplan.keys, :created_at => Date.today - 1.year .. Date.tomorrow - Settings.shipping.timeplan.values.min )
@airspeed
airspeed / shipment_success.rb
Last active December 19, 2015 07:29
Versendet die Rechnungen an den Kunden, wenn die erste der Lieferungen, worauf sich dieselbe Rechnung bezieht, erfolgt.
# Shipment.rb
InvoiceMailer.sent_invoice(self.order_cart.invoices.last).deliver if self.order_cart.shipments.one?{|s| s.state == 'shipped'}
InvoiceMailer.sent_invoice(self.order_cart.invoices.last).deliver if self.order_cart.order_items.one?{|b| b.state == 'done'}