Ejemplo n.º 1
0
        public IHttpActionResult SaveBooking(FrayteCommerceShipmentDraft eCommerceBookingDetail)
        {
            int          eCommerceShipmentId = 0;
            FrayteResult result = new FrayteResult();

            //Step 1: Save the information in database
            // eCommerceBookingDetail.Error
            eCommerceBookingDetail.Error = new eCommerceShipmentRepository().SaveBooking(eCommerceBookingDetail);
            if (eCommerceBookingDetail.Error.Status && eCommerceBookingDetail.BookingStatusType == FrayteBookingStatusType.Current)
            {
                //Step 2: Shipment Integrations

                //EasyPost Integration here
                List <FrayteCommercePackageTrackingDetail> shipmentPackageTrackingDetail = new List <FrayteCommercePackageTrackingDetail>();

                // int Id = 0;
                var easyPostObj = new EasyPostRepository().MapShipmentToEasyPostShipment(eCommerceBookingDetail);

                var easyPostResult = new EasyPostRepository().CreateShipment(easyPostObj);

                eCommerceBookingDetail.Error = easyPostResult.Errors;

                try
                {
                    if (easyPostResult.Errors.Status)
                    {
                    }
                }
                catch (Exception ex2)
                {
                    easyPostResult.Errors.Miscellaneous = new List <string>();
                    easyPostResult.Errors.Miscellaneous.Add(ex2.Message);
                    Elmah.ErrorSignal.FromCurrentContext().Raise(ex2);
                    easyPostResult.Errors.Status = false;
                }


                if (eCommerceBookingDetail.Error != null && eCommerceBookingDetail.Error.Status == true)
                {
                    //Finally Save the Order Id too to get the information of multiple shpment in Tracking Detail page.
                    eCommerceShipmentId = new eCommerceShipmentRepository().SaveOrderNumber(eCommerceBookingDetail, easyPostResult.Order.id, eCommerceBookingDetail.CustomerId);

                    var easypostImage = new eCommerceShipmentRepository().DownloadEasyPostImages(easyPostResult.Order.shipments[0].tracking_code, easyPostResult.Order.shipments[0].postage_label.label_url, eCommerceShipmentId);

                    // EasyPost label
                    string labelPath = HttpContext.Current.Server.MapPath("~/PackageLabel/eCommerce/" + eCommerceShipmentId + "/");

                    int calculatedHeight = 1400;
                    int LocationY        = 0;

                    //After creating an order need to save the information in database

                    var shipmentDetails = new eCommerceShipmentRepository().GetPackageDetails(eCommerceShipmentId);
                    int increment       = 0;
                    int sum             = eCommerceBookingDetail.Packages.Sum(p => p.CartoonValue);
                    for (int j = 0; j < eCommerceBookingDetail.Packages.Count; j++)
                    {
                        for (int i = 0; i < eCommerceBookingDetail.Packages[j].CartoonValue; i++)
                        {
                            increment++;
                            var data = shipmentDetails[j];

                            // Step 1 : database entry
                            var trackingDetail = new eCommerceShipmentRepository().SaveEasyPostDetailTrackingDeatil(eCommerceBookingDetail, eCommerceBookingDetail.Packages[j], data, easyPostResult.Order.shipments[0].tracking_code, easyPostResult.Order.shipments[0].postage_label.label_url, eCommerceShipmentId, increment);

                            //  Step 2: Create frayte AWB label and save label name
                            string awbLabelName = generateAWBLabel(eCommerceShipmentId, eCommerceBookingDetail, increment, eCommerceBookingDetail.Packages[j]);
                            new eCommerceShipmentRepository().SaveAWBLabelName(trackingDetail, awbLabelName + ".pdf");

                            // Step 3 : crop image and save
                            var res = new EasyPostRepository().CropeImage(trackingDetail, eCommerceBookingDetail.CourierCompany, easypostImage, labelPath, calculatedHeight, LocationY, increment, sum);
                            LocationY += calculatedHeight;
                        }
                    }

                    // Generate Courier Label
                    Generate_Seperate_PackageLabelPDF(eCommerceShipmentId, eCommerceBookingDetail);

                    generateAWBLabel(eCommerceShipmentId, eCommerceBookingDetail, 0, null);
                    // Send SMS to consignee
                    string message = string.Empty;


                    // Generate Invoice Report

                    if (eCommerceBookingDetail.Error.IsMailSend)
                    {
                        //Send mail to developer
                        // new ShipmentEmailRepository().SendeCommerceShipmentErrorMail(eCommerceBookingDetail, eCommerceBookingDetail.Error);
                    }
                    if (eCommerceBookingDetail.Error.Status)
                    {
                        //SendDirectBookingConfirmationMailAsync(directBookingDetail);
                        new ShipmentEmailRepository().SendeCommercreBookingConfirmationMail(eCommerceBookingDetail, eCommerceShipmentId);
                    }
                    FrayteDirectShipment shipmentdetail = new eCommerceShipmentRepository().GetShipmentDetail(eCommerceShipmentId);
                    if (shipmentdetail != null)
                    {
                        eCommerceBookingDetail.DirectShipmentDraftId = shipmentdetail.DirectShipmentId;
                        eCommerceBookingDetail.ShipFrom.DirectShipmentAddressDraftId = shipmentdetail.FromAddressId;
                        eCommerceBookingDetail.ShipTo.DirectShipmentAddressDraftId   = shipmentdetail.ToAddressId;
                        eCommerceBookingDetail.ShipmentStatusId = shipmentdetail.ShipmentStatusId;
                    }
                }
            }
            return(Ok(eCommerceBookingDetail));
        }
