46 lines
1.2 KiB
Ruby
Executable File
46 lines
1.2 KiB
Ruby
Executable File
class SaleOrder < ApplicationRecord
|
|
self.primary_key = "sale_order_id"
|
|
|
|
#primary key - need to be unique generated for multiple shops
|
|
before_create :generate_sale_order_id
|
|
|
|
belongs_to :sale
|
|
belongs_to :order
|
|
|
|
def create_sale_order(sale, order)
|
|
sale_order = SaleOrder.new
|
|
sale_order.sale_id = sale
|
|
sale_order.order_id = order
|
|
sale_order.save!
|
|
end
|
|
|
|
def self.sync_sale_order_records(sale_orders)
|
|
if !sale_orders.nil?
|
|
sale_orders.each do |so|
|
|
sale_order = SaleOrder.find_by_sale_order_id(so['sale_order_id'])
|
|
# unless SaleOrder.exists?(so['sale_order_id'])
|
|
if sale_order.nil?
|
|
sale_order = SaleOrder.new
|
|
end
|
|
sale_order.sale_order_id = so['sale_order_id']
|
|
sale_order.sale_id = so['sale_id']
|
|
sale_order.order_id = so['order_id']
|
|
sale_order.save
|
|
end
|
|
puts '......... Sale Order sync completed ........'
|
|
end
|
|
end
|
|
|
|
private
|
|
def generate_sale_order_id
|
|
prefix = "SOI"
|
|
if ENV["SERVER_MODE"] == 'cloud'
|
|
prefix = "CSOI"
|
|
end
|
|
|
|
self.class.name
|
|
saleOrderId = SeedGenerator.generate_id(self.class.name, prefix)
|
|
self.sale_order_id = saleOrderId
|
|
end
|
|
end
|