public List <BankOperationVModel> GetAllRemittances(DateTime dateTime, string branchCode, string bankAccode) { branchCode = Session["BranchCode"].ToString(); bankAccode = Session["BankAccode"].ToString(); var bank = new List <BankOperationVModel>(); int i = 0; _HORemitService.All().ToList().Where(x => x.BranchCode == branchCode && x.bankAccode == bankAccode && x.RemitDate.ToString("MM-dd-yyyy") == dateTime.ToString("MM-dd-yyyy")).ToList().ForEach(x => bank.Add( new BankOperationVModel(++i, "H/O Remittance", x.Amount, x.RemitNo, "RT", x.VoucherNo))); _BankReceiptAppService.All().ToList().Where(x => x.BranchCode == branchCode && x.bankAccode == bankAccode && x.BReceiptDate.ToString("MM-dd-yyyy") == dateTime.ToString("MM-dd-yyyy")).ToList().ForEach(x => bank.Add( new BankOperationVModel(++i, x.NewChart.AcName, x.Amount, x.BReceiptNo, "BR", x.VoucherNo))); _DepositToBankService.All().ToList().Where(x => x.BranchCode == branchCode && x.bankAccode == bankAccode && x.DepositDate.ToString("MM-dd-yyyy") == dateTime.ToString("MM-dd-yyyy")).ToList().ForEach(x => bank.Add( new BankOperationVModel(++i, "Deposit To Bank", x.Amount, x.DepositNo, "BD", x.VoucherNo))); return(bank); }
public ActionResult SaveDepositToBank(Deposit deposit) { RBACUser rUser = new RBACUser(Session["UserName"].ToString()); if (!rUser.HasPermission("BankDeposit_Insert")) { return(Json("X", JsonRequestBehavior.AllowGet)); } List <CashOperationVModel> CashOPVM = new List <CashOperationVModel>(); try { var IfExit = _DepositToBankService.All().Where(x => x.DepositNo == deposit.DepositNo).FirstOrDefault(); if (IfExit == null) { if (!string.IsNullOrEmpty(deposit.bankAccode) && deposit.bankAccode.Trim() != "Select Bank A/C") { deposit.BranchCode = Session["BranchCode"].ToString(); var GCa = _AcBrService.All().Where(s => s.BranchCode == deposit.BranchCode && s.Ca_Ba == "Ca").Select(x => x.Accode).FirstOrDefault(); if (GCa == null) { var gset = _gsetService.All().LastOrDefault(); GCa = gset.GCa; } deposit.FinYear = Session["FinYear"].ToString(); deposit.NewChart = _NewChartService.All().ToList().FirstOrDefault(x => x.Accode == deposit.bankAccode.Trim()); //cashReceipt.Customer = _CustomerService.All().ToList().FirstOrDefault(x => x.CustCode == cashReceipt.CustCode); CashOperation cashOperation = new CashOperation(deposit.DepositDate, 0.0, 0.0, 0.0, 0.0, "", DateTime.Now, false, deposit.FinYear, false, deposit.BranchCode); var isAlreadyClosed = _CashOperationService.All().ToList().FirstOrDefault(x => x.BranchCode == deposit.BranchCode && x.TrDate.ToString("MM-dd-yyyy") == deposit.DepositDate.ToString("MM-dd-yyyy")); var openBal = GetOpenBal(deposit.DepositDate, deposit.bankAccode); var rcecBal = GetAllRemittances(deposit.DepositDate, deposit.BranchCode, deposit.bankAccode).Sum(x => x.Amount); var payTotal = GetAllPayment(deposit.DepositDate, deposit.BranchCode, deposit.bankAccode).Sum(x => x.Amount); var closBal = openBal + rcecBal - payTotal; BankOperation bankOperation = new BankOperation(deposit.DepositDate, openBal, deposit.Amount, 0.0, closBal, deposit.BranchCode, deposit.FinYear, false, deposit.bankAccode); var sysSet = _sysSetService.All().FirstOrDefault(); var isAlreadySaved = _BankOperationService.All().ToList().FirstOrDefault(x => x.TrDate.ToString("MM-dd-yyyy") == deposit.DepositDate.ToString("MM-dd-yyyy") && x.BranchCode == deposit.BranchCode && x.bankAccode == deposit.bankAccode); if (isAlreadyClosed == null || isAlreadySaved == null) { using (var transaction = new TransactionScope()) { try { _CashOperationService.Add(cashOperation); _CashOperationService.Save(); _BankOperationService.Add(bankOperation); _BankOperationService.Save(); _DepositToBankService.Add(deposit); _DepositToBankService.Save(); TransactionLogService.SaveTransactionLog(_transactionLogService, "Deposit To Bank", "Save", deposit.DepositNo, Session["UserName"].ToString()); LoadDropDown.journalVoucherSave("BD", "I", deposit.DepositNo, deposit.VoucherNo, deposit.FinYear, "01", deposit.BranchCode, deposit.DepositDate, GCa, Session["UserName"].ToString()); CashOPVM = GetAllExpenseAndDeposit(deposit.DepositDate, deposit.BranchCode); transaction.Complete(); } catch (Exception) { transaction.Dispose(); return(Json("0", JsonRequestBehavior.AllowGet)); } return(Json(CashOPVM, JsonRequestBehavior.AllowGet)); } } else if (isAlreadyClosed != null && sysSet.CashRule == "O" ? true : isAlreadyClosed.IsClosed == false) { var rcecBals = GetAllRemittances(deposit.DepositDate, deposit.BranchCode, deposit.bankAccode).Sum(x => x.Amount); isAlreadySaved.RecTotal = rcecBals + deposit.Amount; isAlreadySaved.CloseBal = isAlreadySaved.OpenBal + isAlreadySaved.RecTotal - isAlreadySaved.PayTotal; using (var transaction = new TransactionScope()) { try { _BankOperationService.Update(isAlreadySaved); _BankReceiptAppService.Save(); _DepositToBankService.Add(deposit); _DepositToBankService.Save(); TransactionLogService.SaveTransactionLog(_transactionLogService, "Deposit To Bank", "Save", deposit.DepositNo, Session["UserName"].ToString()); LoadDropDown.journalVoucherSave("BD", "I", deposit.DepositNo, deposit.VoucherNo, deposit.FinYear, "01", deposit.BranchCode, deposit.DepositDate, GCa, Session["UserName"].ToString()); if (sysSet.CashRule == "O") { LoadDropDown.CashRecalculate(Session["ProjCode"].ToString(), deposit.BranchCode, deposit.FinYear, Convert.ToDecimal(deposit.Amount), deposit.DepositDate); } CashOPVM = GetAllExpenseAndDeposit(deposit.DepositDate, deposit.BranchCode); transaction.Complete(); } catch (Exception) { transaction.Dispose(); return(Json("0", JsonRequestBehavior.AllowGet)); } return(Json(CashOPVM, JsonRequestBehavior.AllowGet)); } } else { return(Json("2", JsonRequestBehavior.AllowGet)); } } else { return(Json("1", JsonRequestBehavior.AllowGet)); } } else { return(Json("3", JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { return(Json("0", JsonRequestBehavior.AllowGet)); } }