Search in sources :

Example 1 with PaymentIdentification1

use of com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentIdentification1 in project axelor-open-suite by axelor.

the class BankOrderFile00800101Service method createDrctDbtTxInf.

/**
 * Builds the DirectDebitTransactionInformation part ({@code <DrctDbtTxInf>} tag) of the file, and
 * adds it into the provided {@link DirectDebitTransactionInformation1} list
 *
 * @param directDebitTransactionInformation1List the list to add the {@link
 *     DirectDebitTransactionInformation1} objects into
 * @param creditor the creditor of the SEPA Direct Debit file
 * @throws DatatypeConfigurationException
 * @throws AxelorException
 */
protected void createDrctDbtTxInf(List<DirectDebitTransactionInformation1> directDebitTransactionInformation1List, PartyIdentification8 creditor) throws DatatypeConfigurationException, AxelorException {
    DatatypeFactory datatypeFactory = DatatypeFactory.newInstance();
    for (BankOrderLine bankOrderLine : bankOrderLineList) {
        BankDetails receiverBankDetails = bankOrderLine.getReceiverBankDetails();
        Umr receiverUmr = bankOrderLine.getPartner().getActiveUmr();
        if (receiverUmr == null) {
            throw new AxelorException(TraceBackRepository.CATEGORY_CONFIGURATION_ERROR, I18n.get(IExceptionMessage.DIRECT_DEBIT_MISSING_PARTNER_ACTIVE_UMR));
        }
        /*
       * Direct Debit Transaction Information (mandatory)
       * Set of elements providing information specific to the individual transaction(s) included in the message.
       */
        DirectDebitTransactionInformation1 directDebitTransactionInformation1 = factory.createDirectDebitTransactionInformation1();
        directDebitTransactionInformation1List.add(directDebitTransactionInformation1);
        /*
       * Payment Identification (mandatory)
       * Set of elements to reference a payment instruction.
       */
        PaymentIdentification1 paymentIdentification1 = factory.createPaymentIdentification1();
        directDebitTransactionInformation1.setPmtId(paymentIdentification1);
        /*
       * Instruction Identification (optional)
       * The Instruction Identification is a unique reference assigned by the Initiator to unambiguously identify the transaction.
       * It can be used in status messages related to the transaction.
       */
        // paymentIdentification1.setInstrId();
        /*
       * End To End Identification (mandatory)
       * Unique identification assigned by the initiating party to unumbiguously identify the transaction.
       * This identification is passed on, unchanged, throughout the entire end-to-end chain.
       */
        paymentIdentification1.setEndToEndId(bankOrderLine.getSequence());
        /*
       * Instructed Amount (mandatory)
       * Amount of the direct debit, expressed in euro.
       *
       * Format : Max. 11 digits of which 2 for the fractional part.
       *          Decimal separator is "."
       *          Currency "EUR" is explicit, and included in the XML tag.
       * Usage  : Amount must be between 0.01 and 999999999.99
       */
        CurrencyAndAmount currencyAndAmount = factory.createCurrencyAndAmount();
        currencyAndAmount.setCcy(CURRENCY_CODE);
        currencyAndAmount.setValue(bankOrderLine.getBankOrderAmount());
        directDebitTransactionInformation1.setInstdAmt(currencyAndAmount);
        /*
       * Direct Debit Transaction (mandatory)
       * Set of elements providing information specific to the direct debit mandate.
       */
        DirectDebitTransaction1 directDebitTransaction1 = factory.createDirectDebitTransaction1();
        directDebitTransactionInformation1.setDrctDbtTx(directDebitTransaction1);
        /*
       * Mandate Related Information (mandatory)
       * Set of elements used to provide further details related to a direct debit mandate signed between the creditor and the debtor.
       */
        MandateRelatedInformation1 mandateRelatedInformation1 = factory.createMandateRelatedInformation1();
        directDebitTransaction1.setMndtRltdInf(mandateRelatedInformation1);
        /*
       * Mandate Identification (mandatory)
       * Reference of the direct debit mandate that has been signed between by the debtor and the creditor.
       */
        mandateRelatedInformation1.setMndtId(receiverUmr.getUmrNumber());
        /*
       * Date of Signature (mandatory)
       * Date on which the direct debit mandate has been signed by the debtor.
       *
       * Format : YYYY-MM-DD
       */
        mandateRelatedInformation1.setDtOfSgntr(datatypeFactory.newXMLGregorianCalendar(receiverUmr.getMandateSignatureDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
        /*
       * Amendment Indicator (optional)
       * Indicator notifying whether the underlying mandate is amended or not.
       *
       * Usage : - If not present, considered as "false".
       *         - If true, 'Amendment Information Details' is mandatory.
       *
       * 'true'  if : The mandate is amended or migrated from Dom'80.
       * 'false' if : The mandate is not amended.
       */
        // mandateRelatedInformation1.setAmdmntInd(???);
        /*
       * Amendment Info Details (optional)
       * List of direct debit mandate elements that have been modified.
       */
        // AmendmentInformationDetails1 amendmentInformationDetails1 =
        // factory.createAmendmentInformationDetails1();
        // mandateRelatedInformation1.setAmdmntInfDtls(amendmentInformationDetails1);
        // amendmentInformationDetails1.setOrgnlMndtId(???);
        // amendmentInformationDetails1.setOrgnlCdtrSchmeId(???);
        // amendmentInformationDetails1.setOrgnlDbtrAcct(???);
        // amendmentInformationDetails1.setOrgnlDbtrAgt(???);
        /*
       * Electronic Signature (optional)
       * Digital signature as provided by the creditor.
       *
       * Usage : - If the direct debit is based on an electronic mandate, this data
       *           element must contain the reference of the Mandate Acceptance Report.
       *         - If the direct debit is based on a paper mandate, this data element
       *           is not allowed.
       */
        // mandateRelatedInformation1.setElctrncSgntr(???);
        /*
       * Creditor Scheme Identification (mandatory)
       * Credit party that signs the direct debit mandate.
       */
        PartyIdentification8 creditorSchemeId = factory.createPartyIdentification8();
        directDebitTransaction1.setCdtrSchmeId(creditorSchemeId);
        Party2Choice party2Choice = factory.createParty2Choice();
        creditorSchemeId.setId(party2Choice);
        PersonIdentification3 personIdentification3 = factory.createPersonIdentification3();
        party2Choice.getPrvtId().add(personIdentification3);
        GenericIdentification4 genericIdentification4 = factory.createGenericIdentification4();
        personIdentification3.setOthrId(genericIdentification4);
        genericIdentification4.setId(Beans.get(BankPaymentConfigService.class).getIcsNumber(senderCompany.getBankPaymentConfig()));
        genericIdentification4.setIdTp("SEPA");
        /*
       * Ultimate Creditor (optional)
       * Ultimate party to which an amount of money is due. Ultimate Creditor is only to be used if different from Creditor.
       */
        // directDebitTransaction1.setUltmtCdtr();
        /*
       * Debtor Agent (mandatory)
       * Financial institution servicing an account for the debtor.
       */
        BranchAndFinancialInstitutionIdentification3 branchAndFinancialInstitutionIdentification3 = factory.createBranchAndFinancialInstitutionIdentification3();
        FinancialInstitutionIdentification5Choice financialInstitutionIdentification5Choice = factory.createFinancialInstitutionIdentification5Choice();
        // BIC
        fillBic(financialInstitutionIdentification5Choice, receiverBankDetails.getBank());
        branchAndFinancialInstitutionIdentification3.setFinInstnId(financialInstitutionIdentification5Choice);
        directDebitTransactionInformation1.setDbtrAgt(branchAndFinancialInstitutionIdentification3);
        /*
       * Debtor (mandatory)
       * Party that owes an amount of money to the (ultimate) creditor.
       */
        PartyIdentification8 debtor = factory.createPartyIdentification8();
        debtor.setNm(receiverBankDetails.getOwnerName());
        directDebitTransactionInformation1.setDbtr(debtor);
        /*
       * Debtor Account (mandatory)
       * Identification of the account of the debtor to which a debit entry will be made to execute the transfer.
       */
        AccountIdentification3Choice accountIdentification3Choice = factory.createAccountIdentification3Choice();
        accountIdentification3Choice.setIBAN(receiverBankDetails.getIban());
        CashAccount7 cashAccount7 = factory.createCashAccount7();
        cashAccount7.setId(accountIdentification3Choice);
        directDebitTransactionInformation1.setDbtrAcct(cashAccount7);
        /*
       * Ultimate Debtor (optional)
       * Ultimate party that owes an amount of money to the (ultimate) creditor. Ultimate Debtor is only to be used if different from Debtor.
       */
        // directDebitTransactionInformation1.setUltmtDbtr(???);
        /*
       * Purpose (optional)
       * Underlying reason for the payment transaction.
       * Purpose is used by the Debtor to provide information to the Creditor, concerning thenature of the payment transaction.
       * It is not used for processing by any of the banks involved.
       */
        // Purpose1Choice purpose1Choice = factory.createPurpose1Choice();
        // directDebitTransactionInformation1.setPurp(purpose1Choice);
        /*
       * Code (mandatory)
       * Specifies the underlying reason of the payment transaction.
       */
        // purpose1Choice.setCd(???);
        /*
       * Remittance Information (optional)
       * Information that enables the matching, ie, reconciliation, of a payment with the items that the payment
       * is intended to settle, eg, commercial invoices in an account receivable system.
       *
       * Usage : Either Structured or Unstructured, but not both.
       */
        RemittanceInformation1 remittanceInformation1 = factory.createRemittanceInformation1();
        directDebitTransactionInformation1.setRmtInf(remittanceInformation1);
        /*
       * Unstructured (choice 1 of 2)
       * Information supplied to enable the matching of an entry with the items that the transfer is intended
       * to settle, eg, commercial invoices in an accounts' receivable system in an unstructured form.
       */
        remittanceInformation1.getUstrd().add(bankOrderLine.getReceiverReference());
    /*
       * Structured   (choice 2 of 2)
       * Information supplied to enable the matching of an entry with the items that the transfer is intended
       * to settle, eg, commercial invoices in an accounts' receivable system in a structured form.
       */
    // StructuredRemittanceInformation6 structuredRemittanceInformation6 =
    // factory.createStructuredRemittanceInformation6();
    // remittanceInformation1.getStrd().add(structuredRemittanceInformation6);
    }
}
Also used : AxelorException(com.axelor.exception.AxelorException) BankOrderLine(com.axelor.apps.bankpayment.db.BankOrderLine) DatatypeFactory(javax.xml.datatype.DatatypeFactory) PartyIdentification8(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.PartyIdentification8) BranchAndFinancialInstitutionIdentification3(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.BranchAndFinancialInstitutionIdentification3) BankDetails(com.axelor.apps.base.db.BankDetails) Party2Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.Party2Choice) AccountIdentification3Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.AccountIdentification3Choice) CurrencyAndAmount(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.CurrencyAndAmount) PersonIdentification3(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.PersonIdentification3) MandateRelatedInformation1(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.MandateRelatedInformation1) RemittanceInformation1(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.RemittanceInformation1) GenericIdentification4(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.GenericIdentification4) CashAccount7(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.CashAccount7) PaymentIdentification1(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.PaymentIdentification1) DirectDebitTransactionInformation1(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.DirectDebitTransactionInformation1) DirectDebitTransaction1(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.DirectDebitTransaction1) Umr(com.axelor.apps.account.db.Umr) FinancialInstitutionIdentification5Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_01.FinancialInstitutionIdentification5Choice)