Ejemplo n.º 2
0
        private FrayteeCommerceShipmentLabelReport GenerateAwb(int eCommerceShipmentId, PackageDraft data, FrayteCommerceShipmentDraft eCommerceBookingDetail, int i)
        {
            FrayteeCommerceShipmentLabelReport obj = new FrayteeCommerceShipmentLabelReport();

            if (data != null)
            {
                int n = i;

                obj.CurrentShipment = n + " OF " + eCommerceBookingDetail.Packages.Sum(p => p.CartoonValue);
                if (eCommerceBookingDetail.Packages.Sum(p => p.Value).ToString().Contains("."))
                {
                    obj.TotalValue = eCommerceBookingDetail.Currency.CurrencyCode + " " + eCommerceBookingDetail.Packages.Sum(p => p.Value);
                }
                else
                {
                    obj.TotalValue = eCommerceBookingDetail.Currency.CurrencyCode + " " + eCommerceBookingDetail.Packages.Sum(p => p.Value) + ".00";
                }
                if (eCommerceBookingDetail.PakageCalculatonType == FraytePakageCalculationType.kgtoCms)
                {
                    if (UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail).ToString().Contains("."))
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + " " + WeightUOM.KG;
                    }
                    else
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + ".00" + " " + WeightUOM.KG;
                    }
                }
                else if (eCommerceBookingDetail.PakageCalculatonType == FraytePakageCalculationType.LbToInchs)
                {
                    if (UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail).ToString().Contains("."))
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + " " + WeightUOM.LB;
                    }
                    else
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + ".00" + " " + WeightUOM.LB;
                    }
                }
                else
                {
                    if (UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail).ToString().Contains("."))
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + " " + WeightUOM.KG;
                    }
                    else
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + ".00" + " " + WeightUOM.KG;
                    }
                }
                obj.eCommerceShipment = eCommerceBookingDetail;
                obj.BarcodePath       = HttpContext.Current.Server.MapPath(AppSettings.eCommerceLabelFolder) + eCommerceShipmentId + "/" + obj.eCommerceShipment.FrayteNumber + ".Png";
                obj.LabelPackages     = new List <PackageLabel>();

                PackageLabel pL = new PackageLabel();
                if (data != null)
                {
                    pL.CartoonValue = 1;
                    pL.Content      = data.Content;
                    pL.DirectShipmentDetailDraftId = data.DirectShipmentDetailDraftId;
                    pL.Height     = data.Height;
                    pL.Weight     = data.Weight;
                    pL.Width      = data.Width;
                    pL.Value      = data.Value;
                    pL.TrackingNo = data.TrackingNo;
                    pL.SerialNo   = 1;
                    pL.PackageTrackingDetailId = data.PackageTrackingDetailId;
                    pL.LabelName = data.LabelName;
                    pL.IsPrinted = data.IsPrinted;
                    obj.LabelPackages.Add(pL);
                }

                string filename = eCommerceBookingDetail.FrayteNumber + "_" + DateTime.Now.ToString("dd_MM_yyyy_ss_fff");
                // FrayteResult result = new eCommerceShipmentLabelReport().GeteCommerceShipmentLabelReportDetail(eCommerceShipmentId, obj, filename);
            }
            return(obj);
        }
