Changed raw SQL query to activerecord

This commit is contained in:
yarzar_code
2020-01-03 10:16:45 +06:30
parent 2a856c3cc1
commit 0202bc7827
10 changed files with 124 additions and 241 deletions

View File

@@ -82,20 +82,7 @@ class InventoryDefinition < ApplicationRecord
end end
def self.get_by_category(filter) def self.get_by_category(filter)
# THEN (SELECT min(balance) FROM stock_journals least_stock = StockJournal.select(:balance).joins("JOIN inventory_definitions ON stock_journals.item_code = inventory_definitions.item_code").order(:id => :desc).limit(1).to_sql
# least_stock = "SELECT (CASE WHEN stock_journals.remark != 'out of stock'
# THEN (SELECT balance FROM stock_journals
# WHERE item_code = inventory_definitions.item_code AND remark != 'out of stock'
# ORDER BY created_at DESC LIMIT 1) ELSE 0 END)
# FROM stock_journals
# WHERE stock_journals.item_code = inventory_definitions.item_code
# ORDER BY stock_journals.created_at DESC LIMIT 1"
least_stock = "(SELECT
(SELECT balance FROM stock_journals WHERE item_code = inventory_definitions.item_code
ORDER BY id DESC LIMIT 1)
FROM stock_journals
WHERE stock_journals.item_code = inventory_definitions.item_code
ORDER BY stock_journals.created_at DESC LIMIT 1)"
@inventory_definitions = InventoryDefinition.select("inventory_definitions.*, @inventory_definitions = InventoryDefinition.select("inventory_definitions.*,
(CASE WHEN sj.credit IS NULL THEN 0 ELSE sj.credit END) as credit, (CASE WHEN sj.credit IS NULL THEN 0 ELSE sj.credit END) as credit,

View File

@@ -1,5 +1,5 @@
class MembershipSetting < ApplicationRecord class MembershipSetting < ApplicationRecord
scope :active, -> { where(is_active: true) } scope :active, -> { where(is_active: true) }
MembershipSetting = MembershipSetting.find_by_id(1) MembershipSetting = MembershipSetting.first
end end

View File

@@ -42,17 +42,17 @@ class Printer::PrinterWorker
end end
def print(file_path, printer_destination = nil ) def print(file_path, printer_destination = nil )
if printer_destination.nil? # if printer_destination.nil?
printer_destination = self.printer_destination # printer_destination = self.printer_destination
end # end
copy = self.print_copies # copy = self.print_copies
#Print only when printer information is not null # #Print only when printer information is not null
if !self.printer_destination.nil? # if !self.printer_destination.nil?
(1..copy).each do # (1..copy).each do
page = Cups::PrintJob.new(file_path, printer_destination) # page = Cups::PrintJob.new(file_path, printer_destination)
page.print # page.print
end # end
end # end
end end
end end

View File

@@ -1356,94 +1356,56 @@ def self.get_separate_tax(shift_sale_range=nil,shift,from,to,payment_type)
end end
def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type) def self.get_payment_method_by_shift(shift_sale_range,shift,from,to,payment_type)
sub_query = "SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) payments_total = SalePayment.select("
FROM sale_payments sales.receipt_date as sale_date,
INNER JOIN sale_audits sa SUM(case when (sale_payments.payment_method='mpu') then sale_payments.payment_amount else 0 end) as mpu_amount,
ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id SUM(case when (sale_payments.payment_method='master') then sale_payments.payment_amount else 0 end) as master_amount,
INNER JOIN sales ON sa.sale_id = sales.sale_id SUM(case when (sale_payments.payment_method='visa') then sale_payments.payment_amount else 0 end) as visa_amount,
WHERE sales.sale_status='completed' " 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='paypar') then sale_payments.payment_amount else 0 end) as paypar_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='KBZPay') then sale_payments.payment_amount else 0 end) as kbzpay_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='dinga') then sale_payments.payment_amount else 0 end) as dinga_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='cash') then sale_payments.payment_amount else 0 end) as cash_amount,
SUM(case when (sale_payments.payment_method='cash') then
sales.amount_changed else 0 end) as total_change_amount,
SUM(case when (sale_payments.payment_method='creditnote') then
sale_payments.payment_amount else 0 end) -
SUM(case when (sale_audits.sale_audit_id IS NOT NULL) then
sale_payments.payment_amount 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='foc') then sale_payments.payment_amount else 0 end) as foc_amount")
.joins(:sale).left_joins(:sale_audit)
.merge(Sale.completed.receipt_date_between(from, to))
sales = Sale.select(Sale.column_names)
.select("SUM(sale_payments.payment_amount) as payment_for_credits_amount")
.left_joins(:payments_for_credits)
.group(:sale_id)
sale_payment = SalePayment.select("sales.amount_changed as change_amount,sales.receipt_no, sale_payments.*, sales.receipt_date as sale_date,
sales.cashier_name as cashier_name")
.joins("JOIN (#{sales.to_sql}) as sales ON sales.sale_id = sale_payments.sale_id")
.where("sale_payments.payment_method != 'creditnote' OR payment_for_credits_amount - sale_payments.payment_amount <= 0")
.where.not(payment_amount: 0)
.merge(Sale.completed.receipt_date_between(from, to))
if shift.present? if shift.present?
shift_ids = shift.map(&:id).join(",") payments_total = payments_total.where(sales: {shift_sale_id: shift.to_a})
sub_query += " AND sales.shift_sale_id in (#{shift_ids})" sale_payment = sale_payment.merge(Sale.where(sales: {shift_sale_id: shift.to_a}))
elsif shift_sale_range.present? elsif shift_sale_range.present?
shift_ids = shift_sale_range.map(&:id).join(",") payments_total = payments_total.where(sales: {shift_sale_id: shift_sale_range.to_a})
sub_query += " AND sales.shift_sale_id in (#{shift_ids})" sale_payment = sale_payment.merge(Sale.where(sales: {shift_sale_id: shift_sale_range.to_a}))
else
sub_query += " AND sales.receipt_date between '#{from}' and '#{to}'"
end end
sub_query1 = "CASE WHEN (SELECT SUM(sale_payments.payment_amount) if payment_type.present?
FROM sale_payments sale_payment = sale_payment.where(payment_method: payment_type)
WHERE sale_payments.payment_method = 'creditnote'
AND sale_payments.sale_id = s.sale_id
) - (SELECT SUM(sale_payments.payment_amount)
FROM sale_payments
INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id
WHERE sale_payments.sale_id = s.sale_id) = 0
THEN sale_payments.sale_id = s.sale_id
AND sale_payments.payment_method!='creditnote' ELSE 1 END"
sale_payment = SalePayment.select("s.amount_changed as change_amount,s.receipt_no, sale_payments.*,s.receipt_date as sale_date,
s.cashier_name as cashier_name")
.joins("INNER JOIN sales s ON s.sale_id = sale_payments.sale_id")
.where("(#{sub_query1}) ")
.order('s.receipt_no DESC')
payments_total = SalePayment.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='master') then sale_payments.payment_amount else 0 end) as master_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='jcb') then sale_payments.payment_amount else 0 end) as jcb_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='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='KBZPay') then sale_payments.payment_amount else 0 end) as kbzpay_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='dinga') then sale_payments.payment_amount else 0 end) as dinga_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='cash') then sale_payments.payment_amount else 0 end) as cash_amount,
SUM(case when (sale_payments.payment_method='cash') then sales.amount_changed else 0 end) as total_change_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='foc') then sale_payments.payment_amount else 0 end) as foc_amount")
.joins("join sales on sales.sale_id = sale_payments.sale_id")
if shift.present?
all_total = payments_total.where("sales.shift_sale_id in (?) and sale_status= 'completed' and sale_payments.payment_amount != 0", shift.to_a)
# .group("DATE_FORMAT((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')),'%Y-%m-%d')")
if payment_type.blank?
sale_type = sale_payment.where(" s.sale_status = 'completed' and payment_amount != 0 and s.shift_sale_id in (?)",shift.to_a)
.order("payment_method")
else
sale_type = sale_payment.where(" payment_method= '#{payment_type}' and payment_amount != 0 and s.sale_status = 'completed' and s.shift_sale_id in (?)",shift.to_a)
end
elsif shift_sale_range.present?
all_total = payments_total.where("sales.shift_sale_id in (?) and sale_status= 'completed' and sale_payments.payment_amount != 0", shift_sale_range.to_a)
# .group("DATE_FORMAT((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')),'%Y-%m-%d')")
if payment_type.blank?
sale_type = sale_payment.where(" s.sale_status = 'completed' and payment_amount != 0 and s.shift_sale_id in (?)",shift_sale_range.to_a)
.order("payment_method")
else
sale_type = sale_payment.where(" payment_method='#{payment_type}' and payment_amount != 0 and s.sale_status = 'completed' and s.shift_sale_id in (?)",shift_sale_range.to_a)
end
else
all_total = payments_total.where("sales.receipt_date between ? and ? and sales.sale_status= 'completed' and sale_payments.payment_amount != 0", from,to)
# .group("DATE_FORMAT((CONVERT_TZ(sales.receipt_date,'+00:00','+06:30')),'%Y-%m-%d')")
if payment_type.blank?
sale_type = sale_payment.where(" s.sale_status = 'completed' and payment_amount != 0 and s.receipt_date between ? and ? ",from,to)
.order("payment_method")
else
sale_type = sale_payment.where(" payment_method='#{payment_type}' and payment_amount != 0 and s.sale_status = 'completed' and s.receipt_date between ? and ? ",from,to)
end
end end
return all_total,sale_type return payments_total, sale_payment
end end
def self.get_wastes_and_spoilages(from,to,status) def self.get_wastes_and_spoilages(from,to,status)

