Ejemplo n.º 1
0
        private void frmVisorReportes_Load(object sender, EventArgs e)
        {
            cnx = new SqlConnection(cdn);
            cmd = new SqlCommand();
            cmd2 = new SqlCommand();
            cmd3 = new SqlCommand();

            cmd.Connection = cnx;
            cmd2.Connection = cnx;
            cmd3.Connection = cnx;

            try
            {
                switch (_noReporte)
                {
                    case 0: //CARATULA PRENOMINA
                        dsReportes.PreNominaCaratulaDataTable dtPreNominaCaratula = new dsReportes.PreNominaCaratulaDataTable();
                        SqlDataAdapter daPreNominaCaratula = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptPreNominaCaratula @idempresa, @tiponomina, @fechainicio, @fechafin, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 90;
                        daPreNominaCaratula.SelectCommand = cmd;
                        daPreNominaCaratula.Fill(dtPreNominaCaratula);

                        dsReportes.PreNominaImagenDataTable dtPreNominaImagen = new dsReportes.PreNominaImagenDataTable();
                        SqlDataAdapter daPreNominaImagen = new SqlDataAdapter();
                        cmd2.CommandText = "exec stp_rptImagen @idpersona, @tipopersona";
                        cmd2.Parameters.Clear();
                        cmd2.Parameters.AddWithValue("idpersona", GLOBALES.IDEMPRESA);
                        cmd2.Parameters.AddWithValue("tipopersona", 0);
                        cmd2.CommandTimeout = 90;
                        daPreNominaImagen.SelectCommand = cmd2;
                        daPreNominaImagen.Fill(dtPreNominaImagen);

                        rd = new ReportDataSource();
                        rd.Value = dtPreNominaCaratula;
                        rd.Name = "dsRptNominaCaratula";

                        rd2 = new ReportDataSource();
                        rd2.Value = dtPreNominaImagen;
                        rd2.Name = "dsCaratulaImagen";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);
                        rpvVisor.LocalReport.DataSources.Add(rd2);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptPreNominaCaratula.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptPreNominaCaratula.rdlc";
                        break;

                    case 1: //EMPLEADOS PRENOMINA
                        dsReportes.PreNominaEmpleadosDataTable dtPreNominaEmpleados = new dsReportes.PreNominaEmpleadosDataTable();
                        SqlDataAdapter daPreNominaEmpleados = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptPreNominaEmpleados @idempresa, @tiponomina, @fechainicio, @fechafin, @neto, @order, @empleadoinicial, @empleadofinal, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("neto", _netoCero);
                        cmd.Parameters.AddWithValue("order", _orden);
                        cmd.Parameters.AddWithValue("empleadoinicial", _empleadoInicio);
                        cmd.Parameters.AddWithValue("empleadofinal", _empleadoFin);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 90;
                        daPreNominaEmpleados.SelectCommand = cmd;
                        daPreNominaEmpleados.Fill(dtPreNominaEmpleados);

                        dsReportes.PreNominaCaratulaDataTable dtPreNominaCaratula2 = new dsReportes.PreNominaCaratulaDataTable();
                        SqlDataAdapter daPreNominaCaratula2 = new SqlDataAdapter();
                        cmd2.CommandText = "exec stp_rptPreNominaCaratula @idempresa, @tiponomina, @fechainicio, @fechafin, @periodo";
                        cmd2.Parameters.Clear();
                        cmd2.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd2.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd2.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd2.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd2.Parameters.AddWithValue("periodo", _periodo);
                        cmd2.CommandTimeout = 90;
                        daPreNominaCaratula2.SelectCommand = cmd2;
                        daPreNominaCaratula2.Fill(dtPreNominaCaratula2);

                        dsReportes.PreNominaImagenDataTable dtPreNominaImagen2 = new dsReportes.PreNominaImagenDataTable();
                        SqlDataAdapter daPreNominaImagen2 = new SqlDataAdapter();
                        cmd3.CommandText = "exec stp_rptImagen @idpersona, @tipopersona";
                        cmd3.Parameters.Clear();
                        cmd3.Parameters.AddWithValue("idpersona", GLOBALES.IDEMPRESA);
                        cmd3.Parameters.AddWithValue("tipopersona", 0);
                        cmd3.CommandTimeout = 90;
                        daPreNominaImagen2.SelectCommand = cmd3;
                        daPreNominaImagen2.Fill(dtPreNominaImagen2);

                        rd = new ReportDataSource();
                        rd.Value = dtPreNominaEmpleados;
                        rd.Name = "dsReporteNominaEmpleados";

                        rd2 = new ReportDataSource();
                        rd2.Value = dtPreNominaCaratula2;
                        rd2.Name = "dsReporteNominaGeneral";

                        rd3 = new ReportDataSource();
                        rd3.Value = dtPreNominaImagen2;
                        rd3.Name = "dsEmpleadoImagen";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);
                        rpvVisor.LocalReport.DataSources.Add(rd2);
                        rpvVisor.LocalReport.DataSources.Add(rd3);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptPreNominaEmpleados.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptPreNominaEmpleados.rdlc";
                        break;

                    case 2: //DEPARTAMENTOS PRENOMINA
                        dsReportes.PreNominaDeptoDataTable dtPreNominaDepto = new dsReportes.PreNominaDeptoDataTable();
                        SqlDataAdapter daPreNominaDepto = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptPreNominaDepto @idempresa, @tiponomina, @fechainicio, @fechafin, @neto, @order, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("neto", _netoCero);
                        cmd.Parameters.AddWithValue("order", _orden);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 90;
                        daPreNominaDepto.SelectCommand = cmd;
                        daPreNominaDepto.Fill(dtPreNominaDepto);

                        dsReportes.PreNominaCaratulaDataTable dtPreNominaCaratula1 = new dsReportes.PreNominaCaratulaDataTable();
                        SqlDataAdapter daPreNominaCaratula1 = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptPreNominaCaratula @idempresa, @tiponomina, @fechainicio, @fechafin, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 90;
                        daPreNominaCaratula1.SelectCommand = cmd;
                        daPreNominaCaratula1.Fill(dtPreNominaCaratula1);

                        dsReportes.PreNominaImagenDataTable dtPreNominaImagen3 = new dsReportes.PreNominaImagenDataTable();
                        SqlDataAdapter daPreNominaImagen3 = new SqlDataAdapter();
                        cmd3.CommandText = "exec stp_rptImagen @idpersona, @tipopersona";
                        cmd3.Parameters.Clear();
                        cmd3.Parameters.AddWithValue("idpersona", GLOBALES.IDEMPRESA);
                        cmd3.Parameters.AddWithValue("tipopersona", 0);
                        cmd3.CommandTimeout = 90;
                        daPreNominaImagen3.SelectCommand = cmd3;
                        daPreNominaImagen3.Fill(dtPreNominaImagen3);

                        rd = new ReportDataSource();
                        rd.Value = dtPreNominaDepto;
                        rd.Name = "dsReporteNominaDepto";

                        rd2 = new ReportDataSource();
                        rd2.Value = dtPreNominaCaratula1;
                        rd2.Name = "dsReporteNominaGeneral";

                        rd3 = new ReportDataSource();
                        rd3.Value = dtPreNominaImagen3;
                        rd3.Name = "dsDeptoImagen";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);
                        rpvVisor.LocalReport.DataSources.Add(rd2);
                        rpvVisor.LocalReport.DataSources.Add(rd3);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptPreNominaDepto.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptPreNominaDepto.rdlc";
                        break;

                    case 3: //CARATULA NOMINA
                        dsReportes.PreNominaCaratulaDataTable dtNominaCaratula = new dsReportes.PreNominaCaratulaDataTable();
                        SqlDataAdapter daNominaCaratula = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptNominaCaratula @idempresa, @fechainicio, @fechafin, @tiponomina, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 90;
                        daNominaCaratula.SelectCommand = cmd;
                        daNominaCaratula.Fill(dtNominaCaratula);

                        dsReportes.PreNominaImagenDataTable dtNominaImagen = new dsReportes.PreNominaImagenDataTable();
                        SqlDataAdapter daNominaImagen = new SqlDataAdapter();
                        cmd2.CommandText = "exec stp_rptImagen @idpersona, @tipopersona";
                        cmd2.Parameters.Clear();
                        cmd2.Parameters.AddWithValue("idpersona", GLOBALES.IDEMPRESA);
                        cmd2.Parameters.AddWithValue("tipopersona", 0);
                        cmd2.CommandTimeout = 90;
                        daNominaImagen.SelectCommand = cmd2;
                        daNominaImagen.Fill(dtNominaImagen);

                        rd = new ReportDataSource();
                        rd.Value = dtNominaCaratula;
                        rd.Name = "dsRptNominaCaratula";

                        rd2 = new ReportDataSource();
                        rd2.Value = dtNominaImagen;
                        rd2.Name = "dsCaratulaImagen";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);
                        rpvVisor.LocalReport.DataSources.Add(rd2);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptPreNominaCaratula.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptPreNominaCaratula.rdlc";
                        break;

                    case 4: //DEPARTAMENTOS NOMINA
                        dsReportes.PreNominaDeptoDataTable dtNominaDepto = new dsReportes.PreNominaDeptoDataTable();
                        SqlDataAdapter daNominaDepto = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptNominaDepto @idempresa, @fechainicio, @fechafin, @deptoinicial, @deptofinal, @tiponomina, @neto, @order, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("deptoinicial", _deptoInicio);
                        cmd.Parameters.AddWithValue("deptofinal", _deptoFin);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("neto", _netoCero);
                        cmd.Parameters.AddWithValue("order", _orden);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 90;
                        daNominaDepto.SelectCommand = cmd;
                        daNominaDepto.Fill(dtNominaDepto);

                        dsReportes.PreNominaCaratulaDataTable dtNominaCaratula1 = new dsReportes.PreNominaCaratulaDataTable();
                        SqlDataAdapter daNominaCaratula1 = new SqlDataAdapter();
                        cmd2.CommandText = "exec stp_rptNominaCaratula @idempresa, @fechainicio, @fechafin, @tiponomina, @periodo";
                        cmd2.Parameters.Clear();
                        cmd2.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd2.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd2.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd2.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd2.Parameters.AddWithValue("periodo", _periodo);
                        cmd2.CommandTimeout = 90;
                        daNominaCaratula1.SelectCommand = cmd2;
                        daNominaCaratula1.Fill(dtNominaCaratula1);

                        dsReportes.PreNominaImagenDataTable dtNominaImagen2 = new dsReportes.PreNominaImagenDataTable();
                        SqlDataAdapter daNominaImagen2 = new SqlDataAdapter();
                        cmd3.CommandText = "exec stp_rptImagen @idpersona, @tipopersona";
                        cmd3.Parameters.Clear();
                        cmd3.Parameters.AddWithValue("idpersona", GLOBALES.IDEMPRESA);
                        cmd3.Parameters.AddWithValue("tipopersona", 0);
                        cmd3.CommandTimeout = 90;
                        daNominaImagen2.SelectCommand = cmd3;
                        daNominaImagen2.Fill(dtNominaImagen2);

                        rd = new ReportDataSource();
                        rd.Value = dtNominaDepto;
                        rd.Name = "dsReporteNominaDepto";

                        rd2 = new ReportDataSource();
                        rd2.Value = dtNominaCaratula1;
                        rd2.Name = "dsReporteNominaGeneral";

                        rd3 = new ReportDataSource();
                        rd3.Value = dtNominaImagen2;
                        rd3.Name = "dsDeptoImagen";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);
                        rpvVisor.LocalReport.DataSources.Add(rd2);
                        rpvVisor.LocalReport.DataSources.Add(rd3);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptPreNominaDepto.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptPreNominaDepto.rdlc";
                        break;

                    case 5: //EMPLEADOS NOMINA
                        dsReportes.PreNominaEmpleadosDataTable dtNominaEmpleados = new dsReportes.PreNominaEmpleadosDataTable();
                        SqlDataAdapter daNominaEmpleados = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptNominaEmpleados @idempresa, @fechainicio, @fechafin, @deptoInicial, @deptoFinal, @empleadoInicial, @empleadoFinal, @tiponomina, @neto, @order, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("deptoinicial", _deptoInicio);
                        cmd.Parameters.AddWithValue("deptofinal", _deptoFin);
                        cmd.Parameters.AddWithValue("empleadoInicial", _empleadoInicio);
                        cmd.Parameters.AddWithValue("empleadoFinal", _empleadoFin);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("neto", _netoCero);
                        cmd.Parameters.AddWithValue("order", _orden);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 90;
                        daNominaEmpleados.SelectCommand = cmd;
                        daNominaEmpleados.Fill(dtNominaEmpleados);

                        dsReportes.PreNominaCaratulaDataTable dtNominaCaratula2 = new dsReportes.PreNominaCaratulaDataTable();
                        SqlDataAdapter daNominaCaratula2 = new SqlDataAdapter();
                        cmd2.CommandText = "exec stp_rptNominaCaratula @idempresa, @fechainicio, @fechafin, @tiponomina, @periodo";
                        cmd2.Parameters.Clear();
                        cmd2.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd2.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd2.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd2.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd2.Parameters.AddWithValue("periodo", _periodo);
                        cmd2.CommandTimeout = 90;
                        daNominaCaratula2.SelectCommand = cmd2;
                        daNominaCaratula2.Fill(dtNominaCaratula2);

                        dsReportes.PreNominaImagenDataTable dtNominaImagen3 = new dsReportes.PreNominaImagenDataTable();
                        SqlDataAdapter daNominaImagen3 = new SqlDataAdapter();
                        cmd3.CommandText = "exec stp_rptImagen @idpersona, @tipopersona";
                        cmd3.Parameters.Clear();
                        cmd3.Parameters.AddWithValue("idpersona", GLOBALES.IDEMPRESA);
                        cmd3.Parameters.AddWithValue("tipopersona", 0);
                        cmd3.CommandTimeout = 90;
                        daNominaImagen3.SelectCommand = cmd3;
                        daNominaImagen3.Fill(dtNominaImagen3);

                        rd = new ReportDataSource();
                        rd.Value = dtNominaEmpleados;
                        rd.Name = "dsReporteNominaEmpleados";

                        rd2 = new ReportDataSource();
                        rd2.Value = dtNominaCaratula2;
                        rd2.Name = "dsReporteNominaGeneral";

                        rd3 = new ReportDataSource();
                        rd3.Value = dtNominaImagen3;
                        rd3.Name = "dsEmpleadoImagen";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);
                        rpvVisor.LocalReport.DataSources.Add(rd2);
                        rpvVisor.LocalReport.DataSources.Add(rd3);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptPreNominaEmpleados.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptPreNominaEmpleados.rdlc";
                        break;
                    case 7:

                        dsReportes.PreNominaEmpleadosDataTable dtReciboEmpleados = new dsReportes.PreNominaEmpleadosDataTable();
                        SqlDataAdapter daReciboEmpleados = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptNominaEmpleados @idempresa, @fechainicio, @fechafin, @deptoInicial, @deptoFinal, @empleadoInicial, @empleadoFinal, @tiponomina, @neto, @order, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("deptoinicial", _deptoInicio);
                        cmd.Parameters.AddWithValue("deptofinal", _deptoFin);
                        cmd.Parameters.AddWithValue("empleadoInicial", _empleadoInicio);
                        cmd.Parameters.AddWithValue("empleadoFinal", _empleadoFin);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("neto", _netoCero);
                        cmd.Parameters.AddWithValue("order", _orden);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 90;
                        daReciboEmpleados.SelectCommand = cmd;
                        daReciboEmpleados.Fill(dtReciboEmpleados);

                        dsReportes.PreNominaImagenDataTable dtReciboImagen = new dsReportes.PreNominaImagenDataTable();
                        SqlDataAdapter daReciboImagen = new SqlDataAdapter();
                        cmd3.CommandText = "exec stp_rptImagen @idpersona, @tipopersona";
                        cmd3.Parameters.Clear();
                        cmd3.Parameters.AddWithValue("idpersona", GLOBALES.IDEMPRESA);
                        cmd3.Parameters.AddWithValue("tipopersona", 0);
                        cmd3.CommandTimeout = 90;
                        daReciboImagen.SelectCommand = cmd3;
                        daReciboImagen.Fill(dtReciboImagen);

                        rd = new ReportDataSource();
                        rd.Value = dtReciboEmpleados;
                        rd.Name = "dsRptRecibo";

                        rd2 = new ReportDataSource();
                        rd2.Value = dtReciboImagen;
                        rd2.Name = "dsReciboImagen";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);
                        rpvVisor.LocalReport.DataSources.Add(rd2);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptPreNominaRecibo.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptPreNominaRecibo.rdlc";

                        break;

                    case 8:

                        dsReportes.NominaRecibosDataTable dtReciboNomina = new dsReportes.NominaRecibosDataTable();
                        SqlDataAdapter daReciboNomina = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptNominaRecibo @idempresa, @fechainicio, @fechafin, @deptoInicial, @deptoFinal, @empleadoInicial, @empleadoFinal, @tiponomina, @neto, @order, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("deptoinicial", _deptoInicio);
                        cmd.Parameters.AddWithValue("deptofinal", _deptoFin);
                        cmd.Parameters.AddWithValue("empleadoInicial", _empleadoInicio);
                        cmd.Parameters.AddWithValue("empleadoFinal", _empleadoFin);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("neto", _netoCero);
                        cmd.Parameters.AddWithValue("order", _orden);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 300;
                        daReciboNomina.SelectCommand = cmd;
                        daReciboNomina.Fill(dtReciboNomina);

                        rd = new ReportDataSource();
                        rd.Value = dtReciboNomina;
                        rd.Name = "dsNominaRecibo";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptNominaRecibos.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptNominaRecibos.rdlc";

                        break;
                    case 9:

                        dsReportes.PreNominaEmpleadosDataTable dtReciboPreEmpleados = new dsReportes.PreNominaEmpleadosDataTable();
                        SqlDataAdapter daReciboPreEmpleados = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptPreNominaEmpleados @idempresa, @tiponomina, @fechainicio, @fechafin, @neto, @order, @empleadoinicial, @empleadofinal, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("fechafin", _finPeriodo);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("neto", _netoCero);
                        cmd.Parameters.AddWithValue("order", _orden);
                        cmd.Parameters.AddWithValue("empleadoinicial", _empleadoInicio);
                        cmd.Parameters.AddWithValue("empleadofinal", _empleadoFin);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 90;
                        daReciboPreEmpleados.SelectCommand = cmd;
                        daReciboPreEmpleados.Fill(dtReciboPreEmpleados);

                        dsReportes.PreNominaImagenDataTable dtReciboPreImagen = new dsReportes.PreNominaImagenDataTable();
                        SqlDataAdapter daReciboPreImagen = new SqlDataAdapter();
                        cmd3.CommandText = "exec stp_rptImagen @idpersona, @tipopersona";
                        cmd3.Parameters.Clear();
                        cmd3.Parameters.AddWithValue("idpersona", GLOBALES.IDEMPRESA);
                        cmd3.Parameters.AddWithValue("tipopersona", 0);
                        cmd3.CommandTimeout = 90;
                        daReciboPreImagen.SelectCommand = cmd3;
                        daReciboPreImagen.Fill(dtReciboPreImagen);

                        rd = new ReportDataSource();
                        rd.Value = dtReciboPreEmpleados;
                        rd.Name = "dsRptRecibo";

                        rd2 = new ReportDataSource();
                        rd2.Value = dtReciboPreImagen;
                        rd2.Name = "dsReciboImagen";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);
                        rpvVisor.LocalReport.DataSources.Add(rd2);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptPreNominaRecibo.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptPreNominaRecibo.rdlc";

                        break;
                    case 10:

                        dsReportes.NominaRecibosDataTable dtImpresionNomina = new dsReportes.NominaRecibosDataTable();
                        SqlDataAdapter daImpresionNomina = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptNominaImpresion @idempresa, @fechainicio, @empleados, @tiponomina, @todos, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.Parameters.AddWithValue("todos", _todos);
                        cmd.Parameters.AddWithValue("empleados", _empleados);
                        cmd.Parameters.AddWithValue("tiponomina", _tipoNomina);
                        cmd.Parameters.AddWithValue("periodo", _periodo);
                        cmd.CommandTimeout = 300;
                        daImpresionNomina.SelectCommand = cmd;
                        daImpresionNomina.Fill(dtImpresionNomina);

                        rd = new ReportDataSource();
                        rd.Value = dtImpresionNomina;
                        rd.Name = "dsNominaRecibo";

                        rpvVisor.LocalReport.DataSources.Clear();
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptNominaRecibos.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptNominaRecibos.rdlc";
                        dtImpresionNomina.Dispose();
                        daImpresionNomina.Dispose();
                        break;

                    case 11:
                        dsReportes.EstatusEmpleadoDataTable dtEstatusEmpleado = new dsReportes.EstatusEmpleadoDataTable();
                        dsReportes.AltasDataTable dtAltaEmpleado = new dsReportes.AltasDataTable();
                        dsReportes.ReingresosDataTable dtReingresoEmpledo = new dsReportes.ReingresosDataTable();
                        dsReportes.BajasDataTable dtBajaEmpleado = new dsReportes.BajasDataTable();
                        dsReportes.FaltasDataTable dtFaltasEmpleado = new dsReportes.FaltasDataTable();
                        dsReportes.IncidenciasDataTable dtIncidenciasEmpleado = new dsReportes.IncidenciasDataTable();
                        dsReportes.VacacionesPrimaDataTable dtVacacionesEmpleado = new dsReportes.VacacionesPrimaDataTable();
                        dsReportes.ConceptosDataTable dtConceptosEmpleado = new dsReportes.ConceptosDataTable();
                        dsReportes.PreNominaImagenDataTable dtImagenEmpleado = new dsReportes.PreNominaImagenDataTable();

                        SqlDataAdapter daEstatusEmpleado = new SqlDataAdapter();
                        SqlDataAdapter daAltaEmpleado = new SqlDataAdapter();
                        SqlDataAdapter daReingresoEmpleado = new SqlDataAdapter();
                        SqlDataAdapter daBajaEmpleado = new SqlDataAdapter();
                        SqlDataAdapter daFaltasEmpleado = new SqlDataAdapter();
                        SqlDataAdapter daIncideciasEmpleado = new SqlDataAdapter();
                        SqlDataAdapter daVacacionesEmplead = new SqlDataAdapter();
                        SqlDataAdapter daConceptosEmpleado = new SqlDataAdapter();
                        SqlDataAdapter daImagenEmpleado = new SqlDataAdapter();
                        //ESTATUS EMPLEADOS
                        cmd.CommandText = @"select t.idtrabajador, t.nombrecompleto, t.noempleado, t.fechaantiguedad,
                            t.sdi, t.estatus as estatusnomina, te.estatus as estatuscatalogo
                            from trabajadores t inner join trabajadoresestatus te
                            on t.idtrabajador = te.idtrabajador
                            where te.idempresa = @idempresa and te.idtrabajador = @idtrabajador";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("idtrabajador", _empleadoInicio);
                        cmd.CommandTimeout = 90;
                        daEstatusEmpleado.SelectCommand = cmd;
                        daEstatusEmpleado.Fill(dtEstatusEmpleado);
                        //ALTAS DEL EMPLEADO
                        cmd.CommandText = @"select idtrabajador, fechaingreso, diasproporcionales, periodoinicio, periodofin
                        from suaAltas where idempresa = @idempresa and periodoinicio = @periodoinicio and idtrabajador = @idtrabajador";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("idtrabajador", _empleadoInicio);
                        cmd.Parameters.AddWithValue("periodoinicio", _inicioPeriodo);
                        cmd.CommandTimeout = 90;
                        daAltaEmpleado.SelectCommand = cmd;
                        daAltaEmpleado.Fill(dtAltaEmpleado);
                        //REINGRESO DEL EMPLEADO
                        cmd.CommandText = @"select idtrabajador, fechaingreso, diasproporcionales, periodoinicio, periodofin
                        from suaReingresos where idempresa = @idempresa and periodoinicio = @periodoinicio and idtrabajador = @idtrabajador";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("idtrabajador", _empleadoInicio);
                        cmd.Parameters.AddWithValue("periodoinicio", _inicioPeriodo);
                        cmd.CommandTimeout = 90;
                        daReingresoEmpleado.SelectCommand = cmd;
                        daReingresoEmpleado.Fill(dtReingresoEmpledo);
                        //BAJA DEL EMPLEADO
                        cmd.CommandText = @"select idtrabajador, fecha, diasproporcionales, periodoinicio, periodofin
                        from suaBajas where idempresa = @idempresa and periodoinicio = @periodoinicio and idtrabajador = @idtrabajador";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("idtrabajador", _empleadoInicio);
                        cmd.Parameters.AddWithValue("periodoinicio", _inicioPeriodo);
                        cmd.CommandTimeout = 90;
                        daBajaEmpleado.SelectCommand = cmd;
                        daBajaEmpleado.Fill(dtBajaEmpleado);
                        //FALTAS DEL EMPLEADO
                        cmd.CommandText = @"select idtrabajador, fecha, faltas, fechainicio, fechafin
                        from faltas where idempresa = @idempresa and fechainicio = @fechainicio and idtrabajador = @idtrabajador";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("idtrabajador", _empleadoInicio);
                        cmd.Parameters.AddWithValue("fechainicio", _inicioPeriodo);
                        cmd.CommandTimeout = 90;
                        daFaltasEmpleado.SelectCommand = cmd;
                        daFaltasEmpleado.Fill(dtFaltasEmpleado);
                        //INCIDENCAS DEL EMPLEADO
                        cmd.CommandText = @"select idtrabajador, fechainicio, fechafin, isnull(sum(dias),0) as dias,
                        periodoinicio, periodofin from incidencias
                        where idempresa = @idempresa and periodoinicio = @periodoinicio and idtrabajador = @idtrabajador
                        group by idtrabajador, fechainicio, fechafin, periodoinicio, periodofin";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("idtrabajador", _empleadoInicio);
                        cmd.Parameters.AddWithValue("periodoinicio", _inicioPeriodo);
                        cmd.CommandTimeout = 90;
                        daIncideciasEmpleado.SelectCommand = cmd;
                        daIncideciasEmpleado.Fill(dtIncidenciasEmpleado);
                        //VACACIONES DEL EMPLEADO
                        cmd.CommandText = @"select idtrabajador, diaspago, periodoinicio, periodofin,
                        case when vacacionesprima = 'P' then 'Prima Vacacional' else 'Vacaciones' end vacacionesprima
                        from vacacionesprima
                        where idempresa = @idempresa and periodoinicio = @periodoinicio and idtrabajador = @idtrabajador";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("idtrabajador", _empleadoInicio);
                        cmd.Parameters.AddWithValue("periodoinicio", _inicioPeriodo);
                        cmd.CommandTimeout = 90;
                        daVacacionesEmplead.SelectCommand = cmd;
                        daVacacionesEmplead.Fill(dtVacacionesEmpleado);
                        //CONCEPTOS DEL EMPLEADO
                        cmd.CommandText = @"select ct.idempleado, count(idconcepto) as cantidad, c.concepto
                        from conceptotrabajador ct
                        inner join conceptos c on ct.idconcepto = c.id
                        where idempleado = @idempleado
                        group by ct.idempleado, c.concepto, c.noconcepto";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempleado", _empleadoInicio);
                        cmd.CommandTimeout = 90;
                        daConceptosEmpleado.SelectCommand = cmd;
                        daConceptosEmpleado.Fill(dtConceptosEmpleado);
                        //LOGO DE LA EMPRESA
                        cmd.CommandText = "exec stp_rptImagen @idpersona, @tipopersona";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idpersona", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("tipopersona", 0);
                        cmd.CommandTimeout = 90;
                        daImagenEmpleado.SelectCommand = cmd;
                        daImagenEmpleado.Fill(dtImagenEmpleado);

                        rpvVisor.LocalReport.DataSources.Clear();

                        rd = new ReportDataSource();
                        rd.Value = dtEstatusEmpleado;
                        rd.Name = "dsEstatusEmpleado";
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rd = new ReportDataSource();
                        rd.Value = dtAltaEmpleado;
                        rd.Name = "dsAltas";
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rd = new ReportDataSource();
                        rd.Value = dtReingresoEmpledo;
                        rd.Name = "dsReingresos";
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rd = new ReportDataSource();
                        rd.Value = dtBajaEmpleado;
                        rd.Name = "dsBajas";
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rd = new ReportDataSource();
                        rd.Value = dtFaltasEmpleado;
                        rd.Name = "dsFaltas";
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rd = new ReportDataSource();
                        rd.Value = dtIncidenciasEmpleado;
                        rd.Name = "dsIncidencias";
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rd = new ReportDataSource();
                        rd.Value = dtVacacionesEmpleado;
                        rd.Name = "dsVacacionesPrima";
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rd = new ReportDataSource();
                        rd.Value = dtConceptosEmpleado;
                        rd.Name = "dsConceptos";
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rd = new ReportDataSource();
                        rd.Value = dtImagenEmpleado;
                        rd.Name = "dsImagen";
                        rpvVisor.LocalReport.DataSources.Add(rd);

                        rpvVisor.LocalReport.ReportEmbeddedResource = "rptNominaDiagnostico.rdlc";
                        rpvVisor.LocalReport.ReportPath = @"rptNominaDiagnostico.rdlc";
                        break;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("El reporte no se puede generar debido al tiempo de espera. \r\n \r\n Tiempo de espera agotado.", "Error");
            }

            this.rpvVisor.RefreshReport();
        }
