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);
}
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()));
}
}
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);
}
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();
}
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;
}
};
}
Aggregations