private void toolGuardar_Click(object sender, EventArgs e)
        {
            cnx = new SqlConnection();
            cnx.ConnectionString = cdn;
            cmd = new SqlCommand();
            cmd.Connection = cnx;

            eh = new Empleados.Core.EmpleadosHelper();
            hh = new Historial.Core.HistorialHelper();
            mh = new Modificaciones.Core.ModificacionesHelper();
            eh.Command = cmd;
            hh.Command = cmd;
            mh.Command = cmd;

            Empleados.Core.Empleados empleado = new Empleados.Core.Empleados();
            empleado.idtrabajador = _idempleado;
            empleado.sdi = decimal.Parse(txtSDI.Text);
            empleado.sd = decimal.Parse(txtSD.Text);
            empleado.sueldo = decimal.Parse(txtSueldo.Text);

            Historial.Core.Historial historia = new Historial.Core.Historial();
            historia.idtrabajador = _idempleado;
            historia.idempresa = GLOBALES.IDEMPRESA;
            historia.tipomovimiento = GLOBALES.mMODIFICACIONSALARIO;
            historia.valor = decimal.Parse(txtSDI.Text);
            historia.fecha_imss = dtpFecha.Value;
            historia.fecha_sistema = DateTime.Now;
            historia.motivobaja = 0;

            if (departamento)
                historia.iddepartamento = int.Parse(cmbDepartamento.SelectedValue.ToString());
            else
                historia.iddepartamento = iddepto;

            if (puesto)
                historia.idpuesto = int.Parse(cmbPuesto.SelectedValue.ToString());
            else
                historia.idpuesto = idpuesto;

            Modificaciones.Core.Modificaciones mod = new Modificaciones.Core.Modificaciones();
            mod.idtrabajador = _idempleado;
            mod.idempresa = GLOBALES.IDEMPRESA;
            mod.registropatronal = rp;
            mod.nss = nss;
            mod.fecha = dtpFecha.Value;
            mod.sdi = decimal.Parse(txtSDI.Text);

            aplih = new Aplicaciones.Core.AplicacionesHelper();
            aplih.Command = cmd;
            Aplicaciones.Core.Aplicaciones aDepto = new Aplicaciones.Core.Aplicaciones();
            Aplicaciones.Core.Aplicaciones aPuesto = new Aplicaciones.Core.Aplicaciones();

            try {
                cnx.Open();
                eh.actualizaSueldo(empleado);
                hh.insertarHistorial(historia);
                mh.insertaModificacion(mod);

                if (departamento)
                {
                    Historial.Core.Historial historiaDepto = new Historial.Core.Historial();
                    historiaDepto.idtrabajador = _idempleado;
                    historiaDepto.idempresa = GLOBALES.IDEMPRESA;
                    historiaDepto.tipomovimiento = GLOBALES.mCAMBIODEPARTAMENTO;
                    historiaDepto.valor = decimal.Parse(txtSDI.Text);
                    historiaDepto.fecha_imss = dtpFecha.Value;
                    historiaDepto.fecha_sistema = DateTime.Now;
                    historiaDepto.motivobaja = 0;
                    historiaDepto.iddepartamento = int.Parse(cmbDepartamento.SelectedValue.ToString());
                    historiaDepto.idpuesto = idpuesto;
                    hh.insertarHistorial(historiaDepto);

                    aDepto = new Aplicaciones.Core.Aplicaciones();
                    aDepto.idtrabajador = _idempleado;
                    aDepto.idempresa = GLOBALES.IDEMPRESA;
                    aDepto.iddeptopuesto = int.Parse(cmbDepartamento.SelectedValue.ToString());
                    aDepto.deptopuesto = "D";
                    aDepto.fecha = dtpFecha.Value.Date;
                    aDepto.registro = DateTime.Now.Date;
                    aDepto.idusuario = GLOBALES.IDUSUARIO;
                    aDepto.periodoinicio = inicioPeriodo;
                    aDepto.periodofin = finPeriodo;
                    aplih.insertaAplicacion(aDepto);
                }

                if (puesto)
                {
                    Historial.Core.Historial historiaPuesto = new Historial.Core.Historial();
                    historiaPuesto.idtrabajador = _idempleado;
                    historiaPuesto.idempresa = GLOBALES.IDEMPRESA;
                    historiaPuesto.tipomovimiento = GLOBALES.mCAMBIOPUESTO;
                    historiaPuesto.valor = decimal.Parse(txtSDI.Text);
                    historiaPuesto.fecha_imss = dtpFecha.Value;
                    historiaPuesto.fecha_sistema = DateTime.Now;
                    historiaPuesto.motivobaja = 0;
                    historiaPuesto.iddepartamento = int.Parse(cmbDepartamento.SelectedValue.ToString());
                    historiaPuesto.idpuesto = int.Parse(cmbPuesto.SelectedValue.ToString());
                    hh.insertarHistorial(historiaPuesto);

                    aPuesto = new Aplicaciones.Core.Aplicaciones();
                    aPuesto.idtrabajador = _idempleado;
                    aPuesto.idempresa = GLOBALES.IDEMPRESA;
                    aPuesto.iddeptopuesto = int.Parse(cmbPuesto.SelectedValue.ToString());
                    aPuesto.deptopuesto = "P";
                    aPuesto.fecha = dtpFecha.Value.Date;
                    aPuesto.registro = DateTime.Now.Date;
                    aPuesto.idusuario = GLOBALES.IDUSUARIO;
                    aPuesto.periodoinicio = inicioPeriodo;
                    aPuesto.periodofin = finPeriodo;
                    aplih.insertaAplicacion(aPuesto);
                }

                cnx.Close();
                cnx.Dispose();

                MessageBox.Show("Incremento aplicado.", "Confirmación");

                if (OnIncrementoSalarial != null)
                    OnIncrementoSalarial();
            }
            catch (Exception error) {
                MessageBox.Show("Error: \r\n \r\n " + error.Message, "Error");
            }
            this.Dispose();
        }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            obtenerPeriodoCalculo();

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

            Aplicaciones.Core.AplicacionesHelper ah = new Aplicaciones.Core.AplicacionesHelper();
            ah.Command = cmd;

            Aplicaciones.Core.Aplicaciones a = new Aplicaciones.Core.Aplicaciones();

            a.idtrabajador = _idempleado;
            a.idempresa = GLOBALES.IDEMPRESA;
            a.iddeptopuesto = int.Parse(cmbDeptoPuesto.SelectedValue.ToString());
            a.fecha = dtpFechaAplicacion.Value.Date;
            a.registro = DateTime.Now;
            a.idusuario = GLOBALES.IDUSUARIO;
            a.periodoinicio = inicioPeriodo;
            a.periodofin = finPeriodo;

            Historial.Core.HistorialHelper hh = new Historial.Core.HistorialHelper();
            hh.Command = cmd;

            Historial.Core.Historial historial = new Historial.Core.Historial();

            historial = new Historial.Core.Historial();
            historial.idtrabajador = _idempleado;
            historial.idempresa = GLOBALES.IDEMPRESA;
            historial.valor = sdi;
            historial.fecha_sistema = DateTime.Now;
            historial.motivobaja = 0;
            historial.fecha_imss = dtpFechaAplicacion.Value.Date;

            if (_deptopuesto == 0)
            {
                a.deptopuesto = "D";
                historial.tipomovimiento = GLOBALES.mCAMBIODEPARTAMENTO;
                historial.iddepartamento = int.Parse(cmbDeptoPuesto.SelectedValue.ToString());
                historial.idpuesto = idpuesto;
            }
            else
            {
                a.deptopuesto = "P";
                historial.tipomovimiento = GLOBALES.mCAMBIOPUESTO;
                historial.idpuesto = int.Parse(cmbDeptoPuesto.SelectedValue.ToString());
                historial.iddepartamento = iddepto;
            }

            try
            {
                cnx.Open();
                hh.insertarHistorial(historial);
                cnx.Close();

            }
            catch (Exception)
            {
                MessageBox.Show("Error: Al insertar el historico.", "Error");
                cnx.Dispose();
            }

            if (inicioPeriodo.Date == periodoInicioCalculo.Date && finPeriodo.Date == periodoFinCalculo.Date)
            {
                Empleados.Core.EmpleadosHelper eh = new Empleados.Core.EmpleadosHelper();
                eh.Command = cmd;
                try
                {
                    cnx.Open();
                    if (_deptopuesto == 0)
                        eh.actualizaDeptoPuesto(int.Parse(cmbDeptoPuesto.SelectedValue.ToString()), _idempleado, "D");
                    else
                        eh.actualizaDeptoPuesto(int.Parse(cmbDeptoPuesto.SelectedValue.ToString()), _idempleado, "P");
                    cnx.Close();
                    cnx.Dispose();
                }
                catch (Exception)
                {
                    MessageBox.Show("Error: Al actualizar el depto/puesto.", "Error");
                    cnx.Dispose();
                }
            }
            else
            {
                try
                {
                    cnx.Open();
                    ah.insertaAplicacion(a);
                    cnx.Close();
                    cnx.Dispose();
                }
                catch (Exception)
                {
                    MessageBox.Show("Error: Al ingresar la aplicacion del depto/puesto.", "Error");
                    cnx.Dispose();
                }
            }

            this.Dispose();
        }