diff --git a/app/controllers/reports/commission_controller.rb b/app/controllers/reports/commission_controller.rb index aeaa0a11..e97a1a77 100755 --- a/app/controllers/reports/commission_controller.rb +++ b/app/controllers/reports/commission_controller.rb @@ -19,7 +19,8 @@ class Reports::CommissionController < BaseReportController @from = from_date @to = to_date - + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() respond_to do |format| format.html format.xls diff --git a/app/controllers/reports/credit_payment_controller.rb b/app/controllers/reports/credit_payment_controller.rb index dd9b3987..3b716cc2 100755 --- a/app/controllers/reports/credit_payment_controller.rb +++ b/app/controllers/reports/credit_payment_controller.rb @@ -21,7 +21,8 @@ authorize_resource :class => false @from = from @to = to - + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() if @shift.present? @shift.each do |sh| @shift_from = sh.shift_started_at.nil? ? '-' : sh.shift_started_at.utc.getlocal.strftime("%e %b %I:%M%p") diff --git a/app/controllers/reports/dailysale_controller.rb b/app/controllers/reports/dailysale_controller.rb index fc1f150f..e2102d87 100755 --- a/app/controllers/reports/dailysale_controller.rb +++ b/app/controllers/reports/dailysale_controller.rb @@ -8,6 +8,8 @@ class Reports::DailysaleController < BaseReportController @from = from @to = to + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() respond_to do |format| format.html format.xls diff --git a/app/controllers/reports/payment_method_controller.rb b/app/controllers/reports/payment_method_controller.rb index bbff8900..01a904ae 100644 --- a/app/controllers/reports/payment_method_controller.rb +++ b/app/controllers/reports/payment_method_controller.rb @@ -23,7 +23,8 @@ class Reports::PaymentMethodController < BaseReportController @sale_data,@pyament_method = Sale.get_payment_method_by_shift(@shift_sale_range,@shift,from,to,@payment_type) @from = from @to = to - + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() if @shift.present? @shift.each do |sh| @shift_from = sh.shift_started_at.nil? ? '-' : sh.shift_started_at.utc.getlocal.strftime("%e %b %I:%M%p") diff --git a/app/controllers/reports/receipt_no_controller.rb b/app/controllers/reports/receipt_no_controller.rb index 2bd5e813..faa12eae 100755 --- a/app/controllers/reports/receipt_no_controller.rb +++ b/app/controllers/reports/receipt_no_controller.rb @@ -23,7 +23,8 @@ authorize_resource :class => false @tax_profiles = TaxProfile.order('order_by asc') @from = from @to = to - + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() if @shift.present? @shift.each do |sh| @shift_from = sh.shift_started_at.nil? ? '-' : sh.shift_started_at.utc.getlocal.strftime("%e %b %I:%M%p") diff --git a/app/controllers/reports/saleitem_controller.rb b/app/controllers/reports/saleitem_controller.rb index 4a6a4440..a9d23797 100755 --- a/app/controllers/reports/saleitem_controller.rb +++ b/app/controllers/reports/saleitem_controller.rb @@ -34,6 +34,9 @@ class Reports::SaleitemController < BaseReportController @from = from @to = to + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() + if shift.present? shift.each do |sh| @shift_from = sh.shift_started_at.nil? ? '-' : sh.shift_started_at.utc.getlocal.strftime("%e %b %I:%M%p") diff --git a/app/controllers/reports/shiftsale_controller.rb b/app/controllers/reports/shiftsale_controller.rb index 5bc2020c..f9373374 100755 --- a/app/controllers/reports/shiftsale_controller.rb +++ b/app/controllers/reports/shiftsale_controller.rb @@ -17,7 +17,8 @@ class Reports::ShiftsaleController < BaseReportController @shift_to = @shift.shift_closed_at.nil? ? '-' : @shift.shift_closed_at.utc.getlocal.strftime("%e %b %I:%M%p") @shift_data = @shift end - + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() respond_to do |format| format.html format.xls diff --git a/app/controllers/reports/stock_check_controller.rb b/app/controllers/reports/stock_check_controller.rb index c9622999..a9188f5d 100755 --- a/app/controllers/reports/stock_check_controller.rb +++ b/app/controllers/reports/stock_check_controller.rb @@ -16,7 +16,8 @@ class Reports::StockCheckController < BaseReportController @transaction = StockCheckItem.get_transaction(from_date, to_date, @item_code) @from = from_date @to = to_date - + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() respond_to do |format| format.html format.xls diff --git a/app/controllers/reports/void_sale_controller.rb b/app/controllers/reports/void_sale_controller.rb index 80526ad0..6169dadc 100755 --- a/app/controllers/reports/void_sale_controller.rb +++ b/app/controllers/reports/void_sale_controller.rb @@ -20,7 +20,8 @@ authorize_resource :class => false @from = from @to = to - + # get printer info + @print_settings = PrintSetting.get_precision_delimiter() if @shift.present? @shift.each do |sh| @shift_from = sh.shift_started_at.nil? ? '-' : sh.shift_started_at.utc.getlocal.strftime("%e %b %I:%M%p") diff --git a/app/models/customer.rb b/app/models/customer.rb index 8865448f..c228e3e6 100755 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -146,7 +146,7 @@ class Customer < ApplicationRecord if sale.customer.membership_id response = self.rebat(Sale.find(sale.sale_id)) #record an payment in sale-audit - remark = "UPdate Rebate Response - #{response} for Customer #{sale.customer_id} Sale Id [#{sale.sale_id}]| pay amount -> #{sale.received_amount} " + remark = "UPdate Rebate Response - #{response} for Customer #{sale.customer_id} Sale Id [#{sale.sale_id}]| pay amount -> #{sale.amount_received} " sale_audit = SaleAudit.record_paymal(sale.sale_id, remark, 1) if response["status"] == true @@ -157,66 +157,137 @@ class Customer < ApplicationRecord end def self.rebat(sObj) - rebate_prices = SaleItem.calculate_rebate_by_account(sObj.sale_items) - + rebate_prices,campaign_method = SaleItem.calculate_rebate_by_account(sObj.sale_items) generic_customer_id = sObj.customer.membership_id if generic_customer_id.present? - paypar = sObj.sale_payments + + paypar = sObj.sale_payments payparcost = 0 - credit = 0 + credit = 0 + paypar.each do |pp| if pp.payment_method == "paypar" payparcost = payparcost + pp.payment_amount - elsif pp.payment_method == "creditnote" + end + if pp.payment_method == "creditnote" credit = 1 end end - # overall_dis = SaleItem.get_overall_discount(sObj.id) - overall_dis = sObj.total_discount - - total_amount = rebate_prices - payparcost - overall_dis - - if credit == 1 - total_amount = 0 - end - if total_amount >= 0 - receipt_no = sObj.receipt_no - membership = MembershipSetting.find_by_membership_type("paypar_url") - memberaction = MembershipAction.find_by_membership_type("rebate") - merchant_uid = memberaction.merchant_account_id.to_s - campaign_type_id = memberaction.additional_parameter["campaign_type_id"] - auth_token = memberaction.auth_token.to_s - url = membership.gateway_url.to_s + memberaction.gateway_url.to_s + overall_dis = sObj.total_discount + + if credit != 1 + membership = MembershipSetting.find_by_membership_type("paypar_url") + memberaction = MembershipAction.find_by_membership_type("get_member_campaign") + merchant_uid = memberaction.merchant_account_id.to_s + campaign_type_id = memberaction.additional_parameter["campaign_type_id"] + auth_token = memberaction.auth_token.to_s + url = membership.gateway_url.to_s + memberaction.gateway_url.to_s # Control for Paypar Cloud begin - response = HTTParty.post(url, :body => { generic_customer_id:generic_customer_id , - total_sale_transaction_amount: sObj.grand_total, - merchant_uid:merchant_uid, - total_amount: total_amount, - campaign_type_id: campaign_type_id, - receipt_no: receipt_no, - auth_token:auth_token}.to_json, - :headers => { + response = HTTParty.get(url, + :body => { + member_group_id:sObj.customer.membership_type, + merchant_uid:merchant_uid, + campaign_type_id: campaign_type_id, + auth_token:auth_token + }.to_json, + :headers => { 'Content-Type' => 'application/json', - 'Accept' => 'application/json; version=2' - }, :timeout => 10) + 'Accept' => 'application/json; version=2' + }, :timeout => 10) rescue Net::OpenTimeout response = { "status": false , "message": "Connect To" } - - rescue OpenURI::HTTPError response = { "status": false, "message": "Can't connect server"} rescue SocketError response = { "status": false, "message": "Can't connect server"} + end + + redeem_amount = payparcost + overall_dis + + total_percentage = 0 + + type_arr = [] + Rails.logger.debug "Get Member Campaign" + Rails.logger.debug response.to_json + # Check for present response fields + if response["membership_campaign_data"].present? + response["membership_campaign_data"].each do |a| + data = {:type => a["rules_type"], :percentage => a["change_unit"].to_i * a["base_unit"].to_i} + total_percentage = total_percentage + a["change_unit"].to_i * a["base_unit"].to_i + type_arr.push(data) + end end - return response - Rails.logger.debug "--------Update Rebate response -------" - Rails.logger.debug response.to_json + + rebate_arr =[] + campaign_method.each do |a| + data = {:type => a[:type], :amount => a[:amount]} + type_arr.each do |si| + if si[:type] == a[:type] + if credit == 1 + data[:amount] = 0 + else + amount = (redeem_amount / total_percentage)*si[:percentage] + actual = a[:amount] - amount + data[:amount] = actual + end + + end + end + rebate_arr.push(data) end + + total_amount = rebate_prices - payparcost - overall_dis + + if credit == 1 + total_amount = 0 + end + + if total_amount >= 0 + receipt_no = sObj.receipt_no + membership = MembershipSetting.find_by_membership_type("paypar_url") + memberaction = MembershipAction.find_by_membership_type("rebate") + merchant_uid = memberaction.merchant_account_id.to_s + campaign_type_id = memberaction.additional_parameter["campaign_type_id"] + auth_token = memberaction.auth_token.to_s + url = membership.gateway_url.to_s + memberaction.gateway_url.to_s + + # Control for Paypar Cloud + begin + response = HTTParty.post(url, + :body => { + generic_customer_id:generic_customer_id , + total_sale_transaction_amount: sObj.grand_total, + merchant_uid:merchant_uid, + total_amount: total_amount, + campaign_type_id: campaign_type_id, + receipt_no: receipt_no, + campaign_method: rebate_arr.to_json, + auth_token:auth_token + }.to_json, + :headers => { + 'Content-Type' => 'application/json', + 'Accept' => 'application/json; version=2' + }, :timeout => 10) + rescue Net::OpenTimeout + response = { "status": false , "message": "Connect To" } + rescue OpenURI::HTTPError + response = { "status": false, "message": "Can't connect server"} + + rescue SocketError + response = { "status": false, "message": "Can't connect server"} + end + Rails.logger.debug "Rebage Response" + Rails.logger.debug response.to_json + return response + end + end + else + response = { "status": "no_member", "message": "Not membership"} end end diff --git a/app/models/print_setting.rb b/app/models/print_setting.rb index a13229dc..b4f17a62 100755 --- a/app/models/print_setting.rb +++ b/app/models/print_setting.rb @@ -1,4 +1,8 @@ class PrintSetting < ApplicationRecord # validations validates_presence_of :name, :unique_code, :printer_name, :page_width, :page_height, :print_copies + + def self.get_precision_delimiter + PrintSetting.find_by_unique_code("CloseCashierPdf") + end end diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index f9d16873..8cb33c80 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -450,7 +450,7 @@ class SalePayment < ApplicationRecord 'Accept' => 'application/json; version=2' }, :timeout => 10) rescue Net::OpenTimeout - response = { "status": false , "message": "Connect To" } + response = { "status": false , "message": " Connection timeout" } rescue OpenURI::HTTPError response = { "status": false, "message": "Can't connect server"} diff --git a/app/pdf/close_cashier_pdf.rb b/app/pdf/close_cashier_pdf.rb index 93cd7ab9..d84b0366 100755 --- a/app/pdf/close_cashier_pdf.rb +++ b/app/pdf/close_cashier_pdf.rb @@ -1,4 +1,5 @@ class CloseCashierPdf < Prawn::Document + include ActionView::Helpers::NumberHelper attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width,:text_width def initialize(printer_settings, shift_sale,shop_details,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount) @@ -38,11 +39,22 @@ class CloseCashierPdf < Prawn::Document self.header_font_size = 10 self.item_font_size = 8 + #precision checked + if printer_settings.precision.to_i > 2 + printer_settings.precision = 2 + end + #check delimiter + if printer_settings.delimiter + delimiter = "," + else + delimiter = "" + end + header( shop_details) stroke_horizontal_rule - shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount) + shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount,printer_settings.precision,delimiter) end def header (shop_details) @@ -58,7 +70,7 @@ class CloseCashierPdf < Prawn::Document stroke_horizontal_rule end - def shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount) + def shift_detail(shift_sale,sale_taxes,other_payment,total_amount_by_account,total_discount_by_account,total_member_discount,precision,delimiter) move_down 7 y_position = cursor bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do @@ -97,7 +109,7 @@ class CloseCashierPdf < Prawn::Document text "Opening Float : ", :size => self.item_font_size,:align => :left end bounding_box([self.label_width,y_position], :width => self.label_width, :height => self.item_height) do - text "#{ shift_sale.opening_balance}" , :size => self.item_font_size,:align => :left + text "#{ number_with_precision(shift_sale.opening_balance, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :left end y_position = cursor @@ -105,7 +117,8 @@ class CloseCashierPdf < Prawn::Document text "Closing Float : ", :size => self.item_font_size,:align => :left end bounding_box([self.label_width,y_position], :width => self.label_width, :height => self.item_height) do - text "#{ shift_sale.closing_balance}" , :size => self.item_font_size,:align => :left + text "#{ number_with_precision(shift_sale.closing_balance, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :left + # text_box "#{number_with_precision(total_price, :precision => precision.to_i, :delimiter => delimiter)}" end @@ -122,7 +135,8 @@ class CloseCashierPdf < Prawn::Document text "Received Amount :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.closing_balance}", :size => self.item_font_size, :align => :right + text "#{number_with_precision(shift_sale.closing_balance, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right + end y_position = cursor @@ -130,7 +144,7 @@ class CloseCashierPdf < Prawn::Document text "Cash In:", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.cash_in}", :size => self.item_font_size, :align => :right + text "#{number_with_precision(shift_sale.cash_in, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -138,7 +152,7 @@ class CloseCashierPdf < Prawn::Document text "Cash Out:", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.cash_out}", :size => self.item_font_size, :align => :right + text "#{number_with_precision(shift_sale.cash_out, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end move_down -5 @@ -151,7 +165,7 @@ class CloseCashierPdf < Prawn::Document text "Cash Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.cash_sales}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(shift_sale.cash_sales, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -159,7 +173,7 @@ class CloseCashierPdf < Prawn::Document text "Credit Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.credit_sales}", :size => self.item_font_size, :align => :right + text "#{number_with_precision(shift_sale.credit_sales, :precision => precision.to_i, :delimiter => delimiter) }", :size => self.item_font_size, :align => :right end #start other payment details if shift_sale.other_sales > 0 @@ -170,7 +184,7 @@ class CloseCashierPdf < Prawn::Document text "MPU Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{other.mpu_amount.round(2)}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(other.mpu_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -178,7 +192,7 @@ class CloseCashierPdf < Prawn::Document text "VISA Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{other.visa_amount.round(2)}", :size => self.item_font_size, :align => :right + text "#{number_with_precision(other.visa_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -186,7 +200,7 @@ class CloseCashierPdf < Prawn::Document text "Master Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{other.master_amount.round(2)}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(other.master_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -194,7 +208,7 @@ class CloseCashierPdf < Prawn::Document text "JCB Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{other.jcb_amount.round(2)}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(other.jcb_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -202,7 +216,7 @@ class CloseCashierPdf < Prawn::Document text "Reedem Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{other.paypar_amount.round(2)}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(other.paypar_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end end else @@ -211,7 +225,7 @@ class CloseCashierPdf < Prawn::Document text "Other Payment :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.other_sales}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(shift_sale.other_sales, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end end @@ -220,7 +234,7 @@ class CloseCashierPdf < Prawn::Document text "Rounding Adjustments :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.total_rounding.round(2)}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(shift_sale.total_rounding, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -228,7 +242,7 @@ class CloseCashierPdf < Prawn::Document text "Total :", :style => :bold, :size => self.header_font_size - 1, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.grand_total.round(2)}", :style => :bold, :size => self.header_font_size - 1, :align => :right + text "#{ number_with_precision(shift_sale.grand_total, :precision => precision.to_i, :delimiter => delimiter)}", :style => :bold, :size => self.header_font_size - 1, :align => :right end # end other payment details @@ -243,7 +257,7 @@ class CloseCashierPdf < Prawn::Document text "#{tax.tax_name} :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{tax.st_amount.round(2)}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(tax.st_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end end @@ -252,7 +266,7 @@ class CloseCashierPdf < Prawn::Document text "Total Taxes :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.total_taxes}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(shift_sale.total_taxes, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -260,7 +274,7 @@ class CloseCashierPdf < Prawn::Document text "Net Sales :", :style => :bold, :size => self.header_font_size - 1, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.nett_sales}", :style => :bold , :size => self.header_font_size - 1, :align => :right + text "#{number_with_precision(shift_sale.nett_sales, :precision => precision.to_i, :delimiter => delimiter) }", :style => :bold , :size => self.header_font_size - 1, :align => :right end #end for service charges and commercial tax #COMMENTED FOR NO NEED AND NOT CORRECT WHEN OTHER CHARGES @@ -283,7 +297,7 @@ class CloseCashierPdf < Prawn::Document text "Total #{amount.account_name} Discount:", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{amount.total_price.round(2)} ", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(amount.total_price, :precision => precision.to_i, :delimiter => delimiter)} ", :size => self.item_font_size, :align => :right end end #end total amount by Account @@ -297,7 +311,7 @@ class CloseCashierPdf < Prawn::Document text "Total Member Discount :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{@member_discount}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(@member_discount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end else @overall = shift_sale.total_discounts @@ -308,7 +322,7 @@ class CloseCashierPdf < Prawn::Document text "Total Discount :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{@overall}", :size => self.item_font_size, :align => :right + text "#{ number_with_precision(@overall, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right end y_position = cursor @@ -316,7 +330,7 @@ class CloseCashierPdf < Prawn::Document text "Total FOC :", :size => self.item_font_size, :align => :right end bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "(#{@total_foc})", :size => self.item_font_size, :align => :right + text "(#{ number_with_precision(@total_foc, :precision => precision.to_i, :delimiter => delimiter)})", :size => self.item_font_size, :align => :right end y_position = cursor diff --git a/app/views/reports/commission/index.html.erb b/app/views/reports/commission/index.html.erb index 2586018d..80cf5727 100755 --- a/app/views/reports/commission/index.html.erb +++ b/app/views/reports/commission/index.html.erb @@ -43,6 +43,18 @@
+ <% if @print_settings.precision.to_i > 0 + precision = @print_settings.precision + else + precision = 0 + end + #check delimiter + if @print_settings.delimiter + delimiter = "," + else + delimiter = "" + end + %> <% total_qty = 0 %> <% total_price = 0 %> <% total_amount = 0 %> @@ -53,9 +65,9 @@| <%= credit.receipt_no rescue '-' %> | <%= credit.cashier_name rescue '-' %> | <%= credit.sale.customer.name rescue '-' %> | -<%= credit.payment_amount rescue '-' %> | +<%= number_with_precision(credit.payment_amount, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | <% end %> diff --git a/app/views/reports/dailysale/index.html.erb b/app/views/reports/dailysale/index.html.erb index b8eded4f..76438060 100755 --- a/app/views/reports/dailysale/index.html.erb +++ b/app/views/reports/dailysale/index.html.erb @@ -44,6 +44,18 @@<%= t("views.right_panel.detail.grand_total") %> | + <% if @print_settings.precision.to_i > 0 + precision = @print_settings.precision + else + precision = 0 + end + #check delimiter + if @print_settings.delimiter + delimiter = "," + else + delimiter = "" + end + %> <% unless @sale_data.empty? %> @@ -79,37 +91,37 @@||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <%= count %> | <%= sale[:sale_date].strftime("#{sale[:sale_date].day.ordinalize} %b") rescue '-' %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:void_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:mpu_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:master_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:visa_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:jcb_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:paypar_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:cash_amount]-sale[:total_change_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:credit_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:foc_amount]), :delimiter => ',') rescue '-'%> | -(<%= number_with_delimiter(sprintf("%.2f",sale[:total_discount]), :delimiter => ',') rescue '-'%>) | -<%= number_with_delimiter(sprintf("%.2f",sale[:grand_total].to_f + sale[:rounding_adj].to_f ), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:rounding_adj].to_f), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:grand_total]), :delimiter => ',') rescue '-'%> | +<%= number_with_precision(sale[:void_amount], precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale[:mpu_amount], precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale[:master_amount], precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale[:visa_amount], precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale[:jcb_amount], precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale[:paypar_amount], precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale[:cash_amount]-sale[:total_change_amount], precision:precision, delimiter: delimiter) rescue '-'%> | +<%= number_with_precision(sale[:credit_amount], precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale[:foc_amount], precision:precision,delimiter:delimiter) rescue '-'%> | +(<%= number_with_precision(sale[:total_discount], precision:precision,delimiter:delimiter) rescue '-'%>) | +<%= number_with_precision(sale[:grand_total].to_f + sale[:rounding_adj].to_f , precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale[:rounding_adj].to_f, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale[:grand_total], precision:precision,delimiter:delimiter) rescue '-'%> |
| Total | -<%= number_with_delimiter(sprintf("%.2f",mpu), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",master), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",visa), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",jcb), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",paypar), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",cash), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",credit), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",foc), :delimiter => ',') rescue '-'%> | -(<%= number_with_delimiter(sprintf("%.2f",discount), :delimiter => ',') rescue '-'%>) | -<%= number_with_delimiter(sprintf("%.2f",total), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",rounding_adj), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",grand_total), :delimiter => ',') rescue '-'%> | +<%= number_with_precision(mpu , precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(master, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(visa, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(jcb, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(paypar, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(cash, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(credit, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(foc, precision:precision,delimiter:delimiter) rescue '-'%> | +(<%= number_with_precision(discount, precision:precision,delimiter:delimiter) rescue '-'%>) | +<%= number_with_precision(total, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(rounding_adj, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(grand_total, precision:precision,delimiter:delimiter) rescue '-'%> | |||
| <%= tax.tax_name rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",tax.tax_amount), :delimiter => ',') rescue '-'%> | +<%= number_with_precision(tax.tax_amount, precision:precision,delimiter:delimiter) rescue '-'%> | |||||||||||||||||||||||||
| <%= t("views.right_panel.detail.net_amount") %> | -<%= number_with_delimiter(sprintf("%.2f",net), :delimiter => ',') rescue '-'%> | +<%= number_with_precision(net, precision:precision,delimiter:delimiter) rescue '-'%> | <%= t("views.right_panel.detail.foc_sales") %> | + <% if @print_settings.precision.to_i > 0 + precision = @print_settings.precision + else + precision = 0 + end + #check delimiter + if @print_settings.delimiter + delimiter = "," + else + delimiter = "" + end + %> <% unless @sale_data.empty? %> <% @sale_data.each do |sale| %>||||||||||||||||||||||||
| <%= number_with_delimiter(sprintf("%.2f",sale[:mpu_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:master_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:visa_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:jcb_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:paypar_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:cash_amount]-sale[:total_change_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:credit_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:foc_amount]), :delimiter => ',') rescue '-'%> | +<%= number_with_precision(sale[:mpu_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(sale[:master_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(sale[:visa_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(sale[:jcb_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(sale[:paypar_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(sale[:cash_amount]-sale[:total_change_amount], precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(sale[:credit_amount] , precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(sale[:foc_amount] , precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | <%= payment.payment_method rescue '-' %> | <% if payment.payment_method === 'cash' %> -<%= payment.payment_amount - payment.change_amount%> | +<%= number_with_precision(payment.payment_amount - payment.change_amount , precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | <%else%> -<%= payment.payment_amount%> | +<%= number_with_precision(payment.payment_amount , precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | <%end%> -<%= payment.sale.grand_total rescue '-' %> | +<%= number_with_precision(payment.sale.grand_total , precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | @@ -120,7 +132,7 @@ <%if total>0%>|||||
| Total | -<%=total%> | +<%=number_with_precision(total , precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | <%= result.receipt_no rescue '-' %> | <%= result.cashier_name rescue '-' %> | -<%= result.total_amount rescue '-' %> | -<%= result.total_discount rescue '-' %> | +<%= number_with_precision(result.total_amount, precision: precision.to_i ,delimiter: delimiter) %> | +<%= number_with_precision(result.total_discount, precision: precision.to_i ,delimiter: delimiter) %> | <%if result.customer.customer_type == "Takeaway"%> -0.0 | +<%= number_with_precision(0, precision: precision.to_i ,delimiter: delimiter) %> | <%end%> <% result.sale_taxes.each do |tax| %> -<%= tax.tax_payable_amount rescue '-' %> | +<%= number_with_precision(tax.tax_payable_amount, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | <%end%> -<%= result.grand_total %> | -<%= result.rounding_adjustment.to_f rescue '-' %> | -<%= result.grand_total_after_rounding() rescue '-'%> | +<%= number_with_precision(result.grand_total, precision: precision.to_i ,delimiter: delimiter) %> | +<%= number_with_precision(result.rounding_adjustment.to_f, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(result.grand_total_after_rounding(), precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | <% end %>|||||||||
| - | <%= total_sum rescue '-'%> | -<%= discount_amt rescue '-'%> | +<%= number_with_precision(total_sum, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(discount_amt, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | <% @sale_taxes.each do |tax| %> -<%= tax.st_amount.round(2) %> | +<%= number_with_precision(tax.st_amount, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | <% end %> -<%= grand_total.to_f.round(2) rescue '-'%> | -<%= rounding_adj rescue '-'%> | -<%= grand_total.to_f.round + rounding_adj %> | +<%= number_with_precision(grand_total.to_f, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(rounding_adj, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> | +<%= number_with_precision(grand_total.to_f.round + rounding_adj, precision: precision.to_i ,delimiter: delimiter) %> | |||||||||||||||
| diff --git a/app/views/reports/saleitem/index.html.erb b/app/views/reports/saleitem/index.html.erb index f780acdb..fbc518a6 100644 --- a/app/views/reports/saleitem/index.html.erb +++ b/app/views/reports/saleitem/index.html.erb @@ -45,6 +45,18 @@ | <% @totalByAccount.each do |account, total| %> <% if sale.account_id == account %> - <%= total %> + <%= number_with_precision(total, precision:precision,delimiter:delimiter) %> <% grand_total += total %> <% end %> <% end %> @@ -105,8 +117,8 @@ | <%= sale.item_code rescue '-' %> | <%= sale.product_name rescue '-' %> | <%= sale.total_item rescue '-' %> | -<%= sale.unit_price rescue '-' %> | -<%= sale.grand_total rescue '-' %> | +<%= number_with_precision(sale.unit_price , precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(sale.grand_total , precision:precision,delimiter:delimiter) rescue '-'%> | @@ -121,7 +133,7 @@Total <%= sale.account_name %> Qty | <%= sub_qty %> | <%= t("views.right_panel.detail.sub_total") %> | -<%= sub_total %> | +<%= number_with_precision(sub_total , precision:precision,delimiter:delimiter)%> | <% sub_total = 0.0%> <% sub_qty = 0 %> @@ -149,8 +161,8 @@<%= other.item_code rescue '-' %> | <%= other.product_name rescue '-' %> | <%= other.total_item rescue '-' %> | -<%= other.unit_price rescue '-' %> | -<%= other.grand_total rescue '-' %> | +<%= number_with_precision(other.unit_price , precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(other.grand_total , precision:precision,delimiter:delimiter) rescue '-'%> | @@ -160,7 +172,7 @@|||||||
| <%= t("views.right_panel.detail.sub_total") %> | -<%= other_sub_total %> | +<%= number_with_precision(other_sub_total , precision:precision,delimiter:delimiter)%> | <%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.item") %> | <%= total_qty%> | <%= t("views.right_panel.detail.total") %> <%= t("views.right_panel.detail.amount") %> | -<%= grand_total%> | +<%= number_with_precision(grand_total , precision:precision,delimiter:delimiter)%> | <% end %>||||||||||||||||||||
| <%= t("views.right_panel.detail.foc_item") %> <%= t("views.right_panel.detail.amount") %> | -<%= total_item_foc %> | +<%= number_with_precision(total_item_foc , precision:precision,delimiter:delimiter) %> | |||||||||||||||||||||||||
| <%= t("views.right_panel.detail.item_discount") %> <%= t("views.right_panel.detail.amount") %> | -<%= total_item_dis %> | +<%= number_with_precision(total_item_dis , precision:precision,delimiter:delimiter) %> | |||||||||||||||||||||||||
| <%= t("views.right_panel.detail.foc_sales") %> | -<%= @foc_data %> | +<%= number_with_precision(@foc_data , precision:precision,delimiter:delimiter) %> | |||||||||||||||||||||||||
| <%= t("views.right_panel.detail.discount") %> <%= t("views.right_panel.detail.amount") %> | -<%= @discount_data %> | +<%= number_with_precision(@discount_data , precision:precision,delimiter:delimiter) %> | Net Amount | -<%= grand_total.to_f - @discount_data.to_f%> | +<%= number_with_precision(grand_total.to_f - @discount_data.to_f , precision:precision,delimiter:delimiter)%> | -<%= sprintf "%.2f",result[:cash_sales].to_f.to_d rescue '-'%> | -<%= sprintf "%.2f",result[:credit_sales].to_f.to_d rescue '-'%> | +<%= number_with_precision(result[:cash_sales].to_f, precision:precision,delimiter:delimiter) %> | +<%= number_with_precision(result[:credit_sales].to_f, precision:precision,delimiter:delimiter) rescue '-'%> | -<%= sprintf "%.2f",result[:other_sales].to_f.to_d rescue '-'%> | +<%= number_with_precision(result[:other_sales].to_f, precision:precision,delimiter:delimiter) rescue '-'%> | - <%= sprintf "%.2f",result[:foc_sales].to_f.to_d rescue '-'%> + <%= number_with_precision(result[:foc_sales].to_f, precision:precision,delimiter:delimiter) rescue '-'%> | -<%= sprintf "%.2f",result[:grand_total].to_f.to_d rescue '-'%> | +<%= number_with_precision(result[:grand_total].to_f, precision:precision,delimiter:delimiter) rescue '-'%> | <% grand_total = result[:grand_total].to_f %> @@ -114,15 +126,15 @@|||||||||||||
| - | <%= sprintf("%.2f",cash) rescue '-'%> | -<%= sprintf("%.2f",credit) rescue '-'%> | +<%= number_with_precision(cash, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(credit, precision:precision,delimiter:delimiter) rescue '-'%> | -<%= sprintf("%.2f",card) rescue '-'%> | -<%= sprintf("%.2f",foc) rescue '-'%> | +<%= number_with_precision(card, precision:precision,delimiter:delimiter) rescue '-'%> | +<%= number_with_precision(foc, precision:precision,delimiter:delimiter) rescue '-'%> | -<%= sprintf("%.2f",g_total) rescue '-'%> | +<%= number_with_precision(g_total, precision:precision,delimiter:delimiter) rescue '-'%> | |||||||||||||||||