public dynamic GetInfo(int Id)
        {
            WarehouseMutationOrder model = new WarehouseMutationOrder();

            try
            {
                model = _warehouseMutationOrderService.GetObjectById(Id);
            }
            catch (Exception ex)
            {
                LOG.Error("GetInfo", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Id,
                model.Code,
                model.WarehouseFromId,
                WarehouseFrom = _warehouseService.GetObjectById(model.WarehouseFromId).Name,
                model.WarehouseToId,
                WarehouseTo = _warehouseService.GetObjectById(model.WarehouseToId).Name,
                model.MutationDate,
                model.Errors
            }, JsonRequestBehavior.AllowGet));
        }
        public WarehouseMutationOrderDetail VWarehouseMutationOrderHasBeenConfirmed(WarehouseMutationOrderDetail warehouseMutationOrderDetail, IWarehouseMutationOrderService _warehouseMutationOrderService)
        {
            WarehouseMutationOrder warehouseMutationOrder = _warehouseMutationOrderService.GetObjectById(warehouseMutationOrderDetail.WarehouseMutationOrderId);

            if (!warehouseMutationOrder.IsConfirmed)
            {
                warehouseMutationOrderDetail.Errors.Add("Generic", "WarehouseMutationOrder harus sudah dikonfirmasi");
            }
            return(warehouseMutationOrderDetail);
        }
        public WarehouseMutationOrderDetail VHasWarehouseMutationOrder(WarehouseMutationOrderDetail warehouseMutationOrderDetail, IWarehouseMutationOrderService _warehouseMutationOrderService)
        {
            WarehouseMutationOrder warehouseMutationOrder = _warehouseMutationOrderService.GetObjectById(warehouseMutationOrderDetail.WarehouseMutationOrderId);

            if (warehouseMutationOrder == null)
            {
                warehouseMutationOrderDetail.Errors.Add("Generic", "Tidak terasosiasi dengan Stock Adjustment");
            }
            return(warehouseMutationOrderDetail);
        }
        public WarehouseMutationOrderDetail VHasWarehouseItemTo(WarehouseMutationOrderDetail warehouseMutationOrderDetail, IWarehouseMutationOrderService _warehouseMutationOrderService, IWarehouseItemService _warehouseItemService)
        {
            WarehouseMutationOrder warehouseMutationOrder = _warehouseMutationOrderService.GetObjectById(warehouseMutationOrderDetail.WarehouseMutationOrderId);
            WarehouseItem          warehouseItemTo        = _warehouseItemService.FindOrCreateObject(warehouseMutationOrder.WarehouseToId, warehouseMutationOrderDetail.ItemId);

            if (warehouseItemTo == null)
            {
                warehouseMutationOrderDetail.Errors.Add("Generic", "Tidak terasosiasi dengan item dari warehouse yang dituju");
            }
            return(warehouseMutationOrderDetail);
        }
