ReportObjectivesPage.javaПакет: org.projectforge.web.fibu
Классы: ReportObjectivesPage
Расширяет: AbstractStandardFormPage
Методы (6): importReportObjectivs, createReport, clear, getReportStorage, checkAccess, getTitle
Поля (3): serialVersionUID, KEY_REPORT_STORAGE, form
Импорты: 11 пакетов
package org.projectforge.web.fibu;
import org.apache.wicket.markup.html.form.upload.FileUpload;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.projectforge.business.fibu.kost.reporting.Report;
import org.projectforge.business.fibu.kost.reporting.ReportDao;
import org.projectforge.business.fibu.kost.reporting.ReportStorage;
import org.projectforge.business.user.ProjectForgeGroup;
import org.projectforge.framework.time.PFDay;
import org.projectforge.web.WicketSupport;
import org.projectforge.web.wicket.AbstractStandardFormPage;
import java.io.InputStream;
public class ReportObjectivesPage extends AbstractStandardFormPage
{
private static final long serialVersionUID = 5880523229854750164L;
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ReportObjectivesPage.class);
public static final String KEY_REPORT_STORAGE = "ReportObjectivesPage:storage";
private final ReportObjectivesForm form;
protected transient ReportStorage reportStorage;
public ReportObjectivesPage(final PageParameters parameters)
{
super(parameters);
form = new ReportObjectivesForm(this);
body.add(form);
form.init();
}
protected void importReportObjectivs()
{
checkAccess();
log.info("импорт целей отчёта.");
final FileUpload fileUpload = form.fileUploadField.getFileUpload();
if (fileUpload != null) {
try {
final String clientFileName = fileUpload.getClientFileName();
final InputStream is = fileUpload.getInputStream();
final Report report = WicketSupport.get(ReportDao.class).createReport(is);
if (report == null) {
error("Произошла ошибка во время импорта (подробности см. в файлах журнала).");
return;
}
reportStorage = new ReportStorage(report);
reportStorage.setFileName(clientFileName);
putUserPrefEntry(KEY_REPORT_STORAGE, reportStorage, false);
} catch (final Exception ex) {
log.error(ex.getMessage(), ex);
error("Произошла ошибка (подробности см. в файлах журнала): " + ex.getMessage());
}
}
}
protected void createReport()
{
checkAccess();
final ReportObjectivesFilter filter = form.getFilter();
if (filter.getFromDate() == null) {
return;
}
log.info("загрузить отчёт: " + filter);
final ReportStorage storage = getReportStorage();
final Report report = storage.getRoot();
final String currentReportId = storage.getCurrentReport().getId(); // Сохранить идентификатор текущего отчёта.
final PFDay day = PFDay.from(filter.getFromDate()); // не null
report.setFrom(day.getYear(), day.getMonthValue());
PFDay untilDay;
if (filter.getToDate() != null) {
untilDay = PFDay.from(filter.getToDate()); // не null
} else {
untilDay = day.getEndOfMonth();
}
report.setTo(untilDay.getYear(), untilDay.getMonthValue());
WicketSupport.get(ReportDao.class).loadReport(report);
storage.setCurrentReport(currentReportId); // Выбрать предыдущий текущий отчёт.
}
protected void clear()
{
checkAccess();
log.info("очистить отчёт.");
removeUserPrefEntry(KEY_REPORT_STORAGE);
this.reportStorage = null;
}
/**
* @return Любое существующее хранилище пользователя или null, если не существует (ни в классе, ни в сессии пользователя).
*/
protected ReportStorage getReportStorage()
{
if (reportStorage != null) {
return reportStorage;
}
return (ReportStorage) getUserPrefEntry(KEY_REPORT_STORAGE);
}
private void checkAccess()
{
getAccessChecker().isLoggedInUserMemberOfGroup(ProjectForgeGroup.FINANCE_GROUP, ProjectForgeGroup.CONTROLLING_GROUP);
getAccessChecker().checkRestrictedOrDemoUser();
}
@Override
protected String getTitle()
{
return getString("fibu.kost.reporting");
}
}
868d6abb7 2025 -> 2026 63081666f Заголовки исходных файлов: 2024-> 2025. a73905c14 Исправление опечаток в каталогах projectforge*/ Найдено с помощью codespell См. c3b0602a893 4efcbd0fb Работа по миграции в процессе... b6092df09 Авторское право 2023 -> 2024