public Balance GetBalance()
        {
            Billetera billetera = new Billetera();

            using (BilleteraEntities billetrasEntities = new BilleteraEntities())
            {
                var transacciones = billetrasEntities.Billeteras.ToList();
                int retiro        = 0;
                int deposito      = 0;
                foreach (var transaccion in transacciones)
                {
                    if (esRetiro(transaccion.operacion))
                    {
                        retiro = retiro + transaccion.monto;
                    }
                    if (esDeposito(transaccion.operacion))
                    {
                        deposito = deposito + transaccion.monto;
                    }
                }
                int     balances = calcularBalance(deposito, retiro);
                Balance bal      = new Balance
                {
                    balance = balances
                };
                return(bal);
            }
        }
        public IHttpActionResult AgregarTransaccion([FromBody] Billetera billetera)
        {
            if (esDeposito(billetera.operacion) is false && esRetiro(billetera.operacion) is false)
            {
                return(BadRequest());
            }
            if (transaccionMayorACero(billetera.monto) is false)
            {
                return(BadRequest());
            }
            if (esRetiro(billetera.operacion))
            {
                var balance = GetBalance();
                if (retiroEsMenorIgualBalance(balance.balance, billetera.monto) is false)
                {
                    return(BadRequest());
                }
            }

            if (ModelState.IsValid)
            {
                dbContext.Billeteras.Add(billetera);
                dbContext.SaveChanges();
                return(Ok(billetera));
            }
            else
            {
                return(BadRequest());
            }
        }
示例#3
0
        public void IngresoNumeroNegativoConSaldoCero()
        {
            Billetera _billetera = Billetera.Instance;

            _billetera.Saldo = 0;

            Assert.AreEqual(0, _billetera.Ingreso(-2));
        }
示例#4
0
        public void EgresoNumeroCincoConSaldoDiez()
        {
            Billetera _billetera = Billetera.Instance;

            _billetera.Saldo = 10;

            Assert.AreEqual(5, _billetera.Egreso(5));
        }
示例#5
0
        public void EgresoNumeroDiezConSaldoCero()
        {
            Billetera _billetera = Billetera.Instance;

            _billetera.Saldo = 0;

            Assert.AreEqual(0, _billetera.Egreso(10));
        }
示例#6
0
        public void IngresoNumeroDiezConSaldoDiez()
        {
            Billetera _billetera = Billetera.Instance;

            _billetera.Saldo = 10;

            Assert.AreEqual(20, _billetera.Ingreso(10));
        }
示例#7
0
        public static Billetera obtenerBilletera(string id)
        {
            EcomonedasContexto db        = new EcomonedasContexto();
            Billetera          billetera = db.Billetera.
                                           Where(p => p.Id_Billetera == id).
                                           First <Billetera>();

            return(billetera);
        }
示例#8
0
        //PROY-24740
        public ArrayList ObtenerBilleteraxPlan(string strListaPlan)
        {
            DAABRequest.Parameter[] arrParam =
            {
                new DAABRequest.Parameter("P_PLANES", DbType.String, 4000, ParameterDirection.Input),
                new DAABRequest.Parameter("P_CURSOR", DbType.Object, ParameterDirection.Output)
            };
            arrParam[0].Value = strListaPlan;

            BDSISACT    obj        = new BDSISACT(BaseDatos.BD_SISACT);
            DAABRequest objRequest = obj.CreaRequest();

            objRequest.CommandType = CommandType.StoredProcedure;
            objRequest.Command     = string.Format("{0}{1}", BaseDatos.PKG_SISACT_EVALUACION_UNI, ".SP_PLAN_X_PRODUCTO");
            objRequest.Parameters.AddRange(arrParam);

            ArrayList     objLista     = new ArrayList();
            ArrayList     objListaPlan = new ArrayList();
            PlanBilletera objItem;
            Billetera     objBilletera;
            string        plan;
            IDataReader   dr = null;

            try
            {
                dr = objRequest.Factory.ExecuteReader(ref objRequest).ReturnDataReader;
                while (dr.Read())
                {
                    plan         = Funciones.CheckStr(dr["PLAN"]);
                    objBilletera = new Billetera(Funciones.CheckInt(dr["PRODUCTO"]), Funciones.CheckStr(dr["DESCRIPCION"]));

                    if (!objListaPlan.Contains(plan))
                    {
                        objItem            = new PlanBilletera();
                        objItem.Plan       = plan;
                        objItem.oBilletera = new ArrayList();
                        objItem.oBilletera.Add(objBilletera);

                        objLista.Add(objItem);
                        objListaPlan.Add(plan);
                    }
                }
            }
            finally
            {
                if (dr != null && dr.IsClosed == false)
                {
                    dr.Close();
                }
                objRequest.Parameters.Clear();
                objRequest.Factory.Dispose();
            }
            return(objLista);
        }
