public static async Task <int> Part2() { var lines = await FileHelper.GetInputLinesAsync("1.txt"); int sum = 0; foreach (var line in lines) { if (int.TryParse(line, out int mass)) { sum += FuelHelper.CalculateFuelAddingFuelMass(mass); } } return(sum); }
public static byte[] combustibleIndividual(string JsonData, MemoryStream template) { using (ExcelPackage xlPackage = new ExcelPackage(new MemoryStream(), template)) { ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets[1]; int startRow = 23, startColumn = 1; //los declaramos desde aqui por si hay cambios en el template, ajustarlos facilmente FuelHelper fuelReporObj = new FuelHelper(JsonData); string distUnit = fuelReporObj.unitDistance; string volUnit = fuelReporObj.unitVol; string velStr = "(" + distUnit + "/Hr)"; string currencyStr = fuelReporObj.currency.ToUpper(); string performanceStr = "(" + distUnit + "/" + volUnit + ")"; worksheet.Cells[3, 5].Value = fuelReporObj.Unit; // nombre de unidad worksheet.Cells[5, 2].Value = Math.Round( float.Parse(fuelReporObj.velMaxima ) , 2) + "(" + distUnit + "/Hr)"; // Velocidad Max worksheet.Cells[6, 2].Value = Math.Round( float.Parse(fuelReporObj.rendBruto ), 2) + "(" + distUnit +"/" + volUnit +")";//Rend Bruta worksheet.Cells[7, 2].Value = Math.Round( float.Parse(fuelReporObj.rendEfectivo),2) + "(" + distUnit +"/" + volUnit + ")"; // Rend Efectivo worksheet.Cells[5, 4].Value = fuelReporObj.tMovimiento; // Tiempo Movimiento worksheet.Cells[6, 4].Value = fuelReporObj.tMuerto; // tiempo muerto worksheet.Cells[5, 6].Value = fuelReporObj.IDate; // fecha inicial worksheet.Cells[6, 6].Value = fuelReporObj.FDate; // fecha final // worksheet.Cells[9, 5].Value = "MEtrica"; // Metric avelocidad int colR = 3; int rowR = 12; string volEn = ""; string costEn = ""; string velMaxHead = ""; string perfBruteHead = ""; string perfEfecHead = ""; string costHead = ""; string volStr = ""; string distStr = ""; string velHead = "Velocidad"; if (fuelReporObj.language.Equals("Spanish")) { volEn = "Volumen en "; // tabla rendimiento costEn = "Costo en "; // tabla REndimiento velMaxHead = "Velocidad Max. "; // tabla REndimiento perfBruteHead = "Rend. Bruto "; perfEfecHead = "Rend. Efectivo"; costHead = "Costo "; volStr = "Volumen"; distStr = "Distancia"; velHead = "Velocidad"; } else { volEn = "Volume in "; // tabla rendimiento costEn = "Cost in "; // tabla REndimiento velMaxHead = "Max. Speed "; // tabla REndimiento perfBruteHead = "Brute Perf. "; perfEfecHead = "Efective Perf. "; costHead = "Cost "; volStr = "Volume"; distStr = "Distance"; velHead = "Speed"; } worksheet.Cells[rowR - 1, colR + 1].Value = volEn + volUnit; worksheet.Cells[rowR - 1, colR + 2].Value = costEn + currencyStr; worksheet.Cells[startRow - 1, startColumn + 1].Value = volStr + "(" + volUnit + ")"; worksheet.Cells[startRow - 1, startColumn + 2].Value = costHead + "(" + currencyStr + ")";// tabal evento if ((string)fuelReporObj.showHis == "do") { worksheet.Cells[startRow - 1, 9 + 1].Value = volStr + velStr; worksheet.Cells[startRow - 1, 9 + 5].Value = volStr + "(" + volUnit + ")"; } worksheet.Cells[rowR, colR+1].Value = Math.Round( float.Parse(fuelReporObj.combuIni) ,2 ); worksheet.Cells[rowR, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.iniCost),2); worksheet.Cells[rowR+1, colR].Value = Math.Round(float.Parse(fuelReporObj.numCargas),2); worksheet.Cells[rowR+1, colR + 1].Value = Math.Round( float.Parse(fuelReporObj.volCargas),2); worksheet.Cells[rowR+1, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.costCargas),2); worksheet.Cells[rowR + 2, colR].Value = Math.Round(float.Parse(fuelReporObj.numDescargas),2); worksheet.Cells[rowR + 2, colR + 1].Value = Math.Round(float.Parse(fuelReporObj.volDescargas),2); worksheet.Cells[rowR + 2, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.costDescargas),2); worksheet.Cells[rowR + 3, colR].Value = fuelReporObj.valRalenti; worksheet.Cells[rowR + 3, colR + 1].Value = Math.Round(float.Parse(fuelReporObj.volRalenti),2); worksheet.Cells[rowR + 3, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.costRalenti),2); worksheet.Cells[rowR + 4, colR].Value = fuelReporObj.consumedVal + " ( " + distUnit + ")"; worksheet.Cells[rowR + 4, colR + 1].Value = Math.Round(float.Parse(fuelReporObj.consumedVol),2); worksheet.Cells[rowR + 4, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.consumedCost),2); worksheet.Cells[rowR + 5, colR+1].Value = Math.Round( float.Parse(fuelReporObj.combuFin),2); worksheet.Cells[rowR + 5, colR + 2].Value = Math.Round( float.Parse(fuelReporObj.finCost),2); int rowActual = startRow; string mapa = Resources.Reportes.aspx.Mapa; dynamic dataArrayEv = fuelReporObj.dataEvent; if (dataArrayEv.Count > 1) worksheet.InsertRow(startRow, dataArrayEv.Count - 1, startRow); foreach (var eventObj in dataArrayEv) { //int columna = 1; var eventoEv = eventObj.status; var volume = eventObj.volume; var cost = eventObj.cost; var date = eventObj.date; var address = eventObj.address; var city = eventObj.city; var link = eventObj.link; System.Web.UI.WebControls.HyperLink linkO = new System.Web.UI.WebControls.HyperLink(); linkO.NavigateUrl = link; linkO.Text = "Link"; worksheet.Cells[rowActual, 1].Value = (string)eventoEv; worksheet.Cells[rowActual, 2].Value = Math.Round(float.Parse( (string)volume ),2); worksheet.Cells[rowActual, 3].Value = Math.Round(float.Parse((string)cost),2); worksheet.Cells[rowActual, 4].Value = (string)date; worksheet.Cells[rowActual, 5].Value = (string)address; worksheet.Cells[rowActual, 6].Value = (string)city; worksheet.Cells[rowActual, 7].Formula = string.Format("HYPERLINK(\"{0}\",\"{1}\")", link, mapa); ; rowActual++; } rowActual = startRow; int colHist = 9; if ((string)fuelReporObj.showHis == "do") { dynamic dataHist = fuelReporObj.dataHist; /* if (dataHist.Count > 1) worksheet.InsertRow(startRow, dataHist.Count - 1, startRow); */ foreach (var histObj in dataHist) { var date = histObj.date; var velocidad = histObj.speed; var address = histObj.address; var city = histObj.city; var eventoEv = histObj.evento; var volume = histObj.volume; var link = histObj.link; System.Web.UI.WebControls.HyperLink linkO = new System.Web.UI.WebControls.HyperLink(); linkO.NavigateUrl = link; linkO.Text = "Link"; worksheet.Cells[rowActual, colHist ].Value = (string)date; worksheet.Cells[rowActual, colHist + 1].Value = Math.Round(float.Parse((string)velocidad), 0); worksheet.Cells[rowActual, colHist + 2].Value = (string)address; worksheet.Cells[rowActual, colHist + 3].Value = (string)city; worksheet.Cells[rowActual, colHist + 4].Value = (string)eventoEv; worksheet.Cells[rowActual, colHist + 5].Value = Math.Round(float.Parse((string)volume), 2); worksheet.Cells[rowActual, colHist + 6].Formula = string.Format("HYPERLINK(\"{0}\",\"{1}\")", link, mapa); ; rowActual++; } } return xlPackage.GetAsByteArray(); } }
public static byte[] combustibleGrupal(string JsonData, MemoryStream template) { using (ExcelPackage xlPackage = new ExcelPackage(new MemoryStream(), template)) { ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets[1]; int startRow = 23, startColumn = 1; //los declaramos desde aqui por si hay cambios en el template, ajustarlos facilmente FuelHelper fuelReporObj = new FuelHelper(JsonData); string distUnit = fuelReporObj.unitDistance; string volUnit = fuelReporObj.unitVol; string velStr = "(" + distUnit + "/Hr)"; string currencyStr = fuelReporObj.currency.ToUpper(); string performanceStr = "(" + distUnit + "/" + volUnit + ")"; worksheet.Cells[7, 2].Value = fuelReporObj.Unit; // nombre de unidad //worksheet.Cells[7, 2].Value = ; // Velocidad Max worksheet.Cells[7, 4].Value = Math.Round(float.Parse(fuelReporObj.velMaxima), 2) + "(" + distUnit + "/Hr)"; // Velocidad Max worksheet.Cells[5, 2].Value = Math.Round(float.Parse(fuelReporObj.rendBruto), 2) + "(" + distUnit + "/" + volUnit + ")";//Rend Bruta worksheet.Cells[6, 2].Value = Math.Round(float.Parse(fuelReporObj.rendEfectivo), 2) + "(" + distUnit + "/" + volUnit + ")"; // Rend Efectivo worksheet.Cells[5, 4].Value = fuelReporObj.tMovimiento; // Tiempo Movimiento worksheet.Cells[6, 4].Value = fuelReporObj.tMuerto; // tiempo muerto worksheet.Cells[5, 6].Value = fuelReporObj.IDate; // fecha inicial worksheet.Cells[6, 6].Value = fuelReporObj.FDate; // fecha final int colR = 3; int rowR = 12; string volEn = ""; string costEn = ""; string velMaxHead = ""; string perfBruteHead = ""; string perfEfecHead = ""; string costHead = ""; string volStr = ""; string distStr = ""; if (fuelReporObj.language.Equals("Spanish")) { volEn = "Volumen en " ; // tabla rendimiento costEn = "Costo en " ; // tabla REndimiento velMaxHead = "Velocidad Max. "; // tabla REndimiento perfBruteHead = "Rend. Bruto "; perfEfecHead = "Rend. Efectivo"; costHead = "Costo "; volStr = "Volumen"; distStr = "Distancia"; } else { volEn = "Volume in "; // tabla rendimiento costEn = "Cost in "; // tabla REndimiento velMaxHead = "Max. Speed "; // tabla REndimiento perfBruteHead = "Brute Perf. "; perfEfecHead = "Efective Perf. "; costHead = "Cost "; volStr = "Volume"; distStr = "Distance"; } worksheet.Cells[rowR - 1, colR + 1].Value = volEn + volUnit; worksheet.Cells[rowR - 1, colR + 2].Value = costEn + currencyStr; worksheet.Cells[startRow - 1, 2].Value = velMaxHead + velStr; // tabla REndimiento worksheet.Cells[startRow - 1, 5].Value = perfBruteHead + performanceStr; worksheet.Cells[startRow - 1, 6].Value = perfEfecHead + performanceStr; worksheet.Cells[startRow - 1, 8+1].Value = volStr + "(" + volUnit + ")"; // tabla inicial worksheet.Cells[startRow - 1, 8+2].Value = costHead + "(" + currencyStr + ")"; worksheet.Cells[startRow - 1, 12+1].Value = volStr + "(" + volUnit + ")";// tabla final worksheet.Cells[startRow - 1, 12+2].Value = costHead + "(" + currencyStr + ")"; worksheet.Cells[startRow - 1, 16+2].Value = volStr + "(" + volUnit + ")";// tabla Cargas worksheet.Cells[startRow - 1, 16+3].Value = costHead + "(" + currencyStr + ")"; worksheet.Cells[startRow - 1, 21+2].Value = volStr + "(" + volUnit + ")";// tabla Descargas worksheet.Cells[startRow - 1, 21+3].Value = costHead + "(" + currencyStr + ")"; worksheet.Cells[startRow - 1, 26+2].Value = volStr + "(" + volUnit + ")";// Raleti worksheet.Cells[startRow - 1, 26+3].Value = costHead + "(" + currencyStr + ")"; worksheet.Cells[startRow - 1, 31 + 1].Value = distStr + "(" + distUnit + ")";// tabla Consumido worksheet.Cells[startRow - 1, 31+2].Value = volStr + "(" + volUnit + ")"; worksheet.Cells[startRow - 1, 31+3].Value = costHead + "(" + currencyStr + ")"; /** TITULOS ENCABEZADOS **/ worksheet.Cells[rowR, colR + 1].Value = Math.Round(float.Parse(fuelReporObj.combuIni), 2); worksheet.Cells[rowR, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.iniCost), 2); worksheet.Cells[rowR + 1, colR].Value = Math.Round(float.Parse(fuelReporObj.numCargas), 2); worksheet.Cells[rowR + 1, colR + 1].Value = Math.Round(float.Parse(fuelReporObj.volCargas), 2); worksheet.Cells[rowR + 1, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.costCargas), 2); worksheet.Cells[rowR + 2, colR].Value = Math.Round(float.Parse(fuelReporObj.numDescargas), 2); worksheet.Cells[rowR + 2, colR + 1].Value = Math.Round(float.Parse(fuelReporObj.volDescargas), 2); worksheet.Cells[rowR + 2, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.costDescargas), 2); worksheet.Cells[rowR + 3, colR].Value = fuelReporObj.valRalenti; worksheet.Cells[rowR + 3, colR + 1].Value = Math.Round(float.Parse(fuelReporObj.volRalenti), 2); worksheet.Cells[rowR + 3, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.costRalenti), 2); worksheet.Cells[rowR + 4, colR].Value = fuelReporObj.consumedVal + " ( " + distUnit + ")"; worksheet.Cells[rowR + 4, colR + 1].Value = Math.Round(float.Parse(fuelReporObj.consumedVol), 2); worksheet.Cells[rowR + 4, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.consumedCost), 2); worksheet.Cells[rowR + 5, colR + 1].Value = Math.Round(float.Parse(fuelReporObj.combuFin), 2); worksheet.Cells[rowR + 5, colR + 2].Value = Math.Round(float.Parse(fuelReporObj.finCost), 2); int rowActual = startRow; dynamic dataGroup = fuelReporObj.groupData; if (dataGroup.Count > 1) worksheet.InsertRow(startRow, dataGroup.Count - 1, startRow); foreach (var groupObj in dataGroup) { var unit = groupObj.Descripcion; var vMax = groupObj.VMax; var TMov = groupObj.TMov; var TMuerto = groupObj.TMuerto; var RendBruto = groupObj.RendBruto; var RendEfectivo = groupObj.RendEfectivo; worksheet.Cells[rowActual, 1].Value = (string)unit; worksheet.Cells[rowActual, 2].Value = Math.Round(float.Parse((string)vMax), 0); worksheet.Cells[rowActual, 3].Value = (string)TMov; worksheet.Cells[rowActual, 4].Value = (string)TMuerto; worksheet.Cells[rowActual, 5].Value = Math.Round(float.Parse((string)RendBruto), 2); worksheet.Cells[rowActual, 6].Value = Math.Round(float.Parse((string)RendEfectivo), 2); rowActual++; } rowActual = startRow; startColumn = 8; dynamic dataInical = fuelReporObj.initialFuelData; /* if (dataGroup.Count > 1) worksheet.InsertRow(startRow, dataGroup.Count - 1, startRow); */ foreach (var initialData in dataInical) { var unit = initialData.Descripcion; var volumen = initialData.volume; var costo = initialData.Precio; worksheet.Cells[rowActual, startColumn ].Value = (string)unit; worksheet.Cells[rowActual, startColumn + 1].Value = Math.Round(float.Parse((string)volumen), 0); worksheet.Cells[rowActual, startColumn + 2].Value = Math.Round(float.Parse((string)costo), 2); rowActual++; } rowActual = startRow; startColumn = 12; dynamic dataFinal = fuelReporObj.currentFuelData; foreach (var finalUnit in dataInical) { var unit = finalUnit.Descripcion; var volumen = finalUnit.volume; var costo = finalUnit.Precio; worksheet.Cells[rowActual, startColumn ].Value = (string)unit; worksheet.Cells[rowActual, startColumn + 1].Value = Math.Round(float.Parse((string)volumen), 0); worksheet.Cells[rowActual, startColumn + 2].Value = Math.Round(float.Parse((string)costo), 2); rowActual++; } rowActual = startRow; startColumn = 16; dynamic dataLoad = fuelReporObj.fuelLoadData; foreach (var loadUnit in dataLoad) { var unit = loadUnit.Descripcion; var cantidad = loadUnit.Cantidad; var volumen = loadUnit.volume; var costo = loadUnit.Precio; worksheet.Cells[rowActual, startColumn].Value = (string)unit; worksheet.Cells[rowActual, startColumn + 1].Value = Math.Round(float.Parse((string)cantidad), 0); worksheet.Cells[rowActual, startColumn + 2].Value = Math.Round(float.Parse((string)volumen), 0); worksheet.Cells[rowActual, startColumn + 3].Value = Math.Round(float.Parse((string)costo), 2); rowActual++; } rowActual = startRow; startColumn = 21; dynamic dataDis = fuelReporObj.fuelDischargeData; foreach (var disUnit in dataDis) { var unit = disUnit.Descripcion; var cantidad = disUnit.Cantidad; var volumen = disUnit.volume; var costo = disUnit.Precio; worksheet.Cells[rowActual, startColumn].Value = (string)unit; worksheet.Cells[rowActual, startColumn + 1].Value = Math.Round(float.Parse((string)cantidad), 0); worksheet.Cells[rowActual, startColumn + 2].Value = Math.Round(float.Parse((string)volumen), 0); worksheet.Cells[rowActual, startColumn + 3].Value = Math.Round(float.Parse((string)costo), 2); rowActual++; } rowActual = startRow; startColumn = 26; dynamic dataRalenti = fuelReporObj.idleData; foreach (var ralUnit in dataRalenti) { var unit = ralUnit.Descripcion; var tiempo = ralUnit.Tiempo; var volumen = ralUnit.volume; var costo = ralUnit.Precio; worksheet.Cells[rowActual, startColumn].Value = (string)unit; worksheet.Cells[rowActual, startColumn + 1].Value = (string)tiempo; worksheet.Cells[rowActual, startColumn + 2].Value = Math.Round(float.Parse((string)volumen), 0); worksheet.Cells[rowActual, startColumn + 3].Value = Math.Round(float.Parse((string)costo), 2); rowActual++; } rowActual = startRow; startColumn = 31; dynamic dataConsu = fuelReporObj.consumedData; foreach (var consuUnit in dataConsu) { var unit = consuUnit.Descripcion; var distancia = consuUnit.distance; var volumen = consuUnit.volume; var costo = consuUnit.Precio; worksheet.Cells[rowActual, startColumn].Value = (string)unit; worksheet.Cells[rowActual, startColumn + 1].Value = (string)distancia; worksheet.Cells[rowActual, startColumn + 2].Value = Math.Round(float.Parse((string)volumen), 0); worksheet.Cells[rowActual, startColumn + 3].Value = Math.Round(float.Parse((string)costo), 2); rowActual++; } return xlPackage.GetAsByteArray(); } }
/*** combustible pdf ***/ public static byte[] combustibleIndividual(string JsonData) { FuelHelper fuelReporObj = new FuelHelper(JsonData); Document document = new Document(); DefineStyles(document); Section section = document.AddSection(); string distUnit = fuelReporObj.unitDistance; string volUnit = fuelReporObj.unitVol; string volParStr = "(" + fuelReporObj.unitVol + ")"; string velStr = "(" + distUnit + "/Hr)"; string currencyStr = fuelReporObj.currency.ToUpper(); string currencyParStr = "(" + fuelReporObj.currency.ToUpper() +")"; string performanceStr = "(" + distUnit + "/" + volUnit + ")"; bool isSingleReport = fuelReporObj.typeOfReport.Equals("individual"); string volEn = ""; string costEn = ""; string velMaxHead = ""; string perfBruteHead = ""; string perfEfecHead = ""; string costHead = ""; string volStr = ""; string distStr = ""; string fechaIniStr = ""; string fechaFinStr = ""; string tiempoMovStr = ""; string tiempoMuertoStr= ""; string combuStr = ""; string valueStr = ""; string iniStr = ""; string cargStr = ""; string descStr = ""; string ralentiStr = ""; string consuStr = ""; string finalStr = ""; string eventoStr = ""; string fechaStr = ""; string direccion = ""; string rendTablaStr = ""; string eventTableStr = ""; string costStr = ""; string histTitle = ""; string speedStr = ""; string unitStr = ""; string cantidadStr = ""; string timeStr = ""; string behFuelTable = ""; string intiTable = ""; string finalTable = ""; string chargesTable = ""; string drainTable = ""; string idleTable = ""; string consumed = ""; /**** Cosas de cambio de idioma y lt y km :( not proud ****/ string headerDoc = ""; if (fuelReporObj.language.Equals("Spanish")) { volEn = "Volumen en "; // tabla rendimiento costEn = "Costo en "; // tabla REndimiento velMaxHead = "Velocidad Max. "; // tabla REndimiento perfBruteHead = "Rend. Bruto "; perfEfecHead = "Rend. Efectivo"; costHead = "Costo "; volStr = "Volumen"; distStr = "Distancia"; fechaIniStr = "Fecha Final: "; fechaFinStr = "Fecha Inicial: "; tiempoMovStr = "Tiempo en Mov. "; tiempoMuertoStr = "Tiempo Muerto: "; combuStr = "Combustible"; valueStr = "Valor "; iniStr = "Inicial "; cargStr = "Cargas"; descStr = "Descargas"; ralentiStr = "Ralentí"; consuStr = "Consumido"; finalStr = "Final"; eventoStr = "Evento"; fechaStr = "Fecha y Hora"; direccion = "Dirección"; rendTablaStr = "Reporte de Rendimiento"; eventTableStr = "Eventos Carga y Descarga"; costStr = "Costo"; histTitle = "Tabla Historico Combustible"; speedStr = "Velocidad " ; unitStr = "Unidad"; cantidadStr = "Cantidad "; timeStr = "Tiempo"; behFuelTable = "Resumen Comportamiento Combustible"; intiTable = "Combustible Inicial"; finalTable = "Combustible Final"; chargesTable = "Combustible Cargas"; drainTable = "Combustible Descargas"; idleTable = "Ralentí"; consumed = "Consumido"; if (isSingleReport) { headerDoc = "Reporte Combustible - " + fuelReporObj.Unit; } else { headerDoc = "Reporte Combustible Grupal"; } } else { volEn = "Volume in "; // tabla rendimiento costEn = "Cost in "; // tabla REndimiento velMaxHead = "Max. Speed "; // tabla REndimiento perfBruteHead = "Brute Perf. "; perfEfecHead = "Efective Perf. "; costHead = "Cost "; volStr = "Volume"; distStr = "Distance"; fechaIniStr = "Initial Date: "; fechaFinStr = "Final Date: "; tiempoMovStr = "Time Moving: "; tiempoMuertoStr = "Dead Time: "; combuStr = "Fuel"; valueStr = "Value"; iniStr = "Initial"; cargStr = "Refuel"; descStr = "Drain"; ralentiStr = "Idle"; consuStr = "Consumed"; finalStr = "Final"; eventoStr = "Event"; fechaStr = "Date and Time"; direccion = "Address"; rendTablaStr = "Performance Report"; eventTableStr = "Fuel Event Table"; costStr = "Cost "; histTitle = "Historic Report Table"; speedStr = "Speed "; unitStr = "Unit"; cantidadStr = "Quantity"; timeStr = "Tme"; behFuelTable = "Fuel Behavior"; intiTable = "Initial Fuel"; finalTable = "Final Fuel"; chargesTable = "Refuel Table"; drainTable = "Drain Table"; idleTable = "Idle"; consumed = "Consumed"; if (isSingleReport) { headerDoc = "Individual Fuel Report of " + fuelReporObj.Unit; } else { headerDoc = "Group Fuel Report"; } } #region header y fechas logo Paragraph resumen = section.AddParagraph(); resumen.Style = "Header"; resumen.Format.Alignment = ParagraphAlignment.Center; resumen.AddText(headerDoc); // Encabezado section.AddParagraph(); #endregion Table tablaFechas = section.AddTable(); tablaFechas.Borders.Visible = false; tablaFechas.AddColumn("3cm").Format.Alignment = ParagraphAlignment.Left; tablaFechas.AddColumn("5cm").Format.Alignment = ParagraphAlignment.Left; tablaFechas.AddColumn("3cm").Format.Alignment = ParagraphAlignment.Left; tablaFechas.AddColumn("5cm").Format.Alignment = ParagraphAlignment.Left; Row rowFecha = tablaFechas.AddRow(); rowFecha.HeadingFormat = false; rowFecha.Cells[0].AddParagraph(fechaIniStr).Format.Font.Bold = true; // Fecha Inicial rowFecha.Cells[1].AddParagraph(fuelReporObj.IDate); rowFecha.Cells[2].AddParagraph(fechaFinStr).Format.Font.Bold = true; // Fecha Final rowFecha.Cells[3].AddParagraph(fuelReporObj.FDate); Row rowRest = tablaFechas.AddRow(); rowRest.HeadingFormat = false; rowRest.Cells[0].AddParagraph(tiempoMovStr).Format.Font.Bold = true; // head stuff like vel. Max y Tiempo Muerto rowRest.Cells[1].AddParagraph(fuelReporObj.tMovimiento); rowRest.Cells[2].AddParagraph(tiempoMuertoStr).Format.Font.Bold = true; rowRest.Cells[3].AddParagraph(fuelReporObj.tMuerto); section.AddParagraph(); Row rowRend = tablaFechas.AddRow();; rowFecha.HeadingFormat = false; /// performance and stuff rowFecha.Cells[0].AddParagraph(perfBruteHead).Format.Font.Bold = true; rowFecha.Cells[1].AddParagraph(fuelReporObj.rendBruto + performanceStr); rowFecha.Cells[2].AddParagraph(perfEfecHead).Format.Font.Bold = true; rowFecha.Cells[3].AddParagraph(fuelReporObj.rendEfectivo + performanceStr); //section.AddParagraph(); // Put a logo in the header Image image = section.Headers.Primary.AddImage(System.Web.HttpContext.Current.Server.MapPath("~/images/index/zeek_logo_trans_neg.png")); image.Height = "1.5cm"; image.LockAspectRatio = true; image.RelativeVertical = RelativeVertical.Line; image.RelativeHorizontal = RelativeHorizontal.Margin; image.Top = ShapePosition.Top; image.Left = ShapePosition.Left; image.WrapFormat.Style = WrapStyle.Through; /** En esta seccion se agrega para el performance report ***/ Paragraph performance = section.AddParagraph(); performance.Style = "Header"; performance.Format.Alignment = ParagraphAlignment.Center; performance.AddText(string.Format(rendTablaStr)); section.AddParagraph(); Table performanceTable = section.AddTable(); performanceTable.Style = EstiloTabla; performanceTable.Borders.Color = Colors.Gray; performanceTable.Borders.Width = BorderWidth; performanceTable.Borders.Left.Width = LeftWidth; performanceTable.Borders.Right.Width = RightWidth; performanceTable.Rows.LeftIndent = LeftIndent; for (int i = 0; i < MedidasRendimiento.Length; i++) performanceTable.AddColumn(MedidasRendimiento[i]); Row rowPer = performanceTable.AddRow(); rowPer.HeadingFormat = true; rowPer.Format.Alignment = AlineamientoTableHead; rowPer.Format.Font.Bold = true; rowPer.Shading.Color = ColorFondoTableHead; rowPer.Cells[0].AddParagraph(combuStr); rowPer.Cells[1].AddParagraph(valueStr); rowPer.Cells[2].AddParagraph(volEn + fuelReporObj.unitVol); rowPer.Cells[3].AddParagraph(costEn + fuelReporObj.currency); rowPer.HeadingFormat = false; //Agregar contenido de a la tabla Rendimiento. var combuIni = fuelReporObj.combuIni; var iniCost = fuelReporObj.iniCost; var combuFin = fuelReporObj.combuFin; var finCost = fuelReporObj.finCost; var numCargas = fuelReporObj.numCargas; var volCargas = fuelReporObj.volCargas; var costCargas = fuelReporObj.costCargas; var numDescargas = fuelReporObj.numDescargas; var volDescargas = fuelReporObj.volDescargas; var costDescargas = fuelReporObj.costDescargas; var valRalenti = fuelReporObj.valRalenti; var volRalenti = fuelReporObj.volRalenti; var costRalenti = fuelReporObj.costRalenti; var consumedVal = fuelReporObj.consumedVal; var consumedVol = fuelReporObj.consumedVol; var consumedCost = fuelReporObj.consumedCost; rowPer = performanceTable.AddRow(); rowPer.Cells[0].AddParagraph(iniStr); // Inicial rowPer.Cells[1].AddParagraph(" "); rowPer.Cells[2].AddParagraph((string)combuIni); rowPer.Cells[3].AddParagraph((string)iniCost); rowPer = performanceTable.AddRow(); rowPer.Cells[0].AddParagraph(cargStr); // Cargas rowPer.Cells[1].AddParagraph((string)numCargas); rowPer.Cells[2].AddParagraph((string)volCargas); rowPer.Cells[3].AddParagraph((string)costCargas); rowPer.Shading.Color = ColorFondoRow; rowPer = performanceTable.AddRow(); rowPer.Cells[0].AddParagraph(descStr); //Descargas rowPer.Cells[1].AddParagraph((string)numDescargas); rowPer.Cells[2].AddParagraph((string)volDescargas); rowPer.Cells[3].AddParagraph((string)costDescargas); rowPer = performanceTable.AddRow(); rowPer.Cells[0].AddParagraph(ralentiStr); // Ralenti rowPer.Cells[1].AddParagraph((string)valRalenti); rowPer.Cells[2].AddParagraph((string)volRalenti); rowPer.Cells[3].AddParagraph((string)costRalenti); rowPer.Shading.Color = ColorFondoRow; rowPer = performanceTable.AddRow(); rowPer.Cells[0].AddParagraph(consuStr); // consumido rowPer.Cells[1].AddParagraph((string)consumedVal); rowPer.Cells[2].AddParagraph((string)consumedVol); rowPer.Cells[3].AddParagraph((string)consumedCost); rowPer = performanceTable.AddRow(); rowPer.Cells[0].AddParagraph(finalStr); // Final rowPer.Cells[1].AddParagraph(" "); rowPer.Cells[2].AddParagraph((string)combuFin); rowPer.Cells[3].AddParagraph((string)finCost); rowPer.Shading.Color = ColorFondoRow; if (isSingleReport) { dynamic dataArrayEv = fuelReporObj.dataEvent; /************* En esta seccion se agrega para el Reporte de Eventos ****/ int dataArrayEvLength = 0; foreach (var eventObj in dataArrayEv) { dataArrayEvLength++; } if (dataArrayEvLength > 0) { section.AddParagraph(); Paragraph headerEvent = section.AddParagraph(); headerEvent.Style = "Header"; headerEvent.Format.Alignment = ParagraphAlignment.Center; headerEvent.AddText(string.Format(eventTableStr)); section.AddParagraph(); Table tabla = section.AddTable(); tabla.Style = EstiloTabla; tabla.Borders.Color = ColorBorderTabla; tabla.Borders.Width = BorderWidth; tabla.Borders.Left.Width = LeftWidth; tabla.Borders.Right.Width = RightWidth; tabla.Rows.LeftIndent = LeftIndent; for (int i = 0; i < MedidasCombuEventos.Length; i++) tabla.AddColumn(MedidasCombuEventos[i]); Row row = tabla.AddRow(); row.HeadingFormat = true; row.Format.Alignment = AlineamientoTableHead; row.Format.Font.Bold = true; row.Shading.Color = ColorFondoTableHead; row.Cells[0].AddParagraph(eventoStr); row.Cells[1].AddParagraph(volStr + "(" + volUnit + ")"); row.Cells[2].AddParagraph(costStr +"(" + currencyStr + ")"); row.Cells[3].AddParagraph(fechaStr); row.Cells[4].AddParagraph(direccion); row.HeadingFormat = false; //Agregar contenido de a la tabla. int counter = 0; foreach (var eventObj in dataArrayEv) { var status = eventObj.status; var volume = eventObj.volume; var cost = eventObj.cost; var date = eventObj.date; var address = eventObj.address; var city = eventObj.city; row = tabla.AddRow(); if (counter % 2 == 0) row.Shading.Color = ColorFondoRow; row.Cells[0].AddParagraph((string)status); row.Cells[1].AddParagraph((string)volume); row.Cells[2].AddParagraph((string)cost); row.Cells[3].AddParagraph((string)date); row.Cells[4].AddParagraph((string)address + " " + (string)city); counter++; } } /**** Esta seccion se agrega para el Reporte Historico **/ if ((string)fuelReporObj.showHis == "do") { section.AddPageBreak(); Paragraph headerHist = section.AddParagraph(); headerHist.Style = "Header"; headerHist.Format.Alignment = ParagraphAlignment.Center; headerHist.AddText(string.Format(histTitle)); section.AddParagraph(); Table tablaHist = section.AddTable(); tablaHist.Style = EstiloTabla; tablaHist.Borders.Color = ColorBorderTabla; tablaHist.Borders.Width = BorderWidth; tablaHist.Borders.Left.Width = LeftWidth; tablaHist.Borders.Right.Width = RightWidth; tablaHist.Rows.LeftIndent = LeftIndent; for (int i = 0; i < MedidasCombuHist.Length; i++) tablaHist.AddColumn(MedidasCombuHist[i]); Row rowHist = tablaHist.AddRow(); rowHist.HeadingFormat = true; rowHist.Format.Alignment = AlineamientoTableHead; rowHist.Format.Font.Bold = true; rowHist.Shading.Color = ColorFondoTableHead; rowHist.Cells[0].AddParagraph(fechaStr); rowHist.Cells[1].AddParagraph(speedStr); rowHist.Cells[2].AddParagraph(direccion); rowHist.Cells[3].AddParagraph(eventoStr); rowHist.Cells[4].AddParagraph(volStr + " (" + volUnit + ")"); int counterHist = 0; dynamic dataArrayHist = fuelReporObj.dataHist; foreach (var eventObj in dataArrayHist) { var date = eventObj.date; var vel = eventObj.speed; var address = eventObj.address; var eventHist = eventObj.evento; var volume = eventObj.volume; var city = eventObj.city; rowHist = tablaHist.AddRow(); if (counterHist % 2 == 0) rowHist.Shading.Color = ColorFondoRow; rowHist.Cells[0].AddParagraph((string)date); rowHist.Cells[1].AddParagraph((string)vel); rowHist.Cells[2].AddParagraph((string)address + " " + (string)city); rowHist.Cells[3].AddParagraph((string)eventHist); rowHist.Cells[4].AddParagraph((string)volume); counterHist++; } } } /******************** ESTA SECCION ES PARA AGREGAR TABLAS DE GRUPAL ************/ else { dynamic dataArrayGroup = fuelReporObj.groupData; dynamic dataArrayInit = fuelReporObj.initialFuelData; dynamic dataArrayLoad = fuelReporObj.fuelLoadData; dynamic dataArrayDis = fuelReporObj.fuelDischargeData; dynamic dataArrayiddle = fuelReporObj.idleData; dynamic dataArrayConsumed = fuelReporObj.consumedData; dynamic dataArrayCurrent = fuelReporObj.currentFuelData; string unidadStr = unitStr ; string volumenStr = volStr + volParStr; string costoStr = costStr + currencyParStr; string velMaxStr = velMaxHead + velStr; string tMovStr = tiempoMovStr ; string tMuertoStr = tiempoMuertoStr; string rendBrutoStr = perfBruteHead + performanceStr; string rendEfectivo = perfEfecHead + performanceStr; string cantStr = cantidadStr; string time = timeStr; string[] groupHeaders = new[] { unidadStr, velMaxStr, tMovStr, tMuertoStr, rendBrutoStr, rendEfectivo }; string[] initalHeaders = new[] { unidadStr, volumenStr, costoStr }; string[] fuelChargeHeader = new[] { unidadStr, cantStr, volumenStr, costoStr }; string[] ralentiHeader = new[] { unidadStr, time, volumenStr, costoStr }; string[] consumedHeader = new[] { unidadStr, time, volumenStr, costoStr }; createTable(section, behFuelTable, groupHeaders, dataArrayGroup, "comportamiento"); createTable(section, intiTable, initalHeaders, dataArrayInit, "initial"); createTable(section, finalTable, initalHeaders, dataArrayCurrent, "final"); createTable(section, chargesTable, fuelChargeHeader, dataArrayLoad, "cargas"); createTable(section, drainTable, fuelChargeHeader, dataArrayDis, "descargas"); createTable(section, idleTable, ralentiHeader, dataArrayiddle, "ralenti"); createTable(section, consumed, consumedHeader, dataArrayConsumed, "consumido"); } /**** Este es el final al terminar de hacer el PDF ***/ PdfDocumentRenderer renderer = new PdfDocumentRenderer(false, PdfFontEmbedding.Always); renderer.Document = document; renderer.RenderDocument(); using (MemoryStream ms = new MemoryStream()) { renderer.Save(ms, false); byte[] buffer = new byte[ms.Length]; ms.Seek(0, SeekOrigin.Begin); ms.Flush(); ms.Read(buffer, 0, (int)ms.Length); return ms.ToArray(); } }
public Guid SaveFuelInfo(Fuel fuel) { var adaptedFuel = new FuelHelper().AdaptFuel(fuel); return(_fuelRepository.SaveFuel(adaptedFuel)); }