protected List<AccountingEventPaymentCode> updatePaymentCodes() {
final Money totalAmount = calculateTotalAmount();
final AccountingEventPaymentCode nonProcessedPaymentCode = getNonProcessedPaymentCode();
if (nonProcessedPaymentCode != null) {
nonProcessedPaymentCode.update(new YearMonthDay(), calculatePaymentCodeEndDate(), totalAmount, totalAmount);
} else {
final AccountingEventPaymentCode paymentCode = getCancelledPaymentCode();
if (paymentCode != null) {
paymentCode.update(new YearMonthDay(), calculatePaymentCodeEndDate(), totalAmount, totalAmount);
paymentCode.setState(PaymentCodeState.NEW);