示例#9
0
        //PROY-24740
        public ArrayList ObtenerPlanesxBilletera(int flgSistema)
        {
            DAABRequest.Parameter[] arrParam =
            {
                new DAABRequest.Parameter("P_CONSULTA", DbType.Object, ParameterDirection.Output),
                new DAABRequest.Parameter("P_SISTEMA",  DbType.Int16,  ParameterDirection.Input)
            };
            arrParam[1].Value = flgSistema;

            BDSISACT    obj        = new BDSISACT(BaseDatos.BD_SISACT);
            DAABRequest objRequest = obj.CreaRequest();

            objRequest.CommandType = CommandType.StoredProcedure;
            objRequest.Command     = string.Format("{0}{1}", BaseDatos.PKG_SISACT_EVALUACION_UNI, ".SP_CON_PLAN_BILLETERA");
            objRequest.Parameters.AddRange(arrParam);

            ArrayList     objLista     = new ArrayList();
            ArrayList     objListaPlan = new ArrayList();
            PlanBilletera objItem;
            Billetera     objBilletera;
            string        plan;
            IDataReader   dr = null;

            try
            {
                dr = objRequest.Factory.ExecuteReader(ref objRequest).ReturnDataReader;
                while (dr.Read())
                {
                    plan         = Funciones.CheckStr(dr["SOLV_CODIGO"]);
                    objBilletera = new Billetera(Funciones.CheckInt(dr["PRCLV_CODIGO"]), 1);
                    if (!objListaPlan.Contains(plan))
                    {
                        objItem            = new PlanBilletera();
                        objItem.Plan       = plan;
                        objItem.oBilletera = new ArrayList();
                        objItem.oBilletera.Add(objBilletera);
                        objLista.Add(objItem);
                        objListaPlan.Add(plan);
                    }
                }
            }
            finally
            {
                if (dr != null && dr.IsClosed == false)
                {
                    dr.Close();
                }
                objRequest.Parameters.Clear();
                objRequest.Factory.Dispose();
            }
            return(objLista);
        }
示例#10
0
        //PROY-24740
        public ArrayList ObtenerLCxBilletera(string strRiesgo, string strTipoDoc, string strNroDocumento, string essaludSunat, string strClienteNuevo, double dblLC)
        {
            DAABRequest.Parameter[] arrParam =
            {
                new DAABRequest.Parameter("P_RIESGO",        DbType.String, ParameterDirection.Input),
                new DAABRequest.Parameter("P_TIPO_DOC",      DbType.String, ParameterDirection.Input),
                new DAABRequest.Parameter("P_ESSALUD_SUNAT", DbType.String, ParameterDirection.Input),
                new DAABRequest.Parameter("P_CLIENTE_NUEVO", DbType.String, ParameterDirection.Input),
                new DAABRequest.Parameter("P_LC_DC",         DbType.Double, ParameterDirection.Input),
                new DAABRequest.Parameter("C_PRODUCTO_LC",   DbType.Object, ParameterDirection.Output)
            };
            int i = 0; arrParam[i].Value = strRiesgo;

            ++i; arrParam[i].Value = strTipoDoc;
            ++i; arrParam[i].Value = essaludSunat;
            ++i; arrParam[i].Value = strClienteNuevo;
            ++i; arrParam[i].Value = dblLC;

            BDSISACT    obj        = new BDSISACT(BaseDatos.BD_SISACT);
            DAABRequest objRequest = obj.CreaRequest();

            objRequest.CommandType = CommandType.StoredProcedure;
            objRequest.Command     = string.Format("{0}{1}", BaseDatos.PKG_SISACT_EVALUACION_UNI, ".SP_CALCULO_LC_X_PRODUCTO");
            objRequest.Parameters.AddRange(arrParam);

            ArrayList   objLista = new ArrayList();
            Billetera   objItem;
            IDataReader dr = null;

            try
            {
                dr = objRequest.Factory.ExecuteReader(ref objRequest).ReturnDataReader;
                while (dr.Read())
                {
                    objItem             = new Billetera();
                    objItem.idBilletera = Funciones.CheckInt(dr["PRODUCTO_COD"]);
                    objItem.billetera   = Funciones.CheckStr(dr["DESCRIPCION"]);
                    objItem.monto       = Funciones.CheckDbl(dr["PRODUCTO_LC"]);
                    objLista.Add(objItem);
                }
            }
            finally
            {
                if (dr != null && dr.IsClosed == false)
                {
                    dr.Close();
                }
                objRequest.Parameters.Clear();
                objRequest.Factory.Dispose();
            }
            return(objLista);
        }
