Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
bfe9f42e04
6 changed files with 345 additions and 183 deletions
|
|
@ -1,5 +1,7 @@
|
|||
package ru.spcex.clearing.account.config;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import ru.clearing.classes.statics.data.account.Account;
|
||||
|
|
@ -24,9 +26,11 @@ import java.util.function.Function;
|
|||
|
||||
@Configuration
|
||||
public class ValidationConfig {
|
||||
Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Map<String, Imdg<? extends SpcexObjectBase>> imdgs;
|
||||
|
||||
public ValidationConfig(ImdgProvider imdgProvider) {
|
||||
log.debug("Init validator config");
|
||||
this.imdgs = new HashMap<>();
|
||||
BiConsumer<String, Class<? extends SpcexObjectBase>> addImdg = (s, aClass) -> imdgs.put(s, imdgProvider.getImdg(s, aClass));
|
||||
addImdg.accept(IMDGDistributedNames.Map_Account, Account.class);
|
||||
|
|
@ -44,6 +48,7 @@ public class ValidationConfig {
|
|||
|
||||
@Bean("bankAccountNewRequestValidator")
|
||||
public Function<BankAccountNewRequest, IValidator> bankAccountNewRequestValidator() {
|
||||
log.debug("Create validator bankAccountNewRequestValidator");
|
||||
return bankAccountNewRequest -> {
|
||||
ImdgValidationContext<BankAccountNewRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(bankAccountNewRequest);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Service;
|
||||
import ru.clearing.classes.statics.data.account.Account;
|
||||
import ru.clearing.classes.statics.data.account.BankAccount;
|
||||
|
|
@ -51,6 +52,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea
|
|||
ImdgProvider imdgProvider,
|
||||
IMessageResolver messageResolver,
|
||||
|
||||
@Qualifier("bankAccountNewRequestValidator")
|
||||
Function<BankAccountNewRequest, IValidator> bankAccountNewRequestValidator) {
|
||||
super(kafkaQueue, kafkaProducer);
|
||||
this.bankAccountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BankAccount, BankAccount.class);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--?xml-stylesheet type="text/xsl" href="\..\corp-reports\src\data\meta\meta.server.xslt"?-->
|
||||
<meta version="2.4.0.11">
|
||||
<meta version="2.4.0.14">
|
||||
<!-- _xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" _xsi:noNamespaceSchemaLocation="file:///E:/d/projects/meta/from/meta.xsd" -->
|
||||
<!--Здесь словари-->
|
||||
<enums>
|
||||
|
|
@ -1150,33 +1150,33 @@
|
|||
<operationStatus type="12" name="Cтатус обработки" shortname="Статус" searchable="true" sortable="true" link="operationStatus"/>
|
||||
</operation>
|
||||
<paymentInstruction name="Платежные поручения" destination="payment-instructions" class="ru.clearing.classes.statics.data.payment.PaymentInstruction" table="payment_instruction">
|
||||
<senderId type="1" name="Наименование участника отправителя" shortname="Отправитель" searchable="true" sortable="true" link="company" linkCode="shortName"/>
|
||||
<addresseeId type="1" name="Наименование участника получателя" shortname="Получатель" searchable="true" sortable="true" link="company" linkCode="shortName"/>
|
||||
<adresseeBic type="2" length="255" name="Банковский идентификационный код (БИК) получателя" shortname="БИК получателя" searchable="true" sortable="true" visible="true"/>
|
||||
<payeeBankName type="2" length="255" name="Наименование банка отправителя" shortname="Банк отправителя" searchable="true" sortable="true" visible="true"/>
|
||||
<payeeBic type="2" length="255" name="Банковский идентификационный код (БИК) отправителя" shortname="БИК отправителя" searchable="true" sortable="true" visible="true"/>
|
||||
<addresseeBankName type="2" length="255" name="Наименование банка получателя" shortname="Банк получателя" searchable="true" sortable="true" visible="true"/>
|
||||
<senderId type="1" name="Наименование участника отправителя" shortname="Отправитель" searchable="true" sortable="true" link="company" linkCode="shortName" visible="true"/>
|
||||
<addresseeId type="1" name="Наименование участника получателя" shortname="Получатель" searchable="true" sortable="true" link="company" linkCode="shortName" visible="true"/>
|
||||
<adresseeBic type="2" length="255" name="Банковский идентификационный код (БИК) получателя" shortname="БИК получателя" searchable="true" sortable="true"/>
|
||||
<payeeBankName type="2" length="255" name="Наименование банка отправителя" shortname="Банк отправителя" searchable="true" sortable="true"/>
|
||||
<payeeBic type="2" length="255" name="Банковский идентификационный код (БИК) отправителя" shortname="БИК отправителя" searchable="true" sortable="true"/>
|
||||
<addresseeBankName type="2" length="255" name="Наименование банка получателя" shortname="Банк получателя" searchable="true" sortable="true"/>
|
||||
<paymentDate type="4" name="Дата и время платежа" shortname="Дата и время платежа" searchable="true" sortable="true" ignore="true"/>
|
||||
<paymentPurpose type="2" name="Назначение платежа" shortname="Назначение" searchable="true" sortable="true" visible="true" length="255"/>
|
||||
<settlementDate type="6" name="Дата расчетов" shortname="Дата расчетов" searchable="true" sortable="true"/>
|
||||
<creditLeg_amount field="creditLegAmount" type="1" name="Сумма отправителя" shortname="Сумма отправителя" searchable="true" sortable="true" visible="true"/>
|
||||
<debitLeg_amount field="debitLegAmount" type="1" name="Сумма получателя" shortname="Сумма получателя" searchable="true" sortable="true" visible="true"/>
|
||||
<paymentPurpose type="2" length="255" name="Назначение платежа" shortname="Назначение" searchable="true" sortable="true" visible="true"/>
|
||||
<settlementDate type="6" name="Дата расчетов" shortname="Дата расчетов" searchable="true" sortable="true" visible="true"/>
|
||||
<creditLeg_amount field="creditLegAmount" type="10" name="Сумма отправителя" shortname="Сумма отправителя" searchable="true" sortable="true" visible="true"/>
|
||||
<debitLeg_amount field="debitLegAmount" type="10" name="Сумма получателя" shortname="Сумма получателя" searchable="true" sortable="true" visible="true"/>
|
||||
<creditLeg_accountId field="creditLegAccountId" type="1" name="Наименование счета отправителя" shortname="Счет отправителя" searchable="true" sortable="true" link="account" ignore="true"/>
|
||||
<credit_csAccount field="creditCsAccount" type="2" length="255" name="Корреспондентский счет отправителя" shortname="Корр. счет отправителя" searchable="true" sortable="true" visible="true"/>
|
||||
<credit_csAccount field="creditCsAccount" type="2" length="255" name="Корреспондентский счет отправителя" shortname="Корр. счет отправителя" searchable="true" sortable="true" ignore="true"/>
|
||||
<creditLeg_account field="creditLegAccount" type="2" length="50" name="Счет отправителя" shortname="Счет отправителя" searchable="true" sortable="true" visible="true"/>
|
||||
<debitLeg_accountId field="debitLegAccountId" type="1" name="Наименование счета получателя" shortname="Счет получателя" searchable="true" sortable="true" link="account" ignore="true"/>
|
||||
<debit_csAccount field="debitCsAccount" type="2" length="255" name="Корреспондентский счет получателя" shortname="Корр. счет получателя" searchable="true" sortable="true" visible="true"/>
|
||||
<debit_csAccount field="debitCsAccount" type="2" length="255" name="Корреспондентский счет получателя" shortname="Корр. счет получателя" searchable="true" sortable="true" ignore="true"/>
|
||||
<debitLeg_account field="debitLegAccount" type="2" length="50" name="Счет получателя" shortname="Счет получателя" searchable="true" sortable="true" visible="true"/>
|
||||
<creditLeg_direction field="creditLegDirection" type="1" name="Направление отправителя" shortname="Направление отправителя" searchable="true" sortable="true" link="inOutDirection" ignore="true"/>
|
||||
<debitLeg_direction field="debitLegDirection" type="1" name="Направление получателя" shortname="Направление получателя" searchable="true" sortable="true" link="inOutDirection" ignore="true"/>
|
||||
<creditLeg_currencyCode field="creditLegCurrencyCode" type="12" name="Код валюты отправителя" shortname="Валюта отправителя" searchable="true" sortable="true" visible="true" link="currency"/>
|
||||
<debitLeg_currencyCode field="debitLegCurrencyCode" type="12" name="Код валюты получателя" shortname="Валюта получателя" searchable="true" sortable="true" visible="true" link="currency"/>
|
||||
<creditLeg_currencyCode field="creditLegCurrencyCode" type="12" name="Код валюты отправителя" shortname="Валюта отправителя" searchable="true" sortable="true" link="currency"/>
|
||||
<debitLeg_currencyCode field="debitLegCurrencyCode" type="12" name="Код валюты получателя" shortname="Валюта получателя" searchable="true" sortable="true" link="currency"/>
|
||||
<transactionStatus type="12" name="Cтатус транзакции" shortname="Статус" searchable="true" sortable="true" visible="true" link="transactionStatus" ignore="true"/>
|
||||
<documentNumber type="2" length="255" name="Номер документа в сторонней системе" shortname="Номер РО" searchable="true" sortable="true"/>
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||
<createdAt field="created" type="4" name="Дата и время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
|
||||
<updatedAt field="updated" type="4" name="Дата и время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/>
|
||||
<clearingDate type="6" name="Дата расчета" shortname="Дата расчета" searchable="true" sortable="true" visible="true"/>
|
||||
<createdAt field="created" type="4" name="Дата и время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
|
||||
<clearingDate type="6" name="Дата расчета" shortname="Дата расчета" searchable="true" sortable="true" ignore="true"/>
|
||||
</paymentInstruction>
|
||||
<marketData name="Итоги торгов" class="ru.clearing.classes.TransactionData.Execution.MarketData" table="market_data">
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" visible="false" searchable="true" sortable="true"/>
|
||||
|
|
|
|||
|
|
@ -253,9 +253,19 @@ public class Clearing {
|
|||
liabilitiesClaimsAssetsImdg.update(lcaSecondLeg);
|
||||
|
||||
log.trace("creating paymentInstructions");
|
||||
List<PaymentInstruction> paymentInstructions = paymentInstructionCreator.createAndSavePaymentInstructions(execDeposit, lcaFirstLeg, Collections.singleton(category));
|
||||
paymentInstructionCreator.updateFieldLiabilitiesClaimsAssetsByPayment(lcaFirstLeg, lcmFirstLeg, paymentInstructions, Collections.singleton(category));
|
||||
liabilitiesClaimsAssetsImdg.update(lcaFirstLeg);
|
||||
boolean isCreatedFirstLegI = ClearingCategory.I.equals(category) && !lcaFirstLegFound.isPresent();
|
||||
if (isCreatedFirstLegI) {
|
||||
log.debug("ignore create paymentInstruction for I firstLeg new: execDeposit {}, lcaFirstLeg {}",
|
||||
execDeposit.getId(), lcaFirstLeg.getId());
|
||||
} else {
|
||||
List<PaymentInstruction> paymentInstructions = paymentInstructionCreator.createAndSavePaymentInstructions(execDeposit, lcaFirstLeg, Collections.singleton(category));
|
||||
if (paymentInstructions.isEmpty()) {
|
||||
log.trace("For lcaFirstLeg[{}] did not creaded paymentInstruction's", lcaFirstLeg.getId());
|
||||
} else {
|
||||
paymentInstructionCreator.updateFieldLiabilitiesClaimsAssetsByPayment(lcaFirstLeg, lcmFirstLeg, paymentInstructions, Collections.singleton(category));
|
||||
liabilitiesClaimsAssetsImdg.update(lcaFirstLeg);
|
||||
}
|
||||
}
|
||||
log.trace("lcaFirstLeg {}, lcaSecondLeg {}", lcaFirstLeg, lcaSecondLeg);
|
||||
|
||||
// log.trace("updating LiabilitiesClaimsMoney by payment");
|
||||
|
|
|
|||
|
|
@ -77,8 +77,8 @@ public class PaymentInstructionCreator {
|
|||
public List<PaymentInstruction> createAndSavePaymentInstructions(ExecutionDeposit executionDeposit, LiabilitiesClaimsAssets liabilitiesClaimsAssets,
|
||||
Collection<ClearingCategory> clearingCategory) {
|
||||
List<PaymentInstruction> newPaymentInstructions = createPaymentInstructions(executionDeposit, liabilitiesClaimsAssets, clearingCategory);
|
||||
log.trace("Created {} PaymentInstruction by LiabilitiesClaimsAssets[{}]. Do save ti IMDG.",
|
||||
newPaymentInstructions.size(), liabilitiesClaimsAssets.getId());
|
||||
log.trace("Created {} PaymentInstruction by LiabilitiesClaimsAssets[{}], category {}. Do save in IMDG.",
|
||||
newPaymentInstructions.size(), liabilitiesClaimsAssets.getId(), clearingCategory);
|
||||
for (PaymentInstruction instruction : newPaymentInstructions) {
|
||||
paymentInstructionImdg.insert(instruction);
|
||||
}
|
||||
|
|
@ -98,35 +98,23 @@ public class PaymentInstructionCreator {
|
|||
Collection<ClearingCategory> clearingCategory) {
|
||||
List<PaymentInstruction> newPaymentInstructions = new ArrayList<>();
|
||||
Instant now = Instant.now();
|
||||
|
||||
LocalDate today = LocalDate.now();
|
||||
if (!today.equals(liabilitiesClaimsAssets.getSettlementDate())) {
|
||||
log.debug("For liabilitiesClaimsAssets.SettlementDate={} is not today.", liabilitiesClaimsAssets.getSettlementDate());
|
||||
return newPaymentInstructions;
|
||||
}
|
||||
// I
|
||||
if (clearingCategory.contains(ClearingCategory.I)) {
|
||||
log.debug("By liabilitiesClaimsAssets[{}] create for category I 2 PaymentInstruction record", liabilitiesClaimsAssets.getId());
|
||||
log.debug("By liabilitiesClaimsAssets[{}] create for category I 1 PaymentInstruction record", liabilitiesClaimsAssets.getId());
|
||||
PaymentInstruction payment1 = new PaymentInstruction();
|
||||
PaymentInstruction payment2 = new PaymentInstruction();
|
||||
|
||||
payment1.setId(idGenerator.nextId());
|
||||
payment1.setCreated(now);
|
||||
payment1.setClearingDate(TimeUtil.toLocalDate(now));
|
||||
payment2.setId(idGenerator.nextId());
|
||||
payment2.setCreated(now);
|
||||
payment2.setClearingDate(TimeUtil.toLocalDate(now));
|
||||
|
||||
payment1.setSenderId(liabilitiesClaimsAssets.getCompanyId());
|
||||
payment2.setSenderId(SPVB_ID); // СПВБ
|
||||
|
||||
payment1.setAddresseeId(SPVB_ID); // СПВБ
|
||||
{
|
||||
String sqlLCA = String.format("exchangeExecutionId = %s and side != '%s'",
|
||||
executionDeposit.getExchangeExecutionId(), executionDeposit.getSide());
|
||||
ExecutionDeposit counterExecutionDeposit = executionDepositImdg.getSingleObjectBySQL(sqlLCA);
|
||||
if (counterExecutionDeposit == null) {
|
||||
log.warn("Counter ExecutionDeposit not found for : {}", sqlLCA);
|
||||
} else {
|
||||
payment2.setAddresseeId(counterExecutionDeposit.getCompanyId());
|
||||
log.trace("payment2.AddresseeId={} found by: {}", payment2.getAddresseeId(), sqlLCA);
|
||||
}
|
||||
}
|
||||
|
||||
String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC);
|
||||
if (symbol1 == null) {
|
||||
|
|
@ -134,12 +122,6 @@ public class PaymentInstructionCreator {
|
|||
} else {
|
||||
payment1.setAdresseeBic(symbol1);
|
||||
}
|
||||
String symbol2 = selectSymbolValue(payment2.getAddresseeId(), CompanySymbol.BIC);
|
||||
if (symbol2 == null) {
|
||||
log.warn("CompanySymbols BIC not found for companyId={}", payment2.getAddresseeId());
|
||||
} else {
|
||||
payment2.setAdresseeBic(symbol2);
|
||||
}
|
||||
|
||||
Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ"
|
||||
String companyPRCName = null;
|
||||
|
|
@ -149,53 +131,31 @@ public class PaymentInstructionCreator {
|
|||
companyPRCName = companyPRC.getShortName();
|
||||
}
|
||||
payment1.setPayeeBankName(companyPRCName);
|
||||
payment2.setPayeeBankName(companyPRCName);
|
||||
|
||||
String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ"
|
||||
payment1.setPayeeBic(symbolPRC);
|
||||
payment2.setPayeeBic(symbolPRC);
|
||||
|
||||
payment1.setAddresseeBankName(companyPRCName);
|
||||
payment2.setAddresseeBankName(companyPRCName);
|
||||
|
||||
payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate()));
|
||||
payment2.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate()));
|
||||
|
||||
payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract());
|
||||
payment2.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract());
|
||||
|
||||
payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
|
||||
payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
|
||||
|
||||
Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue();
|
||||
payment1.setCreditLegAmount(amount);
|
||||
payment2.setCreditLegAmount(amount);
|
||||
payment1.setDebitLegAmount(amount);
|
||||
payment2.setDebitLegAmount(amount);
|
||||
|
||||
payment1.setCreditLegAccountId(liabilitiesClaimsAssets.getAccountId());
|
||||
{
|
||||
Account anotherAcc = selectAccount(payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED);
|
||||
if (anotherAcc == null) {
|
||||
log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}",
|
||||
payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED);
|
||||
} else {
|
||||
payment2.setCreditLegAccountId(anotherAcc.getId());
|
||||
}
|
||||
}
|
||||
|
||||
payment1.setCreditCsAccount(null);
|
||||
payment2.setCreditCsAccount(null);
|
||||
|
||||
{
|
||||
Account acc1 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId());
|
||||
if (acc1 != null) {
|
||||
payment1.setCreditLegAccount(acc1.getAccount());
|
||||
}
|
||||
Account acc2 = accountImdg.getSingleObjectByID(payment2.getCreditLegAccountId());
|
||||
if (acc2 != null) {
|
||||
payment2.setCreditLegAccount(acc2.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
|
|
@ -204,45 +164,31 @@ public class PaymentInstructionCreator {
|
|||
payment1.setDebitLegAccountId(acc1.getId());
|
||||
payment1.setDebitLegAccount(acc1.getAccount());
|
||||
}
|
||||
Account acc2 = selectAccount(payment2.getAddresseeId(), AccountType.Clrn, Status.Active, Allowed.ALLOWED);
|
||||
if (acc2 != null) {
|
||||
payment2.setDebitLegAccountId(acc2.getId());
|
||||
payment2.setDebitLegAccount(acc2.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
payment1.setDebitCsAccount(null);
|
||||
payment2.setDebitCsAccount(null);
|
||||
|
||||
// payment1.setCreditLegDirection(InOutDirection.out.getKey());
|
||||
// payment2.setCreditLegDirection(InOutDirection.out.getKey());
|
||||
// payment1.setDebitLegDirection(InOutDirection.in.getKey());
|
||||
// payment2.setDebitLegDirection(InOutDirection.in.getKey());
|
||||
|
||||
payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
|
||||
payment1.setTransactionStatus(TransactionStatus.stld.getKey());
|
||||
payment2.setTransactionStatus(TransactionStatus.stld.getKey());
|
||||
|
||||
|
||||
payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1));
|
||||
payment2.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment2));
|
||||
|
||||
newPaymentInstructions.add(payment1);
|
||||
newPaymentInstructions.add(payment2);
|
||||
} else {
|
||||
// V / B
|
||||
if (clearingCategory.contains(ClearingCategory.V)) {
|
||||
log.debug("By liabilitiesClaimsAssets[{}] create for category V 1 PaymentInstruction record", liabilitiesClaimsAssets.getId());
|
||||
PaymentInstruction payment1 = new PaymentInstruction();
|
||||
payment1.setId(idGenerator.nextId());
|
||||
payment1.setCreated(now);
|
||||
payment1.setClearingDate(TimeUtil.toLocalDate(now));
|
||||
|
||||
payment1.setSenderId(SPVB_ID); // СПВБ
|
||||
/*{
|
||||
PaymentInstruction payment2 = new PaymentInstruction();
|
||||
|
||||
payment2.setId(idGenerator.nextId());
|
||||
payment2.setCreated(now);
|
||||
payment2.setClearingDate(TimeUtil.toLocalDate(now));
|
||||
|
||||
payment2.setSenderId(SPVB_ID); // СПВБ
|
||||
|
||||
{
|
||||
String sqlLCA = String.format("exchangeExecutionId = %s and side != '%s'",
|
||||
|
|
@ -251,16 +197,16 @@ public class PaymentInstructionCreator {
|
|||
if (counterExecutionDeposit == null) {
|
||||
log.warn("Counter ExecutionDeposit not found for : {}", sqlLCA);
|
||||
} else {
|
||||
payment1.setAddresseeId(counterExecutionDeposit.getCompanyId());
|
||||
log.trace("payment1.AddresseeId={} found by: {}", payment1.getAddresseeId(), sqlLCA);
|
||||
payment2.setAddresseeId(counterExecutionDeposit.getCompanyId());
|
||||
log.trace("payment2.AddresseeId={} found by: {}", payment2.getAddresseeId(), sqlLCA);
|
||||
}
|
||||
}
|
||||
|
||||
String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC);
|
||||
if (symbol1 == null) {
|
||||
log.warn("CompanySymbols BIC not found for companyId={}", payment1.getAddresseeId());
|
||||
String symbol2 = selectSymbolValue(payment2.getAddresseeId(), CompanySymbol.BIC);
|
||||
if (symbol2 == null) {
|
||||
log.warn("CompanySymbols BIC not found for companyId={}", payment2.getAddresseeId());
|
||||
} else {
|
||||
payment1.setAdresseeBic(symbol1);
|
||||
payment2.setAdresseeBic(symbol2);
|
||||
}
|
||||
|
||||
Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ"
|
||||
|
|
@ -270,136 +216,314 @@ public class PaymentInstructionCreator {
|
|||
} else {
|
||||
companyPRCName = companyPRC.getShortName();
|
||||
}
|
||||
payment1.setPayeeBankName(companyPRCName);
|
||||
payment2.setPayeeBankName(companyPRCName);
|
||||
|
||||
String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ"
|
||||
payment1.setPayeeBic(symbolPRC);
|
||||
payment2.setPayeeBic(symbolPRC);
|
||||
|
||||
payment1.setAddresseeBankName(companyPRCName);
|
||||
payment2.setAddresseeBankName(companyPRCName);
|
||||
|
||||
payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate()));
|
||||
payment2.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate()));
|
||||
|
||||
payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract());
|
||||
payment2.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract());
|
||||
|
||||
payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
|
||||
payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
|
||||
|
||||
Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue();
|
||||
payment1.setCreditLegAmount(amount);
|
||||
payment1.setDebitLegAmount(amount);
|
||||
payment2.setCreditLegAmount(amount);
|
||||
payment2.setDebitLegAmount(amount);
|
||||
|
||||
{
|
||||
Account acc1 = selectAccount(payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED);
|
||||
if (acc1 == null) {
|
||||
Account anotherAcc = selectAccount(payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED);
|
||||
if (anotherAcc == null) {
|
||||
log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}",
|
||||
payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED);
|
||||
payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED);
|
||||
} else {
|
||||
payment1.setCreditLegAccountId(acc1.getId());
|
||||
payment1.setCreditLegAccount(acc1.getAccount());
|
||||
payment2.setCreditLegAccountId(anotherAcc.getId());
|
||||
}
|
||||
}
|
||||
|
||||
payment1.setCreditCsAccount(null);
|
||||
payment2.setCreditCsAccount(null);
|
||||
|
||||
{
|
||||
Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED);
|
||||
if (acc1 != null) {
|
||||
payment1.setDebitLegAccountId(acc1.getId());
|
||||
payment1.setDebitLegAccount(acc1.getAccount());
|
||||
Account acc2 = accountImdg.getSingleObjectByID(payment2.getCreditLegAccountId());
|
||||
if (acc2 != null) {
|
||||
payment2.setCreditLegAccount(acc2.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
payment1.setDebitCsAccount(null);
|
||||
{
|
||||
Account acc2 = selectAccount(payment2.getAddresseeId(), AccountType.Clrn, Status.Active, Allowed.ALLOWED);
|
||||
if (acc2 != null) {
|
||||
payment2.setDebitLegAccountId(acc2.getId());
|
||||
payment2.setDebitLegAccount(acc2.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
// payment1.setCreditLegDirection(InOutDirection.out.getKey());
|
||||
// payment1.setDebitLegDirection(InOutDirection.in.getKey());
|
||||
payment2.setDebitCsAccount(null);
|
||||
|
||||
payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
// payment2.setCreditLegDirection(InOutDirection.out.getKey());
|
||||
// payment2.setDebitLegDirection(InOutDirection.in.getKey());
|
||||
|
||||
payment1.setTransactionStatus(TransactionStatus.stld.getKey());
|
||||
payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
|
||||
payment2.setTransactionStatus(TransactionStatus.stld.getKey());
|
||||
|
||||
|
||||
payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1));
|
||||
payment2.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment2));
|
||||
|
||||
newPaymentInstructions.add(payment1);
|
||||
} else // Для V,B только 1 PaymentInstruction
|
||||
newPaymentInstructions.add(payment2);
|
||||
}*/
|
||||
} else {
|
||||
// V / B
|
||||
if (clearingCategory.contains(ClearingCategory.V)) {
|
||||
log.debug("By liabilitiesClaimsAssets[{}] create for category V 0 PaymentInstruction record - ignore", liabilitiesClaimsAssets.getId());
|
||||
// PaymentInstruction payment1 = new PaymentInstruction();
|
||||
// payment1.setId(idGenerator.nextId());
|
||||
// payment1.setCreated(now);
|
||||
// payment1.setClearingDate(TimeUtil.toLocalDate(now));
|
||||
//
|
||||
// payment1.setSenderId(SPVB_ID); // СПВБ
|
||||
//
|
||||
// {
|
||||
// String sqlLCA = String.format("exchangeExecutionId = %s and side != '%s'",
|
||||
// executionDeposit.getExchangeExecutionId(), executionDeposit.getSide());
|
||||
// ExecutionDeposit counterExecutionDeposit = executionDepositImdg.getSingleObjectBySQL(sqlLCA);
|
||||
// if (counterExecutionDeposit == null) {
|
||||
// log.warn("Counter ExecutionDeposit not found for : {}", sqlLCA);
|
||||
// } else {
|
||||
// payment1.setAddresseeId(counterExecutionDeposit.getCompanyId());
|
||||
// log.trace("payment1.AddresseeId={} found by: {}", payment1.getAddresseeId(), sqlLCA);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC);
|
||||
// if (symbol1 == null) {
|
||||
// log.warn("CompanySymbols BIC not found for companyId={}", payment1.getAddresseeId());
|
||||
// } else {
|
||||
// payment1.setAdresseeBic(symbol1);
|
||||
// }
|
||||
//
|
||||
// Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ"
|
||||
// String companyPRCName = null;
|
||||
// if (companyPRC == null) {
|
||||
// log.warn("Company.id={} not found", PRC_ID);
|
||||
// } else {
|
||||
// companyPRCName = companyPRC.getShortName();
|
||||
// }
|
||||
// payment1.setPayeeBankName(companyPRCName);
|
||||
//
|
||||
// String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ"
|
||||
// payment1.setPayeeBic(symbolPRC);
|
||||
//
|
||||
// payment1.setAddresseeBankName(companyPRCName);
|
||||
//
|
||||
// payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate()));
|
||||
//
|
||||
// payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract());
|
||||
//
|
||||
// payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
|
||||
//
|
||||
// Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue();
|
||||
// payment1.setCreditLegAmount(amount);
|
||||
// payment1.setDebitLegAmount(amount);
|
||||
//
|
||||
// {
|
||||
// Account acc1 = selectAccount(payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED);
|
||||
// if (acc1 == null) {
|
||||
// log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}",
|
||||
// payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED);
|
||||
// } else {
|
||||
// payment1.setCreditLegAccountId(acc1.getId());
|
||||
// payment1.setCreditLegAccount(acc1.getAccount());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// payment1.setCreditCsAccount(null);
|
||||
//
|
||||
// {
|
||||
// Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED);
|
||||
// if (acc1 != null) {
|
||||
// payment1.setDebitLegAccountId(acc1.getId());
|
||||
// payment1.setDebitLegAccount(acc1.getAccount());
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// payment1.setDebitCsAccount(null);
|
||||
//
|
||||
//// payment1.setCreditLegDirection(InOutDirection.out.getKey());
|
||||
//// payment1.setDebitLegDirection(InOutDirection.in.getKey());
|
||||
//
|
||||
// payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
// payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
//
|
||||
// payment1.setTransactionStatus(TransactionStatus.stld.getKey());
|
||||
//
|
||||
//
|
||||
// payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1));
|
||||
//
|
||||
// newPaymentInstructions.add(payment1);
|
||||
}
|
||||
if (clearingCategory.contains(ClearingCategory.B)) {
|
||||
log.debug("By liabilitiesClaimsAssets[{}] create for category B 1 PaymentInstruction record", liabilitiesClaimsAssets.getId());
|
||||
PaymentInstruction payment1 = new PaymentInstruction();
|
||||
payment1.setId(idGenerator.nextId());
|
||||
payment1.setCreated(now);
|
||||
payment1.setClearingDate(TimeUtil.toLocalDate(now));
|
||||
log.debug("By liabilitiesClaimsAssets[{}] create for category B 2 PaymentInstruction record", liabilitiesClaimsAssets.getId());
|
||||
{ // record 1
|
||||
{
|
||||
PaymentInstruction payment1 = new PaymentInstruction();
|
||||
payment1.setId(idGenerator.nextId());
|
||||
payment1.setCreated(now);
|
||||
payment1.setClearingDate(TimeUtil.toLocalDate(now));
|
||||
|
||||
payment1.setSenderId(liabilitiesClaimsAssets.getCompanyId());
|
||||
payment1.setSenderId(SPVB_ID); // СПВБ
|
||||
payment1.setAddresseeId(liabilitiesClaimsAssets.getCompanyId());
|
||||
|
||||
payment1.setAddresseeId(liabilitiesClaimsAssets.getCompanyId());
|
||||
String symbol2 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC);
|
||||
if (symbol2 == null) {
|
||||
log.warn("CompanySymbols BIC not found for companyId={}", payment1.getAddresseeId());
|
||||
} else {
|
||||
payment1.setAdresseeBic(symbol2);
|
||||
}
|
||||
|
||||
Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ"
|
||||
String companyPRCName = null;
|
||||
if (companyPRC == null) {
|
||||
log.warn("Company.id={} not found", PRC_ID);
|
||||
} else {
|
||||
companyPRCName = companyPRC.getShortName();
|
||||
}
|
||||
payment1.setPayeeBankName(companyPRCName);
|
||||
|
||||
String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ"
|
||||
payment1.setPayeeBic(symbolPRC);
|
||||
|
||||
payment1.setAddresseeBankName(companyPRCName);
|
||||
payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate()));
|
||||
payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract());
|
||||
payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
|
||||
|
||||
Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue();
|
||||
payment1.setCreditLegAmount(amount);
|
||||
payment1.setDebitLegAmount(amount);
|
||||
|
||||
{
|
||||
Account anotherAcc = selectAccount(payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED);
|
||||
if (anotherAcc == null) {
|
||||
log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}",
|
||||
payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED);
|
||||
} else {
|
||||
payment1.setCreditLegAccountId(anotherAcc.getId());
|
||||
}
|
||||
}
|
||||
|
||||
payment1.setCreditCsAccount(null);
|
||||
|
||||
{
|
||||
Account acc2 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId());
|
||||
if (acc2 != null) {
|
||||
payment1.setCreditLegAccount(acc2.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
Account acc2 = accountImdg.getSingleObjectByID(liabilitiesClaimsAssets.getAccountId());
|
||||
if (acc2 != null) {
|
||||
payment1.setDebitLegAccountId(acc2.getId());
|
||||
payment1.setDebitLegAccount(acc2.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
payment1.setDebitCsAccount(null);
|
||||
|
||||
// payment2.setCreditLegDirection(InOutDirection.out.getKey());
|
||||
// payment2.setDebitLegDirection(InOutDirection.in.getKey());
|
||||
|
||||
payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
|
||||
payment1.setTransactionStatus(TransactionStatus.stld.getKey());
|
||||
|
||||
payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1));
|
||||
|
||||
newPaymentInstructions.add(payment1);
|
||||
}
|
||||
|
||||
String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC);
|
||||
if (symbol1 == null) {
|
||||
log.warn("CompanySymbols BIC not found for companyId={}", payment1.getAddresseeId());
|
||||
} else {
|
||||
payment1.setAdresseeBic(symbol1);
|
||||
}
|
||||
{ // record 2
|
||||
PaymentInstruction payment2 = new PaymentInstruction();
|
||||
payment2.setId(idGenerator.nextId());
|
||||
payment2.setCreated(now);
|
||||
payment2.setClearingDate(TimeUtil.toLocalDate(now));
|
||||
|
||||
Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ"
|
||||
String companyPRCName = null;
|
||||
if (companyPRC == null) {
|
||||
log.warn("Company.id={} not found", PRC_ID);
|
||||
} else {
|
||||
companyPRCName = companyPRC.getShortName();
|
||||
}
|
||||
payment1.setPayeeBankName(companyPRCName);
|
||||
payment2.setSenderId(liabilitiesClaimsAssets.getCompanyId());
|
||||
|
||||
String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ"
|
||||
payment1.setPayeeBic(symbolPRC);
|
||||
payment2.setAddresseeId(liabilitiesClaimsAssets.getCompanyId());
|
||||
|
||||
payment1.setAddresseeBankName(companyPRCName);
|
||||
|
||||
payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate()));
|
||||
|
||||
payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract());
|
||||
|
||||
payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
|
||||
|
||||
Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue();
|
||||
payment1.setCreditLegAmount(amount);
|
||||
payment1.setDebitLegAmount(amount);
|
||||
|
||||
{
|
||||
Long accountId = liabilitiesClaimsAssets.getAccountId();
|
||||
Account acc1 = accountImdg.getSingleObjectByID(accountId);
|
||||
if (acc1 == null) {
|
||||
log.warn("Account not found: {}", accountId);
|
||||
String symbol1 = selectSymbolValue(payment2.getAddresseeId(), CompanySymbol.BIC);
|
||||
if (symbol1 == null) {
|
||||
log.warn("CompanySymbols BIC not found for companyId={}", payment2.getAddresseeId());
|
||||
} else {
|
||||
payment1.setCreditLegAccountId(acc1.getId());
|
||||
payment1.setCreditLegAccount(acc1.getAccount());
|
||||
payment2.setAdresseeBic(symbol1);
|
||||
}
|
||||
}
|
||||
|
||||
payment1.setCreditCsAccount(null);
|
||||
|
||||
{
|
||||
Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED);
|
||||
if (acc1 != null) {
|
||||
payment1.setDebitLegAccountId(acc1.getId());
|
||||
payment1.setDebitLegAccount(acc1.getAccount());
|
||||
Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ"
|
||||
String companyPRCName = null;
|
||||
if (companyPRC == null) {
|
||||
log.warn("Company.id={} not found", PRC_ID);
|
||||
} else {
|
||||
companyPRCName = companyPRC.getShortName();
|
||||
}
|
||||
}
|
||||
payment2.setPayeeBankName(companyPRCName);
|
||||
|
||||
payment1.setDebitCsAccount(null);
|
||||
String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ"
|
||||
payment2.setPayeeBic(symbolPRC);
|
||||
|
||||
payment2.setAddresseeBankName(companyPRCName);
|
||||
|
||||
payment2.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate()));
|
||||
|
||||
payment2.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract());
|
||||
|
||||
payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate());
|
||||
|
||||
Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue();
|
||||
payment2.setCreditLegAmount(amount);
|
||||
payment2.setDebitLegAmount(amount);
|
||||
|
||||
{
|
||||
Long accountId = liabilitiesClaimsAssets.getAccountId();
|
||||
Account acc1 = accountImdg.getSingleObjectByID(accountId);
|
||||
if (acc1 == null) {
|
||||
log.warn("Account not found: {}", accountId);
|
||||
} else {
|
||||
payment2.setCreditLegAccountId(acc1.getId());
|
||||
payment2.setCreditLegAccount(acc1.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
payment2.setCreditCsAccount(null);
|
||||
|
||||
{
|
||||
Account acc1 = selectAccount(payment2.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED);
|
||||
if (acc1 != null) {
|
||||
payment2.setDebitLegAccountId(acc1.getId());
|
||||
payment2.setDebitLegAccount(acc1.getAccount());
|
||||
}
|
||||
}
|
||||
|
||||
payment2.setDebitCsAccount(null);
|
||||
|
||||
// payment1.setCreditLegDirection(InOutDirection.out.getKey());
|
||||
// payment1.setDebitLegDirection(InOutDirection.in.getKey());
|
||||
|
||||
payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency());
|
||||
|
||||
payment1.setTransactionStatus(TransactionStatus.stld.getKey());
|
||||
payment2.setTransactionStatus(TransactionStatus.stld.getKey());
|
||||
|
||||
payment2.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment2));
|
||||
|
||||
payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1));
|
||||
|
||||
newPaymentInstructions.add(payment1);
|
||||
newPaymentInstructions.add(payment2);
|
||||
}
|
||||
}
|
||||
}
|
||||
return newPaymentInstructions;
|
||||
|
|
|
|||
|
|
@ -27,14 +27,35 @@ public class Sdf03Builder {
|
|||
sDf03.setPriority("9");
|
||||
sDf03.setSbankcode(Sender.Prc.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0");
|
||||
sDf03.setC_acc_deb(paymentInstruction.getDebitLegAccount());
|
||||
if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) {
|
||||
sDf03.setSbanknam1(paymentInstruction.getAddresseeBankName());
|
||||
if (paymentInstruction.getSenderId().equals(Sender.One.getId())) {
|
||||
sDf03.setSbanknam1(paymentInstruction.getPayeeBankName());
|
||||
} else {
|
||||
Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId());
|
||||
Company company = companyImdg.getSingleObjectByID(paymentInstruction.getSenderId());
|
||||
if (company != null) {
|
||||
sDf03.setSbanknam1(company.getShortName());
|
||||
}
|
||||
}
|
||||
if (sDf03.getSbanknam1() != null && sDf03.getSbanknam1().length() > 35) {
|
||||
//(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5).
|
||||
sDf03.setSbanknam2(sDf03.getSbanknam1().substring(35));
|
||||
sDf03.setSbanknam1(sDf03.getSbanknam1().substring(0, 35));
|
||||
if (sDf03.getSbanknam2().length() > 35) {
|
||||
sDf03.setSbanknam3(sDf03.getSbanknam2().substring(35));
|
||||
sDf03.setSbanknam2(sDf03.getSbanknam2().substring(0, 35));
|
||||
if (sDf03.getSbanknam3().length() > 35) {
|
||||
sDf03.setSbanknam4(sDf03.getSbanknam3().substring(35));
|
||||
sDf03.setSbanknam3(sDf03.getSbanknam3().substring(0, 35));
|
||||
if (sDf03.getSbanknam4().length() > 35) {
|
||||
sDf03.setSbanknam5(sDf03.getSbanknam4().substring(35));
|
||||
sDf03.setSbanknam4(sDf03.getSbanknam4().substring(0, 35));
|
||||
if (sDf03.getSbanknam5().length() > 35) {
|
||||
//warn: too large for all field
|
||||
//sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// =@00100, если ?;
|
||||
// =@00000, если ?.
|
||||
sDf03.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue