add other payments in close cashier

This commit is contained in:
phyusin
2018-05-30 14:16:43 +06:30
parent a9070ebe0d
commit 995c3a05d2
3 changed files with 206 additions and 60 deletions

View File

@@ -107,7 +107,13 @@ class ShiftSale < ApplicationRecord
SUM(case when (sale_payments.payment_method='visa') then (sale_payments.payment_amount) else 0 end) as visa_amount, SUM(case when (sale_payments.payment_method='visa') then (sale_payments.payment_amount) else 0 end) as visa_amount,
SUM(case when (sale_payments.payment_method='master') then (sale_payments.payment_amount) else 0 end) as master_amount, SUM(case when (sale_payments.payment_method='master') then (sale_payments.payment_amount) else 0 end) as master_amount,
SUM(case when (sale_payments.payment_method='jcb') then (sale_payments.payment_amount) else 0 end) as jcb_amount, SUM(case when (sale_payments.payment_method='jcb') then (sale_payments.payment_amount) else 0 end) as jcb_amount,
SUM(case when (sale_payments.payment_method='unionpay') then (sale_payments.payment_amount) else 0 end) as unionpay_amount,
SUM(case when (sale_payments.payment_method='alipay') then (sale_payments.payment_amount) else 0 end) as alipay_amount,
SUM(case when (sale_payments.payment_method='dinga') then (sale_payments.payment_amount) else 0 end) as dinga_amount,
SUM(case when (sale_payments.payment_method='giftvoucher') then (sale_payments.payment_amount) else 0 end) as giftvoucher_amount,
SUM(case when (sale_payments.payment_method='JunctionPay') then (sale_payments.payment_amount) else 0 end) as junctionpay_amount,
SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount, SUM(case when (sale_payments.payment_method='foc') then (sale_payments.payment_amount) else 0 end) as foc_amount,
SUM(case when (sale_payments.payment_method='paymal') then (sale_payments.payment_amount) else 0 end) as paymal_amount,
SUM(case when (sale_payments.payment_method='paypar') then (sale_payments.payment_amount) else 0 end) as paypar_amount") SUM(case when (sale_payments.payment_method='paypar') then (sale_payments.payment_amount) else 0 end) as paypar_amount")
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id") .joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
.where("sales.shift_sale_id =? and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.id) .where("sales.shift_sale_id =? and sale_status = 'completed' and sale_payments.payment_amount != 0 ", shift.id)

View File

@@ -240,45 +240,115 @@ class CloseCashierCustomisePdf < Prawn::Document
if shift_sale.other_sales > 0 if shift_sale.other_sales > 0
other_payment.each do |other| other_payment.each do |other|
@total_foc = other.foc_amount.round(2) @total_foc = other.foc_amount.round(2)
y_position = cursor if other.mpu_amount && other.mpu_amount.to_f > 0
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
text "MPU Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
end text "MPU Payment :", :size => self.item_font_size, :align => :right
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do end
text "#{ number_with_precision(other.mpu_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "#{ number_with_precision(other.mpu_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
y_position = cursor if other.visa_amount && other.visa_amount.to_f > 0
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
text "VISA Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
end text "VISA Payment :", :size => self.item_font_size, :align => :right
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do end
text "#{number_with_precision(other.visa_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "#{number_with_precision(other.visa_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
y_position = cursor if other.master_amount && other.master_amount.to_f > 0
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
text "Master Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
end text "Master Payment :", :size => self.item_font_size, :align => :right
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do end
text "#{ number_with_precision(other.master_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "#{ number_with_precision(other.master_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
y_position = cursor if other.jcb_amount && other.jcb_amount.to_f > 0
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
text "JCB Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
end text "JCB Payment :", :size => self.item_font_size, :align => :right
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do end
text "#{ number_with_precision(other.jcb_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "#{ number_with_precision(other.jcb_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
# y_position = cursor if other.unionpay_amount && other.unionpay_amount.to_f > 0
# bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
# text "Reedem Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
# end text "UNIONPAY Payment :", :size => self.item_font_size, :align => :right
# bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do end
# text "#{ number_with_precision(other.paypar_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
# end text "#{ number_with_precision(other.unionpay_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.alipay_amount && other.alipay_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Alipay 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 "#{ number_with_precision(other.alipay_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.junctionpay_amount && other.junctionpay_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "JunctionPay 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 "#{ number_with_precision(other.junctionpay_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.dinga_amount && other.dinga_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Dinga 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 "#{ number_with_precision(other.dinga_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.paypar_amount && other.paypar_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Redeem 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 "#{ number_with_precision(other.paypar_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.paymal_amount && other.paymal_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Paymal 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 "#{ number_with_precision(other.paymal_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.giftvoucher_amount && other.giftvoucher_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "GiftVoucher 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 "#{ number_with_precision(other.giftvoucher_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
end end
else else
y_position = cursor y_position = cursor

View File

@@ -179,44 +179,114 @@ class CloseCashierPdf < Prawn::Document
if shift_sale.other_sales > 0 if shift_sale.other_sales > 0
other_payment.each do |other| other_payment.each do |other|
@total_foc = other.foc_amount.round(2) @total_foc = other.foc_amount.round(2)
y_position = cursor if other.mpu_amount && other.mpu_amount.to_f > 0
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
text "MPU Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
end text "MPU Payment :", :size => self.item_font_size, :align => :right
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do end
text "#{ number_with_precision(other.mpu_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "#{ number_with_precision(other.mpu_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
y_position = cursor if other.visa_amount && other.visa_amount.to_f > 0
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
text "VISA Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
end text "VISA Payment :", :size => self.item_font_size, :align => :right
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do end
text "#{number_with_precision(other.visa_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "#{number_with_precision(other.visa_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
y_position = cursor if other.master_amount && other.master_amount.to_f > 0
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
text "Master Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
end text "Master Payment :", :size => self.item_font_size, :align => :right
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do end
text "#{ number_with_precision(other.master_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "#{ number_with_precision(other.master_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
y_position = cursor if other.jcb_amount && other.jcb_amount.to_f > 0
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
text "JCB Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
end text "JCB Payment :", :size => self.item_font_size, :align => :right
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do end
text "#{ number_with_precision(other.jcb_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "#{ number_with_precision(other.jcb_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
y_position = cursor if other.unionpay_amount && other.unionpay_amount.to_f > 0
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do y_position = cursor
text "Redeem Payment :", :size => self.item_font_size, :align => :right bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "UNIONPAY 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 "#{ number_with_precision(other.unionpay_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do
text "#{ number_with_precision(other.paypar_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right if other.alipay_amount && other.alipay_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Alipay 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 "#{ number_with_precision(other.alipay_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.junctionpay_amount && other.junctionpay_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "JunctionPay 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 "#{ number_with_precision(other.junctionpay_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.dinga_amount && other.dinga_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Dinga 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 "#{ number_with_precision(other.dinga_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.paypar_amount && other.paypar_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Redeem 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 "#{ number_with_precision(other.paypar_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.paymal_amount && other.paymal_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "Paymal 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 "#{ number_with_precision(other.paymal_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end
if other.giftvoucher_amount && other.giftvoucher_amount.to_f > 0
y_position = cursor
bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do
text "GiftVoucher 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 "#{ number_with_precision(other.giftvoucher_amount, :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size, :align => :right
end
end end
end end
else else