public JsonResult _SubmitPalleteSerials(List <string> serialList, int?pid, int?orderId, string DeliveryNo, int OrderDetailID, int?type)
        {
            int warehouseId = caCurrent.CurrentWarehouse().WarehouseId;

            GoodsReturnRequestSync goodsReturnRequestSync = new GoodsReturnRequestSync();

            List <PalleTrackingProcess> palleTrackingProcessList = new List <PalleTrackingProcess>();

            foreach (var pallet in serialList)
            {
                PalleTrackingProcess palleTrackingProcess = new PalleTrackingProcess();
                decimal quantity    = 0;
                var     palletdData = pallet.Split(new string[] { "#+#", "#+#" }, StringSplitOptions.RemoveEmptyEntries);
                if (palletdData.Length >= 2)
                {
                    int PalletTrackingId = 0;

                    if (!string.IsNullOrEmpty(palletdData[0]))
                    {
                        PalletTrackingId = int.Parse(palletdData[0]);
                        palleTrackingProcess.PalletTrackingId = PalletTrackingId;
                    }
                    if (!string.IsNullOrEmpty(palletdData[1]))
                    {
                        quantity = decimal.Parse(palletdData[1]);
                        palleTrackingProcess.ProcessedQuantity = quantity;
                    }
                }

                palleTrackingProcessList.Add(palleTrackingProcess);
            }

            goodsReturnRequestSync.PalleTrackingProcess = palleTrackingProcessList;
            goodsReturnRequestSync.ProductId            = pid ?? 0;
            goodsReturnRequestSync.OrderId                  = orderId ?? 0;
            goodsReturnRequestSync.deliveryNumber           = DeliveryNo;
            goodsReturnRequestSync.OrderDetailID            = OrderDetailID;
            goodsReturnRequestSync.InventoryTransactionType = type;
            goodsReturnRequestSync.tenantId                 = CurrentTenantId;
            goodsReturnRequestSync.warehouseId              = warehouseId;
            goodsReturnRequestSync.userId = CurrentUserId;

            int result = OrderService.ProcessPalletTrackingSerial(goodsReturnRequestSync);


            return(Json(result < 0 ? false : true, JsonRequestBehavior.AllowGet));
        }
        public JsonResult _ReturnNon_SerProduct(int?order, int product, int quantity, int type, string groupToken = null, int?locationid = null, int?lineId = null, string deliveryNumber = null)
        {
            string orderNumber = "";

            if (order.HasValue)
            {
                GoodsReturnRequestSync goodsReturnRequestSync = new GoodsReturnRequestSync {
                    OrderId   = order ?? 0,
                    ProductId = product,
                    Quantity  = quantity,
                    InventoryTransactionType = type,
                    deliveryNumber           = deliveryNumber,
                    LocationId  = locationid ?? 0,
                    tenantId    = CurrentTenantId,
                    warehouseId = CurrentWarehouseId,
                    userId      = CurrentUserId
                };
                Inventory.StockTransaction(goodsReturnRequestSync, groupToken);
            }
            else
            {
                orderNumber = GenerateNextOrderNumber((InventoryTransactionTypeEnum)type);
                GoodsReturnRequestSync goodsReturnRequestSync = new GoodsReturnRequestSync
                {
                    OrderId   = order ?? 0,
                    ProductId = product,
                    Quantity  = quantity,
                    InventoryTransactionType = type,
                    LocationId     = locationid ?? 0,
                    tenantId       = CurrentTenantId,
                    warehouseId    = CurrentWarehouseId,
                    OrderDetailID  = lineId,
                    deliveryNumber = deliveryNumber,
                    OrderNumber    = orderNumber,
                    userId         = CurrentUserId
                };

                Inventory.StockTransaction(goodsReturnRequestSync, groupToken);
            }
            if (type == (int)InventoryTransactionTypeEnum.Returns || type == (int)InventoryTransactionTypeEnum.Wastage || type == (int)InventoryTransactionTypeEnum.WastedReturn)
            {
                return(Json(new { orderid = order ?? 0, productId = product, orderNumber = orderNumber, groupToken = groupToken }, JsonRequestBehavior.AllowGet));
            }
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
        public JsonResult _SubmitPalleteSerials(List <string> serialList, int?pid, int?orderId, int?type, int?palletTrackingId, string groupToken, string deliveryNumber = null)
        {
            var _inventoryTransactionsService = DependencyResolver.Current.GetService <IOrderService>();
            int warehouseId = caCurrent.CurrentWarehouse().WarehouseId;
            List <PalleTrackingProcess> palleTrackingProcessList = new List <PalleTrackingProcess>();

            ViewBag.QuantityEnabled = true;
            if (orderId.HasValue)
            {
                foreach (var pallet in serialList)
                {
                    PalleTrackingProcess palleTrackingProcess = new PalleTrackingProcess();
                    decimal quantity    = 0;
                    var     palletdData = pallet.Split(new string[] { "#+#", "#+#" }, StringSplitOptions.RemoveEmptyEntries);
                    if (palletdData.Length >= 2)
                    {
                        int PalletTrackingId = 0;

                        if (!string.IsNullOrEmpty(palletdData[0]))
                        {
                            PalletTrackingId = int.Parse(palletdData[0]);
                            palleTrackingProcess.PalletTrackingId = PalletTrackingId;
                        }
                        if (!string.IsNullOrEmpty(palletdData[1]))
                        {
                            quantity = decimal.Parse(palletdData[1]);
                            palleTrackingProcess.ProcessedQuantity = quantity;
                        }
                    }

                    palleTrackingProcessList.Add(palleTrackingProcess);
                }
                GoodsReturnRequestSync goodsReturnRequestSync = new GoodsReturnRequestSync
                {
                    PalleTrackingProcess = palleTrackingProcessList,
                    ProductId            = pid ?? 0,
                    OrderId                  = orderId ?? 0,
                    PalletTrackingId         = palletTrackingId,
                    InventoryTransactionType = type,
                    tenantId                 = CurrentTenantId,
                    warehouseId              = warehouseId,
                    userId         = CurrentUserId,
                    deliveryNumber = deliveryNumber
                };
                _purchaseOrderService.ProcessPalletTrackingSerial(goodsReturnRequestSync, groupToken, true);
                return(Json(new { orderid = orderId ?? 0, productId = pid ?? 0, orderNumber = "", groupToken = groupToken }, JsonRequestBehavior.AllowGet));
            }
            else if (serialList == null && type == (int)InventoryTransactionTypeEnum.AdjustmentIn)
            {
                _inventoryTransactionsService.AddGoodsReturnPallet(serialList, "", pid ?? 0, type ?? 0, 0, orderId, CurrentTenantId, CurrentWarehouseId, CurrentUserId, palletTrackigId: palletTrackingId ?? 0);
            }

            else
            {
                if (serialList != null)
                {
                    string orderNumber = GenerateNextOrderNumber((InventoryTransactionTypeEnum)type);
                    if ((!orderId.HasValue && type == (int)InventoryTransactionTypeEnum.Wastage) || type == (int)InventoryTransactionTypeEnum.AdjustmentIn || type == (int)InventoryTransactionTypeEnum.AdjustmentOut)
                    {
                        foreach (var pallet in serialList)
                        {
                            PalleTrackingProcess palleTrackingProcess = new PalleTrackingProcess();
                            decimal quantity    = 0;
                            var     palletdData = pallet.Split(new string[] { "#+#", "#+#" }, StringSplitOptions.RemoveEmptyEntries);
                            if (palletdData.Length >= 2)
                            {
                                int PalletTrackingId = 0;

                                if (!string.IsNullOrEmpty(palletdData[0]))
                                {
                                    PalletTrackingId = int.Parse(palletdData[0]);
                                    palleTrackingProcess.PalletTrackingId = PalletTrackingId;
                                }
                                if (!string.IsNullOrEmpty(palletdData[1]))
                                {
                                    quantity = decimal.Parse(palletdData[1]);
                                    palleTrackingProcess.ProcessedQuantity = quantity;
                                }
                            }

                            palleTrackingProcessList.Add(palleTrackingProcess);
                        }
                        GoodsReturnRequestSync goodsReturnRequestSync = new GoodsReturnRequestSync
                        {
                            PalleTrackingProcess = palleTrackingProcessList,
                            ProductId            = pid ?? 0,
                            OrderId                  = orderId ?? 0,
                            PalletTrackingId         = palletTrackingId,
                            InventoryTransactionType = type,
                            tenantId                 = CurrentTenantId,
                            warehouseId              = warehouseId,
                            OrderNumber              = orderNumber,
                            userId         = CurrentUserId,
                            deliveryNumber = deliveryNumber
                        };
                        int result = _purchaseOrderService.ProcessPalletTrackingSerial(goodsReturnRequestSync, groupToken, true);
                        if (result > 0)
                        {
                            return(Json(new { orderid = orderId ?? 0, productId = pid ?? 0, orderNumber = orderNumber, groupToken = groupToken }, JsonRequestBehavior.AllowGet));
                        }
                    }

                    else
                    {
                        foreach (var pallet in serialList)
                        {
                            PalleTrackingProcess palleTrackingProcess = new PalleTrackingProcess();
                            decimal quantity    = 0;
                            var     palletdData = pallet.Split(new string[] { "#+#", "#+#" }, StringSplitOptions.RemoveEmptyEntries);
                            if (palletdData.Length >= 2)
                            {
                                int PalletTrackingId = 0;

                                if (!string.IsNullOrEmpty(palletdData[0]))
                                {
                                    PalletTrackingId = int.Parse(palletdData[0]);
                                    palleTrackingProcess.PalletTrackingId = PalletTrackingId;
                                }
                                if (!string.IsNullOrEmpty(palletdData[1]))
                                {
                                    quantity = decimal.Parse(palletdData[1]);
                                    palleTrackingProcess.ProcessedQuantity = quantity;
                                }
                            }

                            palleTrackingProcessList.Add(palleTrackingProcess);
                        }

                        GoodsReturnRequestSync goodsReturnRequestSync = new GoodsReturnRequestSync
                        {
                            PalleTrackingProcess = palleTrackingProcessList,
                            ProductId            = pid ?? 0,
                            OrderId                  = orderId ?? 0,
                            PalletTrackingId         = palletTrackingId,
                            InventoryTransactionType = type,
                            tenantId                 = CurrentTenantId,
                            warehouseId              = warehouseId,
                            OrderNumber              = orderNumber,
                            userId         = CurrentUserId,
                            deliveryNumber = deliveryNumber
                        };

                        _purchaseOrderService.ProcessPalletTrackingSerial(goodsReturnRequestSync, groupToken, true);
                    }

                    return(Json(new { orderid = orderId ?? 0, productId = pid ?? 0, orderNumber = orderNumber, groupToken = groupToken }, JsonRequestBehavior.AllowGet));
                }
            }

            return(Json(true, JsonRequestBehavior.AllowGet));
        }
 public int ProcessPalletTrackingSerial(GoodsReturnRequestSync serials, string groupToken = null, bool process = false)
 {
     return(PurchaseOrderService.ProcessPalletTrackingSerial(serials, groupToken, process));
 }
Exemplo n.º 5
0
        public IHttpActionResult GoodsReturn(GoodsReturnRequestSync model)
        {
            var terminal = TerminalServices.GetTerminalBySerial(model.SerialNo);

            if (terminal == null)
            {
                return(Unauthorized());
            }

            var TransactionLog = TerminalServices.CheckTransactionLog(model.TransactionLogId, terminal.TerminalId);

            if (TransactionLog == true)
            {
                return(Conflict());
            }

            bool proccess = true;
            var  result   = AutoMapper.Mapper.Map(model, new GoodsReturnResponse());
            var  product  = _productService.GetProductMasterById(model.ProductId);

            if (product != null)
            {
                if (model.userId > 0)
                {
                    if (!product.Serialisable && !product.ProcessByPallet)
                    {
                        model.OrderId = Inventory.StockTransaction(model, null, null);
                    }
                    if (product.Serialisable)
                    {
                        if (model.ProductSerials != null || model.ProductSerials.Count > 0)
                        {
                            model.OrderId = Inventory.StockTransaction(model, null, null, null);
                        }
                        else
                        {
                            model.OrderId = -1;
                        }
                    }
                    if (product.ProcessByPallet)
                    {
                        if (model.InventoryTransactionType.HasValue && (model.InventoryTransactionType == (int)InventoryTransactionTypeEnum.PurchaseOrder || model.InventoryTransactionType == (int)InventoryTransactionTypeEnum.SalesOrder))
                        {
                            proccess = false;
                        }
                        model.OrderId = _purchaseOrderService.ProcessPalletTrackingSerial(model, null, proccess);
                    }

                    if (model.OrderId >= 0)
                    {
                        result.IsSuccess  = true;
                        result.CanProceed = true;
                        result.orderId    = model.OrderId;
                    }
                    else
                    {
                        result.IsSuccess      = false;
                        result.CanProceed     = false;
                        result.FailureMessage = "Serialisable products must have serials along with stock.";
                    }
                }
                else
                {
                    result.FailureMessage = "User Id must be greater than 0.";
                }
            }
            else
            {
                result.FailureMessage = "Product not found.";
            }


            return(Ok(result));
        }