public static final StringWithId createItem(
      Configuration conf, SQLTable primaryTable, final SQLRowValues rs, List<SQLField> fields) {
    final String desc;
    if (rs.getID() == primaryTable.getUndefinedID()) desc = "?";
    else
      desc =
          CollectionUtils.join(
              getShowAs(conf).expandGroupBy(fields),
              " ◄ ",
              new ITransformer<Tuple2<Path, List<FieldPath>>, Object>() {
                public Object transformChecked(Tuple2<Path, List<FieldPath>> ancestorFields) {
                  final List<String> filtered =
                      CollectionUtils.transformAndFilter(
                          ancestorFields.get1(),
                          new ITransformer<FieldPath, String>() {
                            // no need to keep this Transformer in an attribute
                            // even when creating one per line it's the same speed
                            public String transformChecked(FieldPath input) {
                              return input.getString(rs);
                            }
                          },
                          IPredicate.notNullPredicate(),
                          new ArrayList<String>());
                  return CollectionUtils.join(filtered, " ");
                }
              });
    // don't store the whole SQLRowValues to save some memory
    final StringWithId res = new StringWithId(rs.getID(), desc);

    return res;
  }
예제 #2
0
  // Pointe la ligne passée en parametre
  private void actionDelettrage(int[] rowIndex) {

    List<SQLRow> rowsSelected = new ArrayList<SQLRow>(rowIndex.length);

    long solde = 0;
    for (int i = 0; i < rowIndex.length; i++) {
      int id = this.ecriturePanel.getListe().idFromIndex(rowIndex[i]);
      SQLRow row = this.tableEcr.getRow(id);
      rowsSelected.add(row);

      solde += ((Long) row.getObject("DEBIT")).longValue();
      solde -= ((Long) row.getObject("CREDIT")).longValue();
    }

    if (solde == 0) {
      for (SQLRow row : rowsSelected) {

        SQLRowValues rowVals = new SQLRowValues(this.tableEcr);

        // Dépointage
        if (row.getString("LETTRAGE").trim().length() != 0) {

          rowVals.put("LETTRAGE", "");
          rowVals.put("DATE_LETTRAGE", null);
          try {
            rowVals.update(row.getID());
          } catch (SQLException e1) {
            e1.printStackTrace();
          }
        }
      }
    }
    this.model.updateTotauxCompte();
  }
예제 #3
0
 @Override
 public void update(SQLRowValues vals) {
   vals.put(
       getFields().get(1).getName(),
       this.isEmpty() ? SQLRowValues.SQL_DEFAULT : this.getWrapper().getValue().getName());
   vals.put(
       getFields().get(0).getName(),
       this.isEmpty() ? SQLRowValues.SQL_DEFAULT : this.getWrapper().getValue().getCodepostal());
 }
예제 #4
0
  @Override
  public int insert(final SQLRow order) {

    final int idDevis;
    // on verifie qu'un devis du meme numero n'a pas été inséré entre temps
    if (this.numeroUniqueDevis.checkValidation()) {

      idDevis = super.insert(order);
      this.table.updateField("ID_DEVIS", idDevis);
      // Création des articles
      this.table.createArticle(idDevis, getElement());

      // generation du document
      try {
        final DevisXmlSheet sheet = new DevisXmlSheet(getTable().getRow(idDevis));
        sheet.createDocumentAsynchronous();
        sheet.showPrintAndExportAsynchronous(
            DevisSQLComponent.this.panelOO.isVisualisationSelected(),
            DevisSQLComponent.this.panelOO.isImpressionSelected(),
            true);
      } catch (Exception e) {
        ExceptionHandler.handle("Impossible de créer le devis", e);
      }

      // incrémentation du numéro auto
      if (NumerotationAutoSQLElement.getNextNumero(DevisSQLElement.class)
          .equalsIgnoreCase(this.numeroUniqueDevis.getText().trim())) {
        final SQLRowValues rowVals = new SQLRowValues(this.tableNum);
        int val =
            this.tableNum
                .getRow(2)
                .getInt(NumerotationAutoSQLElement.getLabelNumberFor(DevisSQLElement.class));
        val++;
        rowVals.put(
            NumerotationAutoSQLElement.getLabelNumberFor(DevisSQLElement.class), new Integer(val));
        try {
          rowVals.update(2);
        } catch (final SQLException e) {
          e.printStackTrace();
        }
      }
    } else {
      idDevis = getSelectedID();
      ExceptionHandler.handle("Impossible d'ajouter, numéro de devis existant.");
      final Object root = SwingUtilities.getRoot(this);
      if (root instanceof EditFrame) {
        final EditFrame frame = (EditFrame) root;
        frame.getPanel().setAlwaysVisible(true);
      }
    }

    return idDevis;
  }
