public object ExitScan(List <int> FulOrderIdList, int PalletId) { try { List <FulOrder> FulOrderList = new List <FulOrder>(); FulOrderList = (from fo in context.FulOrder where FulOrderIdList.Contains(fo.FulOrderId) && fo.PalletId == PalletId select fo).ToList(); if (FulOrderList.Count == 0) { return new { status = false, message = _iconfiguration["NO_FO_ON_PALLET"] } } ; /* Considerting all the FO are in Palletized status and updateing all at a time */ FulOrderStatus FulOrderStatusObj = (from fos in context.FulOrderStatus where fos.Name.ToUpper() == _iconfiguration["EXITSCAN"] select fos).FirstOrDefault(); Pallet PalletObj = (from p in context.Pallet where p.PalletId == PalletId select p).FirstOrDefault(); if (PalletObj == null) { return new { status = false, message = _iconfiguration["PALLETID_NOTFOUND"] } } ; PalletStatus palletStatusObj = (from ps in context.PalletStatus where ps.Name.ToUpper() == _iconfiguration["CLOSED"] select ps).FirstOrDefault(); foreach (FulOrder FulOrderObj in FulOrderList) { FulOrderObj.FulOrderStatusId = FulOrderStatusObj.FulOrderStatusId; } PalletObj.PalletStatusId = palletStatusObj.PalletStatusId; context.Pallet.Update(PalletObj); context.FulOrder.UpdateRange(FulOrderList); context.SaveChanges(); return(new { status = true, message = _iconfiguration["EXISSCAN_SUCCESS"] }); } catch (Exception Ex) { LogServiceObj.LogException(Ex); MailServiceObj.SendMail(Ex.Message ?? "", (Ex.InnerException != null) ? Ex.InnerException.Message : "", Ex.StackTrace ?? ""); return(new { status = false, message = _iconfiguration["ERROR_EXITSCAN"] }); } }
public object CreatePackage(int fulOrderId) { try { UpdateTrackingDTO response = new UpdateTrackingDTO(); FulOrder FulOrderObj = (from fo in context.FulOrder join fos in context.FulOrderStatus on fo.FulOrderStatusId equals fos.FulOrderStatusId where fo.FulOrderId == fulOrderId && fos.Name.ToUpper() == _iconfiguration["LABELCREATED"] select fo).FirstOrDefault(); if (FulOrderObj == null) { return new { status = false, message = _iconfiguration["FULORDER_NOT_LABELED"] } } ; FulOrderStatus FulOrderStatus = (from fos in context.FulOrderStatus where fos.Name.ToUpper() == _iconfiguration["PACKAGED"] select fos).FirstOrDefault(); Product productObj = (from fi in context.FulItem join p in context.Product on fi.ProductId equals p.ProductId where fi.FulOrderId == fulOrderId select p).FirstOrDefault(); ProductSKU productSKU = (from p in context.Product join ps in context.ProductSKU on p.ProductId equals ps.ProductId join pt in context.ProductSKUType on ps.SKUTypeId equals pt.ProductSKUTypeId where p.ProductId == productObj.ProductId && pt.Name.ToUpper() == _iconfiguration["SKU"] select ps).FirstOrDefault(); Shipment shipmentObj = (from s in context.Shipment where s.FulOrderId == fulOrderId select s).FirstOrDefault(); FulOrderObj.FulOrderStatusId = FulOrderStatus.FulOrderStatusId; context.FulOrder.Update(FulOrderObj); context.SaveChanges(); if (productObj != null && productSKU != null && shipmentObj != null) { response.fulOrderId = fulOrderId; response.fulOrderStatus = FulOrderStatus.Name; response.productName = productObj.Name; response.sku = productSKU.SKU; response.trackingNumber = shipmentObj.TrackingNumber.ToString(); } else if (productObj == null) { return(new { status = false, message = _iconfiguration["PRODUCTNOTFOUND"] }); } else if (productSKU == null) { return(new { status = false, message = _iconfiguration["PRODUCTSKUNOTFOUND"] }); } else if (shipmentObj == null) { return(new { status = false, message = _iconfiguration["SHIPMENTNOTFOUND"] }); } return(new { status = true, message = string.Format(_iconfiguration["PACKAGE_SUCCESS"], fulOrderId.ToString()), data = response }); } catch (Exception Ex) { LogServiceObj.LogException(Ex); MailServiceObj.SendMail(Ex.Message ?? "", (Ex.InnerException != null) ? Ex.InnerException.Message : "", Ex.StackTrace ?? ""); return(new { status = false, message = _iconfiguration["ERROR_PACKAGE"] }); } }
public Object PalletizeFulOrder(string trackingNumber, int palletId) { try { Guid TrackingNumber; if (!Guid.TryParse(trackingNumber, out TrackingNumber)) { return(new { status = false, message = _iconfiguration["INVALID_TRACKINGFORMAT"] }); } /*get FulOrder information based on given tracking number and palletId*/ Shipment shipmentObj = new Shipment(); shipmentObj = (from s in context.Shipment where s.TrackingNumber == TrackingNumber select s).FirstOrDefault(); if (shipmentObj == null) { return(new { status = false, message = _iconfiguration["TRACKINGNO_NOTFOUND"] }); } Pallet PalletObj = (from p in context.Pallet where p.PalletId == palletId select p).FirstOrDefault(); if (PalletObj == null) { return new { status = false, message = _iconfiguration["PALLETID_NOTFOUND"] } } ; int?CarrierServiceTypeId = (from cs in context.CarrierService where cs.CarrierServiceId == shipmentObj.CarrierServiceId && cs.CarrierId == shipmentObj.CarrierId select cs.CarrierServiceTypeId).FirstOrDefault(); if (PalletObj.CarrierId != shipmentObj.CarrierId || PalletObj.CarrierServiceTypeId != CarrierServiceTypeId) { return new { status = false, message = _iconfiguration["PALLET_SHIPMENT_CARRIER_NOT_MATCH"] } } ; if (shipmentObj.CarrierId == PalletObj.CarrierId && CarrierServiceTypeId != null && CarrierServiceTypeId == PalletObj.CarrierServiceTypeId) { FulOrder FulOrderObj = new FulOrder(); FulOrderObj = (from fo in context.FulOrder join fos in context.FulOrderStatus on fo.FulOrderStatusId equals fos.FulOrderStatusId where fo.FulOrderId == shipmentObj.FulOrderId && fos.Name == _iconfiguration["PACKAGED"] select fo).FirstOrDefault(); if (FulOrderObj == null) { return new { status = false, message = _iconfiguration["FULORDER_NOT_IN_PACKAGE"] } } ; FulOrderStatus FulOrderStatusObj = (from fos in context.FulOrderStatus where fos.Name.ToUpper() == _iconfiguration["PALLETIZED"] select fos).FirstOrDefault(); FulOrderObj.FulOrderStatusId = FulOrderStatusObj.FulOrderStatusId; FulOrderObj.PalletId = palletId; context.FulOrder.Update(FulOrderObj); context.SaveChanges(); Product ProductObj = new Product(); ProductObj = (from fi in context.FulItem join p in context.Product on fi.ProductId equals p.ProductId select p).FirstOrDefault(); ProductSKU productSKUObj = (from ps in context.ProductSKU where ps.ProductId == ProductObj.ProductId select ps).FirstOrDefault(); UpdateTrackingDTO response = new UpdateTrackingDTO(); response.fulOrderId = FulOrderObj.FulOrderId; response.fulOrderStatus = FulOrderStatusObj.Name; response.productName = ProductObj.Name; response.sku = productSKUObj.SKU; response.trackingNumber = shipmentObj.TrackingNumber.ToString(); return(new { status = true, data = response, message = string.Format(_iconfiguration["PALLETIZED_SUCCESS"], FulOrderObj.FulOrderId.ToString()) }); } return(new { status = false, message = _iconfiguration["ERROR_NOFULORDERPACKAGEFOUND"] }); } catch (Exception Ex) { LogServiceObj.LogException(Ex); MailServiceObj.SendMail(Ex.Message ?? "", (Ex.InnerException != null) ? Ex.InnerException.Message : "", Ex.StackTrace ?? ""); return(new { status = false, message = _iconfiguration["ERROR_CREATEPALLET"] }); } }
public object GenerateLabel(string UPC) { try { Product ProductObj = (from p in context.Product join ps in context.ProductSKU on p.ProductId equals ps.ProductId join pt in context.ProductSKUType on ps.SKUTypeId equals pt.ProductSKUTypeId where pt.Name.ToUpper() == _iconfiguration["SKU"] && p.UPC == UPC select p).FirstOrDefault(); Guid?RandomTrackingNumberStr = Guid.Empty; if (ProductObj != null) { bool GenerateShipment = false; string ProductSKU = (from psku in context.ProductSKU join pskutype in context.ProductSKUType on psku.SKUTypeId equals pskutype.ProductSKUTypeId where psku.ProductId == ProductObj.ProductId && pskutype.Name.ToUpper() == _iconfiguration["SKU"] select psku.SKU).FirstOrDefault(); FulOrder fulOrderObj = (from fi in context.FulItem join fo in context.FulOrder on fi.FulOrderId equals fo.FulOrderId join fs in context.FulOrderStatus on fo.FulOrderStatusId equals fs.FulOrderStatusId where fs.Name.ToUpper() == _iconfiguration["LABELCREATED"] && (fo.OnHold_FLG ?? false) == false && fi.ProductId == ProductObj.ProductId select fo).OrderBy(fo => fo.OrderId).FirstOrDefault(); if (fulOrderObj != null) { GenerateShipment = true; RandomTrackingNumberStr = (from s in context.Shipment where s.FulOrderId == fulOrderObj.FulOrderId select s.TrackingNumber).FirstOrDefault(); } else { fulOrderObj = (from fi in context.FulItem join fo in context.FulOrder on fi.FulOrderId equals fo.FulOrderId join fs in context.FulOrderStatus on fo.FulOrderStatusId equals fs.FulOrderStatusId where fs.Name.ToUpper() == _iconfiguration["PICKING"] && (fo.OnHold_FLG ?? false) == false && (fo.Error_FLG ?? false) == false && fi.ProductId == ProductObj.ProductId select fo).OrderBy(fo => fo.OrderId).FirstOrDefault(); } if (fulOrderObj == null) { return new { status = false, message = _iconfiguration["UPC_PICKED_NOTFOUND"] } } ; FulOrderStatus fulOrderStatusObj = (from fs in context.FulOrderStatus where fs.Name.ToUpper() == _iconfiguration["LABELCREATED"] select fs).FirstOrDefault(); Box BoxObj = (from b in context.Box where b.BoxId == ProductObj.BoxId select b).FirstOrDefault(); if (!GenerateShipment && fulOrderObj != null && ProductObj != null) { fulOrderObj.FulOrderStatusId = fulOrderStatusObj.FulOrderStatusId; RandomTrackingNumberStr = Guid.NewGuid(); /* Insertion of Shipment record */ Shipment ShipmentObj = new Shipment(); ShipmentObj.CarrierId = fulOrderObj.AssignedCarrierId ?? 0; ShipmentObj.CarrierServiceId = fulOrderObj.AssignedCarrierServiceId ?? 0; ShipmentObj.FulOrderId = fulOrderObj.FulOrderId; ShipmentObj.Height = (BoxObj != null) ? BoxObj.Height : 0; ShipmentObj.Length = (BoxObj != null) ? BoxObj.Length : 0; ShipmentObj.StatusUpdatedDT = DateTime.Now; ShipmentObj.Width = (BoxObj != null) ? BoxObj.Width : 0; ShipmentObj.Weight = ProductObj.Weight; ShipmentObj.TrackingNumber = RandomTrackingNumberStr; ShipmentObj.ShippingLabel = null; ShipmentObj.ShipmentStatusId = (from ss in context.ShipmentStatus where ss.Name.ToUpper() == _iconfiguration["ACTIVE"] select ss.ShipmentStatusId).FirstOrDefault(); context.Shipment.Add(ShipmentObj); context.FulOrder.Update(fulOrderObj); context.SaveChanges(); } UpdateTrackingDTO TrackingDTOObj = new UpdateTrackingDTO(); TrackingDTOObj.fulOrderId = fulOrderObj.FulOrderId; TrackingDTOObj.productName = ProductObj.Name; TrackingDTOObj.fulOrderStatus = fulOrderStatusObj.Name; TrackingDTOObj.sku = ProductSKU; TrackingDTOObj.trackingNumber = (RandomTrackingNumberStr != null) ? RandomTrackingNumberStr.ToString() : ""; return(new { status = true, data = TrackingDTOObj }); } else { return(new { status = false, message = _iconfiguration["UPC_NOT_FOUND"] }); } } catch (Exception Ex) { LogServiceObj.LogException(Ex); MailServiceObj.SendMail(Ex.Message ?? "", (Ex.InnerException != null) ? Ex.InnerException.Message : "", Ex.StackTrace ?? ""); return(new { status = false, message = _iconfiguration["UNHANDLEDEXCEPTION"] }); } }