private void toolAutorizar_Click(object sender, EventArgs e) { DialogResult respuesta = MessageBox.Show("¿Quiere autorizar el periodo?", "Confirmación", MessageBoxButtons.YesNo); if (respuesta == DialogResult.Yes) { cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; nh = new CalculoNomina.Core.NominaHelper(); nh.Command = cmd; List<CalculoNomina.Core.tmpPagoNomina> lstTrabajadores = new List<CalculoNomina.Core.tmpPagoNomina>(); if (_tipoNomina == GLOBALES.NORMAL) { try { cnx.Open(); lstTrabajadores = nh.obtenerIdTrabajadoresTempNomina(GLOBALES.IDEMPRESA, _tipoNomina, periodoInicio, periodoFin, _periodo); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al obtener los trabajadores. \r\n \r\n" + error.Message, "Error"); return; } string formulaDiasAPagar = "[DiasLaborados]-[Faltas]-[DiasIncapacidad]"; for (int i = 0; i < lstTrabajadores.Count; i++) { CalculoFormula cf = new CalculoFormula(lstTrabajadores[i].idtrabajador, periodoInicio, periodoFin, formulaDiasAPagar); int diasAPagar = int.Parse(cf.calcularFormula().ToString()); CalculoNomina.Core.tmpPagoNomina pn = new CalculoNomina.Core.tmpPagoNomina(); pn.idtrabajador = lstTrabajadores[i].idtrabajador; pn.diaslaborados = diasAPagar; pn.fechainicio = periodoInicio; pn.fechafin = periodoFin; try { cnx.Open(); nh.actualizaDiasFechaPago(pn, _periodo); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error (Actualizacion Dias Laborados): Al actualizar los dias laborados. \r\n \r\n" + error.Message, "Error"); return; } } //foreach (DataGridViewRow fila in dgvEmpleados.Rows) //{ // CalculoFormula cf = new CalculoFormula(int.Parse(fila.Cells["idtrabajador"].Value.ToString()), periodoInicio, periodoFin, formulaDiasAPagar); // int diasAPagar = int.Parse(cf.calcularFormula().ToString()); // CalculoNomina.Core.tmpPagoNomina pn = new CalculoNomina.Core.tmpPagoNomina(); // pn.idtrabajador = int.Parse(fila.Cells["idtrabajador"].Value.ToString()); // pn.diaslaborados = diasAPagar; // pn.fechainicio = periodoInicio; // pn.fechafin = periodoFin; // try // { // cnx.Open(); // nh.actualizaDiasFechaPago(pn); // cnx.Close(); // } // catch (Exception error) // { // MessageBox.Show("Error: Al actualizar los dias laborados. \r\n \r\n" + error.Message, "Error"); // return; // } //} } else if (_tipoNomina == GLOBALES.EXTRAORDINARIO_NORMAL) { CalculoNomina.Core.tmpPagoNomina pn = new CalculoNomina.Core.tmpPagoNomina(); pn.diaslaborados = 0; pn.fechainicio = periodoInicio; pn.fechafin = periodoFin; pn.tiponomina = _tipoNomina; try { cnx.Open(); nh.actualizaDiasFechaPagoExtraordinaria(pn, DateTime.Now.Date, _periodo); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error (Actualizacion dias laborados): Al actualizar los dias laborados. \r\n \r\n" + error.Message, "Error"); return; } } try { cnx.Open(); nh.stpAutorizaNomina(GLOBALES.IDEMPRESA, periodoInicio.Date, periodoFin.Date, GLOBALES.IDUSUARIO, _tipoNomina, _periodo); cnx.Close(); cnx.Dispose(); if (_tipoNomina == GLOBALES.NORMAL) { obtenerPeriodoCalculo(); CargaPreNomina(periodoInicio, periodoFin); cp_OnNuevoPeriodo(periodoInicio, periodoFin); } else if (_tipoNomina == GLOBALES.EXTRAORDINARIO_NORMAL) { dgvEmpleados.DataSource = null; dgvEmpleados.Rows.Clear(); } MessageBox.Show("Nomina autorizada.", "Confirmación"); } catch (Exception error) { MessageBox.Show("Error (Autorizacion Nómina): \r\n \r\n" + error.Message, "Error"); } } }