Exemple #1
0
        public BaseDatosGenNHibernate.EN.BaseDatos.PedidoEN EnviarPedido(Nullable <DateTime> p_Fecha, int p_pedido)
        {
            /*PROTECTED REGION ID(BaseDatosGenNHibernate.CP.BaseDatos_Pedido_enviarPedido) ENABLED START*/

            BaseDatosGenNHibernate.EN.BaseDatos.PedidoEN result = null;

            try
            {
                SessionInitializeTransaction();

                IPedidoCAD   pedidoCAD = new PedidoCAD(session);
                IProductoCAD prodCAD   = new ProductoCAD(session);
                IEnvioCAD    envioCAD  = new EnvioCAD(session);

                PedidoCEN   pedidoCEN = new PedidoCEN(pedidoCAD);
                ProductoCEN prodCEN   = new ProductoCEN(prodCAD);
                EnvioCEN    envioCEN  = new EnvioCEN(envioCAD);

                PedidoEN pedidoEN = pedidoCEN.MuestraPedidoPorOID(p_pedido);

                if (pedidoEN.Estado == Enumerated.BaseDatos.EstadoPedidoEnum.Pagado)
                {
                    foreach (LineaPedidoEN lnEN in pedidoEN.LineaPedido)
                    {
                        ProductoEN prodEN = lnEN.Producto;
                        prodCEN = new ProductoCEN(prodCAD);
                        prodCEN.DecrementaStock(prodEN.Id, lnEN.Cantidad);
                    }

                    pedidoEN.Estado = Enumerated.BaseDatos.EstadoPedidoEnum.Enviado;
                    pedidoCAD.Modify(pedidoEN);
                    envioCEN = new EnvioCEN(envioCAD);
                    envioCEN.New_(DateTime.Now, p_Fecha, Enumerated.BaseDatos.EstadoEnvioEnum.EnCamino, p_pedido);
                }

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


            /*PROTECTED REGION END*/
        }
Exemple #2
0
        public System.Collections.Generic.IList <double> CalcularFactura(int p_pedido, ISession p_session)
        {
            /*PROTECTED REGION ID(BaseDatosGenNHibernate.CP.BaseDatos_Pedido_calcularFactura) ENABLED START*/

            System.Collections.Generic.IList <double> result = null;

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

                PedidoEN pedidoEN = pedidoCEN.MuestraPedidoPorOID(p_pedido);

                double precioTotal  = 0;
                double totalIVA     = 0;
                double precioSinIVA = 0;

                foreach (LineaPedidoEN lineaPedidoEN in pedidoEN.LineaPedido)
                {
                    ProductoEN productoEN = lineaPedidoEN.Producto;
                    precioTotal = precioTotal + (productoEN.Precio * lineaPedidoEN.Cantidad);
                }

                totalIVA     = precioTotal * 0.21;
                precioSinIVA = precioTotal - totalIVA;

                result = new List <double>();
                result.Add(precioTotal);
                result.Add(precioSinIVA);
                result.Add(totalIVA);

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


            /*PROTECTED REGION END*/
        }
        public void RechazarPedido(int p_pedido)
        {
            /*PROTECTED REGION ID(BaseDatosGenNHibernate.CP.BaseDatos_Pedido_rechazarPedido) ENABLED START*/

            try
            {
                SessionInitializeTransaction();

                IPedidoCAD pedidoCAD = new PedidoCAD(session);
                IEnvioCAD  envioCAD  = new EnvioCAD(session);

                PedidoCEN pedidoCEN = new PedidoCEN(pedidoCAD);
                EnvioCEN  envioCEN  = new EnvioCEN(envioCAD);

                PedidoEN pedidoEN = pedidoCEN.MuestraPedidoPorOID(p_pedido);

                if (pedidoEN.Estado == Enumerated.BaseDatos.EstadoPedidoEnum.Enviado)
                {
                    EnvioEN envioEN = pedidoEN.Envio;

                    envioEN.Estado = Enumerated.BaseDatos.EstadoEnvioEnum.Extraviado;
                    envioCAD.Modify(envioEN);
                }

                pedidoEN.Estado = Enumerated.BaseDatos.EstadoPedidoEnum.Rechazado;
                pedidoCAD.Modify(pedidoEN);

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


            /*PROTECTED REGION END*/
        }
        public void CrearFactura(int p_pedido, Nullable <DateTime> p_FechaPago)
        {
            /*PROTECTED REGION ID(BaseDatosGenNHibernate.CP.BaseDatos_Factura_crearFactura) ENABLED START*/

            FacturaCEN    facturaCEN    = null;
            PedidoCEN     pedidoCEN     = null;
            DirEnvioCEN   dirEnvioCEN   = null;
            MetodoPagoCEN metodoPagoCEN = null;

            try
            {
                SessionInitializeTransaction();
                IFacturaCAD    facturaCAD    = new FacturaCAD(session);
                IPedidoCAD     pedidoCAD     = new PedidoCAD(session);
                IDirEnvioCAD   dirEnvioCAD   = new DirEnvioCAD(session);
                IMetodoPagoCAD metodoPagoCAD = new MetodoPagoCAD(session);

                facturaCEN    = new FacturaCEN(facturaCAD);
                pedidoCEN     = new PedidoCEN(pedidoCAD);
                dirEnvioCEN   = new DirEnvioCEN(dirEnvioCAD);
                metodoPagoCEN = new MetodoPagoCEN(metodoPagoCAD);

                PedidoEN pedidoEN = pedidoCEN.MuestraPedidoPorOID(p_oid);

                if (pedidoEN.Estado == Enumerated.BaseDatos.EstadoPedidoEnum.Pendiente)
                {
                    DirEnvioEN   dirEnvioEN   = dirEnvioCEN.MuestraDireccionPorOID(dirEnvioCEN.New_(p_Calle, p_CP, p_Localidad, p_Provincia, p_oid));
                    MetodoPagoEN metodoPagoEN = metodoPagoCEN.MuestraMetodoPagoPorOID(metodoPagoCEN.New_(p_TipoPago, p_oid));

                    //pedidoCEN.AddDirEnvio(p_oid, dirEnvioEN.Id);
                    //pedidoCEN.AddMetodoPago(p_oid, metodoPagoEN.Id);

                    double precioTotal  = 0;
                    double totalIVA     = 0;
                    double precioSinIVA = 0;

                    foreach (LineaPedidoEN lineaPedidoEN in pedidoEN.LineaPedido)
                    {
                        ProductoEN productoEN = lineaPedidoEN.Producto;
                        precioTotal = precioTotal + (productoEN.Precio * lineaPedidoEN.Cantidad);
                    }

                    totalIVA     = precioTotal * 0.21;
                    precioSinIVA = precioTotal - totalIVA;

                    facturaCEN.New_(precioTotal, p_oid, totalIVA, precioSinIVA);
                    pedidoCEN.Modify(p_oid, pedidoEN.Fecha, Enumerated.BaseDatos.EstadoPedidoEnum.Pagado);
                }

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


            /*PROTECTED REGION END*/
        }
        public void PagarPedido(int p_pedido, int p_dirEnvio, int p_metodoPago)
        {
            /*PROTECTED REGION ID(BaseDatosGenNHibernate.CP.BaseDatos_Pedido_pagarPedido) ENABLED START*/

            try
            {
                SessionInitializeTransaction();

                IPedidoCAD     pedidoCAD     = new PedidoCAD(session);
                IDirEnvioCAD   dirEnvioCAD   = new DirEnvioCAD(session);
                IMetodoPagoCAD metodoPagoCAD = new MetodoPagoCAD(session);
                IFacturaCAD    facturaCAD    = new FacturaCAD(session);

                PedidoCEN     pedidoCEN     = new PedidoCEN(pedidoCAD);
                DirEnvioCEN   dirEnvioCEN   = new DirEnvioCEN(dirEnvioCAD);
                MetodoPagoCEN metodoPagoCEN = new MetodoPagoCEN(metodoPagoCAD);
                FacturaCEN    facturaCEN    = new FacturaCEN(facturaCAD);

                PedidoEN pedidoEN = pedidoCEN.MuestraPedidoPorOID(p_pedido);

                if (pedidoEN.Estado == Enumerated.BaseDatos.EstadoPedidoEnum.Pendiente)
                {
                    DirEnvioEN   dirEnvioEN   = dirEnvioCEN.MuestraDireccionPorOID(p_dirEnvio);
                    MetodoPagoEN metodoPagoEN = metodoPagoCEN.MuestraMetodoPagoPorOID(p_metodoPago);

                    pedidoCEN.AddDirEnvio(p_pedido, dirEnvioEN.Id);
                    pedidoCEN.AddMetodoPago(p_pedido, metodoPagoEN.Id);
                    pedidoEN.Estado = Enumerated.BaseDatos.EstadoPedidoEnum.Pagado;
                    pedidoCAD.Modify(pedidoEN);

                    double precioTotal  = 0;
                    double totalIVA     = 0;
                    double precioSinIVA = 0;

                    foreach (LineaPedidoEN lineaPedidoEN in pedidoEN.LineaPedido)
                    {
                        ProductoEN productoEN = lineaPedidoEN.Producto;
                        precioTotal = precioTotal + (productoEN.Precio * lineaPedidoEN.Cantidad);
                    }

                    totalIVA     = precioTotal * 0.21;
                    precioSinIVA = precioTotal - totalIVA;

                    facturaCEN.New_(precioTotal, p_pedido, totalIVA, precioSinIVA, DateTime.Now);
                }

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


            /*PROTECTED REGION END*/
        }