Sha256: d9fe689367af0b9b34ae1194e49d3b00501477c8fc57b18d65deb42a6c7eab13
Contents?: true
Size: 1.68 KB
Versions: 94
Compression:
Stored size: 1.68 KB
Contents
module Comee module Core class PurchaseRequisitionItem < ApplicationRecord before_save :calculate_total_price after_save :calculate_requisition_price after_save :update_requisition_purchase_status, if: proc { |item| item.fully_processed? } enum processing_status: {unprocessed: 0, partially_processed: 1, fully_processed: 2} belongs_to :product belongs_to :unit belongs_to :supplier belongs_to :purchase_requisition belongs_to :purchase_order_item, optional: true validates :processing_status, :delivery_date, presence: true validates :quantity, :price, presence: true, numericality: {greater_than_or_equal_to: 0} def calculate_total_price self.total_price = price * quantity end def calculate_requisition_price purchase_requisition.total_price = purchase_requisition.calculate_total_price purchase_requisition.save! end def update_requisition_purchase_status return unless purchase_requisition.purchase_requisition_items.all.all?(&:fully_processed?) purchase_requisition.purchase_status = PurchaseRequisition.purchase_statuses[:processed] purchase_requisition.save! end def self.ransackable_attributes(_auth_object = nil) %w[ delivery_date id price processing_status product_id purchase_order_item_id purchase_requisition_id quantity supplier_id total_price unit_id created_at updated_at ] end def self.ransackable_associations(_auth_object = nil) [] end end end end
Version data entries
94 entries across 94 versions & 1 rubygems