sync data records

This commit is contained in:
Zoey
2019-06-13 12:50:07 +06:30
parent 2a638b2a89
commit 2a04fb4065
13 changed files with 223 additions and 28 deletions

View File

@@ -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

View File

@@ -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.'}

View File

@@ -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

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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")

View File

@@ -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

View File

@@ -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

View File

@@ -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!

BIN
dump.rdb

Binary file not shown.