private void guardaPreNomina() { cnx = new SqlConnection(cdn); cmd = new SqlCommand(); cmd.Connection = cnx; nh = new CalculoNomina.Core.NominaHelper(); nh.Command = cmd; CalculoNomina.Core.tmpPagoNomina pn = new CalculoNomina.Core.tmpPagoNomina(); pn.idempresa = GLOBALES.IDEMPRESA; pn.fechainicio = periodoInicio.Date; pn.fechafin = periodoFin.Date; pn.guardada = true; pn.tiponomina = _tipoNomina; pn.obracivil = _obracivil; try { cnx.Open(); nh.guardaPreNomina(pn, _periodo); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: \r\n \r\n" + error.Message, "Error"); } try { cnx.Open(); nh.aplicaBajaObraCivil(pn, _periodo); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: \r\n \r\n" + error.Message, "Error"); } string formulaDiasAPagar = "[DiasLaborados]-[Faltas]-[DiasIncapacidad]"; 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()); 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, _periodo); cnx.Close(); } catch (Exception error) { MessageBox.Show("Error: Al actualizar los dias laborados. \r\n \r\n" + error.Message, "Error"); return; } } cnx.Dispose(); MessageBox.Show("ATENCION: La Pre Nómina de Obra Civil se ha guardado, \r\n ésta ya no será modificada. \r\n\r\n Se cerrará la ventana para concluir.", "Información"); this.Dispose(); }