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)
**/
return salida;
}
+
+ public Afiliado AfiliarTitular (ETipoDocumento tipoDoc, int nroDoc, int codplan)
+ {
+ /* 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");
+
+ Plan c = new Plan ();
+ c.Codigo = codplan;
+ ObjectSet r = Db.get (c);
+ Plan plan = r.next () as Plan;
+
+ /* 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)
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;
}
s.Familiares = cantidadfamiliares;
s.Observaciones = observaciones;
s.Pendiente = true;
+ s.Promotor = null;
/* La direccion */
SDireccion d = new SDireccion ();
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);
return true;
}
- private Solicitante GetSolicitante (ETipoDocumento tipoDoc, int nroDoc)
+ public Solicitante GetSolicitante (ETipoDocumento tipoDoc, int nroDoc)
{
Solicitante s = new Solicitante (tipoDoc, nroDoc, null, null);
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;
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 {
Promotor p = new Promotor (ETipoDocumento.DNI, 12345678, "123", "123");
s.Promotor = p;
+ s.Pendiente = false;
SaveSolicitante (s);
}
catch (Exception e) {
}
}
+ 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);
+ }
+
}
}