Example #1
0
        public LineaFacturaEN ReadOID(int id)
        {
            LineaFacturaEN lineaFacturaEN = null;

            lineaFacturaEN = _ILineaFacturaCAD.ReadOID(id);
            return(lineaFacturaEN);
        }
Example #2
0
        public LineaFacturaEN ReadOID(int id)
        {
            LineaFacturaEN lineaFacturaEN = null;

            try
            {
                SessionInitializeTransaction();
                lineaFacturaEN = (LineaFacturaEN)session.Get(typeof(LineaFacturaEN), id);
                SessionCommit();
            }

            catch (Exception ex) {
                SessionRollBack();
                if (ex is AppEstadioGenNHibernate.Exceptions.ModelException)
                {
                    throw ex;
                }
                throw new AppEstadioGenNHibernate.Exceptions.DataLayerException("Error in LineaFacturaCAD.", ex);
            }


            finally
            {
                SessionClose();
            }

            return(lineaFacturaEN);
        }
Example #3
0
        public void Destroy(int id)
        {
            try
            {
                SessionInitializeTransaction();
                LineaFacturaEN lineaFacturaEN = (LineaFacturaEN)session.Load(typeof(LineaFacturaEN), id);
                session.Delete(lineaFacturaEN);
                SessionCommit();
            }

            catch (Exception ex) {
                SessionRollBack();
                if (ex is AppEstadioGenNHibernate.Exceptions.ModelException)
                {
                    throw ex;
                }
                throw new AppEstadioGenNHibernate.Exceptions.DataLayerException("Error in LineaFacturaCAD.", ex);
            }


            finally
            {
                SessionClose();
            }
        }
Example #4
0
        public int New_(LineaFacturaEN lineaFactura)
        {
            try
            {
                SessionInitializeTransaction();
                if (lineaFactura.Factura != null)
                {
                    lineaFactura.Factura = (AppEstadioGenNHibernate.EN.AppEstadio.FacturaEN)session.Load(typeof(AppEstadioGenNHibernate.EN.AppEstadio.FacturaEN), lineaFactura.Factura.Id);

                    lineaFactura.Factura.LineaFactura.Add(lineaFactura);
                }

                session.Save(lineaFactura);
                SessionCommit();
            }

            catch (Exception ex) {
                SessionRollBack();
                if (ex is AppEstadioGenNHibernate.Exceptions.ModelException)
                {
                    throw ex;
                }
                throw new AppEstadioGenNHibernate.Exceptions.DataLayerException("Error in LineaFacturaCAD.", ex);
            }


            finally
            {
                SessionClose();
            }

            return(lineaFactura.Id);
        }
Example #5
0
        public void Modify(int p_LineaFactura_OID)
        {
            LineaFacturaEN lineaFacturaEN = null;

            //Initialized LineaFacturaEN
            lineaFacturaEN    = new LineaFacturaEN();
            lineaFacturaEN.Id = p_LineaFactura_OID;
            //Call to LineaFacturaCAD

            _ILineaFacturaCAD.Modify(lineaFacturaEN);
        }
Example #6
0
        public int New_(int p_factura)
        {
            LineaFacturaEN lineaFacturaEN = null;
            int            oid;

            //Initialized LineaFacturaEN
            lineaFacturaEN = new LineaFacturaEN();

            if (p_factura != -1)
            {
                lineaFacturaEN.Factura    = new AppEstadioGenNHibernate.EN.AppEstadio.FacturaEN();
                lineaFacturaEN.Factura.Id = p_factura;
            }

            //Call to LineaFacturaCAD

            oid = _ILineaFacturaCAD.New_(lineaFacturaEN);
            return(oid);
        }
Example #7
0
        // Decrementa el stock, genera factura y devuelve su id
        public int EnviarPedidoGenerarFactura(int idPedido)
        {
            int resul = -1;

            try
            {
                SessionInitializeTransaction();

                bool correcto = true;

                // Recoger el pedido
                PedidoCAD pedidoCAD = new PedidoCAD(session);
                PedidoEN  pedidoEN  = new PedidoEN();
                pedidoEN = pedidoCAD.ReadOID(idPedido);
                ProductoCAD productoCAD = new ProductoCAD(session);
                ProductoCEN productoCEN = new ProductoCEN(productoCAD);

                IList <LineaFacturaEN> lineasFactura = new List <LineaFacturaEN>();

                foreach (LineaPedidoEN linea in pedidoEN.LineaPedido)
                {
                    ProductoEN producto = linea.Producto;
                    productoCEN.DecrementarStock(producto.Id, linea.Unidades);

                    IList <int> idArticulos = new List <int>();

                    if (linea.Producto.Stock < linea.Unidades)                     // No hay stock, no se envia el pedido
                    {
                        correcto = false;
                        break;
                    }
                    for (int i = 0; correcto && i < linea.Unidades; i++)
                    {
                        idArticulos.Add(producto.Articulo[i].Id);
                    }

                    ArticuloCAD aCAD = new ArticuloCAD(session);
                    ArticuloCEN aCEN = new ArticuloCEN(aCAD);

                    for (int i = 0; i < idArticulos.Count; i++)
                    {
                        aCEN.Destroy(idArticulos[i]);
                    }


                    // Creamos las lineas de factura para esta linea de pedido
                    for (int i = 0; i < linea.Unidades; i++)
                    {
                        LineaFacturaEN lfEN = new LineaFacturaEN();
                        lfEN.Articulo = producto.Articulo[i];
                        lineasFactura.Add(lfEN);                         // Luego el new de factura creara las lineas
                    }
                }

                // Generar la factura
                FacturaCAD facturaCAD = new FacturaCAD(session);
                FacturaCEN facturaCEN = new FacturaCEN(facturaCAD);
                FacturaEN  facturaEN  = new FacturaEN();

                facturaEN.Fecha       = DateTime.Now;
                facturaEN.PrecioTotal = pedidoEN.Precio;
                facturaEN.Pedido      = pedidoEN;

                facturaEN.Id = facturaCEN.New_(pedidoEN.Id, facturaEN.PrecioTotal, lineasFactura, facturaEN.Fecha);


                if (correcto)
                {
                    resul = 1;
                }


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

            return(resul);
        }