Beispiel #1
0
        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);
        }
Beispiel #2
0
        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));
        }