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); }
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(); } }
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>()); }
public T Obtener(object id) { session = NHibernateSessionSingleton.GetSession(); T returnVal = session.Get <T>(id); return(returnVal); }
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(); } } }
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(); } }
public T Obtener(ICriterion expresion) { session = NHibernateSessionSingleton.GetSession(); ICriteria criteria = session.CreateCriteria(typeof(T)). Add(expresion); return(criteria.UniqueResult <T>()); }
public IList <ListadoCtaCte> ObtenerResumenSaldosCtaCte() { ISession session = NHibernateSessionSingleton.GetSession(); IQuery query = session.GetNamedQuery("getResumenCtaCte"); return(query.List <ListadoCtaCte>()); }
public IList <T> ObtenerTodos(ICriterion expresion) { session = NHibernateSessionSingleton.GetSession(); try { ICriteria criteria = session.CreateCriteria(typeof(T)).Add(expresion); return(criteria.List <T>()); } catch { throw; } }
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); }
public IList <T> ObtenerTodos() { session = NHibernateSessionSingleton.GetSession(); try { ICriteria criteria = session.CreateCriteria(typeof(T)); return(criteria.List <T>()); } catch { //session.Flush(); throw; } }
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>()); }
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>()); }
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); }
public void Sincronizar() { ITransaction tx = null; try { session = NHibernateSessionSingleton.GetSession(); session.Flush(); } catch { throw; } finally { NHibernateSessionSingleton.CloseSession(); } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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>()); }