Пример #1
0
  /**
   * Création ou mise à jour d'une ligne stock après la mise à jour de la date de péremption d'un
   * approvisionnement.
   *
   * @param appro l'approvisionnement avec la date à jour
   * @param oldLigneStock la ligne de stock associée à l'ancienne date de péremption
   */
  protected void updateLigneStock(final Approvisionnement appro, final LigneStock oldLigneStock) {
    // Deuxième recherche après la MAJ de la date de péremption de
    // l'appro
    final LigneStock newLineStock = this.getLigneStock(appro);

    // Si ID est null, la ligne a été créée par getLigneStock
    if (newLineStock.getId() == null) {
      // Sauvegarde de la ligne
      oldLigneStock.setDatePeremption(appro.getDatePeremption());
      this.save(oldLigneStock);
    } else {
      // Fusion avec celle qui existe déjà
      newLineStock.setQteGlobalStock(
          newLineStock.getQteGlobalStock() + oldLigneStock.getQteGlobalStock());
      newLineStock.setQteDispensationGlobal(
          newLineStock.getQteDispensationGlobal() + oldLigneStock.getQteDispensationGlobal());
      this.save(newLineStock);
      // Suppression de la ligne de stock
      this.remove(oldLigneStock);
    }
  }
Пример #2
0
 /** {@inheritDoc} */
 @Override
 public LigneStock save(final LigneStock ligneStock) {
   // Log de sauvegarde de quantité négative
   if ((ligneStock != null)
       && (ligneStock.getQteEnStock() != null)
       && (ligneStock.getQteDispensationGlobal() != null)
       && ((ligneStock.getQteEnStock() < 0) || (ligneStock.getQteDispensationGlobal() < 0))) {
     this.log.error(
         "ERREUR dans le stock (quantitites negatives) : LigneStock (id="
             + ligneStock.getId()
             + ")");
   }
   final LigneStock saved = super.save(ligneStock);
   // On ne garde pas la ligne de stock si les quantités sont à 0
   if ((saved != null)
       && (saved.getQteGlobalStock() != null)
       && (saved.getQteDispensationGlobal() != null)
       && Integer.valueOf(0).equals(saved.getQteGlobalStock())
       && Integer.valueOf(0).equals(saved.getQteDispensationGlobal())) {
     this.remove(ligneStock);
   }
   return saved;
 }