public void Eliminar(Ausencia ausencia)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("UPDATE Ausencia SET inactivo=1 ");
            sb.Append("WHERE id = @id");
            string cmdText = sb.ToString();

            List<IDbDataParameter> pars = new List<IDbDataParameter>();
            pars.Add(dbManager.CrearParametro("@id", ausencia.Id));

            dbManager.ExecuteNonQuery(CommandType.Text, cmdText, pars);
        }
        public long Alta(Ausencia ausencia)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("INSERT INTO Ausencia (motivo, fechaIngresoPautado, fechaEgresoPautado, ");
            sb.Append("id_");
            sb.Append(ausencia.Empleado.GetType().Name);
            sb.Append(") VALUES (@motivo, @fechaIngresoPautado, @fechaEgresoPautado, @idEmpleado)");

            string cmdText = sb.ToString();

            List<IDbDataParameter> pars = new List<IDbDataParameter>();
            pars.Add(dbManager.CrearParametro("@motivo", ausencia.Motivo));
            pars.Add(dbManager.CrearParametro("@fechaIngresoPautado", ausencia.FechaIngresoPautado));
            pars.Add(dbManager.CrearParametro("@fechaEgresoPautado", ausencia.FechaEgresoPautado));
            pars.Add(dbManager.CrearParametro("@idEmpleado", ausencia.Empleado.Id));

            dbManager.ExecuteNonQuery(CommandType.Text, cmdText, pars);

            ausencia.Id = dbManager.GetIdentity();
            return ausencia.Id;
        }
        private void Aceptar()
        {
            if (ValidarDatos())
            {
                if (ausencia == null)
                {
                    ausencia = new Ausencia();
                    ausencia.Empleado = empleado;
                    ausencia.FechaIngresoPautado = dtpDiaAusencia.Value.Date;
                    ausencia.FechaIngresoPautado = ausencia.FechaIngresoPautado.AddHours(dtpHorarioIngreso.Value.Hour);
                    ausencia.FechaIngresoPautado = ausencia.FechaIngresoPautado.AddMinutes(dtpHorarioIngreso.Value.Minute);

                    ausencia.FechaEgresoPautado = dtpDiaAusencia.Value.Date;
                    ausencia.FechaEgresoPautado = ausencia.FechaEgresoPautado.AddHours(dtpHorarioEgreso.Value.Hour);
                    ausencia.FechaEgresoPautado = ausencia.FechaEgresoPautado.AddMinutes(dtpHorarioEgreso.Value.Minute);
                    ausencia.Empleado = empleado;
                }

                ausencia.Motivo = textBoxMotivo.Text;

                this.DialogResult = DialogResult.Yes;
                this.Close();
            }
        }
        private Ausencia ConstruirAusencia(IDataReader reader)
        {
            Ausencia ausencia = new Ausencia();
            ausencia.Id = reader.GetInt32(reader.GetOrdinal("id"));
            ausencia.Motivo = reader.GetString(reader.GetOrdinal("motivo"));
            ausencia.FechaIngresoPautado = reader.GetDateTime(reader.GetOrdinal("fechaIngresoPautado"));
            ausencia.FechaEgresoPautado = reader.GetDateTime(reader.GetOrdinal("fechaEgresoPautado"));

            //Carga en la ausencia el empleado indicado por el id
            long idEmpleado;
            if(!reader.IsDBNull(reader.GetOrdinal("id_Operario")))
            {
                idEmpleado = reader.GetInt32(reader.GetOrdinal("id_Operario"));
                ausencia.Empleado = estrategia.OperarioPersistenceManager.ObtenerPorId(idEmpleado);
            }
            else if (!reader.IsDBNull(reader.GetOrdinal("id_Vendedor")))
            {
                idEmpleado = reader.GetInt32(reader.GetOrdinal("id_Vendedor"));
                ausencia.Empleado = estrategia.VendedorPersistenceManager.ObtenerPorId(idEmpleado);
            }
            else
            {
                idEmpleado = reader.GetInt32(reader.GetOrdinal("id_Administrativo"));
                ausencia.Empleado = estrategia.AdministrativoPersistenceManager.ObtenerPorId(idEmpleado);
            }

            return ausencia;
        }
        public void Modificar(Ausencia ausencia)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("UPDATE Ausencia SET motivo = @motivo, fechaIngresoPautado = @fechaIngresoPautado, fechaEgresoPautado = @fechaEgresoPautado ");
            sb.Append("WHERE id = @id");
            string cmdText = sb.ToString();

            List<IDbDataParameter> pars = new List<IDbDataParameter>();
            pars.Add(dbManager.CrearParametro("@id", ausencia.Id));
            pars.Add(dbManager.CrearParametro("@motivo", ausencia.Motivo));
            pars.Add(dbManager.CrearParametro("@fechaIngresoPautado", ausencia.FechaIngresoPautado));
            pars.Add(dbManager.CrearParametro("@fechaEgresoPautado", ausencia.FechaEgresoPautado));

            dbManager.ExecuteNonQuery(CommandType.Text, cmdText, pars);
        }
 public void SetAusencia(Ausencia ausencia)
 {
     this.ausencia = ausencia;
 }