示例#1
0
 def _header(self):
     #[zone A]
     content = "03"
     #[zone B1]
     content += "02"
     #[zone B2] Espace reserve 8 caracteres
     content += write('', 8)
     #[zone B3] numero emetteur (attribue par chaque etablisement 6 caracteres)
     content += write(self._emeteur['num_emetteur'], 6)
     #[zone C1-1] code CCD (virement à échéance "E-3")
     content += write('', 1)
     #[zone C1-2] Espace reserve 6 caracteres
     content += write('', 6)
     #[zone C1-3] date JJMMA
     content += self._datevir
     #[zone C2] Raison sociale du donneur d'ordre (24 caracteres max)
     content += write(self._emeteur['raisonsocial'], 24)
     #[zone D1-1] Reference virement sur 7 caracteres
     content += write(self._emeteur['reference'], 7)
     #[zone D1-2] Espace reserve 17 caracteres
     content += write('', 17)
     #[zone D2-1] Espace reserve 2 caracteres
     content += write('', 2)
     #[zone D2-2] Virement effectue en euro sur 1 caractere
     content += "E"
     #[zone D2-3] Espace reserve 5 caracteres
     content += write('', 5)
     #[zone D3] Code Guichet Emetteur 5 caracteres
     content += write(self._emeteur['guichet'], 5)
     #[zone D4] Numero de compte Emetteur 11 caracteres
     content += write(self._emeteur['num_compte'], 11)
     #[zone E] Espace reserve 16 caracteres
     content += write('', 16)
     #[zone F] Espace reserve 31 caracteres
     content += write('', 31)
     #[zone G1] code etablissement de la banque du donneur d'ordre
     #          5 caracteres
     content += write(self._emeteur['banque'], 5)
     #[zone G2] Espace reserve 6 caracteres
     content += write('', 6)
     content += BR_LINE
     return content
示例#2
0
 def _add(self,
          reference,
          raisonsocial,
          domiciliation,
          guichet,
          compte,
          montant,
          libelle,
          etablissement,
          balance=''):
     #[zone A]06 -> Code enregistrement (Entête destinataire)
     content = "06"
     #[zone B1]02 -> Nature de l'enregistrement (virement à vue )
     content += "02"
     #[zone B2]Espace réservé 8 caractères
     content += write("", 8)
     #[zone B3] numéro émetteur (numéro attribué par chaque établissement à
     #          son client émetteur)
     content += write(self._emeteur['num_emetteur'], 6)
     #[zone C1] référence (numéro facture par exemple) 12car
     content += write(reference, 12)
     #[zone C2] raison social du destinataure (24 caractères max)
     content += write(raisonsocial, 24)
     #[zone D1] domiciliation : désignation en clair du guichet et de la
     #         banque de domiciliataire (facultatif) sur 24  caractères maxi
     content += write(domiciliation, 24)
     #[zone D2] balance des paiements sur 8 caractères
     #         (réservé pour les salaires et pension)
     content += write("", 8)
     #[zone D3] Code Guichet 5 caractères
     content += write(guichet, 5)
     #[zone D4] Numéro de compte sur 11 caractères
     content += write(compte, 5)
     #[zone E]Montant : les 16 positions contiennent le montant centimes
     #        compris (00 s'il y a lieu) cadré à droite , non signé, complété à
     #        gauche par des zéros
     content += write(montant, 16, rpad=True, fill_char='0')
     #[zone F]Libellé : 31 caractères à la disposition du client émetteur
     #        pour indication du motif et des références de l'opération
     content += write(libelle, 31)
     #[zone G1]Code établissement destinataire 5 chiffres
     content += write(etablissement, 5)
     #[zone G2]Zone réservée de 6 caractères
     content += write("", 6)
     content += BR_LINE
     return content
示例#3
0
 def _render_header(self):
     if self._header:
         line = write('01', 2)
         line += write(self._header['bank_code'], 5)
         line += write('    ', 4) # reserved zone
         line += write(self._header['agency_code'], 5)
         line += write(self._header['currency'], 3)
         line += write('2', 1) # number of decimal
         line += write(' ', 1)  # reserved zone
         line += write(self._header['account_number'], 11)
         line += write('  ', 2)  # reserved zone
         line += write(date_format(self._header['date']), 6)
         line += write(' ', 50)  # reserved zone
         line += write(number_format(self._header['amount']), 14, rpad=True, fill_char='0')
         line += write(' ', 16)  # reserved zone
         return line + BR_LINE
     return ''
示例#4
0
 def _footer(self):
     #[zone A]08 -> Code enregistrement (Entête Total)
     content = "08"
     #[zone B1]02 -> Nature de l'enregistrement (virement à vue )
     content += "02"
     #[zone B2]8 espaces
     content += write("", 8)
     #[zone B3] numéro émetteur (numéro attribué par chaque établissement à son client émetteur)
     content += write(self._emeteur['num_emetteur'], 6)
     #[zone C1]Réservée 12 caractères
     content += write("", 12)
     #[zone C2]Réservée 24 caractères
     content += write("", 24)
     #[zone D1]Réservée 24 caractères
     content += write("", 24)
     #[zone D2]Réservée 8 caractères
     content += write("", 8)
     #[zone D3]Réservée 5 caractères
     content += write("", 5)
     #[zone D4]Réservée 11 caractères
     content += write("", 11)
     #[zone E]Montant : les 16 positions contiennent le montant centimes
     #                  compris (00 s'il y a lieu) cadré à droite , non signé, complété à gauche par des zéros
     content += write(self.total, 16, rpad=True, fill_char='0')
     #[zone F]Réservée 31 caractères
     content += write("", 31)
     #[zone G1]Réservée 5 caractères
     content += write("", 5)
     #[zone G2]Réservée 6 caractères
     content += write("", 6)
     content += BR_LINE
     return content
示例#5
0
 def add(self, bank_code, operation_code, agency_code, currency,
         account_number, date, label, amount, reference):
     line = write('04', 2)
     line += write(bank_code, 5)
     line += write(operation_code, 4)
     line += write(agency_code, 5)
     line += write(currency, 3)
     line += write('2', 1) # number of decimal
     line += write(' ', 1) # SIT code
     line += write(account_number, 11)
     line += write('08', 2) # interbank code
     line += write(date_format(date), 6)
     line += write('  ', 2) # rejected code
     line += write(date_format(date), 6)
     line += write(label, 31)
     line += write('  ', 2) # reserve zone
     line += write('       ', 7) # entry writing code
     line += write(' ', 1) # exoneration code
     line += write(' ', 1)  # reserve zone
     line += write(number_format(amount), 14, rpad=True, fill_char='0')
     line += write(reference, 16)
     self._content.append(line)
     return self