/**
  *
  * Prepago : Transacciones de Compra Fuera de Línea.
  * Función : public bool CompraFueraLinea(string numdoc, string monto)
  *
  **/
 public string CompraFueraLinea(string numdoc, string monto, string storeid, string observaciones)
 {
     //string montoSinSeparador = Math.Truncate(Convert.ToDecimal(monto) * 100).ToString();
     string RespuestaCardsJson = WSL.Cards.addBatch(numdoc, monto, Globals.TRANSCODE_COMPRA_PREPAGO, (string)HttpContext.Current.Session["login"]);
     if (WSL.Cards.ExceptionServicioCards(RespuestaCardsJson))
     {
         return null;
     }
     RespuestaCards RespuestaCards = (RespuestaCards)JsonConvert.DeserializeObject<RespuestaCards>(RespuestaCardsJson);
     if (Convert.ToDecimal(RespuestaCards.excode) < 0)
     {
         return null;
     }
     else
     {
         //guardar observaciones y sucursal de procesamiento
         using (LealtadEntities db = new LealtadEntities())
         {
             db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
             //ENTIDAD FueraDeLinea
             var fueradelinea = new FueraDeLinea()
             {
                 batchid = RespuestaCards.exdetail,
                 store_code = storeid,
                 observaciones = observaciones
             };
             db.FueraDeLineas.Add(fueradelinea);
             db.SaveChanges();
         }
         return RespuestaCards.exdetail;
     }
 }
 public bool Aprobar(AfiliadoSuma afiliado)
 {
     string RespuestaCardsJson = WSL.Cards.addClient(afiliado.docnumber.Substring(2), (afiliado.name + " " + afiliado.lastname1).ToUpper(), afiliado.phone1, "Plazas Baruta");
     if (WSL.Cards.ExceptionServicioCards(RespuestaCardsJson))
     {
         return false;
     }
     RespuestaCards RespuestaCards = (RespuestaCards)JsonConvert.DeserializeObject<RespuestaCards>(RespuestaCardsJson);
     using (LealtadEntities db = new LealtadEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
         if (RespuestaCards.excode == "0" || RespuestaCards.excode == "7")
         {
             //Se buscan los datos de Tarjeta del AFILIADO en Cards
             //SERVICIO WSL.Cards.getClient !
             string clienteCardsJson = WSL.Cards.getClient(afiliado.docnumber.Substring(2));
             if (WSL.Cards.ExceptionServicioCards(clienteCardsJson))
             {
                 return false;
             }
             ClienteCards clienteCards = (ClienteCards)JsonConvert.DeserializeObject<ClienteCards>(clienteCardsJson);
             afiliado.pan = clienteCards.pan;
             afiliado.printed = clienteCards.printed == null ? null : clienteCards.printed.Substring(6, 2) + "/" + clienteCards.printed.Substring(4, 2) + "/" + clienteCards.printed.Substring(0, 4);
             afiliado.estatustarjeta = clienteCards.tarjeta;
             afiliado.trackII = Tarjeta.ConstruirTrackII(afiliado.pan);
             afiliado.cvv2 = "123";
             afiliado.sumastatusid = db.SumaStatuses.FirstOrDefault(s => (s.value == Globals.ID_ESTATUS_AFILIACION_ACTIVA) && (s.tablename == "Affiliatte")).id;
             return SaveChanges(afiliado);
         }
         else
         {
             return false;
         }
     }
 }
 //aprueba una solicitud de afiliación
 public bool Aprobar(Afiliado afiliado)
 {
     string RespuestaCardsJson = WSL.Cards.addClient(afiliado.docnumber.Substring(2), (afiliado.name + " " + afiliado.lastname1).ToUpper(), afiliado.phone1, "Plazas Baruta");
     if (ExceptionServicioCards(RespuestaCardsJson))
     {
         return false;
     }
     RespuestaCards RespuestaCards = (RespuestaCards)JsonConvert.DeserializeObject<RespuestaCards>(RespuestaCardsJson);
     using (LealtadEntities db = new LealtadEntities())
     {
         if (RespuestaCards.excode == "0" || RespuestaCards.excode == "7")
         {
             //Se buscan los datos de Tarjeta del AFILIADO en Cards
             //SERVICIO WSL.Cards.getClient !
             string clienteCardsJson = WSL.Cards.getClient(afiliado.docnumber.Substring(2));
             if (ExceptionServicioCards(clienteCardsJson))
             {
                 return false;
             }
             ClienteCards clienteCards = (ClienteCards)JsonConvert.DeserializeObject<ClienteCards>(clienteCardsJson);
             afiliado.pan = clienteCards.pan;
             afiliado.printed = clienteCards.printed;
             afiliado.estatustarjeta = clienteCards.tarjeta;
             afiliado.statusid = db.SumaStatuses.FirstOrDefault(s => (s.value == ID_ESTATUS_AFILIACION_ACTIVA) && (s.tablename == "Affiliatte")).id;//ID_ESTATUS_AFILIACION_ACTIVA;
             return SaveChanges(afiliado);
         }
         else
         {
             return false;
         }
     }
 }
Beispiel #4
0
        public RoleMenus(int id)
        {
            using (LealtadEntities db = new LealtadEntities())
            {
                db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
                Role role = db.Roles.Find(id);

                RoleID = role.id;
                RoleName = role.name;

                Menus = new List<CheckMenus>();

                foreach (var r in db.Menus)
                {

                    CheckMenus item = new CheckMenus();

                    item.MenuId = r.id;
                    item.MenuName = r.name;
                    item.Checked = db.SecurityMenus.Where(x => x.roleid == RoleID && x.menuid == r.id).Count() > 0;

                    Menus.Add(item);

                }

            }
        }
Beispiel #5
0
        public UserRols( int id )
        {
            using (LealtadEntities db = new LealtadEntities())
            {
                db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
                User user = db.Users.Find(id);

                UserID = user.id;
                UserName = user.lastname + ", " + user.firstname;

                Roles = new List<CheckBoxes>();

                foreach (var r in db.Roles)
                {

                    CheckBoxes item = new CheckBoxes();

                    item.RolID = r.id;
                    item.RolName = r.name;
                    item.Checked = db.UserRols.Where(x => x.userid == UserID && x.roleid == r.id).Count() > 0;

                    Roles.Add( item );

                }

            }
        }
 public bool AprobarOrden(int orderid)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         Order orden = db.Orders.FirstOrDefault(o => o.id.Equals(orderid));
         orden.sumastatusid = ESTATUS_ORDEN_RECARGA_APROBADA;
         orden.processdate = DateTime.Now;
         db.SaveChanges();
         return true;
     }
 }
 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;
     }
 }
