예제 #1
0
        public ActionResult Index(Cesta cesta)
        {
            try
            {
                PedidoCEN pedCEN = new PedidoCEN();
                PedidoCP  ped    = new PedidoCP();
                pedCEN.Modify(cesta.pedido.Id, PracticaGenNHibernate.Enumerated.Practica.EstadoPedidoEnum.pendiente, DateTime.Now, cesta.pedido.PrecioTotal, cesta.pedido.TipoPago, true, cesta.pedido.valoracion);
                PedidoEN p = pedCEN.ReadOID(cesta.pedido.Id);
                //Aqui faltaria pillar la direccion a través de su id pero como no servia para na pues GG

                pedCEN.AnyadirDireccion(cesta.pedido.Id, cesta.usuario.direccion[0].id);

                PedidoCEN nuevo = new PedidoCEN();

                nuevo.New_(PracticaGenNHibernate.Enumerated.Practica.EstadoPedidoEnum.pendiente, DateTime.Now, 0.0, PracticaGenNHibernate.Enumerated.Practica.TipoPagoEnum.contrarreembolso, cesta.usuario.id, false, 0.0);
                ped.Confirmar(p.Id);
                Session["Clineas"] = 0;

                return(RedirectToAction("PedidosUsuario", "Account"));
            }
            catch
            {
                return(View());
            }
        }
예제 #2
0
        public ActionResult Details(int id)
        {
            SessionInitialize();
            PedidoCEN pedidoCEN = new PedidoCEN(new PedidoCAD(session));
            PedidoEN  pedidoEN  = pedidoCEN.ReadOID(id);
            Pedido    ped       = new AssemblerPedido().ConvertENToModelUI(pedidoEN, session);

            SessionClose();
            return(View(ped));
        }
예제 #3
0
        public ActionResult Estado(string id)
        {
            string[] listaAux = id.Split(',');
            System.Diagnostics.Debug.WriteLine(listaAux[0]);
            System.Diagnostics.Debug.WriteLine(listaAux[1]);
            PedidoCEN art = new PedidoCEN();
            PedidoEN  ped = art.ReadOID(Int32.Parse(listaAux[0]));

            ped.Estado = (CervezUAGenNHibernate.Enumerated.CervezUA.EstadoPedidoEnum)Int32.Parse(listaAux[1]);
            art.Modify(ped.Id, ped.Estado, ped.Importe, ped.Direccion, ped.Attribute);

            return(Redirect("/Pedido/Admin"));
        }
예제 #4
0
        public void Confirmar(int p_oid)
        {
            /*PROTECTED REGION ID(PracticaGenNHibernate.CP.Practica_Pedido_confirmar) ENABLED START*/

            IPedidoCAD pedidoCAD = null;
            PedidoCEN  pedidoCEN = null;
            PedidoEN   pedidoEN  = null;

            IProductoCAD productoCAD = null;
            ProductoCEN  productoCEN = null;


            try
            {
                SessionInitializeTransaction();

                pedidoCAD = new PedidoCAD(session);
                pedidoCEN = new  PedidoCEN(pedidoCAD);

                productoCAD = new ProductoCAD(session);
                productoCEN = new ProductoCEN(productoCAD);

                pedidoEN = pedidoCEN.ReadOID(p_oid);

                IList <LineaPedidoEN> lineas = pedidoEN.LineaPedido;

                foreach (LineaPedidoEN l in lineas)
                {
                    productoCEN.IncrementarNumVeces(l.Producto.Id, l.Cantidad);
                    int veces = l.Producto.NumVeces;
                }

                pedidoEN.Confirmado = true;



                SessionCommit();
            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }


            /*PROTECTED REGION END*/
        }
