Merge branch 'master' into license

This commit is contained in:
Yan
2017-11-28 17:07:58 +06:30
67 changed files with 538 additions and 397 deletions

View File

@@ -363,18 +363,18 @@ class Order < ApplicationRecord
end
def self.search(filter,from,to,count)
if count.to_i > 0
item_count = "and item_count = '#{count}'"
def self.search(filter,from,to)
if filter.blank?
keyword = ''
else
item_count = ''
keyword = "order_id LIKE ? OR status LIKE ? OR order_type LIKE ? OR source='#{filter}'","%#{filter}%","%#{filter}%","%#{filter}%"
end
if from.present? && to.present?
Order.where("DATE_FORMAT(date,'%d-%m-%Y') >= ?" + " AND DATE_FORMAT(date,'%d-%m-%Y') <= ? #{item_count}", from,to)
elsif !from.present? && !to.present? && count.present?
Order.where("item_count = '#{count}'")
if from.present? && to.present?
order = Order.where("DATE_FORMAT(date,'%d-%m-%Y') >= ?" + " AND DATE_FORMAT(date,'%d-%m-%Y') <= ?", from,to)
query = order.where(keyword)
else
Order.where("order_id LIKE ? OR status LIKE ? OR order_type LIKE ? OR source='#{filter}'","%#{filter}%","%#{filter}%","%#{filter}%",)
where("order_id LIKE ? OR status LIKE ? OR order_type LIKE ? OR source='#{filter}'","%#{filter}%","%#{filter}%","%#{filter}%")
end
end

View File

@@ -1,4 +1,4 @@
class PrintSetting < ApplicationRecord
# validations
validates_presence_of :name, :unique_code, :printer_name, :page_width, :page_height
validates_presence_of :name, :unique_code, :printer_name, :page_width, :page_height, :print_copies
end

View File

@@ -1,10 +1,16 @@
class Printer::OrderQueuePrinter < Printer::PrinterWorker
def print_order_item(print_settings,oqs,order_id, item_code, print_status, options="")
def print_order_item(print_settings,oqs,order_id, instance_code, print_status, options="")
#Use CUPS service
#Generate PDF
#Print
order_item = print_query('order_item', item_code) #OrderItem.find_by_item_code(item_code)
# Must be one print
if print_settings.print_copies == 0
print_settings.print_copies = 1
print_settings.save!
end
order_item = print_query('order_item', instance_code) #OrderItem.find_by_item_code(item_code)
filename = "tmp/order_item.pdf"
@@ -14,12 +20,13 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
pdf.render_file filename
if oqs.print_copy
self.print(filename, oqs.printer_name)
self.print(filename, oqs.printer_name)
self.print(filename, oqs.printer_name)
#For print copy
# pdf.render_file filename.gsub(".","-copy.")
# self.print(filename.gsub(".","-copy."), oqs.printer_name)
else
print_settings.print_copies = 1
print_settings.save!
self.print(filename, oqs.printer_name)
end
# end
@@ -29,9 +36,14 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
def print_order_summary(print_settings,oqs, order_id, order_items, print_status)
#Use CUPS service
#Generate PDF
#Print
order=print_query('order_summary', order_id)
#Print
# Must be one print
if print_settings.print_copies == 0
print_settings.print_copies = 1
print_settings.save!
end
order=print_query('order_summary', order_id)
# For Print Per Item
if oqs.cut_per_item
order.each do|odi|
@@ -44,11 +56,12 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
pdf = OrderItemPdf.new(print_settings,odi, print_status, options, oqs.use_alternate_name)
# pdf.render_file "tmp/order_item.pdf"
pdf.render_file filename
if oqs.print_copy
self.print(filename, oqs.printer_name)
if oqs.print_copy
self.print(filename, oqs.printer_name)
# self.print(filename.gsub(".","-copy."), oqs.printer_name)
else
print_settings.print_copies = 1
print_settings.save!
self.print(filename, oqs.printer_name)
end
#end
@@ -59,12 +72,13 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
pdf = OrderSummaryPdf.new(print_settings,order, print_status, order_items, oqs.use_alternate_name)
pdf.render_file filename
if oqs.print_copy
self.print(filename, oqs.printer_name)
self.print(filename, oqs.printer_name)
self.print(filename, oqs.printer_name)
#For print copy
# pdf.render_file filename.gsub(".","-copy.")
# self.print(filename.gsub(".","-copy."), oqs.printer_name)
else
print_settings.print_copies = 1
print_settings.save!
self.print(filename, oqs.printer_name)
end
end
@@ -72,6 +86,12 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
# Print for orders in booking
def print_booking_summary(print_settings,oqs, booking_id, print_status)
# Must be one print
if print_settings.print_copies == 0
print_settings.print_copies = 1
print_settings.save!
end
order=print_query('booking_summary', booking_id)
# For Print Per Item
if oqs.cut_per_item
@@ -89,9 +109,11 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
self.print(filename, oqs.printer_name)
#For print copy
pdf.render_file filename.gsub(".","-copy.")
self.print(filename.gsub(".","-copy."), oqs.printer_name)
# pdf.render_file filename.gsub(".","-copy.")
# self.print(filename.gsub(".","-copy."), oqs.printer_name)
else
print_settings.print_copies = 1
print_settings.save!
self.print(filename, oqs.printer_name)
end
#end
@@ -105,9 +127,11 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker
self.print(filename, oqs.printer_name)
#For print copy
pdf.render_file filename.gsub(".","-copy.")
self.print(filename.gsub(".","-copy."), oqs.printer_name)
# pdf.render_file filename.gsub(".","-copy.")
# self.print(filename.gsub(".","-copy."), oqs.printer_name)
else
print_settings.print_copies = 1
print_settings.save!
self.print(filename, oqs.printer_name)
end
end

