Beispiel #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();
  }