Example #1
0
        public GraficoContratos GetGraficoContratados(string tipo, DateTime fecha, int id_area, bool incluir_dependencias)
        {
            GraficoContratos grafico = new GraficoContratos();

            /*if (incluir_dependencias == incluir_dependencias_anterior)
             * {
             *  if (GRAFICO_CONTRATO != null)
             *  {
             *      if (GRAFICO_CONTRATO.ContienePersonasAContratar())
             *      {
             *          CrearResumen(GRAFICO_CONTRATO, tipo, fecha);
             *      }
             *
             *      return GRAFICO_CONTRATO;
             *  }
             * }*/

            //id_area_anterior = id_area;
            incluir_dependencias_anterior = incluir_dependencias;
            var parametros = new Dictionary <string, object>();

            parametros.Add("@area", id_area);
            parametros.Add("@estado_selecc", "P");
            parametros.Add("@usuario", 1);
            //parametros.Add("@orden", 0);
            parametros.Add("@incluir_dependencias", incluir_dependencias);
            var tablaDatos = conexion_bd.Ejecutar("dbo.CTR_GET_Seleccion_Contratos_WEB", parametros);

            var tablaDatosEstados = conexion_bd.Ejecutar("dbo.CTR_GET_Seleccion_Estados_WEB");

            grafico.Estados = new List <EstadoContrato>();

            tablaDatosEstados.Rows.ForEach(row => {
                var estado         = new EstadoContrato();
                estado.Id          = row.GetInt("Id");
                estado.Nombre      = row.GetString("Estado");
                estado.NombreCorto = row.GetString("NombreCorto");
                estado.Orden       = row.GetInt("Orden");
                grafico.Estados.Add(estado);
            });

            if (tablaDatos.Rows.Count > 0)
            {
                grafico.CrearDatos(tablaDatos.Rows);
            }
            if (grafico.ContienePersonasAContratar())
            {
                CrearResumen(grafico, tipo, fecha);
            }

            GRAFICO_CONTRATO = grafico;

            return(grafico);
        }
Example #2
0
        public string ExcelGeneradoContratos(string tipo, int dia, int mes, int anio, bool incluir_dependencias, int id_area)
        {
            try
            {
                DateTime           fecha = new DateTime(anio, mes, dia);
                RepositorioDeAreas repositorio_de_areas = RepositorioDeAreas.NuevoRepositorioDeAreas(this.conexion_bd);
                GraficoContratos   graficoExcel         = GetGraficoContratados(tipo, fecha, id_area, incluir_dependencias);

                DataTable table_resumen = new DataTable();
                table_resumen.TableName = "Resumen";

                DataTable table_detalle = new DataTable();
                table_detalle.TableName = "Detalle";

                Area area = repositorio_de_areas.GetAreaPorId(id_area);

                table_resumen.Columns.Add("Informacion");
                table_resumen.Columns.Add("Cantidad");
                table_resumen.Columns.Add("Porcentaje(%)");

                table_detalle.Columns.Add("Area");
                table_detalle.Columns.Add("NroDocumento");
                table_detalle.Columns.Add("Apellido_Nombre");
                table_detalle.Columns.Add("Detalle");
                table_detalle.Columns.Add("Informe");


                foreach (var item in graficoExcel.tabla_resumen)
                {
                    table_resumen.Rows.Add(item.DescripcionGrafico,
                                           item.Cantidad,
                                           Math.Truncate(item.Porcentaje * 100) / 100
                                           );
                }

                foreach (var item in graficoExcel.tabla_detalle_contratos)
                {
                    table_detalle.Rows.Add(item.Area,
                                           item.NroDocumento,
                                           item.Apellido + " " + item.Nombre,
                                           item.Estado,
                                           item.Informe
                                           );
                }


                var workbook = new XLWorkbook();
                //var dataTable_consulta_parametros = table;
                var dataTable_resumen = table_resumen;
                var dataTable_detalle = table_detalle;
                var ws = workbook.Worksheets.Add("Resumen");

                ws.Style.Font.FontSize = 11;
                ws.Style.Font.FontName = "Verdana";

                ws.Column("A").Width = 15;
                ws.Column("B").Width = 15;
                ws.Column("C").Width = 25;
                ws.Column("D").Width = 25;
                ws.Column("E").Width = 25;

                // ws.Cell(1, 1).Value = "FECHA:";
                //  ws.Cell(2, 1).Value = "AREA:";

                ws.Cell(1, 1).Style.Font.Bold = true;
                ws.Cell(2, 1).Style.Font.Bold = true;

                //  ws.Cell(1, 2).Value = fecha.ToShortDateString();
                //   ws.Cell(2, 2).Value = area.Nombre.ToUpper();

                ws.Range(4, 1, 4, 3).Style.Fill.BackgroundColor = XLColor.FromArgb(79, 129, 189);
                ws.Range(4, 1, 4, 3).Style.Alignment.SetHorizontal(XLAlignmentHorizontalValues.Center);

                ws.Range(4, 1, 4, 3).Style.Font.FontColor = XLColor.White;

                ws.Cell(4, 1).Value = "Informacion";
                ws.Cell(4, 2).Value = "Cantidad";
                ws.Cell(4, 3).Value = "Porcentaje %";
                //   ws.Cell(4, 4).Value = "Porcentaje Hombres";
                //   ws.Cell(4, 5).Value = "Porcentaje Mujeres";


                var rangeWithData = ws.Cell(5, 1).InsertData(dataTable_resumen.AsEnumerable());

                var lastCell = ws.LastCellUsed();

                ws.Range(4, 1, lastCell.Address.RowNumber, lastCell.Address.ColumnNumber).Style.Border.InsideBorder  = XLBorderStyleValues.Thin;
                ws.Range(4, 1, lastCell.Address.RowNumber, lastCell.Address.ColumnNumber).Style.Border.OutsideBorder = XLBorderStyleValues.Medium;

                ws.Range(5, 2, lastCell.Address.RowNumber, lastCell.Address.ColumnNumber).DataType = XLCellValues.Number;

                workbook.Worksheets.Add(dataTable_detalle);

                var lastCell2 = workbook.Worksheet(2).LastCellUsed();
                //workbook.Worksheet(2).Range(2, 2, lastCell2.Address.RowNumber, 2).DataType = XLCellValues.Number;


                //workbook.Worksheet(2).Range(2, 4, lastCell2.Address.RowNumber, 4).DataType = XLCellValues.Number;
                //workbook.Worksheet(2).Range(2, 8, lastCell2.Address.RowNumber, 8).DataType = XLCellValues.Number;

                workbook.Worksheet(2).Column("A").Width = 25;
                workbook.Worksheet(2).Column("B").Width = 15;
                workbook.Worksheet(2).Column("C").Width = 25;
                workbook.Worksheet(2).Column("D").Width = 8;
                workbook.Worksheet(2).Column("E").Width = 10;
                workbook.Worksheet(2).Column("F").Width = 18;
                workbook.Worksheet(2).Column("G").Width = 18;
                workbook.Worksheet(2).Column("H").Width = 18;
                workbook.Worksheet(2).Column("I").Width = 18;
                workbook.Worksheet(2).Column("J").Width = 18;


                using (var ms = new MemoryStream())
                {
                    workbook.SaveAs(ms);
                    return(Convert.ToBase64String(ms.ToArray()));
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }