Пример #1
0
        public Item SoftDeleteLegacyObject(Item item, IStockMutationService _stockMutationService, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService, IBarringService _barringService)
        {
            Barring barring = _barringService.GetObjectById(item.Id);

            if (barring != null)
            {
                _barringService.SoftDeleteObject(barring, _itemTypeService, _warehouseItemService);
                return(barring);
            }

            if (_validator.ValidDeleteLegacyObject(item, _stockMutationService, _itemTypeService, _warehouseItemService))
            {
                IList <WarehouseItem> allwarehouseitems = _warehouseItemService.GetObjectsByItemId(item.Id);
                foreach (var warehouseitem in allwarehouseitems)
                {
                    IWarehouseItemValidator warehouseItemValidator = _warehouseItemService.GetValidator();
                    if (!warehouseItemValidator.ValidDeleteObject(warehouseitem))
                    {
                        item.Errors.Add("Generic", "Tidak bisa menghapus item yang berhubungan dengan warehouse");
                        return(item);
                    }
                }
                foreach (var warehouseitem in allwarehouseitems)
                {
                    _warehouseItemService.SoftDeleteObject(warehouseitem);
                }
                _repository.SoftDeleteObject(item);
            }
            return(item);
        }
Пример #2
0
        public Item SoftDeleteLegacyObject(Item item, IStockMutationService _stockMutationService, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService, IBarringService _barringService, IPurchaseOrderDetailService _purchaseOrderDetailService, IStockAdjustmentDetailService _stockAdjustmentDetailService, ISalesOrderDetailService _salesOrderDetailService, IPriceMutationService _priceMutationService)
        {
            Barring barring = _barringService.GetObjectById(item.Id);

            if (barring != null)
            {
                _barringService.SoftDeleteObject(barring, _itemTypeService, _warehouseItemService, _priceMutationService);
                return(barring);
            }

            if (_validator.ValidDeleteLegacyObject(item, _stockMutationService, _itemTypeService, _warehouseItemService, _purchaseOrderDetailService, _stockAdjustmentDetailService, _salesOrderDetailService))
            {
                IList <WarehouseItem> allwarehouseitems = _warehouseItemService.GetObjectsByItemId(item.Id);
                foreach (var warehouseitem in allwarehouseitems)
                {
                    IWarehouseItemValidator warehouseItemValidator = _warehouseItemService.GetValidator();
                    if (!warehouseItemValidator.ValidDeleteObject(warehouseitem))
                    {
                        item.Errors.Add("Generic", "Tidak bisa menghapus item yang berhubungan dengan warehouse");
                        return(item);
                    }
                }
                foreach (var warehouseitem in allwarehouseitems)
                {
                    _warehouseItemService.SoftDeleteObject(warehouseitem);
                }
                _repository.SoftDeleteObject(item);
                IList <PriceMutation> priceMutations = _priceMutationService.GetActiveObjectsByItemId(item.Id);
                foreach (var priceMutation in priceMutations)
                {
                    _priceMutationService.DeactivateObject(priceMutation, item.DeletedAt);
                }
            }
            return(item);
        }
Пример #3
0
        public Item UpdateLegacyObject(Item item, IUoMService _uomService, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService,
                                       IBarringService _barringService, IContactService _contactService, IMachineService _machineService,
                                       IPriceMutationService _priceMutationService, IContactGroupService _contactGroupService)
        {
            Barring barring = _barringService.GetObjectById(item.Id);

            if (barring != null)
            {
                _barringService.UpdateObject(barring, _barringService, _uomService, this, _itemTypeService,
                                             _contactService, _machineService, _warehouseItemService, _warehouseService,
                                             _contactGroupService, _priceMutationService);
                return(barring);
            }

            if (_validator.ValidUpdateLegacyObject(item, _uomService, this, _itemTypeService))
            {
                ContactGroup  contactGroup     = _contactGroupService.GetObjectByIsLegacy(true);
                Item          olditem          = _repository.GetObjectById(item.Id); // Note: olditem might be pointing to the same memory with item (share the same contents)
                PriceMutation oldpriceMutation = _priceMutationService.GetObjectById(item.PriceMutationId);
                if (olditem.SellingPrice != item.SellingPrice)
                {
                    DateTime      priceMutationTimeStamp = DateTime.Now;
                    PriceMutation priceMutation          = _priceMutationService.CreateObject(item, /*contactGroup,*/ priceMutationTimeStamp);
                    item.PriceMutationId = priceMutation.Id;
                    _priceMutationService.DeactivateObject(oldpriceMutation, priceMutationTimeStamp);
                }
                item = _repository.UpdateObject(item);
            }
            return(item);
        }
