public TransferLimitViewModel CheckLimit(TransferLimitViewModel model)
        {
            if (model.ShiftId == 2)
            {
                var efTime = model.EffectiveDate.Value.TimeOfDay;

                if (efTime >= new TimeSpan(0, 0, 0) && efTime <= new TimeSpan(6, 59, 59))
                {
                    model.EffectiveDate = model.EffectiveDate.Value.AddDays(-1);
                }
            }

            var parameters = initParameters(model);

            var str = new StringBuilder();

            str.AppendLine("   select top 1 * from TransferLimitViews as TL where    ");
            str.AppendLine("  				 TL.RawMaterialId = @RawMaterialId and ");
            str.AppendLine("  				 TL.EffectiveDate = @EffectiveDate and ");
            str.AppendLine("  					TL.ShiftId = @ShiftId");
            str.AppendLine("  ");

            var result = DBContext.GetRecord <TransferLimitViewModel>(str.ToString(), parameters);

            return(result);
        }
Пример #2
0
        public IActionResult Update([FromBody] EditTransferLimitViewModel model)
        {
            var props = new TransferLimitViewModel()
            {
                EffectiveDate = model.EffectiveDate,
                RawMaterialId = model.RawMaterialId,
                ShiftId       = model.ShiftId
            };

            var tlimitVM = _tlRepository.Get(props);

            if (tlimitVM == null)
            {
                return(NotFound("Selected record not found."));
            }
            else
            {
                tlimitVM.ComputedLimitKg = model.ComputedLimitKg;
            }

            if (ModelState.IsValid)
            {
                _tlRepository.Update(tlimitVM);
                return(Ok(tlimitVM));
            }
            else
            {
                return(BadRequest(ModelState.ToJson()));
            }
        }
        public TransferLimitViewModel CreateIfNotExists(TransferLimitViewModel model)
        {
            var parameters = initParameters(model);
            var qry        = new StringBuilder();

            qry.AppendLine(" IF NOT EXISTS(Select top 1 * from TransferLimitViews  ");
            qry.AppendLine(" WHERE EffectiveDate = @EffectiveDate ");
            qry.AppendLine(" AND RawMaterialId = @RawMaterialId ");
            qry.AppendLine(" AND ShiftId = @ShiftId)  ");
            qry.AppendLine("BEGIN");
            qry.AppendLine("insert into TransferLimits (");
            qry.AppendLine(nameof(model.DateCreated) + (char)44);
            qry.AppendLine(nameof(model.EffectiveDate) + (char)44);
            qry.AppendLine(nameof(model.ShiftId) + (char)44);
            qry.AppendLine(nameof(model.RawMaterialId) + (char)44);
            qry.AppendLine(nameof(model.ComputedLimitKg) + (char)44);
            qry.AppendLine(nameof(model.CreatedById));
            qry.AppendLine(") values (");
            qry.AppendLine(nameof(model.DateCreated).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.EffectiveDate).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.ShiftId).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.RawMaterialId).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.ComputedLimitKg).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.CreatedById).Parameterize());
            qry.AppendLine(")");
            qry.AppendLine("select @@identity");
            qry.AppendLine("END");
            model.TransferLimitId = DBContext.ExecuteQueryWithIdentityInt64(qry.ToString(), parameters);

            return(model);
        }
        public TransferLimitViewModel Create(TransferLimitViewModel model)
        {
            var parameters = initParameters(model);

            StringBuilder qry = new StringBuilder();


            qry.AppendLine("insert into TransferLimits (");
            qry.AppendLine(nameof(model.DateCreated) + (char)44);
            qry.AppendLine(nameof(model.EffectiveDate) + (char)44);
            qry.AppendLine(nameof(model.ShiftId) + (char)44);
            qry.AppendLine(nameof(model.RawMaterialId) + (char)44);
            qry.AppendLine(nameof(model.ComputedLimitKg) + (char)44);
            qry.AppendLine(nameof(model.CreatedById));
            qry.AppendLine(") values (");
            qry.AppendLine(nameof(model.DateCreated).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.EffectiveDate).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.ShiftId).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.RawMaterialId).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.ComputedLimitKg).Parameterize() + (char)44);
            qry.AppendLine(nameof(model.CreatedById).Parameterize());
            qry.AppendLine(")");
            qry.AppendLine("select @@identity");
            model.TransferLimitId = DBContext.ExecuteQueryWithIdentityInt64(qry.ToString(), parameters);
            return(model);
        }
        public TransferLimitViewModel2 GetStatus(TransferLimitViewModel model)
        {
            var           parameters = initParameters(model);
            StringBuilder qry        = new StringBuilder();

            qry.AppendLine("Select top 1 * from TransferLimitViews2");
            qry.AppendLine($"Where {nameof(TransferLimit.EffectiveDate)} = {nameof(TransferLimit.EffectiveDate).Parameterize()}");
            qry.AppendLine($"and {nameof(TransferLimit.RawMaterialId)} = {nameof(TransferLimit.RawMaterialId).Parameterize()}");
            qry.AppendLine($"and {nameof(TransferLimit.ShiftId)} = {nameof(TransferLimit.ShiftId).Parameterize()}");
            var result = DBContext.GetRecord <TransferLimitViewModel2>(qry.ToString(), parameters);

            return(result);
        }
        public TransferLimitViewModel Get(long id)
        {
            var model = new TransferLimitViewModel()
            {
                TransferLimitId = id
            };

            var           parameters = initParameters(model);
            StringBuilder qry        = new StringBuilder();

            qry.AppendLine("Select top 1 * from TransferLimitViews");
            qry.AppendLine($"Where {nameof(TransferLimit.TransferLimitId)} = {nameof(TransferLimit.TransferLimitId).Parameterize()}");
            var result = DBContext.GetRecord <TransferLimitViewModel>(qry.ToString(), parameters);

            return(result);
        }
        public TransferLimitViewModel Update(TransferLimitViewModel modelChanges)
        {
            var parameters = initParameters(modelChanges);

            StringBuilder qry = new StringBuilder();

            qry.AppendLine("  declare @LimitWarningPercent decimal; set @LimitWarningPercent = (Select top 1 LimitWarningPercent from GeneralSettings)   ");
            qry.AppendLine("Update TransferLimits set");
            qry.AppendLine($"{nameof(modelChanges.ShiftId)}={nameof(modelChanges.ShiftId).Parameterize()}" + (char)44);
            qry.AppendLine($"{nameof(modelChanges.RawMaterialId)}={nameof(modelChanges.RawMaterialId).Parameterize()}" + (char)44);
            qry.AppendLine($"{nameof(modelChanges.ComputedLimitKg)}={nameof(modelChanges.ComputedLimitKg).Parameterize()}" + (char)44);
            qry.AppendLine($"{nameof(modelChanges.Modified)}={nameof(modelChanges.Modified).Parameterize()}");

            qry.AppendLine($"where {nameof(modelChanges.TransferLimitId)} = {nameof(modelChanges.TransferLimitId).Parameterize()}");
            int success = DBContext.ExecuteQuery(qry.ToString(), parameters);

            return(modelChanges);
        }
        public TransferLimitData GetTransferLimitData(TransferLimitViewModel model)
        {
            var tLimit = Get(model);

            if (tLimit == null)
            {
                return(null);
            }

            var tLimitAdjs = _tlAdjRepo.List(tLimit.TransferLimitId);

            var result = new TransferLimitData()
            {
                TransferLimitViewModel     = tLimit,
                TransferLimitAdjCollection = tLimitAdjs
            };

            return(result);
        }
