check tax profile

This commit is contained in:
phyusin
2018-03-19 11:35:43 +06:30
parent e55ff8b5e0
commit a9c8eb4e93
12 changed files with 61 additions and 45 deletions

View File

@@ -26,7 +26,7 @@ class Sale < ApplicationRecord
SALE_STATUS_OUTSTANDING = "outstanding"
SALE_STATUS_COMPLETED = "completed"
def generate_invoice_from_booking(booking_id, requested_by, cashier)
def generate_invoice_from_booking(booking_id, requested_by, cashier, order_source = nil)
booking = Booking.find(booking_id)
status = false
Rails.logger.debug "Booking -> " + booking.id.to_s
@@ -36,9 +36,9 @@ class Sale < ApplicationRecord
booking.booking_orders.each do |order|
if booking.sale_id
status, sale_id = generate_invoice_from_order(order.order_id, nil, booking, requested_by, cashier)
status, sale_id = generate_invoice_from_order(order.order_id, nil, booking, requested_by, cashier, order_source)
else
status, sale_id = generate_invoice_from_order(order.order_id, booking.sale_id, booking, requested_by, cashier)
status, sale_id = generate_invoice_from_order(order.order_id, booking.sale_id, booking, requested_by, cashier, order_source)
end
booking.sale_id = sale_id
end
@@ -58,7 +58,7 @@ class Sale < ApplicationRecord
end
end
def generate_invoice_from_order (order_id, sale_id, booking, requested_by, cashier = nil)
def generate_invoice_from_order (order_id, sale_id, booking, requested_by, cashier = nil, order_source = nil)
taxable = true
#if sale_id is exsit and validate
#add order to that invoice
@@ -128,7 +128,7 @@ class Sale < ApplicationRecord
self.save!
#compute sales summary
compute
compute(order_source)
#Update the order items that is billed
order.update_items_status_to_billed(nil)
@@ -172,7 +172,7 @@ class Sale < ApplicationRecord
# Create Sale if it doesn't exist
# puts "current_login_employee"
# puts current_login_employee.name
@status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee,current_user)
@status, @sale_id = @sale.generate_invoice_from_booking(check_booking.id,current_login_employee,current_user,order.source)
@sale_data = Sale.find_by_sale_id(@sale_id)
@sale_items = SaleItem.where("sale_id=?",@sale_id)
else
@@ -310,7 +310,7 @@ class Sale < ApplicationRecord
end
#compute - invoice total
def compute
def compute(order_source = nil)
sales_items = self.sale_items
#Computation Fields
@@ -329,7 +329,7 @@ class Sale < ApplicationRecord
# total_taxable = total_taxable + (item.taxable_price * item.qty)
end
apply_tax (total_taxable)
apply_tax(total_taxable, order_source)
self.total_amount = subtotal_price
self.total_discount = total_discount
@@ -342,7 +342,7 @@ class Sale < ApplicationRecord
end
#compute - invoice total
def compute_by_sale_items(sale_id, sale_itemss, total_discount,discount_type=nil)
def compute_by_sale_items(sale_id, sale_itemss, total_discount,discount_type=nil,order_source=nil)
sale = Sale.find(sale_id)
sales_items = sale_itemss
@@ -362,7 +362,7 @@ class Sale < ApplicationRecord
end
end
compute_tax(sale, total_taxable, total_discount)
compute_tax(sale, total_taxable, total_discount, order_source)
sale.total_amount = subtotal_price
sale.total_discount = total_discount
sale.grand_total = (sale.total_amount - sale.total_discount) + sale.total_tax
@@ -376,7 +376,7 @@ class Sale < ApplicationRecord
end
# No Use too many wrong
def compute_without_void
def compute_without_void(order_source = nil)
sales_items = self.sale_items
#Computation Fields
@@ -396,7 +396,7 @@ class Sale < ApplicationRecord
end
end
apply_tax (total_taxable)
apply_tax(total_taxable, order_source)
self.total_amount = subtotal_price
self.total_discount = total_discount
self.grand_total = (self.total_amount - self.total_discount) + self.total_tax
@@ -407,7 +407,7 @@ class Sale < ApplicationRecord
end
# Tax Re-Calculte
def compute_tax(sale, total_taxable, total_discount = 0)
def compute_tax(sale, total_taxable, total_discount = 0, order_source = nil)
shop = Shop.first();
#if tax is not apply create new record
@@ -423,8 +423,9 @@ class Sale < ApplicationRecord
# #Creat new tax records
if sale.payment_status != 'foc'
tax_profiles.each do |tax|
customer.tax_profiles.each do |cus_tax|
if cus_tax.to_i == tax.id
# customer.tax_profiles.each do |cus_tax|
# if cus_tax.to_i == tax.id
if tax.group_type.to_s == order_source.to_s
sale_tax = SaleTax.new(:sale => sale)
sale_tax.tax_name = tax.name
sale_tax.tax_rate = tax.rate
@@ -447,15 +448,16 @@ class Sale < ApplicationRecord
sale_tax.inclusive = tax.inclusive
sale_tax.save
end
end
# end
# end
end
end
sale.total_tax = total_tax_amount
end
# Tax Calculate
def apply_tax(total_taxable)
def apply_tax(total_taxable, order_source = nil)
shop = Shop.first();
#if tax is not apply create new record
@@ -469,11 +471,14 @@ class Sale < ApplicationRecord
tax_profiles = TaxProfile.all.order("order_by asc")
customer = Customer.find(self.customer_id)
if order_source.to_s == "emenu"
order_source = "cashier"
end
#Create new tax records
tax_profiles.each do |tax|
customer.tax_profiles.each do |cus_tax|
if cus_tax.to_i == tax.id
# customer.tax_profiles.each do |cus_tax|
# if cus_tax.to_i == tax.id
if tax.group_type.to_s == order_source.to_s
sale_tax = SaleTax.new(:sale => self)
sale_tax.tax_name = tax.name
sale_tax.tax_rate = tax.rate
@@ -497,8 +502,9 @@ class Sale < ApplicationRecord
sale_tax.inclusive = tax.inclusive
sale_tax.save
end
end
# end
# end
end
self.total_tax = total_tax_amount
end
@@ -1963,7 +1969,7 @@ end
end
# Re-compute for add
saleobj.compute
saleobj.compute(order.source)
saleobj.save
order.save
booking.save
@@ -1993,7 +1999,7 @@ end
end
# Re-compute for add
saleobj.compute
saleobj.compute(order.source)
saleobj.save
order.save
booking.save