Пример #4
0
        public BarringOrder VQuantityIsInStock(BarringOrder barringOrder, IBarringOrderDetailService _barringOrderDetailService, IBarringService _barringService,
                                               IItemService _itemService, IWarehouseItemService _warehouseItemService)
        {
            IList <BarringOrderDetail> details = _barringOrderDetailService.GetObjectsByBarringOrderId(barringOrder.Id);

            // itemId contains Id of the blanket, leftbar, and rightbar
            IDictionary <int, int> ValuePairItemIdQuantity = new Dictionary <int, int>();

            foreach (var detail in details)
            {
                Barring barring = _barringService.GetObjectById(detail.BarringId);
                // blanket
                if (ValuePairItemIdQuantity.ContainsKey(barring.BlanketItemId))
                {
                    ValuePairItemIdQuantity[barring.BlanketItemId] += 1;
                }
                else
                {
                    ValuePairItemIdQuantity.Add(barring.BlanketItemId, 1);
                }

                // leftbar
                if (barring.LeftBarItemId != null)
                {
                    if (ValuePairItemIdQuantity.ContainsKey((int)barring.LeftBarItemId))
                    {
                        ValuePairItemIdQuantity[(int)barring.LeftBarItemId] += 1;
                    }
                    else
                    {
                        ValuePairItemIdQuantity.Add((int)barring.LeftBarItemId, 1);
                    }
                }

                // rightbar
                if (barring.RightBarItemId != null)
                {
                    if (ValuePairItemIdQuantity.ContainsKey((int)barring.RightBarItemId))
                    {
                        ValuePairItemIdQuantity[(int)barring.RightBarItemId] += 1;
                    }
                    else
                    {
                        ValuePairItemIdQuantity.Add((int)barring.RightBarItemId, 1);
                    }
                }
            }

            foreach (var ValuePair in ValuePairItemIdQuantity)
            {
                WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, ValuePair.Key);
                if (warehouseItem.Quantity < ValuePair.Value)
                {
                    barringOrder.Errors.Add("Generic", "Stock quantity BoM untuk barring tidak boleh kurang dari jumlah di dalam barring order");
                    return(barringOrder);
                }
            }
            return(barringOrder);
        }
Пример #5
0
        public dynamic GetInfo(int Id)
        {
            Barring model = new Barring();

            try
            {
                model = _barringService.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.ItemTypeId,
                ItemType = _itemTypeService.GetObjectById(model.ItemTypeId).Name,
                model.UoMId,
                UoM = _uomService.GetObjectById(model.UoMId).Name,
                model.Sku,
                model.RollNo,
                model.ContactId,
                Contact = _contactService.GetObjectById(model.ContactId).Name,
                model.MachineId,
                Machine = _machineService.GetObjectById(model.MachineId).Name,
                model.BlanketItemId,
                BlanketItem = _itemService.GetObjectById(model.BlanketItemId).Name,
                LeftBarItemId = model.LeftBarItemId.HasValue ? model.LeftBarItemId.Value : model.LeftBarItemId = null,
                LeftBarItem = model.LeftBarItemId.HasValue ? _itemTypeService.GetObjectById(model.LeftBarItemId.Value).Name : "",
                RightBarItemId = model.RightBarItemId.HasValue ? model.RightBarItemId.Value : model.RightBarItemId = null,
                RightBarItem = model.RightBarItemId.HasValue ? _itemTypeService.GetObjectById(model.RightBarItemId.Value).Name : "",
                model.AC,
                model.AR,
                model.thickness,
                model.KS,
                model.Quantity,
                model.CreatedAt,
                model.UpdatedAt,
                model.Errors
            }, JsonRequestBehavior.AllowGet));
        }
        public BarringOrderDetail VHasBarring(BarringOrderDetail barringOrderDetail, IBarringService _barringService)
        {
            Barring barring = _barringService.GetObjectById(barringOrderDetail.BarringId);

            if (barring == null)
            {
                barringOrderDetail.Errors.Add("BarringId", "Tidak terasosiasi dengan Barring");
            }
            return(barringOrderDetail);
        }