Example 2 with PaymentIdentification1

use of com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentIdentification1 in project axelor-open-suite by axelor.

the class BankOrderFile00800102Service method createDrctDbtTxInf.

/**
 * Builds the DirectDebitTransactionInformation part ({@code <DrctDbtTxInf>} tag) of the file, and
 * adds it into the provided {@link DirectDebitTransactionInformation9} list
 *
 * @param directDebitTransactionInformation9List the list to add the {@link
 *     DirectDebitTransactionInformation9} objects into
 * @param creditor the creditor of the SEPA Direct Debit file
 * @throws DatatypeConfigurationException
 * @throws AxelorException
 */
protected void createDrctDbtTxInf(List<DirectDebitTransactionInformation9> directDebitTransactionInformation9List, PartyIdentification32 creditor) throws DatatypeConfigurationException, AxelorException {
    DatatypeFactory datatypeFactory = DatatypeFactory.newInstance();
    for (BankOrderLine bankOrderLine : bankOrderLineList) {
        BankDetails receiverBankDetails = bankOrderLine.getReceiverBankDetails();
        Umr receiverUmr = bankOrderLine.getPartner().getActiveUmr();
        if (receiverUmr == null) {
            throw new AxelorException(TraceBackRepository.CATEGORY_CONFIGURATION_ERROR, I18n.get(IExceptionMessage.DIRECT_DEBIT_MISSING_PARTNER_ACTIVE_UMR));
        }
        /*
       * Direct Debit Transaction Information (mandatory)
       * Set of elements providing information specific to the individual transaction(s) included in the message.
       */
        DirectDebitTransactionInformation9 directDebitTransactionInformation9 = factory.createDirectDebitTransactionInformation9();
        directDebitTransactionInformation9List.add(directDebitTransactionInformation9);
        /*
       * Payment Identification (mandatory)
       * Set of elements to reference a payment instruction.
       */
        PaymentIdentification1 paymentIdentification1 = factory.createPaymentIdentification1();
        directDebitTransactionInformation9.setPmtId(paymentIdentification1);
        /*
       * Instruction Identification (optional)
       * The Instruction Identification is a unique reference assigned by the Initiator to unambiguously identify the transaction.
       * It can be used in status messages related to the transaction.
       */
        // paymentIdentification1.setInstrId();
        /*
       * End To End Identification (mandatory)
       * Unique identification assigned by the initiating party to unumbiguously identify the transaction.
       * This identification is passed on, unchanged, throughout the entire end-to-end chain.
       */
        paymentIdentification1.setEndToEndId(bankOrderLine.getSequence());
        /*
       * Instructed Amount (mandatory)
       * Amount of the direct debit, expressed in euro.
       *
       * Format : Max. 11 digits of which 2 for the fractional part.
       *          Decimal separator is "."
       *          Currency "EUR" is explicit, and included in the XML tag.
       * Usage  : Amount must be between 0.01 and 999999999.99
       */
        ActiveOrHistoricCurrencyAndAmount activeOrHistoricCurrencyAndAmount = factory.createActiveOrHistoricCurrencyAndAmount();
        activeOrHistoricCurrencyAndAmount.setCcy(CURRENCY_CODE);
        activeOrHistoricCurrencyAndAmount.setValue(bankOrderLine.getBankOrderAmount());
        directDebitTransactionInformation9.setInstdAmt(activeOrHistoricCurrencyAndAmount);
        /*
       * Direct Debit Transaction (mandatory)
       * Set of elements providing information specific to the direct debit mandate.
       */
        DirectDebitTransaction6 directDebitTransaction6 = factory.createDirectDebitTransaction6();
        directDebitTransactionInformation9.setDrctDbtTx(directDebitTransaction6);
        /*
       * Mandate Related Information (mandatory)
       * Set of elements used to provide further details related to a direct debit mandate signed between the creditor and the debtor.
       */
        MandateRelatedInformation6 mandateRelatedInformation6 = factory.createMandateRelatedInformation6();
        directDebitTransaction6.setMndtRltdInf(mandateRelatedInformation6);
        /*
       * Mandate Identification (mandatory)
       * Reference of the direct debit mandate that has been signed between by the debtor and the creditor.
       */
        mandateRelatedInformation6.setMndtId(receiverUmr.getUmrNumber());
        /*
       * Date of Signature (mandatory)
       * Date on which the direct debit mandate has been signed by the debtor.
       *
       * Format : YYYY-MM-DD
       */
        mandateRelatedInformation6.setDtOfSgntr(datatypeFactory.newXMLGregorianCalendar(receiverUmr.getMandateSignatureDate().format(DateTimeFormatter.ofPattern(("yyyy-MM-dd")))));
        /*
       * Amendment Indicator (optional)
       * Indicator notifying whether the underlying mandate is amended or not.
       *
       * Usage : - If not present, considered as "false".
       *         - If true, 'Amendment Information Details' is mandatory.
       *
       * 'true'  if : The mandate is amended or migrated from Dom'80.
       * 'false' if : The mandate is not amended.
       */
        // mandateRelatedInformation6.setAmdmntInd(???);
        /*
       * Amendment Info Details (optional)
       * List of direct debit mandate elements that have been modified.
       */
        // AmendmentInformationDetails6 amendmentInformationDetails6 =
        // factory.createAmendmentInformationDetails6();
        // mandateRelatedInformation6.setAmdmntInfDtls(amendmentInformationDetails6);
        // amendmentInformationDetails6.setOrgnlMndtId(???);
        // amendmentInformationDetails6.setOrgnlCdtrSchmeId(???);
        // amendmentInformationDetails6.setOrgnlDbtrAcct(???);
        // amendmentInformationDetails6.setOrgnlDbtrAgt(???);
        /*
       * Electronic Signature (optional)
       * Digital signature as provided by the creditor.
       *
       * Usage : - If the direct debit is based on an electronic mandate, this data
       *           element must contain the reference of the Mandate Acceptance Report.
       *         - If the direct debit is based on a paper mandate, this data element
       *           is not allowed.
       */
        // mandateRelatedInformation6.setElctrncSgntr(???);
        /*
       * Creditor Scheme Identification
       * Creditor identification as given by his bank.
       */
        PartyIdentification32 creditorSchemeId = factory.createPartyIdentification32();
        directDebitTransaction6.setCdtrSchmeId(creditorSchemeId);
        Party6Choice party6Choice = factory.createParty6Choice();
        creditorSchemeId.setId(party6Choice);
        PersonIdentification5 personIdentification5 = factory.createPersonIdentification5();
        party6Choice.setPrvtId(personIdentification5);
        GenericPersonIdentification1 genericPersonIdentification1 = factory.createGenericPersonIdentification1();
        personIdentification5.getOthr().add(genericPersonIdentification1);
        genericPersonIdentification1.setId(Beans.get(BankPaymentConfigService.class).getIcsNumber(senderCompany.getBankPaymentConfig()));
        PersonIdentificationSchemeName1Choice personIdentificationSchemeName1Choice = factory.createPersonIdentificationSchemeName1Choice();
        genericPersonIdentification1.setSchmeNm(personIdentificationSchemeName1Choice);
        personIdentificationSchemeName1Choice.setPrtry("SEPA");
        /*
       * Ultimate Creditor (optional)
       * Ultimate party to which an amount of money is due. Ultimate Creditor is only to be used if different from Creditor.
       */
        // directDebitTransaction6.setUltmtCdtr();
        /*
       * Debtor Agent (mandatory)
       * Financial institution servicing an account for the debtor.
       */
        BranchAndFinancialInstitutionIdentification4 branchAndFinancialInstitutionIdentification4 = factory.createBranchAndFinancialInstitutionIdentification4();
        FinancialInstitutionIdentification7 financialInstitutionIdentification7 = factory.createFinancialInstitutionIdentification7();
        // BIC
        fillBic(financialInstitutionIdentification7, receiverBankDetails.getBank());
        branchAndFinancialInstitutionIdentification4.setFinInstnId(financialInstitutionIdentification7);
        directDebitTransactionInformation9.setDbtrAgt(branchAndFinancialInstitutionIdentification4);
        /*
       * Debtor (mandatory)
       * Party that owes an amount of money to the (ultimate) creditor.
       */
        PartyIdentification32 debtor = factory.createPartyIdentification32();
        debtor.setNm(receiverBankDetails.getOwnerName());
        directDebitTransactionInformation9.setDbtr(debtor);
        /*
       * Debtor Account (mandatory)
       * Identification of the account of the debtor to which a debit entry will be made to execute the transfer.
       */
        AccountIdentification4Choice accountIdentification4Choice = factory.createAccountIdentification4Choice();
        accountIdentification4Choice.setIBAN(receiverBankDetails.getIban());
        CashAccount16 cashAccount16 = factory.createCashAccount16();
        cashAccount16.setId(accountIdentification4Choice);
        directDebitTransactionInformation9.setDbtrAcct(cashAccount16);
        /*
       * Ultimate Debtor (optional)
       * Ultimate party that owes an amount of money to the (ultimate) creditor. Ultimate Debtor is only to be used if different from Debtor.
       */
        // directDebitTransactionInformation9.setUltmtDbtr(???);
        /*
       * Purpose (optional)
       * Underlying reason for the payment transaction.
       * Purpose is used by the Debtor to provide information to the Creditor, concerning thenature of the payment transaction.
       * It is not used for processing by any of the banks involved.
       */
        // Purpose2Choice purpose2Choice = factory.createPurpose2Choice();
        // directDebitTransactionInformation9.setPurp(purpose2Choice);
        /*
       * Code (mandatory)
       * Specifies the underlying reason of the payment transaction.
       */
        // purpose2Choice.setCd(???);
        /*
       * Remittance Information (optional)
       * Information that enables the matching, ie, reconciliation, of a payment with the items that the payment
       * is intended to settle, eg, commercial invoices in an account receivable system.
       *
       * Usage : Either Structured or Unstructured, but not both.
       */
        RemittanceInformation5 remittanceInformation5 = factory.createRemittanceInformation5();
        directDebitTransactionInformation9.setRmtInf(remittanceInformation5);
        /*
       * Unstructured (choice 1 of 2)
       * Information supplied to enable the matching of an entry with the items that the transfer is intended
       * to settle, eg, commercial invoices in an accounts' receivable system in an unstructured form.
       */
        remittanceInformation5.getUstrd().add(bankOrderLine.getReceiverReference());
    /*
       * Structured   (choice 2 of 2)
       * Information supplied to enable the matching of an entry with the items that the transfer is intended
       * to settle, eg, commercial invoices in an accounts' receivable system in a structured form.
       */
    // StructuredRemittanceInformation7 structuredRemittanceInformation7 =
    // factory.createStructuredRemittanceInformation7();
    // remittanceInformation5.getStrd().add(structuredRemittanceInformation7);
    }
}
Also used : AxelorException(com.axelor.exception.AxelorException) BankOrderLine(com.axelor.apps.bankpayment.db.BankOrderLine) DatatypeFactory(javax.xml.datatype.DatatypeFactory) ActiveOrHistoricCurrencyAndAmount(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.ActiveOrHistoricCurrencyAndAmount) BankDetails(com.axelor.apps.base.db.BankDetails) BranchAndFinancialInstitutionIdentification4(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.BranchAndFinancialInstitutionIdentification4) CashAccount16(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.CashAccount16) PartyIdentification32(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.PartyIdentification32) GenericPersonIdentification1(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.GenericPersonIdentification1) Party6Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.Party6Choice) PersonIdentification5(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.PersonIdentification5) MandateRelatedInformation6(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.MandateRelatedInformation6) RemittanceInformation5(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.RemittanceInformation5) PaymentIdentification1(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.PaymentIdentification1) PersonIdentificationSchemeName1Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.PersonIdentificationSchemeName1Choice) DirectDebitTransaction6(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.DirectDebitTransaction6) Umr(com.axelor.apps.account.db.Umr) FinancialInstitutionIdentification7(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.FinancialInstitutionIdentification7) DirectDebitTransactionInformation9(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.DirectDebitTransactionInformation9) AccountIdentification4Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_008_001_02.AccountIdentification4Choice)

