Exemple #1
0
        /// <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();
            }
        }