org.openconcerto.erp.core.finance.accounting.element.JournalSQLElement.java Source code

Java tutorial

Introduction

Here is the source code for org.openconcerto.erp.core.finance.accounting.element.JournalSQLElement.java

Source

/*
 * 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.
 */

package org.openconcerto.erp.core.finance.accounting.element;

import org.openconcerto.erp.config.ComptaPropsConfiguration;
import org.openconcerto.erp.core.common.element.ComptaSQLConfElement;
import org.openconcerto.sql.Configuration;
import org.openconcerto.sql.element.BaseSQLComponent;
import org.openconcerto.sql.element.SQLComponent;
import org.openconcerto.sql.model.SQLBase;
import org.openconcerto.sql.model.SQLRowValues;
import org.openconcerto.sql.model.SQLSelect;
import org.openconcerto.sql.model.SQLTable;
import org.openconcerto.sql.model.Where;
import org.openconcerto.ui.DefaultGridBagConstraints;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

import org.apache.commons.dbutils.handlers.ArrayListHandler;

public class JournalSQLElement extends ComptaSQLConfElement {

    public static final int ACHATS = 2;
    public static final int VENTES = 3;
    public static final int OD = 6;
    public static final int BANQUES = 4;
    public static final int CAISSES = 5;

    public JournalSQLElement() {
        super("JOURNAL", "un journal", "journaux");
    }

    protected List<String> getListFields() {
        final List<String> list = new ArrayList<String>();
        list.add("NOM");
        list.add("CODE");
        return list;
    }

    protected List<String> getComboFields() {
        final List<String> list = new ArrayList<String>();
        list.add("NOM");
        list.add("CODE");
        return list;
    }

    public SQLComponent createComponent() {
        return new BaseSQLComponent(this) {
            public void addViews() {
                this.setLayout(new GridBagLayout());
                final GridBagConstraints c = new DefaultGridBagConstraints();
                this.add(new JLabel(getLabelFor("CODE"), SwingConstants.RIGHT), c);
                c.gridx++;
                c.weightx = 1;
                c.fill = GridBagConstraints.NONE;
                final JTextField code = new JTextField(6);
                this.add(code, c);

                c.gridx = 0;
                c.gridy++;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 0;
                this.add(new JLabel(getLabelFor("NOM"), SwingConstants.RIGHT), c);
                c.gridx++;
                c.weightx = 1;
                final JTextField nom = new JTextField(25);
                this.add(nom, c);
                c.gridy++;
                c.anchor = GridBagConstraints.NORTHWEST;
                c.weighty = 1;
                final JCheckBox checkBox = new JCheckBox(getLabelFor("TYPE_BANQUE"));
                this.add(checkBox, c);

                this.addView(nom, "NOM", REQ);
                this.addView(code, "CODE", REQ);
                this.addView(checkBox, "TYPE_BANQUE");
            }

            @Override
            protected SQLRowValues createDefaults() {
                final SQLRowValues rowVals = new SQLRowValues(getTable());
                rowVals.put("TYPE_BANQUE", Boolean.TRUE);
                return rowVals;
            }
        };
    }

    public static int getIdJournal(final String nom) {
        final SQLBase base = ((ComptaPropsConfiguration) Configuration.getInstance()).getSQLBaseSociete();
        final SQLTable journalTable = base.getTable("JOURNAL");
        final SQLSelect selJrnl = new SQLSelect();
        selJrnl.addSelect(journalTable.getField("ID"));
        selJrnl.setWhere(new Where(journalTable.getField("NOM"), "=", nom.trim()));

        @SuppressWarnings("unchecked")
        final List<Object[]> myListJrnl = (List<Object[]>) base.getDataSource().execute(selJrnl.asString(),
                new ArrayListHandler());

        if (myListJrnl.size() != 0) {
            return Integer.parseInt(myListJrnl.get(0)[0].toString());
        } else {
            return -1;
        }
    }

    @Override
    protected String createCode() {
        return createCodeFromPackage() + ".book";
    }
}