예제 #5
0
파일: ActionDB.java 프로젝트: stephan1/my
 /**
  * copie l'integralite de la table "tableName" de la base "base" dans la nouvelle base "baseNew"
  *
  * @param base
  * @param baseNew
  * @param tableName
  */
 private static void dumpTable(DBRoot source, SQLTable newTable) {
   try {
     SQLRowValues.insertFromTable(newTable, source.getTable(newTable.getName()));
   } catch (SQLException e) {
     System.err.println("Unable to dump table " + newTable.getName());
     e.printStackTrace();
   }
 }
예제 #6
0
  @Override
  public void select(final SQLRowAccessor r) {
    if (r != null) {
      this.numeroUniqueDevis.setIdSelected(r.getID());
    }

    if (r == null || r.getIDNumber() == null) super.select(r);
    else {
      System.err.println(r);
      final SQLRowValues rVals = r.asRowValues();
      final SQLRowValues vals = new SQLRowValues(r.getTable());
      vals.load(rVals, createSet("ID_CLIENT"));
      vals.setID(rVals.getID());
      System.err.println("Select CLIENT");

      super.select(vals);
      rVals.remove("ID_CLIENT");
      super.select(rVals);
    }

    // super.select(r);
    if (r != null) {
      this.table.insertFrom("ID_DEVIS", r.getID());
      // this.radioEtat.setVisible(r.getID() > getTable().getUndefinedID());
      if (getTable().contains("SITE_DIFF"))
        setSiteEnabled(r.getBoolean("SITE_DIFF"), Type_Diff.SITE);

      if (getTable().contains("DONNEUR_DIFF"))
        setSiteEnabled(r.getBoolean("DONNEUR_DIFF"), Type_Diff.DONNEUR_ORDRE);
    }
  }
예제 #7
0
파일: ActionDB.java 프로젝트: stephan1/my
  /**
   * Check si la table posséde au moins une ligne avec un ordre different null le cas cas échéant le
   * crée
   *
   * @param base
   */
  public static void correct(SQLBase base) {
    Set<String> tableNames = base.getTableNames();
    for (String tableName : tableNames) {

      if (base.getTable(tableName).contains("ORDRE")) {
        SQLSelect select = new SQLSelect(base);
        select.addSelect("ORDRE");
        List l = base.getDataSource().execute(select.asString());
        if (l == null || l.size() == 0) {
          SQLRowValues rowVals = new SQLRowValues(base.getTable(tableName));
          rowVals.put("ORDRE", 0);
          try {
            rowVals.commit();
          } catch (SQLException e) {

            e.printStackTrace();
          }
        }
      }
    }
    // TODO Checker que toutes les tables sont dans FWK_UNDEFINED_ID
  }
