#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) cash = saleobj.get_cash_amount credit = saleobj.get_credit_amount other_sales = saleobj.get_other_amount self.total_revenue = self.total_revenue.to_f + saleobj.total_amount.to_f 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.cash_sales = self.cash_sales.to_f + cash.to_f self.credit_sales = self.credit_sales.to_i + credit.to_f self.other_sales = self.other_sales.to_i + other_sales.to_f # self.nett_sales = # self.commercial_taxes = self.save end end