Ejemplo n.º 3
0
        public FrayteResult Generate_Seperate_PackageLabelPDF(int eCommercShipmentId, FrayteCommerceShipmentDraft eCommerceBookingDetail)
        {
            FrayteResult result = new FrayteResult();

            result.Errors = new List <string>();

            List <string> list  = new List <string>();
            List <string> list1 = new List <string>();

            var Packages = new eCommerceShipmentRepository().GetPackageDetails(eCommercShipmentId);

            if (Packages != null)
            {
                foreach (var pack in Packages)
                {
                    var packageTracking = new eCommerceShipmentRepository().GeteCommercePackageTracking(pack.eCommerceShipmentDetailId);
                    if (packageTracking != null && packageTracking.Count > 0)
                    {
                        foreach (var data in packageTracking)
                        {
                            list.Add(data.PackageImage);
                            list1.Add(data.PackageImage);
                            var resultReport = new Report.Generator.ManifestReport.PackageLabelReport().GenerateECommerceLabelReport(eCommercShipmentId, null, list1, eCommerceBookingDetail.CourierCompany, "");
                            if (!resultReport.Status)
                            {
                                result.Status = false;
                                result.Errors.Add("All the labels Pdf are not generated for " + eCommercShipmentId.ToString());
                            }
                            list1.Remove(data.PackageImage);
                        }
                    }
                    else
                    {
                        result.Status = false;
                        result.Errors.Add("All the labels Pdf are not generated for " + eCommercShipmentId.ToString());
                    }
                }


                string labelName     = string.Empty;
                string LogisticLabel = string.Empty;
                var    TrackingNo    = new eCommerceShipmentRepository().GetTrackingNo(eCommercShipmentId);
                if (eCommerceBookingDetail.CourierCompany == FrayteCourierCompany.DHL || eCommerceBookingDetail.CourierCompany == FrayteCourierCompany.DHLExpress)
                {
                    labelName = FrayteShortName.DHL;
                }

                LogisticLabel = labelName + "_" + TrackingNo + "_" + DateTime.Now.ToString("dd_MM_yyyy") + " (All)" + ".pdf";
                var Result = new Report.Generator.ManifestReport.PackageLabelReport().GenerateECommerceLabelReport(eCommercShipmentId, eCommerceBookingDetail, list, eCommerceBookingDetail.CourierCompany, LogisticLabel);
                if (Result.Status)
                {
                    new eCommerceShipmentRepository().SaveFrayteLabel(eCommercShipmentId, LogisticLabel, eCommLabelType.CourierLabel);
                }
            }
            else
            {
                result.Status = false;
                result.Errors.Add("All the labels Pdf are not generated fo " + eCommercShipmentId.ToString());
            }
            return(result);
        }
