public FacturaAlmacen actualiza(FacturaAlmacen otraFactura, Usuario usuario) throws NoEstaAbiertaException { FacturaAlmacen factura = (FacturaAlmacen) currentSession().get(FacturaAlmacen.class, otraFactura.getId()); switch (factura.getEstatus().getNombre()) { case Constantes.ABIERTA: Session session = currentSession(); factura.setVersion(otraFactura.getVersion()); factura.setFecha(otraFactura.getFecha()); factura.setComentarios(otraFactura.getComentarios()); factura.setIva(otraFactura.getIva()); factura.setTotal(otraFactura.getTotal()); factura.setCliente(otraFactura.getCliente()); Date fecha = new Date(); factura.setFechaModificacion(fecha); session.update(factura); audita(factura, usuario, Constantes.ACTUALIZAR, fecha); session.flush(); return factura; default: throw new NoEstaAbiertaException("No se puede actualizar una factura que no este abierta"); } }
public FacturaAlmacen crea(FacturaAlmacen factura, Usuario usuario) { Session session = currentSession(); if (usuario != null) { factura.setAlmacen(usuario.getAlmacen()); } Query query = currentSession().createQuery("select e from Estatus e where e.nombre = :nombre"); query.setString("nombre", Constantes.ABIERTA); Estatus estatus = (Estatus) query.uniqueResult(); factura.setEstatus(estatus); factura.setFolio(getFolioTemporal(factura.getAlmacen())); Date fecha = new Date(); factura.setFechaCreacion(fecha); factura.setFechaModificacion(fecha); session.save(factura); audita(factura, usuario, Constantes.CREAR, fecha); session.flush(); return factura; }