示例#11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string accioncarrito = Request.QueryString["accion"];

            if (accioncarrito == "registro")
            {
                lblMensaje.Visible = true;
                lblMensaje.Text    = "Cupon Obtenido con éxito";
            }
            Usuario   usuario2  = (Usuario)Session["usuario"];
            Billetera billetera = BilleteraLN.obtenerBilletera(usuario2.Billetera.Id_Billetera);

            lblTotalEcomonedas.Text = billetera.Total_Disponible.ToString();
        }
示例#12
0
 public ActionResult create(Billetera billeteras)
 {
     using (var billetera = new HttpClient())
     {
         billetera.BaseAddress = new Uri(BaseUrl + "/api/Billeteras");
         var postTask = billetera.PostAsJsonAsync <Billetera>("billeteras", billeteras);
         postTask.Wait();
         var result = postTask.Result;
         if (result.IsSuccessStatusCode)
         {
             return(RedirectToAction("balance"));
         }
     }
     ModelState.AddModelError(string.Empty, "Error, contacta con el administrador");
     return(View(billeteras));
 }
示例#13
0
        public static bool  ObtenerCupon(string id, int?valorCupon)
        {
            EcomonedasContexto db = new EcomonedasContexto();
            var miBilletera       = new Billetera();

            miBilletera = db.Billetera.Where(u => u.Id_Billetera == id).FirstOrDefault <Billetera>();

            miBilletera.Total_Canjeadas += valorCupon;
            // yo canjeo
            miBilletera.Total_Disponible -= valorCupon;
            //suma
            miBilletera.Total_Generada = miBilletera.Total_Canjeadas + miBilletera.Total_Disponible;


            db.SaveChanges();

            return(true);
        }
示例#14
0
        //PROY-24740
        public ArrayList ObtenerMontoFactxBilletera(string strNroDocumento, string strCadena)
        {
            DAABRequest.Parameter[] arrParam =
            {
                new DAABRequest.Parameter("P_LISTA_PLANES",  DbType.String, 4000, ParameterDirection.Input),
                new DAABRequest.Parameter("C_PRODUCTO_FACT", DbType.Object, ParameterDirection.Output)
            };
            arrParam[0].Value = strCadena;

            BDSISACT    obj        = new BDSISACT(BaseDatos.BD_SISACT);
            DAABRequest objRequest = obj.CreaRequest();

            objRequest.CommandType = CommandType.StoredProcedure;
            objRequest.Command     = string.Format("{0}{1}", BaseDatos.PKG_SISACT_EVALUACION_UNI, ".SP_CALCULO_FACTURA_X_PRODUCTO");
            objRequest.Parameters.AddRange(arrParam);

            ArrayList   objLista = new ArrayList();
            Billetera   objItem;
            IDataReader dr = null;

            try
            {
                dr = objRequest.Factory.ExecuteReader(ref objRequest).ReturnDataReader;
                while (dr.Read())
                {
                    objItem             = new Billetera();
                    objItem.idBilletera = Funciones.CheckInt(dr["CODIGO"]);
                    objItem.billetera   = Funciones.CheckStr(dr["DESCRIPCION"]);
                    objItem.monto       = Funciones.CheckDbl(dr["VALOR"]);
                    objLista.Add(objItem);
                }
            }
            finally
            {
                if (dr != null && dr.IsClosed == false)
                {
                    dr.Close();
                }
                objRequest.Parameters.Clear();
                objRequest.Factory.Dispose();
            }
            return(objLista);
        }
示例#15
0
        public static bool AgregarBilletera(string id, int Total_Canjeadas, int Total_Disponible)
        {
            EcomonedasContexto db = new EcomonedasContexto();
            var miBilletera       = new Billetera();

            miBilletera = db.Billetera.Where(u => u.Id_Billetera == id).FirstOrDefault <Billetera>();


            if (miBilletera == null)
            {
                //Creacion de la billetera
                miBilletera = new Billetera();
                miBilletera.Id_Billetera     = id;
                miBilletera.Total_Disponible = 0;
                miBilletera.Total_Generada   = 0;
                miBilletera.Total_Canjeadas  = 0;

                db.Billetera.Add(miBilletera);
                db.SaveChanges();

                // Confirmacion
                return(true);
            }
            else
            {
                miBilletera.Total_Canjeadas += Total_Canjeadas;
                // yo canjeo
                miBilletera.Total_Disponible += Total_Disponible;
                //suma
                miBilletera.Total_Generada = miBilletera.Total_Canjeadas + miBilletera.Total_Disponible;
            }

            db.SaveChanges();

            return(true);
        }
