Example #1
0
        public ActionResult Add()
        {
            var UserId = User.Identity.GetUserId();

            ViewBag.Transfer = new SelectList(EmployeeOutletDAL.GetDataByID(int.Parse(UserId)), "OutletID", "OutletName");
            AdjustmentViewModel model = new AdjustmentViewModel();

            return(PartialView("Add", model));
        }
Example #2
0
        public async Task <IActionResult> Create([Bind("LineItemId,AdjustmentAmount")] AdjustmentViewModel adjustmentViewModel)
        {
            LineItem lineItem = await _context.LineItems
                                .Include(l => l.Campaign)
                                .SingleOrDefaultAsync(m => m.Id == adjustmentViewModel.LineItemId);

            if (lineItem == null)
            {
                return(NotFound());
            }

            // If LineItem or its Campaign have been marked as Reviewed
            if (lineItem.Reviewed || lineItem.Campaign.Reviewed)
            {
                return(BadRequest());
            }

            // Adjustment amount must be > 0 and < the LineItem's BookedAmount
            if (adjustmentViewModel.AdjustmentAmount < 0 || adjustmentViewModel.AdjustmentAmount > lineItem.BookedAmount)
            {
                return(BadRequest());
            }

            if (ModelState.IsValid)
            {
                // Create Adjustment
                Adjustment adjustment = new Adjustment();
                adjustment.User = await _userManager.GetUserAsync(HttpContext.User);

                adjustment.AdjustmentAmount = adjustmentViewModel.AdjustmentAmount;
                adjustment.DateTime         = DateTime.UtcNow;
                adjustment.LineItem         = lineItem;
                _context.Add(adjustment);

                // Update LineItem
                lineItem.AdjustedAmount = adjustment.AdjustmentAmount;
                lineItem.ActualAmount   = lineItem.BookedAmount - adjustment.AdjustmentAmount;
                if (lineItem.Adjustments == null)
                {
                    lineItem.Adjustments = new List <Adjustment>();
                }
                lineItem.Adjustments.Add(adjustment);

                await _context.SaveChangesAsync();
            }

            return(RedirectToAction("Details", "LineItems", new { id = adjustmentViewModel.LineItemId }));
        }
Example #3
0
        public ActionResult Add(AdjustmentViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (POSContext context = new POSContext())
                {
                    using (var dbTransaction = context.Database.BeginTransaction())
                    {
                        int UserId   = User.Identity.GetUserId <int>();
                        int OutletId = 1;
                        //OutletId = (int)EmployeeOutletDAL.GetDataOutletByUserId(UserId).OutletID;
                        AdjusmentStock item = new AdjusmentStock()
                        {
                            ID         = model.ID,
                            OutletID   = OutletId,
                            Note       = model.Note,
                            CreatedBy  = UserId,
                            CreatedOn  = DateTime.Now,
                            ModifiedBy = UserId,
                            ModifiedOn = DateTime.Now,
                        };
                        context.TAdjusmentStock.Add(item);
                        context.SaveChanges();

                        int i = 0;
                        foreach (var detail in model.VariantID)
                        {
                            AdjusmentStockDetail item2 = new AdjusmentStockDetail()
                            {
                                HeaderID    = item.ID,
                                VariantID   = detail,
                                ActualStock = model.ActualStock[i],
                                InStock     = model.InStock[i],
                                CreatedBy   = UserId,
                                CreatedOn   = DateTime.Now,
                                ModifiedBy  = UserId,
                                ModifiedOn  = DateTime.Now,
                            };
                            context.TAdjusmentStockDetail.Add(item2);
                            context.SaveChanges();

                            ItemsIventory vInv = context.TItemsIventory.Where(t => t.VariantID == detail).FirstOrDefault();
                            if (vInv != null)
                            {
                                vInv.VariantID  = detail;
                                vInv.Beginning  = model.InStock[i];
                                vInv.Adjusment  = model.AdjusmentList[i];
                                vInv.CreatedBy  = UserId;
                                vInv.CreatedOn  = DateTime.Now;
                                vInv.ModifiedBy = UserId;
                                vInv.ModifiedOn = DateTime.Now;
                            }
                            ;
                            context.SaveChanges();
                            i++;                                //masih kurang satu tabel lagi buat save
                        }                                       //yaitu tabel tabel ItemsInventory di adjustment dgn rumus actual-instock


                        try
                        {
                            dbTransaction.Commit();
                            return(RedirectToAction("Index"));
                        }
                        catch (Exception)
                        {
                            dbTransaction.Rollback();
                        }
                    }
                }
            }
            return(PartialView("Add", model));
        }