public static IB.Progress.Models.FormacionDemandada catFormacionDemandada(Int32 desde, Int32 hasta, Nullable <Int16> t941_idcolectivo)
    {
        IB.Progress.BLL.FormacionDemandada dFormacionDemandada = null;
        int idficepiConectado = int.Parse(((IB.Progress.Models.Profesional)HttpContext.Current.Session["PROFESIONAL"]).t001_idficepi.ToString());

        try
        {
            dFormacionDemandada = new IB.Progress.BLL.FormacionDemandada();

            IB.Progress.Models.FormacionDemandada valores = dFormacionDemandada.catFormacionDemandada(idficepiConectado, desde, hasta, t941_idcolectivo);

            dFormacionDemandada.Dispose();

            List <object> lista = new List <object>();

            lista.Add(desde);
            lista.Add(hasta);
            lista.Add(t941_idcolectivo);

            HttpContext.Current.Session["filtrosFormacionDemandada"] = lista;

            return(valores);
        }
        catch (Exception ex)
        {
            if (dFormacionDemandada != null)
            {
                dFormacionDemandada.Dispose();
            }
            IB.Progress.Shared.Smtp.SendSMTP("Error al cargar el catálogo de formación demandada.", ex.Message);
            throw ex;
        }
    }
Пример #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string sExtension = ".xlsx";
        string sFilename  = "";

        byte[]  oExcel   = null;
        string  pantalla = Request.QueryString["pantalla"];
        DataSet ds       = new DataSet();

        Response.ClearContent();
        Response.ClearHeaders();
        Response.Buffer = true;


        svcEXCEL.IsvcEXCELClient osvcEXCEL = new svcEXCEL.IsvcEXCELClient();
        try
        {
            switch (pantalla)
            {
            //Exportación del equipo desde la pantalla de desglose de rol
            case "desgloserol":

                //recuperar parametros del querystring
                int    idficepi         = int.Parse(Request.QueryString["idficepi"]);
                int    parentesco       = int.Parse(Request.QueryString["parentesco"]);
                string idficepitext     = Request.QueryString["idficepitext"];
                string parentescotext   = Request.QueryString["parentescotext"];
                int    numprofesionales = int.Parse(Request.QueryString["numprofesionales"]);

                sFilename = "desglose por rol" + sExtension;

                IB.Progress.BLL.DesgloseRol dRol = null;
                try
                {
                    //Datatable de cabecera
                    DataTable  dtH = new DataTable("HEAD-Excel");
                    DataColumn dtc = new DataColumn("clave");
                    dtH.Columns.Add(dtc);
                    dtc = new DataColumn("valor");
                    dtH.Columns.Add(dtc);
                    DataRow oRow = dtH.NewRow();
                    oRow[0] = "title";
                    oRow[1] = "Profesionales por rol";
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Evaluador";
                    oRow[1] = idficepitext;
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Nivel de dependencia";
                    oRow[1] = parentescotext;
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Total profesionales";
                    oRow[1] = numprofesionales;
                    dtH.Rows.Add(oRow);


                    //Datatable de cuerpo
                    List <IB.Progress.Models.DesgloseRol> desgloseRol = null;
                    dRol        = new IB.Progress.BLL.DesgloseRol();
                    desgloseRol = dRol.catalogoDesgloseRol(idficepi, parentesco);
                    dRol.Dispose();

                    //eliminar las filas con profesional = "";
                    desgloseRol = (from o in desgloseRol
                                   where o.Profesional.Length > 0
                                   select o).ToList <IB.Progress.Models.DesgloseRol>();

                    //convertir la lista a datatable
                    DataTable dtbody = desgloseRol.CopyGenericToDataTable <IB.Progress.Models.DesgloseRol>();
                    dtbody.TableName = "BODY-Excel";

                    //Eliminar las columnas no necesarias
                    ArrayList arl = new ArrayList();
                    foreach (DataColumn c in dtbody.Columns)
                    {
                        if (c.ColumnName.ToLower().Trim() != "desrol" && c.ColumnName.ToLower().Trim() != "profesional")
                        {
                            arl.Add(c);
                        }
                    }
                    foreach (DataColumn dc in arl)
                    {
                        dtbody.Columns.Remove(dc.ColumnName);
                    }

                    //renombar columnas
                    dtbody.Columns["desrol"].ColumnName      = "Rol";
                    dtbody.Columns["profesional"].ColumnName = "Profesional";

                    //reordenar columnas
                    dtbody.Columns["Rol"].SetOrdinal(0);
                    dtbody.Columns["Profesional"].SetOrdinal(1);


                    //Agregar al dataset
                    ds.Tables.Add(dtH);
                    ds.Tables.Add(dtbody);


                    //exportar
                    oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (dRol != null)
                    {
                        dRol.Dispose();
                    }
                }
                break;

            case "solicitudesaprobadas":

                //recuperar parametros del querystring
                int idficepiSolicitudesaprobadas = int.Parse(Request.QueryString["idficepi"]);

                IB.Progress.BLL.TramitacionCambioRol dTramitacion = null;
                try
                {
                    //Datatable de cabecera
                    DataTable  dtH = new DataTable("HEAD-Excel");
                    DataColumn dtc = new DataColumn("clave");
                    dtH.Columns.Add(dtc);
                    dtc = new DataColumn("valor");
                    dtH.Columns.Add(dtc);
                    DataRow oRow = dtH.NewRow();
                    oRow[0] = "title";
                    oRow[1] = "Solicitudes aprobadas";
                    dtH.Rows.Add(oRow);

                    //Datatable de cuerpo
                    List <IB.Progress.Models.TramitacionCambioRol> tramit = null;
                    dTramitacion = new IB.Progress.BLL.TramitacionCambioRol();
                    tramit       = dTramitacion.getSolicitudesSegunEstado(Convert.ToChar("P"), idficepiSolicitudesaprobadas);
                    dTramitacion.Dispose();

                    ////convertir la lista a datatable
                    DataTable dtbody = tramit.CopyGenericToDataTable <IB.Progress.Models.TramitacionCambioRol>();
                    dtbody.TableName = "BODY-Excel";


                    //Eliminar las columnas no necesarias
                    ArrayList arl = new ArrayList();
                    foreach (DataColumn c in dtbody.Columns)
                    {
                        if (c.ColumnName.ToLower().Trim() != "nombre_interesado" && c.ColumnName.ToLower().Trim() != "nombre_promotor" &&
                            c.ColumnName.ToLower().Trim() != "t940_desrolactual" && c.ColumnName.ToLower().Trim() != "t940_desrolpropuesto" &&
                            c.ColumnName.ToLower().Trim() != "t940_motivopropuesto" && c.ColumnName.ToLower().Trim() != "t940_fechaproposicion" &&
                            c.ColumnName.ToLower().Trim() != "aprobador" && c.ColumnName.ToLower().Trim() != "t940_fecharesolucion")
                        {
                            arl.Add(c);
                        }
                    }
                    foreach (DataColumn dc in arl)
                    {
                        dtbody.Columns.Remove(dc.ColumnName);
                    }


                    dtbody.Columns["nombre_interesado"].ColumnName     = "Profesional";
                    dtbody.Columns["nombre_promotor"].ColumnName       = "Evaluador";
                    dtbody.Columns["t940_desrolActual"].ColumnName     = "Rol actual";
                    dtbody.Columns["t940_desrolPropuesto"].ColumnName  = "Rol propuesto";
                    dtbody.Columns["t940_motivopropuesto"].ColumnName  = "Motivo";
                    dtbody.Columns["t940_fechaproposicion"].ColumnName = "Proposición";
                    dtbody.Columns["aprobador"].ColumnName             = "Aprobador";
                    dtbody.Columns["t940_fecharesolucion"].ColumnName  = "Aprobación";

                    //Reordenar columnas
                    dtbody.Columns["Profesional"].SetOrdinal(0);
                    dtbody.Columns["Evaluador"].SetOrdinal(1);
                    dtbody.Columns["Rol actual"].SetOrdinal(2);
                    dtbody.Columns["Rol propuesto"].SetOrdinal(3);
                    dtbody.Columns["Motivo"].SetOrdinal(4);
                    dtbody.Columns["Proposición"].SetOrdinal(5);
                    dtbody.Columns["Aprobador"].SetOrdinal(6);
                    dtbody.Columns["Aprobación"].SetOrdinal(7);

                    //Agregar al dataset
                    ds.Tables.Add(dtH);
                    ds.Tables.Add(dtbody);

                    //exportar
                    oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename);
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                finally
                {
                    if (dTramitacion != null)
                    {
                        dTramitacion.Dispose();
                    }
                }
                break;

            case "formaciondemandada":

                //recuperar parametros del querystring
                int    idficepiFormacionDemandada = int.Parse(Request.QueryString["idficepi"]);
                int    desde                 = int.Parse(Request.QueryString["desde"]);
                int    hasta                 = int.Parse(Request.QueryString["hasta"]);
                string selmesinitext         = Request.QueryString["mesinitext"];
                string selanoinitext         = Request.QueryString["anoinitext"];
                string selmesfintext         = Request.QueryString["mesfintext"];
                string selanofintext         = Request.QueryString["anofintext"];
                int    numevaluadosFormacion = int.Parse(Request.QueryString["numevaluaciones"]);

                Nullable <short> colectivo     = short.Parse(Request.QueryString["colectivo"]);
                string           colectivotext = Request.QueryString["colectivotext"];

                sFilename = "Formación demandada" + sExtension;
                IB.Progress.BLL.FormacionDemandada dFormacion = null;
                try
                {
                    //Datatable de cabecera
                    DataTable  dtH = new DataTable("HEAD-Excel");
                    DataColumn dtc = new DataColumn("clave");
                    dtH.Columns.Add(dtc);
                    dtc = new DataColumn("valor");
                    dtH.Columns.Add(dtc);
                    DataRow oRow = dtH.NewRow();
                    oRow[0] = "title";
                    oRow[1] = "Formación demandada";
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Desde";
                    oRow[1] = selmesinitext + " " + selanoinitext;
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Hasta";
                    oRow[1] = selmesfintext + " " + selanofintext;
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Colectivo";
                    oRow[1] = colectivotext;
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Total evaluaciones";
                    oRow[1] = numevaluadosFormacion;
                    dtH.Rows.Add(oRow);

                    //Datatable de cuerpo
                    IB.Progress.Models.FormacionDemandada formacionDemandada = null;
                    dFormacion         = new IB.Progress.BLL.FormacionDemandada();
                    formacionDemandada = dFormacion.catFormacionDemandada(idficepiFormacionDemandada, desde, hasta, colectivo);
                    dFormacion.Dispose();

                    ////convertir la lista a datatable
                    DataTable dtbody = formacionDemandada.FormacionDemandadaS1.CopyGenericToDataTable <IB.Progress.Models.FormacionDemandadaSelect1>();
                    dtbody.TableName = "BODY-Excel";

                    ////Eliminar las columnas no necesarias
                    dtbody.Columns.Remove("t930_idvaloracion");
                    dtbody.Columns.Remove("idformulario");

                    //Agregar al dataset
                    ds.Tables.Add(dtH);
                    ds.Tables.Add(dtbody);

                    //exportar
                    oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename);
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                finally{
                    if (dFormacion != null)
                    {
                        dFormacion.Dispose();
                    }
                }
                break;


            case "arboldependencias":

                //recuperar parametros del querystring
                int    idficepiArbol     = int.Parse(Request.QueryString["idficepi"]);
                string idficepitextArbol = Request.QueryString["idficepitext"];
                int    idficepievaluador = int.Parse(Request.QueryString["idficepievaluador"]);
                string evaluadortext     = Request.QueryString["evaluadortext"];
                string rolevaluador      = Request.QueryString["rolevaluador"];
                int    numevaluadosArbol = int.Parse(Request.QueryString["numevaluados"]);

                sFilename = "Árbol de dependencias" + sExtension;

                IB.Progress.BLL.ArbolDependencias dArbol = null;

                try
                {
                    //Datatable de cabecera
                    DataTable  dtH = new DataTable("HEAD-Excel");
                    DataColumn dtc = new DataColumn("clave");
                    dtH.Columns.Add(dtc);
                    dtc = new DataColumn("valor");
                    dtH.Columns.Add(dtc);
                    DataRow oRow = dtH.NewRow();
                    oRow[0] = "title";
                    oRow[1] = "Árbol de dependencias";
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Evaluador/a";
                    oRow[1] = evaluadortext;
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Rol del evaluador/a";
                    oRow[1] = rolevaluador;
                    dtH.Rows.Add(oRow);

                    oRow    = dtH.NewRow();
                    oRow[0] = "Total evaluados/as";
                    oRow[1] = numevaluadosArbol;
                    dtH.Rows.Add(oRow);

                    //Datatable cuerpo
                    List <IB.Progress.Models.ArbolDependencias> arbolDependencias = null;
                    dArbol            = new IB.Progress.BLL.ArbolDependencias();
                    arbolDependencias = dArbol.catalogoArbolDependencias(idficepievaluador);
                    dArbol.Dispose();


                    //eliminar las filas con profesional = "";
                    arbolDependencias = (from o in arbolDependencias
                                         select o).ToList <IB.Progress.Models.ArbolDependencias>();

                    //convertir la lista a datatable
                    DataTable dtbody = arbolDependencias.CopyGenericToDataTable <IB.Progress.Models.ArbolDependencias>();
                    dtbody.TableName = "BODY-Excel";

                    //Eliminar las columnas no necesarias
                    ArrayList arl = new ArrayList();
                    foreach (DataColumn c in dtbody.Columns)
                    {
                        if (c.ColumnName.ToLower().Trim() != "evaluado" && c.ColumnName.ToLower().Trim() != "roldelevaluado")
                        {
                            arl.Add(c);
                        }
                    }
                    foreach (DataColumn dc in arl)
                    {
                        dtbody.Columns.Remove(dc.ColumnName);
                    }

                    //dtbody.Rows.Remove([dtbody.Rows[0])];
                    dtbody.Rows[0].Delete();

                    //renombar columnas
                    dtbody.Columns["evaluado"].ColumnName       = "Evaluado/a";
                    dtbody.Columns["roldelevaluado"].ColumnName = "Rol del evaluado/a";


                    //Agregar al dataset
                    ds.Tables.Add(dtH);
                    ds.Tables.Add(dtbody);



                    //exportar
                    oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally {
                    if (dArbol != null)
                    {
                        dArbol.Dispose();
                    }
                }

                break;



            case "arboldependenciasALL":

                //recuperar parametros del querystring
                int    idficepiArbolALL     = int.Parse(Request.QueryString["idficepi"]);
                string idficepitextArbolALL = Request.QueryString["idficepitext"];
                int    idficepievaluadorALL = int.Parse(Request.QueryString["idficepievaluador"]);
                string evaluadortextALL     = Request.QueryString["evaluadortext"];
                string rolevaluadorALL      = Request.QueryString["rolevaluador"];
                int    numevaluadosArbolALL = int.Parse(Request.QueryString["numevaluados"]);

                sFilename = "Árbol de dependencias" + sExtension;

                IB.Progress.BLL.ArbolDependencias dArbolALL = null;

                try
                {
                    //Datatable de cabecera
                    DataTable  dtH = new DataTable("HEAD-Excel");
                    DataColumn dtc = new DataColumn("clave");
                    dtH.Columns.Add(dtc);
                    dtc = new DataColumn("valor");
                    dtH.Columns.Add(dtc);
                    DataRow oRow = dtH.NewRow();
                    oRow[0] = "title";
                    oRow[1] = "Árbol de dependencias";
                    dtH.Rows.Add(oRow);

                    //Datatable cuerpo
                    List <IB.Progress.Models.ArbolDependencias> arbolDependencias = null;
                    dArbol            = new IB.Progress.BLL.ArbolDependencias();
                    arbolDependencias = dArbol.catalogoArbolDependenciasALL(idficepievaluadorALL);
                    dArbol.Dispose();


                    //eliminar las filas con profesional = "";
                    //arbolDependencias = (from o in arbolDependencias
                    //                     select o).ToList<IB.Progress.Models.ArbolDependencias>();

                    //convertir la lista a datatable
                    DataTable dtbody = arbolDependencias.CopyGenericToDataTable <IB.Progress.Models.ArbolDependencias>();
                    dtbody.TableName = "BODY-Excel";

                    //Eliminar las columnas no necesarias
                    ArrayList arl = new ArrayList();
                    foreach (DataColumn c in dtbody.Columns)
                    {
                        if (c.ColumnName.ToLower().Trim() != "evaluado" && c.ColumnName.ToLower().Trim() != "roldelevaluado" && c.ColumnName.ToLower().Trim() != "evaluador" && c.ColumnName.ToLower().Trim() != "roldelevaluador")
                        {
                            arl.Add(c);
                        }
                    }
                    foreach (DataColumn dc in arl)
                    {
                        dtbody.Columns.Remove(dc.ColumnName);
                    }

                    //renombar columnas
                    dtbody.Columns["evaluado"].ColumnName        = "Evaluado/a";
                    dtbody.Columns["evaluador"].ColumnName       = "Evaluador/a";
                    dtbody.Columns["Roldelevaluador"].ColumnName = "Rol del evaluador/a";
                    dtbody.Columns["Roldelevaluado"].ColumnName  = "Rol del evaluado/a";


                    //reordenar columnas
                    dtbody.Columns["Evaluador/a"].SetOrdinal(0);
                    dtbody.Columns["Rol del evaluador/a"].SetOrdinal(1);
                    dtbody.Columns["Evaluado/a"].SetOrdinal(2);
                    dtbody.Columns["Rol del evaluado/a"].SetOrdinal(3);


                    //Agregar al dataset
                    ds.Tables.Add(dtH);
                    ds.Tables.Add(dtbody);

                    //exportar
                    oExcel = osvcEXCEL.getExcelFromDataSet(ds, sFilename);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (dArbolALL != null)
                    {
                        dArbolALL.Dispose();
                    }
                }

                break;
            }
        }
        catch (Exception ex)
        {
            this.hdnError.Value = "Error al exportar a excel.<br /><br />: " + ex.Message;
        }
        finally
        {
            if (osvcEXCEL != null && osvcEXCEL.State != System.ServiceModel.CommunicationState.Closed)
            {
                if (osvcEXCEL.State != System.ServiceModel.CommunicationState.Faulted)
                {
                    osvcEXCEL.Close();
                }
                else
                {
                    osvcEXCEL.Abort();
                }
            }
        }

        //Devolver el excel
        if (Response.IsClientConnected && hdnError.Value == "")
        {
            Response.AddHeader("Content-Disposition", "attachment; filename=\"" + sFilename + "\"");
            Response.BinaryWrite(oExcel);
            Response.ContentType = "application/vnd.ms-excel";
            //Para que funcione en Chrome
            if (System.Web.HttpContext.Current.Request.Browser.Browser.ToString() == "Chrome")
            {
                Response.AddHeader("Content-Length", "999999999999");
            }
            Response.Flush();
            Response.Close();
            Response.End();
            System.Web.HttpContext.Current.ApplicationInstance.CompleteRequest();
        }
    }