/// <summary> /// 获取物流轨迹明细 /// </summary> /// <param name="routingDetail"></param> /// <param name="traces"></param> /// <returns></returns> private static List <DeliveryNoticeTraceEntry> GetPackageRouteDetails(ShipmentOperationalDetail routingDetail, List <DeliveryNoticeTraceEntry> traces) { if (traces != null && traces.Count > 0) { foreach (var trace in traces) { routingDetail.DeliveryDateSpecified = true; trace.F_HS_DeliDate = routingDetail.DeliveryDate; } } return(traces); }
private static void ShowPackageRouteDetails(ShipmentOperationalDetail routingDetail) { Console.WriteLine("\nRouting details"); Console.WriteLine("URSA prefix {0} suffix {1}", routingDetail.UrsaPrefixCode, routingDetail.UrsaSuffixCode); Console.WriteLine("Service commitment {0} Airport ID {1}", routingDetail.DestinationLocationId, routingDetail.AirportId); if (routingDetail.DeliveryDaySpecified) { Console.WriteLine("Delivery day " + routingDetail.DeliveryDay); } if (routingDetail.DeliveryDateSpecified) { Console.WriteLine("Delivery date " + routingDetail.DeliveryDate.ToShortDateString()); } if (routingDetail.TransitTimeSpecified) { Console.WriteLine("Transit time " + routingDetail.TransitTime); } }
private static ShipServiceResponse ShowShipmentReply(bool isCodShipment, ProcessShipmentReply reply, ShipServiceInfo clsService, ShipServiceResponse objResponse, out string retVal) { //F21.Service.ShipServiceResponse objResponse = new F21.Service.ShipServiceResponse(); retVal = string.Empty; try { // Carrier code types : FDXC(Cargo), FDXE(Express), FDXG(Ground), FXCC(Custom Critical), FXFX(Freight), FXSP - ? (Reference FedEx Document) // SmartPost Reply details if (clsService.ServiceType == ServiceType.SMART_POST) { if (reply.CompletedShipmentDetail.SmartPostDetail.PickUpCarrierSpecified) { objResponse.SmartPickupCode = reply.CompletedShipmentDetail.SmartPostDetail.PickUpCarrier.ToString(); } if (reply.CompletedShipmentDetail.SmartPostDetail.MachinableSpecified) { objResponse.SmartMachinable = reply.CompletedShipmentDetail.SmartPostDetail.Machinable; } } // Details for each package if (reply.CompletedShipmentDetail.CompletedPackageDetails != null) { System.Diagnostics.Debug.WriteLine("CompletedPackageDetails Array Length : " + reply.CompletedShipmentDetail.CompletedPackageDetails.Length); foreach (CompletedPackageDetail packageDetail in reply.CompletedShipmentDetail.CompletedPackageDetails) { //Get Fedex TrackingNumber (ShowTrackingDetails) if (packageDetail.TrackingIds != null) { System.Diagnostics.Debug.WriteLine("TrackingIds Array Length : " + packageDetail.TrackingIds.Length); for (int i = 0; i < packageDetail.TrackingIds.Length; i++) { // TrackingIdType (EXPRESS,FEDEX,FREIGHT,GROUND,USPS) // Update ShipService version from v15 to v17 objResponse.TrackingIdType = packageDetail.TrackingIds[i].TrackingIdType.ToString(); objResponse.FedexTrackingNumber = packageDetail.TrackingIds[i].TrackingNumber; objResponse.FormId = packageDetail.TrackingIds[i].FormId; objResponse.UspsApplicationId = Basic.IsNull(packageDetail.TrackingIds[i].UspsApplicationId, ""); /* (Comment out the below sourcecode) * if (packageDetail.TrackingIds[i].TrackingIdType == TrackingIdType.USPS) * { * objResponse.USPSTrackingIdType = packageDetail.TrackingIds[i].TrackingIdType.ToString(); * objResponse.USPSTrackingNumber = packageDetail.TrackingIds[i].TrackingNumber; * objResponse.USPSFormId = packageDetail.TrackingIds[i].FormId; * } * else * { * objResponse.TrackingIdType = packageDetail.TrackingIds[i].TrackingIdType.ToString(); * objResponse.FedexTrackingNumber = packageDetail.TrackingIds[i].TrackingNumber; * objResponse.FormId = packageDetail.TrackingIds[i].FormId; * } */ } } else { // Tracking Number Issue retVal = "[ERROR] packageDetail.TrackingIds is null."; } //Get LabelString (ShowShipmentLabels) if (packageDetail.Label.Parts != null) { if (clsService.LabelImageType == ShippingDocumentImageType.ZPLII) { // Get ZPL Label Strig objResponse.FedexLabelString = ShowShipmentLabels(packageDetail); } else if (clsService.LabelImageType == ShippingDocumentImageType.PDF) { objResponse.FedexLabelString = ShowShipmentLabels3(isCodShipment, reply.CompletedShipmentDetail, packageDetail); } else { objResponse.FedexLabelString = ShowShipmentLabels(packageDetail); } } else { retVal = retVal + " [ERROR] packageDetail.Label.Parts is null."; } // *** Check functon (ShowPackageRateDetails) Don't use package rate detalis information // PackageRateDetails 에러가 종종 발생하기 때문에 주석 처리, TrackingNumber, ZplString Value 가 존재하면 정상 처리함. /* (Comment out the below sourcecode) * if (packageDetail.PackageRating.PackageRateDetails != null) * { * System.Diagnostics.Debug.WriteLine("PackageRateDetails Array Length :" + packageDetail.PackageRating.PackageRateDetails.Length); * foreach (PackageRateDetail ratedPackage in packageDetail.PackageRating.PackageRateDetails) * { * System.Diagnostics.Debug.WriteLine("Billing weight :" + ratedPackage.BillingWeight.Value.ToString()); * System.Diagnostics.Debug.WriteLine("Billing weight Units :" + ratedPackage.BillingWeight.Units.ToString()); * * objResponse.BillingWeight = ratedPackage.BillingWeight.Value; * objResponse.BillingWeightUnits = ratedPackage.BillingWeight.Units.ToString(); * * System.Diagnostics.Debug.WriteLine("Base charge : " + ratedPackage.BaseCharge.Amount + "-" + ratedPackage.BaseCharge.Currency); * System.Diagnostics.Debug.WriteLine("Total surcharge : " + ratedPackage.TotalSurcharges.Amount + "-" + ratedPackage.TotalSurcharges.Currency); * * if (ratedPackage.Surcharges != null) * { * foreach (Surcharge surcharge in ratedPackage.Surcharges) * { * System.Diagnostics.Debug.WriteLine("Surcharge : " + surcharge.SurchargeType + " - " + surcharge.Amount.Amount + " - " + surcharge.Amount.Currency); * } * } * * if (ratedPackage.NetCharge != null) * { * System.Diagnostics.Debug.WriteLine("Net charge : " + ratedPackage.NetCharge.Amount + "-" + ratedPackage.NetCharge.Currency); * } * } * } */ //--------------------------------------------------------------------------------------------------------------------------------------- // Get Barcode (ShowBarcodeDetails) if (packageDetail.OperationalDetail.Barcodes != null) { if (packageDetail.OperationalDetail.Barcodes.StringBarcodes != null) { System.Diagnostics.Debug.WriteLine("StringBarcodes Array Length :" + packageDetail.OperationalDetail.Barcodes.StringBarcodes.Length); for (int i = 0; i < packageDetail.OperationalDetail.Barcodes.StringBarcodes.Length; i++) { //List<string> list = new List<string>(); // String Barcode Types : ADDRESS, ASTRA, FEDEX_1D, GROUND, POSTAL,USPS // Update ShipService version from v15 to v17 objResponse.Barcode = packageDetail.OperationalDetail.Barcodes.StringBarcodes[i].Value; objResponse.BarcodeType = packageDetail.OperationalDetail.Barcodes.StringBarcodes[i].Type.ToString(); /* (Comment out the below sourcecode) * if (packageDetail.OperationalDetail.Barcodes.StringBarcodes[i].Type == StringBarcodeType.USPS) * { * objResponse.USPSBarcode = packageDetail.OperationalDetail.Barcodes.StringBarcodes[i].Value; * objResponse.USPSBarcodeType = packageDetail.OperationalDetail.Barcodes.StringBarcodes[i].Type.ToString(); * } * else * { * objResponse.Barcode = packageDetail.OperationalDetail.Barcodes.StringBarcodes[i].Value; * objResponse.BarcodeType = packageDetail.OperationalDetail.Barcodes.StringBarcodes[i].Type.ToString(); * } */ //Object reference not set to an instance of an object. //objResponse.ResponseStringBarcodes[i] = packageDetail.OperationalDetail.Barcodes.StringBarcodes[i].Value; } } // Don't use BinaryBarcodes (Comment out the BinaryBarcodes sourcecode) /* * if (packageDetail.OperationalDetail.Barcodes.BinaryBarcodes != null) * { * System.Diagnostics.Debug.WriteLine("BinaryBarcodes Array Length :" + packageDetail.OperationalDetail.Barcodes.BinaryBarcodes.Length); * for (int i = 0; i < packageDetail.OperationalDetail.Barcodes.BinaryBarcodes.Length; i++) * { * objResponse.BinaryBarcodeType = packageDetail.OperationalDetail.Barcodes.BinaryBarcodes[i].Type.ToString(); * } * } */ } } } // ShowPackageRouteDetails if (reply.CompletedShipmentDetail.OperationalDetail != null) { ShipmentOperationalDetail routingDetail = reply.CompletedShipmentDetail.OperationalDetail; objResponse.UrsaPrefixCode = routingDetail.UrsaPrefixCode; objResponse.UrsaSuffixCode = routingDetail.UrsaSuffixCode; objResponse.DestinationLocationId = routingDetail.DestinationLocationId; objResponse.AirportId = routingDetail.AirportId; if (routingDetail.TransitTimeSpecified) { objResponse.TransitTime = routingDetail.TransitTime.ToString(); } /* * if (routingDetail.DeliveryDaySpecified) * { * string DeliveryDay = routingDetail.DeliveryDay.ToString(); * } * * if (routingDetail.DeliveryDateSpecified) * { * string DeliveryShortDate = routingDetail.DeliveryDate.ToShortDateString(); * } */ //throw new Exception("Test Error"); } } catch (Exception ex) { retVal = retVal + "[ShowShipmentReply Error] " + ex.Message; } return(objResponse); }
private void ShowPackageRouteDetails(ShipmentOperationalDetail routingDetail) { WriteToBuffer(string.Format("\nRouting details")); WriteToBuffer(string.Format("URSA prefix {0} suffix {1}", routingDetail.UrsaPrefixCode, routingDetail.UrsaSuffixCode)); WriteToBuffer(string.Format("Service commitment {0} Airport ID {1}", routingDetail.DestinationLocationId, routingDetail.AirportId)); if (routingDetail.DeliveryDaySpecified) { WriteToBuffer(string.Format("Delivery day " + routingDetail.DeliveryDay)); } if (routingDetail.DeliveryDateSpecified) { WriteToBuffer(string.Format("Delivery date " + routingDetail.DeliveryDate.ToShortDateString())); } if (routingDetail.TransitTimeSpecified) { WriteToBuffer(string.Format("Transit time " + routingDetail.TransitTime)); } }