Ejemplo n.º 4
0
        private string generateAWBLabel(int eCommerceShipmentId, FrayteCommerceShipmentDraft eCommerceBookingDetail, int i, PackageDraft data)
        {
            List <FrayteeCommerceShipmentLabelReport> list = new List <FrayteeCommerceShipmentLabelReport>();
            FrayteeCommerceShipmentLabelReport        newObj;
            string filename = string.Empty;

            if (data != null)
            {
                FrayteeCommerceShipmentLabelReport obj;
                int n = i;
                obj = new FrayteeCommerceShipmentLabelReport();
                obj.CurrentShipment = n + " OF " + eCommerceBookingDetail.Packages.Sum(p => p.CartoonValue);
                if (eCommerceBookingDetail.Packages.Sum(p => p.Value).ToString().Contains("."))
                {
                    obj.TotalValue = eCommerceBookingDetail.Currency.CurrencyCode + " " + eCommerceBookingDetail.Packages.Sum(p => p.Value);
                }
                else
                {
                    obj.TotalValue = eCommerceBookingDetail.Currency.CurrencyCode + " " + eCommerceBookingDetail.Packages.Sum(p => p.Value) + ".00";
                }
                if (eCommerceBookingDetail.PakageCalculatonType == FraytePakageCalculationType.kgtoCms)
                {
                    if (UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail).ToString().Contains("."))
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + " " + WeightUOM.KG;
                    }
                    else
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + ".00" + " " + WeightUOM.KG;
                    }
                }
                else if (eCommerceBookingDetail.PakageCalculatonType == FraytePakageCalculationType.LbToInchs)
                {
                    if (UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail).ToString().Contains("."))
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + " " + WeightUOM.LB;
                    }
                    else
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + ".00" + " " + WeightUOM.LB;
                    }
                }
                else
                {
                    if (UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail).ToString().Contains("."))
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + " " + WeightUOM.KG;
                    }
                    else
                    {
                        obj.TotalChargeableWeight = UtilityRepository.GetShipmentChargeableWeight(eCommerceBookingDetail) + ".00" + " " + WeightUOM.KG;
                    }
                }
                obj.eCommerceShipment = eCommerceBookingDetail;
                obj.BarcodePath       = HttpContext.Current.Server.MapPath(AppSettings.eCommerceLabelFolder) + eCommerceShipmentId + "/" + obj.eCommerceShipment.FrayteNumber + ".Png";
                obj.LabelPackages     = new List <PackageLabel>();

                PackageLabel pL = new PackageLabel();
                if (data != null)
                {
                    pL.CartoonValue = 1;
                    pL.Content      = data.Content;
                    pL.DirectShipmentDetailDraftId = data.DirectShipmentDetailDraftId;
                    pL.Height     = data.Height;
                    pL.Weight     = data.Weight;
                    pL.Width      = data.Width;
                    pL.Value      = data.Value;
                    pL.TrackingNo = data.TrackingNo;
                    pL.SerialNo   = 1;
                    pL.PackageTrackingDetailId = data.PackageTrackingDetailId;
                    pL.LabelName = data.LabelName;
                    pL.IsPrinted = data.IsPrinted;
                    obj.LabelPackages.Add(pL);
                }

                int total = eCommerceBookingDetail.Packages.Sum(p => p.CartoonValue);
                filename = "FRT_AWB_" + eCommerceBookingDetail.FrayteNumber + DateTime.Now.ToString("dd_MM_yyyy") + " (" + n + "of" + total + ")";
                FrayteResult result = new eCommerceShipmentLabelReport().GeteCommerceShipmentLabelReportDetail(eCommerceShipmentId, obj, filename);
            }
            else
            {
                int j = 0;

                foreach (var package in eCommerceBookingDetail.Packages)
                {
                    for (int k = 0; k < package.CartoonValue; k++)
                    {
                        j++;
                        newObj = GenerateAwb(eCommerceShipmentId, package, eCommerceBookingDetail, j);
                        list.Add(newObj);
                    }
                }
                filename = "FRT" + "_" + "AWB_" + eCommerceBookingDetail.FrayteNumber + "_" + DateTime.Now.ToString("dd_MM_yyyy") + " (All)";
                FrayteResult result = new eCommerceShipmentLabelReport().GeteCommerceShipmentLabelReportDetailList(eCommerceShipmentId, list, filename);
                //Save FrayteLabel
                // Save Frayte Label Name
                if (result.Status)
                {
                    new eCommerceShipmentRepository().SaveFrayteLabel(eCommerceShipmentId, filename + ".pdf", eCommLabelType.FrayteLabel);
                }
            }

            return(filename);
        }