Example #5
0
        public IList <StockMutation> CreateStockMutationForWarehouseMutationOrder(WarehouseMutationOrderDetail warehouseMutationOrderDetail, WarehouseItem warehouseItemFrom, WarehouseItem warehouseItemTo, IWarehouseMutationOrderService _warehouseMutationOrderService)
        {
            IList <StockMutation> stockMutations = new List <StockMutation>();

            StockMutation stockMutationFrom = new StockMutation();

            stockMutationFrom.ItemId                   = warehouseItemFrom.ItemId;
            stockMutationFrom.WarehouseId              = warehouseItemFrom.WarehouseId;
            stockMutationFrom.WarehouseItemId          = warehouseItemFrom.Id;
            stockMutationFrom.Quantity                 = warehouseMutationOrderDetail.Quantity;
            stockMutationFrom.SourceDocumentType       = Constant.SourceDocumentType.WarehouseMutationOrder;
            stockMutationFrom.SourceDocumentId         = warehouseMutationOrderDetail.WarehouseMutationOrderId;
            stockMutationFrom.SourceDocumentCode       = _warehouseMutationOrderService.GetObjectById(warehouseMutationOrderDetail.WarehouseMutationOrderId).Code;
            stockMutationFrom.SourceDocumentDetailType = Constant.SourceDocumentDetailType.WarehouseMutationOrderDetail;
            stockMutationFrom.SourceDocumentDetailId   = warehouseMutationOrderDetail.Id;
            stockMutationFrom.SourceDocumentDetailCode = warehouseMutationOrderDetail.Code;
            stockMutationFrom.ItemCase                 = Constant.ItemCase.Ready;
            stockMutationFrom.Status                   = Constant.MutationStatus.Deduction;
            stockMutationFrom = _repository.CreateObject(stockMutationFrom);

            StockMutation stockMutationTo = new StockMutation();

            stockMutationTo.ItemId                   = warehouseItemTo.ItemId;
            stockMutationTo.WarehouseId              = warehouseItemTo.WarehouseId;
            stockMutationTo.WarehouseItemId          = warehouseItemTo.Id;
            stockMutationTo.Quantity                 = warehouseMutationOrderDetail.Quantity;
            stockMutationTo.SourceDocumentType       = Constant.SourceDocumentType.WarehouseMutationOrder;
            stockMutationTo.SourceDocumentId         = warehouseMutationOrderDetail.WarehouseMutationOrderId;
            stockMutationTo.SourceDocumentCode       = _warehouseMutationOrderService.GetObjectById(warehouseMutationOrderDetail.WarehouseMutationOrderId).Code;
            stockMutationTo.SourceDocumentDetailType = Constant.SourceDocumentDetailType.WarehouseMutationOrderDetail;
            stockMutationTo.SourceDocumentDetailId   = warehouseMutationOrderDetail.Id;
            stockMutationTo.SourceDocumentDetailCode = warehouseMutationOrderDetail.Code;
            stockMutationTo.ItemCase                 = Constant.ItemCase.Ready;
            stockMutationTo.Status                   = Constant.MutationStatus.Addition;
            stockMutationTo = _repository.CreateObject(stockMutationTo);

            stockMutations.Add(stockMutationFrom);
            stockMutations.Add(stockMutationTo);
            return(stockMutations);
        }
        public WarehouseMutationOrderDetail VNonNegativeStockQuantity(WarehouseMutationOrderDetail warehouseMutationOrderDetail, IWarehouseMutationOrderService _warehouseMutationOrderService,
                                                                      IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService, bool CaseConfirmOrConfirm)
        {
            int Quantity = CaseConfirmOrConfirm ? warehouseMutationOrderDetail.Quantity : ((-1) * warehouseMutationOrderDetail.Quantity);
            WarehouseMutationOrder warehouseMutationOrder = _warehouseMutationOrderService.GetObjectById(warehouseMutationOrderDetail.WarehouseMutationOrderId);
            WarehouseItem          warehouseItemFrom      = _warehouseItemService.FindOrCreateObject(warehouseMutationOrder.WarehouseFromId, warehouseMutationOrderDetail.ItemId);

            if (warehouseItemFrom.Quantity + Quantity < 0)
            {
                warehouseMutationOrderDetail.Errors.Add("Quantity", "Stock barang tidak boleh menjadi kurang dari 0");
                return(warehouseMutationOrderDetail);
            }
            return(warehouseMutationOrderDetail);
        }
        public WarehouseMutationOrderDetail VNonNegativeStockQuantity(WarehouseMutationOrderDetail warehouseMutationOrderDetail, IWarehouseMutationOrderService _warehouseMutationOrderService,
                                                                      IItemService _itemService, /*IBarringService _barringService,*/ IWarehouseItemService _warehouseItemService, bool CaseConfirm)
        {
            WarehouseMutationOrder warehouseMutationOrder = _warehouseMutationOrderService.GetObjectById(warehouseMutationOrderDetail.WarehouseMutationOrderId);
            WarehouseItem          warehouseItemFrom      = _warehouseItemService.FindOrCreateObject(warehouseMutationOrder.WarehouseFromId, warehouseMutationOrderDetail.ItemId);
            WarehouseItem          warehouseItemTo        = _warehouseItemService.FindOrCreateObject(warehouseMutationOrder.WarehouseToId, warehouseMutationOrderDetail.ItemId);
            int Quantity = CaseConfirm ? warehouseItemFrom.Quantity : warehouseItemTo.Quantity;

            if (Quantity < warehouseMutationOrderDetail.Quantity)
            {
                warehouseMutationOrderDetail.Errors.Add("Quantity", "Stock barang tidak boleh kurang dari jumlah mutasi barang");
                return(warehouseMutationOrderDetail);
            }
            return(warehouseMutationOrderDetail);
        }