Пример #7
0
        public BarringOrderDetail UnfinishObject(BarringOrderDetail barringOrderDetail, IBarringOrderService _barringOrderService, IStockMutationService _stockMutationService,
                                                 IBarringService _barringService, IItemService _itemService, IWarehouseItemService _warehouseItemService)
        {
            if (_validator.ValidUnfinishObject(barringOrderDetail, _barringOrderService))
            {
                _repository.UnfinishObject(barringOrderDetail);
                // deduce barring order quantity final
                BarringOrder barringOrder = _barringOrderService.GetObjectById(barringOrderDetail.BarringOrderId);
                barringOrder.QuantityFinal -= 1;
                _barringOrderService.AdjustQuantity(barringOrder);

                // reverse stock mutation
                Barring               barring          = _barringService.GetObjectById(barringOrderDetail.BarringId);
                WarehouseItem         warehouseBarring = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, barring.Id);
                IList <StockMutation> stockMutations   = _stockMutationService.SoftDeleteStockMutationForBarringOrder(barringOrderDetail, warehouseBarring);
                foreach (var stockMutation in stockMutations)
                {
                    _stockMutationService.ReverseStockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService);
                }

                if (barringOrderDetail.IsBarRequired)
                {
                    Item leftbar  = (barringOrderDetail.HasLeftBar && barring.LeftBarItemId != null) ? _itemService.GetObjectById((int)barring.LeftBarItemId) : null;
                    Item rightbar = (barringOrderDetail.HasRightBar && barring.RightBarItemId != null) ? _itemService.GetObjectById((int)barring.RightBarItemId) : null;
                    if (leftbar != null)
                    {
                        WarehouseItem         warehouseLeftBar      = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, leftbar.Id);
                        IList <StockMutation> stockMutationLeftBars = _stockMutationService.SoftDeleteStockMutationForBarringOrder(barringOrderDetail, warehouseLeftBar);
                        foreach (var stockMutationLeftBar in stockMutationLeftBars)
                        {
                            _stockMutationService.ReverseStockMutateObject(stockMutationLeftBar, _itemService, _barringService, _warehouseItemService);
                        }
                    }
                    if (rightbar != null)
                    {
                        WarehouseItem         warehouseRightBar      = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, rightbar.Id);
                        IList <StockMutation> stockMutationRightBars = _stockMutationService.SoftDeleteStockMutationForBarringOrder(barringOrderDetail, warehouseRightBar);
                        foreach (var stockMutationRightBar in stockMutationRightBars)
                        {
                            _stockMutationService.ReverseStockMutateObject(stockMutationRightBar, _itemService, _barringService, _warehouseItemService);
                        }
                    }
                }

                WarehouseItem         warehouseBlanket      = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, barring.BlanketItemId);
                IList <StockMutation> stockMutationBlankets = _stockMutationService.SoftDeleteStockMutationForBarringOrder(barringOrderDetail, warehouseBlanket);
                foreach (var stockMutationBlanket in stockMutationBlankets)
                {
                    _stockMutationService.ReverseStockMutateObject(stockMutationBlanket, _itemService, _barringService, _warehouseItemService);
                }
            }
            return(barringOrderDetail);
        }
