コード例 #1
0
        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*/
        }
コード例 #2
0
        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*/
        }