Example #8
0
        public WarehouseMutationOrderDetail UnconfirmObject(WarehouseMutationOrderDetail warehouseMutationOrderDetail, IWarehouseMutationOrderService _warehouseMutationOrderService,
                                                            IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService, IStockMutationService _stockMutationService)
        {
            if (_validator.ValidUnconfirmObject(warehouseMutationOrderDetail, _warehouseMutationOrderService, _itemService, _barringService, _warehouseItemService))
            {
                _repository.UnconfirmObject(warehouseMutationOrderDetail);

                // reverse mutate item in warehousefrom and warehouseto
                WarehouseMutationOrder warehouseMutationOrder = _warehouseMutationOrderService.GetObjectById(warehouseMutationOrderDetail.WarehouseMutationOrderId);
                WarehouseItem          warehouseItemFrom      = _warehouseItemService.FindOrCreateObject(warehouseMutationOrder.WarehouseFromId, warehouseMutationOrderDetail.ItemId);
                WarehouseItem          warehouseItemTo        = _warehouseItemService.FindOrCreateObject(warehouseMutationOrder.WarehouseToId, warehouseMutationOrderDetail.ItemId);

                IList <StockMutation> stockMutations = _stockMutationService.SoftDeleteStockMutationForWarehouseMutationOrder(warehouseMutationOrderDetail, warehouseItemFrom, warehouseItemTo);
                foreach (var stockMutation in stockMutations)
                {
                    _stockMutationService.ReverseStockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService);
                }
            }
            return(warehouseMutationOrderDetail);
        }
Example #9
0
        public WarehouseMutationOrderDetail ConfirmObject(WarehouseMutationOrderDetail warehouseMutationOrderDetail, DateTime ConfirmationDate, IWarehouseMutationOrderService _warehouseMutationOrderService,
                                                          IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService, IStockMutationService _stockMutationService)
        {
            warehouseMutationOrderDetail.ConfirmationDate = ConfirmationDate;
            if (_validator.ValidConfirmObject(warehouseMutationOrderDetail, _warehouseMutationOrderService, _itemService, _barringService, _warehouseItemService))
            {
                WarehouseMutationOrder warehouseMutationOrder = _warehouseMutationOrderService.GetObjectById(warehouseMutationOrderDetail.WarehouseMutationOrderId);

                _repository.ConfirmObject(warehouseMutationOrderDetail);

                // deduce warehouseFrom item
                // add warehouseTo item
                WarehouseItem warehouseItemFrom = _warehouseItemService.FindOrCreateObject(warehouseMutationOrder.WarehouseFromId, warehouseMutationOrderDetail.ItemId);
                WarehouseItem warehouseItemTo   = _warehouseItemService.FindOrCreateObject(warehouseMutationOrder.WarehouseToId, warehouseMutationOrderDetail.ItemId);

                IList <StockMutation> stockMutations = _stockMutationService.CreateStockMutationForWarehouseMutationOrder(warehouseMutationOrderDetail, warehouseItemFrom, warehouseItemTo);
                foreach (var stockMutation in stockMutations)
                {
                    _stockMutationService.StockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService);
                }
            }
            return(warehouseMutationOrderDetail);
        }