Beispiel #8
0
 public ActionResult CambiarPassword(CambiarPasswordViewModel cambiarpassword)
 {
     if (cambiarpassword.NewPassword1 == null || cambiarpassword.NewPassword2 == null)
     {
         ModelState.Clear();
         ModelState.AddModelError("NewPassword1", "Debe ingresar la Nueva Contraseña y su confirmación");
     }
     if (ModelState.IsValid)
     {
         if (cambiarpassword.NewPassword1 != cambiarpassword.NewPassword2)
         {
             ModelState.Clear();
             ModelState.AddModelError("NewPassword1", "La Nueva Contraseña y su confirmación no coinciden");
             return View(cambiarpassword);
         }
         using (LealtadEntities db = new LealtadEntities())
         {
             db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
             User user = (from u in db.Users
                          where u.login.Equals(cambiarpassword.UserName)
                          select u).FirstOrDefault();
             ViewModel viewmodel = new ViewModel();
             if (user != null)
             {
                 user.passw = cambiarpassword.NewPassword1;
                 db.SaveChanges();
                 viewmodel.Title = "Usuario / Cambio de Contraseña";
                 viewmodel.Message = "Contraseña actualizada correctamente.";
                 viewmodel.ControllerName = "Home";
                 viewmodel.ActionName = "Login";
             }
             else
             {
                 viewmodel.Title = "Usuario / Cambio de Contraseña";
                 viewmodel.Message = "No se pudo actulizar la contraseña correctamente.";
                 viewmodel.ControllerName = "Home";
                 viewmodel.ActionName = "Login";
             }
             return RedirectToAction("GenericView", viewmodel);
         }
     }
     else
     {
         return View(cambiarpassword);
     }
 }
 public bool BorrarCompañia(int id)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         Company company = db.Companies.Find(id);
         if (company != null)
         {
             db.Companies.Remove(company);
             db.SaveChanges();
             return true;
         }
         else
         {
             return false;
         }
     }
 }
Beispiel #10
0
 public List<Orden> BuscarOrdenes(int companyid)
 {
     List<Orden> ordenes;
     using (LealtadEntities db = new LealtadEntities())
     {
         ordenes = (from o in db.Orders
                    where o.prepaidcustomerid.Equals(companyid)
                    select new Orden()
                    {
                        id = o.id,
                        prepaidcustomerid = companyid,
                        statusid = o.sumastatusid,
                        totalamount = o.totalamount,
                        creationdate = o.creationdate
                    }).ToList();
         return ordenes;
     }
 }
 public bool BorrarCliente(int id)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
         PrepaidCustomer Cliente = db.PrepaidCustomers.FirstOrDefault(c => c.id == id);
         if (Cliente != null)
         {
             db.PrepaidCustomers.Remove(Cliente);
             db.SaveChanges();
             return true;
         }
         else
         {
             return false;
         }
     }
 }
 public List<ClientePrepago> Find(string name, string rif)
 {
     List<ClientePrepago> clientes;
     using (LealtadEntities db = new LealtadEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
         if (name == "")
         {
             name = null;
         }
         if (rif == "")
         {
             rif = null;
         }
         if (name == null && rif == null)
         {
             clientes = (from c in db.PrepaidCustomers
                         select new ClientePrepago()
                         {
                             idCliente = c.id,
                             nameCliente = c.name,
                             aliasCliente = c.alias,
                             rifCliente = c.rif,
                             phoneCliente = c.phone,
                             emailCliente = c.email
                         }).OrderBy(x => x.nameCliente).ToList();
         }
         else
         {
             clientes = (from c in db.PrepaidCustomers
                         where c.rif.Equals(rif) || c.name.Contains(name)
                         select new ClientePrepago()
                         {
                             idCliente = c.id,
                             nameCliente = c.name,
                             aliasCliente = c.alias,
                             rifCliente = c.rif,
                             phoneCliente = c.phone,
                             emailCliente = c.email
                         }).OrderBy(x => x.nameCliente).ToList();
         }
     }
     return clientes;
 }
Beispiel #13
0
 void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
 {
     if (HttpContext.Current.Session["login"] == null)
     {
         filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new
         {
             action = "SessionExpired",
             controller = "Error",
             area = ""
         }));
     }
     else
     {
         using (LealtadEntities db = new LealtadEntities())
         {
             db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
             int idlog;
             if (db.Auditings.Count() > 0)
             {
                 idlog = db.Auditings.Max(x => x.id) + 1;
             }
             else
             {
                 idlog = 1;
             }
             Auditing log = new Auditing()
             {
                 id = idlog,
                 objectid = 1,
                 operationsid = 1,
                 userid = (int)HttpContext.Current.Session["userid"],
                 creationdate = filterContext.HttpContext.Timestamp,
                 originaldata = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName,
                 changedata = filterContext.ActionDescriptor.ActionName,
                 ipaddress = filterContext.HttpContext.Request.UserHostAddress
             };
             db.Auditings.Add(log);
             db.SaveChanges();
         }
     }
     this.OnActionExecuting(filterContext);
 }
 public ClientePrepago Find(string rif)
 {
     ClientePrepago cliente;
     using (LealtadEntities db = new LealtadEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
         cliente = (from c in db.PrepaidCustomers
                    where c.rif.Equals(rif)
                    select new ClientePrepago()
                    {
                        idCliente = c.id,
                        nameCliente = c.name,
                        aliasCliente = c.alias,
                        rifCliente = c.rif,
                        phoneCliente = c.phone,
                        emailCliente = c.email
                    }).FirstOrDefault();
     }
     return cliente;
 }
Beispiel #15
0
 public bool Login(string login, string password)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
         var user = db.Users.SingleOrDefault(u => u.login == login && u.passw == password);
         if (user != null)
         {
             _username = "******" + user.lastname + ", " + user.firstname;
             _userlogin = user.login;
             _usertype = db.Types.SingleOrDefault(t => t.id == user.typeid).name;
             _userID = user.id;
             int[] roles = (from item in db.UserRols
                            where item.userid == user.id
                            select item.roleid
                            ).ToArray();
             //se busca el nivel maximo definido en los roles del usuario
             //Ojo: Los roles están definidos uno por usuario.
             _rolelevel = (from r in db.Roles
                           where roles.Contains(r.id)
                           select r.level).ToList().Max();
             //Ojo: No se filtra el Menú por Tipo de Usuario, sino por Rol del Usuario. Hay que tener esto en cuenta al definir los roles que sean excluyentes.
             _menu = (from mainMenu in db.Menus
                      join securityMenu in db.SecurityMenus on mainMenu.id equals securityMenu.menuid
                      where roles.Contains(securityMenu.roleid)
                      select new CMenu
                      {
                          id = mainMenu.id,
                          name = mainMenu.name,
                          controller = mainMenu.controller,
                          actions = mainMenu.actions,
                          parentid = mainMenu.parentid,
                          order_no = mainMenu.order_no
                      }).Distinct().OrderBy(m => m.parentid).ThenBy(m => m.order_no).ToList();
             _menu.Add(new CMenu { id = 10000, name = "Salir", controller = "", actions = "", parentid = 0, order_no = 1 });
             _menu.Add(new CMenu { id = 10001, name = "Cerrar Sesión", controller = "Home", actions = "Logout", parentid = 10000, order_no = 2 });
         }
         return (user != null);
     }
 }