Пример #8
0
        public BarringOrderDetail FinishObject(BarringOrderDetail barringOrderDetail, DateTime FinishedDate, IBarringOrderService _barringOrderService, IStockMutationService _stockMutationService,
                                               IBarringService _barringService, IItemService _itemService, IWarehouseItemService _warehouseItemService)
        {
            barringOrderDetail.FinishedDate = FinishedDate;
            if (_validator.ValidFinishObject(barringOrderDetail, _barringOrderService))
            {
                _repository.FinishObject(barringOrderDetail);

                // add barring order quantity final
                // if valid, complete barring order = true
                BarringOrder barringOrder = _barringOrderService.GetObjectById(barringOrderDetail.BarringOrderId);
                barringOrder.QuantityFinal += 1;
                _barringOrderService.AdjustQuantity(barringOrder);
                if (_barringOrderService.GetValidator().ValidCompleteObject(barringOrder, this))
                {
                    _barringOrderService.CompleteObject(barringOrder, this, _barringService, _itemService, _warehouseItemService);
                }

                bool CaseAdditionElse    = false;
                bool CaseAdditionBarring = true;

                // add barring quantity
                Barring       barring          = _barringService.GetObjectById(barringOrderDetail.BarringId);
                WarehouseItem warehouseBarring = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, barring.Id);
                StockMutation stockMutation    = _stockMutationService.CreateStockMutationForBarringOrder(barringOrderDetail, warehouseBarring, CaseAdditionBarring);
                _stockMutationService.StockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService);

                // deduce bars quantity
                if (barringOrderDetail.IsBarRequired)
                {
                    Item leftbar  = (barringOrderDetail.HasLeftBar && barring.LeftBarItemId != null) ? _itemService.GetObjectById((int)barring.LeftBarItemId) : null;
                    Item rightbar = (barringOrderDetail.HasRightBar && barring.RightBarItemId != null) ? _itemService.GetObjectById((int)barring.RightBarItemId) : null;
                    if (leftbar != null)
                    {
                        WarehouseItem warehouseLeftBar     = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, leftbar.Id);
                        StockMutation stockMutationLeftBar = _stockMutationService.CreateStockMutationForBarringOrder(barringOrderDetail, warehouseLeftBar, CaseAdditionElse);
                        _stockMutationService.StockMutateObject(stockMutationLeftBar, _itemService, _barringService, _warehouseItemService);
                    }
                    if (rightbar != null)
                    {
                        WarehouseItem warehouseRightBar     = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, rightbar.Id);
                        StockMutation stockMutationRightBar = _stockMutationService.CreateStockMutationForBarringOrder(barringOrderDetail, warehouseRightBar, CaseAdditionElse);
                        _stockMutationService.StockMutateObject(stockMutationRightBar, _itemService, _barringService, _warehouseItemService);
                    }
                }

                // deduce blanket quantity
                WarehouseItem warehouseBlanket     = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, barring.BlanketItemId);
                StockMutation stockMutationBlanket = _stockMutationService.CreateStockMutationForBarringOrder(barringOrderDetail, warehouseBlanket, CaseAdditionElse);
                _stockMutationService.StockMutateObject(stockMutationBlanket, _itemService, _barringService, _warehouseItemService);
            }
            return(barringOrderDetail);
        }
