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