Projet

Général

Profil

Development #72288 » add_direct_debit_order.py

Nicolas Roche, 12 décembre 2022 14:29

 
1
#!/usr/bin/python3
2

    
3
import logging.config
4
import requests
5
import zeep
6
from zeep.transports import Transport
7
from zeep.wsse.username import UsernameToken
8

    
9
logging.config.dictConfig({
10
    'version': 1,
11
    'formatters': {
12
        'verbose': {
13
            'format': '%(name)s: %(message)s'
14
        }
15
    },
16
    'handlers': {
17
        'console': {
18
            'level': 'DEBUG',
19
            'class': 'logging.StreamHandler',
20
            'formatter': 'verbose',
21
        },
22
    },
23
    'loggers': {
24
        'zeep.transports': {
25
            'level': 'DEBUG',
26
            'propagate': True,
27
            'handlers': ['console'],
28
        },
29
    }
30
})
31

    
32

    
33
WSSE = UsernameToken('maelis-webservice', 'maelis-password')
34
WSDL_URL = 'https://demo-toulouse.sigec.fr/maelisws-toulouse/services/InvoiceService?wsdl'
35

    
36

    
37
session = requests.Session()
38
session.verify = False
39
transport = Transport(session=session)
40
client = zeep.Client(WSDL_URL, transport=transport, wsse=WSSE)
41

    
42
PersonBank = client.get_type('ns1:personBankBean')
43

    
44
# Si la RUM n'est pas fournie
45
# https://demo-toulouse.sigec.fr/maelisws-toulouse/doc/invoice.html#bean-String
46
# pourtant obligatoire ici.
47

    
48
personBank = PersonBank(
49
    bankBIC='BDFEFR2T',
50
    bankIBAN='FR7630001007941234567890185',
51
    bankRUM='plop',
52
    dateStart='2023-01-02',
53
    bankAddress='75049 PARIS cedex 01',  # la colonne "MAELIS"."H_PERSBANQ"."PB_DOMBNQ" (maximum : 24)
54
    civility='plop',  # la colonne "MAELIS"."H_PERSBANQ"."PB_TITULAIRE_CIV" (maximum : 8)
55
    lastName='Ewing',  #la colonne "MAELIS"."H_PERSBANQ"."PB_TITULAIRE_NOM" (maximum : 30)
56
    firstName='John Ross ',
57
)
58

    
59
results = client.service.addDirectDebitOrder(
60
    dossierNumber='196544',  # 197247
61
    numPerson='613955', # 617619
62
    codeRegie=22,
63
    bank=personBank
64
)
65
print(results)