diff --git a/README.md b/README.md index 175b0d20..ef68d0b7 100755 --- a/README.md +++ b/README.md @@ -7,6 +7,32 @@ Things you may want to cover: * Ruby version ruby 2.4.1p111 +* Membership Details + + Osaka + + Auth Token => rj0MJ0XI5GsKZehE => New + + => code2lab => Old + + Merchant account => RxzaYyAGzm7VqAZ4hKnv + + Campaign Id => {"campaign_type_id": 5} + + + + BITP + + Auth Token => rj0MJ0XI5GsKZehE => New + + => code2lab => Old + + Merchant account => vWSsseoZCzxd6xcNf_uS + + Campaign Id => {"campaign_type_id": 1} + + + * ToDo list 1. Cloud Sync @@ -104,3 +130,4 @@ ruby 2.4.1p111 3. Delete => btn-delete 4. Cancel/Back => btn-default + diff --git a/app/assets/javascripts/addorder.js b/app/assets/javascripts/addorder.js index 1f37d934..5cacee2e 100755 --- a/app/assets/javascripts/addorder.js +++ b/app/assets/javascripts/addorder.js @@ -373,7 +373,7 @@ $(function() { $('.add_to_order').removeAttr('data-attributes'); $('.add_to_order').removeAttr('data-options'); - $('.keypress_qty').val(1); + $('#count').val(1); change_qty_plus_minus("count","plus","minus"); @@ -668,11 +668,12 @@ $(function() { e.preventDefault(); $("#oqs_loading_wrapper").show(); var table_id = $('#table_id').text(); + var customer_id = $('#customer_id').text(); var booking_id = $('#booking_id').text(); if (!booking_id.length > 0) { var params = {'order_source': "cashier", 'order_type': "dine_in", - 'customer_id': "", 'guest_info': "",'booking_id':booking_id, + 'customer_id': customer_id, 'guest_info': "",'booking_id':booking_id, 'table_id': table_id, 'order_items': order_items }; } @@ -682,7 +683,7 @@ $(function() { var ajax_url = '../addorders/create'; var params = {'order_source': "cashier", 'order_type': "dine_in", - 'customer_id': "", 'guest_info': "", + 'customer_id': customer_id, 'guest_info': "", 'table_id': table_id, 'order_items': order_items }; $.ajax({ @@ -824,18 +825,11 @@ $(function() { // Get Selected Class function change_qty_plus_minus(id,plus,minus) { + var count = parseInt($('#'+id).val()); - - - - $('#'+plus).on("click", function(){ - - var count = parseInt($('#'+id).val()); - var countEl = document.getElementById(id); - - count++; - countEl.value = count; - + $('#'+plus).on("click", function(){ + count++; + $('#'+id).val(count); if (id == "count") { price = $("#unit_price").text(); @@ -861,12 +855,12 @@ $(function() { $('#'+minus).on("click", function(){ - var count = parseInt($('#'+id).val()); - var countEl = document.getElementById(id); + // var count = parseInt($('#'+id).val()); + // var countEl = document.getElementById(id); if (count > 1) { count--; - countEl.value = count; + $('#'+id).val(count); if (id=="count") { price = $("#unit_price").text(); @@ -899,7 +893,7 @@ $(function() { if ($.isNumeric(value)) { if (id=="count") { - $('.change_qty').attr('value',value); + $('#count').attr('value',value); price = $("#unit_price").text(); $("#total_price").text(value*price); }else{ diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 381d98fa..76341958 100755 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -104,6 +104,9 @@ $(document).ready(function() { } }); + // first input focus for all form + $('form:first *input[data-behaviour!=datepicker]:input[type!=hidden]:first').focus(); + // $(document).on("focus", "[data-behaviour~='datepicker']", function(e){ // $(this).datepicker({"format": "yyyy-M-dd", "weekStart": 1, "autoclose": true}); // $('.dropdown-toggle').dropdown(); diff --git a/app/assets/stylesheets/CRM.scss b/app/assets/stylesheets/CRM.scss index 7f9192f2..3d6fda2b 100755 --- a/app/assets/stylesheets/CRM.scss +++ b/app/assets/stylesheets/CRM.scss @@ -114,9 +114,11 @@ .green{ background-color: #009900; } -.left{ + +.left-margin-1 { margin-left:1px; } + .bottom{ margin-bottom:1px; } diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 9caef6fe..2249d049 100755 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -93,3 +93,9 @@ nav.pagination .page a:hover, text-decoration: none; } + +/*Logout Icon*/ +i.logout_icon{ + position: relative; + top: 5px; +} \ No newline at end of file diff --git a/app/controllers/oqs/edit_controller.rb b/app/controllers/oqs/edit_controller.rb index 33ffd8a6..190c4918 100755 --- a/app/controllers/oqs/edit_controller.rb +++ b/app/controllers/oqs/edit_controller.rb @@ -2,7 +2,7 @@ class Oqs::EditController < BaseOqsController def index assigned_item_id = params[:id] assigned_item = AssignedOrderItem.find(assigned_item_id) - @order_item = OrderItem.where("order_id='#{ assigned_item.order_id }' AND item_code='#{ assigned_item.item_code }'"); + @order_item = OrderItem.where("order_id='#{ assigned_item.order_id }' AND item_instance_code='#{ assigned_item.instance_code }'"); end def update @@ -17,7 +17,7 @@ class Oqs::EditController < BaseOqsController order_item.save # print - assigned_item = AssignedOrderItem.find_by_item_code(order_item.item_code) + assigned_item = AssignedOrderItem.find_by_instance_code(order_item.item_instance_code) # order queue stations oqs = assigned_item.order_queue_station @@ -25,6 +25,6 @@ class Oqs::EditController < BaseOqsController print_settings=PrintSetting.find_by_unique_code(unique_code) order_queue_printer= Printer::OrderQueuePrinter.new(print_settings) - order_queue_printer.print_order_item(print_settings, oqs,assigned_item.order_id, assigned_item.item_code, print_status=" (Edited)" ) + order_queue_printer.print_order_item(print_settings, oqs,assigned_item.order_id, assigned_item.instance_code, print_status=" (Edited)" ) end end diff --git a/app/controllers/origami/addorders_controller.rb b/app/controllers/origami/addorders_controller.rb index 8098dfe9..d97212f3 100755 --- a/app/controllers/origami/addorders_controller.rb +++ b/app/controllers/origami/addorders_controller.rb @@ -58,6 +58,9 @@ class Origami::AddordersController < ApplicationController#BaseOrigamiController items_arr.push(items) } +puts "sssssssssss" +puts params[:customer_id] +puts params.to_json # begin @order = Order.new @order.source = params[:order_source] diff --git a/app/controllers/origami/credit_payments_controller.rb b/app/controllers/origami/credit_payments_controller.rb index a4978a6f..fde9d6f7 100755 --- a/app/controllers/origami/credit_payments_controller.rb +++ b/app/controllers/origami/credit_payments_controller.rb @@ -8,7 +8,7 @@ class Origami::CreditPaymentsController < BaseOrigamiController @creditcount = 0 others = 0 sale_data.sale_payments.each do |sale_payment| - if sale_payment.payment_method == "visa" + if sale_payment.payment_method == "creditnote" @creditcount = @creditcount + sale_payment.payment_amount else others = others + sale_payment.payment_amount diff --git a/app/controllers/origami/discounts_controller.rb b/app/controllers/origami/discounts_controller.rb index 501c62be..8134a886 100755 --- a/app/controllers/origami/discounts_controller.rb +++ b/app/controllers/origami/discounts_controller.rb @@ -29,14 +29,19 @@ class Origami::DiscountsController < BaseOrigamiController # sale.grand_total = (sub_total.to_f - overall_discount.to_f) + sale.total_tax; # sale.save if discount_items.length > 0 + puts discount_items.to_json + puts "dddddddddddd" + #save sale item for discount discount_items.each do |di| origin_sale_item = SaleItem.find(di["id"]) + puts origin_sale_item.to_json sale_item = SaleItem.new sale_item.sale_id = sale_id sale_item.product_code = origin_sale_item != nil ? origin_sale_item.product_code : sale_id sale_item.product_name = di["name"] + sale_item.item_instance_code = origin_sale_item.item_instance_code sale_item.product_alt_name = "" sale_item.remark = "Discount" @@ -156,9 +161,9 @@ class Origami::DiscountsController < BaseOrigamiController sale = Sale.find(sale_id) # Check for Card Payment - is_card_payment = SaleItem.get_sale_payments_by_card(sale.sale_payments) + is_card_payment = SalePayment.get_sale_payments_by_card(sale.sale_payments) - if is_card_payment != true + if is_card != "true" account_types = Account.where("discount=?",true) table_id = sale.bookings[0].dining_facility_id table_type = DiningFacility.find(table_id).type diff --git a/app/controllers/origami/sale_edit_controller.rb b/app/controllers/origami/sale_edit_controller.rb index a4dcb31d..c00c35f0 100755 --- a/app/controllers/origami/sale_edit_controller.rb +++ b/app/controllers/origami/sale_edit_controller.rb @@ -43,7 +43,7 @@ class Origami::SaleEditController < BaseOrigamiController @newsaleitem = saleitemObj.dup @newsaleitem.save @newsaleitem.qty = saleitemObj.qty * -1 - @newsaleitem.unit_price = saleitemObj.unit_price * -1 + @newsaleitem.unit_price = saleitemObj.unit_price * 1 @newsaleitem.taxable_price = saleitemObj.taxable_price * -1 @newsaleitem.price = saleitemObj.price * -1 @newsaleitem.product_name = saleitemObj.product_name + ' (FOC)' diff --git a/app/controllers/origami/void_controller.rb b/app/controllers/origami/void_controller.rb index 80594a26..27faea25 100755 --- a/app/controllers/origami/void_controller.rb +++ b/app/controllers/origami/void_controller.rb @@ -8,12 +8,19 @@ class Origami::VoidController < BaseOrigamiController sale = Sale.find_by_sale_id(sale_id) # update count for shift sale - # if(sale.sale_status == "completed") + if(sale.sale_status == "completed") if sale.shift_sale_id != nil shift = ShiftSale.find(sale.shift_sale_id) shift.calculate(sale_id, "void") end - # end + else + # void before sale payment complete + if sale.shift_sale_id != nil + shift = ShiftSale.find(sale.shift_sale_id) + shift.total_void = shift.total_void + sale.grand_total + shift.save + end + end sale.payment_status = 'void' sale.sale_status = 'void' @@ -93,6 +100,5 @@ class Origami::VoidController < BaseOrigamiController end end end - end - + end end \ No newline at end of file diff --git a/app/controllers/reports/receipt_no_controller.rb b/app/controllers/reports/receipt_no_controller.rb index 3ca19e9d..6d536ee7 100755 --- a/app/controllers/reports/receipt_no_controller.rb +++ b/app/controllers/reports/receipt_no_controller.rb @@ -20,7 +20,11 @@ authorize_resource :class => false payment_type = params[:payment_type] @sale_data = Sale.get_shift_sales_by_receipt_no(@shift_sale_range,@shift,from,to,payment_type) @sale_taxes = Sale.get_separate_tax(@shift_sale_range,@shift,from,to,payment_type) + @tax_profiles = TaxProfile.order('order_by asc') +puts @sale_taxes.to_json +puts "sssssss" +puts @tax_profiles.to_json @from = from @to = to diff --git a/app/controllers/reports/saleitem_controller.rb b/app/controllers/reports/saleitem_controller.rb index 00be65e6..422c3020 100755 --- a/app/controllers/reports/saleitem_controller.rb +++ b/app/controllers/reports/saleitem_controller.rb @@ -16,7 +16,7 @@ class Reports::SaleitemController < BaseReportController end end @sale_data, @discount_data , @cash_data , @card_data , @credit_data , @foc_data , @grand_total , @change_amount = Sale.get_by_shift_items(shift_sale_range,shift, from, to, Sale::SALE_STATUS_COMPLETED) - + @account_cate_count = Hash.new {|hash, key| hash[key] = 0} diff --git a/app/controllers/settings/menu_item_instances_controller.rb b/app/controllers/settings/menu_item_instances_controller.rb index 336bf7c8..a214ffec 100755 --- a/app/controllers/settings/menu_item_instances_controller.rb +++ b/app/controllers/settings/menu_item_instances_controller.rb @@ -67,7 +67,7 @@ class Settings::MenuItemInstancesController < ApplicationController respond_to do |format| if @settings_menu_item_instances.save - @settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes].reject(&:blank?) + @settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes].split(" ") @settings_menu_item_instances.save format.html { redirect_to settings_menu_category_simple_menu_item_path(category,catID), notice: 'Menu item instance was successfully created.' } format.json { render :show, status: :created, location: @settings_menu_item_instances } @@ -105,9 +105,9 @@ class Settings::MenuItemInstancesController < ApplicationController end respond_to do |format| - if @settings_menu_item_instances.update(settings_menu_item_instance_params) - @settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes].reject(&:blank?) + #@settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes].reject(&:blank?) + @settings_menu_item_instances.item_attributes = params[:menu_item_instance][:item_attributes].split(" ") @settings_menu_item_instances.save format.html { redirect_to settings_menu_category_simple_menu_item_path(category,catID), notice: 'Menu item instance was successfully updated.' } format.json { render :show, status: :ok, location: @settings_menu_item_instances } @@ -154,6 +154,9 @@ class Settings::MenuItemInstancesController < ApplicationController else @item = MenuItem.find(params[:set_menu_item_id]) end + + # To Only show in Menu item selected attrs + @item.item_attributes = MenuItemAttribute.where(id: @item.item_attributes).select("id, name").map { |e| [e.name, e.id] } end # Never trust parameters from the scary internet, only allow the white list through. diff --git a/app/controllers/settings/promotions_controller.rb b/app/controllers/settings/promotions_controller.rb index ec09aaab..ec00c5f6 100755 --- a/app/controllers/settings/promotions_controller.rb +++ b/app/controllers/settings/promotions_controller.rb @@ -29,8 +29,12 @@ class Settings::PromotionsController < ApplicationController def create @promotion = Promotion.new(promotion_params) @promotion.created_by = current_login_employee.id - @promotion.promo_start_hour = @promotion.promo_start_hour.to_datetime.advance(hours: +6, minutes: +30) - @promotion.promo_end_hour = @promotion.promo_end_hour.to_datetime.advance(hours: +6, minutes: +30) + if !@promotion.promo_start_hour.nil? + @promotion.promo_start_hour = @promotion.promo_start_hour.to_datetime.advance(hours: +6, minutes: +30) + end + if !@promotion.promo_end_hour.nil? + @promotion.promo_end_hour = @promotion.promo_end_hour.to_datetime.advance(hours: +6, minutes: +30) + end respond_to do |format| if @promotion.save promo_pros = @promotion.promotion_products @@ -95,16 +99,23 @@ class Settings::PromotionsController < ApplicationController def find_parent_item res = [] - item = MenuItemInstance.find_by_item_instance_code(params[:item_instance_code]) - if item.nil? + arr_inst = [] + item_inst = MenuItemInstance.find_by_item_instance_code(params[:item_instance_code]) + if item_inst.nil? product = Product.where("item_code = ?",params[:item_instance_code]).pluck(:name,:item_code) res.push(product.name) res.push(product.item_code) else - # menu_item = item.menu_item.pluck(:name,:item_code) - res.push(item.item_instance_name) - res.push(item.menu_item.item_code) + # menu_item = item_inst.menu_item.pluck(:name,:item_code) + # res.push(item_inst.item_instance_name) + # res.push(item_inst.menu_item.item_code) + item_inst.menu_item.menu_item_instances.each do |inst| + arr_inst.push({inst.item_instance_code => inst.item_instance_name}) + end + res.push({item_inst.menu_item.item_code => arr_inst}) end + puts "res" + p res render json: res end diff --git a/app/controllers/transactions/bookings_controller.rb b/app/controllers/transactions/bookings_controller.rb index 3b8e241e..63090c9c 100644 --- a/app/controllers/transactions/bookings_controller.rb +++ b/app/controllers/transactions/bookings_controller.rb @@ -4,7 +4,7 @@ class Transactions::BookingsController < ApplicationController def index - filter = params[:filter] + filter = params[:receipt_no] from = params[:from] to = params[:to] diff --git a/app/controllers/transactions/credit_notes_controller.rb b/app/controllers/transactions/credit_notes_controller.rb index 09f48d66..e35baa77 100755 --- a/app/controllers/transactions/credit_notes_controller.rb +++ b/app/controllers/transactions/credit_notes_controller.rb @@ -14,7 +14,8 @@ class Transactions::CreditNotesController < ApplicationController to = params[:to] if filter.nil? && from.nil? && to.nil? && customer.nil? - @credit_notes = Sale.where('payment_status = ?', Sale::SALE_STATUS_OUTSTANDING) + @credit_notes = Sale.where('payment_status = ?', Sale::SALE_STATUS_OUTSTANDING) + @credit_notes = Kaminari.paginate_array(@credit_notes).page(params[:page]).per(20) else sale = Sale.search_credit_sales(customer,filter,from,to) if sale.count > 0 diff --git a/app/controllers/transactions/orders_controller.rb b/app/controllers/transactions/orders_controller.rb index a76fa385..17a117bb 100755 --- a/app/controllers/transactions/orders_controller.rb +++ b/app/controllers/transactions/orders_controller.rb @@ -3,16 +3,13 @@ class Transactions::OrdersController < ApplicationController def index filter = params[:filter] - count = params[:count] from = params[:from] to = params[:to] - if filter.nil? && from.nil? && to.nil? && count.nil? + if filter.nil? && from.nil? && to.nil? orders = Order.order("order_id desc") - else - orders = Order.search(filter,from,to,count) - + orders = Order.search(filter,from,to) end if !orders.nil? diff --git a/app/jobs/order_queue_processor_job.rb b/app/jobs/order_queue_processor_job.rb index d8e5d6e1..18fdc2dd 100755 --- a/app/jobs/order_queue_processor_job.rb +++ b/app/jobs/order_queue_processor_job.rb @@ -3,9 +3,8 @@ class OrderQueueProcessorJob < ApplicationJob def perform(order_id, table_id) # Do something later - #Order ID - - order = Order.find(order_id) + #Order ID + order = Order.find(order_id) #Execute orders and send to order stations if order diff --git a/app/models/order.rb b/app/models/order.rb index 33022eec..dd6f6d66 100755 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -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 diff --git a/app/models/print_setting.rb b/app/models/print_setting.rb index c326f715..a13229dc 100755 --- a/app/models/print_setting.rb +++ b/app/models/print_setting.rb @@ -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 diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb index 13d8a20a..315b107c 100755 --- a/app/models/printer/order_queue_printer.rb +++ b/app/models/printer/order_queue_printer.rb @@ -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 diff --git a/app/models/printer/printer_worker.rb b/app/models/printer/printer_worker.rb index 832e24bf..ad844cfe 100755 --- a/app/models/printer/printer_worker.rb +++ b/app/models/printer/printer_worker.rb @@ -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 diff --git a/app/models/printer/receipt_printer.rb b/app/models/printer/receipt_printer.rb index 30bd5ed8..40a60201 100755 --- a/app/models/printer/receipt_printer.rb +++ b/app/models/printer/receipt_printer.rb @@ -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 diff --git a/app/models/sale.rb b/app/models/sale.rb index dde592e3..14ff6266 100755 --- a/app/models/sale.rb +++ b/app/models/sale.rb @@ -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 diff --git a/app/models/sale_item.rb b/app/models/sale_item.rb index a757b7fd..f6470a71 100755 --- a/app/models/sale_item.rb +++ b/app/models/sale_item.rb @@ -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) diff --git a/app/models/sale_payment.rb b/app/models/sale_payment.rb index cb6b1249..7840817e 100755 --- a/app/models/sale_payment.rb +++ b/app/models/sale_payment.rb @@ -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") diff --git a/app/models/shift_sale.rb b/app/models/shift_sale.rb index baf11cb3..6c956620 100755 --- a/app/models/shift_sale.rb +++ b/app/models/shift_sale.rb @@ -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 diff --git a/app/pdf/close_cashier_pdf.rb b/app/pdf/close_cashier_pdf.rb index 1f456a07..179e3336 100755 --- a/app/pdf/close_cashier_pdf.rb +++ b/app/pdf/close_cashier_pdf.rb @@ -263,13 +263,14 @@ class CloseCashierPdf < Prawn::Document end #end total amount by Account - y_position = cursor - bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do - text "Total Sale :", :size => self.item_font_size, :align => :right - end - bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do - text "#{shift_sale.total_revenue}", :size => self.item_font_size, :align => :right - end +#COMMENTED FOR NO NEED AND NOT CORRECT WHEN OTHER CHARGES + # y_position = cursor + # bounding_box([0,y_position], :width =>self.item_description_width, :height => 20) do + # text "Total Sale :", :size => self.item_font_size, :align => :right + # end + # bounding_box([self.item_description_width,y_position], :width =>self.price_width, :height => 20) do + # text "#{shift_sale.total_revenue}", :size => self.item_font_size, :align => :right + # end move_down -5 stroke_horizontal_rule diff --git a/app/views/crm/customers/index.html.erb b/app/views/crm/customers/index.html.erb index 091d8e51..89900056 100755 --- a/app/views/crm/customers/index.html.erb +++ b/app/views/crm/customers/index.html.erb @@ -11,7 +11,7 @@