Exemple #1
0
        public void Update(PdtPlnItem pdtPln)
        {
            var entity = Mapper.Map <TX39_PdtPln>(pdtPln);

            _unitOfWork.PdtPlnRepository.Update(entity);
            _unitOfWork.Commit();
        }
        public ResponseResult <GridResponse <PdtPlnItem> > SearchCriteriaSelected(string selectedValue,
                                                                                  GridSettings gridSettings)
        {
            var result    = new List <TX39_PdtPln>();
            var lstPdtPln = _unitOfWork.PdtPlnRepository.GetAll();

            string[] s = selectedValue.TrimEnd('#').Split('#');

            for (int i = 0; i < s.Length; i++)
            {
                var date           = ConvertHelper.ConvertToDateTimeFull(s[i].Split(',')[0]);
                var preProductCode = s[i].Split(',')[1];
                result.Add(lstPdtPln.FirstOrDefault(c => c.F39_KndEptBgnDate == date && c.F39_PreProductCode.Trim() == preProductCode.Trim()));
            }


            var lstResult = new List <PdtPlnItem>();

            foreach (var prtPln in result.ToList())
            {
                var prdPlnItem     = new PdtPlnItem();
                var preProductItem = _unitOfWork.PreProductRepository.GetMany(i => i.F03_PreProductCode == prtPln.F39_PreProductCode).FirstOrDefault();
                var kndCmdItem     = _unitOfWork.KneadingCommandRepository.GetMany(i => i.F42_PreProductCode == prtPln.F39_PreProductCode && i.F42_KndEptBgnDate == prtPln.F39_KndEptBgnDate).FirstOrDefault();
                prdPlnItem.F39_KndEptBgnDate  = prtPln.F39_KndEptBgnDate;
                prdPlnItem.F39_PreProductCode = prtPln.F39_PreProductCode;
                prdPlnItem.F39_PrePdtLotAmt   = prtPln.F39_PrePdtLotAmt;
                prdPlnItem.F39_Status         = prtPln.F39_Status;
                prdPlnItem.F39_AddDate        = prtPln.F39_AddDate;

                if (preProductItem != null)
                {
                    prdPlnItem.Quantity           = preProductItem.F03_BatchLot;
                    prdPlnItem.F39_PreProductName = preProductItem.F03_PreProductName;
                    prdPlnItem.YieldDrate         = preProductItem.F03_YieldRate;
                    prdPlnItem.MaterialAmount     = preProductItem.F03_AllMtrAmtPerBth;
                }
                if (kndCmdItem != null)
                {
                    prdPlnItem.CmdNo             = kndCmdItem.F42_KndCmdNo;
                    prdPlnItem.LotNo             = kndCmdItem.F42_PrePdtLotNo;
                    prdPlnItem.CommandSequenceNo = kndCmdItem.F42_CommandSeqNo;
                }

                lstResult.Add(prdPlnItem);
            }

            var itemCount = lstResult.Count();


            var queryable = lstResult.AsQueryable();

            //OrderByAndPaging(ref queryable, gridSettings);


            queryable = queryable.Skip((gridSettings.PageIndex - 1) * gridSettings.PageSize).Take(gridSettings.PageSize);
            var resultModel = new GridResponse <PdtPlnItem>(queryable, itemCount);

            return(new ResponseResult <GridResponse <PdtPlnItem> >(resultModel, true));
        }
        public ResponseResult <GridResponse <PdtPlnItem> > SearchCriteria(DateTime dateCurrent, DateTime date, Enum line,
                                                                          GridSettings gridSettings)
        {
            string kndLine;
            var    result = _unitOfWork.PdtPlnRepository.GetAll();

            kndLine = Constants.KndLine.Megabit.Equals(line)
                ? Constants.KndLine.Megabit.ToString("D")
                : Constants.KndLine.Conventional.ToString("D");
            var notCommandedStatus = Constants.F39_Status.NotCommanded.ToString("D");

            result =
                result.Where(
                    i =>
                    i.F39_KndEptBgnDate <= date && i.F39_KndEptBgnDate >= dateCurrent && i.F39_KneadingLine.Trim().Equals(kndLine) &&
                    i.F39_Status.Trim().Equals(notCommandedStatus));

            var lstPreProductCode = result.Select(i => i.F39_PreProductCode);
            var lstPreProduct     =
                _unitOfWork.PreProductRepository.GetAll().Where(i => lstPreProductCode.Contains(i.F03_PreProductCode));
            var lstResult = new List <PdtPlnItem>();

            foreach (var prtPln in result)
            {
                var prdPlnItem        = new PdtPlnItem();
                var lstPreProductItem =
                    lstPreProduct.FirstOrDefault(i => i.F03_PreProductCode == prtPln.F39_PreProductCode);
                prdPlnItem.F39_KndEptBgnDate  = prtPln.F39_KndEptBgnDate;
                prdPlnItem.F39_PreProductCode = prtPln.F39_PreProductCode;
                prdPlnItem.F39_PrePdtLotAmt   = prtPln.F39_PrePdtLotAmt;
                prdPlnItem.F39_Status         = prtPln.F39_Status;
                prdPlnItem.F39_AddDate        = prtPln.F39_AddDate;

                if (lstPreProductItem != null)
                {
                    prdPlnItem.Quantity           = lstPreProductItem.F03_BatchLot;
                    prdPlnItem.F39_PreProductName = lstPreProductItem.F03_PreProductName;
                    prdPlnItem.YieldDrate         = lstPreProductItem.F03_YieldRate;
                    prdPlnItem.MaterialAmount     = lstPreProductItem.F03_AllMtrAmtPerBth;
                }
                lstResult.Add(prdPlnItem);
            }

            var itemCount   = lstResult.Count();
            var pdtPlnItems = lstResult.AsQueryable();

            OrderByAndPaging(ref pdtPlnItems, gridSettings);
            var resultModel = new GridResponse <PdtPlnItem>(pdtPlnItems, itemCount);

            return(new ResponseResult <GridResponse <PdtPlnItem> >(resultModel, true));
        }
