Ejemplo n.º 1
0
 /// <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);
 }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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));
            }
        }