change credit payment query for dashboard and daily sales

This commit is contained in:
phyusin
2018-07-30 16:10:17 +06:30
parent cbb649c8d5
commit ca14b1e399
5 changed files with 39 additions and 30 deletions

View File

@@ -126,8 +126,11 @@ class HomeController < ApplicationController
if !employee_sales.nil? if !employee_sales.nil?
employee_sales.each do |emp| employee_sales.each do |emp|
emp_data = [] emp_data = []
emp_data.push([emp.e_name, emp.payment_amount]) if emp.payment_amount > 0
@employee_sales.push({'name' => emp.payment_method, 'data' => emp_data}) emp_data.push([emp.e_name, emp.payment_amount])
@employee_sales.push({'name' => emp.payment_method, 'data' => emp_data})
end
end end
end end
@inventories = StockJournal.inventory_balances(today,@from,@to,@from_time,@to_time).sum(:balance) @inventories = StockJournal.inventory_balances(today,@from,@to,@from_time,@to_time).sum(:balance)

View File

@@ -725,12 +725,13 @@ class Sale < ApplicationRecord
def self.daily_sales_list(from,to) def self.daily_sales_list(from,to)
sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN
FROM sale_payments (SUM(sale_payments.payment_amount) + SUM(sale_payments.outstanding_amount)) ELSE 0 END)
INNER JOIN sale_audits sa FROM sale_payments
ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id INNER JOIN sale_audits sa ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id
INNER JOIN sales ON sa.sale_id = sales.sale_id INNER JOIN sales s ON s.sale_id=sa.sale_id
WHERE sales.sale_status='completed' AND sales.receipt_date between '#{from}' and '#{to}'" WHERE s.sale_status='completed'
AND DATE_FORMAT(CONVERT_TZ(s.receipt_date,'+00:00','+06:30'),'%Y-%m-%d') = DATE_FORMAT(CONVERT_TZ(sales.receipt_date,'+00:00','+06:30'),'%Y-%m-%d')"
payments_total = Sale.select("CAST((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')) AS DATE) as sale_date, payments_total = Sale.select("CAST((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')) AS DATE) as sale_date,
SUM(case when (sale_payments.payment_method='mpu') then sale_payments.payment_amount else 0 end) as mpu_amount, SUM(case when (sale_payments.payment_method='mpu') then sale_payments.payment_amount else 0 end) as mpu_amount,
@@ -747,7 +748,7 @@ def self.daily_sales_list(from,to)
(CASE WHEN (SUM(case when (sale_payments.payment_method='creditnote') then sale_payments.payment_amount else 0 end)) > 0 THEN (SUM(case when (sale_payments.payment_method='creditnote') then sale_payments.payment_amount else 0 end) - (#{sub_query})) ELSE 0 END) as credit_amount, (CASE WHEN (SUM(case when (sale_payments.payment_method='creditnote') then sale_payments.payment_amount else 0 end)) > 0 THEN (SUM(case when (sale_payments.payment_method='creditnote') then sale_payments.payment_amount else 0 end) - (#{sub_query})) ELSE 0 END) as credit_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='giftvoucher') then sale_payments.payment_amount else 0 end) as giftvoucher_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")
.joins(" left join sale_payments on sale_payments.sale_id = sales.sale_id") .joins(" join sale_payments on sale_payments.sale_id = sales.sale_id")
.where("sale_status = ? AND sales.receipt_date between ? and ? ", 'completed', from, to) .where("sale_status = ? AND sales.receipt_date between ? and ? ", 'completed', from, to)
.group("DATE_FORMAT((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')),'%Y-%m-%d')") .group("DATE_FORMAT((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')),'%Y-%m-%d')")
@@ -1113,7 +1114,8 @@ def self.get_by_shift_sale_credit_payment(shift_sale_range,shift,from,to,filter)
INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id
WHERE sale_audits.sale_id = s.sale_id" WHERE sale_audits.sale_id = s.sale_id"
sub_query1 = "SELECT (CASE WHEN SUM(payment_amount) > 0 THEN SUM(payment_amount) ELSE 0 END) sub_query1 = "SELECT (CASE WHEN SUM(payment_amount) > 0 THEN SUM(payment_amount) -
(SUM(payment_amount) - (SELECT SUM(payment_amount) FROM sale_payments WHERE payment_method='creditnote' AND sale_id=s.sale_id)) ELSE 0 END)
FROM `sale_payments` FROM `sale_payments`
INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id
WHERE sale_audits.sale_id = s.sale_id" WHERE sale_audits.sale_id = s.sale_id"
@@ -1498,7 +1500,7 @@ end
else else
query = query.where('sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ?',from,to) query = query.where('sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ?',from,to)
end end
query = query.group("date_format(CONVERT_TZ(receipt_date,'+00:00', 'SYSTEM'), '%I %p')") query = query.group("date_format(CONVERT_TZ(receipt_date,'+00:00', '+06:30'), '%I %p')")
.order('receipt_date') .order('receipt_date')
else else
if current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor' if current_user.role == 'administrator' || current_user.role == 'manager' || current_user.role == 'account' || current_user.role == 'supervisor'
@@ -1508,7 +1510,7 @@ end
else else
query = query.where('sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ?',from,to) query = query.where('sale_status = "completed" and DATE_FORMAT(CONVERT_TZ(receipt_date,"+00:00","+06:30"),"%Y-%m-%d") between ? and ?',from,to)
end end
query = query.group("date_format(CONVERT_TZ(receipt_date,'+00:00', 'SYSTEM'), '%I %p')") query = query.group("date_format(CONVERT_TZ(receipt_date,'+00:00', '+06:30'), '%I %p')")
.order('receipt_date') .order('receipt_date')
else else
shift = ShiftSale.current_open_shift(current_user.id) shift = ShiftSale.current_open_shift(current_user.id)
@@ -1551,7 +1553,7 @@ end
def self.employee_sales(today,current_user,from,to,from_time,to_time) def self.employee_sales(today,current_user,from,to,from_time,to_time)
#sub query for credit payment #sub query for credit payment
sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) AS payment_amount sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) + SUM(sale_payments.outstanding_amount) ELSE 0 END) AS payment_amount
FROM sale_payments FROM sale_payments
INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id
INNER JOIN sales ON sale_audits.sale_id = sales.sale_id INNER JOIN sales ON sale_audits.sale_id = sales.sale_id
@@ -1741,7 +1743,7 @@ end
end end
def self.credit_payment(today,current_user=nil,from=nil,to=nil,from_time=nil,to_time=nil) def self.credit_payment(today,current_user=nil,from=nil,to=nil,from_time=nil,to_time=nil)
sub_query = SalePayment.select("(CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) as total_credit_payment") sub_query = SalePayment.select("(CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) + SUM(sale_payments.outstanding_amount) ELSE 0 END) as total_credit_payment")
.joins(" JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id") .joins(" JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id")
.joins(" JOIN sales ON sale_audits.sale_id = sales.sale_id") .joins(" JOIN sales ON sale_audits.sale_id = sales.sale_id")
.where("sales.sale_status='completed'") .where("sales.sale_status='completed'")
@@ -1969,7 +1971,7 @@ end
time_query = " and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'" time_query = " and DATE_FORMAT(CONVERT_TZ(sales.receipt_date, '+00:00', '+06:30'),'%H:%i') between '#{from_time}' and '#{to_time}'"
end end
sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) + SUM(sale_payments.outstanding_amount) ELSE 0 END)
FROM sale_payments FROM sale_payments
INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id
INNER JOIN sales ON sale_audits.sale_id = sales.sale_id INNER JOIN sales ON sale_audits.sale_id = sales.sale_id

View File

@@ -21,7 +21,7 @@ class SalePayment < ApplicationRecord
invoice_sale_payments = invoice.sale_payments invoice_sale_payments = invoice.sale_payments
amount_due = invoice.grand_total amount_due = invoice.grand_total
end end
invoice_sale_payments.each do |payment| invoice_sale_payments.each do |payment|
if (payment.payment_status == "paid" ) if (payment.payment_status == "paid" )
amount_due = amount_due - payment.payment_amount amount_due = amount_due - payment.payment_amount

View File

@@ -116,13 +116,15 @@
discount_amount = order_reservation.discount_amount discount_amount = order_reservation.discount_amount
delivery_fee = order_reservation.delivery_fee ? order_reservation.delivery_fee : 0.0 delivery_fee = order_reservation.delivery_fee ? order_reservation.delivery_fee : 0.0
convenience_charge = order_reservation.convenience_charge convenience_charge = order_reservation.convenience_charge
JSON.parse(order_reservation.taxes).each do |tax_data| if !JSON.parse(order_reservation.taxes).empty?
if tax_data[0] == "delivery_tax" JSON.parse(order_reservation.taxes).each do |tax_data|
delivery_tax = tax_data[1] if tax_data[0] == "delivery_tax"
elsif tax_data[0] == "convenience_tax" delivery_tax = tax_data[1]
convenience_tax = tax_data[1] elsif tax_data[0] == "convenience_tax"
elsif tax_data[0] == "commercial_tax" convenience_tax = tax_data[1]
commercial_tax = tax_data[1] elsif tax_data[0] == "commercial_tax"
commercial_tax = tax_data[1]
end
end end
end end
%> %>

View File

@@ -104,13 +104,15 @@
discount_amount = @order_reservation.discount_amount discount_amount = @order_reservation.discount_amount
delivery_fee = @order_reservation.delivery_fee ? @order_reservation.delivery_fee : 0.0 delivery_fee = @order_reservation.delivery_fee ? @order_reservation.delivery_fee : 0.0
convenience_charge = @order_reservation.convenience_charge convenience_charge = @order_reservation.convenience_charge
JSON.parse(@order_reservation.taxes).each do |tax_data| if !JSON.parse(order_reservation.taxes).empty?
if tax_data[0] == "delivery_tax" JSON.parse(@order_reservation.taxes).each do |tax_data|
delivery_tax = tax_data[1] if tax_data[0] == "delivery_tax"
elsif tax_data[0] == "convenience_tax" delivery_tax = tax_data[1]
convenience_tax = tax_data[1] elsif tax_data[0] == "convenience_tax"
elsif tax_data[0] == "commercial_tax" convenience_tax = tax_data[1]
commercial_tax = tax_data[1] elsif tax_data[0] == "commercial_tax"
commercial_tax = tax_data[1]
end
end end
end end
total_discount_amount += discount_amount.to_f total_discount_amount += discount_amount.to_f