/// <summary> /// Obtener los motivos para un registro de horas extra. /// </summary> /// <param name="r">Registro para el cual se obtienen los motivos</param> public void obtenerMotivosRegistroHorasExtra(ref RegistroHorasExtra r) { SqlCommand comando = _manejador.obtenerProcedimiento("SelectRegistroHorasExtraMotivos"); SqlDataReader datareader = null; _manejador.agregarParametro(comando, "@registro", r.Id, SqlDbType.Int); try { datareader = _manejador.ejecutarConsultaDatos(comando); while (datareader.Read()) { Motivos motivo = (Motivos)datareader["Motivo"]; r.agregarMotivo(motivo); } comando.Connection.Close(); } catch (Exception) { comando.Connection.Close(); throw new Excepcion("ErrorDatosConexion"); } }
/// <summary> /// Clic en el botón de guardar. /// </summary> private void btnGuardar_Click(object sender, EventArgs e) { // Verificar que se hayan seleccionado los datos if (cboColaborador.SelectedItem == null || clbConceptos.CheckedItems.Count == 0 || lstPuestos.SelectedIndices.Count == 0) { Excepcion.mostrarMensaje("ErrorRegistroHorasExtraDatosRegistro"); return; } try { frmAdministracionHorasExtra padre = (frmAdministracionHorasExtra)this.Owner; Colaborador colaborador = (Colaborador)cboColaborador.SelectedItem; DateTime hora_ingreso = dtpHoraIngreso.Value; DateTime hora_salida = dtpHoraSalida.Value; decimal horas_dobles = (decimal)nudHoraDoble.Value; decimal horas_extra = (decimal)nudHorasExtra.Value; decimal horas_dobles_extra = (decimal)nudExtraDoble.Value; decimal transporte = (decimal)nudTransporte.Value; decimal alimentacion = (decimal)nudAlimentacion.Value; string observaciones_conceptos = txtObservacionesConceptos.Text; string observaciones_gastos = txtObservacionesGastos.Text; // Verificar si el registro es nuevo if (_registro == null) { // Agregar los datos del nuevo registro if (Mensaje.mostrarMensajeConfirmacion("MensajeRegistroHorasExtraRegistro") == DialogResult.Yes) { RegistroHorasExtra nuevo = new RegistroHorasExtra(colaborador: colaborador, coordinador: _coordinador, hora_ingreso: hora_ingreso, hora_salida: hora_salida, horas_extra: horas_extra, horas_dobles: horas_dobles, horas_dobles_extra: horas_dobles_extra, alimentacion: alimentacion, transporte: transporte, observaciones_conceptos: observaciones_conceptos, observaciones_gastos: observaciones_gastos); foreach (int motivo in clbConceptos.CheckedIndices) { nuevo.agregarMotivo((Motivos)motivo); } foreach (int puesto in lstPuestos.SelectedIndices) { nuevo.agregarPuesto((Puestos)puesto); } _supervision.agregarRegistroHorasExtra(ref nuevo); padre.agregarRegistro(nuevo); Mensaje.mostrarMensaje("MensajeRegistroHorasExtraConfirmacionRegistro"); this.Close(); } } else { RegistroHorasExtra copia = new RegistroHorasExtra(id: _registro.Id, colaborador: colaborador, coordinador: _registro.Coordinador, hora_ingreso: hora_ingreso, hora_salida: hora_salida, horas_extra: horas_extra, horas_dobles: horas_dobles, horas_dobles_extra: horas_dobles_extra, alimentacion: alimentacion, transporte: transporte, observaciones_conceptos: observaciones_conceptos, observaciones_gastos: observaciones_gastos); foreach (int motivo in clbConceptos.CheckedIndices) { copia.agregarMotivo((Motivos)motivo); } foreach (int puesto in lstPuestos.SelectedIndices) { copia.agregarPuesto((Puestos)puesto); } // Actualizar los datos del registro _supervision.actualizarRegistroHorasExtra(copia); _registro.Colaborador = colaborador; _registro.Hora_ingreso = hora_ingreso; _registro.Hora_salida = hora_salida; _registro.Horas_dobles_extra = horas_dobles_extra; _registro.Horas_extra = horas_extra; _registro.Horas_dobles = horas_dobles; _registro.Transporte = transporte; _registro.Alimentacion = alimentacion; _registro.Observaciones_conceptos = observaciones_conceptos; _registro.Observaciones_gastos = observaciones_gastos; _registro.Motivos = copia.Motivos; _registro.Puestos = copia.Puestos; padre.actualizarLista(); Mensaje.mostrarMensaje("MensajeRegistroHorasExtraConfirmacionActualizacion"); this.Close(); } } catch (Excepcion ex) { ex.mostrarMensaje(); } }