EN · DE · RU · FR · ES

#2963 : EmployeeSalaryImportPage.java

projectforge-wicket/src/main/java/org/projectforge/web/fibu/EmployeeSalaryImportPage.java Type : Java · Rôle : Comptabilité financière · Source : projectforge-wicket/src/main/java/org/projectforge/web/fibu/EmployeeSalaryImportPage.java 140 lignes · 102 code · 22 commentaires · 16 vides
Implémentation de la page Wicket pour EmployeeSalaryImport. Compose les panneaux, formulaires et la navigation.

Structure du code

Paquetage : org.projectforge.web.fibu

Classes : EmployeeSalaryImportPage

Étend : AbstractImportPage

Méthodes (7) : clear, selectAll, select, deselectAll, checkAccess, setPageParametersOnSuccess, getTitle

Importations : 14 paquetages

Code source (abrégé)

package org.projectforge.web.fibu;

import de.micromata.merlin.excel.importer.ImportStorage;
import de.micromata.merlin.excel.importer.ImportedSheet;
import org.apache.wicket.markup.html.form.upload.FileUpload;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.projectforge.business.fibu.EmployeeSalaryDO;
import org.projectforge.business.fibu.datev.EmployeeSalaryImportService;
import org.projectforge.business.user.UserRightId;
import org.projectforge.business.user.UserRightValue;
import org.projectforge.framework.access.AccessChecker;
import org.projectforge.framework.i18n.I18nHelper;
import org.projectforge.web.WicketSupport;
import org.projectforge.web.core.importstorage.AbstractImportPage;

import java.io.InputStream;
import java.time.Month;

public class EmployeeSalaryImportPage extends AbstractImportPage<EmployeeSalaryImportForm> {
    private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(EmployeeSalaryImportPage.class);

    public EmployeeSalaryImportPage(final PageParameters parameters) {
        super(parameters);
        form = new EmployeeSalaryImportForm(this);
        body.add(form);
        form.init();
        clear(); // réinitialise l'état de la page, efface le stockage d'importation
        if (parameters != null) {
            if (parameters.get(0) != null && parameters.get(0).toString() != null && parameters.get(0).toString().equals("success")) {
                error(I18nHelper.getLocalizedMessage("fibu.employee.salaries.import.success"));
            }
            if (parameters.contains("year")) {
                form.setSelectedYear(parameters.get("year").toInt(form.getDefaultYear()));
            }
            if (parameters.contains("month")) {
                form.setSelectedMonth(parameters.get("month").toInt(form.getDefaultMonth()));
            }
        }
    }

    @Override
    protected void clear() {
        super.clear();
        form.setDateDropDownsEnabled(true);
    }

    boolean doImport(final int year, final Month month) {
        checkAccess();
        EmployeeSalaryImportService employeeSalaryImportService = WicketSupport.get(EmployeeSalaryImportService.class);
        final FileUpload fileUpload = form.fileUploadField.getFileUpload();
        if (fileUpload != null) {
            final Boolean success = doImportWithExcelExceptionHandling(() -> {
                final InputStream is = fileUpload.getInputStream();
                final String clientFileName = fileUpload.getClientFileName();
                setStorage(employeeSalaryImportService.importData(is, clientFileName, year, month));
                return true;
            });
            return Boolean.TRUE.equals(success);
        }
        return false;
    }

    @Override
    protected ImportedSheet<?> reconcile(final String sheetName) {
        checkAccess();
        final ImportedSheet<?> sheet = super.reconcile(sheetName);
        EmployeeSalaryImportService employeeSalaryImportService = WicketSupport.get(EmployeeSalaryImportService.class);
        Month month = Month.of(form.getSelectedMonth());
        employeeSalaryImportService.reconcile((ImportStorage<EmployeeSalaryDO>) getStorage(), sheetName, form.getSelectedYear(), month);
        return sheet;
    }

    @Override
    protected ImportedSheet<?> commit(final String sheetName) {
        checkAccess();
        final ImportedSheet<?> sheet = super.commit(sheetName);
        EmployeeSalaryImportService employeeSalaryImportService = WicketSupport.get(EmployeeSalaryImportService.class);
        employeeSalaryImportService.commit(getStorage(), sheetName);
        return sheet;
    }

    @Override
    protected void selectAll(final String sheetName) {
        checkAccess();
        super.selectAll(sheetName);
    }

    @Override
    protected void select(final String sheetName, final int number) {
        checkAccess();
        super.select(sheetName, number);
    }

    @Override
    protected void deselectAll(final String sheetName) {
        checkAccess();
        super.deselectAll(sheetName);
    }

    private void checkAccess() {
        AccessChecker accessChecker = WicketSupport.getAccessChecker();
        accessChecker.checkLoggedInUserRight(UserRightId.HR_EMPLOYEE, UserRightValue.READWRITE);
        accessChecker.checkRestrictedOrDemoUser();
    }

    @Override
    protected void setPageParametersOnSuccess(PageParameters params) {
        params.add("year", form.getSelectedYear());
        params.add("month", form.getSelectedMonth());
    }

    @Override
    protected String getTitle() {
        return getString("fibu.employee.salaries.import");
    }

}

Historique Git

868d6abb7 2025 -> 2026
63081666f En-têtes des fichiers source : 2024 -> 2025.
b71b5073d Migration en cours... (tous les tests de tous les paquetages : OK).
ffb18cf8f Migration en cours...
1012e347a Migration en cours... (tous les tests de tous les paquetages : OK).