Files
sx-fc/app/models/sale_item.rb
2017-06-12 12:04:12 +06:30

65 lines
2.6 KiB
Ruby

class SaleItem < ApplicationRecord
self.primary_key = "sale_item_id"
#primary key - need to be unique generated for multiple shops
before_create :generate_custom_id
belongs_to :sale
#compute items - discount, tax, price_change
def compute_item
end
def self.get_order_items_details(sale_id)
order_details = SaleItem.select("sales.total_tax as tax_amount, sales.grand_total as grand_total_amount , sales.total_discount as discount_amount,DATE_FORMAT(sales.receipt_date,'%Y-%m-%d %h:%m') as receipt_date,
sales.cashier_name,sales.receipt_no,sale_items.product_name as item_name,sale_items.qty,sale_items.price,sale_items.unit_price as total_price")
.joins("left join sales on sales.sale_id = sale_items.sale_id")
.where("sale_items.sale_id=?",sale_id)
# sale_orders = SaleOrder.where("sale_id=?",sale_id)
# if sale_orders
# sale_orders.each do |sale_order|
# order_details = SaleItem.select("sales.total_discount as discount_amount,DATE_FORMAT(sales.receipt_date,'%Y-%m-%d %h:%m') as receipt_date,sales.cashier_name,sales.receipt_no,sale_items.product_name as item_name,sale_items.qty,sale_items.price,sale_items.unit_price as total_price")
# .joins("left join sales on sales.id = sale_items.sale_id")
# .where("sale_items.sale_id=?",sale_order.sale_id)
# return order_details
# end
# else
# return false
# end
end
def self.calculate_food_beverage(sale_items)
food_prices=0
beverage_prices=0
sale_items.each do |si|
food_price = self.get_food_price(si.sale_item_id)
beverage_price = self.get_beverage_price(si.sale_item_id)
puts food_price
# food_prices = food_prices + food_price.price
# beverage_prices = beverage_prices + beverage_price.price
end
return food_prices, beverage_prices
end
def self.get_food_price(sale_item_id)
food_price=SaleItem.select("sale_items.price")
.joins("left join menu_items on menu_items.item_code = sale_items.product_code")
.where("sale_items.sale_item_id=? and menu_items.account_id=0", sale_item_id)
end
def self.get_beverage_price(sale_item_id)
beverage_price=SaleItem.select("sale_items.price")
.joins("left join menu_items on menu_items.item_code = sale_items.product_code")
.where("sale_items.sale_item_id=? and menu_items.account_id=1", sale_item_id)
end
private
def generate_custom_id
self.sale_item_id = SeedGenerator.generate_id(self.class.name, "SLI")
end
end