Ejemplo n.º 5
0
        public FrayteResult GenerateECommerceLabelReport(int eCommerceShipmentId, FrayteCommerceShipmentDraft eCommerceBookingDetail, List <string> imgList, string CourierName, string LogisticLabel)
        {
            FrayteResult result = new FrayteResult();

            try
            {
                List <PdfImage> imglist = new List <PdfImage>();

                PdfImage pbimage;
                foreach (var img in imgList)
                {
                    pbimage = new PdfImage();
                    if (AppSettings.ShipmentCreatedFrom == "BATCH")
                    {
                        pbimage.FullPath = AppSettings.eCommerceUploadLabelFolder + eCommerceShipmentId + "/" + img;
                    }
                    else
                    {
                        pbimage.FullPath = HttpContext.Current.Server.MapPath(AppSettings.eCommerceLabelFolder) + eCommerceShipmentId + "/" + img;
                    }
                    imglist.Add(pbimage);
                }

                string pdfPath = string.Empty;

                if (eCommerceBookingDetail != null)
                {
                    string CourierCompany = eCommerceBookingDetail.CourierCompany;
                    string TrackingNo     = new eCommerceShipmentRepository().GetTrackingNo(eCommerceShipmentId);
                    if (!string.IsNullOrEmpty(CourierCompany))
                    {
                        if (AppSettings.ShipmentCreatedFrom == "BATCH")
                        {
                            pdfPath = AppSettings.eCommerceUploadLabelFolder + eCommerceShipmentId + "/" + LogisticLabel;
                        }
                        else
                        {
                            pdfPath = HttpContext.Current.Server.MapPath("~/PackageLabel/eCommerce/" + eCommerceShipmentId + "/") + LogisticLabel;
                        }
                    }
                    else
                    {
                        if (AppSettings.ShipmentCreatedFrom == "BATCH")
                        {
                            pdfPath = AppSettings.eCommerceUploadLabelFolder + eCommerceShipmentId + "/" + LogisticLabel;
                        }
                        else
                        {
                            pdfPath = HttpContext.Current.Server.MapPath("~/PackageLabel/eCommerce/" + eCommerceShipmentId + "/") + LogisticLabel;
                        }
                    }
                }
                else
                {
                    string[] ff   = imgList[0].ToString().Split('.');
                    string   name = ff[0].ToString();
                    if (AppSettings.ShipmentCreatedFrom == "BATCH")
                    {
                        pdfPath = AppSettings.eCommerceUploadLabelFolder + eCommerceShipmentId + "/" + name + ".pdf";
                    }
                    else
                    {
                        pdfPath = HttpContext.Current.Server.MapPath(AppSettings.eCommerceLabelFolder) + eCommerceShipmentId + "/" + name + ".pdf";
                    }
                }
                if (File.Exists(pdfPath))
                {
                    File.Delete(pdfPath);
                }
                if (AppSettings.ShipmentCreatedFrom == "BATCH")
                {
                    if (!System.IO.Directory.Exists(AppSettings.eCommerceUploadLabelFolder + "/" + eCommerceShipmentId))
                    {
                        System.IO.Directory.CreateDirectory(AppSettings.eCommerceUploadLabelFolder + "/" + eCommerceShipmentId);
                    }
                }
                else
                {
                    if (!System.IO.Directory.Exists(HttpContext.Current.Server.MapPath(AppSettings.eCommerceLabelFolder) + "/" + eCommerceShipmentId))
                    {
                        System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath(AppSettings.eCommerceLabelFolder) + "/" + eCommerceShipmentId);
                    }
                }
                if (CourierName == FrayteCourierCompany.TNT)
                {
                    ReportTemplate.Other.TNTImagesToPDFReport report = new ReportTemplate.Other.TNTImagesToPDFReport();
                    report.DataSource = imglist;
                    DevExpress.XtraPrinting.PdfExportOptions pdfOptions = report.ExportOptions.Pdf;
                    pdfOptions.ImageQuality      = DevExpress.XtraPrinting.PdfJpegImageQuality.Highest;
                    pdfOptions.PdfACompatibility = DevExpress.XtraPrinting.PdfACompatibility.PdfA2b;
                    report.ExportToPdf(pdfPath, pdfOptions);
                    result.Status = true;
                }
                else if (CourierName.Contains(FrayteCourierCompany.DHL))
                {
                    ReportTemplate.Other.DHLImageToPDFReport dhlReport = new ReportTemplate.Other.DHLImageToPDFReport();
                    dhlReport.DataSource = imglist;
                    DevExpress.XtraPrinting.PdfExportOptions pdfOptions = dhlReport.ExportOptions.Pdf;
                    pdfOptions.ImageQuality      = DevExpress.XtraPrinting.PdfJpegImageQuality.Highest;
                    pdfOptions.PdfACompatibility = DevExpress.XtraPrinting.PdfACompatibility.PdfA2b;
                    dhlReport.ExportToPdf(pdfPath, pdfOptions);
                    result.Status = true;
                }
                else
                {
                    ReportTemplate.Other.PackageLabelsPdfReport pbreport = new ReportTemplate.Other.PackageLabelsPdfReport();
                    pbreport.DataSource = imglist;
                    DevExpress.XtraPrinting.PdfExportOptions pdfOptions = pbreport.ExportOptions.Pdf;
                    pdfOptions.ImageQuality      = DevExpress.XtraPrinting.PdfJpegImageQuality.Highest;
                    pdfOptions.PdfACompatibility = DevExpress.XtraPrinting.PdfACompatibility.PdfA2b;
                    pbreport.ExportToPdf(pdfPath, pdfOptions);
                    result.Status = true;
                }


                return(result);
            }
            catch (Exception ex)
            {
                result.Status = false;

                return(result);
            }
        }