public List <TradelaneBookingCoLoadFormModel> ColoadReportObj(TradelaneBooking ShipmentDetail) { List <TradelaneBookingCoLoadFormModel> ColoadList = new List <TradelaneBookingCoLoadFormModel>(); if (ShipmentDetail != null) { TradelaneBookingCoLoadFormModel ColoadModel = new TradelaneBookingCoLoadFormModel(); ColoadModel.FrayteNumber = ShipmentDetail.FrayteNumber; ColoadModel.ColoadTitle = "CO LOAD BOOKING FORM (" + DateTime.UtcNow.Date.Year + ")"; ColoadModel.ShipperAddress = UtilityRepository.ConcatinateAddress(ShipmentDetail.ShipFrom, ShipmentDetail.DepartureAirport.AirportCode); ColoadModel.ConsigneeAddress = UtilityRepository.ConcatinateAddress(ShipmentDetail.ShipTo, ShipmentDetail.DestinationAirport.AirportCode); ColoadModel.OperationZoneId = UtilityRepository.GetOperationZone().OperationZoneId; ColoadModel.CTCPerson = ""; ColoadModel.ShipperPhoneNo = !string.IsNullOrEmpty(ShipmentDetail.ShipFrom.Phone) && !string.IsNullOrEmpty(ShipmentDetail.ShipFrom.Country.CountryPhoneCode) ? "(+" + ShipmentDetail.ShipFrom.Country.CountryPhoneCode + ") " + ShipmentDetail.ShipFrom.Phone : ""; ColoadModel.ConsigneePhoneNo = !string.IsNullOrEmpty(ShipmentDetail.ShipTo.Phone) && !string.IsNullOrEmpty(ShipmentDetail.ShipTo.Country.CountryPhoneCode) ? "(+" + ShipmentDetail.ShipTo.Country.CountryPhoneCode + ") " + ShipmentDetail.ShipTo.Phone : ""; ColoadModel.NotifyPartyAddress = ShipmentDetail.IsNotifyPartySameAsReceiver ? ColoadModel.ConsigneeAddress : UtilityRepository.ConcatinateAddress(ShipmentDetail.NotifyParty, ""); ColoadModel.NotifyPartyPhoneNo = !string.IsNullOrEmpty(ShipmentDetail.NotifyParty.Phone) && !string.IsNullOrEmpty(ShipmentDetail.NotifyParty.Country.CountryPhoneCode) ? "(+" + ShipmentDetail.NotifyParty.Country.CountryPhoneCode + ") " + ShipmentDetail.NotifyParty.Phone : ""; ColoadModel.CagroReadyDate = dbContext.TradelaneShipmentAllocations.Where(a => a.TradelaneShipmentId == ShipmentDetail.TradelaneShipmentId).FirstOrDefault() != null && dbContext.TradelaneShipmentAllocations.Where(a => a.TradelaneShipmentId == ShipmentDetail.TradelaneShipmentId).FirstOrDefault().CreatedOnUTC != null?dbContext.TradelaneShipmentAllocations.Where(a => a.TradelaneShipmentId == ShipmentDetail.TradelaneShipmentId).FirstOrDefault().CreatedOnUTC.Value.Date.ToString("dd-MMM-yy") : ""; ColoadModel.DepartureAirport = ShipmentDetail.DepartureAirport != null ? ShipmentDetail.DepartureAirport.AirportCode + " - " + ShipmentDetail.DepartureAirport.AirportName : ""; ColoadModel.DestinationAirport = ShipmentDetail.DestinationAirport != null ? ShipmentDetail.DestinationAirport.AirportCode + " - " + ShipmentDetail.DestinationAirport.AirportName : ""; ColoadModel.MawbNo = !string.IsNullOrEmpty(ShipmentDetail.MAWB) ? ShipmentDetail.AirlinePreference.AilineCode + " " + ShipmentDetail.MAWB.Substring(0, 4) + " " + ShipmentDetail.MAWB.Substring(4, 4) : ""; ColoadModel.SpecialInstruction = ""; ColoadModel.ExportLicenceNo = !string.IsNullOrEmpty(ShipmentDetail.ExportLicenceNo) ? ShipmentDetail.ExportLicenceNo : "";; ColoadModel.AirLine = ShipmentDetail.AirlinePreference != null && !string.IsNullOrEmpty(ShipmentDetail.AirlinePreference.AirLineName) ? ShipmentDetail.AirlinePreference.AirLineName : ""; ColoadModel.TotalPackages = GetTotalPackages(ShipmentDetail.TradelaneShipmentId); ColoadModel.ShipmentDescription = !string.IsNullOrEmpty(ShipmentDetail.ShipmentDescription) ? ShipmentDetail.ShipmentDescription : ""; ColoadModel.GrossWeight = GetGrossWeight(ShipmentDetail.TradelaneShipmentId); ColoadModel.Volume = ShipmentDetail.HAWBPackages.Select(a => a.TotalVolume).Sum().ToString(); ColoadModel.CopyrightText = "Published by FRAYTE Logistics Ltd" + Environment.NewLine + "© CopyRight " + DateTime.UtcNow.Date.Year; ColoadList.Add(ColoadModel); } return(ColoadList); }
public List <ExpressReportDriverManifest> GetDriverManifestReportObj(int tradelaneShipmentId, int userId) { List <ExpressReportDriverManifest> list = new List <ExpressReportDriverManifest>(); try { var user = dbContext.Users.Find(userId); string refNO = CommonConversion.GetNewFrayteNumber(); var customerDetail = (from r in dbContext.Users join s in dbContext.TradelaneShipments on r.UserId equals s.CustomerId where s.TradelaneShipmentId == tradelaneShipmentId select new { CustomerName = r.CompanyName }).FirstOrDefault(); var Result = dbContext.ExpressManifests.Where(a => a.TradelaneShipmentId == tradelaneShipmentId).FirstOrDefault(); var ShipmentDetail = new TradelaneBookingRepository().GetTradelaneBookingDetails(tradelaneShipmentId, ""); var hub = (from r in dbContext.ExpressManifests join h in dbContext.Hubs on r.HubId equals h.HubId where r.TradelaneShipmentId == tradelaneShipmentId select h ).FirstOrDefault(); ExpressReportDriverManifest reportObj = new ExpressReportDriverManifest(); reportObj.Ref = refNO; reportObj.Barcode = Result.BarCode; reportObj.DriverManifestName = "Destination Manifest-" + Result.BarCode + " (" + ShipmentDetail.ShipmentHandlerMethod.DisplayName + ")"; // EMPM.ExportManifestName = "Origin Manifest-" + Result.BarCode + " (" + ShipmentDetail.ShipmentHandlerMethod.DisplayName + ")"; reportObj.Hub = hub.Code; reportObj.MAWB = ShipmentDetail.AirlinePreference.AilineCode + " " + ShipmentDetail.MAWB.Substring(0, 4) + " " + ShipmentDetail.MAWB.Substring(4, 4); reportObj.PrintedBy = user.ContactName; var userInfo = (from r in dbContext.Users join tz in dbContext.Timezones on r.TimezoneId equals tz.TimezoneId where r.UserId == userId select tz ).FirstOrDefault(); var UserTimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(userInfo.Name); //UtilityRepository.UtcDateToOtherTimezone(shipment.CreatedOnUtc, shipment.CreatedOnUtc.TimeOfDay, UserTimeZoneInfo); DateTime date = UtilityRepository.UtcDateToOtherTimezone(DateTime.UtcNow, DateTime.UtcNow.TimeOfDay, UserTimeZoneInfo).Item1; string time = UtilityRepository.GetFormattedTimeFromString(UtilityRepository.UtcDateToOtherTimezone(DateTime.UtcNow, DateTime.UtcNow.TimeOfDay, UserTimeZoneInfo).Item2); // Append the created by time zone in time reportObj.PrintedDateTime = date.ToString("dd-MMM-yy") + " " + time + " " + userInfo.OffsetShort; //reportObj.PuickUpAddress = UtilityRepository.ConcatinateAddress(ShipmentDetail.ShipFrom, ""); if (hub != null) { TradelBookingAdress address = new TradelBookingAdress(); address.Address = hub.Address; address.Address2 = hub.Address2; address.City = hub.City; address.State = hub.State; address.PostCode = hub.PostCode; address.Country = new FrayteCountryCode(); address.Phone = hub.TelephoneNo; address.CompanyName = hub.Name; var country = dbContext.Countries.Where(p => p.CountryId == hub.CountryId).FirstOrDefault(); if (country != null) { address.Country.CountryId = country.CountryId; address.Country.Code = country.CountryCode; address.Country.Code2 = country.CountryCode2; address.Country.Name = country.CountryName; } reportObj.PuickUpAddress = UtilityRepository.ConcatinateAddress(address, ""); } //reportObj.PuickUpAddress = UtilityRepository.ConcatinateAddress(ShipmentDetail.ShipTo, ""); reportObj.MAWBChargeableWeight = ShipmentDetail.HAWBPackages.Sum(p => p.TotalWeight * p.TotalCartons); reportObj.MAWBGrossWeight = ShipmentDetail.HAWBPackages.Sum(p => p.TotalWeight * p.TotalCartons); if (ShipmentDetail.ShipmentHandlerMethod.ShipmentHandlerMethodId == 5) { var shipmentAllocation = dbContext.TradelaneShipmentAllocations.Where(p => p.TradelaneShipmentId == tradelaneShipmentId && p.LegNum == "Leg2").OrderByDescending(p => p.TradelaneShipmentAllocationId).FirstOrDefault(); reportObj.FlightNumber = shipmentAllocation.FlightNumber; var Airline = dbContext.Airlines.Find(shipmentAllocation.AirlineId); if (Airline != null) { reportObj.Airline = Airline.AirLineName + " - " + Airline.CarrierCode3; } var timezone = dbContext.Timezones.Find(shipmentAllocation.TimezoneId); if (timezone != null) { var TimeZoneInfor = TimeZoneInfo.FindSystemTimeZoneById(userInfo.Name); //UtilityRepository.UtcDateToOtherTimezone(shipment.CreatedOnUtc, shipment.CreatedOnUtc.TimeOfDay, UserTimeZoneInfo); DateTime date1 = UtilityRepository.UtcDateToOtherTimezone(DateTime.UtcNow, DateTime.UtcNow.TimeOfDay, TimeZoneInfor).Item1; string time1 = UtilityRepository.GetFormattedTimeFromString(UtilityRepository.UtcDateToOtherTimezone(DateTime.UtcNow, DateTime.UtcNow.TimeOfDay, TimeZoneInfor).Item2); // Append the created by time zone in time reportObj.ETA = date1.ToString("dd-MMM-yy") + " " + time1; reportObj.ETATimeZone = "(" + timezone.OffsetShort + ")"; } } else { var shipmentAllocation = dbContext.TradelaneShipmentAllocations.Where(p => p.TradelaneShipmentId == tradelaneShipmentId).OrderByDescending(p => p.TradelaneShipmentAllocationId).FirstOrDefault(); reportObj.FlightNumber = shipmentAllocation.FlightNumber; var Airline = dbContext.Airlines.Find(shipmentAllocation.AirlineId); if (Airline != null) { reportObj.Airline = Airline.AirLineName + " - " + Airline.CarrierCode3; } var timezone = dbContext.Timezones.Find(shipmentAllocation.TimezoneId); if (timezone != null) { var TimeZoneInfor = TimeZoneInfo.FindSystemTimeZoneById(userInfo.Name); //UtilityRepository.UtcDateToOtherTimezone(shipment.CreatedOnUtc, shipment.CreatedOnUtc.TimeOfDay, UserTimeZoneInfo); DateTime date1 = UtilityRepository.UtcDateToOtherTimezone(DateTime.UtcNow, DateTime.UtcNow.TimeOfDay, TimeZoneInfor).Item1; string time1 = UtilityRepository.GetFormattedTimeFromString(UtilityRepository.UtcDateToOtherTimezone(DateTime.UtcNow, DateTime.UtcNow.TimeOfDay, TimeZoneInfor).Item2); // Append the created by time zone in time reportObj.ETA = date1.ToString("dd-MMM-yy") + " " + time1; reportObj.ETATimeZone = "(" + timezone.OffsetShort + ")"; } } reportObj.CarrierBags = new List <ExpressReportDriverManifestBagDetail>(); ExpressReportDriverManifestBagDetail mn; var detail = (from r in dbContext.ExpressManifests join b in dbContext.ExpressBags on r.ExpressManifestId equals b.ManifestId where r.TradelaneShipmentId == tradelaneShipmentId select b).GroupBy(group => group.Courier).Select(p => new { key = p.Key, data = p.Select(q => new { Id = q.DriverManifestId, DriverManifestNumber = dbContext.ExpressDriverManifests.Where(a => a.ExpressDriverManifestId == q.DriverManifestId).FirstOrDefault().DriverManifestBarCode, Carrier = q.Courier, BagBarCode = q.BagBarCode, BagId = q.BagId, BagNumber = q.BagNumber, HubCarrierId = q.HubCarrierId }).ToList() }).ToList(); if (detail.Count > 0) { foreach (var item in detail) { int hubCarrierId = item.data[0].HubCarrierId.HasValue ? item.data[0].HubCarrierId.Value : 0; var hubCarrier = dbContext.HubCarriers.Where(p => p.HubCarrierId == hubCarrierId).FirstOrDefault(); mn = new ExpressReportDriverManifestBagDetail(); mn.Carrier = item.key; mn.CutOffTime = hubCarrier.CutOffTime; mn.NoOfBags = item.data.Count; decimal totalWeight = 0.00M; int totalPieces = 0; foreach (var item1 in item.data) { var ship = (from r in dbContext.Expresses join d in dbContext.ExpressDetails on r.ExpressId equals d.ExpressId where r.BagId == item1.BagId select d ).ToList(); totalPieces += ship.Count; totalWeight = ship.Sum(p => p.Weight * p.CartonQty); } mn.TotalPieces = totalPieces; mn.TotalWeight = totalWeight; reportObj.CarrierBags.Add(mn); } reportObj.CarrierManifests = new List <ExpressReportDriverCarrierManifest>(); ExpressReportDriverCarrierManifest cm; foreach (var item in detail) { cm = new ExpressReportDriverCarrierManifest(); int hubCarrierId = item.data[0].HubCarrierId.HasValue ? item.data[0].HubCarrierId.Value : 0; cm.CarrierManifestBarcoede = item.data.FirstOrDefault().DriverManifestNumber; cm.CarrierManifest = item.key + " - (" + item.data.FirstOrDefault().DriverManifestNumber + ")" + " Destination Manifest"; cm.CarrierBagDetails = new List <ExpressReportCarrierBagDetail>(); ExpressReportCarrierBagDetail d; var hubCarrier = dbContext.HubCarriers.Where(p => p.HubCarrierId == hubCarrierId).FirstOrDefault(); if (hubCarrier != null) { TradelBookingAdress address = new TradelBookingAdress(); address.Address = hubCarrier.Address; address.Address2 = hubCarrier.Address2; address.City = hubCarrier.City; address.State = hubCarrier.State; address.PostCode = hubCarrier.PostCode; address.Country = new FrayteCountryCode(); address.Phone = hubCarrier.TelephoneNo; address.CompanyName = hubCarrier.CompanyName; var country = dbContext.Countries.Where(p => p.CountryId == hubCarrier.CountryId).FirstOrDefault(); if (country != null) { address.Country.CountryId = country.CountryId; address.Country.Code = country.CountryCode; address.Country.Code2 = country.CountryCode2; address.Country.Name = country.CountryName; } cm.DropOffAddress = UtilityRepository.ConcatinateAddress(address, ""); } foreach (var item1 in item.data) { d = new ExpressReportCarrierBagDetail(); d.BagNumber = item1.BagNumber; var sdf = (from r in dbContext.Expresses join ed in dbContext.ExpressDetails on r.ExpressId equals ed.ExpressId where r.BagId == item1.BagId select ed ).ToList(); d.TotalPieces = sdf.Count; d.ExporterName = customerDetail.CustomerName; d.TotalWeight = sdf.Sum(p => p.CartonQty * p.Weight); d.Carrier = item.key; d.BagId = item1.BagId; d.TermAndCondition = hubCarrier.TermAndCondition; cm.CarrierBagDetails.Add(d); } reportObj.CarrierManifests.Add(cm); } } list.Add(reportObj); return(list); } catch (Exception ex) { return(list); } }
public List <TradelaneBookingReportMAWB> GetMAWBObj(int tradelaneShipmentId) { try { List <TradelaneBookingReportMAWB> list = new List <TradelaneBookingReportMAWB>(); TradelaneBookingReportMAWB reportModel = new TradelaneBookingReportMAWB(); var ShipmentDetail = new TradelaneBookingRepository().GetTradelaneBookingDetails(tradelaneShipmentId, ""); var Custompdf = new TradelaneShipmentRepository().GetMawbCustomizePdf(tradelaneShipmentId); string mawb = string.Empty; if (!string.IsNullOrEmpty(ShipmentDetail.MAWB)) { if (ShipmentDetail.MAWB.Length == 8) { mawb = ShipmentDetail.MAWB.Substring(0, 4) + " " + ShipmentDetail.MAWB.Substring(3, 4); } else { mawb = ShipmentDetail.MAWB; } } reportModel.MAWB = mawb; reportModel.ShipperAddress = UtilityRepository.ConcatinateAddress(ShipmentDetail.ShipFrom, ShipmentDetail.DepartureAirport.AirportCode); reportModel.ShipperAccountNumber = string.Empty; reportModel.ConsigneeAddress = UtilityRepository.ConcatinateAddress(ShipmentDetail.ShipTo, ShipmentDetail.DestinationAirport.AirportCode); reportModel.ConsigneeAccountNumber = string.Empty; reportModel.NotifyParty = ShipmentDetail.IsNotifyPartySameAsReceiver ? "NOTIFY: " + reportModel.ConsigneeAddress : "NOTIFY: " + UtilityRepository.ConcatinateAddress(ShipmentDetail.NotifyParty, ""); reportModel.CarrierAgent = string.Empty; reportModel.AirportofDeparture = ShipmentDetail.ShipFrom.Country.Name; reportModel.DestinationAirport = ShipmentDetail.DestinationAirport.AirportName; reportModel.DestinationAirportCode = ShipmentDetail.DestinationAirport.AirportCode; reportModel.CurencyCode = ShipmentDetail.DeclaredCurrency.CurrencyCode; reportModel.AmountOfInsurance = ShipmentDetail.InsuranceAmount.HasValue ? ShipmentDetail.InsuranceAmount.Value : 0; reportModel.MAWBCode = ShipmentDetail.AirlinePreference.AilineCode; reportModel.MAWBWithCode = ShipmentDetail.AirlinePreference.AilineCode + " " + mawb; reportModel.MAWBCountryCode = ShipmentDetail.ShipFrom.Country.Code; reportModel.ShipmentDescription = ShipmentDetail.ShipmentDescription; reportModel.Airline = ShipmentDetail.AirlinePreference.AirLineName; reportModel.IssuingCarriersAgentNameandCity = Custompdf.IssuingCarriersAgentNameandCity; reportModel.AccountNo = Custompdf.AccountNo; reportModel.DeclaredValueForCarriage = Custompdf.DeclaredValueForCarriage; reportModel.DeclaredValueForCustoms = Custompdf.DeclaredValueForCustoms; reportModel.ValuationCharge = Custompdf.ValuationCharge; reportModel.Tax = Custompdf.Tax; reportModel.TotalOtherChargesDueAgent = Custompdf.TotalOtherChargesDueAgent; reportModel.TotalOtherChargesDueCarrier = Custompdf.TotalOtherChargesDueCarrier; reportModel.OtherCharges = Custompdf.OtherCharges; reportModel.ChargesAtDestination = Custompdf.ChargesAtDestination; reportModel.TotalCollectCharges = Custompdf.TotalCollectCharges; reportModel.CurrencyConversionRates = Custompdf.CurrencyConversionRates; reportModel.TotalPrepaid = Custompdf.TotalPrepaid; reportModel.TotalCollect = Custompdf.TotalCollect; reportModel.HandlingInformation = Custompdf.HandlingInformation; reportModel.AgentsIATACode = Custompdf.AgentsIATACode; if (UtilityRepository.GetOperationZone().OperationZoneId == 1) { reportModel.IssuedBy = "FRAYTE LOGISTICS LIMITED" + Environment.NewLine; reportModel.IssuedBy += "501 5/F KWONG LOONG TAI BUILDING" + Environment.NewLine; reportModel.IssuedBy += "1016-1018 TAI NAN WEST STREET" + ", " + "CHEUNG SHA WAN" + " ," + "HON"; } else { reportModel.IssuedBy = "FRAYTE LOGISTICS LIMITED" + Environment.NewLine; reportModel.IssuedBy += "501 5/F KWONG LOONG TAI BUILDING" + Environment.NewLine; reportModel.IssuedBy += "1016-1018 TAI NAN WEST STREET" + ", " + "CHEUNG SHA WAN" + " ," + "HON"; } List <HAWBTradelanePackage> package; var collection = (from r in dbContext.TradelaneShipmentDetails join s in dbContext.TradelaneShipments on r.TradelaneShipmentId equals s.TradelaneShipmentId select new { HAWBNumber = s.HAWBNumber, TradelaneShipmentId = r.TradelaneShipmentId, TradelaneShipmentDetailId = r.TradelaneShipmentDetailId, CartonNumber = r.CartonNumber, CartonValue = r.CartonValue, Length = r.Length, Width = r.Width, Height = r.Height, Weight = r.Weight, HAWB = r.HAWB }).Where(p => p.TradelaneShipmentId == tradelaneShipmentId).ToList(); if (collection.Count > 0) { package = collection.GroupBy(x => x.HAWB) .Select(group => new HAWBTradelanePackage { TradelaneShipmentId = group.FirstOrDefault().TradelaneShipmentId, HAWB = group.Key, HAWBNumber = group.FirstOrDefault().HAWBNumber.HasValue ? group.FirstOrDefault().HAWBNumber.Value : 0, TotalCartons = group.Select(p => p.CartonValue).Sum(), EstimatedWeight = group.Select(p => p.Weight * p.CartonValue).Sum(), TotalVolume = group.Select(p => (p.Length * p.Width * p.Height) * p.CartonValue).Sum(), TotalWeight = group.Select(p => p.Weight * p.CartonValue).Sum(), Packages = group.Select(subGroup => new TradelanePackage { CartonNumber = subGroup.CartonNumber, CartonValue = subGroup.CartonValue, HAWB = subGroup.HAWB, Height = subGroup.Height, Length = subGroup.Length, TradelaneShipmentDetailId = subGroup.TradelaneShipmentDetailId, TradelaneShipmentId = subGroup.TradelaneShipmentId, Weight = subGroup.Weight, Width = subGroup.Width }).ToList() }).ToList(); } else { return(null); } if (package != null) { reportModel.TotalCartons = package.Sum(p => p.TotalCartons); reportModel.TotalWeight = package.Sum(p => p.TotalWeight); reportModel.EstimatedWeight = package.Sum(p => p.EstimatedWeight); reportModel.TotalVolume = reportModel.TotalVolume = ShipmentDetail.PakageCalculatonType == FraytePakageCalculationType.kgtoCms ? Math.Round(package.Sum(p => p.TotalVolume) / (100 * 100 * 100), 2) : Math.Round(package.Sum(p => p.TotalVolume) / (39.37M * 39.37M * 39.37M), 2); reportModel.DimensionUnit = ShipmentDetail.PakageCalculatonType == FraytePakageCalculationType.kgtoCms ? "CM" : "IN"; reportModel.WeightUnit = ShipmentDetail.PakageCalculatonType == FraytePakageCalculationType.kgtoCms ? "KG" : "LB"; reportModel.VolumeUnit = ShipmentDetail.PakageCalculatonType == FraytePakageCalculationType.kgtoCms ? "CBM" : "CBM"; reportModel.ShipmentDescription += Environment.NewLine + "VOL " + reportModel.TotalVolume + " " + reportModel.VolumeUnit; reportModel.ShipmentDescription += Environment.NewLine + "VOL WEIGHT = " + reportModel.TotalWeight + " " + reportModel.WeightUnit; reportModel.CreatedOn = DateTime.UtcNow; reportModel.Signature = "Frayte Logistics SPX"; reportModel.CreatedOnCountry = "Hong Kong"; } list.Add(reportModel); return(list); } catch (Exception ex) { return(null); } }