class YDIM::Html::State::Invoice
Constants
- VIEW
Attributes
model[R]
Public Instance Methods
_do_update()
click to toggle source
# File lib/ydim/html/state/invoice.rb, line 142 def _do_update if((id = @session.user_input(:unique_id)) \ && @model.unique_id == id.to_i) ## update items keys = [:text, :quantity, :unit, :price] data = {} user_input(keys).each { |key, hash| hash.each { |idx, value| (data[idx] ||= {}).store(key, value) } unless hash.nil? } target = origin = nil converter = if((target = @session.user_input(:currency)) \ && (origin = @model.currency) \ && origin != target) @session.currency_converter end data.each { |idx, item| if(converter) item[:price] = converter.convert(item[:price], origin, target) end @session.update_item(id.to_i, idx.to_i, item, invoice_key) } _do_update_invoice(user_input(invoice_keys, invoice_mandatory)) @model.update! ## @model is a SortableInvoice @model.odba_store end end
_do_update_invoice(input)
click to toggle source
# File lib/ydim/html/state/invoice.rb, line 171 def _do_update_invoice(input) input[:precision] = (input[:precision] || 2).to_i input.each { |key, val| @model.send("#{key}=", val) } end
ajax_create_item()
click to toggle source
# File lib/ydim/html/state/invoice.rb, line 85 def ajax_create_item if(id = @session.user_input(:unique_id)) begin @session.add_items(id.to_i, [{:time => Time.now}], invoice_key) rescue IndexError end @model.update! ## @model is a SortableInvoice end AjaxItems.new(@session, @model.items) end
ajax_delete_item()
click to toggle source
# File lib/ydim/html/state/invoice.rb, line 95 def ajax_delete_item if((id = @session.user_input(:unique_id)) \ && (idx = @session.user_input(:index))) begin @session.delete_item(id.to_i, idx.to_i, invoice_key) rescue IndexError end @model.update! ## @model is a SortableInvoice end AjaxItems.new(@session, @model.items) end
ajax_invoice()
click to toggle source
# File lib/ydim/html/state/invoice.rb, line 125 def ajax_invoice _do_update AjaxInvoice.new(@session, @model) end
ajax_item()
click to toggle source
# File lib/ydim/html/state/invoice.rb, line 106 def ajax_item data = {} if((id = @session.user_input(:unique_id)) \ && (idx = @session.user_input(:index))) begin keys = [:text, :quantity, :unit, :price] input = user_input(keys).delete_if { |key, val| val.nil? } item = @session.update_item(id.to_i, idx.to_i, input, invoice_key) input.each { |key, val| data.store("#{key}[#{item.index}]", val) } data.store("total_netto#{item.index}", item.total_netto) rescue IndexError end end [:total_netto, :vat, :total_brutto].each { |key| data.store(key, @model.send(key)) } AjaxValues.new(@session, data) end
init()
click to toggle source
Calls superclass method
# File lib/ydim/html/state/invoice.rb, line 81 def init @model = SortableInvoice.new @model super end
pdf()
click to toggle source
Calls superclass method
YDIM::Html::State::Global#pdf
# File lib/ydim/html/state/invoice.rb, line 129 def pdf newstate = super newstate.sortby, newstate.sort_reverse = @sortby, @sort_reverse newstate end
send_invoice()
click to toggle source
Calls superclass method
YDIM::Html::State::Global#send_invoice
# File lib/ydim/html/state/invoice.rb, line 134 def send_invoice _do_update super end
update()
click to toggle source
# File lib/ydim/html/state/invoice.rb, line 138 def update _do_update self end