-namespace Dominio {
-namespace Autorizaciones {
-
-using System;
-using Dominio.Autorizaciones;
-using Dominio.Planes;
-
-public class Autorizacion
+namespace Dominio
{
- private int _codigo;
- private float _porcentajeCobertura;
- private DateTime _fechaSolicitud;
- private DateTime _fechaRealizacion;
- private DateTime _fechaVencimiento;
- private bool _aprobada;
- private string _fundamentosResolucion;
- private Prestador _prestador;
- private Prestacion _prestacion;
-
- public Autorizacion (Cobertura c, Prestador p, DateTime solicitud)
+ namespace Autorizaciones
{
- /* TODO */
- _codigo = 0;
- _porcentajeCobertura = c.Porcentaje;
- _fechaSolicitud = solicitud;
- _aprobada = false;
- _prestador = p;
- _prestacion = c.Prestacion;
- }
+ using System;
+ using Dominio.Planes;
- public Autorizacion (Autorizacion auth)
- {
- _codigo = auth._codigo;
- _porcentajeCobertura = auth._porcentajeCobertura;
- _fechaSolicitud = auth._fechaSolicitud;
- }
+ #region Clase Autorizacion
- public int getEstado ()
- {
- return 0;
- }
+ public abstract class Autorizacion
+ {
+ #region Campos privados
+
+ private int _codigo;
+ private float _porcentajeCobertura;
+ private DateTime _fechaSolicitud;
+ private DateTime _fechaRealizacion;
+ private DateTime _fechaVencimiento;
+ private bool _aprobada;
+ private string _fundamentosResolucion;
+ private Prestador _prestador;
+ private Prestacion _prestacion;
+
+ #endregion Campos privados
- public int getEstado (DateTime fechaRecepcion)
- {
- return 0;
- }
+ #region Propiedades Públicas
- public void setResolucion (int resolucion, string fundamentoResolucion)
- {
- }
-
-}
+ public int Codigo
+ {
+ get { return this._codigo; }
+ set { this._codigo = value; }
+ }
-public class AutorizacionManual : Autorizacion
-{
- private string _observaciones;
- private DateTime _fechaResolucion;
+ public float PorcentajeCobertura
+ {
+ get { return this._porcentajeCobertura; }
+ set { this._porcentajeCobertura = value; }
+ }
- public AutorizacionManual (Autorizacion auth):base (auth)
- {
- }
-}
+ public DateTime FechaSolicitud
+ {
+ get { return this._fechaSolicitud; }
+ set { this._fechaSolicitud = value; }
+ }
-public class AutorizacionAutomatica : Autorizacion
-{
- public AutorizacionAutomatica (Autorizacion auth):base (auth)
- {
- }
-}
+ public DateTime FechaRealizacion
+ {
+ get { return this._fechaRealizacion; }
+ set { this._fechaRealizacion = value; }
+ }
-}
+ public DateTime FechaVencimiento
+ {
+ get { return this._fechaVencimiento; }
+ set { this._fechaVencimiento = value; }
+ }
+
+ public bool Aprobada
+ {
+ get { return this._aprobada; }
+ set { this._aprobada = value; }
+ }
+
+ public string FundamentosResolucion
+ {
+ get { return this._fundamentosResolucion; }
+ set { this._fundamentosResolucion = value; }
+ }
+
+ public Prestador Prestador
+ {
+ get { return this._prestador; }
+ set { this._prestador = value; }
+ }
+
+ public Prestacion Prestacion
+ {
+ get { return this._prestacion; }
+ set { this._prestacion = value; }
+ }
+
+ #endregion Propiedades Públicas
+
+ #region Constructores
+
+ public Autorizacion (Cobertura c, Prestador p, DateTime solicitud)
+ {
+ /* TODO */
+ _codigo = 0;
+ _porcentajeCobertura = c.Porcentaje;
+ _fechaSolicitud = solicitud;
+ _aprobada = false;
+ _prestador = p;
+ _prestacion = c.Prestacion;
+ }
+
+ public Autorizacion (Autorizacion auth)
+ {
+ _codigo = auth._codigo;
+ _porcentajeCobertura = auth._porcentajeCobertura;
+ _fechaSolicitud = auth._fechaSolicitud;
+ }
+
+ #endregion Constructores
+
+ #region Métodos Públicos
+
+ public Autorizacion.Estado getEstado( )
+ {
+ return getEstado( DateTime.Now );
+ }
+
+ public Autorizacion.Estado getEstado( DateTime fecha )
+ {
+
+ return 0;
+ }
+
+ public void setResolucion( string fundamentosResolucion, float porcentajeCobertura )
+ {
+ }
+
+ #endregion Métodos Públicos
+
+ #region Estados de una autorización
+
+ public enum Estado
+ {
+ Pendiente,
+ Aprobada,
+ Rechazada,
+ Realizada,
+ Vencida
+ }
+
+ #endregion Estados de una autorización
+ }
+
+ #endregion Clase Autorizacion
+
+ #region Clases derivadas de Autorizacion
+
+ public class AutorizacionManual : Autorizacion
+ {
+ #region Campos Privados
+
+ private string _observaciones;
+ private DateTime _fechaResolucion;
+
+ #endregion Campos Privados
+
+ #region Propiedades Públicas
+
+ public string Observaciones
+ {
+ get { return this._observaciones; }
+ set { this._observaciones = value; }
+ }
+
+ public DateTime FechaResolucion
+ {
+ get { return this._fechaResolucion; }
+ set { this._fechaResolucion = value; }
+ }
+
+ #endregion Propiedades Públicas
+
+ #region Constructores
+
+ public AutorizacionManual (Autorizacion auth):base (auth)
+ {
+ }
+
+ #endregion Constructores
+ }
+
+ public class AutorizacionAutomatica : Autorizacion
+ {
+ #region Constructores
+
+ public AutorizacionAutomatica (Autorizacion auth):base (auth)
+ {
+ }
+
+ #endregion Constructores
+ }
+
+ #endregion Clases derivadas de Autorizacion
+ }
}