Untitled
unknown
csharp
2 years ago
18 kB
10
Indexable
[HttpGet]
[Route("CreatePrint/{QuoteID}")]
public clsQuote CreatePrint(string QuoteID)
{
OleDbDataReader objReader;
double tempValue;
bool hasCreditDiscount = false;
double tempDiscountValue;
string Template = _hostingEnvironment.ContentRootPath + "\\Templates\\Quote_Print.html";
string QuoteTxt = System.IO.File.ReadAllText(Template);
//CAMBIO LOS DATOS DE LA AGENCIA Y DEL QUOTE
double Discount = 0;
objReader = AV_Database.DameReader("select *,dbo.[GetQuoteDiscount](QuoteID) discount from quotes where quoteid=" + QuoteID, configuration.GetConnectionString("BaseEnix"));
objReader.Read();
string AgencyID = objReader["AgencyID"].ToString();
string QuoteName = objReader["Name"].ToString();
string QuoteComments = objReader["Comments"].ToString();
Discount = Convert.ToDouble(objReader["Discount"]);
objReader = null;
objReader = AV_Database.DameReader("select ISNULL(Name,'blank.jpg'),Company,Address,zoneid,isnull(phone,'') phone from agency where AgencyID=" + AgencyID, configuration.GetConnectionString("BaseEnix"));
objReader.Read();
string AgencyLogo = configuration.GetSection("General")["BaseBackoffice"].ToString() + "/imagen/agency/" + objReader[0].ToString();
string AgencyName = objReader["Company"].ToString();
string AgencyAddress1 = objReader["Address"].ToString();
string AgencyAddress2 = objReader["zoneid"].ToString();
string AgencyPhone = objReader["phone"].ToString();
objReader.Close();
objReader = null;
//GET CURRENCY SIGN
string MoneySign = "$"; // usd
objReader = AV_Database.DameReader("select * from agency_ext inner join currency on currency.id=agency_ext.DefaultCurrency where agencyid=" + AgencyID, configuration.GetConnectionString("BaseEnix"));
if (objReader.HasRows == true)
{
objReader.Read();
if (objReader["code"].ToString() == "BRL") { MoneySign = "R$"; }
}
objReader = null;
objReader = AV_Database.DameReader("SELECT City + ', ' + State + ', ' + Country FROM vw_Cities where zoneid=" + AgencyAddress2, configuration.GetConnectionString("BaseEnix"));
objReader.Read();
AgencyAddress2 = objReader[0].ToString().ToTitleCase();
objReader = null;
double Total = 0;
double TotalDescuento = 0;
string Servicios = "";
string Servicio;
//CARGO SERVICIOS
List<SMT_BlazorWebApp.Shared.Booking.clsQuoteItem> QuoteItems = GetAgencyQuotesDetails(QuoteID);
foreach (var objItemQuote in QuoteItems)
{
Servicio = "";
string Line1 = "";
string Line2_Arrival = "Arrival: " + objItemQuote.SearchObject.DateFrom.ToString("dd/MMM/yyyy") + " - " + objItemQuote.SearchObject.DateTo.ToString("dd/MMM/yyyy");
string Line3 = "";
Line1 = objItemQuote.ObjectBooking.SelectedObject.Address;
Line3 = objItemQuote.ObjectBooking.SelectedObject.City + " - " + objItemQuote.ObjectBooking.SelectedObject.Country;
switch (objItemQuote.SearchObject.searchType)
{
case SearchType.Hotels:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_hotel.jpg' style='width:60px'></td>";
break;
case SearchType.UniversalResort:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_hotel.jpg' style='width:60px'></td>";
break;
case SearchType.DisneyResort:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_disney.jpg' style='width:60px'></td>";
break;
case SearchType.DisneyTickets:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_admission.jpg' style='width:60px'></td>";
break;
case SearchType.UniversalTickets:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_admission.jpg' style='width:60px'></td>";
break;
case SearchType.Admissions:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_admission.jpg' style='width:60px'></td>";
break;
case SearchType.Insurance:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_insurance.jpg' style='width:60px'></td>";
break;
case SearchType.Cars:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_car.jpg' style='width:60px'></td>";
Line1 = "Pickup: " + objItemQuote.SearchObject.SearchObject.Nombre + " - " + objItemQuote.SearchObject.DateFrom.ToString("dd/MMMM/yyyy hh:mm:tt");
Line3 = "Dropoff: " + objItemQuote.SearchObject.SearchObject_Destination.Nombre + " - " + objItemQuote.SearchObject.DateTo.ToString("dd/MMMM/yyyy hh:mm:tt");
break;
case SearchType.Transfers:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_transfer.jpg' style='width:60px'></td>";
Line1 = "Airline: " + objItemQuote.ObjectBooking.SelectedObject.Transfer_Airline + " - " + objItemQuote.ObjectBooking.SelectedObject.Transfer_Hour;
Line3 = "Comment: " + objItemQuote.ObjectBooking.SelectedObject.Transfer_Comment;
break;
case SearchType.Excursions:
Servicio = "<tr><td class='IconCell' valign='center'><img src='https://content.enix.travel/icons/icon_excursion.jpg' style='width:60px'></td>";
break;
}
Servicio += " <td class='voucher-numbersCell2' valign='top' style='width:100%'><table width='100%' class='voucher-productDescription'><tr>";
string Paxes = "";
Paxes = objItemQuote.SearchObject.Rooms[0].Adults.ToString() + " (AD) ";
if (objItemQuote.SearchObject.Rooms[0].Childs > 0)
{
Paxes += "- " + objItemQuote.SearchObject.Rooms[0].Childs.ToString() + " (CD)";
}
if (objItemQuote.ObjectBooking.HasCreditDiscount)
{
hasCreditDiscount = true;
{
tempValue = objItemQuote.ObjectBooking.SelectedObject_SubItem.Price_Enix.GetPriceCurrencyFirstCurrency();
tempDiscountValue = tempValue - (tempValue * (objItemQuote.ObjectBooking.CreditDiscount));
//this.HasCreditDiscountHelper = objQuoteItem.ObjectBooking.HasCreditDiscount;
//var totalCost = ((@objQuoteItem.ObjectBooking.SelectedObject_SubItem.Price_Enix.MainCurrency_MarkedUp) * ExchangeRate);
//sumTotalCosts += totalCost;
//TotalTest = sumTotalCosts;
//TotalDiscounted += tempDiscountValue;
}
if (objItemQuote.SearchObject.searchType == SearchType.DisneyResort)
{
if (objItemQuote.SearchObject.Disney_AdmissionTypeID != 0)
{
double exchangeRate = objItemQuote.ObjectBooking.SelectedObject_SubItem.Price_Enix.CurrencyPrices[0].ExchangeRate;
tempValue = (((objItemQuote.Item_OriginalValue + objItemQuote.Item_MarkupFixed) / (1 - (objItemQuote.Item_MarkupPercentage / 100))) * exchangeRate);
tempDiscountValue = tempValue - (tempValue * (objItemQuote.ObjectBooking.CreditDiscount));
TotalDescuento += tempDiscountValue;
//Servicio += "<tr style='font-weight:bold'><td colspan=2 style='width:80%;padding-bottom:5px'>" + objItemQuote.ObjectBooking.SelectedObject.Name + " - " + objItemQuote.SearchObject.Disney_AdmissionDays + " " + objItemQuote.SearchObject.Disney_AdmissionType + "</td><td style='padding-bottom:5px' rowspan='4'>" + MoneySign + " " + (((objItemQuote.Item_OriginalValue + objItemQuote.Item_MarkupFixed) * (1 + (objItemQuote.Item_MarkupPercentage / 100))) * exchangeRate).ToString("0.00") + "</td></tr>";
Servicio += "<tr style='font-weight:bold'><td colspan=2 style='width:80%;padding-bottom:5px'>" + objItemQuote.ObjectBooking.SelectedObject.Name + " - " + objItemQuote.SearchObject.Disney_AdmissionDays + " " + objItemQuote.SearchObject.Disney_AdmissionType + "</td><td style='padding-bottom:5px' rowspan='4'>À vista com desconto <br><font style='color:red !important'>" + MoneySign + " " + tempDiscountValue.ToString("0.00") + "</font><br><font style='color:red !important'>" + MoneySign + " " + tempValue.ToString("0.00") + "</font> no cartão<br>Em até 10x sem juros de<br><font style='color:red !important'>" + MoneySign + " " + (tempValue / 10).ToString("0.00") + "</font></td></tr>";
}
else
{
TotalDescuento += tempDiscountValue;
//Servicio += "<tr style='font-weight:bold'><td colspan=2 style='width:80%;padding-bottom:5px'>" + objItemQuote.ObjectBooking.SelectedObject.Name + "</td><td style='padding-bottom:5px' rowspan='4'>" + MoneySign + " " + objItemQuote.ObjectBooking.SelectedObject_SubItem.Price_Enix.GetPriceCurrencyFirstCurrency().ToString("0.00") + "</td></tr>";
Servicio += "<tr style='font-weight:bold'><td colspan=2 style='width:80%;padding-bottom:5px'>" + objItemQuote.ObjectBooking.SelectedObject.Name + "</td><td style='padding-bottom:5px' rowspan='4'>À vista com desconto<br><font style='color:red !important'>" + MoneySign + " " + tempDiscountValue.ToString("0.00") + "</font><br><font style='color:red !important'>" + MoneySign + " " + tempValue.ToString("0.00") + "</font> no cartão<br>Em até 10x sem juros de<br><font style='color:red !important'>" + MoneySign + " " + (tempValue / 10).ToString("0.00") + "</font></td></tr>";
}
}
else
{
TotalDescuento += tempDiscountValue;
Servicio += "<tr style='font-weight:bold'><td colspan=2 style='width:80%;padding-bottom:5px'>" + objItemQuote.ObjectBooking.SelectedObject.Name + "</td><td style='padding-bottom:5px' rowspan='4'>À vista com desconto<br><font style='color:red !important'>" + MoneySign + " " + tempDiscountValue.ToString("0.00") + "</font><br><font style='color:red !important'>" + MoneySign + " " + tempValue.ToString("0.00") + "</font> no cartão<br>Em até 10x sem juros de<br><font style='color:red !important'>" + MoneySign + " " + (tempValue / 10).ToString("0.00") + "</font></td></tr>";
}
Servicio += "<tr ><td style='width:40%;padding-right:10px'>" + objItemQuote.ObjectBooking.SelectedObject_SubItem.Name + "</td><td style='width:40%'>" + Line1 + "</td></tr>";
Servicio += "<tr><td style='width:40%'>" + Line2_Arrival + "</td><td style='width:40%'>" + Line3 + "</td></tr>";
Servicio += "<tr><td style='width:40%'>" + Paxes + "</td><td></td></tr>";
Servicio += "</tr></table></td>";
Servicio += "</tr>";
Servicios += Servicio;
}
else
{
if (objItemQuote.SearchObject.searchType == SearchType.DisneyResort)
{
if (objItemQuote.SearchObject.Disney_AdmissionTypeID != 0)
{
double exchangeRate = objItemQuote.ObjectBooking.SelectedObject_SubItem.Price_Enix.CurrencyPrices[0].ExchangeRate;
Servicio += "<tr style='font-weight:bold'><td colspan=2 style='width:80%;padding-bottom:5px'>" + objItemQuote.ObjectBooking.SelectedObject.Name + " - " + objItemQuote.SearchObject.Disney_AdmissionDays + " " + objItemQuote.SearchObject.Disney_AdmissionType + "</td><td style='padding-bottom:5px'>" + MoneySign + " " + (((objItemQuote.Item_OriginalValue + objItemQuote.Item_MarkupFixed) / (1 - (objItemQuote.Item_MarkupPercentage / 100))) * exchangeRate).ToString("0.00") + "</td></tr>";
}
else
{
Servicio += "<tr style='font-weight:bold'><td colspan=2 style='width:80%;padding-bottom:5px'>" + objItemQuote.ObjectBooking.SelectedObject.Name + "</td><td style='padding-bottom:5px'>" + MoneySign + " " + objItemQuote.ObjectBooking.SelectedObject_SubItem.Price_Enix.GetPriceCurrencyFirstCurrency().ToString("0.00") + "</td></tr>";
}
}
else
{
Servicio += "<tr style='font-weight:bold'><td colspan=2 style='width:80%;padding-bottom:5px'>" + objItemQuote.ObjectBooking.SelectedObject.Name + "</td><td style='padding-bottom:5px'>" + MoneySign + " " + objItemQuote.ObjectBooking.SelectedObject_SubItem.Price_Enix.GetPriceCurrencyFirstCurrency().ToString("0.00") + "</td></tr>";
}
Servicio += "<tr ><td style='width:40%;padding-right:10px'>" + objItemQuote.ObjectBooking.SelectedObject_SubItem.Name + "</td><td style='width:40%'>" + Line1 + "</td><td></td></tr>";
Servicio += "<tr><td style='width:40%'>" + Line2_Arrival + "</td><td style='width:40%'>" + Line3 + "</td><td></td></tr>";
Servicio += "<tr><td style='width:40%'>" + Paxes + "</td><td></td><td></td></tr>";
Servicio += "</tr></table></td>";
Servicio += "</tr>";
Servicios += Servicio;
}
if (objItemQuote.SearchObject.searchType == SearchType.DisneyResort)
{
double exchangeRate = objItemQuote.ObjectBooking.SelectedObject_SubItem.Price_Enix.CurrencyPrices[0].ExchangeRate;
Total += (((objItemQuote.Item_OriginalValue + objItemQuote.Item_MarkupFixed) / (1 - (objItemQuote.Item_MarkupPercentage / 100))) * exchangeRate);
}
else
{
Total += objItemQuote.ObjectBooking.SelectedObject_SubItem.Price_Enix.GetPriceCurrencyFirstCurrency();
}
}
//REAMPLAZOS HEADER
QuoteTxt = QuoteTxt.Replace("_LOGOURL_", AgencyLogo);
QuoteTxt = QuoteTxt.Replace("_QUOTENAME_", QuoteName.ToTitleCase());
QuoteTxt = QuoteTxt.Replace("_QUOTEID_", QuoteID);
QuoteTxt = QuoteTxt.Replace("_AGENCY_", AgencyName.ToUpper());
if (configuration.GetValue<string>("TTC_Instance") == "SUNCOAST")
{
QuoteTxt = QuoteTxt.Replace("_ADDRESS1_", AgencyPhone);
QuoteTxt = QuoteTxt.Replace("_ADDRESS2_", "");
}
else
{
QuoteTxt = QuoteTxt.Replace("_ADDRESS1_", AgencyAddress1);
QuoteTxt = QuoteTxt.Replace("_ADDRESS2_", AgencyAddress2);
}
QuoteTxt = QuoteTxt.Replace("_QUOTECOMMENT_", QuoteComments);
//GENERACION DE SERVICIOS
QuoteTxt = QuoteTxt.Replace("_CONTENIDO_", Servicios);
//REEMPLAZO FOOTER
if (hasCreditDiscount)
{
QuoteTxt = QuoteTxt.Replace("_QUOTETOTAL_", "Total Geral à vista: " + MoneySign + " " + TotalDescuento.ToString("0.00") + "<br><br>No cartão (até 10x de " + MoneySign + " " + (Total / 10).ToString("0.00") + " sem juros) " + MoneySign + " " + Total.ToString("0.00"));
}
else
{
QuoteTxt = QuoteTxt.Replace("_QUOTETOTAL_", "Total: " + MoneySign + " " + Total.ToString("0.00"));
}
//ESCRIBE HTML
string TemplateOut = configuration.GetValue<string>("QuotePath");
System.IO.File.WriteAllText(TemplateOut + QuoteID + ".html", QuoteTxt);
//MANDAR A PROCESAR EL PDF
PDF_Generator.PDF_GeneratorSoapClient objPDF = new PDF_Generator.PDF_GeneratorSoapClient(PDF_Generator.PDF_GeneratorSoapClient.EndpointConfiguration.PDF_GeneratorSoap12, configuration.GetSection("General")["BackendPDF"].ToString());
objPDF.ConvertHTML_ToPDF(TemplateOut + QuoteID + ".html", TemplateOut, "Quote_" + QuoteID);
objPDF = null;
clsQuote salida = new clsQuote();
salida.PDFPath = configuration.GetValue<string>("QuoteURL") + "Quote_" + QuoteID + ".pdf";
//DEVUELVO EL PATH AL QUOTE.PDF
return salida;
}Editor is loading...