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)); }
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)); }