From 2a04fb40657355471b22b34b9cf657564f91ce78 Mon Sep 17 00:00:00 2001 From: Zoey Date: Thu, 13 Jun 2019 12:50:07 +0630 Subject: [PATCH] sync data records --- app/controllers/api/sync_controller.rb | 9 ++++- .../reports/receipt_no_controller.rb | 13 +++++-- app/models/booking.rb | 28 ++++++++++---- app/models/sale.rb | 35 +++++++++++++++++ app/models/sale_audit.rb | 20 ++++++++++ app/models/sale_item.rb | 28 ++++++++++++++ app/models/sale_order.rb | 15 ++++++++ app/models/sale_payment.rb | 19 +++++++++ app/models/sale_tax.rb | 18 +++++++++ app/models/shift_sale.rb | 36 ++++++++++++++++++ config/initializers/action_controller.rb | 10 ++--- config/puma.rb | 20 +++++----- dump.rdb | Bin 1213318 -> 1214650 bytes 13 files changed, 223 insertions(+), 28 deletions(-) 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 878ed1050a3f03fa9c792ddbd6c8656c40462764..7ba8a0b2740b58891f1a5078373dfb53b29619e5 100644 GIT binary patch delta 1704 zcmb7_TZr6L7{`;@%-*JZ>8ah_ZfWNjd!x*ZC--E8nqeu}!d65;#aR)juSiZ3FiT`$SZwzbylV@S?-zWmPr z`<>TbKl<4lN6#?_z)kYRozYeko7oz!U6sFIB<^g{?Mk-cV7*qZ;*j{2xVwLAaH|XU z2iLn`dxAy5)*jd~BxRXkx(8rT=z!Tk?SfsDoaIpPWf#oNv0_LNsiv#D`HF5;u^DDI zexAI1Dkz=>^Asb5iLT~rq^~7>ZOGRsUrYMhu&<5y+NiIM`P#UzrF?CRuTA*cq_0i+ z+O)52{X_$@H`uV&10!)m+q`I3CM1$c2fNP7&|2YO!Q6F*HmZ8FN$2T8qj9(vweX_t zoWu^Dp><~o&Zdv^49d_A%Q)F;&>2QKk)iwR>AdT-aE7K%wQvi=L&GMn=&h;?rNqmY z38!WyMp78DTsCAGiLz2g9+pks#AOK6Mg+~pW>I(PJR^vRN1P%{IYwd;&#)Pq#P!k( z>qC$dB~Hk}-3gfyVS3zgY^PYm&8EJjzCyO@@YS?c$0n>{ciA>!$!IlQyM~=&U9aK& zuwpxKv~E@N$E@l?RrPL#3*p_wF?+G35QkL_?jkCWkE~N(>HILqv4|0c3j|d(?5OY+ zLh4Kr);jfMXLXnrL`4?b?>pCywAF74YlU3F{;%NdmRpSaD4MwHS*NkH@_->sr8XH3 z5I%DsVIfASPR$6o!n24oSdJHXo#6$fD+*^q2>t>f+>y!&0up&y%FvtqMnq9&bCQ76 zQ3yTKap2p@O@3!$e(jzA#1DQk1|Q(N9WGoM{u4d0PIWpLD1~PQ4t8{MlipSMkvgDv z{$i4sL|JY>ckH4k4(J^$;D4nzK8RgJ%{r}apLsNP17uI%M<#Ekj?*g@g|C#6jzt!+ za>dj!r|1HN)7~S{AUVNtIRQx=FLU>yjf;}VC@t|Ag*GXqFbjUt(^D z`mx*IkKI@w+z=OmgP#6K>T;#k5grMWjJWoV+uyP=xPa<_J;7U%K7!+C0Ua2zX!=Sy z(TyhjO%LqzHm=Qh&z>X+f|@sM6SGyloR?W1<$2xUS%VRElfe{a)hqUz`l-5>K0`0t zO*bBw$N=}2M6(|W$%zLveQ!cJMTy$U@th(FtQ-r$q~p@bNDi*P1fQBPYfUeT`RS_N zsNuQ`3u(iy8!gAdbz_CjvqFaMA6n#^<8)sZL{;50y=*Nl7aNXcJC?gbM|Od25=Sp! zii|XJM4eqH-zhnh5B&k%PM&I6*iBaSY7pV6_YO29Nc?T<}r{%uz}fF|pQnQiu)70QJDW zV0U~lv0;PN4j4(+Mt@443rc6fY)Z^BTsXJ!?hhX?4up>6kO*${fE0Y^fhUGH2H&3R yg89AuZ+T+o4|hR6l9H4~@ofo$35s5_xrvM7Ov!Py$Q&s1#8D$?fbcA&p z8{?$>sT5aP(S~LzPPI4}{x0o0AO__FDEcktZb3Uc&O@7^dI2Gwssblt