class YDIM::RootSession
Attributes
client[RW]
serv[RW]
Public Class Methods
new(user)
click to toggle source
# File lib/ydim/root_session.rb, line 15 def initialize(user) @user = user end
Public Instance Methods
add_items(invoice_id, items, invoice_key=:invoice)
click to toggle source
# File lib/ydim/root_session.rb, line 18 def add_items(invoice_id, items, invoice_key=:invoice) @serv.logger.debug(whoami) { size = (items.respond_to?(:size)) ? items.size : nil "add_items(#{invoice_id}, #{items.class}[#{size}], #{invoice_key})" } invoice = self.send(invoice_key, invoice_id) rate = invoice.suppress_vat ? 0 : @serv.config.vat_rate items.each { |data| item = Item.new({:vat_rate => rate}.update(data)) invoice.add_item(item) } invoice.odba_store invoice.items end
autoinvoice(invoice_id)
click to toggle source
# File lib/ydim/root_session.rb, line 31 def autoinvoice(invoice_id) @serv.logger.debug(whoami) { "autoinvoice #{invoice_id}" } AutoInvoice.find_by_unique_id(invoice_id.to_s) \ or begin msg = "invalid invoice_id: #{invoice_id}" @serv.logger.error(whoami) { msg } raise IndexError, msg end end
autoinvoices()
click to toggle source
# File lib/ydim/root_session.rb, line 91 def autoinvoices @serv.logger.debug(whoami) { "autoinvoices" } if @serv && @serv.respond_to?(:logger) AutoInvoice.odba_extent end
collect_garbage(debitor_id=nil)
click to toggle source
# File lib/ydim/root_session.rb, line 40 def collect_garbage(debitor_id=nil) @serv.logger.info(whoami) { "collect_garbage" } deleted = [] Invoice.odba_extent { |inv| if([nil, inv.debitor_id].include?(debitor_id) && inv.deleted) deleted.push(inv.info) inv.odba_delete end } deleted unless(deleted.empty?) end
create_autoinvoice(debitor_id)
click to toggle source
# File lib/ydim/root_session.rb, line 51 def create_autoinvoice(debitor_id) @serv.logger.debug(whoami) { "create_autoinvoice(#{debitor_id})" } ODBA.transaction { @serv.factory.create_autoinvoice(debitor(debitor_id)) } end
create_debitor()
click to toggle source
# File lib/ydim/root_session.rb, line 57 def create_debitor @serv.logger.info(whoami) { "create_debitor" } ODBA.transaction { id = @serv.id_server.next_id(:debitor) Debitor.new(id).odba_store } end
create_invoice(debitor_id)
click to toggle source
# File lib/ydim/root_session.rb, line 64 def create_invoice(debitor_id) @serv.logger.debug(whoami) { "create_invoice(#{debitor_id})" } ODBA.transaction { @serv.factory.create_invoice(debitor(debitor_id)) } end
currency_converter()
click to toggle source
# File lib/ydim/root_session.rb, line 70 def currency_converter @serv.logger.debug(whoami) { "currency_converter" } @serv.currency_converter.drb_dup end
debitor(debitor_id)
click to toggle source
# File lib/ydim/root_session.rb, line 74 def debitor(debitor_id) @serv.logger.debug(whoami) { "debitor #{debitor_id}" } Debitor.find_by_unique_id(debitor_id.to_s)\ or begin msg = "invalid debitor_id: #{debitor_id}" @serv.logger.error(whoami) { msg } raise IndexError, msg end end
debitors()
click to toggle source
# File lib/ydim/root_session.rb, line 83 def debitors @serv.logger.debug(whoami) { "debitors" } if @serv && @serv.respond_to?(:logger) Debitor.odba_extent end
delete_autoinvoice(invoice_id)
click to toggle source
# File lib/ydim/root_session.rb, line 95 def delete_autoinvoice(invoice_id) @serv.logger.debug(whoami) { "delete_autoinvoice(#{invoice_id})" } if(invoice = autoinvoice(invoice_id)) invoice.odba_delete end end
delete_item(invoice_id, index, invoice_key=:invoice)
click to toggle source
# File lib/ydim/root_session.rb, line 102 def delete_item(invoice_id, index, invoice_key=:invoice) @serv.logger.debug(whoami) { "delete_item(#{invoice_id}, #{index}, #{invoice_key})" } invoice = self.send(invoice_key, invoice_id) invoice.items.delete_if { |item| item.index == index } invoice.odba_store invoice.items end
generate_invoice(invoice_id)
click to toggle source
# File lib/ydim/root_session.rb, line 110 def generate_invoice(invoice_id) @serv.logger.info(whoami) { "generate_invoice(#{invoice_id})" } invoice = autoinvoice(invoice_id) AutoInvoicer.new(@serv).generate(invoice) end
invoice(invoice_id)
click to toggle source
# File lib/ydim/root_session.rb, line 115 def invoice(invoice_id) @serv.logger.debug(whoami) { "invoice #{invoice_id}" } Invoice.find_by_unique_id(invoice_id.to_s) \ or begin msg = "invalid invoice_id: #{invoice_id}" @serv.logger.error(whoami) { msg } raise IndexError, msg end end
invoice_infos(status=nil)
click to toggle source
# File lib/ydim/root_session.rb, line 124 def invoice_infos(status=nil) @serv.logger.debug(whoami) { "invoice_infos(#{status})" } Invoice.search_by_status(status).collect { |inv| inv.info } end
invoices()
click to toggle source
# File lib/ydim/root_session.rb, line 87 def invoices @serv.logger.debug(whoami) { "invoices" } if @serv && @serv.respond_to?(:logger) Invoice.odba_extent end
search_debitors(email_or_name)
click to toggle source
# File lib/ydim/root_session.rb, line 128 def search_debitors(email_or_name) @serv.logger.debug(whoami) { "search_debitors(#{email_or_name})" } Debitor.search_by_exact_email(email_or_name) | Debitor.search_by_exact_name(email_or_name) end
send_invoice(invoice_id, sort_args={})
click to toggle source
# File lib/ydim/root_session.rb, line 133 def send_invoice(invoice_id, sort_args={}) @serv.logger.info(whoami) { "send_invoice(#{invoice_id})" } Mail.send_invoice(@serv.config, invoice(invoice_id), sort_args) end
update_item(invoice_id, index, data, invoice_key=:invoice)
click to toggle source
# File lib/ydim/root_session.rb, line 137 def update_item(invoice_id, index, data, invoice_key=:invoice) @serv.logger.debug(whoami) { "update_item(#{invoice_id}, #{index}, #{data.inspect})" } invoice = self.send(invoice_key, invoice_id) item = invoice.item(index) item.update(data) invoice.odba_store item end
whoami()
click to toggle source
# File lib/ydim/root_session.rb, line 146 def whoami @user.unique_id.to_s end