public ActionResult CreateUpdateTransectionAccount(TransectionAccountModel transectionAccountModel) { if (!ModelState.IsValid) { return(ShowErrorMessage(GetModelErrors(ModelState))); } var isPayByUserExist = FarmManagementEntities.PersonalAccounts.Any(x => x.UserId == transectionAccountModel.PayByUserId); if (!isPayByUserExist) { return(ShowErrorMessage("Selected Pay By employee doesn't have personal account.")); } var transectionAccount = new TransectionAccount(); transectionAccount.Id = transectionAccountModel.Id; transectionAccount.UserId = transectionAccountModel.UserId; transectionAccount.PayByUserId = transectionAccountModel.PayByUserId; transectionAccount.Balance = transectionAccountModel.Balance; transectionAccount.Date = transectionAccountModel.Date; var userAccount = FarmManagementEntities.TransectionPersonalAccounts.Where(x => x.UserId == transectionAccountModel.UserId) .OrderByDescending(x => x.InsertDate).First(); var userPersonalAccount = new TransectionPersonalAccount(); userPersonalAccount.Debit = transectionAccountModel.Balance; userPersonalAccount.Balance = userAccount.Balance - transectionAccountModel.Balance; userPersonalAccount.Date = transectionAccountModel.Date; userPersonalAccount.InsertDate = DateTime.Now; userPersonalAccount.IsAddedByAdmin = false; userPersonalAccount.UserId = transectionAccountModel.UserId; FarmManagementEntities.TransectionPersonalAccounts.Add(userPersonalAccount); var payByUserAccount = FarmManagementEntities.TransectionPersonalAccounts.Where(x => x.UserId == transectionAccountModel.PayByUserId) .OrderByDescending(x => x.InsertDate).FirstOrDefault(); var payByUserPersonalAccount = new TransectionPersonalAccount(); payByUserPersonalAccount.Credit = transectionAccountModel.Balance; payByUserPersonalAccount.Balance = (payByUserAccount == null ? 0 : payByUserAccount.Balance) + transectionAccountModel.Balance; payByUserPersonalAccount.Date = transectionAccountModel.Date; payByUserPersonalAccount.InsertDate = DateTime.Now; payByUserPersonalAccount.UserId = transectionAccountModel.PayByUserId; payByUserPersonalAccount.IsAddedByAdmin = false; FarmManagementEntities.TransectionPersonalAccounts.Add(payByUserPersonalAccount); if (transectionAccountModel.Id == 0) { transectionAccount.InsertDate = DateTime.Now; FarmManagementEntities.TransectionAccounts.Add(transectionAccount); } FarmManagementEntities.SaveChanges(); var message = string.Format(Constant.SuccessMessage, transectionAccountModel.Id > 0 ? "updated" : "added"); return(ShowSuccessMessage(message)); }
private void ManageEmployeeBalance(decimal amount) { var lastTransAccount = FarmManagementEntities.TransectionPersonalAccounts.Where(x => x.UserId == LoggedInUser.UserId) .OrderByDescending(x => x.InsertDate).FirstOrDefault(); var transectionAccount = new TransectionPersonalAccount { UserId = LoggedInUser.UserId, Balance = (lastTransAccount == null ? 0 : lastTransAccount.Balance) - amount, Debit = amount, Date = DateTime.Now, InsertDate = DateTime.Now }; FarmManagementEntities.TransectionPersonalAccounts.Add(transectionAccount); }
public ActionResult CreateUpdateBankLoan(LoanReceivableFromBankModel bankLoanModel) { if (!ModelState.IsValid) { return(ShowErrorMessage(GetModelErrors(ModelState))); } var bankLoan = new LoanReceivableFromBank(); bankLoan.LoanId = bankLoanModel.LoanId; bankLoan.Amount = bankLoanModel.Amount; bankLoan.NoOfInstallment = bankLoanModel.NoOfInstallment; bankLoan.InterestRate = bankLoanModel.InterestRate; bankLoan.TotalAmountTobePaid = bankLoanModel.TotalAmountTobePaid; bankLoan.AccountId = bankLoanModel.AccountId; bankLoan.UserId = bankLoanModel.UserId; bankLoan.LoanReceiveDate = bankLoanModel.LoanReceiveDate; bankLoan.LoanEndDate = bankLoanModel.LoanEndDate; bankLoan.Description = bankLoanModel.Description; var userAccount = FarmManagementEntities.TransectionPersonalAccounts.Where(x => x.UserId == bankLoanModel.UserId) .OrderByDescending(x => x.InsertDate).ToList().First(); var userPersonalAccount = new TransectionPersonalAccount(); userPersonalAccount.Credit = bankLoanModel.Amount; userPersonalAccount.Balance = userAccount.Balance + bankLoanModel.Amount; userPersonalAccount.Date = bankLoanModel.LoanReceiveDate; userPersonalAccount.InsertDate = DateTime.Now; userPersonalAccount.IsAddedByAdmin = false; userPersonalAccount.UserId = bankLoanModel.UserId; FarmManagementEntities.TransectionPersonalAccounts.Add(userPersonalAccount); if (bankLoanModel.Id == 0) { bankLoan.InsertDate = DateTime.Now; FarmManagementEntities.LoanReceivableFromBanks.Add(bankLoan); } FarmManagementEntities.SaveChanges(); var message = string.Format(Constant.SuccessMessage, bankLoanModel.Id > 0 ? "updated" : "added"); return(ShowSuccessMessage(message)); }
public ActionResult CreateUpdateTransectionPersonalAccount(TransectionPersonalAccountModel transectionAccountModel) { if (!ModelState.IsValid) { return(ShowErrorMessage(GetModelErrors(ModelState))); } var lastTransAccount = FarmManagementEntities.TransectionPersonalAccounts.Where(x => x.UserId == transectionAccountModel.EmployeeId) .OrderByDescending(x => x.InsertDate).ToList().FirstOrDefault(); var lastTransAccountBalance = (lastTransAccount == null ? 0 : lastTransAccount.Balance); var transectionAccount = new TransectionPersonalAccount(); transectionAccount.UserId = transectionAccountModel.EmployeeId; transectionAccount.Date = transectionAccountModel.Date; transectionAccount.IsAddedByAdmin = true; var isCredit = (TransectionType)transectionAccountModel.AccountTransectionType == TransectionType.Credit; if (isCredit) { transectionAccount.Credit = transectionAccountModel.Amount; transectionAccount.Balance = lastTransAccountBalance + transectionAccountModel.Amount; } else { transectionAccount.Debit = transectionAccountModel.Amount; transectionAccount.Balance = lastTransAccountBalance - transectionAccountModel.Amount; } if (transectionAccountModel.Id == 0) { transectionAccount.InsertDate = DateTime.Now; FarmManagementEntities.TransectionPersonalAccounts.Add(transectionAccount); } FarmManagementEntities.SaveChanges(); var message = string.Format(Constant.SuccessMessage, transectionAccountModel.Id > 0 ? "updated" : "added"); return(ShowSuccessMessage(message)); }
public ActionResult CreateUpdateEmployeeLoan(LoanReceivableFromEmployeeModel employeeLoanModel) { if (!ModelState.IsValid) { return(ShowErrorMessage(GetModelErrors(ModelState))); } var employeeLoan = new LoanReceivableFromEmployee(); employeeLoan.LoanId = employeeLoanModel.LoanId; employeeLoan.AmountReceive = employeeLoanModel.AmountReceive; employeeLoan.AccountId = employeeLoanModel.AccountId; employeeLoan.UserId = employeeLoanModel.UserId; employeeLoan.Date = employeeLoanModel.Date; var userAccount = FarmManagementEntities.TransectionPersonalAccounts.Where(x => x.UserId == employeeLoanModel.UserId) .OrderByDescending(x => x.InsertDate).ToList().First(); var userPersonalAccount = new TransectionPersonalAccount(); userPersonalAccount.Credit = employeeLoanModel.AmountReceive; userPersonalAccount.Balance = userAccount.Balance + employeeLoanModel.AmountReceive; userPersonalAccount.Date = employeeLoanModel.Date; userPersonalAccount.InsertDate = DateTime.Now; userPersonalAccount.IsAddedByAdmin = false; userPersonalAccount.UserId = employeeLoanModel.UserId; FarmManagementEntities.TransectionPersonalAccounts.Add(userPersonalAccount); if (employeeLoanModel.Id == 0) { employeeLoan.InsertDate = DateTime.Now; FarmManagementEntities.LoanReceivableFromEmployees.Add(employeeLoan); } FarmManagementEntities.SaveChanges(); var message = string.Format(Constant.SuccessMessage, employeeLoanModel.Id > 0 ? "updated" : "added"); return(ShowSuccessMessage(message)); }