Search in sources :

Example 91 with Action

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();
}
Also used : CreateRetroInvoices(org.estatio.module.lease.migrations.CreateRetroInvoices) FixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript) Action(org.apache.isis.applib.annotation.Action) MemberOrder(org.apache.isis.applib.annotation.MemberOrder) ActionLayout(org.apache.isis.applib.annotation.ActionLayout)

Example 92 with Action

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;
}
Also used : Invoice(org.estatio.module.invoice.dom.Invoice) InvoiceForLease_sendByEmail(org.estatio.module.lease.dom.invoicing.comms.InvoiceForLease_sendByEmail) Document(org.incode.module.document.dom.impl.docs.Document) EmailAddress(org.incode.module.communications.dom.impl.commchannel.EmailAddress) Action(org.apache.isis.applib.annotation.Action) ActionLayout(org.apache.isis.applib.annotation.ActionLayout)

Example 93 with Action

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");
    }
}
Also used : CommandJdo(org.isisaddons.module.command.dom.CommandJdo) BackgroundCommandExecutionFromBackgroundCommandServiceJdo(org.isisaddons.module.command.dom.BackgroundCommandExecutionFromBackgroundCommandServiceJdo) SimpleSession(org.apache.isis.core.runtime.authentication.standard.SimpleSession) Action(org.apache.isis.applib.annotation.Action)

Example 94 with Action

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);
}
Also used : DecimalFormat(java.text.DecimalFormat) Document(iso.std.iso._20022.tech.xsd.pain_001_001.Document) URI(java.net.URI) IncomingInvoice(org.estatio.module.capex.dom.invoice.IncomingInvoice) Blob(org.apache.isis.applib.value.Blob) Stamp(org.estatio.module.capex.platform.pdfmanipulator.Stamp) BankAccount(org.estatio.module.financial.dom.BankAccount) ExtractSpec(org.estatio.module.capex.platform.pdfmanipulator.ExtractSpec) File(java.io.File) Action(org.apache.isis.applib.annotation.Action) ActionLayout(org.apache.isis.applib.annotation.ActionLayout)

Example 95 with Action

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;
}
Also used : LocalDateTime(org.joda.time.LocalDateTime) Action(org.apache.isis.applib.annotation.Action) ActionLayout(org.apache.isis.applib.annotation.ActionLayout)

Aggregations

Action (org.apache.isis.applib.annotation.Action)117 ActionLayout (org.apache.isis.applib.annotation.ActionLayout)63 MemberOrder (org.apache.isis.applib.annotation.MemberOrder)31 Document (org.incode.module.document.dom.impl.docs.Document)23 IncomingInvoice (org.estatio.module.capex.dom.invoice.IncomingInvoice)12 ArrayList (java.util.ArrayList)11 Blob (org.apache.isis.applib.value.Blob)10 WorksheetSpec (org.isisaddons.module.excel.dom.WorksheetSpec)10 LocalDate (org.joda.time.LocalDate)9 WorksheetContent (org.isisaddons.module.excel.dom.WorksheetContent)8 DomainObject (org.apache.isis.applib.annotation.DomainObject)6 DateTime (org.joda.time.DateTime)6 List (java.util.List)5 SemanticsOf (org.apache.isis.applib.annotation.SemanticsOf)5 PaymentBatch (org.estatio.module.capex.dom.payment.PaymentBatch)5 BankAccount (org.estatio.module.financial.dom.BankAccount)5 Lease (org.estatio.module.lease.dom.Lease)5 Organisation (org.estatio.module.party.dom.Organisation)5 BigDecimal (java.math.BigDecimal)4 Collectors (java.util.stream.Collectors)4