예제 #5
0
        public void ConfirmarPedido(int p_oid)
        {
            /*PROTECTED REGION ID(PracticaGenNHibernate.CP.Practica_Pedido_confirmarPedido) ENABLED START*/

            IPedidoCAD pedidoCAD = null;
            PedidoCEN  pedidoCEN = null;



            try
            {
                SessionInitializeTransaction();
                pedidoCAD = new PedidoCAD(session);
                pedidoCEN = new  PedidoCEN(pedidoCAD);



                // Write here your custom transaction ...
                PedidoEN pedidoEN = pedidoCEN.ReadOID(p_oid);
                pedidoEN.Confirmado = true;

                foreach (LineaPedidoEN linea in pedidoEN.LineaPedido)
                {
                    linea.Producto.NumVeces += linea.Cantidad;
                }
                pedidoCAD.ModifyDefault(pedidoEN);


                SessionCommit();
            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }


            /*PROTECTED REGION END*/
        }
예제 #6
0
        public double CalcularMedia(int p_oid)
        {
            /*PROTECTED REGION ID(PracticaGenNHibernate.CP.Practica_Pedido_calcularMedia) ENABLED START*/

            IPedidoCAD pedidoCAD = null;
            PedidoCEN  pedidoCEN = null;
            PedidoEN   pedidoEN  = null;

            double result     = 0;
            double acumulador = 0;

            try
            {
                SessionInitializeTransaction();
                pedidoCAD = new PedidoCAD(session);
                pedidoCEN = new  PedidoCEN(pedidoCAD);



                // Write here your custom transaction ...

                pedidoEN = pedidoCEN.ReadOID(p_oid);


                double count = 0.0;
                foreach (LineaPedidoEN lineaped in pedidoEN.LineaPedido)
                {
                    if (lineaped.Valoracion == PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.mala)
                    {
                        acumulador += 1;
                    }
                    if (lineaped.Valoracion == PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.regular)
                    {
                        acumulador += 2;
                    }
                    if (lineaped.Valoracion == PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.buena)
                    {
                        acumulador += 3;
                    }
                    if (lineaped.Valoracion == PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.muybuena)
                    {
                        acumulador += 4;
                    }
                    if (lineaped.Valoracion == PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.excelente)
                    {
                        acumulador += 5;
                    }
                    count++;     //numero de lineas de pedido que tiene pedido
                }
                //calculando media

                result = acumulador / count;



                SessionCommit();
            }
            catch (Exception ex)
            {
                SessionRollBack();
                throw ex;
            }
            finally
            {
                SessionClose();
            }
            return(result);


            /*PROTECTED REGION END*/
        }
예제 #7
0
        public ActionResult Valorar(int id, int pedido, int valoracion)
        {
            try
            {
                // TODO: Add update logic here

                SessionInitialize();
                PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.sin_valorar;
                LineaPedidoCEN        linPed = new LineaPedidoCEN(new LineaPedidoCAD());
                PedidoCEN             pedi   = new PedidoCEN(new PedidoCAD(session));
                PedidoEN              pedEN  = pedi.ReadOID(pedido);
                IList <LineaPedidoEN> lineas = pedEN.LineaPedido;


                switch (valoracion)
                {
                case 1:

                    valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.mala;

                    break;

                case 2:

                    valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.regular;
                    break;

                case 3:

                    valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.buena;
                    break;

                case 4:

                    valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.muybuena;
                    break;

                case 5:

                    valor = PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.excelente;
                    break;
                }

                linPed.ValorarLinea(id, valor);



                int contador = 0;

                //compruebo que todas las chismas han sido valoradas, y si es asi llamo a calcularmedia
                foreach (LineaPedidoEN lin in lineas)
                {
                    if (lin.Valoracion != PracticaGenNHibernate.Enumerated.Practica.TipoValoracionEnum.sin_valorar)
                    {
                        contador++;

                        if (contador == lineas.Count)
                        {
                            return(RedirectToAction("CalcularMedia", "Pedido", new { id = pedido }));
                        }
                    }
                }


                SessionClose();

                return(RedirectToAction("PedidosUsuario", "Account"));
            }
            catch
            {
                return(View());
            }
        }