use of org.isisaddons.module.excel.dom.WorksheetSpec in project estatio by estatio.
the class BudgetImportExportManager method importBudget.
@Action(publishing = Publishing.DISABLED, semantics = SemanticsOf.IDEMPOTENT)
@ActionLayout()
@CollectionLayout()
public Budget importBudget(@Parameter(fileAccept = ".xlsx") @ParameterLayout(named = "Excel spreadsheet") final Blob spreadsheet) {
WorksheetSpec spec1 = new WorksheetSpec(BudgetImportExport.class, "budget");
WorksheetSpec spec2 = new WorksheetSpec(KeyItemImportExportLineItem.class, "keyItems");
WorksheetSpec spec3 = new WorksheetSpec(BudgetOverrideImportExport.class, "overrides");
WorksheetSpec spec4 = new WorksheetSpec(ChargeImport.class, "charges");
List<List<?>> objects = excelService.fromExcel(spreadsheet, Arrays.asList(spec1, spec2, spec3, spec4));
// first upsert charges
List<ChargeImport> chargeImportLines = (List<ChargeImport>) objects.get(3);
for (ChargeImport lineItem : chargeImportLines) {
lineItem.importData(null);
}
// import budget en items
List<BudgetImportExport> budgetItemLines = importBudgetAndItems(objects);
// import keyTables
importKeyTables(budgetItemLines, objects);
// import overrides
importOverrides(objects);
return getBudget();
}
use of org.isisaddons.module.excel.dom.WorksheetSpec in project estatio by estatio.
the class Budget_DownloadCalculations method downloadCalculations.
@Action(semantics = SemanticsOf.SAFE)
@ActionLayout(cssClassFa = "fa-download")
public Blob downloadCalculations() {
final String fileName = budget.title() + ".xlsx";
WorksheetSpec spec = new WorksheetSpec(CalculationResultViewModel.class, "values");
WorksheetContent worksheetContent = new WorksheetContent(budgetAssignmentService.getCalculationResults(budget), spec);
return excelService.toExcelPivot(worksheetContent, fileName);
}
use of org.isisaddons.module.excel.dom.WorksheetSpec in project estatio by estatio.
the class CodaMappingManager method downloadToExcel.
@Action(semantics = SemanticsOf.SAFE)
@MemberOrder(name = "mappings", sequence = "1")
public Blob downloadToExcel(final String fileName) {
final List<CodaMappingImport> exports = getMappings().stream().map(x -> new CodaMappingImport(x)).collect(Collectors.toList());
WorksheetSpec spec = new WorksheetSpec(CodaMappingImport.class, SHEET_NAME);
WorksheetContent worksheetContent = new WorksheetContent(exports, spec);
return excelService.toExcel(worksheetContent, fileName);
}
use of org.isisaddons.module.excel.dom.WorksheetSpec in project estatio by estatio.
the class IncomingInvoiceDownloadManager method downloadToExcel.
@Action(semantics = SemanticsOf.SAFE)
public Blob downloadToExcel(final String fileName) {
final List<IncomingInvoiceExport> exports = getInvoiceItems().stream().map(item -> new IncomingInvoiceExport(item, documentNumberFor(item), codaElementFor(item), commentsFor(item))).sorted(// guard only for (demo)fixtures because in production a document can be expected
Comparator.comparing(x -> x.getDocumentNumber() != null ? x.getDocumentNumber() : "_No_Document")).collect(Collectors.toList());
WorksheetSpec spec = new WorksheetSpec(IncomingInvoiceDownloadManager.exportClass, "invoiceExport");
WorksheetContent worksheetContent = new WorksheetContent(exports, spec);
return excelService.toExcel(worksheetContent, fileName);
}
use of org.isisaddons.module.excel.dom.WorksheetSpec in project estatio by estatio.
the class KeyItemImportExportManager method importBlob.
// endregion
// region > import (action)
@Action(publishing = Publishing.DISABLED, semantics = SemanticsOf.IDEMPOTENT)
@ActionLayout(named = "Import", cssClassFa = "fa-upload")
@MemberOrder(name = "keyItems", sequence = "2")
public List<KeyItemImportExportLineItem> importBlob(@Parameter(fileAccept = ".xlsx") @ParameterLayout(named = "Excel spreadsheet") final Blob spreadsheet) {
WorksheetSpec spec = new WorksheetSpec(KeyItemImportExportLineItem.class, "keyItems");
List<KeyItemImportExportLineItem> lineItems = excelService.fromExcel(spreadsheet, spec);
container.informUser(lineItems.size() + " items imported");
List<KeyItemImportExportLineItem> newItems = new ArrayList<>();
for (KeyItemImportExportLineItem item : lineItems) {
item.validate();
newItems.add(new KeyItemImportExportLineItem(item));
}
for (KeyItem keyItem : keyTable.getItems()) {
Boolean keyItemFound = false;
for (KeyItemImportExportLineItem lineItem : newItems) {
if (lineItem.getUnitReference().equals(keyItem.getUnit().getReference())) {
keyItemFound = true;
break;
}
}
if (!keyItemFound) {
KeyItemImportExportLineItem deletedItem = new KeyItemImportExportLineItem(keyItem);
deletedItem.setStatus(Status.DELETED);
newItems.add(deletedItem);
}
}
return newItems;
}
Aggregations