Пример #1
0
        public IHttpActionResult Acknowledge(int id, int empnum)
        {
            var disbursement = _disbursementRepo.GetById(id);
            var employee     = _employeeRepo.GetById(empnum);

            if (employee.DeptCode != disbursement.DeptCode)
            {
                return(BadRequest("Wrong department."));
            }

            if (disbursement.Status != DisbursementStatus.InProcess)
            {
                return(BadRequest("This disbursement has already been acknowledged"));
            }

            _disbursementRepo.Acknowledge(disbursement);
            //update current quantity of stationery
            foreach (var disbursementDetail in disbursement.DisbursementDetails)
            {
                var stationery = _stationeryRepo.GetById(disbursementDetail.ItemNum);
                stationery.CurrentQty -= disbursementDetail.ActualQty;
                _stationeryRepo.Update(stationery);
            }

            return(Ok(new { Message = "Disbursement acknowledged" }));
        }
Пример #2
0
        public ActionResult Acknowledge(DisbursementDetailDTO disbursementDto, string update)
        {
            if (disbursementDto == null)
            {
                return(HttpNotFound());
            }

            if (ModelState.IsValid)
            {
                var disbursement = _disbursementRepo.GetById(disbursementDto.CurrentDisbursement.DisbursementId);

                //set the actual qty of its detail list items to the updated qty, and update it in database
                foreach (var disbursementDetail in disbursement.DisbursementDetails)
                {
                    disbursementDetail.ActualQty = disbursementDto.DisDetailList
                                                   .First(ddEdited => ddEdited.ItemNum == disbursementDetail.ItemNum)
                                                   .ActualQty;
                }

                _disbursementRepo.Update(disbursement);

                switch (update)
                {
                //case 1: confirm items disbursed and update stationery qty
                case "Acknowledge Manually":
                    _disbursementRepo.Acknowledge(disbursement);
                    foreach (var dd in disbursement.DisbursementDetails)
                    {
                        var stationery = _stationeryRepo.GetById(dd.Stationery.ItemNum);
                        stationery.CurrentQty -= dd.ActualQty;
                        _stationeryRepo.Update(stationery);
                    }

                    return(RedirectToAction("Upcoming"));

                //case 2: only updates actual qty and leave changing status and deduct stock qty to WebAPI
                case "Generate QR Code":
                    break;
                }

                return(Json("Ok"));
            }

            return(View("Details", disbursementDto));
        }