Merge branch 'r-1902001-01' of gitlab.com:code2lab/SXRestaurant into r-1902001-01
This commit is contained in:
@@ -26,7 +26,6 @@ class Sale < ApplicationRecord
|
||||
}
|
||||
SALE_STATUS_OUTSTANDING = "outstanding"
|
||||
SALE_STATUS_COMPLETED = "completed"
|
||||
|
||||
def self.sync_sale_records(sales)
|
||||
if !sales.nil?
|
||||
sales.each do |s|
|
||||
@@ -63,8 +62,7 @@ class Sale < ApplicationRecord
|
||||
puts '........ Sale data sync completed .......'
|
||||
end
|
||||
end
|
||||
|
||||
def generate_invoice_from_booking(booking_id, requested_by, cashier, order_source = nil)
|
||||
def generate_invoice_from_booking(booking_id, requested_by, cashier, order_source = nil, current_checkin_induties_count)
|
||||
booking = Booking.find(booking_id)
|
||||
status = false
|
||||
Rails.logger.debug "Booking -> " + booking.id.to_s
|
||||
@@ -93,9 +91,22 @@ class Sale < ApplicationRecord
|
||||
else
|
||||
dining_time = booking.checkin_at.strftime('%B %d, %H:%M %p').to_s + " - " + booking.checkout_at.strftime('%B %d, %H:%M %p').to_s
|
||||
end
|
||||
later_time = booking.checkout_at
|
||||
early_time = booking.checkin_at
|
||||
distance_in_minutes = ((later_time - early_time)/60.0).round
|
||||
basic_pay_amount =0
|
||||
name =""
|
||||
if current_checkin_induties_count != "0"
|
||||
basic_pay = Commission.where('commission_type=?','Basic Pay')
|
||||
basic_pay.each do |pay|
|
||||
basic_pay_amount =pay.amount
|
||||
name =pay.name
|
||||
end
|
||||
induties_pay_amount = (current_checkin_induties_count.to_i * (distance_in_minutes / 60.0).to_f * basic_pay_amount).to_i
|
||||
create_saleitem_indutycharges(charges, current_checkin_induties_count.to_i, induties_pay_amount, booking.dining_facility.name, dining_time, order_source, basic_pay_amount)
|
||||
end
|
||||
create_saleitem_diningcharges(charges, block_count, diningprice, booking.dining_facility.name, dining_time, order_source)
|
||||
end
|
||||
|
||||
return status, sale_id
|
||||
end
|
||||
end
|
||||
@@ -367,7 +378,25 @@ class Sale < ApplicationRecord
|
||||
sale = Sale.find(self.id)
|
||||
self.compute_by_sale_items(self.id, sale.sale_items, self.total_discount, nil, order_source)
|
||||
end
|
||||
|
||||
def create_saleitem_indutycharges(chargeObj, current_checkin_induties_count, induties_pay_amount, dining_name, dining_time, order_source = nil, basic_pay_amount)
|
||||
sale_item = SaleItem.new
|
||||
sale_item.menu_category_code = "IndutyCharge"
|
||||
sale_item.menu_category_name = "Induty Charge"
|
||||
sale_item.product_code = ""
|
||||
sale_item.product_name ='Vocalist' + " ( " + dining_time.to_s + " )"
|
||||
sale_item.account_id = 0
|
||||
sale_item.product_alt_name = "-"
|
||||
sale_item.qty = current_checkin_induties_count
|
||||
sale_item.unit_price = basic_pay_amount
|
||||
sale_item.taxable_price = induties_pay_amount
|
||||
sale_item.is_taxable = chargeObj.taxable
|
||||
sale_item.sale_id = self.id
|
||||
sale_item.price = induties_pay_amount
|
||||
sale_item.save
|
||||
# Re-calc
|
||||
sale = Sale.find(self.id)
|
||||
self.compute_by_sale_items(self.id, sale.sale_items, self.total_discount, nil, order_source)
|
||||
end
|
||||
def update_item (item)
|
||||
#save sale_audit
|
||||
|
||||
|
||||
Reference in New Issue
Block a user