OpenConcerto

Dépôt officiel du code source de l'ERP OpenConcerto
sonarqube

svn://code.openconcerto.org/openconcerto

Rev

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());

    }

}