示例#16
0
        protected void linkAgregar_Click(object sender, EventArgs e)
        {
            Usuario usuario2 = (Usuario)Session["usuario"];


            //Otra forma de obtener el id del producto
            ListViewDataItem fila = (ListViewDataItem)(sender as Control).Parent;
            HiddenField      hi   = (HiddenField)fila.FindControl("hiddenID");
            int idCupon           = Convert.ToInt32(hi.Value);

            if (idCupon != 0)
            {
                Cupon     cupon     = CuponLN.obtenerCupon(idCupon);
                Billetera billetera = BilleteraLN.obtenerBilletera(usuario2.Billetera.Id_Billetera);

                if (billetera.Total_Disponible >= cupon.Precio_Canje)
                {
                    // Cambiamos la billetera

                    BilleteraLN.ObtenerCupon(billetera.Id_Billetera, cupon.Precio_Canje);
                    lblTotalEcomonedas.Text = billetera.Total_Disponible.ToString();


                    //Agregamos el cupon a la bd
                    Cupon_UsuarioLN.registrarCupon_Usuario(usuario2.Id_Usuario, cupon.Id_Cupon, cupon.activo.Value);



                    //Creamos un qr

                    var             txtQRCode   = cupon.nombre + numeroAleatorio();
                    QRCodeGenerator qrGenerator = new QRCodeGenerator();
                    QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(txtQRCode, QRCodeGenerator.ECCLevel.Q);
                    QRCode          qrCode      = new QRCode(qrCodeData);
                    Bitmap          qrCodeImage = qrCode.GetGraphic(20);

                    //guardamos la imagen
                    var folder = "images/Qrs/";
                    var path   = System.Web.HttpContext.Current.Server.MapPath(folder);
                    qrCodeImage.Save(path + cupon.nombre + "qr.Jpeg", ImageFormat.Jpeg);


                    //Asignamos la ruta de las imagenes
                    System.Drawing.Image imagen = System.Drawing.Image.FromFile(Server.MapPath("~/images/cupones/" + cupon.imagen));


                    //Hacemos las imagenes en byte
                    CanjeCupon Canje = new CanjeCupon();
                    Canje.cliente     = usuario2.NombreCompleto;
                    Canje.id          = cupon.Id_Cupon;
                    Canje.imagenQR    = CanjeCuponLN.ImagenByte(qrCodeImage);
                    Canje.imagenCupon = CanjeCuponLN.ImagenByte(imagen);
                    Canje.nombreCupon = cupon.nombre;



                    //llamamos al reporte
                    LocalReport report = new LocalReport();
                    report.DataSources.Clear();

                    ReportDataSource rdc = new ReportDataSource("DataSet1", CanjeCuponLN.canjeCupon(Canje));
                    report.DataSources.Add(rdc);
                    report.ReportPath           = Server.MapPath("~/Reportes/CuponObtenido.rdlc");
                    report.EnableExternalImages = true;


                    string    FileName = "Cupon-" + cupon.nombre.Trim() + ".pdf";
                    string    extension;
                    string    encoding;
                    string    mimeType;
                    string[]  streams;
                    Warning[] warnings;



                    Byte[] mybytes = report.Render("PDF", null,
                                                   out extension, out encoding,
                                                   out mimeType, out streams, out warnings); //for exporting to PDF
                    using (FileStream fs = File.Create(Server.MapPath("~/images/DescargasCupones/") + FileName))
                    {
                        fs.Write(mybytes, 0, mybytes.Length);
                    }



                    Response.Buffer = true;

                    Response.ContentType = "application/pdf";

                    Response.AddHeader("content-disposition", "inline;filename=" + FileName + ".pdf");
                    Response.WriteFile(Server.MapPath(Path.Combine("~/images/DescargasCupones/" + FileName)));
                    Response.End();
                }
                else
                {
                    lblMensaje.Visible   = true;
                    lblMensaje.Text      = "Lo sentimos, no le alcanza para este cupón";
                    lblMensaje.ForeColor = Color.Red;
                }
            }
        }