Exemple #1
0
        private void datos_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int c = e.RowIndex;

            if (c == -1)
            {
                return;
            }

            //inicio,FINAL,new_tipo,entrada,salida,cuenta,movimiento

            DataGridViewRow row          = datos.Rows[c];
            string          rfc          = Convert.ToString(row.Cells[0].Value);
            string          nombre       = Convert.ToString(row.Cells[1].Value);
            string          num_histo    = Convert.ToString(row.Cells[2].Value);
            string          num_const    = Convert.ToString(row.Cells[3].Value);
            string          num_recib    = Convert.ToString(row.Cells[4].Value);
            string          num_constpro = Convert.ToString(row.Cells[5].Value);
            string          fecha_exp    = Convert.ToString(row.Cells[6].Value);


            ///  empieza selección de reportes
            if (!string.IsNullOrWhiteSpace(num_histo) && string.IsNullOrWhiteSpace(num_const) && string.IsNullOrWhiteSpace(num_recib) && string.IsNullOrWhiteSpace(num_constpro))    //historico
            {
                string query = "select a1.rfc,a2.nombre_em,a1.num_histo,a1.monto_total,a1.antig_a,a1.antig_m,a1.antig_q,a1.fecha_exp from datos.constancias a1 JOIN datos.empleados a2 ON a1.rfc=a2.rfc where a1.num_histo='{0}'";
                string paso  = string.Format(query, num_histo);
                List <Dictionary <string, object> > dic = globales.consulta(paso);
                foreach (var item in dic)
                {
                    string   folioactual = Convert.ToString(item["num_histo"]);
                    string   fecha       = Convert.ToString(item["fecha_exp"]);
                    string   rfc1        = Convert.ToString(item["rfc"]);
                    string   nombre1     = Convert.ToString(item["nombre_em"]);
                    string   anios       = Convert.ToString(item["antig_a"]);
                    string   meses       = Convert.ToString(item["antig_m"]);
                    string   quincenas   = Convert.ToString(item["antig_q"]);
                    string   monto       = Convert.ToString(item["monto_total"]);
                    DateTime solofe      = Convert.ToDateTime(fecha);
                    string   solofecha   = solofe.ToShortDateString();
                    string   queryfecha  = "select  datos.fechaletra('{0}')";
                    string   pasofecha   = string.Format(queryfecha, solofecha);
                    List <Dictionary <string, object> > f1 = globales.consulta(pasofecha);
                    string fechaletra   = Convert.ToString(f1[0]["fechaletra"]);
                    string querydetalle = "SELECT desde,hasta,monto,descripcion FROM datos.detalleconstancia where historico='{0}'";
                    string pasodetalle  = string.Format(querydetalle, folioactual);

                    List <Dictionary <string, object> > res = globales.consulta(pasodetalle);
                    object[] aux2     = new object[res.Count];
                    int      contador = 0;

                    foreach (var temp in res)
                    {
                        string desde        = string.Empty;
                        string hasta        = string.Empty;
                        string montodetalle = string.Empty;
                        string descrip      = string.Empty;

                        try
                        {
                            desde        = Convert.ToString(temp["desde"]);
                            hasta        = Convert.ToString(temp["hasta"]);
                            montodetalle = Convert.ToString(temp["monto"]);
                            descrip      = Convert.ToString(temp["descripcion"]);
                        }
                        catch
                        {
                        }

                        object[] tt1 = { desde, hasta, montodetalle, descrip };
                        aux2[contador] = tt1;
                        contador++;
                    }

                    string logo = globales.getImagen(globales.imagenesSispe.logoreportes);

                    object[][] request = new object[2][];
                    object[]   headers = { "numhisto", "rfc", "nombre", "total", "anios", "meses", "quincenas", "logo" };
                    object[]   body    = { folioactual, rfc, nombre, Convert.ToString(monto), anios, meses, quincenas, logo };

                    request[0] = headers;
                    request[1] = body;
                    globales.reportes("historicosispeconstancia", "detallehistorico", aux2, "", false, request);
                    this.Cursor = Cursors.Default;
                    return;
                }
            }

            else if (!string.IsNullOrWhiteSpace(num_histo) && !string.IsNullOrWhiteSpace(num_const) && string.IsNullOrWhiteSpace(num_recib))   // constancia
            {
                string query = "select a1.rfc,a1.num_histo,a2.nombre_em,a1.num_const,a1.monto_total,a1.antig_a,a1.antig_m,a1.antig_q,a1.fecha_exp,a1.total_con_letra,a1.motivo,a1.firma_dir,a1.firma_mc,a1.firma_ui from datos.constancias a1 JOIN datos.empleados a2 ON a1.rfc=a2.rfc where a1.num_histo='{0}'";
                string paso  = string.Format(query, num_histo);
                List <Dictionary <string, object> > dic = globales.consulta(paso);
                foreach (var item in dic)
                {
                    string folioactual = Convert.ToString(item["num_const"]);



                    if (folioactual.Length == 1)
                    {
                        folioactual = "00" + folioactual;
                    }
                    if (folioactual.Length == 2)
                    {
                        folioactual = "0" + folioactual;
                    }


                    string   num_histoimp = Convert.ToString(item["num_histo"]);
                    string   fecha        = Convert.ToString(item["fecha_exp"]);
                    string   rfc1         = Convert.ToString(item["rfc"]);
                    string   nombre1      = Convert.ToString(item["nombre_em"]);
                    string   anios        = Convert.ToString(item["antig_a"]);
                    string   meses        = Convert.ToString(item["antig_m"]);
                    string   quincenas    = Convert.ToString(item["antig_q"]);
                    string   monto        = Convert.ToString(item["monto_total"]);
                    string   letra        = Convert.ToString(item["total_con_letra"]);
                    string   motivo       = Convert.ToString(item["motivo"]);
                    string   firma_dir    = Convert.ToString(item["firma_dir"]);
                    string   firma_mc     = Convert.ToString(item["firma_mc"]);
                    string   firma_ui     = Convert.ToString(item["firma_ui"]);
                    DateTime solofe       = Convert.ToDateTime(fecha);
                    string   solofecha    = solofe.ToShortDateString();
                    string   queryfecha   = "select  datos.fechaletra('{0}')";
                    string   pasofecha    = string.Format(queryfecha, solofecha);
                    List <Dictionary <string, object> > f1 = globales.consulta(pasofecha);
                    string fechaletra   = Convert.ToString(f1[0]["fechaletra"]);
                    string querydetalle = "SELECT desde,hasta,monto,descripcion FROM datos.detalleconstancia where historico='{0}'";
                    string pasodetalle  = string.Format(querydetalle, num_histo);

                    List <Dictionary <string, object> > res = globales.consulta(pasodetalle);
                    object[] aux2     = new object[17];
                    int      contador = 0;


                    for (int x = 0; x < 17; x++)
                    {
                        object[] tt1 = { "", "", "", "" };
                        if (x < res.Count)
                        {
                            string desde        = string.Empty;
                            string hasta        = string.Empty;
                            string montodetalle = string.Empty;
                            string descrip      = string.Empty;

                            try
                            {
                                desde        = Convert.ToString(res[x]["desde"]);
                                hasta        = Convert.ToString(res[x]["hasta"]);
                                montodetalle = Convert.ToString(res[x]["monto"]);
                                descrip      = Convert.ToString(res[x]["descripcion"]);

                                tt1[0] = desde;
                                tt1[1] = hasta;
                                tt1[2] = montodetalle;
                                tt1[3] = descrip;
                            }
                            catch
                            {
                            }
                        }
                        aux2[x] = tt1;
                    }

                    string logo = globales.getImagen(globales.imagenesSispe.logoreportes);

                    object[][] request = new object[2][];
                    object[]   headers = { "folio", "fecha", "rfc", "nombre", "anios", "meses", "quincenas", "totalnum", "totalletra", "firma_mc", "firma_dir", "firma_ui", "motivo", "logo" };
                    object[]   body    = { folioactual, fechaletra, rfc, nombre, anios, meses, quincenas, Convert.ToString(monto), letra, firma_mc, firma_dir, firma_ui, motivo, logo };

                    request[0] = headers;
                    request[1] = body;
                    globales.reportes("emitirconstancias", "detallehistorico", aux2, "", false, request); this.Cursor = Cursors.Default;
                    return;
                }
            }
            else if (!string.IsNullOrWhiteSpace(num_histo) && !string.IsNullOrWhiteSpace(num_const) && !string.IsNullOrWhiteSpace(num_recib))   // recibo
            {
                string query = "select a1.rfc,a1.num_histo,a2.nombre_em,a1.num_const,a1.num_recib,a1.monto_total,a1.antig_a,a1.antig_m,a1.antig_q,a1.fecha_exp,a1.total_con_letra,a1.motivo,a1.firma_dir,a1.firma_mc,a1.firma_ui,a1.firma_d_p from datos.constancias a1 JOIN datos.empleados a2 ON a1.rfc=a2.rfc where a1.num_histo='{0}'";
                string paso  = string.Format(query, num_histo);
                List <Dictionary <string, object> > dic = globales.consulta(paso);

                foreach (var item in dic)
                {
                    string folio_const    = Convert.ToString(item["num_const"]);
                    string folionum_recib = Convert.ToString(item["num_recib"]);

                    if (folionum_recib.Length == 1)
                    {
                        folionum_recib = "00" + folionum_recib;
                    }
                    if (folionum_recib.Length == 2)
                    {
                        folionum_recib = "0" + folionum_recib;
                    }


                    if (folio_const.Length == 1)
                    {
                        folio_const = "00" + folio_const;
                    }
                    if (folio_const.Length == 2)
                    {
                        folio_const = "0" + folio_const;
                    }

                    string   fecha      = Convert.ToString(item["fecha_exp"]);
                    string   rfc1       = Convert.ToString(item["rfc"]);
                    string   nombre1    = Convert.ToString(item["nombre_em"]);
                    string   anios      = Convert.ToString(item["antig_a"]);
                    string   meses      = Convert.ToString(item["antig_m"]);
                    string   quincenas  = Convert.ToString(item["antig_q"]);
                    string   monto      = Convert.ToString(item["monto_total"]);
                    string   letra      = Convert.ToString(item["total_con_letra"]);
                    string   motivo     = Convert.ToString(item["motivo"]);
                    string   firma_dir  = Convert.ToString(item["firma_dir"]);
                    string   firma_mc   = Convert.ToString(item["firma_mc"]);
                    string   firma_ui   = Convert.ToString(item["firma_ui"]);
                    string   firma_d_p  = Convert.ToString(item["firma_d_p"]);
                    DateTime solofe     = Convert.ToDateTime(fecha);
                    string   solofecha  = solofe.ToShortDateString();
                    string   queryfecha = "select  datos.fechaletra('{0}')";
                    string   pasofecha  = string.Format(queryfecha, solofecha);
                    List <Dictionary <string, object> > f1 = globales.consulta(pasofecha);
                    string fechaletra     = Convert.ToString(f1[0]["fechaletra"]);
                    string contenido      = "";
                    string fecharecortada = solofecha.Replace("Oaxaca de Juarez,Oax.,a", "");
                    // aqui empieza el reporte

                    double auxmonto = string.IsNullOrWhiteSpace(monto) ? 0 : Convert.ToDouble(monto);

                    frmVentanaImpConstancias f = new frmVentanaImpConstancias(string.Format("{0:C}", auxmonto), nombre1);
                    f.ShowDialog();
                    if (!f.continuaVentana)
                    {
                        return;
                    }


                    string monto1 = f.monto1;
                    string monto2 = f.monto2;
                    string monto3 = f.monto3;
                    string total  = f.total;

                    string concepto1 = f.concepto1;
                    string concepto2 = f.concepto2;
                    string concepto3 = f.concepto3;


                    contenido = "Recibí  de  la  Oficina  de  Pensiones del  Gobierno del Estado de Oaxaca, la cantidad de: (" + letra + ") " +
                                "Por concepto de Devolución de Fondo de Pensiones de conformidad con el Artículo 64 de la Ley de " +
                                "Pensiones para los Trabajadores del Gobierno del Estado de Oaxaca,según el monto que ampara la Constancia de " +
                                "Contribución N°" + folio_const + " de fecha " + fecharecortada + " del cual se deduce los saldos existentes por los conceptos " +
                                "que a continuación se detallan:";
                    Label l = new Label();
                    l.Text = contenido;
                    l.Font = new Font("Arial", 12, FontStyle.Regular);


                    var cnd = globales.justificar(l.Text, 86);
                    contenido = string.Empty;
                    foreach (string aux1 in cnd)
                    {
                        contenido += aux1 + "\n";
                    }

                    string querydetalle = "SELECT desde,hasta,monto,descripcion FROM datos.detalleconstancia where historico='{0}'";
                    string pasodetalle  = string.Format(querydetalle, num_histo);

                    List <Dictionary <string, object> > res = globales.consulta(pasodetalle);
                    object[] aux2     = new object[15];
                    int      contador = 0;


                    for (int x = 0; x < 15; x++)
                    {
                        object[] tt1 = { "", "", "", "" };
                        if (x < res.Count)
                        {
                            string desde        = string.Empty;
                            string hasta        = string.Empty;
                            string montodetalle = string.Empty;
                            string descrip      = string.Empty;

                            try
                            {
                                desde        = Convert.ToString(res[x]["desde"]);
                                hasta        = Convert.ToString(res[x]["hasta"]);
                                montodetalle = Convert.ToString(res[x]["monto"]);
                                descrip      = Convert.ToString(res[x]["descripcion"]);

                                tt1[0] = desde;
                                tt1[1] = hasta;
                                tt1[2] = montodetalle;
                                tt1[3] = descrip;
                            }
                            catch
                            {
                            }
                        }
                        aux2[x] = tt1;
                    }

                    string fallecido = string.Empty;
                    string nombre2   = string.Empty;
                    if (f.chk1.Checked)
                    {
                        nombre2   = f.txtBenefi.Text;
                        fallecido = "FALLECIDO: " + f.txtFallecido.Text;
                    }
                    else
                    {
                        nombre2 = nombre;
                    }

                    string logo = globales.getImagen(globales.imagenesSispe.logoreportes);

                    object[][] request = new object[2][];
                    object[]   headers = { "folio", "fecha", "rfc", "nombre", "anios", "meses", "quincenas", "totalnum", "totalletra", "firma_mc", "firma_dir", "firma_ui", "motivo", "firma_d_p", "contenido", "num_recib", "monto1", "monto2", "monto3", "total", "concepto1", "concepto2", "concepto3", "fallecido", "nombre2", "logo" };
                    object[]   body    = { folio_const, fechaletra, rfc, nombre, anios, meses, quincenas, Convert.ToString(monto), letra, firma_mc, firma_dir, firma_ui, motivo, firma_d_p, contenido, folionum_recib, monto1, monto2, monto3, total, concepto1, concepto2, concepto3, fallecido, nombre2, logo };

                    request[0] = headers;
                    request[1] = body;
                    globales.reportes("constayrecibo", "detallehistorico", aux2, "", false, request);
                    this.Cursor = Cursors.Default;
                    return;
                }
            }
            else if (!string.IsNullOrWhiteSpace(num_histo) && string.IsNullOrWhiteSpace(num_const) && string.IsNullOrWhiteSpace(num_recib) && !string.IsNullOrWhiteSpace(num_constpro))
            {
                string query = "select a1.rfc,a1.num_histo,a1.num_constpro,a2.nombre_em,a1.num_const,a1.monto_total,a1.antig_a,a1.antig_m,a1.antig_q,a1.fecha_exp,a1.total_con_letra,a1.motivo,a1.firma_dir,a1.firma_mc,a1.firma_ui from datos.constancias a1 JOIN datos.empleados a2 ON a1.rfc=a2.rfc where a1.num_histo='{0}'";
                string paso  = string.Format(query, num_histo);
                List <Dictionary <string, object> > dic = globales.consulta(paso);
                foreach (var item in dic)
                {
                    string   folioactual  = Convert.ToString(item["num_constpro"]);
                    string   num_histoimp = Convert.ToString(item["num_histo"]);
                    string   fecha        = Convert.ToString(item["fecha_exp"]);
                    string   rfc1         = Convert.ToString(item["rfc"]);
                    string   nombre1      = Convert.ToString(item["nombre_em"]);
                    string   anios        = Convert.ToString(item["antig_a"]);
                    string   meses        = Convert.ToString(item["antig_m"]);
                    string   quincenas    = Convert.ToString(item["antig_q"]);
                    string   monto        = Convert.ToString(item["monto_total"]);
                    string   letra        = Convert.ToString(item["total_con_letra"]);
                    string   motivo       = Convert.ToString(item["motivo"]);
                    string   firma_dir    = Convert.ToString(item["firma_dir"]);
                    string   firma_mc     = Convert.ToString(item["firma_mc"]);
                    string   firma_ui     = Convert.ToString(item["firma_ui"]);
                    DateTime solofe       = Convert.ToDateTime(fecha);
                    string   solofecha    = solofe.ToShortDateString();
                    string   queryfecha   = "select  datos.fechaletra('{0}')";
                    string   pasofecha    = string.Format(queryfecha, solofecha);
                    List <Dictionary <string, object> > f1 = globales.consulta(pasofecha);
                    string fechaletra   = Convert.ToString(f1[0]["fechaletra"]);
                    string querydetalle = "SELECT desde,hasta,monto,descripcion,sueldo,new_tipo FROM datos.detalleconstancia where historico='{0}'";
                    string pasodetalle  = string.Format(querydetalle, num_histoimp);

                    List <Dictionary <string, object> > res = globales.consulta(pasodetalle);
                    object[] aux2 = new object[28];

                    double suma  = 0;
                    int    orden = 0;
                    for (int x = 0; x < 28; x++)
                    {
                        object[] tt1 = { "", "", "", "", "", "", "", "" };
                        if (x < res.Count)
                        {
                            string desde        = string.Empty;
                            string hasta        = string.Empty;
                            string montodetalle = string.Empty;
                            string descrip      = string.Empty;
                            string sueldo       = string.Empty;

                            try
                            {
                                desde        = Convert.ToString(res[x]["desde"]).Replace("12:00:00 a. m.", "");
                                hasta        = Convert.ToString(res[x]["hasta"]).Replace("12:00:00 a. m.", "");
                                montodetalle = Convert.ToString(res[x]["monto"]);
                                descrip      = Convert.ToString(res[x]["new_tipo"]);
                                sueldo       = Convert.ToString(res[x]["sueldo"]);
                                tt1[6]       = "";
                                if (descrip == "AN")
                                {
                                    orden++;
                                    tt1[6] = orden;
                                }
                                tt1[0] = desde;
                                tt1[1] = hasta;
                                tt1[2] = montodetalle;
                                tt1[3] = descrip;
                                tt1[7] = string.IsNullOrWhiteSpace(sueldo) ? "" : String.Format("{0:0}", sueldo);

                                suma += string.IsNullOrWhiteSpace(sueldo) ? 0 : Convert.ToDouble(sueldo);
                            }
                            catch
                            {
                            }
                        }
                        aux2[x] = tt1;
                    }
                    string     logo    = globales.getImagen(globales.imagenesSispe.logoreportes);
                    object[][] request = new object[2][];
                    object[]   headers = { "folio", "fecha", "rfc", "nombre", "anios", "meses", "quincenas", "totalnum", "totalletra", "firma_mc", "firma_dir", "firma_ui", "motivo", "logo" };
                    object[]   body    = { folioactual, fechaletra, rfc, nombre, string.Format("{0:C}", suma), meses, quincenas, string.Format("{0:C}", monto), globales.convertirNumerosLetras(Convert.ToString(monto), true), firma_mc, firma_dir, firma_ui, motivo, logo };

                    request[0] = headers;
                    request[1] = body;
                    globales.reportes("emitirconstasueldo", "detallehistorico", aux2, "", false, request);
                    this.Cursor = Cursors.Default;
                    return;
                }// recibo
            }
        }
        private void metodoBuscar(string num_histo)
        {
            string query = "select a1.rfc,a1.num_histo,a2.nombre_em,a1.num_const,a1.num_recib,a1.monto_total,a1.antig_a,a1.antig_m,a1.antig_q,a1.fecha_exp,a1.total_con_letra,a1.motivo,a1.firma_dir,a1.firma_mc,a1.firma_ui,a1.firma_d_p from datos.constancias a1 JOIN datos.empleados a2 ON a1.rfc=a2.rfc where a1.num_histo='{0}'";

            query = string.Format(query, num_histo);
            List <Dictionary <string, object> > dic = globales.consulta(query);

            foreach (var item in dic)
            {
                string   folio_const    = Convert.ToString(item["num_const"]);
                string   folionum_recib = Convert.ToString(item["num_recib"]);
                string   fecha          = Convert.ToString(item["fecha_exp"]);
                string   rfc1           = Convert.ToString(item["rfc"]);
                string   nombre1        = Convert.ToString(item["nombre_em"]);
                string   anios          = Convert.ToString(item["antig_a"]);
                string   meses          = Convert.ToString(item["antig_m"]);
                string   quincenas      = Convert.ToString(item["antig_q"]);
                string   monto          = Convert.ToString(item["monto_total"]);
                string   letra          = Convert.ToString(item["total_con_letra"]);
                string   motivo         = Convert.ToString(item["motivo"]);
                string   firma_dir      = Convert.ToString(item["firma_dir"]);
                string   firma_mc       = Convert.ToString(item["firma_mc"]);
                string   firma_ui       = Convert.ToString(item["firma_ui"]);
                string   firma_d_p      = Convert.ToString(item["firma_d_p"]);
                DateTime solofe         = Convert.ToDateTime(fecha);
                string   solofecha      = solofe.ToShortDateString();
                string   queryfecha     = "select  datos.fechaletra('{0}')";
                string   pasofecha      = string.Format(queryfecha, solofecha);
                List <Dictionary <string, object> > f1 = globales.consulta(pasofecha);
                string fechaletra     = Convert.ToString(f1[0]["fechaletra"]);
                string contenido      = "";
                string fecharecortada = solofecha.Replace("Oaxaca de Juarez,Oax.,a", "");
                // aqui empieza el reporte

                double auxmonto = string.IsNullOrWhiteSpace(monto) ? 0 : Convert.ToDouble(monto);

                frmVentanaImpConstancias f = new frmVentanaImpConstancias(string.Format("{0:C}", auxmonto), nombre1);
                f.ShowDialog();
                if (!f.continuaVentana)
                {
                    return;
                }


                string monto1 = f.monto1;
                string monto2 = f.monto2;
                string monto3 = f.monto3;
                string total  = f.total;

                string concepto1 = f.concepto1;
                string concepto2 = f.concepto2;
                string concepto3 = f.concepto3;


                contenido = "Recibí  de  la  Oficina  de  Pensiones del  Gobierno del Estado de Oaxaca, la cantidad de: (" + letra + ") " +
                            "Por concepto de Devolución de Fondo de Pensiones de conformidad con el Artículo 64 de la Ley de " +
                            "Pensiones para los Trabajadores del Gobierno del Estado de Oaxaca,según el monto que ampara la Constancia de " +
                            "Contribución N°" + folio_const + " de fecha " + fecharecortada + " del cual se deduce los saldos existentes por los conceptos " +
                            "que a continuación se detallan:";
                Label l = new Label();
                l.Text = contenido;
                l.Font = new Font("Arial", 12, FontStyle.Regular);


                var cnd = globales.justificar(l.Text, 86);
                contenido = string.Empty;
                foreach (string aux1 in cnd)
                {
                    contenido += aux1 + "\n";
                }

                string querydetalle = "SELECT desde,hasta,monto,descripcion FROM datos.detalleconstancia where historico='{0}'";
                string pasodetalle  = string.Format(querydetalle, num_histo);

                List <Dictionary <string, object> > res = globales.consulta(pasodetalle);
                object[] aux2     = new object[15];
                int      contador = 0;


                for (int x = 0; x < 15; x++)
                {
                    object[] tt1 = { "", "", "", "" };
                    if (x < res.Count)
                    {
                        string desde        = string.Empty;
                        string hasta        = string.Empty;
                        string montodetalle = string.Empty;
                        string descrip      = string.Empty;

                        try
                        {
                            desde        = Convert.ToString(res[x]["desde"]);
                            hasta        = Convert.ToString(res[x]["hasta"]);
                            montodetalle = Convert.ToString(res[x]["monto"]);
                            descrip      = Convert.ToString(res[x]["descripcion"]);

                            tt1[0] = desde;
                            tt1[1] = hasta;
                            tt1[2] = montodetalle;
                            tt1[3] = descrip;
                        }
                        catch
                        {
                        }
                    }
                    aux2[x] = tt1;
                }

                string fallecido = string.Empty;
                string nombre2   = string.Empty;
                if (f.chk1.Checked)
                {
                    nombre2   = f.txtBenefi.Text;
                    fallecido = "FALLECIDO: " + f.txtFallecido.Text;
                }
                else
                {
                    nombre2 = f.txtFallecido.Text;
                }

                string base2 = globales.getImagen(globales.imagenesSispe.logoreportes);

                object[][] request = new object[2][];
                object[]   headers = { "folio", "fecha", "rfc", "nombre", "anios", "meses", "quincenas", "totalnum", "totalletra", "firma_mc", "firma_dir", "firma_ui", "motivo", "firma_d_p", "contenido", "num_recib", "monto1", "monto2", "monto3", "total", "concepto1", "concepto2", "concepto3", "fallecido", "nombre2", "logo" };
                object[]   body    = { folio_const, fechaletra, rfc, nombre1, anios, meses, quincenas, Convert.ToString(monto), letra, firma_mc, firma_dir, firma_ui, motivo, firma_d_p, contenido, folionum_recib, monto1, monto2, monto3, total, concepto1, concepto2, concepto3, fallecido, nombre2, base2 };

                request[0] = headers;
                request[1] = body;
                globales.reportes("constayrecibo", "detallehistorico", aux2, "", false, request);
                this.Cursor = Cursors.Default;
                return;
            }
        }