use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class EstatioFixtureScripts method createRetroInvoicesForLease.
@Action(restrictTo = RestrictTo.PROTOTYPING)
@ActionLayout(cssClassFa = "fa-bolt")
@MemberOrder(sequence = "3")
public List<FixtureResult> createRetroInvoicesForLease(final Lease lease, @ParameterLayout(named = "Start due date") final LocalDate startDueDate, @ParameterLayout(named = "Nextdue date") final LocalDate nextDueDate) {
final CreateRetroInvoices creator = container.newTransientInstance(CreateRetroInvoices.class);
final FixtureScript.ExecutionContext executionContext = fixtureScripts.newExecutionContext(null);
creator.createLease(lease, startDueDate, nextDueDate, executionContext);
return executionContext.getResults();
}
use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class InvoiceSummaryForPropertyDueDateStatus_sendByEmailAbstract method $$.
@Action(semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE)
@ActionLayout(contributed = Contributed.AS_ACTION)
public InvoiceSummaryForPropertyDueDateStatus $$() throws IOException {
final List<InvoiceAndDocument> invoiceAndDocuments = invoiceAndDocumentsToSend();
for (InvoiceAndDocument invoiceAndDocument : invoiceAndDocuments) {
final Invoice invoice = invoiceAndDocument.getInvoice();
final Document document = invoiceAndDocument.getDocument();
final InvoiceForLease_sendByEmail invoice_sendByEmail = invoice_email(invoice);
final EmailAddress emailAddress = invoice_sendByEmail.default1$$(document);
final String cc = invoice_sendByEmail.default2$$(document);
final String bcc = invoice_sendByEmail.default5$$(document);
invoice_sendByEmail.$$(document, emailAddress, cc, null, null, bcc, null);
}
return this.invoiceSummary;
}
use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class FakeScheduler method runBackgroundCommands.
@Action(semantics = SemanticsOf.NON_IDEMPOTENT)
public void runBackgroundCommands(@ParameterLayout(named = "Wait for (ms)") final Integer waitFor) throws InterruptedException {
List<CommandJdo> commands = backgroundCommandRepository.findBackgroundCommandsNotYetStarted();
if (commands.isEmpty()) {
throw new IllegalStateException("There are no commands not yet started");
}
transactionService.nextTransaction();
BackgroundCommandExecutionFromBackgroundCommandServiceJdo backgroundExec = new BackgroundCommandExecutionFromBackgroundCommandServiceJdo();
final SimpleSession session = new SimpleSession("scheduler_user", new String[] { "admin_role" });
final Thread thread = new Thread(() -> backgroundExec.execute(session, null));
thread.start();
thread.join(waitFor);
commands = backgroundCommandRepository.findBackgroundCommandsNotYetStarted();
if (!commands.isEmpty()) {
throw new IllegalStateException("There are still " + commands.size() + " not yet started");
}
}
use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class PaymentBatch method downloadReviewPdf.
@Action(semantics = SemanticsOf.SAFE)
@ActionLayout(contributed = Contributed.AS_ACTION)
public Blob downloadReviewPdf(final String documentName, @ParameterLayout(named = "How many first pages of each invoice's PDF?") final Integer numFirstPages, @ParameterLayout(named = "How many final pages of each invoice's PDF?") final Integer numLastPages) throws IOException {
final List<File> pdfFiles = Lists.newArrayList();
final List<CreditTransfer> transfers = this.getTransfers();
for (CreditTransfer transfer : transfers) {
final List<PaymentLine> lines = transfer.getLines();
for (final PaymentLine line : lines) {
final IncomingInvoice invoice = line.getInvoice();
final BankAccount bankAccount = invoice.getBankAccount();
final Optional<org.incode.module.document.dom.impl.docs.Document> invoiceDocIfAny = lookupAttachedPdfService.lookupIncomingInvoicePdfFrom(invoice);
if (invoiceDocIfAny.isPresent()) {
final org.incode.module.document.dom.impl.docs.Document invoiceDoc = invoiceDocIfAny.get();
final byte[] invoiceDocBytes = invoiceDoc.asBytes();
final Optional<org.incode.module.document.dom.impl.docs.Document> ibanProofDocIfAny = lookupAttachedPdfService.lookupIbanProofPdfFrom(bankAccount);
List<String> leftLines = Lists.newArrayList();
leftLines.add("xfer id: " + transfer.getEndToEndId() + " / " + line.getSequence());
for (IncomingInvoice.ApprovalString approvalString : invoice.getApprovals()) {
leftLines.add(String.format("approved by: %s", approvalString.getCompletedBy()));
leftLines.add("on: " + approvalString.getCompletedOn());
}
final List<String> rightLines = Lists.newArrayList();
rightLines.add(String.format("debtor IBAN: %s", line.getBatch().getDebtorBankAccount().getIban()));
rightLines.add(String.format("crdtor IBAN: %s", line.getCreditorBankAccount().getIban()));
rightLines.add(String.format("gross Amt : %s", new DecimalFormat("0.00").format(line.getAmount())));
boolean attachProof = false;
final String proof;
if (ibanProofDocIfAny.isPresent()) {
final org.incode.module.document.dom.impl.docs.Document ibanProofDoc = ibanProofDocIfAny.get();
if (DocumentTypeData.IBAN_PROOF.isDocTypeFor(ibanProofDoc)) {
proof = "Separate IBAN proof (next page)";
attachProof = true;
} else {
proof = "Invoice used as IBAN proof";
}
} else {
proof = "No IBAN proof";
}
rightLines.add(proof);
URI uri = deepLinkService.deepLinkFor(invoice);
final Stamp stamp = new Stamp(leftLines, rightLines, uri.toString());
final byte[] extractedInvoiceDocBytes = pdfManipulator.extractAndStamp(invoiceDocBytes, new ExtractSpec(numFirstPages, numLastPages), stamp);
appendTempFile(extractedInvoiceDocBytes, documentName, pdfFiles);
if (attachProof) {
final org.incode.module.document.dom.impl.docs.Document ibanProofDoc = ibanProofDocIfAny.get();
final byte[] ibanProofBytes = ibanProofDoc.asBytes();
final byte[] firstPageIbanProofDocBytes = pdfManipulator.extract(ibanProofBytes, ExtractSpec.FIRST_PAGE_ONLY);
appendTempFile(firstPageIbanProofDocBytes, documentName, pdfFiles);
}
}
}
}
byte[] pdfMergedBytes = pdfBoxService.merge(pdfFiles);
pdfFiles.stream().forEach(this::cleanup);
return new Blob(documentName, DocumentConstants.MIME_TYPE_APPLICATION_PDF, pdfMergedBytes);
}
use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class Task_reprioritizeBringForward method act.
@Action(semantics = SemanticsOf.SAFE)
@ActionLayout(contributed = Contributed.AS_ACTION, cssClassFa = "fa-arrow-left")
public Task act(final Integer bringForwardByDays) {
final LocalDateTime newDateTime = task.getCreatedOn().minusDays(bringForwardByDays);
task.setCreatedOn(newDateTime);
return task;
}
Aggregations