Exemple #4
0
        public ResponseResult CreateOrUpdate(PdtPlnItem model)
        {
            if (model.IsCreate)
            {
                if (!string.IsNullOrEmpty(model.F39_PreProductCode))
                {
                    if (CheckUnique(model.F39_PreProductCode, model.F39_KndEptBgnDate))
                    {
                        return(new ResponseResult(false, Constants.Messages.Material_MSG004));
                    }
                }

                var entity = Mapper.Map <TX39_PdtPln>(model);
                entity.F39_KndCmdNo     = " ";
                entity.F39_KneadingLine = model.KndLine == (int)Constants.KndLine.Megabit
                    ? Constants.KndLine.Megabit.ToString("D")
                    : Constants.KndLine.Conventional.ToString("D");
                entity.F39_StartLotNo  = "";
                entity.F39_EndLotAmont = 0;
                entity.F39_ColorClass  = GetKndLine(entity.F39_PreProductCode);
                entity.F39_AddDate     = DateTime.Now;
                entity.F39_UpdateDate  = DateTime.Now;
                entity.F39_UpdateCount = 0;
                entity.F39_Status      = Constants.F39_Status.NotCommanded.ToString("D");
                _unitOfWork.PdtPlnRepository.Add(entity);
            }
            else
            {
                //var entity = _unitOfWork.PdtPlnRepository.GetById(model.F39_PreProductCode);
                var entity = _unitOfWork.PdtPlnRepository.Get(m => m.F39_PreProductCode.Trim().Equals(model.F39_PreProductCode.Trim()) && m.F39_KndEptBgnDate.Equals(model.F39_KndEptBgnDate));
                if (entity == null)
                {
                    return(new ResponseResult(false, Constants.Messages.Material_MSG001));
                }

                Constants.F39_Status status;
                if (!Enum.TryParse(model.F39_Status, true, out status))
                {
                    status = Constants.F39_Status.NotCommanded;
                }

                entity.F39_Status       = status.ToString("D");
                entity.F39_PrePdtLotAmt = model.F39_PrePdtLotAmt;
                entity.F39_UpdateCount  = entity.F39_UpdateCount + 1;
                _unitOfWork.PdtPlnRepository.Update(entity);
            }
            _unitOfWork.Commit();
            return(new ResponseResult(true));
        }