~therp-nl/banking-addons/ba61-custom_debit_order_reference_cust73

« back to all changes in this revision

Viewing changes to account_banking_sepa_credit_transfer/wizard/export_sepa.py

  • Committer: Stefan Rijnhart
  • Date: 2014-01-11 16:12:22 UTC
  • mfrom: (155.22.13 banking-addons-6.1)
  • Revision ID: stefan@therp.nl-20140111161222-oyg1wpjaifsslex9
[MRG] lp:banking-addons/6.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
107
107
        sepa_export = self.browse(cr, uid, ids[0], context=context)
108
108
 
109
109
        my_company_name = sepa_export.payment_order_ids[0].mode.bank_id.partner_id.name
110
 
        my_company_iban = self._validate_iban(cr, uid, sepa_export.payment_order_ids[0].mode.bank_id.iban, context=context)
 
110
        my_company_iban = self._validate_iban(cr, uid, sepa_export.payment_order_ids[0].mode.bank_id.acc_number, context=context)
111
111
        my_company_bic = sepa_export.payment_order_ids[0].mode.bank_id.bank.bic
112
112
        #my_company_country_code = sepa_export.payment_order_ids[0].mode.bank_id.partner_id.address[0].country_id.code
113
113
        #my_company_city = sepa_export.payment_order_ids[0].mode.bank_id.partner_id.address[0].city
212
212
        debtor_account_iban.text = my_company_iban
213
213
        debtor_agent = etree.SubElement(payment_info, 'DbtrAgt')
214
214
        debtor_agent_institution = etree.SubElement(debtor_agent, 'FinInstnId')
215
 
        debtor_agent_bic = etree.SubElement(debtor_agent_institution, bic_xml_tag)
216
 
        debtor_agent_bic.text = my_company_bic
 
215
        if my_company_bic:
 
216
            debtor_agent_bic = etree.SubElement(debtor_agent_institution, bic_xml_tag)
 
217
            debtor_agent_bic.text = my_company_bic
217
218
        charge_bearer = etree.SubElement(payment_info, 'ChrgBr')
218
219
        charge_bearer.text = sepa_export.charge_bearer
219
220
 
239
240
                amount_control_sum += line.amount_currency
240
241
                creditor_agent = etree.SubElement(credit_transfer_transaction_info, 'CdtrAgt')
241
242
                creditor_agent_institution = etree.SubElement(creditor_agent, 'FinInstnId')
242
 
                creditor_agent_bic = etree.SubElement(creditor_agent_institution, bic_xml_tag)
243
 
                creditor_agent_bic.text = line.bank_id.bank.bic
 
243
                if not line.bank_id:
 
244
                    raise osv.except_osv(_('Error :'), _("Missing Bank Account on invoice '%s' (payment order line reference '%s').") %(line.ml_inv_ref.number, line.name))
 
245
                if line.bank_id.bank.bic:
 
246
                    creditor_agent_bic = etree.SubElement(creditor_agent_institution, bic_xml_tag)
 
247
                    creditor_agent_bic.text = line.bank_id.bank.bic
244
248
                creditor = etree.SubElement(credit_transfer_transaction_info, 'Cdtr')
245
249
                creditor_name = etree.SubElement(creditor, 'Nm')
246
250
                creditor_name.text = self._limit_size(cr, uid, line.partner_id.name, name_maxsize, context=context)
256
260
                creditor_account = etree.SubElement(credit_transfer_transaction_info, 'CdtrAcct')
257
261
                creditor_account_id = etree.SubElement(creditor_account, 'Id')
258
262
                creditor_account_iban = etree.SubElement(creditor_account_id, 'IBAN')
259
 
                creditor_account_iban.text = self._validate_iban(cr, uid, line.bank_id.iban, context=context)
 
263
                creditor_account_iban.text = self._validate_iban(cr, uid, line.bank_id.acc_number, context=context)
260
264
                remittance_info = etree.SubElement(credit_transfer_transaction_info, 'RmtInf')
261
265
                # switch to Structured (Strdr) ? If we do it, beware that the format is not the same between pain 02 and pain 03
262
266
                remittance_info_unstructured = etree.SubElement(remittance_info, 'Ustrd')
276
280
        official_pain_schema = etree.XMLSchema(etree.parse(tools.file_open('account_banking_sepa_credit_transfer/data/%s.xsd' % pain_flavor)))
277
281
 
278
282
        try:
279
 
            official_pain_schema.validate(root)
 
283
            root_to_validate = etree.fromstring(xml_string)
 
284
            official_pain_schema.assertValid(root_to_validate)
280
285
        except Exception, e:
281
286
            _logger.warning("The XML file is invalid against the XML Schema Definition")
282
287
            _logger.warning(xml_string)