Beispiel #16
0
 public bool CrearOrden(int companyid, decimal MontoTotalRecargas, List<CompanyAfiliadoRecarga> recargas)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         //ENTIDAD Order
         var Order = new Order()
         {
             id = OrderID(),
             prepaidcustomerid = companyid,
             totalamount = MontoTotalRecargas,
             paymenttype = "",
             creationdate = DateTime.Now,
             creationuserid = (int)HttpContext.Current.Session["userid"],
             processdate = DateTime.Now,
             sumastatusid = ESTATUS_ORDEN_RECARGA_NUEVA
         };
         db.Orders.Add(Order);
         var OrderDetail = new OrdersDetail();
         int idbase = OrderDetailID();
         foreach (CompanyAfiliadoRecarga b in recargas)
         {
             idbase = idbase + 1;
             //ENTIDAD OrderDetail
             OrderDetail = new OrdersDetail()
             {
                 id = idbase,
                 orderid = Order.id,
                 customerid = b.Afiliadoid,
                 amount = b.MontoRecarga,
                 sumastatusid = ESTATUS_ORDEN_RECARGA_NUEVA
             };
             db.OrdersDetails.Add(OrderDetail);
             OrderDetail = null;
         }
         db.SaveChanges();
         return true;
     }
 }
 public List<ReportePrepago> ReporteRecargasConsolidado(string tiporeporte, string fechadesde, string fechahasta, int idCliente, string referencia, string observaciones)
 {
     //para filtrar las fechas
     DateTime desde = DateTime.ParseExact(fechadesde, "dd/MM/yyyy", CultureInfo.InvariantCulture);
     DateTime hasta = DateTime.ParseExact(fechahasta, "dd/MM/yyyy", CultureInfo.InvariantCulture).AddDays(1);
     List<ReportePrepago> reporte = new List<ReportePrepago>();
     EncabezadoReporte encabezado = new EncabezadoReporte();
     ReportePrepago linea = new ReportePrepago();
     decimal TotalRecargas = 0;
     decimal TotalAnulaciones = 0;
     using (LealtadEntities db = new LealtadEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
         #region Por Cliente específico
         if (tiporeporte == "uno")
         {
             ClientePrepago c = repCliente.Find(idCliente);
             encabezado.nombreReporte = "Reporte de Recargas Consolidado";
             encabezado.tipoconsultaReporte = "Por Cliente";
             encabezado.parametrotipoconsultaReporte = c.rifCliente + " " + c.nameCliente;
             encabezado.fechainicioReporte = fechadesde;
             encabezado.fechafinReporte = fechahasta;
             encabezado.documentoreferenciaReporte = referencia;
             encabezado.observacionesReporte = observaciones;
             //busco movimientos de recaga y anulación de recarga
             var queryTotalRecargas = (from o in db.Orders
                                       join od in db.OrdersDetails on o.id equals od.orderid
                                       //join a in db.Affiliates on od.customerid equals a.id
                                       //join c in db.CLIENTES on a.docnumber equals c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO
                                       join s in db.SumaStatuses on o.sumastatusid equals s.id
                                       join p in db.PrepaidCustomers on o.prepaidcustomerid equals p.id
                                       where o.prepaidcustomerid == idCliente
                                             && (o.comments == "Orden de Anulación de Recarga" || o.comments.Contains("Orden de Recarga"))
                                             && s.name == "Procesada" && (od.comments == "Recarga efectiva" || od.comments.Contains("Anulación efectiva"))
                                             && (o.processdate >= desde && o.processdate < hasta)
                                       group od by new { o.prepaidcustomerid, o.comments, o.processdate, o.documento, o.observaciones } into g
                                       select new
                                       {
                                           FechaProcesado = g.Key.processdate,
                                           Cliente = g.Key.prepaidcustomerid,
                                           ClaseOrden = g.Key.comments,
                                           Total = g.Sum(x => x.amount),
                                           Referencia = g.Key.documento,
                                           Observaciones = g.Key.observaciones
                                       }).ToList();
             //filtado por referencia u observaciones
             if (referencia != "")
             {
                 queryTotalRecargas = queryTotalRecargas.Where(x => x.Referencia == referencia).ToList();
             }
             else if (observaciones != "")
             {
                 queryTotalRecargas = queryTotalRecargas.Where(x => x.Observaciones.Contains(observaciones)).ToList();
             }
             //armo lineas del reporte
             foreach (var q in queryTotalRecargas)
             {
                 if (q.ClaseOrden == "Orden de Anulación de Recarga")
                 {
                     TotalAnulaciones = TotalAnulaciones + q.Total;
                 }
                 else
                 {
                     TotalRecargas = TotalRecargas + q.Total;
                 }
             }
             //NO INCLUYO CLIENTES SIN RECARGAS
             if (TotalRecargas != 0)
             {
                 linea = new ReportePrepago()
                 {
                     Beneficiario = new BeneficiarioPrepagoIndex()
                     {
                         Cliente = repCliente.Find(idCliente)
                     },
                     monto = TotalRecargas,
                     tipo = "200-Recarga",
                     Encabezado = encabezado
                 };
                 reporte.Add(linea);
             }
             //NO INCLUYO CLIENETS SIN ANULACIONES
             if (TotalAnulaciones != 0)
             {
                 linea = new ReportePrepago()
                 {
                     Beneficiario = new BeneficiarioPrepagoIndex()
                     {
                         Cliente = repCliente.Find(idCliente)
                     },
                     monto = TotalAnulaciones * -1,
                     tipo = "161-Anulación",
                     Encabezado = encabezado
                 };
                 reporte.Add(linea);
             }
         }
         #endregion
         #region Todos los Clientes
         else if (tiporeporte == "todos")
         {
             List<ClientePrepago> clientes = repCliente.Find("", "").OrderBy(x => x.nameCliente).ToList();
             encabezado.nombreReporte = "Reporte de Recargas Consolidado";
             encabezado.tipoconsultaReporte = "Por Cliente";
             encabezado.parametrotipoconsultaReporte = "Todos";
             encabezado.fechainicioReporte = fechadesde;
             encabezado.fechafinReporte = fechahasta;
             encabezado.documentoreferenciaReporte = referencia;
             encabezado.observacionesReporte = observaciones;
             foreach (ClientePrepago c in clientes)
             {
                 TotalRecargas = 0;
                 TotalAnulaciones = 0;
                 //busco movimientos de recaga y anulación de recarga
                 var queryTotalRecargas = (from o in db.Orders
                                           join od in db.OrdersDetails on o.id equals od.orderid
                                           //join a in db.Affiliates on od.customerid equals a.id
                                           //join c in db.CLIENTES on a.docnumber equals c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO
                                           join s in db.SumaStatuses on o.sumastatusid equals s.id
                                           join p in db.PrepaidCustomers on o.prepaidcustomerid equals p.id
                                           where o.prepaidcustomerid == c.idCliente
                                                 && (o.comments == "Orden de Anulación de Recarga" || o.comments.Contains("Orden de Recarga"))
                                                 && s.name == "Procesada" && (od.comments == "Recarga efectiva" || od.comments.Contains("Anulación efectiva"))
                                                 && (o.processdate >= desde && o.processdate < hasta)
                                           group od by new { o.prepaidcustomerid, o.comments, o.processdate, o.documento, o.observaciones } into g
                                           select new
                                           {
                                               FechaProcesado = g.Key.processdate,
                                               Cliente = g.Key.prepaidcustomerid,
                                               ClaseOrden = g.Key.comments,
                                               Total = g.Sum(x => x.amount),
                                               Referencia = g.Key.documento,
                                               Observaciones = g.Key.observaciones
                                           }).ToList();
                 //filtado por referencia u observaciones
                 if (referencia != "")
                 {
                     queryTotalRecargas = queryTotalRecargas.Where(x => x.Referencia == referencia).ToList();
                 }
                 else if (observaciones != "")
                 {
                     queryTotalRecargas = queryTotalRecargas.Where(x => x.Observaciones.Contains(observaciones)).ToList();
                 }
                 //armo lineas del reporte
                 foreach (var q in queryTotalRecargas)
                 {
                     if (q.ClaseOrden == "Orden de Anulación de Recarga")
                     {
                         TotalAnulaciones = TotalAnulaciones + q.Total;
                     }
                     else
                     {
                         TotalRecargas = TotalRecargas + q.Total;
                     }
                 }
                 //NO INCLUYO CLIENTES SIN RECARGAS
                 if (TotalRecargas != 0)
                 {
                     linea = new ReportePrepago()
                     {
                         Beneficiario = new BeneficiarioPrepagoIndex()
                         {
                             Cliente = c
                         },
                         monto = TotalRecargas,
                         tipo = "200-Recarga",
                         Encabezado = encabezado
                     };
                     reporte.Add(linea);
                 }
                 //NO INCLUYO CLIENTES SIN ANULACIONES
                 if (TotalAnulaciones != 0)
                 {
                     linea = new ReportePrepago()
                     {
                         Beneficiario = new BeneficiarioPrepagoIndex()
                         {
                             Cliente = c
                         },
                         monto = TotalAnulaciones * -1,
                         tipo = "161-Anulación",
                         Encabezado = encabezado
                     };
                     reporte.Add(linea);
                 }
             }
         }
         #endregion
     }
     if (reporte.Count == 0)
     {
         linea = new ReportePrepago()
         {
             Encabezado = encabezado
         };
         reporte.Add(linea);
     }
     return reporte;
 }
 public List<ReportePrepago> ReporteDeComprasDetallado(string tiporeporte, string fechadesde, string fechahasta, string modotrans, int idCliente)
 {
     string fechasdesdemod = fechadesde.Substring(6, 4) + fechadesde.Substring(3, 2) + fechadesde.Substring(0, 2);
     string fechahastamod = fechahasta.Substring(6, 4) + fechahasta.Substring(3, 2) + fechahasta.Substring(0, 2);
     List<ReportePrepago> reporte = new List<ReportePrepago>();
     EncabezadoReporte encabezado = new EncabezadoReporte();
     ReportePrepago linea = new ReportePrepago();
     List<PLZ_GETREPORT_Result> consulta = new List<PLZ_GETREPORT_Result>();
     #region Por Cliente específico, Detallado por Beneficiario
     if (tiporeporte == "detallado")
     {
         List<BeneficiarioPrepagoIndex> beneficiarios = repCliente.FindBeneficiarios(idCliente, "", "", "", "", "").ToList();
         encabezado.nombreReporte = "Reporte de Compras Detallado";
         encabezado.tipodetalleReporte = "Detallado por Beneficiario";
         encabezado.tipoconsultaReporte = "Por Cliente";
         encabezado.parametrotipoconsultaReporte = beneficiarios.First().Cliente.rifCliente + " " + beneficiarios.First().Cliente.nameCliente;
         encabezado.fechainicioReporte = fechadesde;
         encabezado.fechafinReporte = fechahasta;
         encabezado.modotransaccionReporte = modotrans;
         if (beneficiarios.Count != 0)
         {
             using (CardsEntities db = new CardsEntities())
             {
                 foreach (BeneficiarioPrepagoIndex b in beneficiarios)
                 {
                     db.Database.Connection.ConnectionString = AppModule.ConnectionString("Cards");
                     consulta = db.PLZ_GETREPORT(fechasdesdemod, fechahastamod, b.Afiliado.docnumber.Substring(2), "NULL", Globals.TRANSCODE_COMPRA_PREPAGO).ToList();
                     if (modotrans == "Fuera de Línea")
                     {
                         consulta = consulta.Where(x => x.ISODESCRIPTION.Contains("offline")).ToList();
                     }
                     else if (modotrans == "En Línea")
                     {
                         consulta = consulta.Where(x => !x.ISODESCRIPTION.Contains("offline")).ToList();
                     }
                     foreach (PLZ_GETREPORT_Result fila in consulta)
                     {
                         linea = new ReportePrepago()
                         {
                             Beneficiario = b,
                             fecha = fila.BATCHTIME == null ? DateTime.ParseExact(fila.FECHA.Substring(6, 2) + "/" + fila.FECHA.Substring(4, 2) + "/" + fila.FECHA.Substring(0, 4), "dd/MM/yyyy", CultureInfo.InvariantCulture) : DateTime.ParseExact(fila.FECHA.Substring(6, 2) + "/" + fila.FECHA.Substring(4, 2) + "/" + fila.FECHA.Substring(0, 4) + " " + fila.BATCHTIME.Substring(0, 2) + ":" + fila.BATCHTIME.Substring(2, 2) + ":" + fila.BATCHTIME.Substring(4, 2), "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture),
                             monto = fila.SALDO.Value,
                             detalle = fila.ISODESCRIPTION,
                             tipo = "145-Compra",
                             numerotarjeta = Convert.ToDecimal(fila.PAN),
                             batchid = fila.BATCHID.ToString(),
                             Encabezado = encabezado
                         };
                         if (linea.detalle.Contains("offline"))
                         {
                             //buscar info en FueraDeLinea
                             using (LealtadEntities db2 = new LealtadEntities())
                             {
                                 db2.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
                                 string operacion = linea.batchid.ToString();
                                 FueraDeLinea f = db2.FueraDeLineas.FirstOrDefault(t => t.batchid.Equals(operacion));
                                 if (f != null)
                                 {
                                     string sucursal = repAfiliado.Find(b.Afiliado.id).StoreOptions.Where(c => c.id != null).FirstOrDefault(x => x.id.Equals(f.store_code)).sucursal;
                                     linea.detalle = linea.detalle + " (origen: " + sucursal + ", motivo: " + f.observaciones + ")";
                                 }
                             }
                         }
                         reporte.Add(linea);
                     }
                 }
             }
         }
         reporte = reporte.OrderBy(x => x.fecha).ToList();
     }
     #endregion
     #region Por Cliente específico, Consolidado por Beneficiario
     else if (tiporeporte == "consolidado")
     {
         List<BeneficiarioPrepagoIndex> beneficiarios = repCliente.FindBeneficiarios(idCliente, "", "", "", "", "").OrderBy(x => x.Afiliado.docnumber).ToList();
         encabezado.nombreReporte = "Reporte de Compras Detallado";
         encabezado.tipodetalleReporte = "Consolidado por Beneficiario";
         encabezado.tipoconsultaReporte = "Por Cliente";
         encabezado.parametrotipoconsultaReporte = beneficiarios.First().Cliente.rifCliente + " " + beneficiarios.First().Cliente.nameCliente;
         encabezado.fechainicioReporte = fechadesde;
         encabezado.fechafinReporte = fechahasta;
         encabezado.modotransaccionReporte = modotrans;
         decimal TotalCompras = 0;
         if (beneficiarios.Count != 0)
         {
             using (CardsEntities db = new CardsEntities())
             {
                 foreach (BeneficiarioPrepagoIndex b in beneficiarios)
                 {
                     TotalCompras = 0;
                     db.Database.Connection.ConnectionString = AppModule.ConnectionString("Cards");
                     consulta = db.PLZ_GETREPORT(fechasdesdemod, fechahastamod, b.Afiliado.docnumber.Substring(2), "NULL", Globals.TRANSCODE_COMPRA_PREPAGO).ToList();
                     if (modotrans == "Fuera de Línea")
                     {
                         consulta = consulta.Where(x => x.ISODESCRIPTION.Contains("offline")).ToList();
                     }
                     else if (modotrans == "En Línea")
                     {
                         consulta = consulta.Where(x => !x.ISODESCRIPTION.Contains("offline")).ToList();
                     }
                     foreach (PLZ_GETREPORT_Result fila in consulta)
                     {
                         TotalCompras = TotalCompras + fila.SALDO.Value;
                     }
                     // NO INCLUYO BENEFICIARIOS SIN COMPRAS
                     if (TotalCompras != 0)
                     {
                         linea = new ReportePrepago()
                         {
                             Beneficiario = b,
                             monto = TotalCompras,
                             tipo = "145-Compra",
                             Encabezado = encabezado
                         };
                         reporte.Add(linea);
                     }
                 }
             }
         }
     }
     #endregion
     if (reporte.Count == 0)
     {
         linea = new ReportePrepago()
         {
             Encabezado = encabezado
         };
         reporte.Add(linea);
     }
     return reporte;
 }
Beispiel #19
0
 //busca los beneficiarios por cedula o nombre para una compañia con id
 public PrepagoCompanyAffiliattes FindBeneficiarios(int companyid, string numdoc, string name, string email)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         if (name == "")
         {
             name = null;
         }
         if (email == "")
         {
             email = null;
         }
         PrepagoCompanyAffiliattes compañiaBeneficiarios = (from c in db.Companies
                                                            where c.id.Equals(companyid)
                                                            select new PrepagoCompanyAffiliattes()
                                                            {
                                                                companyid = c.id,
                                                                namecompañia = c.name,
                                                                alias = c.ALIAS,
                                                                rif = c.rif,
                                                                address = c.address,
                                                                phone = c.phone,
                                                                email = c.email
                                                            }).Single();
         if (name == null && email == null)
         {
             compañiaBeneficiarios.Beneficiarios = (from a in db.Affiliates
                                                    join c in db.CLIENTES on a.docnumber equals c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO
                                                    join s in db.SumaStatuses on a.statusid equals s.id
                                                    join t in db.Types on a.typeid equals t.id
                                                    join b in db.CompanyAffiliates on a.id equals b.affiliateid
                                                    where b.companyid.Equals(companyid) && a.typeid.Equals(ID_TYPE_PREPAGO) && a.docnumber.Equals(numdoc)
                                                    select new Afiliado()
                                                    {
                                                        //ENTIDAD Affiliate
                                                        id = a.id,
                                                        docnumber = a.docnumber,
                                                        typeid = a.typeid,
                                                        //ENTIDAD CLIENTE
                                                        name = c.NOMBRE_CLIENTE1,
                                                        lastname1 = c.APELLIDO_CLIENTE1,
                                                        email = c.E_MAIL,
                                                        //ENTIDAD Status
                                                        estatus = s.name,
                                                        //ENTIDAD Type
                                                        type = t.name
                                                    }).ToList();
         }
         else
         {
             compañiaBeneficiarios.Beneficiarios = (from a in db.Affiliates
                                                    join c in db.CLIENTES on a.docnumber equals c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO
                                                    join s in db.SumaStatuses on a.statusid equals s.id
                                                    join t in db.Types on a.typeid equals t.id
                                                    join b in db.CompanyAffiliates on a.id equals b.affiliateid
                                                    where b.companyid.Equals(companyid) && a.typeid.Equals(ID_TYPE_PREPAGO) && (c.E_MAIL == email || c.NOMBRE_CLIENTE1.Contains(name) || c.APELLIDO_CLIENTE1.Contains(name))
                                                    select new Afiliado()
                                                    {
                                                        //ENTIDAD Affiliate
                                                        id = a.id,
                                                        docnumber = a.docnumber,
                                                        typeid = a.typeid,
                                                        //ENTIDAD CLIENTE
                                                        name = c.NOMBRE_CLIENTE1,
                                                        lastname1 = c.APELLIDO_CLIENTE1,
                                                        email = c.E_MAIL,
                                                        //ENTIDAD Status
                                                        estatus = s.name,
                                                        //ENTIDAD Type
                                                        type = t.name
                                                    }).ToList();
         }
         if (compañiaBeneficiarios.Beneficiarios != null)
         {
             foreach (var beneficiario in compañiaBeneficiarios.Beneficiarios)
             {
                 Decimal p = (from t in db.TARJETAS
                              where t.NRO_AFILIACION.Equals(beneficiario.id)
                              select t.NRO_TARJETA
                              ).SingleOrDefault();
                 if (p != 0)
                 {
                     beneficiario.pan = p.ToString();
                 }
                 else
                 {
                     beneficiario.pan = "";
                 }
                 string e = (from t in db.TARJETAS
                             where t.NRO_AFILIACION.Equals(beneficiario.id)
                             select t.ESTATUS_TARJETA
                             ).SingleOrDefault();
                 if (e != null)
                 {
                     beneficiario.estatustarjeta = e.ToString();
                 }
                 else
                 {
                     beneficiario.estatustarjeta = "";
                 }
             }
         }
         return compañiaBeneficiarios;
     }
 }
