use of io.jmix.core.Id in project jmix-docs by Haulmont.
the class OrderLineEventListener method onOrderLineChangedBeforeCommit.
@EventListener
void onOrderLineChangedBeforeCommit(EntityChangedEvent<OrderLine> event) {
Order order;
if (event.getType() == EntityChangedEvent.Type.DELETED) {
// <1>
// <2>
Id<Order> orderId = event.getChanges().getOldReferenceId("order");
order = dataManager.load(orderId).one();
} else {
OrderLine orderLine = dataManager.load(event.getEntityId()).one();
order = orderLine.getOrder();
}
BigDecimal amount = order.getLines().stream().map(line -> line.getProduct().getPrice().multiply(BigDecimal.valueOf(line.getQuantity()))).reduce(BigDecimal.ZERO, BigDecimal::add);
order.setAmount(amount);
dataManager.save(order);
}
use of io.jmix.core.Id in project jmix-sneferu by mariodavid.
the class PetBrowse method onPetsTableOpenPetById.
@Subscribe("petsTable.openPetById")
public void onPetsTableOpenPetById(Action.ActionPerformedEvent event) {
FrameOwner frameOwner = this;
dialogs.createInputDialog(frameOwner).withParameter(InputParameter.stringParameter("id").withRequired(true).withCaption(messageBundle.getMessage("id"))).withCloseListener(inputDialogCloseEvent -> {
if (inputDialogCloseEvent.closedWith(DialogOutcome.OK)) {
final String id = inputDialogCloseEvent.getValue("id");
if (StringUtils.hasText(id)) {
final Optional<Pet> pet = dataManager.load(Pet.class).query("e.identificationNumber = ?1", id).optional();
if (pet.isPresent()) {
screenBuilders.editor(Pet.class, frameOwner).editEntity(pet.get()).withOpenMode(OpenMode.DIALOG).show();
} else {
noPetFoundForIdWarning(id);
}
} else {
noPetFoundForIdWarning(id);
}
}
}).show();
}
Aggregations