Skip to content

Commit 04cea7a

Browse files
Merge pull request #38 from ucudal/CodigoFinal
Codigo final
2 parents 2703be9 + 907d952 commit 04cea7a

38 files changed

+1329
-2362
lines changed

src/Library/Administrador.cs

Lines changed: 22 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -3,95 +3,53 @@
33
namespace Library
44
{
55
/// <summary>
6-
/// Representa un administrador dentro del sistema.
7-
/// Implementa la interfaz <see cref="IUsuario"/> y permite gestionar usuarios
8-
/// (crearlos, suspenderlos, eliminarlos y mostrarlos) mediante el <see cref="GestorUsuarios"/>.
6+
/// Representa un administrador del sistema.
7+
/// Puede crear y administrar usuarios.
98
/// </summary>
10-
public class Administrador : IUsuario
9+
public class Administrador : UsuarioBase
1110
{
12-
/// <summary>
13-
/// Identificador único del administrador.
14-
/// </summary>
15-
public int Id { get; set; }
16-
17-
/// <summary>
18-
/// Indica si el administrador está activo.
19-
/// </summary>
20-
public bool Activo { get; set; }
21-
22-
/// <summary>
23-
/// Fecha en que se creó el administrador.
24-
/// </summary>
25-
public DateTime FechaCreacion { get; set; }
11+
public Administrador(bool activo, DateTime fechaCreacion)
12+
: base(activo, fechaCreacion) { }
2613

2714
/// <summary>
28-
/// Constructor de la clase <see cref="Administrador"/>.
15+
/// Solicita crear un nuevo vendedor.
2916
/// </summary>
30-
/// <param name="activo">Estado de actividad del administrador.</param>
31-
/// <param name="fechaCreacion">Fecha de creación del administrador.</param>
32-
public Administrador(bool activo, DateTime fechaCreacion)
17+
public Vendedor CrearVendedor()
3318
{
34-
Activo = activo;
35-
FechaCreacion = fechaCreacion;
36-
Id = 0; // se puede asignar luego desde GestorUsuarios si se desea
19+
return GestorUsuarios.Instancia.CrearVendedor(true, DateTime.Now);
3720
}
3821

3922
/// <summary>
40-
/// Crea un nuevo usuario activo y lo agrega al <see cref="GestorUsuarios"/>.
23+
/// Solicita crear otro administrador.
4124
/// </summary>
42-
/// <param name="nombre">Nombre del nuevo usuario.</param>
43-
/// <param name="apellido">Apellido del nuevo usuario.</param>
44-
/// <param name="email">Correo electrónico del nuevo usuario.</param>
45-
/// <returns>El usuario recién creado.</returns>
46-
public Usuario CrearUsuario(string nombre, string apellido, string email)
25+
public Administrador CrearAdministrador()
4726
{
48-
// Por ahora, ignoramos nombre/apellido/email (como en tu comentario)
49-
int nuevoId = GestorUsuarios.Instancia.AgregarUsuario(true, DateTime.Now);
50-
Usuario nuevo = GestorUsuarios.Instancia.ObtenerUsuario(nuevoId);
51-
52-
Console.WriteLine($"Usuario creado con ID {nuevo.Id}.");
53-
return nuevo;
27+
return GestorUsuarios.Instancia.CrearAdministrador(true, DateTime.Now);
5428
}
5529

5630
/// <summary>
57-
/// Suspende un usuario existente estableciendo su estado como inactivo.
31+
/// Suspende a un usuario (Activa = false).
5832
/// </summary>
59-
/// <param name="idUsuario">ID del usuario a suspender.</param>
60-
public void SuspenderUsuario(int idUsuario)
33+
/// <returns>true si la operación tuvo éxito.</returns>
34+
public bool SuspenderUsuario(int idUsuario)
6135
{
62-
Usuario usuario = GestorUsuarios.Instancia.ObtenerUsuario(idUsuario);
63-
64-
if (usuario != null)
65-
{
66-
usuario.Activo = false;
67-
Console.WriteLine($"Usuario {idUsuario} suspendido.");
68-
}
69-
else
70-
{
71-
Console.WriteLine($"No se encontró el usuario con ID {idUsuario}.");
72-
}
36+
return GestorUsuarios.Instancia.ActualizarActivo(idUsuario, false);
7337
}
7438

7539
/// <summary>
76-
/// Elimina un usuario del sistema utilizando el <see cref="GestorUsuarios"/>.
40+
/// Elimina a un usuario del sistema.
7741
/// </summary>
78-
/// <param name="idUsuario">ID del usuario a eliminar.</param>
79-
public void EliminarUsuario(int idUsuario)
42+
public bool EliminarUsuario(int idUsuario)
8043
{
81-
bool eliminado = GestorUsuarios.Instancia.EliminarUsuario(idUsuario);
82-
83-
if (eliminado)
84-
Console.WriteLine($"Usuario {idUsuario} eliminado correctamente.");
85-
else
86-
Console.WriteLine($"No se pudo eliminar: usuario {idUsuario} no encontrado.");
44+
return GestorUsuarios.Instancia.EliminarUsuario(idUsuario);
8745
}
8846

8947
/// <summary>
90-
/// Muestra en consola todos los usuarios gestionados por el <see cref="GestorUsuarios"/>.
48+
/// Devuelve la lista de usuarios registrados en el sistema.
9149
/// </summary>
92-
public void MostrarUsuarios()
50+
public System.Collections.Generic.List<IUsuario> ObtenerUsuarios()
9351
{
94-
GestorUsuarios.Instancia.MostrarTodosUsuarios();
52+
return GestorUsuarios.Instancia.ObtenerTodos();
9553
}
9654
}
97-
}
55+
}

