Exemplo n.º 1
0
        public List <PedidoItem> PedidoVerificarStock(int idPedido)
        {
            string sql = @" update pip
                            set pip.StockDisponible = case  when    pip.Cantidad = 0                        then null
			                                                when    pip.Cantidad > 0
                                                                and (b.Stock - b.Reservado) <= 0			then 0
			                                                when (b.Stock - b.Reservado) >= pip.Cantidad	then pip.Cantidad  
			                                                when	(b.Stock - b.Reservado) > 0 
				                                                and (b.Stock - b.Reservado) < pip.Cantidad	then pip.Cantidad - (pip.Cantidad - (b.Stock - b.Reservado))
		                                                end 
                            from tp_PedidoItemProducto		pip	
	                            inner join tp_PedidoItems	a	on pip.IdPedidoItem = a.IdPedidoItem 
                                inner join tp_ProductoStock	b	on pip.IdProductoStock = b.IdProductoStock
                            where IdPedido = " + idPedido + "; ";

            this.ActualizarSQL(sql);

            ISession session = NHibernateSessionSingleton.GetSession();

            sql = @" select	* from tp_PedidoItems where IdPedido = :idPedido; ";

            IQuery query1 = session.CreateSQLQuery(sql).AddEntity(typeof(PedidoItem));

            query1.SetParameter("idPedido", idPedido);
            List <PedidoItem> listItems = query1.List <PedidoItem>().ToList <PedidoItem>();

            return(listItems);
        }
Exemplo n.º 2
0
        public void Eliminar(T value)
        {
            ITransaction tx = null;

            try
            {
                session = NHibernateSessionSingleton.GetSession();
                tx      = session.BeginTransaction();
                session.Delete(value);
                //session.Flush();
                tx.Commit();
            }
            catch
            {
                if (tx != null)
                {
                    tx.Rollback();
                }
                throw;
            }
            finally
            {
                NHibernateSessionSingleton.CloseSession();
            }
        }
Exemplo n.º 3
0
        public List <Cliente> BuscarClientes(string buscar)
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = @" SELECT c.* 
                            FROM tp_clientes c";

            if (buscar.Trim().Length > 0)
            {
                buscar = string.Format("%{0}%", buscar);
                sql   += @" WHERE     (STR(RTRIM(LTRIM(c.IdCliente))) LIKE :buscar)  
                                OR  (c.Email LIKE :buscar)
		                        OR	(c.Nombre LIKE :buscar)
		                        OR	(c.Apellido LIKE :buscar)
		                        OR	(c.IdentificacionTributaria LIKE :buscar)
		                        OR	(c.RazonSocial LIKE :buscar)
		                        OR	(c.NombreFantasia LIKE :buscar) "            ;
            }


            IQuery query = session.CreateSQLQuery(sql).AddEntity(typeof(Cliente));

            if (buscar.Trim().Length > 0)
            {
                query.SetParameter("buscar", buscar);
            }

            return(query.List <Cliente>().ToList <Cliente>());
        }
Exemplo n.º 4
0
        public T Obtener(object id)
        {
            session = NHibernateSessionSingleton.GetSession();
            T returnVal = session.Get <T>(id);

            return(returnVal);
        }
Exemplo n.º 5
0
        public void Actualizar(T value)
        {
            session = NHibernateSessionSingleton.GetSession();

            using (ITransaction tx = session.BeginTransaction())
            {
                try
                {
                    session.SaveOrUpdate(value);
                    //session.Flush();
                    tx.Commit();
                }
                catch
                {
                    if (tx != null)
                    {
                        tx.Rollback();
                    }
                    throw;
                }
                finally
                {
                    NHibernateSessionSingleton.CloseSession();
                }
            }
        }
Exemplo n.º 6
0
        public void ActualizarSQL(string sqlUpdate)
        {
            ITransaction tx = null;

            try
            {
                session = NHibernateSessionSingleton.GetSession();
                tx      = session.BeginTransaction();
                int updatedEntities = session.CreateSQLQuery(sqlUpdate).ExecuteUpdate();
                //session.Flush();
                tx.Commit();
            }
            catch
            {
                if (tx != null)
                {
                    tx.Rollback();
                }
                throw;
            }
            finally
            {
                NHibernateSessionSingleton.CloseSession();
            }
        }
