Exemplo n.º 1
0
 public TransactionHistory Add(TransactionHistory transactionHistory)
 {
     transactionHistoryRepository.Add(transactionHistory);
     return transactionHistory;
 }
Exemplo n.º 2
0
 public TransactionHistory Update(TransactionHistory transactionHistory)
 {
     transactionHistoryRepository.Update(transactionHistory);
     return transactionHistory;
 }
Exemplo n.º 3
0
        public ActionResult SaveNewBill(Bill bill, bool isZeroOut)
        {
            try
            {
                //save to bill
                if (bill != null)
                {
                    bill.DateReceived = DateTime.Now;
                    Guid memberId = bill.MemberId;
                    Guid medallionId = bill.MedallionId;

                    var medallion = medallionService.Get(bill.MedallionId);
                    if (bill.Id != null && bill.Id != Guid.Empty)
                    {

                        bill.UserName = User.Identity.Name;
                        billService.Update(bill);
                    }
                    else
                    {
                        bill.Id = Guid.NewGuid();
                        bill.IsZeroOut = isZeroOut;
                        bill.UserName = User.Identity.Name;
                        billService.Add(bill);
                    }
                    //we are suspecting  just have only one for each medallion
                    var loan = loanService.GetLoanListByMemberAndMedallion(memberId, medallionId).FirstOrDefault();
                    var insuranceDeposit = insuranceDepositService.GetByMedallionAndMemberId(memberId, medallionId);
                    var ccsys = ccsystemAirtimeService.GetByMedallionAndMemberId(memberId, medallionId);
                    var accReceivable = accountReceivableService.GetByMedallionAndMemberId(memberId, medallionId);
                    var saveDeposit = savingDepositService.GetByMedallionAndMemberId(memberId, medallionId);

                    //decrease balance in loan
                    if (loan != null && bill.Loan > 0)
                    {
                        loan.TotalPaid += bill.Loan;
                        loan.CurrentBalance -= bill.Loan;
                        //decrease for total paid interested &  principal paid
                        CalculatePaidLoan(loan, bill.Loan);

                        loanService.Update(loan);
                    }

                    //decrease balance in insurance deposit
                    if (insuranceDeposit != null && bill.InsuranceDepositAmount > 0)
                    {
                        insuranceDeposit.TotalPaid += bill.InsuranceDepositAmount;
                        insuranceDeposit.CurrentBalance -= bill.InsuranceDepositAmount;
                        insuranceDepositService.Update(insuranceDeposit);
                    }

                    //decrease balance in accReceivable
                    if (accReceivable != null && bill.AccountReceivableAmount > 0)
                    {
                        accReceivable.TotalPaid += bill.AccountReceivableAmount;
                        accReceivable.CurrentBalance -= bill.AccountReceivableAmount;
                        accountReceivableService.Update(accReceivable);
                    }

                    if (isZeroOut)
                    {
                        //decrease balance in saveDeposit
                        if (saveDeposit != null && bill.TotalPaid > 0)
                        {
                            saveDeposit.TotalPaid -= bill.TotalPaid;
                            savingDepositService.Update(saveDeposit);
                        }
                    }
                    else
                    {
                        //decrease balance in saveDeposit
                        if (saveDeposit != null && bill.SavingDepositAmount > 0)
                        {
                            saveDeposit.TotalPaid += bill.SavingDepositAmount;
                            savingDepositService.Update(saveDeposit);
                        }
                    }
                    //get balance
                    bill.Balance = loan.CurrentBalance
                         + insuranceDeposit.CurrentBalance
                         + ccsys.Airtime
                         + accReceivable.CurrentBalance;
                    billService.Update(bill);
                    //save to transactionhistory
                    TransactionHistory trans = new TransactionHistory()
                    {
                        Id = Guid.NewGuid(),
                        BillId = bill.Id,
                        IsZeroOut = bill.IsZeroOut,
                        DateReceived = bill.DateReceived,
                        TransactionType = bill.TransactionType,
                        AccountReceivableAmount = bill.AccountReceivableAmount,
                        AssociationDueAmount = bill.AssociationDueAmount,
                        Loan = bill.Loan,
                        Balance = bill.Balance,
                        Cash = bill.Cash,
                        CCSystemAirtimeAmount = bill.CCSystemAirtimeAmount,
                        Check = bill.Check,
                        CollsionInsuranceAmount = bill.CollsionInsuranceAmount,
                        Credit = bill.Credit,
                        CreditCardAmount = bill.CreditCardAmount,
                        CreditCardFee = bill.CreditCardFee,
                        DueDate = bill.EndDate,

                        InsuranceDepositAmount = bill.InsuranceDepositAmount,
                        InsuranceSticker = bill.InsuranceSticker,
                        InsuranceSurchargeAmount = bill.InsuranceSurchargeAmount,
                        Interval = bill.Interval,
                        IsAutoCashiering = bill.IsAutoCashiering,
                        IsDeleted = false,
                        LateFees = bill.LateFees,
                        MedallionId = bill.MedallionId,
                        MedallionNumber = medallion.MedallionNumber,
                        MemberId = bill.MemberId,
                        MiscCharge = bill.MiscCharge,
                        NextPayment = bill.NextPayment,
                        RecieptNumber = bill.RecieptNumber,
                        SavingDepositAmount = bill.SavingDepositAmount,
                        Subtotal = bill.Subtotal,
                        TotalDueAmount = bill.TotalDueAmount,
                        TotalPaidAmount = bill.TotalPaidAmount,

                        UserName = bill.UserName,
                        WerkReceivableAmount = bill.WerkReceivableAmount,
                        WorkerCompensationAmount = bill.WorkerCompensationAmount,
                        TransactionDate = bill.StartDate,
                        TotalPaid = bill.TotalPaid
                    };
                    //save to transaction history
                    transactionHistoryService.Add(trans);
                    return Json(true);
                }
            }
            catch
            {
                return Json(false);
            }
            return Json(false);
        }