From 7ece8cbb470883b2ed806ed5367a8edbd10aaa16 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Wed, 3 Jan 2018 10:01:43 +0630 Subject: [PATCH 1/4] update add extra time after request --- app/controllers/origami/sales_controller.rb | 13 +++++++------ app/models/order.rb | 5 +++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/controllers/origami/sales_controller.rb b/app/controllers/origami/sales_controller.rb index bdf481c2..4c00566c 100755 --- a/app/controllers/origami/sales_controller.rb +++ b/app/controllers/origami/sales_controller.rb @@ -16,12 +16,13 @@ class Origami::SalesController < BaseOrigamiController sale_id = params[:sale_id] table = DiningFacility.find(dining) existing_booking = Booking.find_by_sale_id(sale_id) + table.bookings.each do |booking| - # if !booking.checkout_at.nil? - # existing_booking.update_attributes(checkout_at: checkout_at) - # end - if booking.sale_id.nil? - booking.booking_orders.each do |booking_order| + if !booking.checkout_at.nil? && !booking.sale_id.nil? + existing_booking.update_attributes(checkout_at: booking.checkout_at) + end + if booking.sale_id.nil? + booking.booking_orders.each do |booking_order| booking.booking_status = 'moved' order = Order.find(booking_order.order_id) @@ -40,7 +41,7 @@ class Origami::SalesController < BaseOrigamiController saleobj.save order.save booking.save - end + end booking_order = BookingOrder.where('booking_id=?',booking) booking_order.each do |bo| diff --git a/app/models/order.rb b/app/models/order.rb index 318e8e91..6b6bd158 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -27,8 +27,10 @@ class Order < ApplicationRecord if self.new_booking #add extra time if self.is_extra_time && self.extra_time + old_booking = Booking.where("booking_id = #{self.booking_id} and sale_id NOT NULL").first + new_time = old_booking.checkout_at + self.extra_time.to_i booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking", - :checkin_at => Time.now.utc,:checkout_at => Time.now.utc + self.extra_time.to_i, + :checkin_at => Time.now.utc,:checkout_at => new_time, :checkin_by => self.employee_name, :booking_status => "assign" }) else @@ -37,7 +39,6 @@ class Order < ApplicationRecord :booking_status => "assign" }) end #end extra time - table = DiningFacility.find(self.table_id) table.status = "occupied" From c8b7417f6a9b11526fad132dab4a80e404f5f067 Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Wed, 3 Jan 2018 10:12:22 +0630 Subject: [PATCH 2/4] update extra time --- app/controllers/origami/sales_controller.rb | 13 ++++++------- app/models/order.rb | 5 ++--- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/app/controllers/origami/sales_controller.rb b/app/controllers/origami/sales_controller.rb index 4c00566c..bdf481c2 100755 --- a/app/controllers/origami/sales_controller.rb +++ b/app/controllers/origami/sales_controller.rb @@ -16,13 +16,12 @@ class Origami::SalesController < BaseOrigamiController sale_id = params[:sale_id] table = DiningFacility.find(dining) existing_booking = Booking.find_by_sale_id(sale_id) - table.bookings.each do |booking| - if !booking.checkout_at.nil? && !booking.sale_id.nil? - existing_booking.update_attributes(checkout_at: booking.checkout_at) - end - if booking.sale_id.nil? - booking.booking_orders.each do |booking_order| + # if !booking.checkout_at.nil? + # existing_booking.update_attributes(checkout_at: checkout_at) + # end + if booking.sale_id.nil? + booking.booking_orders.each do |booking_order| booking.booking_status = 'moved' order = Order.find(booking_order.order_id) @@ -41,7 +40,7 @@ class Origami::SalesController < BaseOrigamiController saleobj.save order.save booking.save - end + end booking_order = BookingOrder.where('booking_id=?',booking) booking_order.each do |bo| diff --git a/app/models/order.rb b/app/models/order.rb index 6b6bd158..318e8e91 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -27,10 +27,8 @@ class Order < ApplicationRecord if self.new_booking #add extra time if self.is_extra_time && self.extra_time - old_booking = Booking.where("booking_id = #{self.booking_id} and sale_id NOT NULL").first - new_time = old_booking.checkout_at + self.extra_time.to_i booking = Booking.create({:dining_facility_id => self.table_id,:type => "TableBooking", - :checkin_at => Time.now.utc,:checkout_at => new_time, + :checkin_at => Time.now.utc,:checkout_at => Time.now.utc + self.extra_time.to_i, :checkin_by => self.employee_name, :booking_status => "assign" }) else @@ -39,6 +37,7 @@ class Order < ApplicationRecord :booking_status => "assign" }) end #end extra time + table = DiningFacility.find(self.table_id) table.status = "occupied" From cd2f9fdcb0df433115af96e5edf4c844d2c15f6b Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 8 Jan 2018 17:00:00 +0630 Subject: [PATCH 3/4] update precision and delimetor all --- .../reports/commission_controller.rb | 3 +- .../reports/credit_payment_controller.rb | 3 +- .../reports/dailysale_controller.rb | 2 + .../reports/payment_method_controller.rb | 3 +- .../reports/receipt_no_controller.rb | 3 +- .../reports/saleitem_controller.rb | 3 + .../reports/shiftsale_controller.rb | 3 +- .../reports/stock_check_controller.rb | 3 +- .../reports/void_sale_controller.rb | 3 +- app/models/customer.rb | 145 +++++++++++++----- app/models/print_setting.rb | 4 + app/models/sale_payment.rb | 2 +- app/pdf/close_cashier_pdf.rb | 62 +++++--- app/views/reports/commission/index.html.erb | 24 ++- .../reports/credit_payment/index.html.erb | 14 +- app/views/reports/dailysale/index.html.erb | 66 ++++---- .../reports/payment_method/index.html.erb | 36 +++-- app/views/reports/receipt_no/index.html.erb | 42 +++-- app/views/reports/saleitem/index.html.erb | 38 +++-- app/views/reports/shiftsale/index.html.erb | 32 ++-- app/views/reports/void_sale/index.html.erb | 28 +++- 21 files changed, 360 insertions(+), 159 deletions(-) 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 @@ <%= result.sale_item_id rescue '-' %> <%= result.commissioner.name rescue '-' %> <%= result.commission.menu_item.name rescue '-' %> - <%= sprintf "%.2f", result.qty.to_f.to_d rescue '-' %> - <%= sprintf "%.2f", result.price.to_f.to_d rescue '-' %> - <%= sprintf "%.2f", result.amount.to_f.to_d rescue '-' %> + <%= number_with_precision(result.qty.to_f, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> + <%= number_with_precision(result.price.to_f, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> + <%= number_with_precision(result.amount.to_f, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= result.updated_at.strftime("%e %b %Y %I:%M%p") rescue '-' %> <% total_qty += result.qty.to_f %> @@ -65,9 +77,9 @@ - <%= sprintf("%.2f", total_qty) rescue '-' %> - <%= sprintf("%.2f", total_price) rescue '-' %> - <%= sprintf("%.2f", total_amount) rescue '-' %> + <%= number_with_precision(total_qty, precision: precision.to_i ,delimiter: delimiter) rescue '-'%> + <%= number_with_precision(total_price, precision: precision.to_i ,delimiter: delimiter) rescue '-'%> + <%= number_with_precision(total_amount, precision: precision.to_i ,delimiter: delimiter) rescue '-'%> diff --git a/app/views/reports/credit_payment/index.html.erb b/app/views/reports/credit_payment/index.html.erb index 7c520fe3..0619d976 100755 --- a/app/views/reports/credit_payment/index.html.erb +++ b/app/views/reports/credit_payment/index.html.erb @@ -23,6 +23,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 + %> <% unless @sale_data.blank? %> @@ -52,7 +64,7 @@ - + <% 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 @@ + <% 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 = count + 1 %> <% end %> - - - - - - - - - - - - + + + + + + + + + + + + <% total_tax = 0 %> @@ -118,7 +130,7 @@ <% total_tax += tax.tax_amount.to_f %> - + @@ -126,7 +138,7 @@ <% net = total - total_tax %> - + <% end %> diff --git a/app/views/reports/payment_method/index.html.erb b/app/views/reports/payment_method/index.html.erb index 0c48fe22..1fef1eab 100755 --- a/app/views/reports/payment_method/index.html.erb +++ b/app/views/reports/payment_method/index.html.erb @@ -50,18 +50,30 @@ + <% 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| %> - - - - - - - - + + + + + + + + <% end %> @@ -108,11 +120,11 @@ <% if payment.payment_method === 'cash' %> - + <%else%> - + <%end%> - + @@ -120,7 +132,7 @@ <%if total>0%> - + <%end%> diff --git a/app/views/reports/receipt_no/index.html.erb b/app/views/reports/receipt_no/index.html.erb index e82c3e3c..9eee6ab9 100755 --- a/app/views/reports/receipt_no/index.html.erb +++ b/app/views/reports/receipt_no/index.html.erb @@ -58,6 +58,22 @@ + <% 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 + + puts precision + puts "predelidm" + puts delimiter %> + <% grand_total = 0 %> <% old_grand_total = 0 %> <% total_tax = 0 %> @@ -81,31 +97,31 @@ - - + + <%if result.customer.customer_type == "Takeaway"%> - + <%end%> <% result.sale_taxes.each do |tax| %> - + <%end%> - - - + + + <% end %> - - + + <% @sale_taxes.each do |tax| %> - + <% end %> - - - + + + 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 @@ + <% 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.blank? %> <% acc_arr = Array.new %> <% cate_arr = Array.new %> @@ -86,7 +98,7 @@ - - + + @@ -121,7 +133,7 @@ - + <% sub_total = 0.0%> <% sub_qty = 0 %> @@ -149,8 +161,8 @@ - - + + @@ -160,7 +172,7 @@ - + <%end%> @@ -169,29 +181,29 @@ - + <% end %> - + - + - + - + <% @sale_taxes.each do |tax| %> @@ -207,7 +219,7 @@ - + - - + + - + - + <% grand_total = result[:grand_total].to_f %> @@ -114,15 +126,15 @@ - - + + - - + + - +
<%= 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 '-' %>
<%= t("views.right_panel.detail.grand_total") %>
<%= 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") %>
<%= 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 '-' %><%= payment.payment_amount - payment.change_amount%> <%= number_with_precision(payment.payment_amount - payment.change_amount , precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= payment.payment_amount%> <%= number_with_precision(payment.payment_amount , precision: precision.to_i ,delimiter: delimiter) rescue '-' %> <%= payment.sale.grand_total rescue '-' %><%= number_with_precision(payment.sale.grand_total , precision: precision.to_i ,delimiter: delimiter) rescue '-' %>
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) %>0.0<%= number_with_precision(0, precision: precision.to_i ,delimiter: delimiter) %><%= tax.tax_payable_amount rescue '-' %><%= number_with_precision(tax.tax_payable_amount, precision: precision.to_i ,delimiter: delimiter) rescue '-' %><%= 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 '-' %>
 <%= 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 '-' %><%= tax.st_amount.round(2) %><%= number_with_precision(tax.st_amount, precision: precision.to_i ,delimiter: delimiter) rescue '-' %><%= 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) %>
 
