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; }
// 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(); }
@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()); }
@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; }
/** * 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(); } }
@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); } }
/** * 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 }
// 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(); } }
/** * 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(); } }
@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; }