public bool Delete(BeneficiarioPrepago beneficiario)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
         //ENTIDAD PrepaidBeneficiary
         PrepaidBeneficiary prepaidbeneficiary = db.PrepaidBeneficiaries.FirstOrDefault(b => b.affiliateid == beneficiario.Afiliado.id && b.prepaidcustomerid == beneficiario.Cliente.idCliente);
         db.PrepaidBeneficiaries.Remove(prepaidbeneficiary);
         db.SaveChanges();
         return true;
     }
 }
 public ActionResult FilterReview()
 {
     BeneficiarioPrepago beneficiario = new BeneficiarioPrepago();
     return View(beneficiario);
 }
        public ActionResult Filter(string numdoc)
        {
            BeneficiarioPrepago beneficiario;
            BeneficiarioPrepagoIndex beneficiarioIndex = repBeneficiario.Find(numdoc, "", "", "", "").FirstOrDefault();
            //NO ES Beneficiario PrepagoPlazas
            if (beneficiarioIndex == null)
            {
                beneficiario = new BeneficiarioPrepago()
                {
                    Afiliado = repAfiliado.Find(numdoc)
                };
                //CARGO VALOR POR DEFECTO EN LISTA DE ESTADOS
                beneficiario.Afiliado.ListaEstados.Insert(0, new ESTADO { COD_ESTADO = " ", DESCRIPC_ESTADO = "Seleccione un Estado" });
                //SI ES SUMA. VOY A EDIT, SI NO A CREATE
                if (beneficiario.Afiliado.type == "Suma")
                {
                    //MUESTRO MENSAJE DE CAMBIO SUMA A PREPAGO
                    ViewModel viewmodel = new ViewModel();
                    viewmodel.Title = "Prepago / Beneficiario / Crear Beneficiario / Filtro de Búsqueda";
                    viewmodel.Message = "El número de documento ya posee afiliación a Suma Plaza's. Complete la afiliación a Prepago Plaza's.";
                    viewmodel.ControllerName = "BeneficiarioPrepago";
                    viewmodel.ActionName = "CreateBeneficiarioSuma";
                    viewmodel.RouteValues = beneficiario.Afiliado.id.ToString();
                    return RedirectToAction("GenericView", viewmodel);
                }
                else
                {
                    //VERIFICO QUE EL NUMERO DE DOCUMENTO NO EXISTA PARA PODER REGISTRARLO
                    string validacion = repAfiliado.VerificarNumeroDeDocumentoCrear(numdoc.Substring(2));
                    if (validacion != null)
                    {
                        ViewModel viewmodel = new ViewModel();
                        viewmodel.Title = "Prepago / Beneficiario / Crear Afiliación";
                        viewmodel.Message = "El número de documento indicado (" + numdoc + ") ya está registrado como otro tipo de identificación (" + validacion + "), no se puede afiliar.";
                        viewmodel.ControllerName = "BeneficiarioPrepago";
                        viewmodel.ActionName = "Filter";
                        return RedirectToAction("GenericView", viewmodel);
                    }

                    beneficiario.Afiliado.typeid = Globals.ID_TYPE_PREPAGO;
                    beneficiario.Afiliado.type = "Prepago";
                    beneficiario.Afiliado.ListaClientes = repBeneficiario.GetClientes();
                    beneficiario.Afiliado.ListaClientes.Insert(0, new PrepaidCustomer { id = 0, name = "" });
                    //verifico si tiene tarjeta en Cards
                    if (beneficiario.Afiliado.pan != "0" && beneficiario.Afiliado.estatustarjeta == "Activa")
                    {
                        ViewModel viewmodel = new ViewModel();
                        viewmodel.Title = "Prepago / Beneficiario / Crear Beneficiario / Filtro de Búsqueda";
                        viewmodel.Message = "El número de documento indicado ya posee una Tarjeta Activa con el número " + beneficiario.Afiliado.pan;
                        viewmodel.ControllerName = "BeneficiarioPrepago";
                        viewmodel.ActionName = "CreateBeneficiarioConTarjeta";
                        viewmodel.RouteValues = "?numdoc=" + numdoc;
                        return RedirectToAction("GenericView", viewmodel);
                    }
                    else
                    {
                        return View("Create", beneficiario.Afiliado);
                    }
                }
            }
            //ES Beneficiario PrepagoPlazas
            else
            {
                beneficiario = repBeneficiario.Find(beneficiarioIndex.Afiliado.id);
                return View("Edit", beneficiario.Afiliado);
            }
        }
 public ActionResult EditBeneficiarioSuma(AfiliadoSuma Afiliado, HttpPostedFileBase fileNoValidado)
 {
     ViewModel viewmodel = new ViewModel();
     if (repAfiliado.SaveChanges(Afiliado, fileNoValidado))
     {
         BeneficiarioPrepago beneficiario = new BeneficiarioPrepago()
         {
             Afiliado = Afiliado,
             Cliente = repCliente.Find(Afiliado.idClientePrepago)
         };
         if (repBeneficiario.Save(beneficiario))
         {
             viewmodel.Title = "Prepago / Beneficiario / Crear Afiliación";
             viewmodel.Message = "Solicitud de afiliación creada exitosamente.";
             viewmodel.ControllerName = "BeneficiarioPrepago";
             viewmodel.ActionName = "FilterReview";
         }
     }
     else
     {
         viewmodel.Title = "Prepago / Beneficiario / Crear Afiliación";
         viewmodel.Message = "Error de aplicacion: No se pudo crear solicitud de afiliación.";
         viewmodel.ControllerName = "BeneficiarioPrepago";
         viewmodel.ActionName = "FilterReview";
     }
     return RedirectToAction("GenericView", viewmodel);
 }
 public ActionResult CreateBeneficiarioSuma(int id)
 {
     BeneficiarioPrepago beneficiario = new BeneficiarioPrepago()
     {
         Afiliado = repAfiliado.Find(id)
     };
     beneficiario.Afiliado = repAfiliado.ReiniciarAfiliacionSumaAPrepago(beneficiario.Afiliado);
     if (repAfiliado.SaveChanges(beneficiario.Afiliado))
     {
         beneficiario.Afiliado.ListaClientes = repBeneficiario.GetClientes();
         beneficiario.Afiliado.ListaClientes.Insert(0, new PrepaidCustomer { id = 0, name = "" });
         return View("Edit", beneficiario.Afiliado);
     }
     else
     {
         ViewModel viewmodel = new ViewModel();
         viewmodel.Title = "Prepago / Beneficiario / Crear Beneficiario / Filtro de Búsqueda";
         viewmodel.Message = "Error de aplicación: No se pudo guardar afiliacion Prepago";
         viewmodel.ControllerName = "BeneficiarioPrepago";
         viewmodel.ActionName = "FilterReview";
         return RedirectToAction("GenericView", viewmodel);
     }
 }
 public ActionResult CreateBeneficiarioConTarjeta(AfiliadoSuma Afiliado, HttpPostedFileBase fileNoValidado)
 {
     ViewModel viewmodel = new ViewModel();
     if (repAfiliado.Save(Afiliado, fileNoValidado))
     {
         BeneficiarioPrepago beneficiario = new BeneficiarioPrepago()
         {
             Afiliado = Afiliado,
             Cliente = repCliente.Find(Afiliado.idClientePrepago)
         };
         if (repBeneficiario.Save(beneficiario))
         {
             int idafiliado = repAfiliado.Find(Afiliado.docnumber, "", "", "", "").First().id;
             beneficiario.Afiliado = repAfiliado.Find(idafiliado);
             if (repAfiliado.Aprobar(beneficiario.Afiliado))
             {
                 viewmodel.Title = "Prepago / Beneficiario / Crear Afiliación";
                 viewmodel.Message = "Solicitud de afiliación creada y aprobada exitosamente.";
                 viewmodel.ControllerName = "BeneficiarioPrepago";
                 viewmodel.ActionName = "FilterReview";
             }
             else
             {
                 viewmodel.Title = "Prepago / Beneficiario / Crear Afiliación";
                 viewmodel.Message = "Solicitud de afiliación creada, pero no se pudo aprobar automáticamente.";
                 viewmodel.ControllerName = "BeneficiarioPrepago";
                 viewmodel.ActionName = "FilterReview";
             }
         }
     }
     else
     {
         viewmodel.Title = "Prepago / Beneficiario / Crear Afiliación";
         viewmodel.Message = "Error de aplicacion: No se pudo crear solicitud de afiliación.";
         viewmodel.ControllerName = "BeneficiarioPrepago";
         viewmodel.ActionName = "FilterReview";
     }
     return RedirectToAction("GenericView", viewmodel);
 }
 public ActionResult CreateBeneficiarioConTarjeta(string numdoc)
 {
     BeneficiarioPrepago beneficiario;
     beneficiario = new BeneficiarioPrepago()
     {
         Afiliado = repAfiliado.Find(numdoc)
     };
     //CARGO VALOR POR DEFECTO EN LISTA DE ESTADOS
     beneficiario.Afiliado.ListaEstados.Insert(0, new ESTADO { COD_ESTADO = " ", DESCRIPC_ESTADO = "Seleccione un Estado" });
     beneficiario.Afiliado.typeid = Globals.ID_TYPE_PREPAGO;
     beneficiario.Afiliado.type = "Prepago";
     beneficiario.Afiliado.ListaClientes = repBeneficiario.GetClientes();
     beneficiario.Afiliado.ListaClientes.Insert(0, new PrepaidCustomer { id = 0, name = "" });
     return View("Create", beneficiario.Afiliado);
 }
 public BeneficiarioPrepago Find(int id)
 {
     AfiliadoSumaRepository repAfiliado = new AfiliadoSumaRepository();
     ClientePrepagoRepository repCliente = new ClientePrepagoRepository();
     BeneficiarioPrepago beneficiario = new BeneficiarioPrepago()
     {
         Afiliado = repAfiliado.Find(id),
         Cliente = repCliente.FindXidAfiliado(id)
     };
     beneficiario.Afiliado.idClientePrepago = beneficiario.Cliente.idCliente;
     beneficiario.Afiliado.NombreClientePrepago = beneficiario.Cliente.nameCliente;
     return beneficiario;
 }
 public bool Save(BeneficiarioPrepago beneficiario)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
         Affiliate afiliado = db.Affiliates.FirstOrDefault(a => a.docnumber == beneficiario.Afiliado.docnumber);
         //ENTIDAD PrepaidBeneficiary
         var prepaidbeneficiary = new PrepaidBeneficiary()
         {
             affiliateid = afiliado.id,
             prepaidcustomerid = beneficiario.Cliente.idCliente,
             begindate = DateTime.Now,
             active = true
         };
         db.PrepaidBeneficiaries.Add(prepaidbeneficiary);
         db.SaveChanges();
         return true;
     }
 }