public EntityShipment SimplePullMethodWorking(EntityShipment objRequest) { var retVal = objRequest; if (retVal != null) { string orderStatus = ""; string orderNum = ""; try { orderStatus = "Completed"; orderNum = objRequest.strDeliveryDocNumber; if (!string.IsNullOrEmpty(objRequest.strDeliveryDocNumber) && objRequest.ToolKit.ID != null && objRequest.ToolKit.ID.ToLower() == "select") { orderDetailsResult = databaseHelper.GetOrderDetails(orderNum); } } catch (Exception e) { } if (orderStatus != "Deleted" && orderStatus != "") { #region ✅ SHIPPING INFO (UNCHANGED) string CompName = orderDetailsResult.ORGANIZATION; string ContactName = orderDetailsResult.NAME; string payorTerms = "THIRDPARTY"; string payorAcct = "251144621"; retVal.objShipTo = new EntityAddress(); retVal.objShipTo.strCompanyName = CompName; retVal.objShipTo.strContactName = ContactName; retVal.objShipTo.strAddressLine1 = orderDetailsResult.LABEL_LINE_1; retVal.objShipTo.strAddressLine2 = orderDetailsResult.LABEL_LINE_2; retVal.objShipTo.strAddressLine3 = orderDetailsResult.LABEL_LINE_3 + " " + orderDetailsResult.LABEL_LINE_4 + " " + orderDetailsResult.LABEL_LINE_5 + " " + orderDetailsResult.LABEL_LINE_6 + " " + orderDetailsResult.LABEL_LINE_7; retVal.objShipTo.strCity = orderDetailsResult.CITY; retVal.objShipTo.strState = orderDetailsResult.STATE; retVal.objShipTo.strPostalCode = orderDetailsResult.ZIP; retVal.objShipTo.strCountryCode = orderDetailsResult.COUNTRY; retVal.objShipTo.strPhoneNumber = orderDetailsResult.PHONE; retVal.objDetails.strPONumber = orderNum; retVal.objDetails.strInvoiceNumber = orderNum; retVal.strCustomerRefernceValue = orderNum; retVal.strInvoiceNumber = orderNum; retVal.objShipMethod = new EntityShipMethod(); retVal.objShipMethod.strShipViaCode = "12345"; retVal.objShipMethod.strPaymentTerms = payorTerms; retVal.objShipMethod.strPayorAccountNumber = payorAcct; retVal.objShipMethod.PaymentTermType = ePaymentTerms.ThirdParty; retVal.objBillTo = new EntityAddress(); retVal.objBillTo.strAccountNumber = payorAcct; retVal.objBillTo.strCountryCode = orderDetailsResult.COUNTRY; retVal.objBillTo.strPostalCode = orderDetailsResult.ZIP; #endregion #region ✅✅✅ FINAL LINE ITEM DISPLAY FIX (MATCHES YOUR REAL CLASSES) // Add the line items List orderItemResult = databaseHelper.GetOrderItems(objRequest.strDeliveryDocNumber); int maxRecords = 50; EntityPackageGroup EPG = new EntityPackageGroup(); EPG.lstLineItem = new List(); foreach (var line in orderItemResult.Take(maxRecords)) { int qty = string.IsNullOrEmpty(line.Quantity) ? 1 : Convert.ToInt32(line.Quantity); EntityLineItem lineItem = new EntityLineItem(); // ✅ UI REQUIRED FIELDS lineItem.strItemNumber = string.IsNullOrWhiteSpace(line.order_address_id) ? "ITEM-001" : line.order_address_id; lineItem.strItemDescription = (line.BookTitle ?? "BOOK") + " " + (line.ISBN ?? ""); // ✅ UI DISPLAY DEPENDS ON THESE FOUR lineItem.intOrderedQuantity = qty; lineItem.intTotalItemQuantity = qty; lineItem.intItemQuantityPerPackage = qty; lineItem.intBalanceQuantity = qty; // ✅ UI SAFE DEFAULTS lineItem.dblPieceWeight = 2; lineItem.dblPieceValue = 100; lineItem.DistributionType = 0; lineItem.blnHazardousMaterial = false; EPG.lstLineItem.Add(lineItem); } // ✅✅✅ PACKAGE GROUP TOTALS (UI WILL NOT RENDER WITHOUT THESE) EPG.intTotalQuantity = EPG.lstLineItem.Sum(x => x.intTotalItemQuantity); EPG.intTotalPerPackageItemQuantity = Convert.ToInt32(EPG.lstLineItem.Sum(x => x.intItemQuantityPerPackage)); EPG.intTotalNumberOfPackages = 1; EPG.dblTotalWeight = EPG.lstLineItem.Sum(x => x.dblPieceWeight); // ✅✅✅ CONTAINER TOTALS EntityContainer EC = new EntityContainer(); EC.lstPackageGroup = new List(); EC.lstPackageGroup.Add(EPG); // ✅ Grey color is NOT a problem EC.objPackageWeight = new PackageWeight(); EC.strAlternatePackageID = "9876"; EC.intHandlingUnitID = 1; // ✅ REQUIRED FOR UI BINDING // ✅ THESE THREE CONTROL UI VISIBILITY EC.intTotalQuantity = EPG.intTotalQuantity; EC.intTotalPackages = 1; EC.dblTotalWeight = EPG.dblTotalWeight; retVal.lstContainer = new List(); retVal.lstContainer.Add(EC); // ✅ Grey color is NOT a problem #endregion } } string jsonRequest = System.Text.Json.JsonSerializer.Serialize( retVal, new JsonSerializerOptions { WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull }); LogRequestMessage("✅ FINAL JSON PAYLOAD"); LogRequestMessage(jsonRequest); return retVal; }