Ejemplo n.º 2
0
        private void workerEnvio_DoWork(object sender, DoWorkEventArgs e)
        {
            int existeNullCodeQR = 0;

            cnx = new SqlConnection(cdn);
            cmd = new SqlCommand();
            cmd.Connection = cnx;

            CalculoNomina.Core.NominaHelper nh = new CalculoNomina.Core.NominaHelper();
            nh.Command = cmd;

            workerEnvio.ReportProgress(0, "Generando códigos QR.");

            try
            {
                cnx.Open();
                existeNullCodeQR = nh.existeNullQR(GLOBALES.IDEMPRESA, DateTime.Parse(fecha).Date, DateTime.Parse(fechafin).Date);
                cnx.Close();
            }
            catch (Exception error)
            {
                MessageBox.Show("Error: Al obtener existencia de nulos Code QR." + error.Message, "Error");
                cnx.Dispose();
                return;
            }

            if (existeNullCodeQR != 0)
            {
                List<CalculoNomina.Core.CodigoBidimensional> lstQR = new List<CalculoNomina.Core.CodigoBidimensional>();
                try
                {
                    cnx.Open();
                    lstQR = nh.obtenerListaQr(GLOBALES.IDEMPRESA, DateTime.Parse(fecha).Date, DateTime.Parse(fechafin).Date);
                    cnx.Close();
                }
                catch (Exception error)
                {
                    MessageBox.Show("Error: Al obtener el listado de los XML." + error.Message, "Error");
                    cnx.Dispose();
                    return;
                }

                string codigoQR = "";
                string[] valores = null;
                string numero = "";
                string vEntero = "";
                string vDecimal = "";

                for (int i = 0; i < lstQR.Count; i++)
                {
                    numero = lstQR[i].tt.ToString();
                    valores = numero.Split('.');
                    vEntero = valores[0];
                    vDecimal = valores[1];
                    codigoQR = string.Format("?re={0}&rr={1}&tt={2}.{3}&id={4}", lstQR[i].re, lstQR[i].rr,
                        vEntero.PadLeft(10, '0'), vDecimal.PadRight(6, '0'), lstQR[i].uuid);
                    var qrEncoder = new QrEncoder(ErrorCorrectionLevel.H);
                    var qrCode = qrEncoder.Encode(codigoQR);
                    var renderer = new GraphicsRenderer(new FixedModuleSize(2, QuietZoneModules.Two), Brushes.Black, Brushes.White);

                    using (var stream = new FileStream(lstQR[i].uuid + ".png", FileMode.Create))
                        renderer.WriteToStream(qrCode.Matrix, ImageFormat.Png, stream);

                    Bitmap bmp = new Bitmap(lstQR[i].uuid + ".png");
                    Byte[] qr = GLOBALES.IMAGEN_BYTES(bmp);
                    bmp.Dispose();
                    File.Delete(lstQR[i].uuid + ".png");
                    try
                    {
                        cnx.Open();
                        nh.actualizaXml(GLOBALES.IDEMPRESA, DateTime.Parse(fecha).Date, DateTime.Parse(fechafin).Date, lstQR[i].idtrabajador, qr);
                        cnx.Close();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Error: Al actualizar el código QR.", "Error");
                        cnx.Dispose();
                        return;
                    }
                }
            }

            int existeRecibo = 0;
            if (fecha != "")
            {
                for (int i = 0; i < dgvEmpleados.Rows.Count; i++)
                {

                    try
                    {
                        cnx.Open();
                        existeRecibo = (int)nh.existeXMLTrabajador(GLOBALES.IDEMPRESA, int.Parse(dgvEmpleados.Rows[i].Cells["idtrabajador"].Value.ToString()),
                            DateTime.Parse(fecha).Date);
                        cnx.Close();
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Error: Al obtener existencia del XML", "Error");
                        cnx.Dispose();
                        return;
                    }

                    if (existeRecibo != 0)
                    {
                        dsReportes.NominaRecibosDataTable dtImpresionNomina = new dsReportes.NominaRecibosDataTable();
                        SqlDataAdapter daImpresionNomina = new SqlDataAdapter();
                        cmd.CommandText = "exec stp_rptNominaImpresionTrabajador @idempresa, @fechainicio, @tiponomina, @idtrabajador, @periodo";
                        cmd.Parameters.Clear();
                        cmd.Parameters.AddWithValue("idempresa", GLOBALES.IDEMPRESA);
                        cmd.Parameters.AddWithValue("fechainicio", DateTime.Parse(fecha).Date);
                        cmd.Parameters.AddWithValue("tiponomina", tipoNomina);
                        cmd.Parameters.AddWithValue("idtrabajador", int.Parse(dgvEmpleados.Rows[i].Cells["idtrabajador"].Value.ToString()));
                        cmd.Parameters.AddWithValue("periodo", periodo);
                        cmd.CommandTimeout = 300;
                        daImpresionNomina.SelectCommand = cmd;
                        daImpresionNomina.Fill(dtImpresionNomina);

                        ReportDataSource rd = new ReportDataSource();
                        rd.Value = dtImpresionNomina;
                        rd.Name = "dsNominaRecibo";

                        Visor.LocalReport.DataSources.Clear();
                        Visor.LocalReport.DataSources.Add(rd);

                        Visor.LocalReport.ReportEmbeddedResource = "rptNominaRecibos.rdlc";
                        Visor.LocalReport.ReportPath = @"rptNominaRecibos.rdlc";

                        Warning[] warnings;
                        string[] streamids;
                        string mimeType;
                        string encoding;
                        string extension;

                        byte[] bytes = Visor.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamids, out warnings);

                        if (!Directory.Exists(ruta + DateTime.Parse(fecha).ToString("yyyyMMdd") + "_" + GLOBALES.IDEMPRESA.ToString()))
                            Directory.CreateDirectory(ruta + DateTime.Parse(fecha).ToString("yyyyMMdd") + "_" + GLOBALES.IDEMPRESA.ToString());

                        using (FileStream fs = new FileStream(string.Format(@"{0}\{1}.{2}",
                            ruta + DateTime.Parse(fecha).ToString("yyyyMMdd") + "_" + GLOBALES.IDEMPRESA.ToString(),
                            dgvEmpleados.Rows[i].Cells["nombrecompleto"].Value.ToString() + "_" + DateTime.Parse(fecha).ToString("yyyyMMdd"),
                            "pdf"), FileMode.Create))
                        {
                            fs.Write(bytes, 0, bytes.Length);
                            fs.Flush();
                            fs.Close();
                            fs.Dispose();
                        }

                        List<CalculoNomina.Core.XmlCabecera> lstXml = new List<CalculoNomina.Core.XmlCabecera>();
                        try
                        {
                            cnx.Open();
                            lstXml = nh.obtenerXmlTrabajador(GLOBALES.IDEMPRESA, int.Parse(dgvEmpleados.Rows[i].Cells["idtrabajador"].Value.ToString()),
                                DateTime.Parse(fecha).Date);
                            cnx.Close();
                        }
                        catch (Exception)
                        {
                            MessageBox.Show("Error: Al obtener el XML del Trabajador", "Error");
                            cnx.Dispose();
                            return;
                        }

                        using (StreamWriter sw = new StreamWriter(ruta + DateTime.Parse(fecha).ToString("yyyyMMdd") + "_" + GLOBALES.IDEMPRESA.ToString() + "\\" + dgvEmpleados.Rows[i].Cells["nombrecompleto"].Value.ToString() + "_" + DateTime.Parse(fecha).ToString("yyyyMMdd") + ".xml"))
                        {
                            sw.WriteLine(lstXml[0].xml);
                        }
                        workerEnvio.ReportProgress(i, "Recibo generado.");
                    }
                    else
                    {
                        workerEnvio.ReportProgress(i, "Recibo no existe.");
                    }
                }

                try
                {
                    using (ZipFile zip = new ZipFile())
                    {
                        if (File.Exists(ruta + "RecibosNomina_" + DateTime.Parse(fecha).ToString("yyyyMMdd") + "_" + GLOBALES.IDEMPRESA + ".zip"))
                            File.Delete(ruta + "RecibosNomina_" + DateTime.Parse(fecha).ToString("yyyyMMdd") + "_" + GLOBALES.IDEMPRESA + ".zip");
                        zip.AddDirectory(ruta + DateTime.Parse(fecha).ToString("yyyyMMdd") + "_" + GLOBALES.IDEMPRESA.ToString() + "\\");
                        zip.Save(ruta + "RecibosNomina_" + DateTime.Parse(fecha).ToString("yyyyMMdd") + "_" + GLOBALES.IDEMPRESA + ".zip");
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("Error: Al crear el archivo comprimido.", "Error");
                }

                MailMessage email = new MailMessage();
                SmtpClient smtp = new SmtpClient();
                Attachment comprimido = new Attachment(ruta + "RecibosNomina_" + DateTime.Parse(fecha).ToString("yyyyMMdd") + "_" + GLOBALES.IDEMPRESA + ".zip");
                email.IsBodyHtml = true;
                email.From = new MailAddress(correoEnvio, "Recibos electrónicos de nómina");
                email.To.Add(txtCorreoElectronico.Text);
                email.Subject = "RecibosNomina_" + DateTime.Parse(fecha).ToString("yyyyMMdd");
                email.Body = "Correo automatico enviado por el sistema de administración de nómina. \r\n \r\n No responder.";
                email.Priority = MailPriority.Normal;
                email.Attachments.Add(comprimido);
                smtp.Host = servidorEnvio;
                smtp.Port = puertoEnvio;
                smtp.EnableSsl = usaSSL;

                smtp.Credentials = new NetworkCredential(correoEnvio, passwordEnvio);
                try
                {
                    workerEnvio.ReportProgress(0, "Enviando recibos de nómina");
                    smtp.Send(email);
                    smtp.Dispose();
                    comprimido.Dispose();
                }
                catch (Exception msg)
                {
                    MessageBox.Show("Error al enviar el correo: " + msg.Message, "Error");
                }
            }
        }