Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
    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();
        }
    }
Exemplo n.º 3
0
    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();
        }
    }
Exemplo n.º 4
0
    /*** 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();
           }
    }
Exemplo n.º 5
0
        public Guid SaveFuelInfo(Fuel fuel)
        {
            var adaptedFuel = new FuelHelper().AdaptFuel(fuel);

            return(_fuelRepository.SaveFuel(adaptedFuel));
        }