diff --git a/app/assets/javascripts/reports/dailysales.coffee b/app/assets/javascripts/reports/dailysale.coffee similarity index 100% rename from app/assets/javascripts/reports/dailysales.coffee rename to app/assets/javascripts/reports/dailysale.coffee diff --git a/app/assets/javascripts/reports/sale_items.coffee b/app/assets/javascripts/reports/saleitem.coffee similarity index 100% rename from app/assets/javascripts/reports/sale_items.coffee rename to app/assets/javascripts/reports/saleitem.coffee diff --git a/app/assets/stylesheets/CRM.scss b/app/assets/stylesheets/CRM.scss index 9ab3730c..6f8d90f0 100644 --- a/app/assets/stylesheets/CRM.scss +++ b/app/assets/stylesheets/CRM.scss @@ -13,12 +13,12 @@ .selected-item { color: #fff !important; - background-color: #ccc !important; + background-color: #54A5AF !important; } .assign { color: #fff !important; - background-color: red; + background-color: #009900; } .assign .text-muted{ color: #fff !important; @@ -29,11 +29,19 @@ } .green{ color: #fff !important; - background-color: green; + background-color: #009900; } .required abbr{ color: red !important; } .jconfirm-box-container{ margin-left:-40px !important +} +.card-columns { + @include media-breakpoint-only(lg) { + column-count: 6; + } + @include media-breakpoint-only(xl) { + column-count: 6; + } } \ No newline at end of file diff --git a/app/assets/stylesheets/reports/dailysales.scss b/app/assets/stylesheets/reports/dailysale.scss similarity index 60% rename from app/assets/stylesheets/reports/dailysales.scss rename to app/assets/stylesheets/reports/dailysale.scss index cfc48374..516e1b52 100644 --- a/app/assets/stylesheets/reports/dailysales.scss +++ b/app/assets/stylesheets/reports/dailysale.scss @@ -1,3 +1,3 @@ -// Place all the styles related to the reports/dailysales controller here. +// Place all the styles related to the reports/dailysale controller here. // They will automatically be included in application.css. // You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/assets/stylesheets/reports/sale_items.scss b/app/assets/stylesheets/reports/saleitem.scss similarity index 60% rename from app/assets/stylesheets/reports/sale_items.scss rename to app/assets/stylesheets/reports/saleitem.scss index b9692327..3e3460a4 100644 --- a/app/assets/stylesheets/reports/sale_items.scss +++ b/app/assets/stylesheets/reports/saleitem.scss @@ -1,3 +1,3 @@ -// Place all the styles related to the reports/sale_items controller here. +// Place all the styles related to the reports/saleitem controller here. // They will automatically be included in application.css. // You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/base_origami_controller.rb b/app/controllers/base_origami_controller.rb index 2af895da..be4b4055 100644 --- a/app/controllers/base_origami_controller.rb +++ b/app/controllers/base_origami_controller.rb @@ -14,5 +14,4 @@ class BaseOrigamiController < ActionController::Base @current_user ||= Employee.find_by_token_session(session[:session_token]) if session[:session_token] end - end diff --git a/app/controllers/oqs/print_controller.rb b/app/controllers/oqs/print_controller.rb index f3fd5675..52960f52 100644 --- a/app/controllers/oqs/print_controller.rb +++ b/app/controllers/oqs/print_controller.rb @@ -16,7 +16,7 @@ class Oqs::PrintController < ApplicationController # print when complete click print_settings = PrintSetting.find_by_unique_code(unique_code) order_queue_printer = Printer::OrderQueuePrinter.new(print_settings) - order_queue_printer.print_order_item(oqs, assigned_item.order_id, assigned_item.item_code, print_status, options ) + order_queue_printer.print_order_item(print_settings,oqs, assigned_item.order_id, assigned_item.item_code, print_status, options ) # update print status for completed same order items assigned_items.each do |ai| @@ -46,7 +46,7 @@ class Oqs::PrintController < ApplicationController # print when complete click print_settings = PrintSetting.find_by_unique_code(unique_code) order_queue_printer = Printer::OrderQueuePrinter.new(print_settings) - order_queue_printer.print_booking_summary(oqs, booking.booking_id, print_status) + order_queue_printer.print_booking_summary(print_settings,oqs, booking.booking_id, print_status) # update print status for completed same order items assigned_items.each do |ai| diff --git a/app/controllers/print_settings_controller.rb b/app/controllers/print_settings_controller.rb index bdd3061a..8efb9dd5 100644 --- a/app/controllers/print_settings_controller.rb +++ b/app/controllers/print_settings_controller.rb @@ -70,6 +70,6 @@ class PrintSettingsController < ApplicationController # Never trust parameters from the scary internet, only allow the white list through. def print_setting_params - params.require(:print_setting).permit(:name, :unique_code, :template, :db_name, :db_type, :db_username, :db_password, :printer_name, :api_settings, :page_width, :page_height, :print_copies) + params.require(:print_setting).permit(:name, :unique_code, :template, :db_name, :db_type, :db_username, :db_password, :printer_name, :api_settings, :page_width, :page_height, :print_copies,:precision,:delimiter,:heading_space) end end diff --git a/app/controllers/reports/bksale_items_controller.rb b/app/controllers/reports/bksale_items_controller.rb deleted file mode 100644 index 1f349320..00000000 --- a/app/controllers/reports/bksale_items_controller.rb +++ /dev/null @@ -1,19 +0,0 @@ -class Reports::SaleItemsController < BaseReportController - authorize_resource :class => false - def index - - from, to, report_type = get_date_range_from_params - - @sale_data = Sale.get_by_range_by_saleitems(from,to,Sale::SALE_STATUS_COMPLETED,report_type) - - respond_to do |format| - format.html - format.xls - end - end - - def show - - end - -end \ No newline at end of file diff --git a/app/controllers/reports/daily_sales_controller.rb b/app/controllers/reports/daily_sales_controller.rb deleted file mode 100644 index 6d99551d..00000000 --- a/app/controllers/reports/daily_sales_controller.rb +++ /dev/null @@ -1,17 +0,0 @@ -class Reports::DailySalesController < BaseReportController - # authorize_resource :class => false - def index - from, to ,report_type = get_date_range_from_params - @sale_data = Sale.daily_sales_list(from,to) - @tax = SaleTax.get_tax(from,to) - respond_to do |format| - format.html - format.xls - end - end - - def show - - end - -end \ No newline at end of file diff --git a/app/controllers/reports/daily_salesbk_controller.rb b/app/controllers/reports/dailysale_controller.rb similarity index 70% rename from app/controllers/reports/daily_salesbk_controller.rb rename to app/controllers/reports/dailysale_controller.rb index 1a878aaa..27e812ab 100644 --- a/app/controllers/reports/daily_salesbk_controller.rb +++ b/app/controllers/reports/dailysale_controller.rb @@ -1,5 +1,6 @@ -class Reports::DailySalesController < BaseReportController - authorize_resource :class => false +class Reports::DailysaleController < BaseReportController + authorize_resource :class => false + def index from, to ,report_type = get_date_range_from_params @sale_data = Sale.daily_sales_list(from,to) @@ -13,5 +14,4 @@ class Reports::DailySalesController < BaseReportController def show end - -end \ No newline at end of file +end diff --git a/app/controllers/reports/receipt_no_controller.rb b/app/controllers/reports/receipt_no_controller.rb index d85c7d57..e4157c4e 100644 --- a/app/controllers/reports/receipt_no_controller.rb +++ b/app/controllers/reports/receipt_no_controller.rb @@ -1,5 +1,5 @@ class Reports::ReceiptNoController < BaseReportController - +authorize_resource :class => false def index from, to = get_date_range_from_params puts "from..." diff --git a/app/controllers/reports/sale_items_controller.rb b/app/controllers/reports/saleitem_controller.rb similarity index 73% rename from app/controllers/reports/sale_items_controller.rb rename to app/controllers/reports/saleitem_controller.rb index 81f7af01..0f91681d 100644 --- a/app/controllers/reports/sale_items_controller.rb +++ b/app/controllers/reports/saleitem_controller.rb @@ -1,5 +1,5 @@ -class Reports::SaleItemsController < BaseReportController - # authorize_resource :class => false +class Reports::SaleitemController < BaseReportController + authorize_resource :class => false def index from, to, report_type = get_date_range_from_params @@ -16,4 +16,4 @@ class Reports::SaleItemsController < BaseReportController end -end \ No newline at end of file +end diff --git a/app/helpers/origami/request_bills_helper.rb b/app/helpers/origami/request_bills_helper.rb index a33f7c3e..2d1f8313 100644 --- a/app/helpers/origami/request_bills_helper.rb +++ b/app/helpers/origami/request_bills_helper.rb @@ -1,2 +1,3 @@ module Origami::RequestBillsHelper + end diff --git a/app/helpers/reports/dailysale_helper.rb b/app/helpers/reports/dailysale_helper.rb new file mode 100644 index 00000000..88ccfd83 --- /dev/null +++ b/app/helpers/reports/dailysale_helper.rb @@ -0,0 +1,2 @@ +module Reports::DailysaleHelper +end diff --git a/app/helpers/reports/dailysales_helper.rb b/app/helpers/reports/dailysales_helper.rb deleted file mode 100644 index 94e34c27..00000000 --- a/app/helpers/reports/dailysales_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module Reports::DailysalesHelper -end diff --git a/app/helpers/reports/sale_items_helper.rb b/app/helpers/reports/sale_items_helper.rb deleted file mode 100644 index 63e884d7..00000000 --- a/app/helpers/reports/sale_items_helper.rb +++ /dev/null @@ -1,2 +0,0 @@ -module Reports::SaleItemsHelper -end diff --git a/app/helpers/reports/saleitem_helper.rb b/app/helpers/reports/saleitem_helper.rb new file mode 100644 index 00000000..47544cf9 --- /dev/null +++ b/app/helpers/reports/saleitem_helper.rb @@ -0,0 +1,2 @@ +module Reports::SaleitemHelper +end diff --git a/app/models/ability.rb b/app/models/ability.rb index 2c110e77..87371392 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -31,9 +31,11 @@ class Ability can :manage, Sale can :manage, Customer + can :manage, DiningQueue can :index, :dailysale can :index, :saleitem + can :index, :receipt_no can :add_customer, Customer can :update_sale_by_customer, Customer @@ -80,12 +82,17 @@ class Ability elsif user.role == "accountant" can :index, :dailysale - can :index, :saleitem - can :index, :receiptno - can :show, :dailysale - can :show, :saleitem - can :show, :receiptno + can :manage, :saleitem + can :index, :receiptno + + elsif user.role == "supervisour" + + can :index, :dailysale + can :manage, :saleitem + can :index, :receiptno end + end + end diff --git a/app/models/printer/order_queue_printer.rb b/app/models/printer/order_queue_printer.rb index f946e17b..6c8ba7e2 100644 --- a/app/models/printer/order_queue_printer.rb +++ b/app/models/printer/order_queue_printer.rb @@ -1,6 +1,6 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker - def print_order_item(oqs,order_id, item_code, print_status, options="") + def print_order_item(print_settings,oqs,order_id, item_code, print_status, options="") #Use CUPS service #Generate PDF #Print @@ -10,7 +10,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # check for item not to show if order_item[0].price != 0 - pdf = OrderItemPdf.new(order_item[0], print_status, options) + pdf = OrderItemPdf.new(print_settings,order_item[0], print_status, options, oqs.use_alternate_name) pdf.render_file filename if oqs.print_copy @@ -26,11 +26,12 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker end # Query for per order - def print_order_summary(oqs, order_id, order_items, print_status) + 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) + # For Print Per Item if oqs.cut_per_item order.each do|odi| @@ -40,7 +41,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # check for item not to show if odi.price != 0 - pdf = OrderItemPdf.new(odi, print_status, options) + 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 @@ -54,7 +55,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # For Print Order Summary else filename = "tmp/order_summary_#{ order_id }" + ".pdf" - pdf = OrderSummaryPdf.new(order, print_status, order_items) + 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) @@ -69,7 +70,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker end # Print for orders in booking - def print_booking_summary(oqs, booking_id, print_status) + def print_booking_summary(print_settings,oqs, booking_id, print_status) order=print_query('booking_summary', booking_id) # For Print Per Item if oqs.cut_per_item @@ -80,7 +81,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # check for item not to show if odi.price != 0 - pdf = OrderItemPdf.new(odi, print_status, options) + pdf = OrderItemPdf.new(print_settings,odi, print_status, options,oqs.use_alternate_name) pdf.render_file filename if oqs.print_copy @@ -97,7 +98,7 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # For Print Order Summary else filename = "tmp/booking_summary_#{ booking_id }" + ".pdf" - pdf = OrderSummaryPdf.new(order, print_status) + pdf = OrderSummaryPdf.new(print_settings,order, print_status,oqs.use_alternate_name) pdf.render_file filename if oqs.print_copy self.print(filename, oqs.printer_name) @@ -114,31 +115,34 @@ class Printer::OrderQueuePrinter < Printer::PrinterWorker # Query for OQS with status def print_query(type, id) if type == "order_item" - OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, cus.name as customer, df.type, df.name as dining") + OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name") .joins("left join orders ON orders.order_id = order_items.order_id left join booking_orders AS bo ON bo.order_id=order_items.order_id left join bookings AS b ON b.booking_id = bo.booking_id left join dining_facilities AS df ON df.id = b.dining_facility_id - left join customers as cus ON cus.customer_id = orders.customer_id") + left join customers as cus ON cus.customer_id = orders.customer_id + left join menu_items as item ON item.item_code = order_items.item_code") .where("order_items.item_code = '#{ id }' AND order_items.price != 0") .group("order_items.item_code") elsif type == "order_summary" - OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, cus.name as customer, df.type, df.name as dining") + OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name") .joins("left join orders ON orders.order_id = order_items.order_id left join booking_orders AS bo ON bo.order_id=order_items.order_id left join bookings AS b ON b.booking_id = bo.booking_id left join dining_facilities AS df ON df.id = b.dining_facility_id - left join customers as cus ON cus.customer_id = orders.customer_id") + left join customers as cus ON cus.customer_id = orders.customer_id + left join menu_items as item ON item.item_code = order_items.item_code") .where("orders.order_id = '#{ id }' AND order_items.price != 0") .group("order_items.order_items_id") else # order summary for booking - OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, cus.name as customer, df.type, df.name as dining") + OrderItem.select("order_items.order_id, order_items.item_code, order_items.item_name, order_items.qty, order_items.price, order_items.options, order_items.item_order_by as order_by, order_items.created_at as order_at, cus.name as customer, df.type, df.name as dining,item.alt_name as alt_name") .joins("left join orders ON orders.order_id = order_items.order_id left join booking_orders AS bo ON bo.order_id=order_items.order_id left join bookings AS b ON b.booking_id = bo.booking_id left join dining_facilities AS df ON df.id = b.dining_facility_id - left join customers as cus ON cus.customer_id = orders.customer_id") + left join customers as cus ON cus.customer_id = orders.customer_id + left join menu_items as item ON item.item_code = order_items.item_code") .where("b.booking_id = '#{ id }' AND order_items.price != 0") end diff --git a/app/pdf/order_item_pdf.rb b/app/pdf/order_item_pdf.rb index b6c821fc..12d51c53 100644 --- a/app/pdf/order_item_pdf.rb +++ b/app/pdf/order_item_pdf.rb @@ -1,6 +1,6 @@ class OrderItemPdf < Prawn::Document attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width - def initialize(order_item, print_status, options) + def initialize(print_settings,order_item, print_status, options, alt_name) self.page_width = 210 self.page_height = 1450 self.margin = 5 @@ -12,12 +12,13 @@ class OrderItemPdf < Prawn::Document self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width) self.label_width=100 - super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + super(:margin => [print_settings.heading_space, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) # super(:margin => [10, 5, 30, 5], :page_size => [200,400]) - # font "public/fonts/#{font_name}".to_s + ".ttf".to_s - # font "public/fonts/Zawgyi-One.ttf" - # font "public/fonts/padauk.ttf" + # font "public/fonts/#{font_name}".to_s + ".ttf".to_s + # font "public/fonts/Zawgyi-One.ttf" + # font "public/fonts/padauk.ttf" + #font "public/fonts/Chinese.ttf" self.header_font_size = 12 self.item_font_size = 10 @@ -29,7 +30,7 @@ class OrderItemPdf < Prawn::Document order_info(order_item.order_id, order_item.order_by,order_item.order_at) # order items - order_items(order_item, options) + order_items(order_item, options, alt_name) end # Write Order Information to PDF @@ -57,11 +58,11 @@ class OrderItemPdf < Prawn::Document end # Write Order items to PDF - def order_items(order_item, options) + def order_items(order_item, options, alt_name) y_position = cursor #Add Order Item - add_order_items(order_item, options) + add_order_items(order_item, options, alt_name) dash(1, :space => 1, :phase => 1) stroke_horizontal_line 0, (self.page_width - self.margin) @@ -69,19 +70,31 @@ class OrderItemPdf < Prawn::Document end # Add order items under order info - def add_order_items(order_item, options) + def add_order_items(order_item, options, alt_name) y_position = cursor move_down 5 - bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do + bounding_box([0,y_position], :width => self.item_width) do text "#{order_item.item_name}", :size => self.item_font_size,:align => :left end - bounding_box([self.item_width,y_position], :width => self.qty_width, :height => self.item_height) do + bounding_box([self.item_width,y_position], :width => self.qty_width) do text "[#{order_item.qty.to_i}]", :size => self.item_font_size,:align => :left end + bounding_box([0,y_position], :width => self.item_width) do + text "#{order_item.item_name}", :size => self.item_font_size,:align => :left + + end + + if alt_name + move_down 4 + font("public/fonts/Chinese.ttf") do + text "(#{order_item.alt_name})", :size => self.item_font_size,:align => :left, :inline_format => true + end + end + move_down 5 # add option diff --git a/app/pdf/order_summary_pdf.rb b/app/pdf/order_summary_pdf.rb index 89eac43c..9e8ad10b 100644 --- a/app/pdf/order_summary_pdf.rb +++ b/app/pdf/order_summary_pdf.rb @@ -1,6 +1,6 @@ class OrderSummaryPdf < Prawn::Document attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width - def initialize(order, print_status, order_items = nil) + def initialize(print_settings,order, print_status, order_items = nil,alt_name) self.page_width = 210 self.page_height = 1450 self.margin = 5 @@ -12,11 +12,11 @@ class OrderSummaryPdf < Prawn::Document self.item_description_width = self.page_width - (self.price_width + self.qty_width + self.total_width) self.label_width=100 - super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + super(:margin => [print_settings.heading_space, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) # font "public/fonts/#{font_name}".to_s + ".ttf".to_s # font "public/fonts/Zawgyi-One.ttf" - # font "public/fonts/padauk.ttf" + font "public/fonts/padauk.ttf" self.header_font_size = 12 self.item_font_size = 10 @@ -29,9 +29,9 @@ class OrderSummaryPdf < Prawn::Document # order items if order_items == nil - order_items(order) + order_items(order, alt_name) else - order_items(order_items) + order_items(order_items, alt_name) end end @@ -60,7 +60,7 @@ class OrderSummaryPdf < Prawn::Document end # Write Order items to PDF - def order_items(order_item) + def order_items(order_item, alt_name) y_position = cursor bounding_box([0,y_position], :width => self.item_width, :height => self.item_height) do @@ -75,12 +75,12 @@ class OrderSummaryPdf < Prawn::Document move_down 5 #Add Order Item - add_order_items(order_item) + add_order_items(order_item, alt_name) end # Add order items under order info - def add_order_items(order_item) + def add_order_items(order_item, alt_name) y_position = cursor move_down 5 @@ -92,12 +92,26 @@ class OrderSummaryPdf < Prawn::Document bounding_box([0,y_position], :width => self.item_width) do text "#{odi.item_name}", :size => self.item_font_size,:align => :left + end bounding_box([self.item_width,y_position], :width => self.qty_width) do text "#{odi.qty}", :size => self.item_font_size,:align => :left end + bounding_box([0,y_position], :width => self.item_width) do + text "#{odi.item_name}", :size => self.item_font_size,:align => :left + + end + + if alt_name + move_down 4 + font("public/fonts/Chinese.ttf") do + text "(#{odi.alt_name})", :size => self.item_font_size,:align => :left, :inline_format => true + end + + end + move_down 5 # add option diff --git a/app/pdf/receipt_bill_pdf.rb b/app/pdf/receipt_bill_pdf.rb index b9bb7e31..3817c509 100644 --- a/app/pdf/receipt_bill_pdf.rb +++ b/app/pdf/receipt_bill_pdf.rb @@ -1,4 +1,5 @@ class ReceiptBillPdf < Prawn::Document + include ActionView::Helpers::NumberHelper attr_accessor :label_width,:price_column_width,:page_width, :page_height, :margin, :price_width, :item_width, :header_font_size, :item_font_size,:item_height,:qty_width,:total_width,:item_description_width def initialize(printer_settings, sale_items, sale_data, customer_name, item_price_by_accounts, discount_price_by_accounts, member_info = nil,rebate_amount = nil,shop_details) self.page_width = 210 @@ -16,7 +17,7 @@ class ReceiptBillPdf < Prawn::Document # @double = @qty_width * 1.3 # @half_qty = @qty_width / 2 #setting page margin and width - super(:margin => [self.margin, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) + super(:margin => [printer_settings.heading_space, self.margin, self.margin, self.margin], :page_size => [self.page_width, self.page_height]) # font "public/fonts/#{font_name}".to_s + ".ttf".to_s # font "public/fonts/Zawgyi-One.ttf" @@ -24,26 +25,33 @@ class ReceiptBillPdf < Prawn::Document self.header_font_size = 10 self.item_font_size = 8 + if printer_settings.delimiter + delimiter = "," + else + delimiter = "" + end + header( shop_details) stroke_horizontal_rule cashier_info(sale_data, customer_name) - line_items(sale_items) - all_total(sale_data) + line_items(sale_items,printer_settings.precision,delimiter) + all_total(sale_data,printer_settings.precision,delimiter) if member_info != nil - member_info(member_info,customer_name,rebate_amount,sale_data) + member_info(member_info,customer_name,rebate_amount,sale_data,printer_settings.precision,delimiter) end customer(customer_name) if discount_price_by_accounts.length > 0 - discount_account(discount_price_by_accounts) + discount_account(discount_price_by_accounts,printer_settings.precision,delimiter) end - items_account(item_price_by_accounts) + items_account(item_price_by_accounts,printer_settings.precision,delimiter) + footer end @@ -87,7 +95,7 @@ class ReceiptBillPdf < Prawn::Document y_position = cursor bounding_box([0,y_position], :width =>self.page_width - 10, :height => self.item_height) do - text "Receipt Date : #{ sale_data.receipt_date.strftime('%d-%m-%Y') } ( #{ sale_data.bookings[0].checkin_at.utc.getlocal.strftime('%I:%M %p') } - #{ sale_data.bookings[0].checkin_at.utc.getlocal.strftime('%I:%M %p') } )",:size => self.item_font_size,:align => :left + text "Receipt Date : #{ sale_data.receipt_date.strftime('%d-%m-%Y') } ( #{ sale_data.bookings[0].checkin_at.utc.getlocal.strftime('%I:%M %p') } - #{ sale_data.bookings[0].checkout_at.utc.getlocal.strftime('%I:%M %p') } )",:size => self.item_font_size,:align => :left end @@ -101,7 +109,7 @@ class ReceiptBillPdf < Prawn::Document stroke_horizontal_rule end - def line_items(sale_items) + def line_items(sale_items,precision,delimiter) move_down 5 y_position = cursor move_down 5 @@ -114,10 +122,10 @@ class ReceiptBillPdf < Prawn::Document } move_down -5 stroke_horizontal_rule - add_line_item_row(sale_items) + add_line_item_row(sale_items,precision,delimiter) end - def add_line_item_row(sale_items) + def add_line_item_row(sale_items,precision,delimiter) item_name_width = (self.item_width+self.price_width) y_position = cursor move_down 5 @@ -136,9 +144,9 @@ class ReceiptBillPdf < Prawn::Document pad_top(15) { text_box "#{product_name}", :at =>[0,y_position], :width => self.item_width, :height =>self.item_height, :size => self.item_font_size, :overflow => :shrink_to_fix - text_box "#{price}", :at =>[self.item_width,y_position], :width => self.price_width, :height =>self.item_height, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix + text_box "#{number_with_precision(price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[self.item_width,y_position], :width => self.price_width, :height =>self.item_height, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix text_box "#{qty}", :at =>[item_name_width,y_position], :width => self.qty_width, :height =>self.item_height, :size => self.item_font_size, :align => :center, :overflow => :shrink_to_fix - text_box "#{total_price}", :at =>[(item_name_width+4),y_position], :width =>self.total_width+3, :height =>self.item_height, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix + text_box "#{number_with_precision(total_price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[(item_name_width+4),y_position], :width =>self.total_width+3, :height =>self.item_height, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix } move_down 1 end @@ -152,12 +160,12 @@ class ReceiptBillPdf < Prawn::Document text "Sub Total", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{ sub_total }" , :size => self.item_font_size,:align => :right - end + text "#{number_with_precision(sub_total, :precision => precision.to_i, :delimiter => delimiter)}" ,:delimiter => ',', :size => self.item_font_size,:align => :right + end move_down 5 end - def all_total(sale_data) + def all_total(sale_data,precision,delimiter) item_name_width = self.item_width y_position = cursor @@ -165,7 +173,7 @@ class ReceiptBillPdf < Prawn::Document text "Overall Discount", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "( " +"#{sale_data.total_discount}" +" )" , :size => self.item_font_size,:align => :right + text "( #{number_with_precision(sale_data.total_discount, :precision => precision.to_i, :delimiter => delimiter)} )" , :size => self.item_font_size,:align => :right end if sale_data.sale_taxes.length > 0 @@ -177,7 +185,7 @@ class ReceiptBillPdf < Prawn::Document text "#{ st.tax_name }", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{ st.tax_payable_amount }" , :size => self.item_font_size,:align => :right + text "#{number_with_precision(st.tax_payable_amount, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right end end else @@ -198,18 +206,18 @@ class ReceiptBillPdf < Prawn::Document y_position = cursor move_down 5 bounding_box([0,y_position], :width =>self.item_description_width, :height => self.item_height) do - text "Grand Total", :size => self.header_font_size,:align => :left + text "Grand Total",:style => :bold, :size => self.header_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{sale_data.grand_total}" , :size => self.header_font_size,:align => :right + text "#{number_with_precision(sale_data.grand_total, :precision => precision.to_i, :delimiter => delimiter)}" , :style => :bold, :size => self.header_font_size,:align => :right end move_down 5 - sale_payment(sale_data) + sale_payment(sale_data,precision,delimiter) end - def sale_payment(sale_data) + def sale_payment(sale_data,precision,delimiter) stroke_horizontal_rule move_down 5 @@ -220,7 +228,7 @@ class ReceiptBillPdf < Prawn::Document text "#{payment.payment_method.capitalize} Payment", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{ payment.payment_amount }" , :size => self.item_font_size,:align => :right + text "#{number_with_precision(payment.payment_amount, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right end move_down 5 end @@ -231,7 +239,7 @@ class ReceiptBillPdf < Prawn::Document text "Change Amount", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{sale_data.amount_changed}" , :size => self.item_font_size,:align => :right + text "#{number_with_precision(sale_data.amount_changed, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right end move_down 5 end @@ -239,7 +247,7 @@ class ReceiptBillPdf < Prawn::Document end # show member information - def member_info(member_info,customer_name,rebate_amount,sale_data) + def member_info(member_info,customer_name,rebate_amount,sale_data,precision,delimiter) if rebate_amount != nil @@ -255,7 +263,7 @@ class ReceiptBillPdf < Prawn::Document text "Current Rebate Amount", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{ res["rebate"] }" , :size => self.item_font_size,:align => :right + text "#{number_with_precision(res["rebate"], :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right end end if res["receipt_no"]== sale_data.receipt_no && res["status"]== "Redeem" @@ -266,15 +274,15 @@ class ReceiptBillPdf < Prawn::Document text "Current Redeem Amount", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "(#{ res["redeem"] })" , :size => self.item_font_size,:align => :right + text "#{number_with_precision(res["redeem"], :precision => precision.to_i, :delimiter => delimiter)}", :size => self.item_font_size,:align => :right end end end end end - if member_info["status"] == true - balance = 0.0 + if member_info["status"] == true && member_info["data"].present? + balance = 0 member_info["data"].each do |res| if res["accountable_type"] == "RebateAccount" || res["accountable_type"] == "RebatebonusAccount" @@ -289,7 +297,7 @@ class ReceiptBillPdf < Prawn::Document text "Current Balance", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{ balance }" , :size => self.item_font_size,:align => :right + text "#{number_with_precision(balance, :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right end end @@ -305,8 +313,7 @@ class ReceiptBillPdf < Prawn::Document text "#{ customer_name }" , :size => self.item_font_size,:align => :right end end - - def discount_account(discount_price_by_accounts) + def discount_account(discount_price_by_accounts,precision,delimiter) move_down 5 stroke_horizontal_rule move_down 5 @@ -317,12 +324,12 @@ class ReceiptBillPdf < Prawn::Document text "#{ 'Total ' + ipa[:name] + ' Discounts' }", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "(" + "#{ ipa[:price] }" + ")" , :size => self.item_font_size,:align => :right + text "(" + "#{ number_with_precision(ipa[:price], :precision => precision.to_i, :delimiter => delimiter) }" + ")" , :size => self.item_font_size,:align => :right end end end - def items_account(item_price_by_accounts) + def items_account(item_price_by_accounts,precision,delimiter) move_down 5 stroke_horizontal_rule move_down 5 @@ -333,7 +340,7 @@ class ReceiptBillPdf < Prawn::Document text "#{ ipa[:name] }", :size => self.item_font_size,:align => :left end bounding_box([self.item_description_width,y_position], :width =>self.label_width) do - text "#{ ipa[:price] }" , :size => self.item_font_size,:align => :right + text "#{number_with_precision(ipa[:price], :precision => precision.to_i, :delimiter => delimiter)}" , :size => self.item_font_size,:align => :right end end end diff --git a/app/views/crm/dining_queues/index.html.erb b/app/views/crm/dining_queues/index.html.erb index 813be2cf..4adbead9 100644 --- a/app/views/crm/dining_queues/index.html.erb +++ b/app/views/crm/dining_queues/index.html.erb @@ -20,7 +20,7 @@
<%= queue.id %>
<%= queue.status %>
diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index 05b74b7a..345ca63f 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -33,14 +33,14 @@Date: <%= @sale.created_at.utc.getlocal.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%>
+Date: <%= @sale.created_at.strftime("%d/%m/%Y - %I:%M %p") rescue '-'%>
| Sale (<%= params[:from] rescue '-' %> - <%= params[:to] rescue '-'%>) | -||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sr.no | -Date | -Void Amount | -Mpu Sales | -Master Sales | -Visa Sales | -Jcb Sales | -Paypar Sales | -Cash Sales | -Credit Sales | -FOC Sales | -(Discount) | -Grand Total + Rounding Adj. |
- Rounding Adj. | -Grand Total | -||
| <%= count %> | -<%= sale[:sale_date].strftime("#{sale[:sale_date].day.ordinalize} %b") rescue '-' %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:void_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:mpu_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:master_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:visa_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:jcb_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:paypar_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:cash_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:credit_amount]), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:foc_amount]), :delimiter => ',') rescue '-'%> | -(<%= number_with_delimiter(sprintf("%.2f",sale[:total_discount]), :delimiter => ',') rescue '-'%>) | -<%= number_with_delimiter(sprintf("%.2f",sale[:grand_total].to_f + sale[:rounding_adj].to_f ), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:rounding_adj].to_f), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",sale[:grand_total]), :delimiter => ',') rescue '-'%> | -||
| Total | -<%= number_with_delimiter(sprintf("%.2f",mpu_amount), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",master_amount), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",visa_amount), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",jcb_amount), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",paypar_amount), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",cash), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",credit), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",foc), :delimiter => ',') rescue '-'%> | -(<%= number_with_delimiter(sprintf("%.2f",discount), :delimiter => ',') rescue '-'%>) | -<%= number_with_delimiter(sprintf("%.2f",total), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",rounding_adj), :delimiter => ',') rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",grand_total), :delimiter => ',') rescue '-'%> | -||||
| <%= tax.tax_name rescue '-'%> | -<%= number_with_delimiter(sprintf("%.2f",tax.tax_amount), :delimiter => ',') rescue '-'%> | -- | ||||||||||||||
| Net Amount | -<%= number_with_delimiter(sprintf("%.2f",net), :delimiter => ',') rescue '-'%> | -- | ||||||||||||||
| Location Name | -Date | -Cash Sales | -Credit Sales | -Credit Received | - -Card Payment | -Total Discount | -Total Taxes | -Total Other Charges | -FOC Sales | -Void Sales | -Grand Total | -|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Date | +Receipt No | +Cashier Name | +Gross Sales | +Discount | +Total Sales | + <% TaxProfile.all.each do |r|%> +<%=r.name%> | + <% end %> +Nett Sales | +|||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| <%= sale[:location].to_s rescue '-' %> | -<%= sale[:sale_date].strftime("#{sale[:sale_date].day.ordinalize} %b") rescue '-' %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:cash_amount].to_f), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:credit_amount].to_f), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:credit_payment].to_f), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:card_amount].to_f), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:total_discount].to_f), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:total_tax].to_f), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:other_charges].to_f), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",sale[:foc_amount].to_f), :delimiter => ',') %> | - <% total_void_amount = 0 %> - <% if !@daily_void.nil? %> - <% @daily_void.each do |d_v|%> - - <% if d_v[:daily_void_amt].to_i > 0 %> - <% if d_v[:location_id] == sale[:location_id] %> - <% if d_v[:date].utc.getlocal.strftime("%Y-%m-%d").to_s == sale[:sale_date].to_s%> - <%count_of_void+=1%> - - <%total_void_amount += d_v[:daily_void_amt].to_f%> - <% flag = true %> - - - - <%end %> - <% end%> - <% end%> - <% end%> - <% end%> - <% if flag == true%> - <% void += total_void_amount.to_f %> -<%= number_with_delimiter(sprintf("%.2f",total_void_amount.to_f), :delimiter => ',') %> | - <% flag = false %> - <% end%> - <%if count_of_void == 0%> -<%= number_with_delimiter(sprintf("%.2f",0.to_f), :delimiter => ',') %> | - <%end %> -- <%= number_with_delimiter(sprintf("%.2f",((sale[:cash_amount].to_f + sale[:credit_amount].to_f + sale[:card_amount].to_f + sale[:credit_payment].to_f) - sale[:today_credit_payment].to_f) ).to_f, :delimiter => ',') %> - | - -
| Grand Total | -<%= number_with_delimiter(sprintf("%.2f",cash), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",credit ), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",credit_payment ), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",card ), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",discount ), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",total_tax ), :delimiter => ',') %> | - -<%= number_with_delimiter(sprintf("%.2f",total_other_charges ), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",foc ), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f",void ), :delimiter => ',') %> | -<%= number_with_delimiter(sprintf("%.2f", (cash.to_f + credit.to_f + card.to_f + credit_payment.to_f) - today_credit_payment_amount.to_f ).to_f, :delimiter => ',') %> | - -||
| From Date : <%= params[:from] %> , To Date : <%= params[:to] %> | -|||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Shift Name = <%= @shift_from %> - <%= @shift_to %> ( <%= cashier_name %> ) | -|||||||||||||||||
| - | Menu Category | -Code | -Product | -Total Item | -Unit Price | -Revenue | -|||||||||||
| <%= sale.account_name %> | -- | Total Price By <%= sale.account_name %> | -- <% @totalByAccount.each do |account, total| %> - <% if sale.account_id == account %> - <%= total %> - <% end %> - <% end %> - | -||||||||||||||
| - <% if !cate_arr.include?(sale.menu_category_id) %> - | <%= sale.menu_category_name %> | - <% cate_arr.push(sale.menu_category_id) %> - <% else %> -- <% end %> - | <%= sale.code rescue '-' %> | - <% if @item_table == 'sale' %> - <% if sale.item_remark == 'FOC' %> -<%= '[PROMO] '.to_s + sale.product_name.to_s rescue '-' %> | - <% elsif sale.item_remark == 'FOC ITEM' %> -<%= '[DIS:QTY] '.to_s + sale.product_name.to_s rescue '-' %> | - <% elsif sale.item_remark == 'DISCOUNT' %> -<%= '[DIS:TP] '.to_s + sale.product_name.to_s rescue '-' %> | - <% else %> -<%= sale.product_name.to_s rescue '-' %> | - <% end %> - <% if sale.item_remark == 'DISCOUNT' %> -- | -- | -<%= sale.total_price.abs rescue '-' %> | - <% total_price += sale.total_price %> - <% else %> -<%= sale.total_item.abs rescue '-' %> | -<%= sale.unit_price rescue '-' %> | -<%= sale.grand_total.abs rescue '-' %> | - <% end %> - <% else %> -<%= sale.product_name.to_s rescue '-' %> | -<%= sale.total_item.abs rescue '-' %> | -<%= sale.unit_price rescue '-' %> | -<%= sale.grand_total.abs rescue '-' %> | - <% end %> -
| - | Sub Total | -<%= sub_total + total_price %> | -|||||||||||||||
| - | Grand Total | -<%= grand_total + total_discount %> | -|||||||||||||||
| Date | -- | ||||
|---|---|---|---|---|---|
| Menu Category | -Code | -Product | -Total Item | -Unit Price | -Revenue | -