示例#1
0
 private String getFolio(Almacen almacen) {
   Query query =
       currentSession()
           .createQuery(
               "select f from Folio f where f.nombre = :nombre and f.almacen.id = :almacenId");
   query.setString("nombre", "FACTURA");
   query.setLong("almacenId", almacen.getId());
   query.setLockOptions(LockOptions.UPGRADE);
   Folio folio = (Folio) query.uniqueResult();
   if (folio == null) {
     folio = new Folio("FACTURA");
     folio.setAlmacen(almacen);
     currentSession().save(folio);
     return getFolio(almacen);
   }
   folio.setValor(folio.getValor() + 1);
   java.text.NumberFormat nf = java.text.DecimalFormat.getInstance();
   nf.setGroupingUsed(false);
   nf.setMinimumIntegerDigits(9);
   nf.setMaximumIntegerDigits(9);
   nf.setMaximumFractionDigits(0);
   StringBuilder sb = new StringBuilder();
   sb.append("FA-");
   sb.append(almacen.getEmpresa().getOrganizacion().getCodigo());
   sb.append(almacen.getEmpresa().getCodigo());
   sb.append(almacen.getCodigo());
   sb.append(nf.format(folio.getValor()));
   return sb.toString();
 }
  @Transactional
  @RequestMapping(value = "/actualiza", method = RequestMethod.POST)
  public String actualiza(
      HttpServletRequest request,
      @Valid Almacen almacen,
      BindingResult bindingResult,
      Errors errors,
      Model modelo,
      RedirectAttributes redirectAttributes) {
    if (bindingResult.hasErrors()) {
      log.error("Hubo algun error en la forma, regresando");
      for (ObjectError error : bindingResult.getAllErrors()) {
        log.debug("Error: {}", error);
      }
      return "inventario/almacen/edita";
    }

    try {
      Usuario usuario = ambiente.obtieneUsuario();
      almacen = almacenDao.actualiza(almacen, usuario);

      ambiente.actualizaSesion(request, usuario);
    } catch (ConstraintViolationException e) {
      log.error("No se pudo crear la almacen", e);
      errors.rejectValue("nombre", "campo.duplicado.message", new String[] {"nombre"}, null);
      return "inventario/almacen/edita";
    }

    redirectAttributes.addFlashAttribute("message", "almacen.actualizado.message");
    redirectAttributes.addFlashAttribute("messageAttrs", new String[] {almacen.getNombre()});

    return "redirect:/inventario/almacen/ver/" + almacen.getId();
  }
示例#3
0
 @Override
 public String elimina(Long id, Long empresaId) throws UltimoException {
   Criteria criteria = currentSession().createCriteria(Almacen.class);
   criteria.createCriteria("empresa").add(Restrictions.idEq(empresaId));
   criteria.setProjection(Projections.rowCount());
   Long cantidad = (Long) criteria.list().get(0);
   if (cantidad > 1) {
     Almacen almacen = obtiene(id);
     String nombre = almacen.getNombre();
     currentSession().delete(almacen);
     return nombre;
   } else {
     throw new UltimoException("No se puede eliminar porque es el ultimo");
   }
 }
示例#4
0
  @Override
  public Almacen actualiza(Almacen almacen, Usuario usuario) {
    Session session = currentSession();
    if (usuario != null) {
      almacen.setEmpresa(usuario.getEmpresa());
    }
    try {
      // Actualiza la almacen
      log.debug("Actualizando almacen");
      session.update(almacen);
      session.flush();

    } catch (NonUniqueObjectException e) {
      try {
        session.merge(almacen);
      } catch (Exception ex) {
        log.error("No se pudo actualizar la almacen", ex);
        throw new RuntimeException("No se pudo actualizar la almacen", ex);
      }
    }
    if (usuario != null) {
      usuario.setAlmacen(almacen);
    }
    session.flush();
    return almacen;
  }
示例#5
0
  @Override
  public Almacen crea(Almacen almacen, Usuario usuario) {
    Session session = currentSession();
    if (usuario != null) {
      almacen.setEmpresa(usuario.getEmpresa());
    }
    session.save(almacen);
    if (usuario != null) {
      usuario.setAlmacen(almacen);
      session.save(usuario);
    }
    TipoProducto tipoProducto = new TipoProducto("TIPO1", "TIPO1", almacen);
    session.save(tipoProducto);

    reporteDao.inicializaAlmacen(almacen);

    session.flush();
    return almacen;
  }