class Skr::PtLine

Attributes

qty_to_ship[RW]

Public Instance Methods

cancel!() click to toggle source
# File lib/skr/pt_line.rb, line 25
def cancel!
    self.update_attributes! :is_complete=>true
    self.pick_ticket.maybe_cancel
end
is_invoiceable?() click to toggle source
# File lib/skr/pt_line.rb, line 30
def is_invoiceable?
    ! self.is_complete? && self.qty_to_ship.to_i > 0
end
total() click to toggle source
# File lib/skr/pt_line.rb, line 34
def total
    self.price * ( self.qty_to_ship || self.qty )
end

Private Instance Methods

set_defaults() click to toggle source
# File lib/skr/pt_line.rb, line 44
def set_defaults

    if self.so_line.blank?
        self.so_line = self.pick_ticket.sales_order.lines.where({ sku_loc_id: self.sku_loc_id }).first
    end

    if self.so_line.blank?
        self.so_line = self.pick_ticket.sales_order.lines.create({
            sku_loc: self.sku_loc, qty: self.qty, price: self.price,
            uom: self.uom, description: self.description
        })
        unless self.so_line.valid?
            self.errors.add(:so_line, "cannot be created because #{self.so_line.errors.full_messages.join(', ')}" )
            return false
        end
    end

    self.sku_loc     ||= so_line.sku_loc
    self.bin         ||= sku_loc.bin
    self.price       ||= so_line.price
    self.sku_code    = sku_loc.sku.code    if self.sku_code.blank?
    self.description = so_line.description if self.description.blank?
    self.uom         = so_line.uom         if self.uom.blank?
    true
end
update_from_inv_line( inv_line ) click to toggle source
# File lib/skr/pt_line.rb, line 40
def update_from_inv_line( inv_line )
    self.update_attributes( qty_invoiced: inv_line.qty )
end