fix discount and receipt bill

This commit is contained in:
Yan
2017-07-21 18:15:10 +06:30
parent 2e8c866761
commit b8fc67745d
3 changed files with 55 additions and 49 deletions

View File

@@ -99,11 +99,12 @@ class Origami::DiscountsController < BaseOrigamiController
table_id = sale.bookings[0].dining_facility_id
table_type = DiningFacility.find(table_id).type
discount_items = []
#destroy all discount sale item
sale.sale_items.each do |si|
if si.remark == "Discount" && si.price < 0
sale.total_amount = (sale.total_amount + si.price.abs)
si.destroy
discount_items.push(si)
end
end
@@ -111,6 +112,9 @@ class Origami::DiscountsController < BaseOrigamiController
# sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax;
# sale.save
#destroy in sale.sale_items
sale.sale_items.destroy(discount_items)
# Re-calc All Amount in Sale
sale.compute_by_sale_items(sale_id, sale.sale_items, 0)
result = {:status=> "Success", :table_id => table_id, :table_type => table_type }
@@ -139,7 +143,6 @@ class Origami::DiscountsController < BaseOrigamiController
arr.push(str)
end
end
end
generic_customer_id = sale.customer.membership_id

View File

@@ -1,6 +1,6 @@
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
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, :description_width, :price_num_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, printed_status)
self.page_width = 210
self.page_height = 7000
@@ -12,6 +12,9 @@ class ReceiptBillPdf < Prawn::Document
self.item_height = 15
self.item_description_width = (self.page_width-20) / 2
self.label_width = 100
self.description_width = 150
self.price_num_width = 50
# @item_width = self.page_width.to_i / 2
# @qty_width = @item_width.to_i / 3
# @double = @qty_width * 1.3
@@ -73,10 +76,10 @@ class ReceiptBillPdf < Prawn::Document
move_down 7
# move_down 2
y_position = cursor
bounding_box([0,y_position], :width =>self.label_width, :height => self.item_height) do
bounding_box([0,y_position], :width =>self.description_width, :height => self.item_height) do
text "Receipt No: #{sale_data.receipt_no}", :size => self.item_font_size,:align => :left
end
bounding_box([self.label_width,y_position], :width => self.label_width, :height => self.item_height) do
bounding_box([self.description_width,y_position], :width => self.price_num_width, :height => self.item_height) do
text "#{ sale_data.bookings[0].dining_facility.type } - #{ sale_data.bookings[0].dining_facility.name }" , :size => self.item_font_size,:align => :right
end
move_down 5
@@ -140,7 +143,7 @@ class ReceiptBillPdf < Prawn::Document
y_position = cursor
pad_top(15) {
text_box "#{product_name}", :at =>[0,y_position], :width => self.item_width, :size => self.item_font_size, :overflow => :shrink_to_fix
text_box "#{product_name}", :at =>[0,y_position], :width => self.item_width, :size => self.item_font_size , :overflow => :expand
text_box "#{number_with_precision(price, :precision => precision.to_i, :delimiter => delimiter)}", :at =>[self.item_width,y_position], :width => self.price_width, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix
text_box "#{number_with_precision(qty, :precision => precision.to_i)}", :at =>[item_name_width,y_position], :width => self.qty_width, :size => self.item_font_size, :align => :center, :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, :size => self.item_font_size, :align => :right, :overflow => :shrink_to_fix

View File

@@ -288,7 +288,7 @@ menu_category10 = MenuCategory.create({menu: menu, name: "Udon", alt_name: "Udo
menu_category1_menu_item99 = SimpleMenuItem.create({name: "U6 Seafood Fried Udon", alt_name: "",menu_category: menu_category10 , min_selectable_item: 1, max_selectable_item:1, account: food })
menu_item0_instance = MenuItemInstance.create([{item_instance_name:"",menu_item: menu_category1_menu_item99, price:4900.00, is_on_promotion:false}])
# U7 Beef Frid Udon
menu_category1_menu_item100 = SimpleMenuItem.create({name: "U7 Beef Frid Udon", alt_name: "",menu_category: menu_category10 , min_selectable_item: 1, max_selectable_item:1, account: food })
menu_category1_menu_item100 = SimpleMenuItem.create({name: "U7 Beef Fried Udon", alt_name: "",menu_category: menu_category10 , min_selectable_item: 1, max_selectable_item:1, account: food })
menu_item0_instance = MenuItemInstance.create([{item_instance_name:"",menu_item: menu_category1_menu_item100, price:4500.00, is_on_promotion:false}])
# U8 Spicy Beef Fried Udon
menu_category1_menu_item93 = SimpleMenuItem.create({name: "U8 Spicy Beef Fried Udon", alt_name: "",menu_category: menu_category10 , min_selectable_item: 1, max_selectable_item:1, account: food })
@@ -640,8 +640,8 @@ menu_category23 = MenuCategory.create({menu: menu, name: "Smoothies", alt_name:
menu_category23_menu_item201 = SimpleMenuItem.create({name: "Passion fruit smoothie", alt_name: "",menu_category: menu_category23 , min_selectable_item: 1, max_selectable_item:1, account: beverage })
menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Passion fruit smoothie",menu_item: menu_category23_menu_item201, price:3500.00, is_on_promotion:false}])
# Mixederry smoothie
menu_category23_menu_item202 = SimpleMenuItem.create({name: "Mixederry smoothie", alt_name: "",menu_category: menu_category23 , min_selectable_item: 1, max_selectable_item:1, account: beverage })
menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Mixederry smoothie",menu_item: menu_category23_menu_item202, price:3500.00, is_on_promotion:false}])
menu_category23_menu_item202 = SimpleMenuItem.create({name: "Mixedberry smoothie", alt_name: "",menu_category: menu_category23 , min_selectable_item: 1, max_selectable_item:1, account: beverage })
menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Mixedberry smoothie",menu_item: menu_category23_menu_item202, price:3500.00, is_on_promotion:false}])
# Blueberry smoothie
menu_category23_menu_item203 = SimpleMenuItem.create({name: "Blueberry smoothie", alt_name: "",menu_category: menu_category23 , min_selectable_item: 1, max_selectable_item:1, account: beverage })
menu_item0_instance = MenuItemInstance.create([{item_instance_name:"Blueberry smoothie",menu_item: menu_category23_menu_item203, price:3500.00, is_on_promotion:false}])
@@ -857,44 +857,44 @@ menu_category33 = MenuCategory.create({menu: menu, name: "Grilled", alt_name: "G
puts "Osaka's menu setup"
zone = Zone.create({id:1, name: "H1", is_active:true, created_by: "SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table1", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table2", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table3", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table4", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table5", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table6", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table7", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table8", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table9", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table10", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table11", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table12", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"Table13", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"1", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"2", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"3", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"4", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"5", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"6", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"7", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"8", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"9", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"10", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"11", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"12", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone, name:"13", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
zone2 = Zone.create({id:2, name: "H2", is_active:true, created_by: "SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table14", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table15", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table16", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table17", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table18", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table19", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table20", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table21", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table22", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table23", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table24", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table25", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table26", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"Table27", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"14", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"15", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"16", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"17", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"18", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"19", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"20", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"21", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"22", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"23", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"24", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"25", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"26", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone2, name:"27", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
zone3 = Zone.create({id:3, name: "H3", is_active:true, created_by: "SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"Table28", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"Table29", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"Table30", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"Table31", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"Table32", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"Table33", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"Table34", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"Table35", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"28", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"29", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"30", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"31", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"32", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"33", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"34", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
table = Table.create({zone: zone3, name:"35", status:"available", seater: 2 , order_by:1, created_by:"SYSTEM DEFAULT"})
#Default Order Queue stations
order_queue_station1 = OrderQueueStation.create({station_name: "K1", is_active: true,printer_name: "Cashier", processing_items: JSON.generate(['I0001','I0002','I0003','I0004']), print_copy:false, cut_per_item: false, use_alternate_name: false, created_by: "SYSTEM DEFAULT"})