use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class UnitSizeMenu method newUnitSize.
@Action(semantics = SemanticsOf.NON_IDEMPOTENT)
@MemberOrder(sequence = "1")
public UnitSize newUnitSize(final String unitSizeName) {
UnitSize unitSize = newTransientInstance(UnitSize.class);
unitSize.setName(unitSizeName);
persist(unitSize);
return unitSize;
}
use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class LeaseMenu method verifyAllLeases.
@Action(semantics = SemanticsOf.IDEMPOTENT, restrictTo = RestrictTo.PROTOTYPING)
@MemberOrder(sequence = "98")
public String verifyAllLeases() {
DateTime dt = DateTime.now();
List<Lease> leases = allLeases();
for (Lease lease : leases) {
lease.verifyUntil(clockService.now());
}
Period p = new Period(dt, DateTime.now());
return String.format("Verified %d leases in %s", leases.size(), JodaPeriodUtils.asString(p));
}
use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class InvoiceForLease_sendByEmailPrelimLetterOrInvoiceDocAbstract method $$.
@Action(semantics = SemanticsOf.NON_IDEMPOTENT, domainEvent = DomainEvent.class)
@ActionLayout(cssClassFa = "at", contributed = Contributed.AS_ACTION)
public Invoice $$(@ParameterLayout(named = "to:") final EmailAddress toChannel, @Parameter(optionality = Optionality.OPTIONAL, maxLength = CommunicationChannel.EmailType.Meta.MAX_LEN, regexPattern = CommunicationChannel.EmailType.Meta.REGEX, regexPatternReplacement = CommunicationChannel.EmailType.Meta.REGEX_DESC) @ParameterLayout(named = "cc:") final String cc, @Parameter(optionality = Optionality.OPTIONAL, maxLength = CommunicationChannel.EmailType.Meta.MAX_LEN, regexPattern = CommunicationChannel.EmailType.Meta.REGEX, regexPatternReplacement = CommunicationChannel.EmailType.Meta.REGEX_DESC) @ParameterLayout(named = "cc (2):") final String cc2, @Parameter(optionality = Optionality.OPTIONAL, maxLength = CommunicationChannel.EmailType.Meta.MAX_LEN, regexPattern = CommunicationChannel.EmailType.Meta.REGEX, regexPatternReplacement = CommunicationChannel.EmailType.Meta.REGEX_DESC) @ParameterLayout(named = "cc (3):") final String cc3, @Parameter(optionality = Optionality.OPTIONAL, maxLength = CommunicationChannel.EmailType.Meta.MAX_LEN, regexPattern = CommunicationChannel.EmailType.Meta.REGEX, regexPatternReplacement = CommunicationChannel.EmailType.Meta.REGEX_DESC) @ParameterLayout(named = "bcc:") final String bcc, @Parameter(optionality = Optionality.OPTIONAL, maxLength = CommunicationChannel.EmailType.Meta.MAX_LEN, regexPattern = CommunicationChannel.EmailType.Meta.REGEX, regexPatternReplacement = CommunicationChannel.EmailType.Meta.REGEX_DESC) @ParameterLayout(named = "bcc (2):") final String bcc2) throws IOException {
final Document document = findDocument();
createEmailCommunication(document, toChannel, cc, cc2, cc3, bcc, bcc2);
return invoice;
}
use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class LeaseTermRepository method newLeaseTerm.
@Action(semantics = SemanticsOf.NON_IDEMPOTENT, hidden = Where.EVERYWHERE)
public LeaseTerm newLeaseTerm(final LeaseItem leaseItem, final LeaseTerm previous, final LocalDate startDate, final LocalDate endDate) {
LeaseTerm leaseTerm = leaseItem.getType().create(factoryService);
leaseTerm.setLeaseItem(leaseItem);
leaseTerm.setPrevious(previous);
if (previous != null) {
previous.setNext(leaseTerm);
}
leaseTerm.modifyStartDate(startDate);
if (endDate == null && !leaseTerm.allowOpenEndDate()) {
LocalDate nextEndDate = leaseTerm.getFrequency().nextDate(startDate).minusDays(1);
leaseTerm.modifyEndDate(nextEndDate);
} else {
leaseTerm.modifyEndDate(endDate);
}
// TOFIX: When changing the user in the integration test from 'tester' to 'estatio-admin' the getPrevious method returns null. Setting both sides of the bi-directional relationship makes them pass.
leaseTerm.initialize();
leaseTerm.align();
if (previous != null) {
previous.setNext(leaseTerm);
}
// TOFIX: without this flush and refresh, the collection of terms on the
// item is not updated. Removing code below will fail integration tests
// too.
persistIfNotAlready(leaseTerm);
getContainer().flush();
// getIsisJdoSupport().getJdoPersistenceManager().flush();
getIsisJdoSupport().refresh(leaseItem);
return leaseTerm;
}
use of org.apache.isis.applib.annotation.Action in project estatio by estatio.
the class LeaseTermRepository method findTermsWithInvalidInterval.
@Action(semantics = SemanticsOf.SAFE)
@MemberOrder(sequence = "30")
public List<LeaseTerm> findTermsWithInvalidInterval() {
List<LeaseTerm> lts = allLeaseTerms();
List<LeaseTerm> returnList = new ArrayList<>();
LocalDateInterval ldi;
for (LeaseTerm lt : lts) {
try {
if ((ldi = lt.getEffectiveInterval()) == null) {
returnList.add(lt);
continue;
}
if (!ldi.isValid()) {
returnList.add(lt);
continue;
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
returnList.add(lt);
}
}
if (returnList.isEmpty()) {
return null;
} else {
return returnList;
}
}
Aggregations