Search in sources :

Example 16 with Person

use of org.estatio.module.party.dom.Person in project estatio by estatio.

the class TaskRepository method findIncompleteForMyRolesAndUnassignedAndCreatedOnAfter.

/**
 * Those tasks which are assigned to no-one, but for which I have the (party) roles to perform after {@param createdOn}
 * @param createdOn
 * @return
 */
@Programmatic
public List<Task> findIncompleteForMyRolesAndUnassignedAndCreatedOnAfter(final LocalDateTime createdOn) {
    final Person meAsPerson = meAsPerson();
    if (meAsPerson == null) {
        return Lists.newArrayList();
    }
    final List<PartyRoleType> myRoleTypes = partyRoleTypesFor(meAsPerson);
    return findIncompleteByUnassignedForRolesAndCreatedOnAfter(myRoleTypes, createdOn);
}
Also used : PartyRoleType(org.estatio.module.party.dom.role.PartyRoleType) Person(org.estatio.module.party.dom.Person) Programmatic(org.apache.isis.applib.annotation.Programmatic)

Example 17 with Person

use of org.estatio.module.party.dom.Person in project estatio by estatio.

the class EnforceTaskAssignmentPolicySubscriber method applyPolicy.

<DO, ST extends StateTransition<DO, ST, STT, S>, STT extends StateTransitionType<DO, ST, STT, S>, S extends State<S>> Optional<String> applyPolicy(final Class<ST> stateTransitionClass, final DO entityOrViewModel) {
    if (EstatioTogglzFeature.ApproveByProxy.isActive()) {
        return Optional.empty();
    }
    final DO entity = unwrapIfRequired(entityOrViewModel);
    final ST pendingTransition = stateTransitionService.pendingTransitionOf(entity, stateTransitionClass);
    if (pendingTransition == null) {
        return Optional.empty();
    }
    final Task task = pendingTransition.getTask();
    if (task == null) {
        return Optional.empty();
    }
    final Person meAsPerson = personRepository.me();
    if (meAsPerson == null) {
        return Optional.of("Could not locate Person for current user");
    }
    // first guard: meAsPerson always needs the PartyRoleType the task is assigned to
    List<PartyRoleType> meAsPersonRoleTypes = Lists.newArrayList(meAsPerson.getRoles()).stream().map(PartyRole::getRoleType).collect(Collectors.toList());
    if (!meAsPersonRoleTypes.contains(task.getAssignedTo())) {
        return Optional.of(String.format("Task assigned to '%s' role", task.getAssignedTo().getKey()));
    }
    // second guard: if the task is assigned to a specific person it needs to be meAsPerson
    final Person taskAssignedTo = task.getPersonAssignedTo();
    if (taskAssignedTo == null || taskAssignedTo == meAsPerson) {
        return Optional.empty();
    } else {
        return Optional.of(String.format("Task assigned to %s", taskAssignedTo.getReference()));
    }
}
Also used : Task(org.estatio.module.capex.dom.task.Task) PartyRoleType(org.estatio.module.party.dom.role.PartyRoleType) Person(org.estatio.module.party.dom.Person)

Example 18 with Person

use of org.estatio.module.party.dom.Person in project estatio by estatio.

the class IncomingInvoiceMenu_Test method filterOrFindBySeller_filter_works.

@Test
public void filterOrFindBySeller_filter_works() {
    IncomingInvoiceMenu.IncomingInvoiceFinder builder;
    // given
    builder = new IncomingInvoiceMenu.IncomingInvoiceFinder(mockInvoiceRepository, mockIncomingInvoiceRepository, mockPartyRepository);
    IncomingInvoice invoice1 = new IncomingInvoice();
    Person personToBeFiltered = new Person();
    Organisation seller = new Organisation();
    invoice1.setSeller(seller);
    IncomingInvoice invoice2 = new IncomingInvoice();
    builder.setResult(Arrays.asList(invoice1, invoice2));
    Assertions.assertThat(builder.getResult().size()).isEqualTo(2);
    // expect
    context.checking(new Expectations() {

        {
            oneOf(mockPartyRepository).findParties("*abc*");
            will(returnValue(Arrays.asList(seller, personToBeFiltered)));
        }
    });
    // when
    builder.filterOrFindBySeller("abc");
    // then
    Assertions.assertThat(builder.getResult().size()).isEqualTo(1);
}
Also used : Expectations(org.jmock.Expectations) IncomingInvoiceMenu(org.estatio.module.capex.app.IncomingInvoiceMenu) Organisation(org.estatio.module.party.dom.Organisation) IncomingInvoice(org.estatio.module.capex.dom.invoice.IncomingInvoice) Person(org.estatio.module.party.dom.Person) Test(org.junit.Test)

Example 19 with Person

use of org.estatio.module.party.dom.Person in project estatio by estatio.

the class PersonImport method importData.

@Override
public List<Object> importData(Object previousRow) {
    final ApplicationTenancy applicationTenancy = securityApplicationTenancyRepository.findByPath(atPath);
    Person person = (Person) partyRepository.findPartyByReference(reference);
    if (person == null) {
        person = personRepository.newPerson(reference, initials, firstName, lastName, gender == null ? PersonGenderType.UNKNOWN : PersonGenderType.valueOf(gender), applicationTenancy);
    }
    person.setApplicationTenancyPath(applicationTenancy.getPath());
    person.setFirstName(firstName);
    person.setLastName(lastName);
    return Lists.newArrayList();
}
Also used : Person(org.estatio.module.party.dom.Person) ApplicationTenancy(org.isisaddons.module.security.dom.tenancy.ApplicationTenancy)

Example 20 with Person

use of org.estatio.module.party.dom.Person in project estatio by estatio.

the class PartyRoleTypeService_Test method setUp.

@Before
public void setUp() throws Exception {
    person1 = new Person();
    person2 = new Person();
    partyRoleTypeService = new PartyRoleTypeService() {

        @Override
        public List<Person> membersOf(final IPartyRoleType partyRoleType, final Object domainObject) {
            return members;
        }
    };
}
Also used : IPartyRoleType(org.estatio.module.party.dom.role.IPartyRoleType) PartyRoleTypeService(org.estatio.module.party.dom.role.PartyRoleTypeService) List(java.util.List) Person(org.estatio.module.party.dom.Person) Before(org.junit.Before)

Aggregations

Person (org.estatio.module.party.dom.Person)28 PartyRoleType (org.estatio.module.party.dom.role.PartyRoleType)9 Test (org.junit.Test)9 Programmatic (org.apache.isis.applib.annotation.Programmatic)7 Task (org.estatio.module.capex.dom.task.Task)4 PartyRole (org.estatio.module.party.dom.role.PartyRole)4 Organisation (org.estatio.module.party.dom.Organisation)3 IPartyRoleType (org.estatio.module.party.dom.role.IPartyRoleType)3 Before (org.junit.Before)3 List (java.util.List)2 DisabledException (org.apache.isis.applib.services.wrapper.DisabledException)2 ApplicationTenancy (org.isisaddons.module.security.dom.tenancy.ApplicationTenancy)2 Expectations (org.jmock.Expectations)2 Lists (com.google.common.collect.Lists)1 Collectors (java.util.stream.Collectors)1 Data (lombok.Data)1 EqualsAndHashCode (lombok.EqualsAndHashCode)1 Getter (lombok.Getter)1 Setter (lombok.Setter)1 ToString (lombok.ToString)1