Dépôt officiel du code source de l'ERP OpenConcerto
Rev 149 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 2011 OpenConcerto, by ILM Informatique. All rights reserved.
*
* The contents of this file are subject to the terms of the GNU General Public License Version 3
* only ("GPL"). You may not use this file except in compliance with the License. You can obtain a
* copy of the License at http://www.gnu.org/licenses/gpl-3.0.html See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each file.
*/
/*
* Créé le 25 oct. 2012
*/
package org.openconcerto.erp.generationDoc.provider;
import org.openconcerto.erp.generationDoc.SpreadSheetCellValueContext;
import org.openconcerto.erp.generationDoc.SpreadSheetCellValueProvider;
import org.openconcerto.erp.generationDoc.SpreadSheetCellValueProviderManager;
import org.openconcerto.sql.model.SQLRowAccessor;
public class ConditionsReglementDetailsProvider implements SpreadSheetCellValueProvider {
public ConditionsReglementDetailsProvider() {
}
@Override
public Object getValue(SpreadSheetCellValueContext context) {
SQLRowAccessor row = context.getRow();
String r = "";
final SQLRowAccessor foreignRow = row.getForeign("ID_MODE_REGLEMENT");
if (foreignRow != null) {
if (foreignRow.getForeign("ID_TYPE_REGLEMENT") != null) {
SQLRowAccessor rowT = foreignRow.getForeign("ID_TYPE_REGLEMENT");
if (!rowT.getString("NOM").equalsIgnoreCase("Indéfini")) {
r = rowT.getString("NOM");
}
}
int ajours = foreignRow.getInt("AJOURS");
int njour = foreignRow.getInt("LENJOUR");
if (ajours == 0 && njour == 0) {
if (foreignRow.getBoolean("COMPTANT") != null && !foreignRow.getBoolean("COMPTANT")) {
r += " Date de facture";
} else {
r += " Comptant";
}
} else {
if (ajours != 0) {
r += " à " + ajours + ((ajours > 1) ? " jours" : " jour");
}
if (njour > 0 && njour < 31) {
r += " le " + njour;
} else {
if (njour == 0) {
r += " date de facture";
} else {
r += " fin de mois";
}
}
}
}
return r;
}
public static void register() {
SpreadSheetCellValueProviderManager.put("conditions.paiement.details", new ConditionsReglementDetailsProvider());
}
}