src/Library/Cliente.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Cliente.cs
21
using System;
32
using System.Collections.Generic;
43

src/Library/Cotizacion.cs

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
using System;
2+
using System.Collections.Generic;
23

34
namespace Library
45
{
56
/// <summary>
6-
/// Representa una cotización realizada en el sistema.
7-
/// Hereda de Interaccion porque comparte los datos básicos (fecha, descripcion, notas, etc.).
7+
/// Representa una cotización asociada a un cliente o interacción.
8+
/// Hereda de Interaccion.
89
/// </summary>
910
public class Cotizacion : Interaccion
1011
{
@@ -19,12 +20,17 @@ public class Cotizacion : Interaccion
1920
public DateTime FechaEnvio { get; private set; }
2021

2122
/// <summary>
22-
/// Importe total de la cotización.
23+
/// Importe total cotizado.
2324
/// </summary>
2425
public double ImporteTotal { get; private set; }
2526

2627
/// <summary>
27-
/// Constructor que permite crear una cotización con todos los datos necesarios.
28+
/// Ventas generadas a partir de esta cotización.
29+
/// </summary>
30+
public List<Venta> VentasGeneradas { get; private set; } = new List<Venta>();
31+
32+
/// <summary>
33+
/// Constructor principal de Cotizacion.
2834
/// </summary>
2935
public Cotizacion(
3036
string estado,
@@ -37,17 +43,25 @@ public Cotizacion(
3743
string direccion
3844
) : base(fecha, descripcion, notas, respondida, direccion)
3945
{
40-
this.Estado = estado;
41-
this.FechaEnvio = fechaEnvio;
42-
this.ImporteTotal = importeTotal;
46+
Estado = estado;
47+
FechaEnvio = fechaEnvio;
48+
ImporteTotal = importeTotal;
4349
}
4450

4551
/// <summary>
46-
/// Constructor por defecto.
52+
/// Constructor vacío para crear una cotización sin inicializar valores.
53+
/// </summary>
54+
public Cotizacion() : base() { }
55+
56+
/// <summary>
57+
/// Registra una venta asociada a esta cotización.
4758
/// </summary>
48-
public Cotizacion() : base()
59+
public void RegistrarVentaAsociada(Venta venta)
4960
{
50-
// Este constructor deja los valores por defecto.
61+
if (venta != null && !VentasGeneradas.Contains(venta))
62+
{
63+
VentasGeneradas.Add(venta);
64+
}
5165
}
5266
}
53-
}
67+
}

src/Library/Etiqueta.cs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,27 @@
11
namespace Library
22
{
33
/// <summary>
4-
/// Representa una etiqueta que puede asociarse a clientes u otros elementos del sistema.
4+
/// Representa una etiqueta del sistema.
55
/// </summary>
66
public class Etiqueta
77
{
88
/// <summary>
99
/// Nombre de la etiqueta.
1010
/// </summary>
11-
private string nombre;
11+
public string Nombre { get; set; }
1212

1313
/// <summary>
14-
/// Constructor que inicializa la etiqueta con un nombre.
14+
/// Constructor sin parámetros requerido por la fachada.
1515
/// </summary>
16-
/// <param name="nombre">Nombre de la etiqueta.</param>
17-
public Etiqueta(string nombre)
18-
{
19-
this.nombre = nombre;
20-
}
16+
public Etiqueta() { }
2117

2218
/// <summary>
23-
/// Devuelve el nombre de la etiqueta.
19+
/// Constructor que inicializa la etiqueta con un nombre dado.
2420
/// </summary>
25-
/// <returns>Nombre de la etiqueta.</returns>
26-
public string ObtenerNombre()
21+
/// <param name="nombre">Nombre de la etiqueta.</param>
22+
public Etiqueta(string nombre)
2723
{
28-
return nombre;
24+
Nombre = nombre;
2925
}
3026
}
3127
}

0 commit comments

Comments
 (0)