public async Task <IActionResult> Create(VoucherVM voucher) { string CompId = User.Claims.Where(r => r.Type == "CompanyID").FirstOrDefault().Value; int CompID = Convert.ToInt32(CompId); //if (ModelState.IsValid) //{ Voucher voucherMain = new Voucher(); voucherMain.CompanyID = CompID; voucherMain.CreatedBy = User.Identity.Name; voucherMain.CreationDate = DateTime.Now; voucherMain.CurrencyID = voucher.CurrencyID; voucherMain.Date = voucher.Date; voucherMain.ExternalRef = voucher.ExternalRef; voucherMain.Particulars = voucher.Particulars; voucherMain.ImportExportID = voucher.ImportExportID; _context.Voucher.Add(voucherMain); await _context.SaveChangesAsync(); int voucherMainID = voucherMain.VoucherID; var voucherItemList = voucher.VIList; voucherItemList.RemoveAll(x => x.TransactionAccountID == 000000); voucherItemList.ForEach(x => x.CompanyID = CompID); foreach (var item in voucherItemList) { VoucherItems voucherItemsMODEL = new VoucherItems(); CashFlow CF = new CashFlow(); voucherItemsMODEL.CompanyID = CompID; CF.CompanyID = CompID; voucherItemsMODEL.Credit = item.Credit; if (item.Credit == 0) { CF.Debit = item.Debit; } else { CF.Credit = item.Credit; } voucherItemsMODEL.Debit = item.Debit; voucherItemsMODEL.Narration = item.Narration; voucherItemsMODEL.TransactionAccountID = item.TransactionAccountID; CF.TransactionAccountID = item.TransactionAccountID; int subAccId = _context.TransactionAccount.Where(r => r.CompanyID == CompID).Where(r => r.TransactionAccountID == item.TransactionAccountID).FirstOrDefault().SubAccountID; voucherItemsMODEL.SubAccountID = subAccId; CF.SubAccountID = subAccId; int mainAccId = _context.SubAccount.Where(r => r.CompanyID == CompID).Where(r => r.SubAccountID == subAccId).FirstOrDefault().MainAccountID; voucherItemsMODEL.MainAccountID = mainAccId; CF.MainAccountID = mainAccId; voucherItemsMODEL.VoucherID = voucherMainID; _context.VoucherItems.Add(voucherItemsMODEL); await _context.SaveChangesAsync(); int VIid = voucherItemsMODEL.VoucherItemsID; CF.VoucherItemsID = VIid; CF.DateCreation = DateTime.Now.Date; CF.VoucherType = "Voucher"; _context.CashFlow.Add(CF); await _context.SaveChangesAsync(); } if (User.IsInRole("CompanyAdmin")) { return(RedirectToAction("Index")); } else { return(RedirectToAction("Index", "Home", new { area = "CompanyUser" })); } //} //ViewData["Ids"] = _context.TransactionAccount.Where(r => r.CompanyID == CompID).Select(m => m.TransactionAccountID).ToList(); //ViewData["Name"] = _context.TransactionAccount.Where(r => r.CompanyID == CompID).Select(m => m.AccountName).ToList(); //ViewData["TransactionAccountID"] = new SelectList(_context.TransactionAccount.Where(r => r.CompanyID == CompID), "TransactionAccountID", "AccountName"); //ViewData["CurrencyID"] = new SelectList(_context.Currency.Where(r => r.CompanyID == CompID), "CurrencyID", "CurrencyName"); //return View(voucher); }
public async Task <IActionResult> Edit(VoucherVM voucher) { string CompId = User.Claims.Where(r => r.Type == "CompanyID").FirstOrDefault().Value; int CompID = Convert.ToInt32(CompId); int voucherMainID = voucher.VoucherID; Voucher voucherMain = new Voucher(); voucherMain.VoucherID = voucherMainID; voucherMain.Date = voucher.Date; voucherMain.Particulars = voucher.Particulars; voucherMain.CurrencyID = voucher.CurrencyID; voucherMain.ExternalRef = voucher.ExternalRef; voucherMain.CompanyID = CompID; voucherMain.CreationDate = DateTime.Now; voucherMain.CreatedBy = User.Identity.Name; voucherMain.ImportExportID = voucher.ImportExportID; var voucherItemList = voucher.VIList; voucherItemList.RemoveAll(x => x.TransactionAccountID == 000000); voucherItemList.ForEach(x => x.CompanyID = CompID); List <VoucherItems> listVItems = new List <VoucherItems>(); listVItems = _context.VoucherItems.Where(r => r.CompanyID == CompID).Where(r => r.VoucherID == voucherMainID).ToList(); if (ModelState.IsValid) { try { _context.Update(voucherMain); _context.SaveChanges(); //RemoveRange(_context.VoucherItems.Where(x => x.VoucherID == voucherMainID)) //var vocITEM = _context.VoucherItems.Where(x => x.CompanyID == CompID).Where(x => x.VoucherID == voucherMainID); //_context.SaveChanges(); //for(int i =0; i<aa.Count();i++) //{ //var vocITEM = _context.VoucherItems.FirstOrDefault(m => m.VoucherID == voucherMainID); // _context.VoucherItems.Remove(vocITEM); //await _context.SaveChangesAsync(); //} // Cash Flow VOUCHER EDIT foreach (var item in listVItems) { if (_context.CashFlow.Where(m => m.VoucherItemsID == item.VoucherItemsID).Any() == true) { var cashflow = await _context.CashFlow.SingleOrDefaultAsync(m => m.VoucherItemsID == item.VoucherItemsID); _context.CashFlow.Remove(cashflow); _context.SaveChanges(); } } //foreach (var item in listVItems) //{ // var vItems = await _context.VoucherItems.SingleOrDefaultAsync(m => m.VoucherItemsID == voucherMainID); // _context.VoucherItems.Remove(vItems); // _context.SaveChanges(); //} _context.VoucherItems.RemoveRange(_context.VoucherItems.Where(x => x.VoucherID == voucherMainID)); _context.SaveChanges(); foreach (var item in voucherItemList) { VoucherItems voucherItemsMODEL = new VoucherItems(); CashFlow CF = new CashFlow(); voucherItemsMODEL.CompanyID = CompID; CF.CompanyID = CompID; voucherItemsMODEL.Credit = item.Credit; if (item.Credit == 0) { CF.Debit = item.Debit; } else { CF.Credit = item.Credit; } voucherItemsMODEL.Debit = item.Debit; voucherItemsMODEL.Narration = item.Narration; voucherItemsMODEL.TransactionAccountID = item.TransactionAccountID; CF.TransactionAccountID = item.TransactionAccountID; int subAccId = _context.TransactionAccount.Where(r => r.CompanyID == CompID).Where(r => r.TransactionAccountID == item.TransactionAccountID).FirstOrDefault().SubAccountID; voucherItemsMODEL.SubAccountID = subAccId; CF.SubAccountID = subAccId; int mainAccId = _context.SubAccount.Where(r => r.CompanyID == CompID).Where(r => r.SubAccountID == subAccId).FirstOrDefault().MainAccountID; voucherItemsMODEL.MainAccountID = mainAccId; CF.MainAccountID = mainAccId; voucherItemsMODEL.VoucherID = voucherMainID; _context.VoucherItems.Add(voucherItemsMODEL); await _context.SaveChangesAsync(); int VIid = voucherItemsMODEL.VoucherItemsID; CF.VoucherItemsID = VIid; CF.DateCreation = DateTime.Now.Date; CF.VoucherType = "Voucher"; _context.CashFlow.Add(CF); await _context.SaveChangesAsync(); } } catch (DbUpdateConcurrencyException) { if (!VoucherExists(voucher.VoucherID)) { return(NotFound()); } else { throw; } } if (User.IsInRole("CompanyAdmin")) { return(RedirectToAction("Index")); } else { return(RedirectToAction("Index", "Home", new { area = "CompanyUser" })); } } ViewData["CurrencyID"] = new SelectList(_context.Currency.Where(r => r.CompanyID == CompID), "CurrencyID", "CurrencyName", voucher.CurrencyID); return(View(voucher)); }