public ActionResult UpdateCheRec(ChequeReceipt CheRec) { RBACUser rUser = new RBACUser(Session["UserName"].ToString()); if (!rUser.HasPermission("ChequeReceipt_Update")) { return(Json("U", JsonRequestBehavior.AllowGet)); } using (var transaction = new TransactionScope()) { try { var VchrExist = _vchrMainService.All().FirstOrDefault(s => s.VchrNo == CheRec.VchrNo); var chqArcExist = _chequeArchiveService.All().ToList().Where(x => x.ChqNo == CheRec.oldChqNo).Select(s => s.ChqStatus).ToList(); if (chqArcExist.Contains("Receive") && CheRec.ChqStatus == "Receive" || chqArcExist.Contains("Receive") && CheRec.ChqStatus == "Deposit" || chqArcExist.Contains("Deposit") && CheRec.ChqStatus == "Encash" || chqArcExist.Contains("Encash") && CheRec.ChqStatus != "Dishonour" && CheRec.ChqStatus != "Return") { if (VchrExist == null) { ChequeReceipt cr = new ChequeReceipt(); cr = CheRec; cr.MRTing = 0; cr.MRTingTime = null; cr.ProjCode = Session["ProjCode"].ToString(); cr.FinYear = Session["FinYear"].ToString(); _chequeReceiptService.Update(cr); _chequeReceiptService.Save(); var chqArc = _chequeArchiveService.All().FirstOrDefault(s => s.ChqNo == CheRec.oldChqNo && s.ChqStatus == CheRec.ChqStatus); if (chqArc != null && chqArc.ChqStatus == CheRec.ChqStatus) { chqArc.ChqNo = CheRec.ChqNo; chqArc.UpdateBy = CheRec.UpdateBy; chqArc.UpdateDate = CheRec.UpdateDate; chqArc.Reason = CheRec.Reason; chqArc.Remarks = CheRec.Remarks; _chequeArchiveService.Update(chqArc); _chequeArchiveService.Save(); } else { ChequeArchive ca = new ChequeArchive(); ca.ChqStatus = CheRec.ChqStatus; ca.ChqNo = CheRec.ChqNo; ca.UpdateBy = CheRec.UpdateBy; ca.UpdateDate = CheRec.UpdateDate; ca.Reason = CheRec.Reason; ca.Remarks = CheRec.Remarks; _chequeArchiveService.Add(ca); _chequeArchiveService.Save(); } BankReceipt br = _bankReceiptService.All().Where(s => s.RefNo == CheRec.ChqReceiptNo && s.ChequeNo == CheRec.ChqNo).FirstOrDefault(); if (CheRec.ChqStatus == "Deposit") { br.BReceiptDate = CheRec.ChqReceiptDate; br.purAccode = CheRec.MRAgainst.ToString(); br.RefNo = CheRec.ChqReceiptNo; br.bankAccode = CheRec.DepositBank; br.ChequeNo = CheRec.ChqNo; br.ChequeDate = CheRec.ChqDate; br.Amount = (double)CheRec.Amount; br.Advance = false; br.Remarks = CheRec.Remarks; br.FinYear = Session["FinYear"].ToString(); br.GLPost = CheRec.GLPost; br.BranchCode = CheRec.BranchCode; br.VoucherNo = CheRec.VchrNo; br.SubCode = CheRec.SubCode; br.bankCode = CheRec.BankCode; _bankReceiptService.Update(br); _bankReceiptService.Save(); } var MoneyR = _moneyReceiptService.All().Where(s => s.MRNo == CheRec.ChqReceiptNo).FirstOrDefault(); //insert to provision and money receipt table if (CheRec.ChqStatus == "Encash" && (MoneyR == null ? "000000" : MoneyR.MRNo) != CheRec.ChqReceiptNo) { MoneyReceipt MR = new MoneyReceipt(); MR.MRSL = LoadDropDown.GenerateRecvSlNo(_moneyReceiptService, CheRec.BranchCode, Session["BranchCode"].ToString(), CheRec.ProjCode, Session["VchrConv"].ToString()); MR.BranchCode = (CheRec.BranchCode == null) ? Session["BranchCode"].ToString() : CheRec.BranchCode; MR.ProjCode = (CheRec.ProjCode == null) ? Session["ProjCode"].ToString() : CheRec.ProjCode; MR.MRNo = CheRec.ChqReceiptNo; MR.MRDate = CheRec.ChqReceiptDate; MR.MRAgainst = CheRec.MRAgainst; MR.VchrNo = CheRec.VchrNo; MR.PayMode = "Cq"; MR.Posted = CheRec.PostDated; MR.AdjWithBill = CheRec.AdjWithBill; MR.MRAmount = CheRec.Amount; MR.Accode = CheRec.MRAgainst; MR.CustCode = CheRec.SubCode; MR.FinYear = Session["FinYear"].ToString(); MR.Remarks = CheRec.Remarks; MR.JobNo = CheRec.JobNo; MR.Ca_Bk = CheRec.DepositBank; MR.ChqNo = CheRec.ChqNo; MR.ChqDate = CheRec.ChqDate; MR.EncashDate = CheRec.EncashDate; MR.DepositBank = CheRec.DepositBank; _moneyReceiptService.Add(MR); _moneyReceiptService.Save(); var chqExt = _chqRecExtService.All().ToList().Where(s => s.ChqReceiptID == CheRec.ChqReceiptId); foreach (var chqExtitem in chqExt) { MoneyReceiptExt MRExt = new MoneyReceiptExt(); MRExt.MRId = _moneyReceiptService.All().OrderBy(s => s.MRId).LastOrDefault().MRId; MRExt.SaleNo = chqExtitem.BillNo; MRExt.Amount = chqExtitem.BillAmount; _moneyReceiptExtService.Add(MRExt); _moneyReceiptExtService.Save(); } LoadDropDown.journalVoucherSave("BR", "I", br.BReceiptNo, CheRec.VchrNo, Session["FinYear"].ToString(), Session["ProjCode"].ToString(), CheRec.BranchCode, CheRec.ChqReceiptDate, CheRec.DepositBank, Session["UserName"].ToString()); } ////update to provision //LoadDropDown.journalVoucherRemoval("BR", CheRec.ChqReceiptNo, CheRec.VchrNo, Session["FinYear"].ToString()); //LoadDropDown.journalVoucherSave("BR", "I", CheRec.ChqReceiptNo, CheRec.VchrNo, Session["FinYear"].ToString(), Session["ProjCode"].ToString(), CheRec.BranchCode, CheRec.ChqReceiptDate, CheRec.DepositBank, Session["UserName"].ToString()); TransactionLogService.SaveTransactionLog(_transactionLogService, "ChequeReceipt", "Update", CheRec.ChqReceiptNo, Session["UserName"].ToString()); transaction.Complete(); return(Json("1", JsonRequestBehavior.AllowGet)); } else { return(Json("2", JsonRequestBehavior.AllowGet)); } } else { return(Json("3", JsonRequestBehavior.AllowGet)); } } catch (Exception) { transaction.Dispose(); return(Json("0", JsonRequestBehavior.AllowGet)); } } }
public async Task <IActionResult> Create([Bind("ChequeReceiptID,ChequeStatus,Amount,AmountInWords,BankID,ChequeNumber,CompanyID,CreatedBy,CreationDate,CurrencyID,CurrentStatus,Date,DateOfDeposite,DateOfMature,ExternalRef,InNameOf,Particulars,PartiesID")] ChequeReceipt chequeReceipt) { string CompId = User.Claims.Where(r => r.Type == "CompanyID").FirstOrDefault().Value; int CompID = Convert.ToInt32(CompId); chequeReceipt.CompanyID = CompID; chequeReceipt.CreatedBy = User.Identity.Name; chequeReceipt.CreationDate = DateTime.Now; if (ModelState.IsValid) { _context.Add(chequeReceipt); await _context.SaveChangesAsync(); int CIB = chequeReceipt.ChequeReceiptID; if (chequeReceipt.ChequeStatus == Purchase.Models.ChequeStatus.Cleared) { CashFlow CF2 = new CashFlow(); CF2.Credit = chequeReceipt.Amount; CF2.ChequeReceiptID = CIB; CF2.CompanyID = CompID; CF2.PartiesID = chequeReceipt.PartiesID; // Party Credit int?PartyTransID = _context.Parties.Where(r => r.CompanyID == CompID).Where(r => r.PartiesID == chequeReceipt.PartiesID).FirstOrDefault().TransactionAccountID; int PartMainAcc1 = _context.MainAccount.Where(r => r.CompanyID == CompID).Where(r => r.MainAccountNumber == "00").FirstOrDefault().MainAccountID; int PartSubAcc1 = _context.SubAccount.Where(r => r.CompanyID == CompID).Where(r => r.SubAccountNumber == "0000").FirstOrDefault().SubAccountID; CF2.MainAccountID = PartMainAcc1; CF2.SubAccountID = PartSubAcc1; CF2.TransactionAccountID = (int)PartyTransID; CF2.VoucherType = "Cheque Receipt Voucher"; CF2.DateCreation = chequeReceipt.DateOfMature; _context.CashFlow.Add(CF2); await _context.SaveChangesAsync(); CashFlow CF3 = new CashFlow(); CF3.Debit = chequeReceipt.Amount; CF3.ChequeReceiptID = CIB; CF3.CompanyID = CompID; CF3.PartiesID = chequeReceipt.PartiesID; // Bank Debit int?bankID = chequeReceipt.BankID; int transBankID = _context.Bank.Where(r => r.CompanyID == CompID).Where(r => r.BankID == bankID).FirstOrDefault().TransactionAccountID; int MainAccID_3 = _context.MainAccount.Where(r => r.CompanyID == CompID).Where(r => r.MainAccountNumber == "01").FirstOrDefault().MainAccountID; int SubAccID_3 = _context.SubAccount.Where(r => r.CompanyID == CompID).Where(r => r.MainAccountID == MainAccID_3).Where(r => r.SubAccountNumber == "0002").FirstOrDefault().SubAccountID; CF3.MainAccountID = MainAccID_3; CF3.SubAccountID = SubAccID_3; CF3.TransactionAccountID = transBankID; CF3.VoucherType = "Cheque Receipt Voucher"; CF3.DateCreation = chequeReceipt.DateOfMature; _context.CashFlow.Add(CF3); await _context.SaveChangesAsync(); } if (User.IsInRole("CompanyAdmin")) { return(RedirectToAction("Index")); } else { return(RedirectToAction("Index", "Home", new { area = "CompanyUser" })); } } ViewData["BankID"] = new SelectList(_context.Bank.Where(r => r.CompanyID == CompID), "BankID", "BankName", chequeReceipt.BankID); ViewData["CurrencyID"] = new SelectList(_context.Currency.Where(r => r.CompanyID == CompID), "CurrencyID", "CurrencyName", chequeReceipt.CurrencyID); ViewData["PartiesID"] = new SelectList(_context.Parties.Where(r => r.CompanyID == CompID), "PartiesID", "PartyName", chequeReceipt.PartiesID); return(View(chequeReceipt)); }
public ActionResult SaveCheRec(ChequeReceipt CheRec, List <ChequeReceiptExt> AdjBills) { using (var transaction = new TransactionScope()) { try { RBACUser rUser = new RBACUser(Session["UserName"].ToString()); if (!rUser.HasPermission("ChequeReceipt_Insert")) { return(Json("X", JsonRequestBehavior.AllowGet)); } string BrNo = ""; var items = _chequeReceiptService.All().ToList().FirstOrDefault(x => x.ChqReceiptNo == CheRec.ChqReceiptNo); var chqArc = _chequeArchiveService.All().ToList().Where(x => x.ChqNo == CheRec.ChqNo).Select(s => s.ChqStatus).ToList(); if (chqArc.Count == 0 || chqArc.Contains("Deposit") && CheRec.ChqStatus != "Receive" || chqArc.Contains("Encash") && CheRec.ChqStatus != "Deposit" || chqArc.Contains("Dishonour") && CheRec.ChqStatus != "Encash" || chqArc.Contains("Return") && CheRec.ChqStatus != "Dishonour") { if (items == null) { ChequeReceipt cr = new ChequeReceipt(); cr = CheRec; cr.MRTing = 0; cr.MRTingTime = null; cr.ProjCode = Session["ProjCode"].ToString(); cr.FinYear = Session["FinYear"].ToString(); _chequeReceiptService.Add(cr); _chequeReceiptService.Save(); ChequeArchive CA = new ChequeArchive(); CA.ChqNo = CheRec.ChqNo; CA.ChqStatus = CheRec.ChqStatus; CA.UpdateBy = CheRec.UpdateBy; CA.UpdateDate = CheRec.UpdateDate; CA.Reason = CheRec.Reason; CA.Remarks = CheRec.Remarks; _chequeArchiveService.Add(CA); _chequeArchiveService.Save(); BankReceipt br = new BankReceipt(); br.BReceiptNo = GenerateBankReceiptNo(CheRec.BranchCode); BrNo = br.BReceiptNo; br.BReceiptDate = CheRec.ChqReceiptDate; br.purAccode = CheRec.MRAgainst.ToString(); br.RefNo = CheRec.ChqReceiptNo; br.bankAccode = CheRec.DepositBank; br.ChequeNo = CheRec.ChqNo; br.ChequeDate = CheRec.ChqDate; br.Amount = (double)CheRec.Amount; br.Advance = false; br.Remarks = CheRec.Remarks; br.FinYear = Session["FinYear"].ToString(); br.GLPost = CheRec.GLPost; br.BranchCode = CheRec.BranchCode; br.VoucherNo = CheRec.VchrNo; br.SubCode = CheRec.SubCode; br.bankCode = CheRec.BankCode; _bankReceiptService.Add(br); _bankReceiptService.Save(); if (AdjBills != null) { decimal TotAmt = CheRec.Amount; foreach (var bill in AdjBills) { ChequeReceiptExt chqExt = new ChequeReceiptExt(); var saleMain = _salesMainService.All().Where(s => s.SaleNo == bill.BillNo).FirstOrDefault(); chqExt.ChqReceiptID = _chequeReceiptService.All().LastOrDefault().ChqReceiptId; chqExt.BillNo = bill.BillNo; chqExt.BillDate = saleMain.SaleDate; if (TotAmt >= bill.BillAmount) { chqExt.BillAmount = bill.BillAmount; TotAmt = TotAmt - bill.BillAmount; saleMain.ReceiptNo = CheRec.ChqReceiptNo; saleMain.ReceiptAmt = bill.BillAmount; saleMain.IsPaid = true; _salesMainService.Update(saleMain); _salesMainService.Save(); _chqRecExtService.Add(chqExt); _chqRecExtService.Save(); } else { if (bill.IsPaid_mre) { saleMain.IsPaid = true; chqExt.AdjAmount = TotAmt; } else { saleMain.IsPaid = false; chqExt.AdjAmount = TotAmt; } chqExt.BillAmount = TotAmt; _chqRecExtService.Add(chqExt); _chqRecExtService.Save(); string sql = string.Format("select sm.ReceiptAmt, sm.SaleNo as BillNo, sm.SaleDate as BillDate, (sm.NetAmount - isnull(sum(cre.BillAmount),0)) as Billamount from SalesMain sm left join ChequeReceiptExt cre on cre.BillNo = sm.SaleNo where sm.CustCode = " + CheRec.SubCode + " and sm.IsPaid = 'false' group by sm.ReceiptAmt, cre.BillNo, sm.NetAmount, sm.SaleNo, sm.SaleDate, cre.BillAmount order by sm.SaleNo"); IEnumerable <billShow> BillLst; using (AcclineERPContext dbContext = new AcclineERPContext()) { BillLst = dbContext.Database.SqlQuery <billShow>(sql).ToList(); } foreach (var Salebill in BillLst) { if (Salebill.BillAmount == 0) { saleMain.ReceiptNo = CheRec.ChqReceiptNo; saleMain.ReceiptAmt = ((Salebill.ReceiptAmt == null) ? 0 : Salebill.ReceiptAmt) + TotAmt; saleMain.IsPaid = true; _salesMainService.Update(saleMain); _salesMainService.Save(); } } } } } TransactionLogService.SaveTransactionLog(_transactionLogService, "ChequeReceipt", "Save", CheRec.ChqReceiptNo, Session["UserName"].ToString()); transaction.Complete(); return(Json("1", JsonRequestBehavior.AllowGet)); } else { return(Json("2", JsonRequestBehavior.AllowGet)); } } else { return(Json("3", JsonRequestBehavior.AllowGet)); } } catch (Exception) { transaction.Dispose(); return(Json("0", JsonRequestBehavior.AllowGet)); } } }