Beispiel #20
0
 private int OrderDetailID()
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         if (db.OrdersDetails.Count() == 0)
             return 0;
         return (db.OrdersDetails.Max(c => c.id));
     }
 }
Beispiel #21
0
 private int OrderID()
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         if (db.Orders.Count() == 0)
             return 1;
         return (db.Orders.Max(c => c.id) + 1);
     }
 }
Beispiel #22
0
 //busca el detalle de una orden a partir del id
 private List<DetalleOrden> BuscarDetalleOrden(int orderid)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         List<DetalleOrden> detalleorden;
         detalleorden = (from o in db.OrdersDetails
                         where o.orderid.Equals(orderid)
                         select new DetalleOrden()
                         {
                             id = o.id,
                             customerid = o.customerid,
                             amount = o.amount
                         }).ToList();
         return detalleorden;
     }
 }
Beispiel #23
0
 private int CompanyID()
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         if (db.Companies.Count() == 0)
             return 1;
         return (db.Companies.Max(c => c.id) + 1);
     }
 }
Beispiel #24
0
 //busca sólo los datos de la compañia a partir de su id
 public Company FindCompany(int id)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         return db.Companies.Find(id);
     }
 }
Beispiel #25
0
 public bool SaveChanges(Company company)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         Company Company = db.Companies.FirstOrDefault(c => c.id == company.id);
         if (Company != null)
         {
             Company.name = company.name;
             Company.phone = company.phone;
             Company.rif = company.rif;
             Company.ALIAS = company.ALIAS;
             Company.address = company.address;
             Company.email = company.email;
         }
         db.SaveChanges();
         return true;
     }
 }