Exemplo n.º 7
0
        public T Obtener(ICriterion expresion)
        {
            session = NHibernateSessionSingleton.GetSession();
            ICriteria criteria = session.CreateCriteria(typeof(T)).
                                 Add(expresion);

            return(criteria.UniqueResult <T>());
        }
Exemplo n.º 8
0
        public IList <ListadoCtaCte> ObtenerResumenSaldosCtaCte()
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            IQuery query = session.GetNamedQuery("getResumenCtaCte");

            return(query.List <ListadoCtaCte>());
        }
Exemplo n.º 9
0
 public IList <T> ObtenerTodos(ICriterion expresion)
 {
     session = NHibernateSessionSingleton.GetSession();
     try
     {
         ICriteria criteria = session.CreateCriteria(typeof(T)).Add(expresion);
         return(criteria.List <T>());
     }
     catch
     {
         throw;
     }
 }
Exemplo n.º 10
0
        public int ObtenerProximoNumero(int idTipoComprobante)
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = string.Format(@" select IsNull(Max(Numero), 0)+1 as Numero 
                                        from  tp_DocumentosVenta 
                                        where IdTipo = {0} ", idTipoComprobante.ToString());;

            IQuery query = session.CreateSQLQuery(sql);

            int numero = query.UniqueResult <int>();

            return(numero);
        }
Exemplo n.º 11
0
 public IList <T> ObtenerTodos()
 {
     session = NHibernateSessionSingleton.GetSession();
     try
     {
         ICriteria criteria = session.CreateCriteria(typeof(T));
         return(criteria.List <T>());
     }
     catch
     {
         //session.Flush();
         throw;
     }
 }
Exemplo n.º 12
0
        public decimal ObtenerSaldoInicialCtaCte(int idCliente, DateTime fecha)
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = @" select isnull(sum(case when tc.EsDebe = 1 then v.Total else v.Total *-1 end), 0) as SaldoInicial
                            from tp_DocumentosVenta v inner join tp_VentaTiposComprobante tc on v.IdTipo = tc.IdVentaTipoComprobante
                            where v.Anulado = 0	and v.IdCliente = :idCliente and v.Fecha < :fecha";

            IQuery query = session.CreateSQLQuery(sql);

            query.SetParameter("idCliente", idCliente);
            query.SetParameter("fecha", fecha);

            return(query.UniqueResult <decimal>());
        }
Exemplo n.º 13
0
        public List <Producto> ObtenerProductos(int idSubcategoria)
        {
            ISession  session  = NHibernateSessionSingleton.GetSession();
            ICriteria criteria = session.CreateCriteria(typeof(Producto));

            criteria.Add(Expression.Eq("Vigente", true));

            if (idSubcategoria != -1)
            {
                criteria.Add(Expression.Eq("Subcategoria.Id", idSubcategoria));
            }

            criteria.AddOrder(new Order("Codigo", true));

            return(criteria.List <Producto>().ToList <Producto>());
        }
Exemplo n.º 14
0
        public List <ProductoStock> ObtenerProductoStockMayorista(int codigo)
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = @" SELECT * 
                            FROM tp_productostock 
                            WHERE IdProducto IN (SELECT IdProducto FROM tp_Productos WHERE Codigo = :codigo)
                            ORDER BY IdProducto DESC ";

            IQuery query = session.CreateSQLQuery(sql).AddEntity(typeof(ProductoStock));

            query.SetParameter("codigo", codigo);

            List <ProductoStock> list = query.List <ProductoStock>().ToList <ProductoStock>();

            return(list);
        }
Exemplo n.º 15
0
        public void Sincronizar()
        {
            ITransaction tx = null;

            try
            {
                session = NHibernateSessionSingleton.GetSession();
                session.Flush();
            }
            catch
            {
                throw;
            }
            finally
            {
                NHibernateSessionSingleton.CloseSession();
            }
        }
