/** * * 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; } } }
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); } } }
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; } }
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; } } }
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; }
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; }
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); } }
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; }
//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; } }
private int OrderDetailID() { using (LealtadEntities db = new LealtadEntities()) { if (db.OrdersDetails.Count() == 0) return 0; return (db.OrdersDetails.Max(c => c.id)); } }
private int OrderID() { using (LealtadEntities db = new LealtadEntities()) { if (db.Orders.Count() == 0) return 1; return (db.Orders.Max(c => c.id) + 1); } }
//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; } }
private int CompanyID() { using (LealtadEntities db = new LealtadEntities()) { if (db.Companies.Count() == 0) return 1; return (db.Companies.Max(c => c.id) + 1); } }
//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); } }
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; } }
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; } }
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; }
//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; } }