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"); } }
private void audita(FacturaAlmacen factura, Usuario usuario, String actividad, Date fecha) { XFacturaAlmacen xfactura = new XFacturaAlmacen(); BeanUtils.copyProperties(factura, xfactura); xfactura.setId(null); xfactura.setFacturaAlmacenId(factura.getId()); xfactura.setAlmacenId(factura.getAlmacen().getId()); xfactura.setClienteId(factura.getCliente().getId()); xfactura.setEstatusId(factura.getEstatus().getId()); xfactura.setFechaCreacion(fecha); xfactura.setActividad(actividad); xfactura.setCreador((usuario != null) ? usuario.getUsername() : "sistema"); currentSession().save(xfactura); }