Beispiel #26
0
 public bool Save(Company company)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         var Company = new Company()
         {
             id = CompanyID(),
             name = company.name,
             phone = company.phone,
             rif = company.rif,
             ALIAS = company.ALIAS,
             address = company.address,
             email = company.email,
             creationdate = DateTime.Now,
             userid = (int)HttpContext.Current.Session["userid"]
         };
         db.Companies.Add(Company);
         db.SaveChanges();
         return true;
     }
 }
Beispiel #27
0
 public bool ProcesarOrden(int orderid)
 {
     List<DetalleOrden> detalleorden = BuscarDetalleOrden(orderid);
     string docnumber;
     decimal amount;
     //bool resultado = true;
     using (LealtadEntities db = new LealtadEntities())
     {
         foreach (DetalleOrden o in detalleorden)
         {
             docnumber = db.Affiliates.FirstOrDefault(a => a.id.Equals(o.customerid)).docnumber.Substring(2);
             amount = o.amount;
             if (Recargar(o, docnumber, amount))
             {
                 o.statusid = ESTATUS_DETALLEORDEN_RECARGA_EFECTIVA;
                 o.comments = "Recarga efectiva";
             }
             else
             {
                 o.statusid = ESTATUS_DETALLEORDEN_RECARGA_FALLIDA;
                 //resultado = false;
             }
             OrdersDetail d = db.OrdersDetails.FirstOrDefault(x => x.id.Equals(o.id));
             d.sumastatusid = o.statusid;
             d.comments = o.comments;
             db.SaveChanges();
         }
         Order orden = db.Orders.FirstOrDefault(o => o.id.Equals(orderid));
         orden.sumastatusid = ESTATUS_ORDEN_RECARGA_EFECTIVA;
         orden.processdate = DateTime.Now;
         db.SaveChanges();
         //return resultado;
         return true;
     }
 }
 public List<ReportePrepago> ReporteRecargasDetallado(string tiporeporte, string fechadesde, string fechahasta, int idCliente, string referencia, string observaciones)
 {
     //para filtrar las fechas
     DateTime desde = DateTime.ParseExact(fechadesde, "dd/MM/yyyy", CultureInfo.InvariantCulture);
     DateTime hasta = DateTime.ParseExact(fechahasta, "dd/MM/yyyy", CultureInfo.InvariantCulture).AddDays(1);
     List<ReportePrepago> reporte = new List<ReportePrepago>();
     EncabezadoReporte encabezado = new EncabezadoReporte();
     ReportePrepago linea = new ReportePrepago();
     using (LealtadEntities db = new LealtadEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
         #region Por Cliente específico, Detallado por Beneficiario
         if (tiporeporte == "detallado")
         {
             ClientePrepago cliente = repCliente.Find(idCliente);
             encabezado.nombreReporte = "Reporte de Recargas Detallado";
             encabezado.tipodetalleReporte = "Detallado por Beneficiario";
             encabezado.tipoconsultaReporte = "Por Cliente";
             encabezado.parametrotipoconsultaReporte = cliente.rifCliente + " " + cliente.nameCliente; ;
             encabezado.fechainicioReporte = fechadesde;
             encabezado.fechafinReporte = fechahasta;
             encabezado.documentoreferenciaReporte = referencia;
             encabezado.observacionesReporte = observaciones;
             var queryreporte = (from o in db.Orders
                                 join od in db.OrdersDetails on o.id equals od.orderid
                                 join a in db.Affiliates on od.customerid equals a.id
                                 join c in db.CLIENTES on a.docnumber equals c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO
                                 join s in db.SumaStatuses on o.sumastatusid equals s.id
                                 join p in db.PrepaidCustomers on o.prepaidcustomerid equals p.id
                                 where o.prepaidcustomerid == idCliente
                                       && (o.comments == "Orden de Anulación de Recarga" || o.comments.Contains("Orden de Recarga"))
                                       && s.name == "Procesada" && (od.comments == "Recarga efectiva" || od.comments.Contains("Anulación efectiva"))
                                       && (o.processdate >= desde && o.processdate < hasta)
                                 select new ReportePrepago()
                                 {
                                     Beneficiario = new BeneficiarioPrepagoIndex()
                                     {
                                         Afiliado = new AfiliadoSumaIndex()
                                         {
                                             docnumber = a.docnumber,
                                             name = c.NOMBRE_CLIENTE1,
                                             lastname1 = c.APELLIDO_CLIENTE1
                                         }
                                     },
                                     fecha = o.processdate,
                                     monto = od.amount,
                                     detalle = od.comments,
                                     //usare el tipo para guardar el tipo de Orden y determinar el tipo de movimiento
                                     tipo = o.comments,
                                     batchid = od.cardsresponse,
                                     nroordenrecarga = o.id,
                                     referenciarecarga = o.documento,
                                     observacionesrecarga = o.observaciones//,
                                 }).ToList();
             //filtado por referencia u observaciones
             if (referencia != "")
             {
                 queryreporte = queryreporte.Where(x => x.referenciarecarga == referencia).ToList();
             }
             else if (observaciones != "")
             {
                 queryreporte = queryreporte.Where(x => x.observacionesrecarga.Contains(observaciones)).ToList();
             }
             //armo lineas del reporte
             foreach (var q in queryreporte)
             {
                 if (q.tipo == "Orden de Anulación de Recarga")
                 {
                     linea = new ReportePrepago()
                     {
                         Beneficiario = new BeneficiarioPrepagoIndex()
                         {
                             Afiliado = q.Beneficiario.Afiliado,
                             Cliente = repCliente.Find(idCliente)
                         },
                         fecha = q.fecha,
                         monto = q.monto * -1,
                         detalle = q.detalle,
                         tipo = "161-Anulación",
                         numerotarjeta = q.numerotarjeta,
                         batchid = q.batchid,
                         nroordenrecarga = q.nroordenrecarga,
                         referenciarecarga = q.referenciarecarga,
                         observacionesrecarga = q.observacionesrecarga,
                         Encabezado = encabezado
                     };
                     reporte.Add(linea);
                 }
                 else
                 {
                     linea = new ReportePrepago()
                     {
                         Beneficiario = new BeneficiarioPrepagoIndex()
                         {
                             Afiliado = q.Beneficiario.Afiliado,
                             Cliente = repCliente.Find(idCliente)
                         },
                         fecha = q.fecha,
                         monto = q.monto,
                         detalle = q.detalle,
                         tipo = "200-Recarga",
                         numerotarjeta = q.numerotarjeta,
                         batchid = q.batchid,
                         nroordenrecarga = q.nroordenrecarga,
                         referenciarecarga = q.referenciarecarga,
                         observacionesrecarga = q.observacionesrecarga,
                         Encabezado = encabezado
                     };
                     reporte.Add(linea);
                 }
             }
             reporte = reporte.OrderBy(x => x.fecha).ToList();
         }
         #endregion
         #region Por Cliente específico, Consolidado por Beneficiario
         else if (tiporeporte == "consolidado")
         {
             ClientePrepago cliente = repCliente.Find(idCliente);
             encabezado.nombreReporte = "Reporte de Recargas Detallado";
             encabezado.tipodetalleReporte = "Consolidado por Beneficiario";
             encabezado.tipoconsultaReporte = "Por Cliente";
             encabezado.parametrotipoconsultaReporte = cliente.rifCliente + " " + cliente.nameCliente; ;
             encabezado.fechainicioReporte = fechadesde;
             encabezado.fechafinReporte = fechahasta;
             encabezado.documentoreferenciaReporte = referencia;
             encabezado.observacionesReporte = observaciones;
             var queryreporte = (from o in db.Orders
                                 join od in db.OrdersDetails on o.id equals od.orderid
                                 join a in db.Affiliates on od.customerid equals a.id
                                 join c in db.CLIENTES on a.docnumber equals c.TIPO_DOCUMENTO + "-" + c.NRO_DOCUMENTO
                                 join s in db.SumaStatuses on o.sumastatusid equals s.id
                                 join p in db.PrepaidCustomers on o.prepaidcustomerid equals p.id
                                 where o.prepaidcustomerid == idCliente
                                       && (o.comments == "Orden de Anulación de Recarga" || o.comments.Contains("Orden de Recarga"))
                                       && s.name == "Procesada" && (od.comments == "Recarga efectiva" || od.comments.Contains("Anulación efectiva"))
                                       && (o.processdate >= desde && o.processdate < hasta)
                                 group od by new { o.prepaidcustomerid, a.docnumber, c.NOMBRE_CLIENTE1, c.APELLIDO_CLIENTE1, o.comments, o.documento, o.observaciones } into g
                                 select new
                                 {
                                     Afiliado = new AfiliadoSumaIndex()
                                     {
                                         docnumber = g.Key.docnumber,
                                         name = g.Key.NOMBRE_CLIENTE1,
                                         lastname1 = g.Key.APELLIDO_CLIENTE1
                                     },
                                     Cliente = g.Key.prepaidcustomerid,
                                     ClaseOrden = g.Key.comments,
                                     Total = g.Sum(x => x.amount),
                                     Referencia = g.Key.documento,
                                     Observaciones = g.Key.observaciones
                                 }).OrderBy(x => x.Afiliado.docnumber).ToList();
             if (referencia != "")
             {
                 queryreporte = queryreporte.Where(x => x.Referencia == referencia).ToList();
             }
             else if (observaciones != "")
             {
                 queryreporte = queryreporte.Where(x => x.Observaciones.Contains(observaciones)).ToList();
             }
             //armo lineas del reporte
             foreach (var doc in queryreporte.Select(d => d.Afiliado.docnumber).Distinct())
             {
                 decimal TotalRecargas = 0;
                 decimal TotalAnulaciones = 0;
                 foreach (var q in queryreporte.Where(s => s.Afiliado.docnumber == doc))
                 {
                     if (q.ClaseOrden == "Orden de Anulación de Recarga")
                     {
                         TotalAnulaciones = TotalAnulaciones + q.Total;
                     }
                     else
                     {
                         TotalRecargas = TotalRecargas + q.Total;
                     }
                 }
                 //NO INCLUYO BENEFICIARIOS SIN RECARGAS
                 if (TotalRecargas != 0)
                 {
                     linea = new ReportePrepago()
                     {
                         Beneficiario = new BeneficiarioPrepagoIndex()
                         {
                             Afiliado = repAfiliado.Find(doc, "", "", "", "").First(),
                             Cliente = repCliente.Find(idCliente)
                         },
                         monto = TotalRecargas,
                         tipo = "200-Recarga",
                         Encabezado = encabezado
                     };
                     reporte.Add(linea);
                 }
                 //NO INCLUYO BENEFICIARIOS SIN ANULACIONES
                 if (TotalAnulaciones != 0)
                 {
                     linea = new ReportePrepago()
                     {
                         Beneficiario = new BeneficiarioPrepagoIndex()
                         {
                             Afiliado = repAfiliado.Find(doc, "", "", "", "").First(),
                             Cliente = repCliente.Find(idCliente)
                         },
                         monto = TotalAnulaciones * -1,
                         tipo = "161-Anulación",
                         Encabezado = encabezado
                     };
                     reporte.Add(linea);
                 }
             }
         }
         #endregion
     }
     if (reporte.Count == 0)
     {
         linea = new ReportePrepago()
         {
             Encabezado = encabezado
         };
         reporte.Add(linea);
     }
     return reporte;
 }
 public List<ReportePrepago> ReporteTransaccionesPrepago(string tipotransaccion, string fechadesde, string fechahasta, string docnumber)
 {
     AfiliadoSumaIndex afiliado = repAfiliado.Find(docnumber, "", "", "", "").First();
     string fechasdesdemod = fechadesde.Substring(6, 4) + fechadesde.Substring(3, 2) + fechadesde.Substring(0, 2);
     string fechahastamod = fechahasta.Substring(6, 4) + fechahasta.Substring(3, 2) + fechahasta.Substring(0, 2);
     List<ReportePrepago> reporte = new List<ReportePrepago>();
     EncabezadoReporte encabezado = new EncabezadoReporte();
     ReportePrepago linea = new ReportePrepago();
     List<PLZ_GETREPORT_Result> consulta = new List<PLZ_GETREPORT_Result>();
     encabezado.nombreReporte = "Reporte de Transacciones Prepago";
     encabezado.parametrotipoconsultaReporte = docnumber + " " + afiliado.name + " " + afiliado.lastname1;
     encabezado.fechainicioReporte = fechadesde;
     encabezado.fechafinReporte = fechahasta;
     encabezado.tipotransaccionReporte = tipotransaccion;
     using (CardsEntities db = new CardsEntities())
     {
         db.Database.Connection.ConnectionString = AppModule.ConnectionString("Cards");
         if (tipotransaccion == "Todas")
         {
             consulta = db.PLZ_GETREPORT(fechasdesdemod, fechahastamod, docnumber.Substring(2), Globals.TIPO_CUENTA_PREPAGO, "NULL").ToList();
         }
         foreach (PLZ_GETREPORT_Result fila in consulta.Where(x=>x.TRANSCODE != 121))
         {
             linea = new ReportePrepago()
             {
                 Beneficiario = new BeneficiarioPrepagoIndex()
                 {
                     Afiliado = afiliado
                 },
                 fecha = fila.BATCHTIME == null ? DateTime.ParseExact(fila.FECHA.Substring(6, 2) + "/" + fila.FECHA.Substring(4, 2) + "/" + fila.FECHA.Substring(0, 4), "dd/MM/yyyy", CultureInfo.InvariantCulture) : DateTime.ParseExact(fila.FECHA.Substring(6, 2) + "/" + fila.FECHA.Substring(4, 2) + "/" + fila.FECHA.Substring(0, 4) + " " + fila.BATCHTIME.Substring(0, 2) + ":" + fila.BATCHTIME.Substring(2, 2) + ":" + fila.BATCHTIME.Substring(4, 2), "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture),
                 monto = fila.SALDO.Value,
                 detalle = fila.ISODESCRIPTION,
                 tipo = fila.TRANSCODE + "-" + fila.TRANSNAME,
                 numerotarjeta = Convert.ToDecimal(fila.PAN),
                 batchid = fila.BATCHID.ToString(),
                 Encabezado = encabezado
             };
             if (fila.TRANSCODE.Value.ToString() == Globals.TRANSCODE_ANULACION_RECARGA_PREPAGO || fila.TRANSCODE.Value.ToString() == Globals.TRANSCODE_ANULACION_TRANSFERENCIA_CREDITO_PREPAGO || fila.TRANSCODE.Value.ToString() == Globals.TRANSCODE_ANULACION_TRANSFERENCIA_DEBITO_PREPAGO)
             {
                 linea.detalle = linea.detalle + " (" + fila.B037 + ")";
             }
             if (linea.detalle.Contains("offline"))
             {
                 //buscar info en FueraDeLinea
                 using (LealtadEntities db2 = new LealtadEntities())
                 {
                     db2.Database.Connection.ConnectionString = AppModule.ConnectionString("SumaLealtad");
                     string operacion = linea.batchid.ToString();
                     FueraDeLinea f = db2.FueraDeLineas.FirstOrDefault(t => t.batchid.Equals(operacion));
                     if (f != null)
                     {
                         string sucursal = repAfiliado.Find(afiliado.id).StoreOptions.Where(c => c.id != null).FirstOrDefault(x => x.id.Equals(f.store_code)).sucursal;
                         linea.detalle = linea.detalle + " (origen: " + sucursal + ", motivo: " + f.observaciones + ")";
                     }
                 }
             }
             reporte.Add(linea);
         }
     }
     reporte = reporte.OrderBy(x => x.fecha).ToList();
     if (reporte.Count == 0)
     {
         linea = new ReportePrepago()
         {
             Encabezado = encabezado
         };
         reporte.Add(linea);
     }
     return reporte;
 }
Beispiel #30
0
 //Busca el resultado de una orden de recarga
 public List<CompanyAfiliadoRecarga> FindRecargaProcesada(int companyid, int id)
 {
     using (LealtadEntities db = new LealtadEntities())
     {
         List<CompanyAfiliadoRecarga> compañiaafiliados = new List<CompanyAfiliadoRecarga>();
         PrepagoCompanyAffiliattes ca = new PrepagoCompanyAffiliattes();
         ca = Find(companyid);
         decimal montorecarga;
         string resultadorecarga;
         foreach (Afiliado afiliado in ca.Beneficiarios)
         {
             CompanyAfiliadoRecarga temp = new CompanyAfiliadoRecarga();
             montorecarga = (from o in db.OrdersDetails
                             where o.customerid.Equals(afiliado.id) && o.orderid.Equals(id)
                             select o.amount
                             ).FirstOrDefault();
             resultadorecarga = (from o in db.OrdersDetails
                                 where o.customerid.Equals(afiliado.id) && o.orderid.Equals(id)
                                 select o.comments
                                 ).FirstOrDefault();
             if (montorecarga != 0 && resultadorecarga != null)
             {
                 temp.companyid = ca.companyid;
                 temp.namecompañia = ca.namecompañia;
                 temp.rif = ca.rif;
                 temp.phone = ca.phone;
                 temp.address = ca.phone;
                 temp.email = ca.email;
                 temp.Afiliadoid = afiliado.id;
                 temp.docnumber = afiliado.docnumber;
                 temp.name = afiliado.name;
                 temp.lastname1 = afiliado.lastname1;
                 temp.typeid = afiliado.typeid;
                 temp.type = afiliado.type;
                 temp.statusid = afiliado.statusid;
                 temp.estatus = afiliado.estatus;
                 temp.MontoRecarga = montorecarga;
                 temp.ResultadoRecarga = resultadorecarga;
                 compañiaafiliados.Add(temp);
                 temp = null;
             }
         }
         return compañiaafiliados;
     }
 }