Fix: Void amount in Daily Sale Report was not being handled correctly.
This commit is contained in:
@@ -751,6 +751,14 @@ class Sale < ApplicationRecord
|
|||||||
.where('(sale_status = ? OR sale_status = ?) AND sales.receipt_date between ? AND ? ', 'completed', 'void', from, to)
|
.where('(sale_status = ? OR sale_status = ?) AND sales.receipt_date between ? AND ? ', 'completed', 'void', from, to)
|
||||||
.group('sale_id')
|
.group('sale_id')
|
||||||
|
|
||||||
|
void_audits = SaleAudit.select(
|
||||||
|
"`sale_audits`.`sale_id`",
|
||||||
|
"`sale_audits`.`action`",
|
||||||
|
"MAX(`sale_audits`.`created_at`) as latest_audit"
|
||||||
|
)
|
||||||
|
.where(action: ['SALEVOID', 'CANCEL_MMQR_PAYMENT'])
|
||||||
|
.group("`sale_audits`.`sale_id`")
|
||||||
|
|
||||||
commercial_tax = ''
|
commercial_tax = ''
|
||||||
if tax_profiles.present?
|
if tax_profiles.present?
|
||||||
sale_taxes = sale_taxes.select(tax_profiles.map { |name| "SUM(case when (sale_taxes.tax_name = '#{name}') then sale_taxes.tax_payable_amount else 0 end) as `#{name.parameterize}`"}.join(', '))
|
sale_taxes = sale_taxes.select(tax_profiles.map { |name| "SUM(case when (sale_taxes.tax_name = '#{name}') then sale_taxes.tax_payable_amount else 0 end) as `#{name.parameterize}`"}.join(', '))
|
||||||
@@ -765,8 +773,8 @@ class Sale < ApplicationRecord
|
|||||||
IFNULL(SUM(case when (sale_status='completed') then old_grand_total else 0 end),0) as old_grand_total,
|
IFNULL(SUM(case when (sale_status='completed') then old_grand_total else 0 end),0) as old_grand_total,
|
||||||
IFNULL(SUM(case when (sale_status='completed') then total_discount else 0 end),0) as total_discount,
|
IFNULL(SUM(case when (sale_status='completed') then total_discount else 0 end),0) as total_discount,
|
||||||
IFNULL(SUM(case when (sale_status='completed') then amount_changed else 0 end),0) as total_change_amount,
|
IFNULL(SUM(case when (sale_status='completed') then amount_changed else 0 end),0) as total_change_amount,
|
||||||
IFNULL(SUM(case when (sale_status='void' AND sa_salevoid.sale_audit_id IS NOT NULL) then grand_total else 0 end),0) as void_amount,
|
IFNULL(SUM(CASE WHEN sale_status = 'void' AND void_audits.action = 'SALEVOID' THEN grand_total ELSE 0 END),0) as void_amount,
|
||||||
IFNULL(SUM(case when (sale_status='void' AND sa_mmqr.sale_audit_id IS NOT NULL) then grand_total else 0 end),0) as mmqr_cancelled_void_amount,
|
IFNULL(SUM(CASE WHEN sale_status = 'void' AND void_audits.action = 'CANCEL_MMQR_PAYMENT' THEN grand_total ELSE 0 END),0) as mmqr_cancelled_void_amount,
|
||||||
IFNULL(SUM(case when (sale_status='completed') then rounding_adjustment else 0 end),0) as rounding_adj,
|
IFNULL(SUM(case when (sale_status='completed') then rounding_adjustment else 0 end),0) as rounding_adj,
|
||||||
#{tax_profiles.map { |name| "IFNULL(SUM(case when (sale_status='completed') then `#{name.parameterize}` else 0 end),0) as `#{name.parameterize}`"}.push('').join(', ') if tax_profiles.present?}
|
#{tax_profiles.map { |name| "IFNULL(SUM(case when (sale_status='completed') then `#{name.parameterize}` else 0 end),0) as `#{name.parameterize}`"}.push('').join(', ') if tax_profiles.present?}
|
||||||
IFNULL(SUM(case when (sale_status='completed') then total_tax else 0 end),0) as tax,
|
IFNULL(SUM(case when (sale_status='completed') then total_tax else 0 end),0) as tax,
|
||||||
@@ -785,8 +793,7 @@ class Sale < ApplicationRecord
|
|||||||
#{sales.to_sql}
|
#{sales.to_sql}
|
||||||
) as s
|
) as s
|
||||||
LEFT JOIN (#{sale_taxes.to_sql}) AS st ON s.sale_id = st.sale_id
|
LEFT JOIN (#{sale_taxes.to_sql}) AS st ON s.sale_id = st.sale_id
|
||||||
LEFT JOIN sale_audits sa_salevoid ON s.sale_id = sa_salevoid.sale_id AND sa_salevoid.action = 'SALEVOID'
|
LEFT JOIN (#{void_audits.to_sql}) AS `void_audits` ON `void_audits`.`sale_id` = `s`.`sale_id`
|
||||||
LEFT JOIN sale_audits sa_mmqr ON s.sale_id = sa_mmqr.sale_id AND sa_mmqr.action = 'CANCEL_MMQR_PAYMENT'
|
|
||||||
GROUP BY DATE(CONVERT_TZ(receipt_date,'+00:00','+06:30'))").to_hash.map(&:symbolize_keys)
|
GROUP BY DATE(CONVERT_TZ(receipt_date,'+00:00','+06:30'))").to_hash.map(&:symbolize_keys)
|
||||||
return daily_total
|
return daily_total
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user