}
public ActionForward createGratuityExemption(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
final CreateGratuityExemptionBean createGratuityExemptionBean = getRenderedObject("createGratuityExemptionBean");
if (!createGratuityExemptionBean.isPercentageExemption() && createGratuityExemptionBean.getAmount() == null) {
return invalidCreateGratuityExemption(mapping, request, "context",
"error.payments.gratuityExemption.amount.or.percentage.are.required");
}
if (createGratuityExemptionBean.isPercentageExemption() && createGratuityExemptionBean.getAmount() != null) {
return invalidCreateGratuityExemption(mapping, request, "context",
"error.payments.gratuityExemption.cannot.select.both.amount.and.percentage");
}
try {
CreateGratuityExemption.run(getUserView(request).getPerson(), createGratuityExemptionBean);
} catch (DomainExceptionWithLabelFormatter ex) {
return invalidCreateGratuityExemption(mapping, request, ex.getKey(),
solveLabelFormatterArgs(request, ex.getLabelFormatterArgs()));
} catch (DomainException ex) {
return invalidCreateGratuityExemption(mapping, request, ex.getKey());
}
request.setAttribute("eventId", createGratuityExemptionBean.getGratuityEvent().getExternalId());
return showExemptions(mapping, form, request, response);
}