Search in sources :

Example 11 with Order

use of org.estatio.module.capex.dom.order.Order in project estatio by estatio.

the class TaskIncomingDocumentPdfService method doLookupPdfFor.

private Blob doLookupPdfFor(final Task task) {
    StateTransition<?, ?, ?, ?> stateTransition = stateTransitionService.findFor(task);
    if (stateTransition == null) {
        return null;
    }
    if (stateTransition instanceof IncomingDocumentCategorisationStateTransition) {
        IncomingDocumentCategorisationStateTransition idcst = (IncomingDocumentCategorisationStateTransition) stateTransition;
        final Document document = idcst.getDocument();
        if (document == null) {
            return null;
        }
        if (!Objects.equals(document.getMimeType(), "application/pdf")) {
            return null;
        }
        return document.getBlob();
    }
    if (stateTransition instanceof OrderApprovalStateTransition) {
        final OrderApprovalStateTransition oast = (OrderApprovalStateTransition) stateTransition;
        final Order order = oast.getOrdr();
        final Optional<Document> documentIfAny = lookupAttachedPdfService.lookupOrderPdfFrom(order);
        return documentIfAny.map(DocumentAbstract::getBlob).orElse(null);
    }
    if (stateTransition instanceof IncomingInvoiceApprovalStateTransition) {
        final IncomingInvoiceApprovalStateTransition iiast = (IncomingInvoiceApprovalStateTransition) stateTransition;
        final IncomingInvoice invoice = iiast.getInvoice();
        final Optional<Document> documentIfAny = lookupAttachedPdfService.lookupIncomingInvoicePdfFrom(invoice);
        return documentIfAny.map(DocumentAbstract::getBlob).orElse(null);
    }
    if (stateTransition instanceof BankAccountVerificationStateTransition) {
        final BankAccountVerificationStateTransition bavst = (BankAccountVerificationStateTransition) stateTransition;
        final BankAccount bankAccount = bavst.getBankAccount();
        final Optional<Document> documentIfAny = lookupAttachedPdfService.lookupIbanProofPdfFrom(bankAccount);
        return documentIfAny.map(DocumentAbstract::getBlob).orElse(null);
    }
    return null;
}
Also used : Order(org.estatio.module.capex.dom.order.Order) IncomingInvoiceApprovalStateTransition(org.estatio.module.capex.dom.invoice.approval.IncomingInvoiceApprovalStateTransition) IncomingDocumentCategorisationStateTransition(org.estatio.module.capex.dom.documents.categorisation.IncomingDocumentCategorisationStateTransition) IncomingInvoice(org.estatio.module.capex.dom.invoice.IncomingInvoice) BankAccount(org.estatio.module.financial.dom.BankAccount) Document(org.incode.module.document.dom.impl.docs.Document) OrderApprovalStateTransition(org.estatio.module.capex.dom.order.approval.OrderApprovalStateTransition) BankAccountVerificationStateTransition(org.estatio.module.capex.dom.bankaccount.verification.BankAccountVerificationStateTransition)

Example 12 with Order

use of org.estatio.module.capex.dom.order.Order in project estatio by estatio.

the class PartySubscriptionsForOrders method on.

@Programmatic
@com.google.common.eventbus.Subscribe
@org.axonframework.eventhandling.annotation.EventHandler
public void on(final Party.DeleteEvent ev) {
    Party sourceParty = (Party) ev.getSource();
    Party replacementParty = ev.getReplacement();
    switch(ev.getEventPhase()) {
        case VALIDATE:
            if (replacementParty == null && orderRepository.findBySellerParty(sourceParty).size() > 0) {
                ev.invalidate("Party is in use as seller in an order. Provide replacement");
            }
            break;
        case EXECUTING:
            if (replacementParty != null) {
                for (Order order : orderRepository.findBySellerParty(sourceParty)) {
                    order.setSeller(replacementParty);
                }
            }
            break;
        default:
            break;
    }
}
Also used : Order(org.estatio.module.capex.dom.order.Order) Party(org.estatio.module.party.dom.Party) Programmatic(org.apache.isis.applib.annotation.Programmatic)

Example 13 with Order

use of org.estatio.module.capex.dom.order.Order in project estatio by estatio.

the class IncomingDocAsInvoiceViewModel_Test method choices_orderItem_filters_discarded.

