class Skr::InvLine

Private Instance Methods

adjust_inventory() click to toggle source
# File lib/skr/inv_line.rb, line 66
def adjust_inventory
    debit  = self.sku.gl_asset_account
    credit = self.invoice.customer.gl_receivables_account
    if self.sku.does_track_inventory?
        self.build_sku_tran({
            origin: self, qty: self.qty*-1, sku_loc: self.sku_loc, uom: self.uom,
            mac: 0, cost: self.extended_price,
            origin_description: "INV #{self.invoice.visible_id}:#{self.sku.code}",
            debit_gl_account:  debit, credit_gl_account: credit
        })
    else
        GlTransaction.push_or_save(
          owner: self, amount: self.total,
          debit: debit, credit: credit
        )
    end
    true
end
set_defaults() click to toggle source
# File lib/skr/inv_line.rb, line 42
        def set_defaults
#           puts "set_defaults #{self}"
            line = [ self.pt_line, self.so_line ].detect{ |l| ! l.blank? }
            if line
                self.uom         = line.uom if self.uom.blank?
                self.sku_code    ||= line.sku_code
                self.description ||= line.description
                self.sku_loc     ||= line.sku_loc
                self.qty         ||= line.qty
                self.so_line     ||= line.so_line
            elsif sku
                self.uom           = sku.uoms.default if self.uom_code.blank?
                self.sku_code    ||= sku.code
                self.description ||= sku.description
                self.sku_loc_id  ||= sku.sku_locs.for_location( self.invoice.location ).id if self.invoice && self.invoice.location
            end
            if !price && invoice && invoice.customer && sku_loc && uom.present?
                self.price = Core.config.pricing_provider.price(
                  sku_loc:sku_loc,  customer:invoice.customer,
                  uom:uom, qty: qty )
            end
            true
        end