Пример #9
0
        public IActionResult Create([FromBody] TransferLimitViewModel model)
        {
            System.Diagnostics.Debug.Write(ModelState.ToJson());

            if (ModelState.IsValid)
            {
                var existing = _tlRepository.Get(model);
                if (existing != null)
                {
                    ModelState.AddModelError(nameof(TransferLimit.ShiftId), "Standard limit already exists.");
                    return(BadRequest(ModelState));
                }
                _tlRepository.Create(model);
                return(Ok(model));
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
        public void AutoGenTransferLimit(DateTime dt, string userId)
        {
            var           mats = _rawMatRepo.List();
            StringBuilder qry  = new StringBuilder();

            foreach (var mat in mats)
            {
                var tLimit = new TransferLimitViewModel();
                tLimit.DateCreated     = DateTime.Now;
                tLimit.EffectiveDate   = dt;
                tLimit.ShiftId         = 1;
                tLimit.RawMaterialId   = mat.RawMaterialId;
                tLimit.ComputedLimitKg = 0;
                tLimit.CreatedBy       = userId;
                Create(tLimit);

                tLimit.ShiftId = 2;
                Create(tLimit);
            }
        }
Пример #11
0
        public IActionResult CheckLimit([FromBody][Bind(nameof(TransRecordViewModel.TransactionProcess),
                                                        nameof(TransRecordViewModel.IsOffline),
                                                        nameof(TransRecordViewModel.DTInbound),
                                                        nameof(TransRecordViewModel.DTOutbound),
                                                        nameof(TransRecordViewModel.WtInbound),
                                                        nameof(TransRecordViewModel.NetWt),
                                                        nameof(TransRecordViewModel.ActualNetWt),
                                                        nameof(TransRecord.NetWt),
                                                        nameof(TransRecord.RawMaterialId),
                                                        nameof(TransRecord.BinNum))] TransRecordViewModel model)
        {
            var isWeighIn   = model.TransactionProcess == WeighingSystemCoreHelpers.Enums.Enums.TransactionProcess.WEIGH_IN.ToString();
            var isWeighOut  = model.TransactionProcess == WeighingSystemCoreHelpers.Enums.Enums.TransactionProcess.WEIGH_OUT.ToString();
            var isUpdateOut = model.TransactionProcess == WeighingSystemCoreHelpers.Enums.Enums.TransactionProcess.UPDATE_OUT.ToString();

            if (isWeighIn)
            {
                model.DTInbound = model.IsOffline ? model.DTOfflineDate : DateTime.Now;
            }
            else
            {
                model.DTOutbound = model.IsOffline ? model.DTOfflineDate : DateTime.Now;
            }

            DateTime?selectedDt = isWeighIn ? model.DTInbound : isWeighOut ? model.DTOutbound : isUpdateOut ? model.DTOutbound : model.DTInbound;
            var      shiftId    = _shiftRepository.GetCurrentShift(selectedDt ?? DateTime.Now).ShiftId;

            var transferLimitVM = new TransferLimitViewModel()
            {
                EffectiveDate = selectedDt,
                ShiftId       = shiftId,
                RawMaterialId = model.RawMaterialId
            };

            var result = _tlRepository.CheckLimit(transferLimitVM);

            return(Ok(result));
        }
        public IActionResult Get(DateTime effectiveDate, long rawMaterialId, long shiftId)
        {
            try
            {
                var model = new TransferLimitViewModel
                {
                    EffectiveDate = effectiveDate,
                    RawMaterialId = rawMaterialId,
                    ShiftId       = shiftId
                };

                var result = _tlRepo.GetTransferLimitData(model);
                if (result == null)
                {
                    return(NotFound("Selected record not found."));
                }

                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }