]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - demo/src/Controlador/AfiliadoSolicitanteController.cs
Ctor( codigo, nombre ) agregado
[z.facultad/75.10/miklolife.git] / demo / src / Controlador / AfiliadoSolicitanteController.cs
index 74f115043039dffffc4c391e8e98aebaa9109957..51a28ab95ccda9019d899a03eaa3eea6110f12fb 100644 (file)
@@ -5,47 +5,66 @@ using Dominio.Afiliados;
 using Dominio.Planes;
 using Dominio;
 using com.db4o;
+using com.db4o.query;
 
 using System;
 using System.Collections;
 
-public class AfiliadoSolicitanteController : IDisposable
+public class AfiliadoSolicitanteController : Controller 
 {
        private ArrayList _afiliados;
        private ArrayList _solicitantes;
-       private ObjectContainer db;
 
-       public AfiliadoSolicitanteController ()
+       public AfiliadoSolicitanteController ():base()
        {
-               db = Db4o.openFile("os.yap");
        }
 
-       public void Dispose ()
+
+       public ArrayList ObtenerSolicitantesAfiliar ()
        {
-               db.close ();
+               Query query = Db.query();
+               query.constrain(typeof(Solicitante));
+               query.descend("_promotor").constrain(null);
+               query.descend("_pendiente").constrain(false);
+               query.descend("_titular").constrain(null);
+
+               ObjectSet result = query.execute();
+               ArrayList lst = ObjectSetToArrayList (result);
+
+               return lst;
        }
 
-       public ArrayList obtenerSolicitantesAfiliar ()
+       public ArrayList ObtenerFamiliaresAfiliar (Solicitante s)
        {
-               return _solicitantes;
+               Query query = Db.query();
+               query.constrain(typeof(Solicitante));
+               query.descend("_promotor").constrain(null);
+               query.descend("_pendiente").constrain(false);
+               query.descend("_titular").constrain(s);
+
+               ObjectSet result = query.execute();
+               ArrayList lst = ObjectSetToArrayList (result);
+
+               return lst;
        }
 
-       public bool ExisteAfiliado (ETipoDocumento tipoDoc, int nroDoc)
+       public Afiliado ExisteAfiliado (ETipoDocumento tipoDoc, int nroDoc)
        {
-               foreach (Afiliado afil in _afiliados) {
-                       if ((afil.TipoDocumento == tipoDoc) && (afil.NroDocumento == nroDoc))
-                               return true;
-               }
-               return false;
+               Afiliado afil = new Afiliado (tipoDoc, nroDoc);
+               ObjectSet result = Db.get (afil);
+               afil = (Afiliado)result.next ();
+
+               return afil;
        }
 
-       public bool ExisteAfiliado (int codigo)
+       public Afiliado ExisteAfiliado (int codigo)
        {
-               foreach (Afiliado afil in _afiliados) {
-                       if (afil.Codigo == codigo)
-                               return true;
-               }
-               return false;
+               Afiliado afil = new Afiliado (ETipoDocumento.NONE, 0);
+               afil.Codigo = codigo;
+               ObjectSet result = Db.get (afil);
+               afil = (Afiliado)result.next ();
+
+               return afil;
        }
 
        public ArrayList ObtenerFamiliares (ETipoDocumento tipoDoc, int nroDoc)
@@ -58,14 +77,57 @@ public class AfiliadoSolicitanteController : IDisposable
                 **/
                return salida;
        }
+
+       public Afiliado AfiliarTitular (ETipoDocumento tipoDoc, int nroDoc, Plan plan) 
+       {
+               /* Obtengo el Solicitante asi luego lo borro */
+               Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
+               s.Pendiente = false;
+               s.Promotor = null;
+               ArrayList a = GetSolicitantes (s);
+               s = (Solicitante)a[0];
+
+               if (s == null)
+                       Console.WriteLine ("ERROR");
+
+               /* Creo el afiliado */
+               Afiliado afil = new Afiliado (s, plan, DateTime.Now);
+               AutoIncrementable i = new AutoIncrementable ();
+               afil.Codigo = i.NextAfiliado ();
+               i.Dispose ();
+
+               /* Agrego el afiliado */
+               Db.set (afil);
+               /* Saco el solicitante */
+               Db.delete (s);
+               return afil;
+       }
+
        
