Exemple #1
0
        public ActionResult GetBarCodesForIAP(int id)
        {
            var Header = _JobReceiveHeaderService.Find(id);

            var JobReceives = (from p in db.JobReceiveLine
                               join t in db.JobOrderLine on p.JobOrderLineId equals t.JobOrderLineId
                               join rl in db.JobReturnLine on p.JobReceiveLineId equals rl.JobReceiveLineId into retlinetable
                               from rlintab in retlinetable.DefaultIfEmpty()
                               join t2 in db.Product on t.ProductId equals t2.ProductId
                               join t3 in db.Units on t.DealUnitId equals t3.UnitId
                               join t4 in db.ProductUid on p.ProductUidId equals t4.ProductUIDId
                               where p.JobReceiveHeaderId == id
                               orderby p.Sr
                               select new JobReceiveIAPSummaryViewModel {
                ProductName = t2.ProductName, ProductUidId = t4.ProductUIDId, ProductUidName = t4.ProductUidName, DealQty = t.UnitConversionMultiplier * p.PassQty, DealUnitName = t3.UnitName, MaxDecPlaces = t3.DecimalPlaces, IncentiveAmt = p.IncentiveAmt ?? 0, PenalityAmt = p.PenaltyAmt, Remark = p.Remark, IsReturned = (rlintab != null)
            }).ToList();

            JobReceiveIAPSummaryDetailViewModel vm = new JobReceiveIAPSummaryDetailViewModel();

            vm.JobReceiveHeaderId            = id;
            vm.DocTypeId                     = Header.DocTypeId;
            vm.DocData                       = Header.DocDate;
            vm.JobWorkerId                   = Header.JobWorkerId;
            vm.JobReceiveIAPSummaryViewModel = JobReceives;
            PrepareViewBag(id);



            if (JobReceives.Count == 0)
            {
                return(Redirect(System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Index/" + Header.DocTypeId));
            }
            else
            {
                return(View("SummaryIAP", vm));
            }
        }
Exemple #2
0
        public ActionResult PostIAPSummary(JobReceiveIAPSummaryDetailViewModel vm)
        {
            List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();
            bool Modified = false;

            int Id = vm.JobReceiveHeaderId;

            var Header = _JobReceiveHeaderService.Find(Id);

            int[] BarCodes = vm.JobReceiveIAPSummaryViewModel.Select(m => m.ProductUidId).ToArray();

            var ReceiveLines = (from p in db.JobReceiveLine
                                where p.JobReceiveHeaderId == Id && p.ProductUidId != null && BarCodes.Contains(p.ProductUidId.Value)
                                select p);

            foreach (var item in vm.JobReceiveIAPSummaryViewModel)
            {
                var ReceiveLine = ReceiveLines.Where(m => m.ProductUidId == item.ProductUidId).FirstOrDefault();

                if (ReceiveLine.PenaltyAmt != item.PenalityAmt || (ReceiveLine.IncentiveAmt != item.IncentiveAmt) || ReceiveLine.Remark != item.Remark)
                {
                    JobReceiveLine ExRec = new JobReceiveLine();
                    ExRec = Mapper.Map <JobReceiveLine>(ReceiveLine);
                    ReceiveLine.PenaltyAmt   = item.PenalityAmt;
                    ReceiveLine.IncentiveAmt = item.IncentiveAmt;
                    ReceiveLine.Remark       = item.Remark;
                    ReceiveLine.ModifiedBy   = User.Identity.Name;
                    ReceiveLine.ModifiedDate = DateTime.Now;
                    ReceiveLine.ObjectState  = Model.ObjectState.Modified;

                    LogList.Add(new LogTypeViewModel
                    {
                        ExObj = ExRec,
                        Obj   = ReceiveLine,
                    });

                    _JobReceiveLineService.Update(ReceiveLine);
                    Modified = true;
                }
            }


            if ((Header.Status != (int)StatusConstants.Drafted && Header.Status != (int)StatusConstants.Import) && Modified)
            {
                Header.Status     = (int)StatusConstants.Modified;
                Header.ModifiedBy = User.Identity.Name;
            }

            Header.ObjectState = Model.ObjectState.Modified;
            new JobReceiveHeaderService(_unitOfWork).Update(Header);

            XElement Modifications = new ModificationsCheckService().CheckChanges(LogList);

            try
            {
                _unitOfWork.Save();
            }

            catch (Exception ex)
            {
                string message = _exception.HandleException(ex);
                ModelState.AddModelError("", message);
                PrepareViewBag(vm.JobReceiveHeaderId);
                return(Json(new { Success = false }));
            }

            LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel
            {
                DocTypeId       = Header.DocTypeId,
                DocId           = Header.JobReceiveHeaderId,
                ActivityType    = (int)ActivityTypeContants.Modified,
                DocNo           = Header.DocNo,
                xEModifications = Modifications,
                DocDate         = Header.DocDate,
                DocStatus       = Header.Status,
            }));

            string RetUrl = "";

            if (Header.Status == (int)StatusConstants.Drafted || Header.Status == (int)StatusConstants.Import)
            {
                RetUrl = (System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Modify/" + Header.JobReceiveHeaderId);
            }
            else if (Header.Status == (int)StatusConstants.Submitted || Header.Status == (int)StatusConstants.ModificationSubmitted || Header.Status == (int)StatusConstants.Modified)
            {
                RetUrl = (System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/ModifyAfter_Submit/" + Header.JobReceiveHeaderId);
            }
            else if (Header.Status == (int)StatusConstants.Approved || Header.Status == (int)StatusConstants.Closed)
            {
                RetUrl = (System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/ModifyAfter_Approve/" + Header.JobReceiveHeaderId);
            }
            else
            {
                RetUrl = (System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/JobReceiveHeader/Index/" + Header.DocTypeId);
            }

            return(Json(new { Success = true, Url = RetUrl }));
        }