53 lines
1.9 KiB
Ruby
53 lines
1.9 KiB
Ruby
|
|
#Description
|
|
#total_revenue = sum of all sub-total from sales table
|
|
#total_discounts = sum of all discount (overall) from sales tables
|
|
#total_taxes = sum of all taxes from sales table (Service + Goverment Tax (commercial_taxes))
|
|
#grand_total = total_revenue - total_discounts + total_taxes
|
|
#nett_sales = grand_total - commercial_taxes
|
|
#cash_sales = cash payment total revenue
|
|
#credit_sales = credit payment total revenue
|
|
#others_sales = [Sum of each of other payment type --- mpu, jcb, visa,master, rebate, vochure]
|
|
#commercial_taxes = Total Goverment tax due
|
|
#cash_in = Payment receive
|
|
#Cash_out = Payment issues for misc payments
|
|
|
|
class ShiftSale < ApplicationRecord
|
|
belongs_to :cashier_terminal
|
|
belongs_to :employee, :foreign_key => 'employee_id'
|
|
|
|
def self.current_open_shift(current_user)
|
|
#if current_user
|
|
#find open shift where is open today and is not closed and login by current cashier
|
|
today_date = DateTime.now.strftime("%Y-%m-%d")
|
|
puts today_date
|
|
shift = ShiftSale.where("DATE(shift_started_at)= #{ today_date } and shift_started_at is not null and shift_closed_at is null and employee_id = #{current_user}").take
|
|
|
|
return shift
|
|
#end
|
|
end
|
|
|
|
def create(opening_balance,current_user)
|
|
self.cashier_terminal_id = CashierTerminal.first.id
|
|
self.shift_started_at = DateTime.now
|
|
self.employee_id = current_user.id
|
|
self.opening_balance = opening_balance
|
|
self.save
|
|
end
|
|
|
|
def update(sale)
|
|
saleobj = Sale.find_by_sale_id(sale)
|
|
self.total_revenue = self.total_revenue + saleobj.total_amount
|
|
self.total_discounts = self.total_discounts + saleobj.total_discount
|
|
self.total_taxes = self.total_taxes + saleobj.total_tax
|
|
self.grand_total = self.grand_total + saleobj.grand_total
|
|
# self.nett_sales =
|
|
# self.cash_sales =
|
|
# self.credit_sales =
|
|
# self.other_sales =
|
|
# self.commercial_taxes =
|
|
self.save
|
|
|
|
end
|
|
end
|