<% @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 '-'%>
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)%>
<%= 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 '-'%>
  <%= 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)%>
  <%= 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 '-'%>
<%= 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 '-'%>
diff --git a/app/views/reports/void_sale/index.html.erb b/app/views/reports/void_sale/index.html.erb index 045df74d..d7b6ee10 100755 --- a/app/views/reports/void_sale/index.html.erb +++ b/app/views/reports/void_sale/index.html.erb @@ -52,6 +52,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_amount = 0.0 %> <% grand_total = 0.0 %> <% rounding_adjustment = 0.0 %> @@ -61,10 +73,10 @@ <%= item.receipt_no rescue '-' %> <%= item.receipt_date.utc.getlocal.strftime("%e %b %I:%M%p") rescue '-' %> - <%= item.total_amount.to_f rescue '-'%> - <%= item.grand_total.to_f rescue '-'%> - <%= item.rounding_adjustment.to_f rescue '-' %> - <%= item.grand_total.to_f + item.rounding_adjustment.to_f rescue '-'%> + <%= number_with_precision(item.total_amount.to_f, precision: precision.to_i ,delimiter: delimiter) %> + <%= number_with_precision(item.grand_total.to_f , precision: precision.to_i ,delimiter: delimiter) rescue '-'%> + <%= number_with_precision(item.rounding_adjustment.to_f, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> + <%= number_with_precision(item.grand_total.to_f + item.rounding_adjustment.to_f , precision: precision.to_i ,delimiter: delimiter) rescue '-'%> @@ -76,10 +88,10 @@ <% end %> Total Void Amount : - <%= total_amount rescue '-' %> - <%= grand_total rescue '-' %> - <%= rounding_adjustment rescue '-'%> - <%= grand_rounding_adjustment rescue '-'%> + <%= number_with_precision(total_amount, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> + <%= number_with_precision(grand_total, precision: precision.to_i ,delimiter: delimiter) rescue '-' %> + <%= number_with_precision(rounding_adjustment, precision: precision.to_i ,delimiter: delimiter) rescue '-'%> + <%= number_with_precision(grand_rounding_adjustment, precision: precision.to_i ,delimiter: delimiter) rescue '-'%> From e55be61a5977e1d7f9a1f40ecd285d49a3c0a69b Mon Sep 17 00:00:00 2001 From: Aung Myo Date: Mon, 8 Jan 2018 17:33:27 +0630 Subject: [PATCH 4/4] first bill for manager role --- app/models/ability.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/models/ability.rb b/app/models/ability.rb index 4470fb4b..02b2618f 100755 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -58,6 +58,7 @@ class Ability can :create, :discount can :remove_discount_items, :discount can :remove_all_discount, :discount + can :member_discount, :discount can :first_bill, :payment can :show, :payment