Example #1
0
        public async Task <IActionResult> Edit(int id, [Bind("DuesListId,Amount,IsRecovered,RecoveryDate,DailySaleId,IsPartialRecovery,StoreId,UserId")] DuesList duesList)
        {
            if (id != duesList.DuesListId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(duesList);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!DuesListExists(duesList.DuesListId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DailySaleId"] = new SelectList(_context.DailySales, "DailySaleId", "InvNo", duesList.DailySaleId);
            //ViewData["StoreId"] = new SelectList(_context.Stores, "StoreId", "StoreName", duesList.StoreId);
            return(PartialView(duesList));
        }
Example #2
0
        public async Task <IActionResult> PutDuesList(int id, DuesList duesList)
        {
            if (id != duesList.DuesListId)
            {
                return(BadRequest());
            }

            _context.Entry(duesList).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DuesListExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #3
0
        public async Task <ActionResult <DuesList> > PostDuesList(DuesList duesList)
        {
            _context.DuesLists.Add(duesList);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetDuesList", new { id = duesList.DuesListId }, duesList));
        }
Example #4
0
        private void UpdateDueAmount(AprajitaRetailsContext db, DailySale dailySale, bool IsEdit)
        {
            if (IsEdit)
            {
                var dId = db.DuesLists.Where(c => c.DailySaleId == dailySale.DailySaleId).FirstOrDefault();
                if (dId != null)
                {
                    db.DuesLists.Remove(dId);
                }
                else
                {
                    //TODO: Handle this
                }
            }
            else
            {
                decimal dueAmt;
                if (dailySale.Amount != dailySale.CashAmount)
                {
                    dueAmt = dailySale.Amount - dailySale.CashAmount;
                }
                else
                {
                    dueAmt = dailySale.Amount;
                }

                DuesList dl = new DuesList()
                {
                    Amount = dueAmt, DailySale = dailySale, DailySaleId = dailySale.DailySaleId
                };
                db.DuesLists.Add(dl);
            }
        }
        /// <summary>
        /// ProcessAccounts Handle Cash/Bank flow and update related tables
        /// </summary>
        /// <param name="dailySale"></param>
        private void ProcessAccounts(DailySale dailySale)
        {
            if (!dailySale.IsSaleReturn)
            {
                if (!dailySale.IsDue)
                {
                    if (dailySale.PayMode == PayModes.Cash && dailySale.CashAmount > 0)
                    {
                        Utils.UpDateCashInHand(db, dailySale.SaleDate, dailySale.CashAmount);
                    }
                    //TODO: in future make it more robust
                    if (dailySale.PayMode != PayModes.Cash && dailySale.PayMode != PayModes.Coupons && dailySale.PayMode != PayModes.Points)
                    {
                        Utils.UpDateCashInBank(db, dailySale.SaleDate, dailySale.Amount - dailySale.CashAmount);
                    }
                }
                else
                {
                    decimal dueAmt;
                    if (dailySale.Amount != dailySale.CashAmount)
                    {
                        dueAmt = dailySale.Amount - dailySale.CashAmount;
                    }
                    else
                    {
                        dueAmt = dailySale.Amount;
                    }

                    DuesList dl = new DuesList()
                    {
                        Amount = dueAmt, DailySale = dailySale, DailySaleId = dailySale.DailySaleId
                    };
                    db.DuesLists.Add(dl);

                    if (dailySale.PayMode == PayModes.Cash && dailySale.CashAmount > 0)
                    {
                        Utils.UpDateCashInHand(db, dailySale.SaleDate, dailySale.CashAmount);
                    }
                    //TODO: in future make it more robust
                    if (dailySale.PayMode != PayModes.Cash && dailySale.PayMode != PayModes.Coupons && dailySale.PayMode != PayModes.Points)
                    {
                        Utils.UpDateCashInBank(db, dailySale.SaleDate, dailySale.CashAmount);  //TODO: Here adding card amount in cash amoutn
                    }
                }
            }
            else
            {
                if (dailySale.PayMode == PayModes.Cash && dailySale.CashAmount > 0)
                {
                    Utils.UpDateCashOutHand(db, dailySale.SaleDate, dailySale.CashAmount);
                }
                //TODO: in future make it more robust
                if (dailySale.PayMode != PayModes.Cash && dailySale.PayMode != PayModes.Coupons && dailySale.PayMode != PayModes.Points)
                {
                    Utils.UpDateCashOutBank(db, dailySale.SaleDate, dailySale.Amount - dailySale.CashAmount);
                }
                dailySale.Amount = 0 - dailySale.Amount;
            }
        }
Example #6
0
        private void UpdateDueAmount(eStoreDbContext db, DailySale dailySale, bool IsEdit)
        {
            if (IsEdit)
            {
                var dId = db.DuesLists.Where(c => c.DailySaleId == dailySale.DailySaleId).FirstOrDefault();
                if (dId != null)
                {
                    db.DuesLists.Remove(dId);
                    decimal dueAmt;
                    if (dailySale.Amount != dailySale.CashAmount)
                    {
                        dueAmt = dailySale.Amount - dailySale.CashAmount;
                    }
                    else
                    {
                        dueAmt = dailySale.Amount;
                    }

                    DuesList dl = new DuesList()
                    {
                        Amount      = dueAmt,
                        DailySale   = dailySale,
                        DailySaleId = dailySale.DailySaleId,
                        StoreId     = dailySale.StoreId
                        ,
                        IsPartialRecovery = false,
                        IsRecovered       = false,
                        UserId            = dailySale.UserId
                    };
                    db.DuesLists.Add(dl);
                }
                else
                {
                    //TODO: Handle this
                }
            }
            else
            {
                decimal dueAmt;
                if (dailySale.Amount != dailySale.CashAmount)
                {
                    dueAmt = dailySale.Amount - dailySale.CashAmount;
                }
                else
                {
                    dueAmt = dailySale.Amount;
                }

                DuesList dl = new DuesList()
                {
                    Amount = dueAmt, DailySale = dailySale, DailySaleId = dailySale.DailySaleId, StoreId = dailySale.StoreId
                    , IsPartialRecovery = false, IsRecovered = false, UserId = dailySale.UserId
                };
                db.DuesLists.Add(dl);
            }
        }
Example #7
0
        public async Task <IActionResult> Create([Bind("DuesListId,Amount,IsRecovered,RecoveryDate,DailySaleId,IsPartialRecovery")] DuesList duesList)
        {
            if (ModelState.IsValid)
            {
                _context.Add(duesList);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DailySaleId"] = new SelectList(_context.DailySales, "DailySaleId", "InvNo", duesList.DailySaleId);
            return(PartialView(duesList));
        }
Example #8
0
        public void OnUpdate(AprajitaRetailsContext db, DueRecoverd objects)
        {
            DueRecoverd dr       = db.DueRecoverds.Find(objects.DueRecoverdId);
            DuesList    duesList = db.DuesLists.Find(objects.DuesListId);


            if (dr.AmountPaid != objects.AmountPaid)
            {
                //Remove Amount from In-Hands
                if (dr.Modes == PaymentModes.Cash)
                {
                    CashTrigger.UpdateCashInHand(db, objects.PaidDate, 0 - dr.AmountPaid);
                }
                else
                {
                    CashTrigger.UpdateCashInBank(db, objects.PaidDate, 0 - dr.AmountPaid);
                }
                //Add Amount
                if (objects.Modes == PaymentModes.Cash)
                {
                    CashTrigger.UpdateCashInHand(db, objects.PaidDate, objects.AmountPaid);
                }
                else
                {
                    CashTrigger.UpdateCashInBank(db, objects.PaidDate, objects.AmountPaid);
                }
            }

            if (dr.IsPartialPayment != objects.IsPartialPayment)
            {
                if (objects.IsPartialPayment && dr.IsPartialPayment == false)
                {
                    duesList.IsPartialRecovery = true;
                    duesList.IsRecovered       = false;
                    duesList.RecoveryDate      = null;
                }
                else if (dr.IsPartialPayment && objects.IsPartialPayment == false)
                {
                    duesList.IsPartialRecovery = false;
                    duesList.IsRecovered       = true;
                    duesList.RecoveryDate      = objects.PaidDate;
                }
            }

            db.Entry(dr).State       = EntityState.Modified;
            db.Entry(duesList).State = EntityState.Modified;
        }
        private void ProcessAccountEdit(DueRecoverd objects)
        {
            DueRecoverd dr       = db.Recoverds.Find(objects.DueRecoverdId);
            DuesList    duesList = db.DuesLists.Find(objects.DuesListId);


            if (dr.AmountPaid != objects.AmountPaid)
            {
                //Remove Amount from In-Hands
                if (dr.Modes == PaymentModes.Cash)
                {
                    Utils.UpDateCashInHand(db, objects.PaidDate, 0 - dr.AmountPaid);
                }
                else
                {
                    Utils.UpDateCashInBank(db, objects.PaidDate, 0 - dr.AmountPaid);
                }
                //Add Amount
                if (objects.Modes == PaymentModes.Cash)
                {
                    Utils.UpDateCashInHand(db, objects.PaidDate, objects.AmountPaid);
                }
                else
                {
                    Utils.UpDateCashInBank(db, objects.PaidDate, objects.AmountPaid);
                }
            }

            if (dr.IsPartialPayment != objects.IsPartialPayment)
            {
                if (objects.IsPartialPayment && dr.IsPartialPayment == false)
                {
                    duesList.IsPartialRecovery = true;
                    duesList.IsRecovered       = false;
                    duesList.RecoveryDate      = null;
                }
                else if (dr.IsPartialPayment && objects.IsPartialPayment == false)
                {
                    duesList.IsPartialRecovery = false;
                    duesList.IsRecovered       = true;
                    duesList.RecoveryDate      = objects.PaidDate;
                }
            }

            db.Entry(dr).State = EntityState.Detached;
        }
Example #10
0
        private async System.Threading.Tasks.Task <SortedList <int, int> > AddDueListsAsync(SortedDictionary <int, string> SaleList)
        {
            //DuesListId	Amount	IsRecovered	RecoveryDate	DailySaleId	IsPartialRecovery	StoreId

            var ws = xS.GetWS("DueLists");
            var nonEmptyDataRows = ws.RowsUsed();
            int Row = 6;//Title;

            SortedList <int, int> IDList = new SortedList <int, int>();

            foreach (var dR in nonEmptyDataRows)
            {
                if (dR.RowNumber() > Row)
                {
                    DuesList dL = new DuesList
                    {
                        IsRecovered       = dR.Cell(3).GetBoolean(),
                        Amount            = dR.Cell(2).GetValue <decimal>(),
                        DailySaleId       = dR.Cell(5).GetValue <int>(),
                        IsPartialRecovery = dR.Cell(6).GetBoolean(),
                        StoreId           = dR.Cell(7).GetValue <int>(),
                        UserId            = "Admin"
                    };
                    try
                    {
                        dL.RecoveryDate = (DateTime?)dR.Cell(4).GetDateTime() ?? null;
                    }
                    catch (Exception ex)
                    {
                    }
                    dL.DailySaleId = GetSaleId(SaleList.GetValueOrDefault(dL.DailySaleId));
                    db.DuesLists.Add(dL);
                    await db.SaveChangesAsync();

                    IDList.Add(dR.Cell(1).GetValue <int>(), dL.DuesListId);
                }
            }
            return(IDList);
        }
        private void ProcessAccountDelete(DueRecoverd objects)
        {
            DuesList duesList = db.DuesLists.Find(objects.DuesListId);

            if (objects.Modes == PaymentModes.Cash)
            {
                Utils.UpDateCashInHand(db, objects.PaidDate, 0 - objects.AmountPaid);
            }
            else
            {
                Utils.UpDateCashInBank(db, objects.PaidDate, 0 - objects.AmountPaid);
            }

            if (objects.IsPartialPayment)
            {
                duesList.IsPartialRecovery = false;
            }
            else
            {
                duesList.IsRecovered  = false;
                duesList.RecoveryDate = null;
            }
        }
Example #12
0
        public void OnInsert(AprajitaRetailsContext db, DueRecoverd objects)
        {
            DuesList duesList = db.DuesLists.Find(objects.DuesListId);

            if (objects.Modes == PaymentModes.Cash)
            {
                CashTrigger.UpdateCashInHand(db, objects.PaidDate, objects.AmountPaid);
            }
            else
            {
                CashTrigger.UpdateCashInBank(db, objects.PaidDate, objects.AmountPaid);
            }

            if (objects.IsPartialPayment)
            {
                duesList.IsPartialRecovery = true;
            }
            else
            {
                duesList.IsRecovered  = true;
                duesList.RecoveryDate = objects.PaidDate;
            }
            db.Entry(duesList).State = EntityState.Modified;
        }