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