-       public bool afiliarTitular (ETipoDocumento tipoDoc, int nroDo, Plan plan)
+       public Afiliado AfiliarFamiliar (Afiliado AfiTi, ETipoDocumento tipoDoc, int nroDoc, Plan plan) 
        {
-               try {
-                       //do something with db4o
-               }
-               catch (Exception e){}
-               return true;
+               /* Obtengo el Solicitante asi luego lo borro */
+               Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
+               s.Pendiente = false;
+               s.Promotor = null;
+               ArrayList a = GetSolicitantes (s);
+               s = (Solicitante)a[0];
+
+               if (s == null)
+                       Console.WriteLine ("ERROR");
+
+               /* Creo el afiliado */
+               Afiliado afil = new Afiliado (s, plan, DateTime.Now);
+               afil.Titular = AfiTi;
+               AutoIncrementable i = new AutoIncrementable ();
+               afil.Codigo = i.NextAfiliado ();
+               i.Dispose ();
+
+               /* Agrego el afiliado */
+               Db.set (afil);
+               /* Saco el solicitante */
+               Db.delete (s);
+               return afil;
        }
 
        public ArrayList Buscar (ETipoDocumento tipoDoc, int nroDoc)
@@ -85,8 +147,8 @@ public class AfiliadoSolicitanteController : IDisposable
                
                bool existe = false;
                try {
-                       //do something with db4o
-                       ObjectSet result = db.get(c);
+                       //do something with Db4o
+                       ObjectSet result = Db.get(c);
            if (result.next() != null)
                                existe = true;
                }
@@ -110,6 +172,7 @@ public class AfiliadoSolicitanteController : IDisposable
                s.Familiares = cantidadfamiliares;
                s.Observaciones = observaciones;
                s.Pendiente = true;
+               s.Promotor = null;
 
                /* La direccion */
                SDireccion d = new SDireccion ();
@@ -135,11 +198,11 @@ public class AfiliadoSolicitanteController : IDisposable
                return true;
        }
 
-       private bool SaveSolicitante (Solicitante s)
+       public bool SaveSolicitante (Solicitante s)
        {
                try {
                        //do something with db4o
-                       db.set (s);
+                       Db.set (s);
                }
                catch (Exception e) {
                        Console.WriteLine (e);
@@ -147,7 +210,7 @@ public class AfiliadoSolicitanteController : IDisposable
                return true;
        }
 
-       private Solicitante GetSolicitante (ETipoDocumento tipoDoc, int nroDoc)
+       public Solicitante GetSolicitante (ETipoDocumento tipoDoc, int nroDoc)
        {
                Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
 
@@ -159,11 +222,11 @@ public class AfiliadoSolicitanteController : IDisposable
                return (Solicitante)lst[0];
        }
 
-       private ArrayList GetSolicitantes (Solicitante s)
+       public ArrayList GetSolicitantes (Solicitante s)
        {
                ArrayList lst = new ArrayList ();
                try {
-                       ObjectSet result = db.get(s);
+                       ObjectSet result = Db.get(s);
                        if (result == null)
                                return lst;
        
@@ -177,14 +240,6 @@ public class AfiliadoSolicitanteController : IDisposable
                return lst;
        }
        
-       public ArrayList ObtenerSolicitantesPendientes ()
-       {
-               Solicitante s = new Solicitante (0, 0, null, null);
-               Promotor p = null; // new Promotor (0, 0, null, null);
-               s.Promotor = p;
-               return GetSolicitantes (s);
-       }
-
        public void AsociarPromotor (ETipoDocumento tipoDoc, int nroDoc, int promotor)
        {
                try {
@@ -192,6 +247,7 @@ public class AfiliadoSolicitanteController : IDisposable
 
                        Promotor p = new Promotor (ETipoDocumento.DNI, 12345678, "123", "123");
                        s.Promotor = p;
+                       s.Pendiente = false;
                        SaveSolicitante (s);
                }
                catch (Exception e) {
@@ -199,6 +255,28 @@ public class AfiliadoSolicitanteController : IDisposable
                }
        }
 
+       public ArrayList BuscarAfiliados (ETipoDocumento tipoDoc, int nroDoc, int codigo, string apellido)
+       {
+               Afiliado a = new Afiliado (codigo);
+               a.TipoDocumento = tipoDoc;
+               a.NroDocumento = nroDoc;
+               a.Apellido = apellido;
+
+               Query query = Db.query();
+               query.constrain(typeof(Afiliado));
+               if (codigo != 0)
+                       query.descend("_codigo").constrain(codigo);
+               if (tipoDoc != ETipoDocumento.NONE)
+                       query.descend("_tipoDocumento").constrain(tipoDoc);
+               if (nroDoc != 0)
+                       query.descend("_nroDocumento").constrain(nroDoc);
+               if (apellido != null)
+                       query.descend("_apellido").constrain(apellido);
+
+               ObjectSet result = query.execute ();
+               return ObjectSetToArrayList (result);           
+       }
+       
 }
 
 }