http://jira.mfd.msk:8088/browse/CLS-189 PaymentInstructionCreator правка заполнения из Credit/DebitLegAmount пустого.

This commit is contained in:
AKurakin 2023-02-06 13:20:47 +03:00
parent 1922203226
commit e960fb6cb4

View file

@ -68,6 +68,7 @@ public class PaymentInstructionCreator {
/** /**
* 2.2.2. Выполнить Создание paymentInstruction по liabilitiesClaimsAssets * 2.2.2. Выполнить Создание paymentInstruction по liabilitiesClaimsAssets
*
* @return Созданные PaymentInstruction, может быть несколько. Они уже сохранены в IMDG. * @return Созданные PaymentInstruction, может быть несколько. Они уже сохранены в IMDG.
*/ */
public List<PaymentInstruction> createAndSavePaymentInstructions(LiabilitiesClaimsAssets liabilitiesClaimsAssets, public List<PaymentInstruction> createAndSavePaymentInstructions(LiabilitiesClaimsAssets liabilitiesClaimsAssets,
@ -446,30 +447,30 @@ public class PaymentInstructionCreator {
* 2.2.2.1. Выполнить Изменение liabilitiesClaimsAssets по paymentInstruction. * 2.2.2.1. Выполнить Изменение liabilitiesClaimsAssets по paymentInstruction.
*/ */
public void updateFieldLiabilitiesClaimsAssetsByPayment(LiabilitiesClaimsAssets liabilitiesClaimsAssets, public void updateFieldLiabilitiesClaimsAssetsByPayment(LiabilitiesClaimsAssets liabilitiesClaimsAssets,
List<PaymentInstruction> paymentInstructions, List<PaymentInstruction> paymentInstructions,
Collection<ClearingCategory> clearingCategory) { Collection<ClearingCategory> clearingCategory) {
PaymentInstruction paymentIAny=paymentInstructions.iterator().next(); PaymentInstruction paymentIAny = paymentInstructions.iterator().next();
if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) { if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) {
BigDecimal amount = paymentIAny.getCreditLegAmount() == null ? BigDecimal.ZERO : new BigDecimal((Long)paymentIAny.getCreditLegAmount()); BigDecimal amount = bdFromLongSafe(paymentIAny.getCreditLegAmount());
// При обновлении (по paymentInstruction и категория I и счет CLRN):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount // При обновлении (по paymentInstruction и категория I и счет CLRN):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount
// При обновлении (по paymentInstruction и категория V и счет INFO):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount // При обновлении (по paymentInstruction и категория V и счет INFO):=liabilitiesClaimsAssets.liabilitiesQuantity - paymentInstruction.creditLeg_amount
amount = liabilitiesClaimsAssets.getLiabilitiesQuantity().subtract(amount); amount = liabilitiesClaimsAssets.getLiabilitiesQuantity().subtract(amount);
liabilitiesClaimsAssets.setLiabilitiesQuantity(amount); liabilitiesClaimsAssets.setLiabilitiesQuantity(amount);
} }
if (clearingCategory.contains(ClearingCategory.B)) { if (clearingCategory.contains(ClearingCategory.B)) {
BigDecimal amount = paymentIAny.getCreditLegAmount() == null ? BigDecimal.ZERO : new BigDecimal((Long)paymentIAny.getCreditLegAmount()); BigDecimal amount = bdFromLongSafe(paymentIAny.getCreditLegAmount());
// При обновлении (по paymentInstruction и категория B и счет CLRN): из paymentInstruction.creditLeg_amount // При обновлении (по paymentInstruction и категория B и счет CLRN): из paymentInstruction.creditLeg_amount
liabilitiesClaimsAssets.setLiabilitiesQuantity(amount); liabilitiesClaimsAssets.setLiabilitiesQuantity(amount);
} }
if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) { if (clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V)) {
BigDecimal amount = new BigDecimal((Long)paymentIAny.getDebitLegAmount()); BigDecimal amount = bdFromLongSafe(paymentIAny.getDebitLegAmount());
liabilitiesClaimsAssets.setClaimsQuantity(amount); liabilitiesClaimsAssets.setClaimsQuantity(amount);
} }
if (clearingCategory.contains(ClearingCategory.B)) { if (clearingCategory.contains(ClearingCategory.B)) {
BigDecimal amount = new BigDecimal((Long)paymentIAny.getDebitLegAmount()); BigDecimal amount = bdFromLongSafe(paymentIAny.getDebitLegAmount());
amount = liabilitiesClaimsAssets.getClaimsQuantity().subtract(amount); amount = liabilitiesClaimsAssets.getClaimsQuantity().subtract(amount);
liabilitiesClaimsAssets.setClaimsQuantity(amount); liabilitiesClaimsAssets.setClaimsQuantity(amount);
} }
@ -510,26 +511,27 @@ public class PaymentInstructionCreator {
/** /**
* Обновление liabilitiesClaimsMoney первой ноги по liabilitiesClaimsAssets * Обновление liabilitiesClaimsMoney первой ноги по liabilitiesClaimsAssets
*
* @param liabilitiesClaimsMoney обновить этот объект (firstLeg) * @param liabilitiesClaimsMoney обновить этот объект (firstLeg)
* @param paymentInstructions * @param paymentInstructions
* @param clearingCategory * @param clearingCategory
* @return были внесены изменения в liabilitiesClaimsMoney * @return были внесены изменения в liabilitiesClaimsMoney
*/ */
public boolean updateFieldLiabilitiesClaimsMoneyByPayment(LiabilitiesClaimsMoney liabilitiesClaimsMoney, public boolean updateFieldLiabilitiesClaimsMoneyByPayment(LiabilitiesClaimsMoney liabilitiesClaimsMoney,
List<PaymentInstruction> paymentInstructions, List<PaymentInstruction> paymentInstructions,
Collection<ClearingCategory> clearingCategory) { Collection<ClearingCategory> clearingCategory) {
boolean modified = false; boolean modified = false;
PaymentInstruction paymentIAny=paymentInstructions.iterator().next(); PaymentInstruction paymentIAny = paymentInstructions.iterator().next();
if ((clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V))) { if ((clearingCategory.contains(ClearingCategory.I) || clearingCategory.contains(ClearingCategory.V))) {
BigDecimal amount = liabilitiesClaimsMoney.getLiabilitiesAmount().subtract(new BigDecimal((Long)paymentIAny.getCreditLegAmount())); BigDecimal amount = liabilitiesClaimsMoney.getLiabilitiesAmount().subtract(bdFromLongSafe(paymentIAny.getCreditLegAmount()));
liabilitiesClaimsMoney.setLiabilitiesAmount(amount); liabilitiesClaimsMoney.setLiabilitiesAmount(amount);
modified = true; modified = true;
} }
if ((clearingCategory.contains(ClearingCategory.B))) { if ((clearingCategory.contains(ClearingCategory.B))) {
BigDecimal amount = liabilitiesClaimsMoney.getClaimsAmount().subtract(new BigDecimal((Long)paymentIAny.getDebitLegAmount())); BigDecimal amount = liabilitiesClaimsMoney.getClaimsAmount().subtract(bdFromLongSafe(paymentIAny.getDebitLegAmount()));
liabilitiesClaimsMoney.setClaimsAmount(amount); liabilitiesClaimsMoney.setClaimsAmount(amount);
modified = true; modified = true;
} }
@ -539,4 +541,9 @@ public class PaymentInstructionCreator {
} }
return modified; return modified;
} }
private BigDecimal bdFromLongSafe(Long l) {
if (l == null) return BigDecimal.ZERO;
return new BigDecimal(l);
}
} }