X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/c36c16908f73901f367fe523aeef8dfb688ac2ff..afbf89745cac12021bfe71bc6739dbd9459cacc0:/demo/src/Controlador/AfiliadoSolicitanteController.cs diff --git a/demo/src/Controlador/AfiliadoSolicitanteController.cs b/demo/src/Controlador/AfiliadoSolicitanteController.cs index 74f1150..51a28ab 100644 --- a/demo/src/Controlador/AfiliadoSolicitanteController.cs +++ b/demo/src/Controlador/AfiliadoSolicitanteController.cs @@ -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); + } + } }