View File

@@ -70,22 +70,14 @@ class SalePayment < ApplicationRecord
self.sale = invoice self.sale = invoice
self.received_amount = cash_amount self.received_amount = cash_amount
self.payment_reference = remark self.payment_reference = remark
# puts action_by
# puts "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
self.action_by = action_by self.action_by = action_by
#get all payment for this invoices #get all payment for this invoices
if payment_for if payment_for
invoice_sale_payments = SalePayment.get_sale_payment_for_credit(invoice) amount_due = SalePayment.get_credit_amount_due_left(self.sale_id).first.payment_amount
amount_due = SalePayment.get_credit_amount_due_left(self.sale_id)[0] ? SalePayment.get_credit_amount_due_left(self.sale_id)[0].payment_amount.to_f : 0
else else
invoice_sale_payments = invoice.sale_payments amount_due = invoice.sale_payments
amount_due = invoice.grand_total .map(&:payment_amount).reduce(invoice.grand_total, :-)
end
invoice_sale_payments.each do |payment|
if (payment.payment_status == "paid" )
amount_due = amount_due - payment.payment_amount
end
end end
if amount_due > 0 if amount_due > 0
@@ -118,7 +110,6 @@ class SalePayment < ApplicationRecord
when "paypar" when "paypar"
payment_status = paypar_payment payment_status = paypar_payment
when "foc" when "foc"
puts ">>>>> FOC <<<<<"
payment_status = foc_payment payment_status = foc_payment
when "paymal" when "paymal"
payment_status,membership_data = paymal_payment payment_status,membership_data = paymal_payment
@@ -954,64 +945,30 @@ class SalePayment < ApplicationRecord
end end
def self.get_credit_amount_due_left(sale_id) def self.get_credit_amount_due_left(sale_id)
query = SalePayment.select("(SUM(sale_payments.payment_amount) - SalePayment.left_joins(:sale_audit).where(sale_id: sale_id)
(CASE WHEN SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id .select("SUM(CASE WHEN sale_payments.payment_method = 'creditnote' THEN sale_payments.payment_amount ELSE 0 END) - SUM(CASE WHEN sale_audits.sale_audit_id IS NOT NULL THEN sale_payments.payment_amount ELSE 0 END) AS payment_amount")
THEN SUM(sale_payments.payment_amount) ELSE 0 END)) as payment_amount")
.joins(" LEFT JOIN sale_audits sa on SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id")
.where("sale_payments.payment_method = 'creditnote' AND sale_payments.sale_id = '#{sale_id}'")
return query
end end
def self.get_credit_total_left(sale_id) def self.get_credit_total_left(sale_id)
query = SalePayment.select("(SUM(sale_payments.payment_amount) - SalePayment.left_joins(:sale_audit).where(sale_id: sale_id)
(SELECT (CASE WHEN SUM(sale_payments.payment_amount) > 0 THEN SUM(sale_payments.payment_amount) ELSE 0 END) AS payment_amount .select("SUM(CASE WHEN sale_payments.payment_method = 'creditnote' THEN sale_payments.payment_amount ELSE 0 END) - SUM(CASE WHEN sale_audits.sale_audit_id IS NOT NULL THEN sale_payments.payment_amount ELSE 0 END) AS payment_amount")
FROM sale_payments
INNER JOIN sale_audits ON SUBSTRING_INDEX(sale_audits.remark,'||',1)=sale_payments.sale_payment_id
WHERE sale_payments.sale_id = '#{sale_id}')) as payment_amount")
.where("sale_payments.payment_method = 'creditnote' AND sale_payments.sale_id = '#{sale_id}'")
return query
end end
def self.get_sale_payment_for_credit(sale_data) def self.get_sale_payment_for_credit(sale_data)
query = sale_data.sale_payments sale_data.sale_payments
.joins(" JOIN sale_audits sa on SUBSTRING_INDEX(sa.remark,'||',1)=sale_payments.sale_payment_id") .joins(:sale_audit)
.where("sa.action='SALEPAYMENT' AND sa.remark IS NOT NULL .where(created_at: 1.days.ago.beginning_of_day..DateTime::Infinity.new)
AND DATE_FORMAT(sale_payments.created_at,'%Y-%m-%d') = '#{DateTime.now.strftime('%Y-%m-%d')}' OR DATE_FORMAT(sale_payments.created_at,'%Y-%m-%d') = '#{Date.today.prev_day}'
") #AND sale_payments.payment_method!='cash'
.group("sale_payments.sale_payment_id")
return query
end end
def get_credit_payment_left def get_credit_payment_left
sql = "SELECT SUM(payment_amount) SalePayment.left_joins(:sale_audit).where(sale_id: sale_id)
from sale_payments .select("SUM(CASE WHEN sale_payments.payment_method = 'creditnote' THEN sale_payments.payment_amount ELSE 0 END) - SUM(CASE WHEN sale_audits.sale_audit_id IS NOT NULL THEN sale_payments.payment_amount ELSE 0 END) AS payment_amount")
join sale_audits on SUBSTRING_INDEX(remark,'||',1)=sale_payment_id
where sale_payments.sale_id = '#{self.sale_id}'"
query = SalePayment.select("(SUM(payment_amount) - (#{sql})) as payment_amount")
.where("sale_payments.payment_method = 'creditnote' AND sale_payments.sale_id = '#{self.sale_id}'")
return query
end end
def self.get_sale_payments(sale_data) def self.get_sale_payments(sale_data)
sql = "SELECT SUM(payment_amount) sale_data.sale_payments
FROM sale_payments where payment_method='creditnote' .merge(SalePayment.where.not(payment_method: 'creditnote')
and sale_id='#{sale_data.sale_id}'" .or(SalePayment.where.not(SalePayment.arel_table[:payment_amount].lteq(sale_data.sale_payments.joins(:sale_audit).sum(:payment_amount)))))
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'"
query = sale_data.sale_payments
.where("CASE WHEN ((#{sql}) - (#{sql1})
ELSE SUM(payment_amount) END
FROM sale_payments
JOIN sales s ON s.sale_id=sale_payments.sale_id
JOIN sale_audits sa
ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payment_id
where sa.sale_id='#{sale_data.sale_id}')) = 0
THEN payment_method!='creditnote' ELSE 1 END")
.group("sale_payments.sale_payment_id")
return query
end end
private private

View File

@@ -379,25 +379,12 @@ class ReceiptBillA5Pdf < Prawn::Document
def sale_payment(sale_data,precision,delimiter) def sale_payment(sale_data,precision,delimiter)
stroke_horizontal_rule stroke_horizontal_rule
# move_down 10
sql = "SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'"
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'"
sale_payments = SalePayment.select("SUM(sale_payments.payment_amount) as payment_amount,sale_payments.payment_method") query = sale_data.sale_payments
.where("(CASE WHEN ((#{sql}) - (#{sql1}) .merge(SalePayment.where.not(payment_method: 'creditnote')
ELSE SUM(payment_amount) END .or(SalePayment.where.not(SalePayment.arel_table[:payment_amount].lteq(sale_data.sale_payments.joins(:sale_audit).sum(:payment_amount)))))
FROM sale_payments
JOIN sales s ON s.sale_id=sale_payments.sale_id query.each do |payment|
JOIN sale_audits sa
ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payment_id
where sa.sale_id='#{sale_data.sale_id}')) = 0
THEN payment_method!='creditnote' ELSE 1 END) AND sale_id = ?", sale_data.sale_id)
.group("payment_method")
sale_payments.each do |payment|
y_position = cursor y_position = cursor
if payment.payment_method == "paypar" if payment.payment_method == "paypar"
bounding_box([0,y_position], :width =>self.description_width, :height => self.item_height) do bounding_box([0,y_position], :width =>self.description_width, :height => self.item_height) do
@@ -598,12 +585,16 @@ class ReceiptBillA5Pdf < Prawn::Document
end end
def sign(sale_data) def sign(sale_data)
sql = "SELECT SUM(payment_amount) # sql = "SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote' # FROM sale_payments where payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'" # and sale_id='#{sale_data.sale_id}'"
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount) # sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote' # FROM sale_payments where payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'" # and sale_id='#{sale_data.sale_id}'"
sql = SalePayment.select("(SUM(payment_amount))").where("payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'").to_sql
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ("
sql1 += sql
SalePayment.where("(CASE WHEN ((#{sql}) - (#{sql1}) SalePayment.where("(CASE WHEN ((#{sql}) - (#{sql1})
ELSE SUM(payment_amount) END ELSE SUM(payment_amount) END

View File

@@ -438,12 +438,15 @@ class ReceiptBillPdf < Prawn::Document
def sale_payment(sale_data,precision,delimiter) def sale_payment(sale_data,precision,delimiter)
stroke_horizontal_rule stroke_horizontal_rule
#move_down line_move #move_down line_move
sql = "SELECT SUM(payment_amount) # sql = "SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote' # FROM sale_payments where payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'" # and sale_id='#{sale_data.sale_id}'"
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount) sql = SalePayment.select("(SUM(payment_amount))").where("payment_method='creditnote' and sale_id='#{sale_data.sale_id}'").to_sql
FROM sale_payments where payment_method='creditnote' # sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount)
and sale_id='#{sale_data.sale_id}'" # FROM sale_payments where payment_method='creditnote'
# and sale_id='#{sale_data.sale_id}'"
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ("
sql1 += sql
sale_payments = SalePayment.select("SUM(sale_payments.payment_amount) as payment_amount,sale_payments.payment_method") sale_payments = SalePayment.select("SUM(sale_payments.payment_amount) as payment_amount,sale_payments.payment_method")
.where("(CASE WHEN ((#{sql}) - (#{sql1}) .where("(CASE WHEN ((#{sql}) - (#{sql1})
@@ -660,21 +663,11 @@ class ReceiptBillPdf < Prawn::Document
end end
def sign(sale_data) def sign(sale_data)
sql = "SELECT SUM(payment_amount) query = sale_data.sale_payments
FROM sale_payments where payment_method='creditnote' .merge(SalePayment.where.not(payment_method: 'creditnote')
and sale_id='#{sale_data.sale_id}'" .or(SalePayment.where.not(SalePayment.arel_table[:payment_amount].lteq(sale_data.sale_payments.joins(:sale_audit).sum(:payment_amount)))))
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote' query.each do |payment|
and sale_id='#{sale_data.sale_id}'"
SalePayment.where("(CASE WHEN ((#{sql}) - (#{sql1})
ELSE SUM(payment_amount) END
FROM sale_payments
JOIN sales s ON s.sale_id=sale_payments.sale_id
JOIN sale_audits sa
ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payment_id
where sa.sale_id='#{sale_data.sale_id}')) = 0
THEN payment_method!='creditnote' ELSE 1 END) AND sale_id = ?", sale_data.sale_id).each do |payment|
if payment.payment_method == "creditnote" if payment.payment_method == "creditnote"
y_position = cursor y_position = cursor

View File

@@ -377,12 +377,16 @@ class ReceiptBillStarPdf < Prawn::Document
def sale_payment(sale_data,precision,delimiter) def sale_payment(sale_data,precision,delimiter)
stroke_horizontal_rule stroke_horizontal_rule
#move_down line_move #move_down line_move
sql = "SELECT SUM(payment_amount) # sql = "SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote' # FROM sale_payments where payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'" # and sale_id='#{sale_data.sale_id}'"
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount) # sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote' # FROM sale_payments where payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'" # and sale_id='#{sale_data.sale_id}'"
sql = SalePayment.select("(SUM(payment_amount))").where("payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'").to_sql
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ("
sql1 += sql
sale_payments = SalePayment.select("SUM(sale_payments.payment_amount) as payment_amount,sale_payments.payment_method") sale_payments = SalePayment.select("SUM(sale_payments.payment_amount) as payment_amount,sale_payments.payment_method")
.where("(CASE WHEN ((#{sql}) - (#{sql1}) .where("(CASE WHEN ((#{sql}) - (#{sql1})
@@ -599,21 +603,11 @@ class ReceiptBillStarPdf < Prawn::Document
end end
def sign(sale_data) def sign(sale_data)
sql = "SELECT SUM(payment_amount) query = sale_data.sale_payments
FROM sale_payments where payment_method='creditnote' .merge(SalePayment.where.not(payment_method: 'creditnote')
and sale_id='#{sale_data.sale_id}'" .or(SalePayment.where.not(SalePayment.arel_table[:payment_amount].lteq(sale_data.sale_payments.joins(:sale_audit).sum(:payment_amount)))))
sql1 = "SELECT CASE WHEN s.amount_changed > 0 and (s.amount_received - s.amount_changed) = s.grand_total THEN ( SELECT SUM(payment_amount)
FROM sale_payments where payment_method='creditnote'
and sale_id='#{sale_data.sale_id}'"
SalePayment.where("(CASE WHEN ((#{sql}) - (#{sql1}) query.each do |payment|
ELSE SUM(payment_amount) END
FROM sale_payments
JOIN sales s ON s.sale_id=sale_payments.sale_id
JOIN sale_audits sa
ON SUBSTRING_INDEX(sa.remark,'||',1)=sale_payment_id
where sa.sale_id='#{sale_data.sale_id}')) = 0
THEN payment_method!='creditnote' ELSE 1 END) AND sale_id = ?", sale_data.sale_id).each do |payment|
if payment.payment_method == "creditnote" if payment.payment_method == "creditnote"
y_position = cursor y_position = cursor

View File

@@ -36,11 +36,10 @@
<tbody> <tbody>
<% grand_total = 0 %> <% grand_total = 0 %>
<% @sale_data.each do |result| %> <% @sale_data.each do |result| %>
<% grand_total = grand_total.to_f + result.grand_total.to_f%> <% grand_total = grand_total.to_f + result.grand_total.to_f%>
<% table_name=nil <% table_name=nil
table_type =nil table_type =nil
if result.table_id.to_i>0 if table = result.bookings[0].dining_facility
table = DiningFacility.find(result.table_id)
table_type = table.type table_type = table.type
table_name = table.name table_name = table.name
end %> end %>

View File

@@ -21,11 +21,11 @@ class ActionController::Base
end end
else else
# check for license file # check for license file
if check_license # if check_license
current_license(ENV["SX_PROVISION_URL"]) # current_license(ENV["SX_PROVISION_URL"])
else # else
redirect_to activate_path # redirect_to activate_path
end # end
end end
end end