Sha256: dce4a96ea899aee10fd7193b29c2feae518ad94ca42e81a9af9fe36c8101d6e2
Contents?: true
Size: 1.36 KB
Versions: 3
Compression:
Stored size: 1.36 KB
Contents
module PolishInvoicer class Presenter attr_accessor :invoice def initialize(invoice) @invoice = invoice @out = {} end def data copy_available_params remove_redundand_params copy_additional_params format_dates format_prices format_comments format_vat @out end private def copy_available_params Invoice::AVAILABLE_PARAMS.each do |field| @out[field] = @invoice.send(field) end end def remove_redundand_params @out.delete(:price) end def copy_additional_params %w[net_value vat_value gross_value exchanged_tax].each do |field| @out[field.to_sym] = @invoice.send(field) end end def format_dates %w[trade_date create_date payment_date].each do |field| v = @invoice.send(field) next unless v @out[field.to_sym] = v.strftime '%d.%m.%Y' end end def format_prices %w[net_value vat_value gross_value exchanged_tax total_to_pay_value paid_value to_pay_value].each do |field| v = @invoice.send(field) next unless v @out[field.to_sym] = sprintf('%02.2f', v).tr('.', ',') end end def format_comments @out[:comments] = [@invoice.comments].flatten.compact end def format_vat @out[:vat] = Vat.to_s(@invoice.vat) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
polish_invoicer-0.0.26 | lib/polish_invoicer/presenter.rb |
polish_invoicer-0.0.25 | lib/polish_invoicer/presenter.rb |
polish_invoicer-0.0.24 | lib/polish_invoicer/presenter.rb |