View File

@@ -33,7 +33,6 @@ class Printer::PrinterWorker
end
def print(file_path,printer_destination = nil )
if printer_destination.nil?
printer_destination = self.printer_destination
end

View File

@@ -74,6 +74,10 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
# print as print copies in printer setting
count = printer_settings.print_copies
# override print copies for print worker loop
print_settings.print_copies = 1
print_settings.save!
begin
if count == 1
pdf.render_file "tmp/receipt_bill_#{sale_data.receipt_no}.pdf"
@@ -100,7 +104,7 @@ class Printer::ReceiptPrinter < Printer::PrinterWorker
#Generate PDF
#Print
pdf = QueueNoPdf.new(printer_settings,queue)
pdf.render_file "tmp/print_queue_no.pdf"
pdf.render_file "tmp/print_queue_no.pdf"
self.print("tmp/print_queue_no.pdf")
end

View File

@@ -449,7 +449,7 @@ class Sale < ApplicationRecord
sale = Sale.where("DATE_FORMAT(receipt_date,'%d-%m-%Y') >= ?" + " AND DATE_FORMAT(receipt_date,'%d-%m-%Y') <= ? and NOT sale_status = 'void' ", from,to)
query = sale.where(keyword)
else
where("receipt_no LIKE ? OR cashier_name LIKE ? OR sale_status ='#{filter}'","%#{filter}%","%#{filter}%",)
where("receipt_no LIKE ? OR cashier_name LIKE ? OR sale_status ='#{filter}'","%#{filter}%","%#{filter}%")
end
end
@@ -623,6 +623,7 @@ def self.get_item_query()
query = Sale.select("acc.title as account_name,mi.account_id, i.item_instance_code as item_code, " +
"SUM(i.qty * i.unit_price) as grand_total,SUM(i.qty) as total_item," +
"i.remark as status_type,"+
" i.unit_price as unit_price,i.product_name as product_name, mc.name as" +
" menu_category_name,mc.id as menu_category_id ")
@@ -635,7 +636,7 @@ def self.get_item_query()
query = query.joins(" JOIN accounts acc ON acc.id = mi.account_id")
query = query.where("i.item_instance_code IS NOT NULL")
query = query.group("i.item_instance_code").order("mi.account_id, mi.menu_category_id")
query = query.group("i.product_name").order("mi.account_id, mi.menu_category_id")
end
def self.get_by_shift_items(shift_sale_range, shift, from, to, status)
@@ -724,19 +725,19 @@ def self.get_shift_sales_by_receipt_no(shift_sale_range,shift,from,to,payment_ty
query = Sale.all
if shift.present?
query = query.where("sales.shift_sale_id in (?) #{payment_type} and sale_status= 'completed' and sale_payments.payment_amount != 0", shift.to_a)
query = query.where("sales.shift_sale_id in (?) #{payment_type} and sale_status= 'completed' and sales.payment_status= 'paid' and sale_payments.payment_amount != 0", shift.to_a)
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
.group("sales.sale_id")
elsif shift_sale_range.present?
query = query.where("sale_status='completed' #{payment_type} and sale_payments.payment_amount != 0 and sales.shift_sale_id in (?)",shift_sale_range.to_a)
query = query.where("sale_status='completed' #{payment_type} and sale_payments.payment_amount != 0 and sales.payment_status= 'paid' and sales.shift_sale_id in (?)",shift_sale_range.to_a)
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
.group("sales.sale_id")
else
query = query.where("sale_status='completed' and sales.receipt_date between ? and ? #{payment_type} and sale_payments.payment_amount != 0",from,to)
query = query.where("sale_status='completed' and sales.receipt_date between ? and ? #{payment_type} and sales.payment_status= 'paid' and sale_payments.payment_amount != 0",from,to)
.joins("join sale_payments on sale_payments.sale_id = sales.sale_id")
.group("sales.sale_id")
end
@@ -794,19 +795,19 @@ def self.get_separate_tax(shift_sale_range=nil,shift,from,to,payment_type)
.joins("LEFT JOIN sales ON sales.sale_id = sale_taxes.sale_id")
.where("sales.shift_sale_id in (?) and sale_status= 'completed'", shift.to_a)
.group("sale_taxes.tax_name")
.order("sale_taxes.sale_tax_id asc")
.order("sale_taxes.tax_name desc")
elsif shift_sale_range.present?
query = SaleTax.select("SUM(tax_payable_amount) AS st_amount,tax_name")
.joins("LEFT JOIN sales ON sales.sale_id = sale_taxes.sale_id")
.where("sales.shift_sale_id in (?) and sale_status= 'completed'", shift_sale_range.to_a)
.group("sale_taxes.tax_name")
.order("sale_taxes.sale_tax_id asc")
.order("sale_taxes.tax_name desc")
else
query = SaleTax.select("SUM(tax_payable_amount) AS st_amount,tax_name")
.joins("LEFT JOIN sales ON sales.sale_id = sale_taxes.sale_id")
.where("sales.receipt_date between ? and ? and sale_status= 'completed'", from,to)
.group("sale_taxes.tax_name")
.order("sale_taxes.sale_tax_id asc")
.order("sale_taxes.tax_name desc")
end
end

View File

@@ -145,17 +145,6 @@ class SaleItem < ApplicationRecord
return price,type
end
# Check for Card Payment
def self.get_sale_payments_by_card(sale_payments)
# Check for Card Payment
sale_payments.each do |sp|
if sp.payment_method == "jcb" || sp.payment_method == "mpu" || sp.payment_method == "visa" || sp.payment_method == "master"
return true;
end
end
end
# def self.get_overall_discount(sale_id)
# price = 0.0
# item=SaleItem.where("product_code=?", sale_id)

View File

@@ -155,6 +155,16 @@ class SalePayment < ApplicationRecord
end
# Check for Card Payment
def self.get_sale_payments_by_card(sale_payments)
# Check for Card Payment
sale_payments.each do |sp|
if sp.payment_method == "jcb" || sp.payment_method == "mpu" || sp.payment_method == "visa" || sp.payment_method == "master"
return true;
end
end
end
private
def cash_payment
payment_status = false
@@ -497,8 +507,6 @@ class SalePayment < ApplicationRecord
end
private
def generate_custom_id
self.sale_payment_id = SeedGenerator.generate_id(self.class.name, "SPI")

View File

@@ -54,7 +54,7 @@ class ShiftSale < ApplicationRecord
self.cash_sales = self.cash_sales.to_f + cash.to_f
self.credit_sales = self.credit_sales.to_i + credit.to_f
self.other_sales = self.other_sales.to_i + other_sales.to_f
self.nett_sales = self.nett_sales + (saleobj.total_amount.to_f - self.total_discounts) #self.grand_total.to_i - self.commercial_taxes
self.nett_sales = self.nett_sales + (saleobj.total_amount.to_f - saleobj.total_discount) #self.grand_total.to_i - self.commercial_taxes
self.commercial_taxes = self.commercial_taxes.to_i + tax.to_f
self.total_rounding = self.total_rounding + saleobj.rounding_adjustment
self.total_receipt = self.total_receipt + 1