Exemplo n.º 16
0
        public Pedido ObtenerUltimoPedido()
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = @" SELECT * 
                            FROM tp_pedidos
                            WHERE Numero IN (SELECT Max(Numero) as Numero FROM tp_pedidos)
                            ORDER BY IdPedido DESC ";

            IQuery query = session.CreateSQLQuery(sql).AddEntity(typeof(Pedido));

            List <Pedido> list       = query.List <Pedido>().ToList <Pedido>();
            Pedido        prodReturn = null;

            if (list != null && list.Count > 0)
            {
                prodReturn = list[0];
            }

            return(prodReturn);
        }
Exemplo n.º 17
0
        public Producto ObtenerUltimoProducto()
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = @" SELECT * 
                            FROM tp_productos
                            WHERE Codigo IN (SELECT Max(Codigo) as Codigo FROM tp_productos WHERE StockPropio=1)
                            ORDER BY IdProducto DESC ";

            IQuery query = session.CreateSQLQuery(sql).AddEntity(typeof(Producto));

            List <Producto> list       = query.List <Producto>().ToList <Producto>();
            Producto        prodReturn = null;

            if (list != null && list.Count > 0)
            {
                prodReturn = list[0];
            }

            return(prodReturn);
        }
Exemplo n.º 18
0
        public Pedido ObtenerPedidoClienteIngresado(int idCliente)
        {
            Pedido item = null;

            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = @" SELECT * FROM tp_pedidos 
                            WHERE IdCliente = :idCliente AND IdEstado = 1 
                            ORDER BY IdPedido DESC;";

            IQuery query = session.CreateSQLQuery(sql).AddEntity(typeof(Pedido));

            query.SetParameter("idCliente", idCliente);

            List <Pedido> listItems = query.List <Pedido>().ToList <Pedido>();

            if (listItems.Count > 0)
            {
                item = listItems[0];
            }

            return(item);
        }
Exemplo n.º 19
0
        public Producto ObtenerProductoMayorista(int codigo)
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = @" SELECT * 
                            FROM tp_productos
                            WHERE StockPropio = 0 AND Codigo = :codigo
                            ORDER BY IdProducto DESC ";

            IQuery query = session.CreateSQLQuery(sql).AddEntity(typeof(Producto));

            query.SetParameter("codigo", codigo);

            List <Producto> list       = query.List <Producto>().ToList <Producto>();
            Producto        prodReturn = null;

            if (list != null && list.Count > 0)
            {
                prodReturn = list[0];
            }

            return(prodReturn);
        }
Exemplo n.º 20
0
        public PedidoItem ObtenerItemPorProducto(int idPedido, int codigo)
        {
            PedidoItem item = null;

            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = @" SELECT * FROM tp_pedidoitems 
                            WHERE   IdPedido = :idPedido 
                                AND IdProducto in (SELECT IdProducto FROM tp_productos WHERE Codigo = :codigo)";

            IQuery query = session.CreateSQLQuery(sql).AddEntity(typeof(PedidoItem));

            query.SetParameter("idPedido", idPedido);
            query.SetParameter("codigo", codigo);

            List <PedidoItem> listItems = query.List <PedidoItem>().ToList <PedidoItem>();

            if (listItems.Count > 0)
            {
                item = listItems[0];
            }

            return(item);
        }
