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