public dynamic GetInfo(int Id) { CoreBuilder model = new CoreBuilder(); try { model = _coreBuilderService.GetObjectById(Id); } catch (Exception ex) { LOG.Error("GetInfo", ex); model.Errors.Add("Generic", "Error : " + ex); } return(Json(new { model.Id, model.Name, model.Category, model.UoMId, UoM = _uomService.GetObjectById(model.UoMId).Name, model.BaseSku, model.SkuUsedCore, model.SkuNewCore, UsedCoreQuantity = _itemService.GetObjectById(model.UsedCoreItemId).Quantity, NewCoreQuantity = _itemService.GetObjectById(model.NewCoreItemId).Quantity, model.Errors }, JsonRequestBehavior.AllowGet)); }
public dynamic GetListDetail(string _search, long nd, int rows, int?page, string sidx, string sord, int id, string filters = "") { // Construct where statement string strWhere = GeneralFunction.ConstructWhere(filters); // Get Data var query = _coreIdentificationDetailService.GetObjectsByCoreIdentificationId(id).Where(d => d.IsDeleted == false); var list = query as IEnumerable <CoreIdentificationDetail>; var pageIndex = Convert.ToInt32(page) - 1; var pageSize = rows; var totalRecords = query.Count(); var totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize); // default last page if (totalPages > 0) { if (!page.HasValue) { pageIndex = totalPages - 1; page = totalPages; } } list = list.Skip(pageIndex * pageSize).Take(pageSize); return(Json(new { total = totalPages, page = page, records = totalRecords, rows = ( from model in list select new { id = model.Id, cell = new object[] { model.DetailId, model.CoreIdentificationId, model.MaterialCase == 1 ? "New" : "Used", model.CoreBuilderId, _coreBuilderService.GetObjectById(model.CoreBuilderId).Name, model.RollerTypeId, _rollerTypeService.GetObjectById(model.RollerTypeId).Name, model.MachineId, _machineService.GetObjectById(model.MachineId).Name, model.RD, model.CD, model.RL, model.WL, model.TL, model.IsFinished, model.FinishedDate, } }).ToArray() }, JsonRequestBehavior.AllowGet)); }
public RecoveryOrder VQuantityIsInStock(RecoveryOrder recoveryOrder, ICoreIdentificationDetailService _coreIdentificationDetailService, IRecoveryOrderDetailService _recoveryOrderDetailService, ICoreBuilderService _coreBuilderService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { IList <RecoveryOrderDetail> details = _recoveryOrderDetailService.GetObjectsByRecoveryOrderId(recoveryOrder.Id); IDictionary <int, int> ValuePairItemIdQuantity = new Dictionary <int, int>(); foreach (var detail in details) { CoreIdentificationDetail coreIdentificationDetail = _coreIdentificationDetailService.GetObjectById(detail.CoreIdentificationDetailId); CoreBuilder coreBuilder = _coreBuilderService.GetObjectById(coreIdentificationDetail.CoreBuilderId); Item item = (coreIdentificationDetail.MaterialCase == Core.Constants.Constant.MaterialCase.New) ? _coreBuilderService.GetNewCore(coreBuilder.Id) : _coreBuilderService.GetUsedCore(coreBuilder.Id); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, item.Id); if (ValuePairItemIdQuantity.ContainsKey(warehouseItem.Id)) { ValuePairItemIdQuantity[warehouseItem.Id] += 1; } else { ValuePairItemIdQuantity.Add(warehouseItem.Id, 1); } } foreach (var ValuePair in ValuePairItemIdQuantity) { WarehouseItem warehouseItem = _warehouseItemService.GetObjectById(ValuePair.Key); if (warehouseItem.Quantity < ValuePair.Value) { recoveryOrder.Errors.Add("Generic", "Stock quantity core item tidak boleh kurang dari jumlah di dalam recovery order"); return(recoveryOrder); } } return(recoveryOrder); }
public CoreIdentificationDetail VHasCoreBuilder(CoreIdentificationDetail coreIdentificationDetail, ICoreBuilderService _coreBuilderService) { CoreBuilder coreBuilder = _coreBuilderService.GetObjectById(coreIdentificationDetail.CoreBuilderId); if (coreBuilder == null) { coreIdentificationDetail.Errors.Add("CoreBuilderId", "Tidak terasosiasi dengan coreBuilder"); } return(coreIdentificationDetail); }
public RollerBuilder VHasCoreBuilder(RollerBuilder rollerBuilder, ICoreBuilderService _coreBuilderService) { CoreBuilder coreBuilder = _coreBuilderService.GetObjectById(rollerBuilder.CoreBuilderId); if (coreBuilder == null) { rollerBuilder.Errors.Add("CoreBuilderId", "Tidak terasosiasi dengan coreBuilder"); } return(rollerBuilder); }
public RecoveryOrderDetail RejectObject(RecoveryOrderDetail recoveryOrderDetail, DateTime RejectedDate, ICoreIdentificationService _coreIdentificationService, ICoreIdentificationDetailService _coreIdentificationDetailService, IRecoveryOrderService _recoveryOrderService, IRecoveryAccessoryDetailService _recoveryAccessoryDetailService, ICoreBuilderService _coreBuilderService, IRollerBuilderService _rollerBuilderService, IItemService _itemService, IWarehouseItemService _warehouseItemService, IBarringService _barringService, IStockMutationService _stockMutationService) { recoveryOrderDetail.RejectedDate = RejectedDate; if (_validator.ValidRejectObject(recoveryOrderDetail, _recoveryOrderService)) { _repository.RejectObject(recoveryOrderDetail); // add recovery order quantity reject // if valid, complete recovery order = true RecoveryOrder recoveryOrder = _recoveryOrderService.GetObjectById(recoveryOrderDetail.RecoveryOrderId); recoveryOrder.QuantityRejected += 1; _recoveryOrderService.AdjustQuantity(recoveryOrder); if (_recoveryOrderService.GetValidator().ValidCompleteObject(recoveryOrder, this, _recoveryAccessoryDetailService)) { _recoveryOrderService.CompleteObject(recoveryOrder, _coreIdentificationDetailService, this, _recoveryAccessoryDetailService); } bool CaseAddition = false; // deduce compound RollerBuilder rollerBuilder = _rollerBuilderService.GetObjectById(recoveryOrderDetail.RollerBuilderId); Item compound = _itemService.GetObjectById(rollerBuilder.CompoundId); WarehouseItem warehouseCompound = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, compound.Id); StockMutation stockMutationCompound = _stockMutationService.CreateStockMutationForRecoveryOrderCompound(recoveryOrderDetail, warehouseCompound, CaseAddition); _stockMutationService.StockMutateObject(stockMutationCompound, _itemService, _barringService, _warehouseItemService); // deduce core CoreIdentificationDetail coreIdentificationDetail = _coreIdentificationDetailService.GetObjectById(recoveryOrderDetail.CoreIdentificationDetailId); _coreIdentificationDetailService.UnsetJobScheduled(coreIdentificationDetail, _recoveryOrderService, this); CoreBuilder coreBuilder = _coreBuilderService.GetObjectById(coreIdentificationDetail.CoreBuilderId); Item core = (coreIdentificationDetail.MaterialCase == Core.Constants.Constant.MaterialCase.New) ? _coreBuilderService.GetNewCore(coreBuilder.Id) : _coreBuilderService.GetUsedCore(coreBuilder.Id); WarehouseItem warehouseCore = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, core.Id); StockMutation stockMutationCore = _stockMutationService.CreateStockMutationForRecoveryOrder(recoveryOrderDetail, warehouseCore, CaseAddition); _stockMutationService.StockMutateObject(stockMutationCore, _itemService, _barringService, _warehouseItemService); // accesories uncounted } return(recoveryOrderDetail); }
public RecoveryOrderDetail UndoRejectObject(RecoveryOrderDetail recoveryOrderDetail, ICoreIdentificationService _coreIdentificationService, ICoreIdentificationDetailService _coreIdentificationDetailService, IRecoveryOrderService _recoveryOrderService, IRecoveryAccessoryDetailService _recoveryAccessoryDetailService, ICoreBuilderService _coreBuilderService, IRollerBuilderService _rollerBuilderService, IItemService _itemService, IWarehouseItemService _warehouseItemService, IBarringService _barringService, IStockMutationService _stockMutationService) { if (_validator.ValidUndoRejectObject(recoveryOrderDetail, _recoveryOrderService)) { _repository.UndoRejectObject(recoveryOrderDetail); // add recovery order quantity reject // if valid, complete recovery order = true RecoveryOrder recoveryOrder = _recoveryOrderService.GetObjectById(recoveryOrderDetail.RecoveryOrderId); recoveryOrder.QuantityRejected -= 1; _recoveryOrderService.AdjustQuantity(recoveryOrder); // reverse stock mutate compound RollerBuilder rollerBuilder = _rollerBuilderService.GetObjectById(recoveryOrderDetail.RollerBuilderId); Item compound = _itemService.GetObjectById(rollerBuilder.CompoundId); WarehouseItem warehouseCompound = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, compound.Id); IList <StockMutation> stockMutationCompounds = _stockMutationService.SoftDeleteStockMutationForRecoveryOrder(recoveryOrderDetail, warehouseCompound); foreach (var stockMutationCompound in stockMutationCompounds) { _stockMutationService.ReverseStockMutateObject(stockMutationCompound, _itemService, _barringService, _warehouseItemService); } // reverse stock mutate core CoreIdentificationDetail coreIdentificationDetail = _coreIdentificationDetailService.GetObjectById(recoveryOrderDetail.CoreIdentificationDetailId); _coreIdentificationDetailService.SetJobScheduled(coreIdentificationDetail, _recoveryOrderService, this); CoreBuilder coreBuilder = _coreBuilderService.GetObjectById(coreIdentificationDetail.CoreBuilderId); Item core = (coreIdentificationDetail.MaterialCase == Core.Constants.Constant.MaterialCase.New) ? _coreBuilderService.GetNewCore(coreBuilder.Id) : _coreBuilderService.GetUsedCore(coreBuilder.Id); WarehouseItem warehouseCore = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, core.Id); IList <StockMutation> stockMutationCores = _stockMutationService.SoftDeleteStockMutationForRecoveryOrder(recoveryOrderDetail, warehouseCore); foreach (var stockMutationCore in stockMutationCores) { _stockMutationService.ReverseStockMutateObject(stockMutationCore, _itemService, _barringService, _warehouseItemService); } // accesories uncounted } return(recoveryOrderDetail); }
// Hanya untuk InHouse Production public CoreIdentification VQuantityIsInStock(CoreIdentification coreIdentification, ICoreIdentificationDetailService _coreIdentificationDetailService, ICoreBuilderService _coreBuilderService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { if (!coreIdentification.IsInHouse) { return(coreIdentification); } IList <CoreIdentificationDetail> details = _coreIdentificationDetailService.GetObjectsByCoreIdentificationId(coreIdentification.Id); IDictionary <int, int> ValuePairWarehouseItemIdQuantity = new Dictionary <int, int>(); foreach (var detail in details) { CoreBuilder coreBuilder = _coreBuilderService.GetObjectById(detail.CoreBuilderId); Item item = (detail.MaterialCase == Core.Constants.Constant.MaterialCase.New) ? _itemService.GetObjectById(coreBuilder.NewCoreItemId) : _itemService.GetObjectById(coreBuilder.UsedCoreItemId); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(coreIdentification.WarehouseId, item.Id); if (ValuePairWarehouseItemIdQuantity.ContainsKey(warehouseItem.Id)) { ValuePairWarehouseItemIdQuantity[warehouseItem.Id] += 1; } else { ValuePairWarehouseItemIdQuantity.Add(warehouseItem.Id, 1); } } foreach (var ValuePair in ValuePairWarehouseItemIdQuantity) { WarehouseItem warehouseItem = _warehouseItemService.GetObjectById(ValuePair.Key); if (warehouseItem.Quantity < ValuePair.Value) { coreIdentification.Errors.Add("Generic", "Stock item tidak mencukupi untuk melakukan Core Identification"); return(coreIdentification); } } return(coreIdentification); }
public RecoveryOrderDetail UnfinishObject(RecoveryOrderDetail recoveryOrderDetail, ICoreIdentificationService _coreIdentificationService, ICoreIdentificationDetailService _coreIdentificationDetailService, IRecoveryOrderService _recoveryOrderService, IRecoveryAccessoryDetailService _recoveryAccessoryDetailService, ICoreBuilderService _coreBuilderService, IRollerBuilderService _rollerBuilderService, IItemService _itemService, IWarehouseItemService _warehouseItemService, IBarringService _barringService, IStockMutationService _stockMutationService) { if (_validator.ValidUnfinishObject(recoveryOrderDetail, _recoveryOrderService, _recoveryAccessoryDetailService)) { // unfinish object _repository.UnfinishObject(recoveryOrderDetail); // add recovery order quantity final RecoveryOrder recoveryOrder = _recoveryOrderService.GetObjectById(recoveryOrderDetail.RecoveryOrderId); recoveryOrder.QuantityFinal += 1; _recoveryOrderService.AdjustQuantity(recoveryOrder); // reverse stock mutate compound RollerBuilder rollerBuilder = _rollerBuilderService.GetObjectById(recoveryOrderDetail.RollerBuilderId); Item compound = _itemService.GetObjectById(rollerBuilder.CompoundId); WarehouseItem warehouseCompound = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, compound.Id); IList <StockMutation> stockMutationCompounds = _stockMutationService.SoftDeleteStockMutationForRecoveryOrder(recoveryOrderDetail, warehouseCompound); foreach (var stockMutationCompound in stockMutationCompounds) { _stockMutationService.ReverseStockMutateObject(stockMutationCompound, _itemService, _barringService, _warehouseItemService); } // reverse stock mutate core CoreIdentificationDetail coreIdentificationDetail = _coreIdentificationDetailService.GetObjectById(recoveryOrderDetail.CoreIdentificationDetailId); _coreIdentificationDetailService.SetJobScheduled(coreIdentificationDetail, _recoveryOrderService, this); CoreBuilder coreBuilder = _coreBuilderService.GetObjectById(coreIdentificationDetail.CoreBuilderId); Item core = (coreIdentificationDetail.MaterialCase == Core.Constants.Constant.MaterialCase.New) ? _coreBuilderService.GetNewCore(coreBuilder.Id) : _coreBuilderService.GetUsedCore(coreBuilder.Id); WarehouseItem warehouseCore = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, core.Id); IList <StockMutation> stockMutationCores = _stockMutationService.SoftDeleteStockMutationForRecoveryOrder(recoveryOrderDetail, warehouseCore); foreach (var stockMutationCore in stockMutationCores) { _stockMutationService.ReverseStockMutateObject(stockMutationCore, _itemService, _barringService, _warehouseItemService); } // reverse stock mutate roller Item roller = (coreIdentificationDetail.MaterialCase == Core.Constants.Constant.MaterialCase.New) ? _rollerBuilderService.GetRollerNewCore(rollerBuilder.Id) : _rollerBuilderService.GetRollerUsedCore(rollerBuilder.Id); WarehouseItem warehouseRoller = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, roller.Id); IList <StockMutation> stockMutationRollers = _stockMutationService.SoftDeleteStockMutationForRecoveryOrder(recoveryOrderDetail, warehouseRoller); foreach (var stockMutationRoller in stockMutationRollers) { _stockMutationService.ReverseStockMutateObject(stockMutationRoller, _itemService, _barringService, _warehouseItemService); } // reverse stock mutate accessories IList <RecoveryAccessoryDetail> recoveryAccessoryDetails = _recoveryAccessoryDetailService.GetObjectsByRecoveryOrderDetailId(recoveryOrderDetail.Id); if (recoveryAccessoryDetails.Any()) { foreach (var recoveryAccessoryDetail in recoveryAccessoryDetails) { Item accessory = _itemService.GetObjectById(recoveryAccessoryDetail.ItemId); WarehouseItem warehouseAccessory = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, accessory.Id); IList <StockMutation> stockMutationAccessories = _stockMutationService.SoftDeleteStockMutationForRecoveryAccessory(recoveryAccessoryDetail, warehouseAccessory); foreach (var stockMutationAccessory in stockMutationAccessories) { _stockMutationService.ReverseStockMutateObject(stockMutationAccessory, _itemService, _barringService, _warehouseItemService); } } } } return(recoveryOrderDetail); }
public RecoveryOrderDetail FinishObject(RecoveryOrderDetail recoveryOrderDetail, DateTime FinishedDate, ICoreIdentificationService _coreIdentificationService, ICoreIdentificationDetailService _coreIdentificationDetailService, IRecoveryOrderService _recoveryOrderService, IRecoveryAccessoryDetailService _recoveryAccessoryDetailService, ICoreBuilderService _coreBuilderService, IRollerBuilderService _rollerBuilderService, IItemService _itemService, IWarehouseItemService _warehouseItemService, IBarringService _barringService, IStockMutationService _stockMutationService) { recoveryOrderDetail.FinishedDate = FinishedDate; if (_validator.ValidFinishObject(recoveryOrderDetail, _recoveryOrderService, _recoveryAccessoryDetailService)) { // set object to finish _repository.FinishObject(recoveryOrderDetail); // add recovery order quantity final // if valid, complete recovery order = true RecoveryOrder recoveryOrder = _recoveryOrderService.GetObjectById(recoveryOrderDetail.RecoveryOrderId); recoveryOrder.QuantityFinal += 1; _recoveryOrderService.AdjustQuantity(recoveryOrder); if (_recoveryOrderService.GetValidator().ValidCompleteObject(recoveryOrder, this, _recoveryAccessoryDetailService)) { _recoveryOrderService.CompleteObject(recoveryOrder, _coreIdentificationDetailService, this, _recoveryAccessoryDetailService); } bool CaseAdditionCompound = false; bool CaseAdditionCore = false; bool CaseAdditionRoller = true; // deduce compound RollerBuilder rollerBuilder = _rollerBuilderService.GetObjectById(recoveryOrderDetail.RollerBuilderId); Item compound = _itemService.GetObjectById(rollerBuilder.CompoundId); WarehouseItem warehouseCompound = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, compound.Id); StockMutation stockMutationCompound = _stockMutationService.CreateStockMutationForRecoveryOrderCompound(recoveryOrderDetail, warehouseCompound, CaseAdditionCompound); _stockMutationService.StockMutateObject(stockMutationCompound, _itemService, _barringService, _warehouseItemService); CoreIdentificationDetail coreIdentificationDetail = _coreIdentificationDetailService.GetObjectById(recoveryOrderDetail.CoreIdentificationDetailId); _coreIdentificationDetailService.UnsetJobScheduled(coreIdentificationDetail, _recoveryOrderService, this); _coreIdentificationDetailService.BuildRoller(coreIdentificationDetail); // deduce core CoreBuilder coreBuilder = _coreBuilderService.GetObjectById(coreIdentificationDetail.CoreBuilderId); Item core = (coreIdentificationDetail.MaterialCase == Core.Constants.Constant.MaterialCase.New) ? _coreBuilderService.GetNewCore(coreBuilder.Id) : _coreBuilderService.GetUsedCore(coreBuilder.Id); WarehouseItem warehouseCore = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, core.Id); StockMutation stockMutationCore = _stockMutationService.CreateStockMutationForRecoveryOrder(recoveryOrderDetail, warehouseCore, CaseAdditionCore); _stockMutationService.StockMutateObject(stockMutationCore, _itemService, _barringService, _warehouseItemService); // add roller Item roller = (coreIdentificationDetail.MaterialCase == Core.Constants.Constant.MaterialCase.New) ? _rollerBuilderService.GetRollerNewCore(rollerBuilder.Id) : _rollerBuilderService.GetRollerUsedCore(rollerBuilder.Id); WarehouseItem warehouseRoller = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, roller.Id); StockMutation stockMutationRoller = _stockMutationService.CreateStockMutationForRecoveryOrder(recoveryOrderDetail, warehouseRoller, CaseAdditionRoller); _stockMutationService.StockMutateObject(stockMutationRoller, _itemService, _barringService, _warehouseItemService); // deduce accessories IList <RecoveryAccessoryDetail> recoveryAccessoryDetails = _recoveryAccessoryDetailService.GetObjectsByRecoveryOrderDetailId(recoveryOrderDetail.Id); if (recoveryAccessoryDetails.Any()) { foreach (var recoveryAccessoryDetail in recoveryAccessoryDetails) { Item accessory = _itemService.GetObjectById(recoveryAccessoryDetail.ItemId); WarehouseItem warehouseAccessory = _warehouseItemService.FindOrCreateObject(recoveryOrder.WarehouseId, accessory.Id); StockMutation stockMutationAccessory = _stockMutationService.CreateStockMutationForRecoveryAccessory(recoveryAccessoryDetail, warehouseAccessory); _stockMutationService.StockMutateObject(stockMutationAccessory, _itemService, _barringService, _warehouseItemService); } } } return(recoveryOrderDetail); }
public dynamic GetList(string _search, long nd, int rows, int?page, string sidx, string sord, string filters = "") { // Construct where statement string strWhere = GeneralFunction.ConstructWhere(filters); // Get Data var query = _rollerBuilderService.GetAll().Where(d => d.IsDeleted == false); var list = query as IEnumerable <RollerBuilder>; var pageIndex = Convert.ToInt32(page) - 1; var pageSize = rows; var totalRecords = query.Count(); var totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize); // default last page if (totalPages > 0) { if (!page.HasValue) { pageIndex = totalPages - 1; page = totalPages; } } list = list.Skip(pageIndex * pageSize).Take(pageSize); return(Json(new { total = totalPages, page = page, records = totalRecords, rows = ( from model in list select new { id = model.Id, cell = new object[] { model.Id, model.Name, model.Category, model.UoMId, _uomService.GetObjectById(model.UoMId).Name, model.BaseSku, model.SkuRollerUsedCore, model.SkuRollerNewCore, model.MachineId, _machineService.GetObjectById(model.MachineId).Name, model.RollerTypeId, _rollerTypeService.GetObjectById(model.RollerTypeId).Name, model.CompoundId, _itemTypeService.GetObjectById(model.CompoundId).Name, model.CoreBuilderId, _coreBuilderService.GetObjectById(model.CoreBuilderId).Name, model.RD, model.CD, model.RL, model.WL, model.TL, _itemService.GetObjectById(model.RollerUsedCoreItemId).Quantity, _itemService.GetObjectById(model.RollerNewCoreItemId).Quantity, model.CreatedAt, model.UpdatedAt, } }).ToArray() }, JsonRequestBehavior.AllowGet)); }