Exemplo n.º 21
0
        public PedidoList ObtenerPedidos(List <Estado> estados, int idCliente, DateTime?fechaDesde, DateTime?fechaHasta, int numeroPagina, int cantidadRegistros, bool ordenarAscendente)
        {
            ISession session = NHibernateSessionSingleton.GetSession();


            ICriteria criteriaTotalFilas = session.CreateCriteria(typeof(Pedido));

            criteriaTotalFilas.Add(Expression.Gt("CantidadItems", 0));

            if (estados.Count > 0)
            {
                criteriaTotalFilas.Add(Expression.In("Estado", estados));
            }

            if (idCliente > -1)
            {
                criteriaTotalFilas.Add(Expression.Eq("Cliente.Id", idCliente));
            }

            if (fechaDesde.HasValue && fechaHasta.HasValue)
            {
                criteriaTotalFilas.Add(Expression.Between("Fecha", fechaDesde, fechaHasta.Value.AddDays(1)));
            }
            else
            {
                if (fechaDesde.HasValue)
                {
                    criteriaTotalFilas.Add(Expression.Between("Fecha", fechaDesde, DateTime.Now.AddDays(1)));
                }
                if (fechaHasta.HasValue)
                {
                    criteriaTotalFilas.Add(Expression.Between("Fecha", DateTime.MinValue, fechaHasta.Value.AddDays(1)));
                }
            }


            var total = criteriaTotalFilas.SetProjection(Projections.RowCount()).FutureValue <Int32>();

            ICriteria criteria = session.CreateCriteria(typeof(Pedido));

            criteria.Add(Expression.Gt("CantidadItems", 0));

            if (estados.Count > 0)
            {
                criteria.Add(Expression.In("Estado", estados));
            }

            if (idCliente > -1)
            {
                criteria.Add(Expression.Eq("Cliente.Id", idCliente));
            }

            if (fechaDesde.HasValue && fechaHasta.HasValue)
            {
                criteria.Add(Expression.Between("Fecha", fechaDesde, fechaHasta.Value.AddDays(1)));
            }
            else
            {
                if (fechaDesde.HasValue)
                {
                    criteria.Add(Expression.Between("Fecha", fechaDesde, DateTime.Now.AddDays(1)));
                }
                if (fechaHasta.HasValue)
                {
                    criteria.Add(Expression.Between("Fecha", DateTime.MinValue, fechaHasta.Value.AddDays(1)));
                }
            }

            if (numeroPagina > -1 && cantidadRegistros > -1)
            {
                criteria.SetMaxResults(cantidadRegistros);
                criteria.SetFirstResult((numeroPagina - 1) * cantidadRegistros);
            }

            criteria.AddOrder(new Order("Numero", ordenarAscendente));

            PedidoList listReturn = new PedidoList();

            listReturn.TotalFilas = total.Value;
            listReturn.Pedidos    = criteria.List <Pedido>().ToList <Pedido>();
            return(listReturn);
        }
Exemplo n.º 22
0
        public DocumentoVentaList ListarVentas(int numeroPagina, int cantidadRegistros, DateTime?fechaDesde, DateTime?fechaHasta, int?idUsuario, int?idCliente, int?tipoListado)
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            ICriteria criteriaTotalFilas = session.CreateCriteria(typeof(DocumentoVenta));

            if (fechaDesde.HasValue && fechaHasta.HasValue)
            {
                criteriaTotalFilas.Add(Expression.Between("Fecha", fechaDesde.Value, fechaHasta.Value));
            }

            if (idUsuario.HasValue && idUsuario.Value > 0)
            {
                criteriaTotalFilas.Add(Expression.Eq("Usuario.Id", idUsuario));
            }

            if (idCliente.HasValue && idCliente.Value > 0)
            {
                criteriaTotalFilas.Add(Expression.Eq("Cliente.Id", idCliente));
            }


            if (tipoListado.HasValue && tipoListado.Value == 3)
            {
                //Comprobantes Anulados
                criteriaTotalFilas.Add(Expression.Eq("Anulado", true));
            }
            else
            {
                //para el resto de los listados siempre se excluyen los anulados
                criteriaTotalFilas.Add(Expression.Eq("Anulado", false));
            }

            decimal valorPendiente = 0;

            if (tipoListado.HasValue)
            {
                switch (tipoListado.Value)
                {
                case 1:
                    //Comprobantes Pendientes
                    criteriaTotalFilas.Add(Expression.Gt("Pendiente", valorPendiente));
                    break;

                case 2:
                    //Listado de Cobranzas
                    criteriaTotalFilas.Add(Expression.Gt("TipoComprobante.Id", (int)TIPOS_COMPROBANTE.RECIBO_));
                    break;
                }
            }

            var total = criteriaTotalFilas.SetProjection(Projections.RowCount()).FutureValue <int>();


            ICriteria criteria = session.CreateCriteria(typeof(DocumentoVenta));

            if (fechaDesde.HasValue && fechaHasta.HasValue)
            {
                criteria.Add(Expression.Between("Fecha", fechaDesde.Value, fechaHasta.Value));
            }

            if (idUsuario.HasValue && idUsuario.Value > 0)
            {
                criteria.Add(Expression.Eq("Usuario.Id", idUsuario));
            }

            if (idCliente.HasValue && idCliente.Value > 0)
            {
                criteria.Add(Expression.Eq("Cliente.Id", idCliente));
            }

            if (tipoListado.HasValue && tipoListado.Value == 3)
            {
                //Comprobantes Anulados
                criteria.Add(Expression.Eq("Anulado", true));
            }
            else
            {
                //para el resto de los listados siempre se excluyen los anulados
                criteria.Add(Expression.Eq("Anulado", false));
            }

            if (tipoListado.HasValue)
            {
                switch (tipoListado.Value)
                {
                case 1:
                    //Comprobantes Pendientes
                    criteria.Add(Expression.Gt("Pendiente", valorPendiente));
                    break;

                case 2:
                    //Listado de Cobranzas
                    criteria.Add(Expression.Gt("TipoComprobante.Id", (int)TIPOS_COMPROBANTE.RECIBO_));
                    break;
                }
            }

            if (numeroPagina > -1 && cantidadRegistros > -1)
            {
                criteria.SetMaxResults(cantidadRegistros);
                criteria.SetFirstResult((numeroPagina - 1) * cantidadRegistros);
            }

            criteria.AddOrder(new Order("Fecha", true));

            DocumentoVentaList listReturn = new DocumentoVentaList();

            listReturn.TotalFilas      = total.Value.ConvertirInt();
            listReturn.DocumentosVenta = criteria.List <DocumentoVenta>().ToList <DocumentoVenta>();
            return(listReturn);
        }