예제 #8
0
  // Lettre la ligne passée en parametre
  private void actionLettrage(int[] rowIndex) {
    String codeLettre = this.codeLettrage.getText().trim();

    List<SQLRow> rowsSelected = new ArrayList<SQLRow>(rowIndex.length);

    long solde = 0;
    for (int i = 0; i < rowIndex.length; i++) {
      int id = this.ecriturePanel.getListe().idFromIndex(rowIndex[i]);
      SQLRow row = this.tableEcr.getRow(id);
      rowsSelected.add(row);

      solde += ((Long) row.getObject("DEBIT")).longValue();
      solde -= ((Long) row.getObject("CREDIT")).longValue();
    }

    if (solde == 0) {

      for (SQLRow row2 : rowsSelected) {

        SQLRowValues rowVals = new SQLRowValues(this.tableEcr);

        // Lettrage
        // On lettre ou relettre la ligne avec le code saisi
        if (codeLettre.length() > 0) {

          // Si la ligne est en brouillard on valide le mouvement associé
          if (this.boxValidEcriture.isSelected() && (!row2.getBoolean("VALIDE"))) {
            EcritureSQLElement.validationEcritures(row2.getInt("ID_MOUVEMENT"));
          }

          rowVals.put("LETTRAGE", codeLettre);
          rowVals.put("DATE_LETTRAGE", this.dateLettrage.getDate());
          try {
            rowVals.update(row2.getID());
          } catch (SQLException e1) {

            e1.printStackTrace();
          }
        }
      }
      // Mise à jour du code de lettrage
      SQLElement elt = Configuration.getInstance().getDirectory().getElement("NUMEROTATION_AUTO");
      SQLRowValues rowVals = elt.getTable().getRow(2).createEmptyUpdateRow();
      rowVals.put("CODE_LETTRAGE", codeLettre);
      try {
        rowVals.update();
      } catch (SQLException e) {
        e.printStackTrace();
      }
      this.codeLettrage.setText(NumerotationAutoSQLElement.getNextCodeLettrage());

      this.model.updateTotauxCompte();
    }
  }