Пример #9
0
        public void StockMutateObject(StockMutation stockMutation, IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService)
        {
            // decimal stockAdjustmentDetailPrice = (stockMutation.Status == Constant.MutationStatus.Addition) ? stockAdjustmentDetail.Price : ((-1) * stockAdjustmentDetail.Price);
            // item.AvgCost = _barringService.CalculateAvgCost(item, stockAdjustmentDetail.Quantity, stockAdjustmentDetailPrice);
            // barring.AvgCost = _barringService.CalculateAvgCost(barring, stockAdjustmentDetail.Quantity, stockAdjustmentDetailPrice);

            int           Quantity      = (stockMutation.Status == Constant.MutationStatus.Addition) ? stockMutation.Quantity : (-1) * stockMutation.Quantity;
            WarehouseItem warehouseItem = _warehouseItemService.GetObjectById(stockMutation.WarehouseItemId);
            Item          item          = _itemService.GetObjectById(stockMutation.ItemId);
            Barring       barring       = _barringService.GetObjectById(stockMutation.ItemId);

            if (warehouseItem != null)
            {
                if (stockMutation.ItemCase == Constant.ItemCase.Ready)
                {
                    _warehouseItemService.AdjustQuantity(warehouseItem, Quantity);
                }
            }

            if (barring == null)
            {
                // itemService in action
                if (stockMutation.ItemCase == Constant.ItemCase.Ready)
                {
                    _itemService.AdjustQuantity(item, Quantity);
                }
                else if (stockMutation.ItemCase == Constant.ItemCase.PendingDelivery)
                {
                    _itemService.AdjustPendingDelivery(item, Quantity);
                }
                else if (stockMutation.ItemCase == Constant.ItemCase.PendingReceival)
                {
                    _itemService.AdjustPendingReceival(item, Quantity);
                }
            }
            else
            {
                // barringService in action
                if (stockMutation.ItemCase == Constant.ItemCase.Ready)
                {
                    _barringService.AdjustQuantity(barring, Quantity);
                }
                else if (stockMutation.ItemCase == Constant.ItemCase.PendingDelivery)
                {
                    _barringService.AdjustPendingDelivery(barring, Quantity);
                }
                else if (stockMutation.ItemCase == Constant.ItemCase.PendingReceival)
                {
                    _barringService.AdjustPendingReceival(barring, Quantity);
                }
            }
        }
Пример #10
0
        public Item UpdateLegacyObject(Item item, IUoMService _uomService, IItemTypeService _itemTypeService, IWarehouseItemService _warehouseItemService, IWarehouseService _warehouseService,
                                       IBarringService _barringService, IContactService _contactService, IMachineService _machineService)
        {
            Barring barring = _barringService.GetObjectById(item.Id);

            if (barring != null)
            {
                _barringService.UpdateObject(barring, _barringService, _uomService, this, _itemTypeService,
                                             _contactService, _machineService, _warehouseItemService, _warehouseService);
                return(barring);
            }

            return(item = _validator.ValidUpdateLegacyObject(item, _uomService, this, _itemTypeService) ? _repository.UpdateObject(item) : item);
        }
Пример #11
0
 public Barring GetBarring(BarringOrderDetail barringOrderDetail, IBarringService _barringService)
 {
     return(_barringService.GetObjectById(barringOrderDetail.BarringId));
 }
Пример #12
0
        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 = _barringOrderDetailService.GetObjectsByBarringOrderId(id).Where(d => d.IsDeleted == false);

            var list = query as IEnumerable <BarringOrderDetail>;

            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.BarringOrderId,
                        model.BarringId,
                        _barringService.GetObjectById(model.BarringId).Name,
                        model.IsBarRequired,
                        model.HasLeftBar,
                        model.HasLeftBar == false ? "" : _itemService.GetObjectById(_barringService.GetObjectById(model.BarringId).LeftBarItemId.Value).Id.ToString(),
                        model.HasLeftBar == false ? "" : _itemService.GetObjectById(_barringService.GetObjectById(model.BarringId).LeftBarItemId.Value).Name.ToString(),
                        model.HasRightBar,
                        model.HasRightBar == false ? "" : _itemService.GetObjectById(_barringService.GetObjectById(model.BarringId).RightBarItemId.Value).Id.ToString(),
                        model.HasRightBar == false ? "" : _itemService.GetObjectById(_barringService.GetObjectById(model.BarringId).RightBarItemId.Value).Name.ToString(),
                        model.IsCut,
                        model.IsSideSealed,
                        model.IsBarPrepared,
                        model.IsAdhesiveTapeApplied,
                        model.IsBarMounted,
                        model.IsBarHeatPressed,
                        model.IsBarPullOffTested,
                        model.IsQCAndMarked,
                        model.IsPackaged,
                        model.IsRejected,
                        model.RejectedDate,
                        model.IsFinished,
                        model.FinishedDate
                    }
                }).ToArray()
            }, JsonRequestBehavior.AllowGet));
        }