Example 3 with PaymentIdentification1

use of com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentIdentification1 in project axelor-open-suite by axelor.

the class BankOrderFile00100102Service method generateFile.

/**
 * Method to create an XML file for SEPA transfer pain.001.001.02
 *
 * @throws AxelorException
 * @throws DatatypeConfigurationException
 * @throws JAXBException
 * @throws IOException
 */
@Override
public File generateFile() throws JAXBException, IOException, AxelorException, DatatypeConfigurationException {
    DatatypeFactory datatypeFactory = DatatypeFactory.newInstance();
    ObjectFactory factory = new ObjectFactory();
    ServiceLevel2Choice svcLvl = factory.createServiceLevel2Choice();
    svcLvl.setCd(ServiceLevel1Code.SEPA);
    PaymentTypeInformation1 pmtTpInf = factory.createPaymentTypeInformation1();
    pmtTpInf.setSvcLvl(svcLvl);
    // Payer
    PartyIdentification8 dbtr = factory.createPartyIdentification8();
    dbtr.setNm(senderBankDetails.getOwnerName());
    // IBAN
    AccountIdentification3Choice iban = factory.createAccountIdentification3Choice();
    iban.setIBAN(senderBankDetails.getIban());
    CashAccount7 dbtrAcct = factory.createCashAccount7();
    dbtrAcct.setId(iban);
    // BIC
    FinancialInstitutionIdentification5Choice finInstnId = factory.createFinancialInstitutionIdentification5Choice();
    fillBic(finInstnId, senderBankDetails.getBank());
    BranchAndFinancialInstitutionIdentification3 dbtrAgt = factory.createBranchAndFinancialInstitutionIdentification3();
    dbtrAgt.setFinInstnId(finInstnId);
    PaymentInstructionInformation1 pmtInf = factory.createPaymentInstructionInformation1();
    pmtInf.setPmtInfId(bankOrderSeq);
    pmtInf.setPmtMtd(PaymentMethod3Code.TRF);
    pmtInf.setPmtTpInf(pmtTpInf);
    /**
     * RequestedExecutionDate Definition : Date at which the initiating party asks the Debtor's Bank
     * to process the payment. This is the date on which the debtor's account(s) is (are) to be
     * debited. XML Tag : <ReqdExctnDt> Occurrences : [1..1] Format : YYYY-MM-DD Rules : date is
     * limited to maximum one year in the future.
     */
    pmtInf.setReqdExctnDt(datatypeFactory.newXMLGregorianCalendar(bankOrderDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
    pmtInf.setDbtr(dbtr);
    pmtInf.setDbtrAcct(dbtrAcct);
    pmtInf.setDbtrAgt(dbtrAgt);
    CreditTransferTransactionInformation1 cdtTrfTxInf = null;
    PaymentIdentification1 pmtId = null;
    AmountType2Choice amt = null;
    CurrencyAndAmount instdAmt = null;
    PartyIdentification8 cbtr = null;
    CashAccount7 cbtrAcct = null;
    BranchAndFinancialInstitutionIdentification3 cbtrAgt = null;
    RemittanceInformation1 rmtInf = null;
    for (BankOrderLine bankOrderLine : bankOrderLineList) {
        BankDetails receiverBankDetails = bankOrderLine.getReceiverBankDetails();
        // Reference
        pmtId = factory.createPaymentIdentification1();
        // pmtId.setInstrId(bankOrderLine.getSequence());
        pmtId.setEndToEndId(bankOrderLine.getSequence());
        // Amount
        instdAmt = factory.createCurrencyAndAmount();
        instdAmt.setCcy(bankOrderCurrency.getCode());
        instdAmt.setValue(bankOrderLine.getBankOrderAmount());
        amt = factory.createAmountType2Choice();
        amt.setInstdAmt(instdAmt);
        // Receiver
        cbtr = factory.createPartyIdentification8();
        cbtr.setNm(receiverBankDetails.getOwnerName());
        // IBAN
        iban = factory.createAccountIdentification3Choice();
        iban.setIBAN(receiverBankDetails.getIban());
        cbtrAcct = factory.createCashAccount7();
        cbtrAcct.setId(iban);
        // BIC
        finInstnId = factory.createFinancialInstitutionIdentification5Choice();
        fillBic(finInstnId, receiverBankDetails.getBank());
        cbtrAgt = factory.createBranchAndFinancialInstitutionIdentification3();
        cbtrAgt.setFinInstnId(finInstnId);
        rmtInf = factory.createRemittanceInformation1();
        String ustrd = "";
        if (!Strings.isNullOrEmpty(bankOrderLine.getReceiverReference())) {
            ustrd += bankOrderLine.getReceiverReference();
        }
        if (!Strings.isNullOrEmpty(bankOrderLine.getReceiverLabel())) {
            if (!Strings.isNullOrEmpty(ustrd)) {
                ustrd += " - ";
            }
            ustrd += bankOrderLine.getReceiverLabel();
        }
        if (!Strings.isNullOrEmpty(ustrd)) {
            rmtInf.getUstrd().add(ustrd);
        }
        // StructuredRemittanceInformation6 strd = factory.createStructuredRemittanceInformation6();
        // 
        // CreditorReferenceInformation1 cdtrRefInf = factory.createCreditorReferenceInformation1();
        // cdtrRefInf.setCdtrRef(bankOrderLine.getReceiverReference());
        // 
        // strd.setCdtrRefInf(cdtrRefInf);
        // 
        // rmtInf.getStrd().add(strd);
        // Transaction
        cdtTrfTxInf = factory.createCreditTransferTransactionInformation1();
        cdtTrfTxInf.setPmtId(pmtId);
        cdtTrfTxInf.setAmt(amt);
        cdtTrfTxInf.setCdtr(cbtr);
        cdtTrfTxInf.setCdtrAcct(cbtrAcct);
        cdtTrfTxInf.setCdtrAgt(cbtrAgt);
        cdtTrfTxInf.setRmtInf(rmtInf);
        pmtInf.getCdtTrfTxInf().add(cdtTrfTxInf);
    }
    // Header
    GroupHeader1 grpHdr = factory.createGroupHeader1();
    /**
     * Référence du message qui n'est pas utilisée comme référence fonctionnelle.
     */
    grpHdr.setMsgId(bankOrderSeq);
    /**
     * CreationDateTime Definition : Date and Time at which a (group of) payment instruction(s) was
     * created by the instructing party. XML Tag : <CreDtTm> Occurrences : [1..1] Format :
     * YYYY-MM-DDThh:mm:ss
     */
    grpHdr.setCreDtTm(datatypeFactory.newXMLGregorianCalendar(generationDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"))));
    grpHdr.setNbOfTxs(Integer.toString(nbOfLines));
    grpHdr.setCtrlSum(arithmeticTotal);
    grpHdr.setGrpg(Grouping1Code.MIXD);
    grpHdr.setInitgPty(dbtr);
    // Parent
    Pain00100102 pain00100102 = factory.createPain00100102();
    pain00100102.setGrpHdr(grpHdr);
    pain00100102.getPmtInf().add(pmtInf);
    // Document
    Document xml = factory.createDocument();
    xml.setPain00100102(pain00100102);
    fileToCreate = factory.createDocument(xml);
    return super.generateFile();
}
Also used : CreditTransferTransactionInformation1(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.CreditTransferTransactionInformation1) BankOrderLine(com.axelor.apps.bankpayment.db.BankOrderLine) DatatypeFactory(javax.xml.datatype.DatatypeFactory) PartyIdentification8(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PartyIdentification8) BranchAndFinancialInstitutionIdentification3(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.BranchAndFinancialInstitutionIdentification3) BankDetails(com.axelor.apps.base.db.BankDetails) AccountIdentification3Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.AccountIdentification3Choice) ServiceLevel2Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.ServiceLevel2Choice) CurrencyAndAmount(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.CurrencyAndAmount) PaymentTypeInformation1(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentTypeInformation1) AmountType2Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.AmountType2Choice) Document(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.Document) RemittanceInformation1(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.RemittanceInformation1) ObjectFactory(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.ObjectFactory) CashAccount7(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.CashAccount7) PaymentIdentification1(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentIdentification1) Pain00100102(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.Pain00100102) PaymentInstructionInformation1(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentInstructionInformation1) GroupHeader1(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.GroupHeader1) FinancialInstitutionIdentification5Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.FinancialInstitutionIdentification5Choice)