예제 #9
0
  /**
   * Création d'un devis à partir d'un devis existant
   *
   * @param idDevis
   */
  public void loadDevisExistant(final int idDevis) {

    final SQLElement devis = Configuration.getInstance().getDirectory().getElement("DEVIS");
    final SQLElement devisElt =
        Configuration.getInstance().getDirectory().getElement("DEVIS_ELEMENT");

    // On duplique le devis
    if (idDevis > 1) {
      final SQLRow row = devis.getTable().getRow(idDevis);
      final SQLRowValues rowVals = new SQLRowValues(devis.getTable());
      rowVals.put("ID_CLIENT", row.getInt("ID_CLIENT"));
      rowVals.put("NUMERO", NumerotationAutoSQLElement.getNextNumero(DevisSQLElement.class));

      this.select(rowVals);
    }

    // On duplique les elements de devis
    final List<SQLRow> myListItem =
        devis.getTable().getRow(idDevis).getReferentRows(devisElt.getTable());

    if (myListItem.size() != 0) {
      this.table.getModel().clearRows();

      for (final SQLRow rowElt : myListItem) {

        final SQLRowValues rowVals = rowElt.createUpdateRow();
        rowVals.clearPrimaryKeys();
        this.table.getModel().addRow(rowVals);
        final int rowIndex = this.table.getModel().getRowCount() - 1;
        this.table.getModel().fireTableModelModified(rowIndex);
      }
    } else {
      this.table.getModel().clearRows();
    }
    this.table.getModel().fireTableDataChanged();
    this.table.repaint();
  }
  public static final SQLRowValues getGraphToFetch(
      Configuration conf, SQLTable table, List<SQLField> fieldsToFetch) {
    if (fieldsToFetch == null) return null;

    final SQLRowValues vals = new SQLRowValues(table);
    for (final SQLField f : fieldsToFetch) {
      vals.put(f.getName(), null);
    }
    // keep order field in graph (not only in graphToFetch) so that a debug column is created
    for (final Path orderP : Collections.singletonList(new Path(table))) {
      final SQLRowValues orderVals = vals.followPath(orderP);
      if (orderVals != null && orderVals.getTable().isOrdered()) {
        orderVals.put(orderVals.getTable().getOrderField().getName(), null);
      }
    }
    getShowAs(conf).expand(vals);
    return vals;
  }
  private void genereMouvement() throws IllegalArgumentException {

    SQLRow saisieRow =
        GenerationMvtSaisieVenteComptoir.saisieVCTable.getRow(this.idSaisieVenteComptoir);
    SQLRow clientRow = base.getTable("CLIENT").getRow(saisieRow.getInt("ID_CLIENT"));
    SQLRow taxeRow = base.getTable("TAXE").getRow(saisieRow.getInt("ID_TAXE"));

    // Calcul des montants
    PrixTTC prixTTC = new PrixTTC(((Long) saisieRow.getObject("MONTANT_TTC")).longValue());
    PrixHT prixHT = new PrixHT(prixTTC.calculLongHT(taxeRow.getFloat("TAUX") / 100));
    long service = ((Long) saisieRow.getObject("MONTANT_SERVICE")).longValue();

    // iniatilisation des valeurs de la map
    this.date = (Date) saisieRow.getObject("DATE");
    String string = "Vente comptoir ";
    final String rowLib = saisieRow.getObject("NOM").toString();
    if (rowLib != null && rowLib.trim().length() > 0) {
      string += rowLib.trim();
    } else {
      string += saisieRow.getForeignRow("ID_ARTICLE").getString("NOM");
    }
    this.nom = string;
    this.mEcritures.put("DATE", this.date);
    this.mEcritures.put("NOM", this.nom);
    this.mEcritures.put("ID_JOURNAL", GenerationMvtSaisieVenteComptoir.journal);
    this.mEcritures.put("ID_MOUVEMENT", new Integer(1));

    // on calcule le nouveau numero de mouvement
    if (this.idMvt == 1) {
      this.idMvt =
          getNewMouvement(
              GenerationMvtSaisieVenteComptoir.source, this.idSaisieVenteComptoir, 1, string);
      this.mEcritures.put("ID_MOUVEMENT", new Integer(this.idMvt));
    }

    // generation des ecritures + maj des totaux du compte associe

    // compte Vente
    if (service != 0) {

      int idCompteVenteService = rowPrefsCompte.getInt("ID_COMPTE_PCE_VENTE_SERVICE");
      if (idCompteVenteService <= 1) {
        try {
          idCompteVenteService = ComptePCESQLElement.getIdComptePceDefault("VentesServices");
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      this.mEcritures.put("ID_COMPTE_PCE", new Integer(idCompteVenteService));
      this.mEcritures.put("DEBIT", new Long(0));
      this.mEcritures.put("CREDIT", new Long(service));
      ajoutEcriture();

      // System.out.println("___________---> Value " + (prixHT.getValue() - service));
      if ((prixHT.getLongValue() - service) > 0) {
        int idCompteVenteProduit = rowPrefsCompte.getInt("ID_COMPTE_PCE_VENTE_PRODUIT");
        if (idCompteVenteProduit <= 1) {
          try {
            idCompteVenteProduit = ComptePCESQLElement.getIdComptePceDefault("VentesProduits");
          } catch (Exception e) {
            e.printStackTrace();
          }
        }
        this.mEcritures.put("ID_COMPTE_PCE", new Integer(idCompteVenteProduit));
        this.mEcritures.put("DEBIT", new Long(0));
        this.mEcritures.put("CREDIT", new Long(prixHT.getLongValue() - service));
        ajoutEcriture();
      }

    } else {

      int idCompteVenteProduit = rowPrefsCompte.getInt("ID_COMPTE_PCE_VENTE_PRODUIT");
      if (idCompteVenteProduit <= 1) {
        try {
          idCompteVenteProduit = ComptePCESQLElement.getIdComptePceDefault("VentesProduits");
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      this.mEcritures.put("ID_COMPTE_PCE", new Integer(idCompteVenteProduit));
      this.mEcritures.put("DEBIT", new Long(0));
      this.mEcritures.put("CREDIT", new Long(prixHT.getLongValue()));
      ajoutEcriture();
    }

    // compte TVA
    long tva = prixTTC.calculLongTVA(taxeRow.getFloat("TAUX") / 100.0);
    if (tva > 0) {
      int idCompteTVA = rowPrefsCompte.getInt("ID_COMPTE_PCE_TVA_VENTE");
      if (idCompteTVA <= 1) {
        try {
          idCompteTVA = ComptePCESQLElement.getIdComptePceDefault("TVACollectee");
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
      this.mEcritures.put("ID_COMPTE_PCE", new Integer(idCompteTVA));
      this.mEcritures.put("DEBIT", new Long(0));
      this.mEcritures.put("CREDIT", new Long(tva));
      ajoutEcriture();
    }

    // compte Clients
    int idCompteClient = clientRow.getInt("ID_COMPTE_PCE");
    if (idCompteClient <= 1) {
      idCompteClient = rowPrefsCompte.getInt("ID_COMPTE_PCE_CLIENT");
      if (idCompteClient <= 1) {
        try {
          idCompteClient = ComptePCESQLElement.getIdComptePceDefault("Clients");
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
    this.mEcritures.put("ID_COMPTE_PCE", new Integer(idCompteClient));
    this.mEcritures.put("DEBIT", new Long(prixTTC.getLongValue()));
    this.mEcritures.put("CREDIT", new Long(0));
    ajoutEcriture();

    // Règlement
    String s = "Vente comptoir ";
    final String name = saisieRow.getObject("NOM").toString();
    if (name != null && rowLib.trim().length() > 0) {
      s += name.trim();
    } else {
      s += saisieRow.getForeignRow("ID_ARTICLE").getString("NOM");
    }
    SQLRow modeRegRow = saisieRow.getForeignRow("ID_MODE_REGLEMENT");

    new GenerationReglementVenteNG(
        s, clientRow, prixTTC, this.date, modeRegRow, saisieRow, mvtTable.getRow(this.idMvt));

    // On place le nuemro de mouvement associe à la saisie
    SQLRowValues valSaisieVC = new SQLRowValues(GenerationMvtSaisieVenteComptoir.saisieVCTable);
    valSaisieVC.put("ID_MOUVEMENT", new Integer(this.idMvt));

    try {
      if (valSaisieVC.getInvalid() == null) {
        // ajout de l'ecriture
        valSaisieVC.update(this.idSaisieVenteComptoir);
      }
    } catch (SQLException e) {
      System.err.println(
          "Erreur à l'insertion dans la table " + valSaisieVC.getTable().getName() + " : " + e);
      e.printStackTrace();
    }
  }
예제 #12
0
  @Override
  protected SQLRowValues createDefaults() {
    System.err.println("Create defaults");

    setSiteEnabled(false, Type_Diff.DONNEUR_ORDRE);
    setSiteEnabled(false, Type_Diff.SITE);

    // Numero incremental auto
    final SQLRowValues rowVals = new SQLRowValues(getTable());
    rowVals.put("NUMERO", NumerotationAutoSQLElement.getNextNumero(DevisSQLElement.class));

    // User
    // final SQLSelect sel = new SQLSelect(Configuration.getInstance().getBase());
    final SQLElement eltComm = Configuration.getInstance().getDirectory().getElement("COMMERCIAL");
    final int idUser = UserManager.getInstance().getCurrentUser().getId();
    //
    // sel.addSelect(eltComm.getTable().getKey());
    // sel.setWhere(new Where(eltComm.getTable().getField("ID_USER_COMMON"), "=", idUser));
    // final List<SQLRow> rowsComm = (List<SQLRow>)
    // Configuration.getInstance().getBase().getDataSource().execute(sel.asString(), new
    // SQLRowListRSH(eltComm.getTable()));

    SQLRow rowsComm =
        SQLBackgroundTableCache.getInstance()
            .getCacheForTable(eltComm.getTable())
            .getFirstRowContains(idUser, eltComm.getTable().getField("ID_USER_COMMON"));

    if (rowsComm != null) {
      rowVals.put("ID_COMMERCIAL", rowsComm.getID());
    }
    if (getTable().getUndefinedID() == SQLRow.NONEXISTANT_ID) {
      rowVals.put("ID_ETAT_DEVIS", EtatDevisSQLElement.EN_ATTENTE);
    } else {
      SQLRowValues foreign = UndefinedRowValuesCache.getInstance().getDefaultRowValues(getTable());
      if (foreign != null && !foreign.isUndefined()) {
        rowVals.put("ID_ETAT_DEVIS", foreign.getObject("ID_ETAT_DEVIS"));
      } else {
        rowVals.put("ID_ETAT_DEVIS", EtatDevisSQLElement.EN_ATTENTE);
      }
    }
    rowVals.put("T_HT", Long.valueOf(0));
    rowVals.put("T_TVA", Long.valueOf(0));
    rowVals.put("T_SERVICE", Long.valueOf(0));
    rowVals.put("T_TTC", Long.valueOf(0));

    if (getTable().getFieldsName().contains("DATE_VALIDITE")) {
      Calendar cal = Calendar.getInstance();
      cal.add(Calendar.MONTH, 1);
      rowVals.put("DATE_VALIDITE", cal.getTime());
    }
    return rowVals;
  }