diff --git a/app/controllers/api/sync_controller.rb b/app/controllers/api/sync_controller.rb index 3d5e971c..93596c81 100644 --- a/app/controllers/api/sync_controller.rb +++ b/app/controllers/api/sync_controller.rb @@ -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 \ No newline at end of file diff --git a/app/controllers/reports/receipt_no_controller.rb b/app/controllers/reports/receipt_no_controller.rb index 60fca0f7..7536599d 100755 --- a/app/controllers/reports/receipt_no_controller.rb +++ b/app/controllers/reports/receipt_no_controller.rb @@ -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.'} diff --git a/app/models/booking.rb b/app/models/booking.rb index f2a9af36..13345d36 100755 --- a/app/models/booking.rb +++ b/app/models/booking.rb @@ -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 diff --git a/app/models/sale.rb b/app/models/sale.rb index ebd45b8a..3512e827 100644 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -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 diff --git a/app/models/sale_audit.rb b/app/models/sale_audit.rb index 97dbe01c..ef31085e 100755 --- a/app/models/sale_audit.rb +++ b/app/models/sale_audit.rb @@ -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() diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb index c44220b1..5cb3f4e6 100755 --- a/app/models/sale_item.rb +++ b/app/models/sale_item.rb @@ -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 diff --git a/app/models/sale_order.rb b/app/models/sale_order.rb index 631a5e62..03a2926a 100755 --- a/app/models/sale_order.rb +++ b/app/models/sale_order.rb @@ -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 diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index f3c076ae..e3ba3379 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -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 diff --git a/app/models/sale_tax.rb b/app/models/sale_tax.rb index 216a0267..37159364 100755 --- a/app/models/sale_tax.rb +++ b/app/models/sale_tax.rb @@ -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") diff --git a/app/models/shift_sale.rb b/app/models/shift_sale.rb index 21386e90..9fe95bd4 100755 --- a/app/models/shift_sale.rb +++ b/app/models/shift_sale.rb @@ -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 diff --git a/config/initializers/action_controller.rb b/config/initializers/action_controller.rb index 205c330a..85f38ec5 100644 --- a/config/initializers/action_controller.rb +++ b/config/initializers/action_controller.rb @@ -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 diff --git a/config/puma.rb b/config/puma.rb index fd89392f..6a545bed 100755 --- a/config/puma.rb +++ b/config/puma.rb @@ -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! diff --git a/dump.rdb b/dump.rdb index 878ed105..7ba8a0b2 100644 Binary files a/dump.rdb and b/dump.rdb differ