Exemplo n.º 23
0
        public List <Producto> BuscarProductos(string buscar, bool conStock, bool paginar, int numeroPagina, int cantidadRegistros)
        {
            ISession session = NHibernateSessionSingleton.GetSession();

            string sql = @" SELECT TOP 100 ROW_NUMBER() OVER (ORDER BY P.IdProducto ASC) AS NroFila, p.* 
                            INTO #tempData 
                            FROM tp_productos p 
	                            inner join tp_subcategorias s on p.IdSubcategoria = s.IdSubcategoria
	                            inner join tp_categorias c on s.IdCategoria = c.IdCategoria
	                            inner join tp_tipos t on c.IdTipo = t.IdTipo
	                            inner join tp_listasprecio l on p.IdListaPrecio = l.idListaPrecio "    ;

            if (conStock)
            {
                sql += " inner join (SELECT IdProducto, SUM(Stock) as StockReal, SUM(Reservado) as Reservado FROM tp_ProductoStock GROUP BY IdProducto) ps on p.IdProducto = ps.IdProducto ";
            }

            if (buscar.Trim().Length > 0)
            {
                buscar = string.Format("%{0}%", buscar);
                sql   += @" WHERE    ((convert(varchar,p.Codigo) LIKE :buscar) 
			                    OR (p.Descripcion LIKE :buscar) 
			                    OR (s.Descripcion LIKE :buscar) 
			                    OR (c.Descripcion LIKE :buscar) 
			                    OR (t.Descripcion LIKE :buscar) 
			                    OR (l.Codigo LIKE :buscar)) "            ;
            }

            if (conStock)
            {
                sql += " AND ((ps.StockReal - ps.Reservado) > 0) ";
            }

            if (paginar)
            {
                sql += @"   SELECT * 
	                        FROM #tempData
	                        WHERE (NroFila > ((:cantidadRegistros * :numeroPagina) - :cantidadRegistros))
			                  AND (NroFila <= (:cantidadRegistros * :numeroPagina))
                    DROP TABLE #tempData";
            }
            else
            {
                sql += @"   SELECT * FROM #tempData ORDER BY Codigo 
                            DROP TABLE #tempData";
            }

            IQuery query = session.CreateSQLQuery(sql).AddEntity(typeof(Producto));

            if (buscar.Trim().Length > 0)
            {
                query.SetParameter("buscar", buscar);
            }

            if (paginar)
            {
                query.SetParameter("numeroPagina", numeroPagina);
                query.SetParameter("cantidadRegistros", cantidadRegistros);
            }

            return(query.List <Producto>().ToList <Producto>());
        }