@Test
public void choices_orderItem_filters_discarded() {
    // given
    IncomingDocAsInvoiceViewModel viewModel = new IncomingDocAsInvoiceViewModel();
    viewModel.orderItemRepository = mockOrderItemRepo;
    Organisation seller = new Organisation();
    viewModel.setSeller(seller);
    Order order = new Order();
    order.setApprovalState(OrderApprovalState.DISCARDED);
    OrderItem item = new OrderItem();
    item.setOrdr(order);
    // expect
    context.checking(new Expectations() {

        {
            allowing(mockOrderItemRepo).findBySeller(seller);
            will(returnValue(Arrays.asList(item)));
        }
    });
    // when discarded
    List<OrderItem> orderItemChoices = viewModel.choicesOrderItem();
    // then
    Assertions.assertThat(orderItemChoices).isEmpty();
    // and when not discarded
    order.setApprovalState(OrderApprovalState.APPROVED);
    orderItemChoices = viewModel.choicesOrderItem();
    // then
    Assertions.assertThat(orderItemChoices).contains(item);
    // and when order has no approval state
    order.setApprovalState(null);
    orderItemChoices = viewModel.choicesOrderItem();
    // then
    Assertions.assertThat(orderItemChoices).contains(item);
}
Also used : Order(org.estatio.module.capex.dom.order.Order) Expectations(org.jmock.Expectations) Organisation(org.estatio.module.party.dom.Organisation) OrderItem(org.estatio.module.capex.dom.order.OrderItem) Test(org.junit.Test)

Example 14 with Order

use of org.estatio.module.capex.dom.order.Order in project estatio by estatio.

the class OrderMenu_Test method filterOrFindByOrderDate_find_works.

@Test
public void filterOrFindByOrderDate_find_works() {
    OrderMenu.OrderFinder builder;
    // given
    builder = new OrderMenu.OrderFinder(mockOrderRepository, mockPartyRepository);
    Order order1 = new Order();
    Order order2 = new Order();
    Order order3 = new Order();
    order1.setOrderDate(new LocalDate(2017, 7, 15));
    order2.setOrderDate(new LocalDate(2017, 7, 5));
    order3.setOrderDate(new LocalDate(2017, 7, 16));
    final LocalDate dateSearchedFor = new LocalDate(2017, 7, 10);
    // expect
    context.checking(new Expectations() {

        {
            oneOf(mockOrderRepository).listAll();
            will(returnValue(Arrays.asList(order1, order2, order3)));
        }
    });
    // when
    builder.filterOrFindByOrderDate(dateSearchedFor);
    // then
    Assertions.assertThat(builder.getResult().size()).isEqualTo(2);
    Assertions.assertThat(builder.getResult()).contains(order1);
    Assertions.assertThat(builder.getResult()).contains(order2);
}
Also used : Order(org.estatio.module.capex.dom.order.Order) Expectations(org.jmock.Expectations) LocalDate(org.joda.time.LocalDate) Test(org.junit.Test)

Example 15 with Order

use of org.estatio.module.capex.dom.order.Order in project estatio by estatio.

the class OrderMenu_Test method filterOrFindByDocumentName_filter_works.

@Test
public void filterOrFindByDocumentName_filter_works() {
    OrderMenu.OrderFinder builder;
    // given
    builder = new OrderMenu.OrderFinder(mockOrderRepository, mockPartyRepository);
    Order order1 = new Order();
    Order order2 = new Order();
    builder.setResult(Arrays.asList(order1, order2));
    Assertions.assertThat(builder.getResult().size()).isEqualTo(2);
    // expect
    context.checking(new Expectations() {

        {
            oneOf(mockOrderRepository).findOrderByDocumentName("123");
            will(returnValue(Arrays.asList(order1)));
        }
    });
    // when
    builder.filterOrFindByDocumentName("123");
    // then
    Assertions.assertThat(builder.getResult().size()).isEqualTo(1);
}
Also used : Order(org.estatio.module.capex.dom.order.Order) Expectations(org.jmock.Expectations) Test(org.junit.Test)

Aggregations

Order (org.estatio.module.capex.dom.order.Order)18 Test (org.junit.Test)8 Expectations (org.jmock.Expectations)7 OrderItem (org.estatio.module.capex.dom.order.OrderItem)6 MemberOrder (org.apache.isis.applib.annotation.MemberOrder)5 LocalDate (org.joda.time.LocalDate)5 Action (org.apache.isis.applib.annotation.Action)3 Programmatic (org.apache.isis.applib.annotation.Programmatic)3 IncomingDocAsOrderViewModel (org.estatio.module.capex.app.order.IncomingDocAsOrderViewModel)3 Organisation (org.estatio.module.party.dom.Organisation)3 IncomingInvoice (org.estatio.module.capex.dom.invoice.IncomingInvoice)2 Document (org.incode.module.document.dom.impl.docs.Document)2 BigDecimal (java.math.BigDecimal)1 ToString (lombok.ToString)1 ActionLayout (org.apache.isis.applib.annotation.ActionLayout)1 Order_switchView (org.estatio.module.capex.app.order.Order_switchView)1 BankAccountVerificationStateTransition (org.estatio.module.capex.dom.bankaccount.verification.BankAccountVerificationStateTransition)1 IncomingDocumentCategorisationStateTransition (org.estatio.module.capex.dom.documents.categorisation.IncomingDocumentCategorisationStateTransition)1 Document_categoriseAsOrder (org.estatio.module.capex.dom.documents.categorisation.triggers.Document_categoriseAsOrder)1 IncomingInvoiceItem (org.estatio.module.capex.dom.invoice.IncomingInvoiceItem)1