sync data records
This commit is contained in:
@@ -4,7 +4,12 @@ class Api::SyncController < Api::ApiController
|
||||
# Here comes to save the sync records.
|
||||
Order.sync_order_records(params[:orders])
|
||||
OrderItem.sync_order_item_records(params[:order_items])
|
||||
|
||||
return true
|
||||
SaleOrder.sync_sale_order_records(params[:sale_orders])
|
||||
Sale.sync_sale_records(params[:sales])
|
||||
SaleItem.sync_sale_item_records(params[:sale_items])
|
||||
SaleAudit.sync_sale_audit_records(params[:sale_audits])
|
||||
SalePayment.sync_sale_payment_records(params[:sale_payments])
|
||||
SaleTax.sync_sale_tax_records(params[:sale_taxes])
|
||||
ShiftSale.sync_shift_sale_records(params[:shift_sale_records])
|
||||
end
|
||||
end
|
||||
@@ -71,7 +71,7 @@ authorize_resource :class => false
|
||||
end
|
||||
|
||||
def sync_data
|
||||
@orders, @order_items = Booking.get_sync_data(params[:sale_id])
|
||||
@orders, @order_items, @sales, @sale_items, @sale_taxes, @sale_payments, @sale_orders, @sale_audits, @shift_sales = Booking.get_sync_data(params[:sale_id])
|
||||
|
||||
# Here comes to call the sync api
|
||||
url = "http://192.168.1.176:3000/en/api/sync_data"
|
||||
@@ -79,7 +79,14 @@ authorize_resource :class => false
|
||||
begin
|
||||
@result = HTTParty.post(url.to_str,
|
||||
:body => { :orders => @orders,
|
||||
:order_items => @order_items
|
||||
:order_items => @order_items,
|
||||
:sale_orders => @sale_orders,
|
||||
:sale => @sales,
|
||||
:sale_items => @sale_items,
|
||||
:sale_audits => @sale_audits,
|
||||
:sale_payments => @sale_payments,
|
||||
:sale_taxes => @sale_taxes,
|
||||
:shift_sales => @shift_sales
|
||||
}.to_json,
|
||||
:headers => {
|
||||
'Content-Type' => 'application/json',
|
||||
@@ -105,8 +112,6 @@ authorize_resource :class => false
|
||||
|
||||
puts url
|
||||
puts response
|
||||
puts '########################'
|
||||
puts @result
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to '/en/reports/receipt_no/', notice: 'Sync Record Completed.'}
|
||||
|
||||
@@ -62,16 +62,30 @@ class Booking < ApplicationRecord
|
||||
|
||||
def self.get_sync_data(sale_id)
|
||||
@orders = Order.select('orders.*')
|
||||
.joins('left join booking_orders on booking_orders.order_id = orders.order_id')
|
||||
.joins('left join bookings on bookings.booking_id = booking_orders.booking_id')
|
||||
.where('bookings.sale_id=?', sale_id)
|
||||
.joins('left join sale_orders on sale_orders.order_id = orders.order_id')
|
||||
.where('sale_orders.sale_id=?', sale_id)
|
||||
|
||||
@order_items = OrderItem.select('order_items.*')
|
||||
.joins('left join booking_orders on booking_orders.order_id = order_items.order_id')
|
||||
.joins('left join bookings on bookings.booking_id = booking_orders.booking_id')
|
||||
.where('bookings.sale_id=?', sale_id)
|
||||
.joins('left join sale_orders on sale_orders.order_id = order_items.order_id')
|
||||
.where('sale_orders.sale_id=?', sale_id)
|
||||
|
||||
return @orders, @order_items
|
||||
@sales = Sale.where("sale_id=?", sale_id)
|
||||
|
||||
@sale_items = SaleItem.where("sale_id=?", sale_id)
|
||||
|
||||
@sale_taxes = SaleTax.where("sale_id=?", sale_id)
|
||||
|
||||
@sale_orders = SaleOrder.where("sale_id=?", sale_id)
|
||||
|
||||
@sale_audits = SaleAudit.where("sale_id=?", sale_id)
|
||||
|
||||
@sale_payments = SalePayment.where("sale_id=?", sale_id)
|
||||
|
||||
@shift_sales = ShiftSale.select('shift_sales.*')
|
||||
.joins('left join sales on sales.shift_sale_id = shift_sales.id')
|
||||
.where('sales.sale_id=?', sale_id)
|
||||
|
||||
return @orders, @order_items, @sales, @sale_items, @sale_taxes, @sale_payments, @sale_orders, @sale_audits, @shift_sales
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -27,6 +27,41 @@ class Sale < ApplicationRecord
|
||||
SALE_STATUS_OUTSTANDING = "outstanding"
|
||||
SALE_STATUS_COMPLETED = "completed"
|
||||
|
||||
def self.sync_sale_records(sales)
|
||||
if !sales.nil?
|
||||
sales.each do |s|
|
||||
unless Sale.exists?(s['sale_id'])
|
||||
sale = Sale.new
|
||||
sale.sale_id = s['sale_id']
|
||||
sale.cashier_id = s['cashier_id']
|
||||
sale.cashier_name = s['cashier_name']
|
||||
sale.requested_by = s['requested_by']
|
||||
sale.requested_at = s['requested_at']
|
||||
sale.receipt_no = s['receipt_no']
|
||||
sale.receipt_date = s['receipt_date']
|
||||
sale.customer_id = s['customer_id']
|
||||
sale.payment_status = s['payment_status']
|
||||
sale.sale_status = s['sale_status']
|
||||
sale.total_amount = s['total_amount']
|
||||
sale.discount_type = s['discount_type']
|
||||
sale.total_tax = s['total_tax']
|
||||
sale.total_discount = s['total_discount']
|
||||
sale.tax_type = s['tax_type']
|
||||
sale.grand_total = s['grand_total']
|
||||
sale.rounding_adjustment = s['rounding_adjustment']
|
||||
sale.amount_received = s['amount_received']
|
||||
sale.amount_changed = s['amount_changed']
|
||||
sale.shift_sale_id = s['shift_sale_id']
|
||||
sale.old_grand_total = s['old_grand_total']
|
||||
sale.rebate_status = s['rebate_status']
|
||||
sale.equal_persons = s['equal_persons']
|
||||
sale.save
|
||||
puts '........ Sale data has been created .......'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def generate_invoice_from_booking(booking_id, requested_by, cashier, order_source = nil)
|
||||
booking = Booking.find(booking_id)
|
||||
status = false
|
||||
|
||||
@@ -6,6 +6,26 @@ class SaleAudit < ApplicationRecord
|
||||
|
||||
belongs_to :sale
|
||||
|
||||
def self.sync_sale_audit_records(sale_audits)
|
||||
if !sale_audits.nil?
|
||||
sale_audits.each do |sa|
|
||||
unless SaleAudit.exists?(sa['sale_audit_id'])
|
||||
sale_audit = SaleAudit.new
|
||||
sale_audit.sale_audit_id = sa['sale_audit_id']
|
||||
sale_audit.sale_id = sa['sale_id']
|
||||
sale_audit.action = sa['action']
|
||||
sale_audit.action_at = sa['action_at']
|
||||
sale_audit.action_by = sa['action_by']
|
||||
sale_audit.approved_by = sa['approved_by']
|
||||
sale_audit.approved_at = sa['approved_at']
|
||||
sale_audit.remark = sa['remark']
|
||||
sale_audit.save
|
||||
puts '....... Sale Audit has been created .......'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.record_audit_void(sale_id, void_by, approved_by, reason)
|
||||
#sale_audit
|
||||
sale_audit = SaleAudit.new()
|
||||
|
||||
@@ -26,6 +26,34 @@ class SaleItem < ApplicationRecord
|
||||
end
|
||||
end
|
||||
|
||||
def self.sync_sale_item_records(sale_items)
|
||||
if !sale_items.nil?
|
||||
sale_items.each do |si|
|
||||
unless SaleItem.exists?(si['sale_item_id'])
|
||||
sale_item = SaleItem.new
|
||||
sale_item.sale_item_id = si['sale_item_id']
|
||||
sale_item.sale_id = si['sale_id']
|
||||
sale_item.menu_category_code = si['menu_category_code']
|
||||
sale_item.menu_category_name = si['menu_category_name']
|
||||
sale_item.product_code = si['product_code']
|
||||
sale_item.product_name = si['product_name']
|
||||
sale_item.product_alt_name = si['product_alt_name']
|
||||
sale_item.item_instance_code = si['item_instance_code']
|
||||
sale_item.account_id = si['account_id']
|
||||
sale_item.status = si['status']
|
||||
sale_item['remark'] = si['remark']
|
||||
sale_item['qty'] = si['qty']
|
||||
sale_item['unit_price'] = si['unit_price']
|
||||
sale_item['taxable_price'] = si['taxable_price']
|
||||
sale_item['price'] = si['price']
|
||||
sale_item['is_taxable'] = si['is_taxable']
|
||||
sale_item.save
|
||||
puts '....... Sale Item has been created ......'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.update_existing_item(qty, item, sale_id, type, item_price, price)
|
||||
# Original Item to add remark
|
||||
item.status = type
|
||||
|
||||
@@ -14,6 +14,21 @@ class SaleOrder < ApplicationRecord
|
||||
sale_order.save!
|
||||
end
|
||||
|
||||
def self.sync_sale_order_records(sale_orders)
|
||||
if !sale_orders.nil?
|
||||
sale_orders.each do |so|
|
||||
unless SaleOrder.exists?(so['sale_order_id'])
|
||||
sale_order = SaleOrder.new
|
||||
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
|
||||
puts '......... Sale Order has been created ........'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def generate_sale_order_id
|
||||
self.class.name
|
||||
|
||||
@@ -8,6 +8,25 @@ class SalePayment < ApplicationRecord
|
||||
|
||||
attr_accessor :received_amount, :card_payment_reference, :voucher_no, :giftcard_no, :customer_id, :external_payment_status,:action_by
|
||||
|
||||
def self.sync_sale_payment_records(sale_payments)
|
||||
if !sale_payments.nil?
|
||||
sale_payments.each do |sp|
|
||||
unless SalePayment.exists?(sp['sale_payment_id'])
|
||||
payment = SalePayment.new
|
||||
payment.sale_payment_id = sp['sale_payment_id']
|
||||
payment.sale_id = sp['sale_id']
|
||||
payment.payment_method = sp['payment_method']
|
||||
payment.payment_amount = sp['payment_amount']
|
||||
payment.outstanding_amount = sp['outstanding_amount']
|
||||
payment.payment_reference = sp['payment_reference']
|
||||
payment.payment_status = sp['payment_status']
|
||||
payment.save
|
||||
puts '....... Sale Payment has been created ......'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def process_payment(invoice, action_by, cash_amount, payment_method,remark=nil,payment_for=false)
|
||||
self.sale = invoice
|
||||
self.received_amount = cash_amount
|
||||
|
||||
@@ -5,6 +5,24 @@ class SaleTax < ApplicationRecord
|
||||
before_create :generate_custom_id
|
||||
belongs_to :sale
|
||||
|
||||
def self.sync_sale_tax_records(sale_taxes)
|
||||
if !sale_taxes.nil?
|
||||
sale_taxes.each do |t|
|
||||
unless SaleTax.exists?(t['sale_tax_id'])
|
||||
tax = SaleTax.new
|
||||
tax.sale_tax_id = t['sale_tax_id']
|
||||
tax.sale_id = t['sale_id']
|
||||
tax.tax_name = t['tax_name']
|
||||
tax.tax_rate = t['tax_rate']
|
||||
tax.tax_payable_amount = t['tax_payable_amount']
|
||||
tax.inclusive = t['inclusive']
|
||||
tax.save
|
||||
puts '...... Sale Tax has been created .....'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.get_tax(from,to)
|
||||
query = SaleTax.select("sale_taxes.tax_name,SUM(sale_taxes.tax_payable_amount) as tax_amount")
|
||||
.joins("join sales on sales.sale_id = sale_taxes.sale_id")
|
||||
|
||||
@@ -32,6 +32,42 @@ class ShiftSale < ApplicationRecord
|
||||
#end
|
||||
end
|
||||
|
||||
def self.sync_shift_sale_records(shift_sales)
|
||||
if !shift_sales.nil?
|
||||
shift_sales.each do |ss|
|
||||
unless ShiftSale.exists?(ss['id'])
|
||||
shift_sale = ShiftSale.new
|
||||
shift_sale.id = ss['id']
|
||||
shift_sale.cashier_terminal_id = ss['cashier_terminal_id']
|
||||
shift_sale.shift_started_at = ss['shift_started_at']
|
||||
shift_sale.shift_closed_at = ss['shift_closed_at']
|
||||
shift_sale.employee_id = ss['employee_id']
|
||||
shift_sale.opening_balance = ss['opening_balance']
|
||||
shift_sale.closing_balance = ss['closing_balance']
|
||||
shift_sale.total_revenue = ss['total_revenue']
|
||||
shift_sale.total_discounts = ss['total_discounts']
|
||||
shift_sale.total_taxes = ss['total_taxes']
|
||||
shift_sale.grand_total = ss['grand_total']
|
||||
shift_sale.nett_sales = ss['nett_sales']
|
||||
shift_sale.cash_sales = ss['cash_sales']
|
||||
shift_sale.credit_sales = ss['credit_sales']
|
||||
shift_sale.other_sales = ss['other_sales']
|
||||
shift_sale.commercial_taxes = ss['commercial_taxes']
|
||||
shift_sale.cash_in = ss['cash_in']
|
||||
shift_sale.cash_out = ss['cash_out']
|
||||
shift_sale.dining_count = ss['dining_count']
|
||||
shift_sale.takeaway_count = ss['takeaway_count']
|
||||
shift_sale.member_count = ss['member_count']
|
||||
shift_sale.total_rounding = ss['total_rounding']
|
||||
shift_sale.total_receipt = ss['total_receipt']
|
||||
shift_sale.total_void = ss['total_void']
|
||||
shift_sale.save
|
||||
puts '....... Shift Sale has been created ......'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def create(opening_balance,cashier_terminal, current_user)
|
||||
self.cashier_terminal_id = cashier_terminal
|
||||
self.shift_started_at = DateTime.now
|
||||
|
||||
@@ -21,11 +21,11 @@ class ActionController::Base
|
||||
end
|
||||
else
|
||||
# check for license file
|
||||
if check_license
|
||||
current_license(ENV["SX_PROVISION_URL"])
|
||||
else
|
||||
redirect_to activate_path
|
||||
end
|
||||
# if check_license
|
||||
# current_license(ENV["SX_PROVISION_URL"])
|
||||
# else
|
||||
# redirect_to activate_path
|
||||
# end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
application_path="#{File.expand_path("../..", __FILE__)}"
|
||||
directory application_path
|
||||
#environment ENV.fetch("RAILS_ENV") { "production" }
|
||||
environment "production"
|
||||
pidfile "#{application_path}/tmp/puma/pid"
|
||||
state_path "#{application_path}/tmp/puma/state"
|
||||
stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log"
|
||||
port ENV.fetch("PORT") { 62158 }
|
||||
workers 2
|
||||
preload_app!
|
||||
# application_path="#{File.expand_path("../..", __FILE__)}"
|
||||
# directory application_path
|
||||
# #environment ENV.fetch("RAILS_ENV") { "production" }
|
||||
# environment "production"
|
||||
# pidfile "#{application_path}/tmp/puma/pid"
|
||||
# state_path "#{application_path}/tmp/puma/state"
|
||||
# stdout_redirect "#{application_path}/log/puma.stdout.log", "#{application_path}/log/puma.stderr.log"
|
||||
# port ENV.fetch("PORT") { 62158 }
|
||||
# workers 2
|
||||
# preload_app!
|
||||
|
||||
Reference in New Issue
Block a user