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

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

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

            sb.Append("INSERT INTO Asistencia (fechaDesde, fechaHasta, fechaIngresoPautado, fechaEgresoPautado, ");
            sb.Append("id_" + asistencia.Empleado.GetType().Name);
            sb.Append(") VALUES (?fechaDesde, ?fechaHasta, ?fechaIngresoPautado, ?fechaEgresoPautado, ?idEmpleado)");

            string cmdText = sb.ToString();
            List<IDbDataParameter> pars = new List<IDbDataParameter>();

            pars.Add(dbManager.CrearParametro("?fechaDesde", asistencia.FechaDesde));
            pars.Add(dbManager.CrearParametro("?fechaHasta", asistencia.FechaHasta));
            pars.Add(dbManager.CrearParametro("?fechaIngresoPautado", asistencia.FechaIngresoPautado));
            pars.Add(dbManager.CrearParametro("?fechaEgresoPautado", asistencia.FechaEgresoPautado));

            pars.Add(dbManager.CrearParametro("?idEmpleado", asistencia.Empleado.Id));

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

            asistencia.Id = dbManager.GetIdentity();
            return asistencia.Id;
        }
        public void Modificar(Asistencia asistencia)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("UPDATE Asistencia SET fechaDesde = @fechaDesde, fechaHasta = @fechaHasta, fechaIngresoPautado = @fechaIngresoPautado, fechaEgresoPautado = @fechaEgresoPautado ");
            sb.Append("WHERE id = @id");
            string cmdText = sb.ToString();

            List<IDbDataParameter> pars = new List<IDbDataParameter>();
            pars.Add(dbManager.CrearParametro("@id", asistencia.Id));
            pars.Add(dbManager.CrearParametro("@fechaDesde", asistencia.FechaDesde));
            pars.Add(dbManager.CrearParametro("@fechaHasta", asistencia.FechaHasta));
            pars.Add(dbManager.CrearParametro("@fechaIngresoPautado", asistencia.FechaIngresoPautado));
            pars.Add(dbManager.CrearParametro("@fechaEgresoPautado", asistencia.FechaEgresoPautado));

            dbManager.ExecuteNonQuery(CommandType.Text, cmdText, pars);
        }
        private Asistencia ContruirAsistencias(IDataReader reader)
        {
            Asistencia asistencia = new Asistencia();
            asistencia.Id = reader.GetInt32(reader.GetOrdinal("id"));
            asistencia.FechaDesde = reader.GetDateTime(reader.GetOrdinal("fechaDesde"));
            asistencia.FechaHasta = reader.GetDateTime(reader.GetOrdinal("fechaHasta"));
            asistencia.FechaIngresoPautado = reader.GetDateTime(reader.GetOrdinal("fechaIngresoPautado"));
            asistencia.FechaEgresoPautado = reader.GetDateTime(reader.GetOrdinal("fechaEgresoPautado"));

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

            return asistencia;
        }