Example 4 with PaymentIdentification1

use of com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentIdentification1 in project axelor-open-suite by axelor.

the class BankOrderFile00100103Service method generateFile.

/**
 * Method to create an XML file for SEPA transfer pain.001.001.03
 *
 * @throws AxelorException
 * @throws DatatypeConfigurationException
 * @throws JAXBException
 * @throws IOException
 */
@Override
public File generateFile() throws JAXBException, IOException, AxelorException, DatatypeConfigurationException {
    DatatypeFactory datatypeFactory = DatatypeFactory.newInstance();
    ObjectFactory factory = new ObjectFactory();
    ServiceLevel8Choice svcLvl = factory.createServiceLevel8Choice();
    svcLvl.setCd("SEPA");
    PaymentTypeInformation19 pmtTpInf = factory.createPaymentTypeInformation19();
    pmtTpInf.setSvcLvl(svcLvl);
    // Payer
    PartyIdentification32 dbtr = factory.createPartyIdentification32();
    dbtr.setNm(senderBankDetails.getOwnerName());
    // IBAN
    AccountIdentification4Choice iban = factory.createAccountIdentification4Choice();
    iban.setIBAN(senderBankDetails.getIban());
    CashAccount16 dbtrAcct = factory.createCashAccount16();
    dbtrAcct.setId(iban);
    // BIC
    FinancialInstitutionIdentification7 finInstnId = factory.createFinancialInstitutionIdentification7();
    fillBic(finInstnId, senderBankDetails.getBank());
    BranchAndFinancialInstitutionIdentification4 dbtrAgt = factory.createBranchAndFinancialInstitutionIdentification4();
    dbtrAgt.setFinInstnId(finInstnId);
    PaymentInstructionInformation3 pmtInf = factory.createPaymentInstructionInformation3();
    pmtInf.setPmtInfId(bankOrderSeq);
    pmtInf.setPmtMtd(PaymentMethod3Code.TRF);
    pmtInf.setPmtTpInf(pmtTpInf);
    /**
     * RequestedExecutionDate Definition : Date at which the initiating party asks the Debtor's Bank
     * to process the payment. This is the date on which the debtor's account(s) is (are) to be
     * debited. XML Tag : <ReqdExctnDt> Occurrences : [1..1] Format : YYYY-MM-DD Rules : date is
     * limited to maximum one year in the future.
     */
    pmtInf.setReqdExctnDt(datatypeFactory.newXMLGregorianCalendar(bankOrderDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
    pmtInf.setDbtr(dbtr);
    pmtInf.setDbtrAcct(dbtrAcct);
    pmtInf.setDbtrAgt(dbtrAgt);
    CreditTransferTransactionInformation10 cdtTrfTxInf = null;
    PaymentIdentification1 pmtId = null;
    AmountType3Choice amt = null;
    ActiveOrHistoricCurrencyAndAmount instdAmt = null;
    PartyIdentification32 cbtr = null;
    CashAccount16 cbtrAcct = null;
    BranchAndFinancialInstitutionIdentification4 cbtrAgt = null;
    RemittanceInformation5 rmtInf = null;
    for (BankOrderLine bankOrderLine : bankOrderLineList) {
        BankDetails receiverBankDetails = bankOrderLine.getReceiverBankDetails();
        // Reference
        pmtId = factory.createPaymentIdentification1();
        // pmtId.setInstrId(bankOrderLine.getSequence());
        pmtId.setEndToEndId(bankOrderLine.getSequence());
        // Amount
        instdAmt = factory.createActiveOrHistoricCurrencyAndAmount();
        instdAmt.setCcy(bankOrderCurrency.getCode());
        instdAmt.setValue(bankOrderLine.getBankOrderAmount());
        amt = factory.createAmountType3Choice();
        amt.setInstdAmt(instdAmt);
        // Receiver
        cbtr = factory.createPartyIdentification32();
        cbtr.setNm(receiverBankDetails.getOwnerName());
        // IBAN
        iban = factory.createAccountIdentification4Choice();
        iban.setIBAN(receiverBankDetails.getIban());
        cbtrAcct = factory.createCashAccount16();
        cbtrAcct.setId(iban);
        // BIC
        finInstnId = factory.createFinancialInstitutionIdentification7();
        fillBic(finInstnId, receiverBankDetails.getBank());
        cbtrAgt = factory.createBranchAndFinancialInstitutionIdentification4();
        cbtrAgt.setFinInstnId(finInstnId);
        rmtInf = factory.createRemittanceInformation5();
        String ustrd = "";
        if (!Strings.isNullOrEmpty(bankOrderLine.getReceiverReference())) {
            ustrd += bankOrderLine.getReceiverReference();
        }
        if (!Strings.isNullOrEmpty(bankOrderLine.getReceiverLabel())) {
            if (!Strings.isNullOrEmpty(ustrd)) {
                ustrd += " - ";
            }
            ustrd += bankOrderLine.getReceiverLabel();
        }
        if (!Strings.isNullOrEmpty(ustrd)) {
            rmtInf.getUstrd().add(ustrd);
        }
        // StructuredRemittanceInformation7 strd = factory.createStructuredRemittanceInformation7();
        // 
        // CreditorReferenceInformation2 cdtrRefInf = factory.createCreditorReferenceInformation2();
        // cdtrRefInf.setRef(bankOrderLine.getReceiverReference());
        // 
        // strd.setCdtrRefInf(cdtrRefInf);
        // 
        // rmtInf.getStrd().add(strd);
        // Transaction
        cdtTrfTxInf = factory.createCreditTransferTransactionInformation10();
        cdtTrfTxInf.setPmtId(pmtId);
        cdtTrfTxInf.setAmt(amt);
        cdtTrfTxInf.setCdtr(cbtr);
        cdtTrfTxInf.setCdtrAcct(cbtrAcct);
        cdtTrfTxInf.setCdtrAgt(cbtrAgt);
        cdtTrfTxInf.setRmtInf(rmtInf);
        pmtInf.getCdtTrfTxInf().add(cdtTrfTxInf);
    }
    // Header
    GroupHeader32 grpHdr = factory.createGroupHeader32();
    /**
     * Référence du message qui n'est pas utilisée comme référence fonctionnelle.
     */
    grpHdr.setMsgId(bankOrderSeq);
    /**
     * CreationDateTime Definition : Date and Time at which a (group of) payment instruction(s) was
     * created by the instructing party. XML Tag : <CreDtTm> Occurrences : [1..1] Format :
     * YYYY-MM-DDThh:mm:ss
     */
    grpHdr.setCreDtTm(datatypeFactory.newXMLGregorianCalendar(generationDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss"))));
    grpHdr.setNbOfTxs(Integer.toString(nbOfLines));
    grpHdr.setCtrlSum(arithmeticTotal);
    grpHdr.setInitgPty(dbtr);
    // Parent
    CustomerCreditTransferInitiationV03 customerCreditTransferInitiationV03 = factory.createCustomerCreditTransferInitiationV03();
    customerCreditTransferInitiationV03.setGrpHdr(grpHdr);
    customerCreditTransferInitiationV03.getPmtInf().add(pmtInf);
    // Document
    Document xml = factory.createDocument();
    xml.setCstmrCdtTrfInitn(customerCreditTransferInitiationV03);
    fileToCreate = factory.createDocument(xml);
    return super.generateFile();
}
Also used : BankOrderLine(com.axelor.apps.bankpayment.db.BankOrderLine) DatatypeFactory(javax.xml.datatype.DatatypeFactory) ActiveOrHistoricCurrencyAndAmount(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.ActiveOrHistoricCurrencyAndAmount) BranchAndFinancialInstitutionIdentification4(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.BranchAndFinancialInstitutionIdentification4) BankDetails(com.axelor.apps.base.db.BankDetails) CashAccount16(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.CashAccount16) Document(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.Document) PartyIdentification32(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.PartyIdentification32) AmountType3Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.AmountType3Choice) ObjectFactory(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.ObjectFactory) RemittanceInformation5(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.RemittanceInformation5) GroupHeader32(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.GroupHeader32) PaymentTypeInformation19(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.PaymentTypeInformation19) PaymentIdentification1(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.PaymentIdentification1) CreditTransferTransactionInformation10(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.CreditTransferTransactionInformation10) ServiceLevel8Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.ServiceLevel8Choice) FinancialInstitutionIdentification7(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.FinancialInstitutionIdentification7) PaymentInstructionInformation3(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.PaymentInstructionInformation3) CustomerCreditTransferInitiationV03(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.CustomerCreditTransferInitiationV03) AccountIdentification4Choice(com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_03.AccountIdentification4Choice)

Example 5 with PaymentIdentification1

use of com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentIdentification1 in project estatio by estatio.

the class CreditTransfer method asXml.

@Programmatic
public CreditTransferTransactionInformation10 asXml() {
    CreditTransferTransactionInformation10 cdtTrfTxInf = new CreditTransferTransactionInformation10();
    PaymentIdentification1 pmtId = new PaymentIdentification1();
    cdtTrfTxInf.setPmtId(pmtId);
    pmtId.setEndToEndId(truncateFieldToMaxLength(getEndToEndId(), 35));
    AmountType3Choice amt = new AmountType3Choice();
    cdtTrfTxInf.setAmt(amt);
    ActiveOrHistoricCurrencyAndAmount instdAmt = new ActiveOrHistoricCurrencyAndAmount();
    amt.setInstdAmt(instdAmt);
    instdAmt.setCcy(getCurrency().getReference().trim());
    instdAmt.setValue(getAmount());
    BankAccount creditorBankAccount = this.getSellerBankAccount();
    cdtTrfTxInf.setCdtrAgt(PaymentBatch.agentFor(creditorBankAccount));
    cdtTrfTxInf.setCdtrAcct(PaymentBatch.cashAccountFor(creditorBankAccount));
    PartyIdentification32 cdtr = new PartyIdentification32();
    cdtTrfTxInf.setCdtr(cdtr);
    cdtr.setNm(getSeller().getName());
    PostalAddress6 pstlAdr = new PostalAddress6();
    cdtr.setPstlAdr(pstlAdr);
    pstlAdr.setCtry(PaymentBatch.ctryFor(getSeller()));
    RemittanceInformation5 rmtInf = new RemittanceInformation5();
    cdtTrfTxInf.setRmtInf(rmtInf);
    List<String> ustrdList = rmtInf.getUstrds();
    ustrdList.add(getRemittanceInformation());
    return cdtTrfTxInf;
}
Also used : AmountType3Choice(iso.std.iso._20022.tech.xsd.pain_001_001.AmountType3Choice) ActiveOrHistoricCurrencyAndAmount(iso.std.iso._20022.tech.xsd.pain_001_001.ActiveOrHistoricCurrencyAndAmount) RemittanceInformation5(iso.std.iso._20022.tech.xsd.pain_001_001.RemittanceInformation5) PaymentIdentification1(iso.std.iso._20022.tech.xsd.pain_001_001.PaymentIdentification1) CreditTransferTransactionInformation10(iso.std.iso._20022.tech.xsd.pain_001_001.CreditTransferTransactionInformation10) BankAccount(org.estatio.module.financial.dom.BankAccount) PostalAddress6(iso.std.iso._20022.tech.xsd.pain_001_001.PostalAddress6) PartyIdentification32(iso.std.iso._20022.tech.xsd.pain_001_001.PartyIdentification32) Programmatic(org.apache.isis.applib.annotation.Programmatic)

Aggregations

BankOrderLine (com.axelor.apps.bankpayment.db.BankOrderLine)4 BankDetails (com.axelor.apps.base.db.BankDetails)4 DatatypeFactory (javax.xml.datatype.DatatypeFactory)4 Umr (com.axelor.apps.account.db.Umr)2 AxelorException (com.axelor.exception.AxelorException)2 AccountIdentification3Choice (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.AccountIdentification3Choice)1 AmountType2Choice (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.AmountType2Choice)1 BranchAndFinancialInstitutionIdentification3 (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.BranchAndFinancialInstitutionIdentification3)1 CashAccount7 (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.CashAccount7)1 CreditTransferTransactionInformation1 (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.CreditTransferTransactionInformation1)1 CurrencyAndAmount (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.CurrencyAndAmount)1 Document (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.Document)1 FinancialInstitutionIdentification5Choice (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.FinancialInstitutionIdentification5Choice)1 GroupHeader1 (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.GroupHeader1)1 ObjectFactory (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.ObjectFactory)1 Pain00100102 (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.Pain00100102)1 PartyIdentification8 (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PartyIdentification8)1 PaymentIdentification1 (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentIdentification1)1 PaymentInstructionInformation1 (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentInstructionInformation1)1 PaymentTypeInformation1 (com.axelor.apps.bankpayment.xsd.sepa.pain_001_001_02.PaymentTypeInformation1)1