1616You should have received a copy of the GNU Lesser General Public License
1717along with CFONB. If not, see <http://www.gnu.org/licenses/>.
1818"""
19+ from cfonb .writer .common import write , save
20+
1921"""
2022 Coryright 2011, Stéphane Planquart <[email protected] > 2123
@@ -59,73 +61,59 @@ def setEmeteurInfos(self,num_emeteur,raisonsocial,reference,
5961 self ._datevir = datevir .strftime (format = '%d%m' ) + datevir .strftime (format = '%y' )[1 :]
6062 return self
6163
62- def add (self ,reference , raisonsocial ,domiciliation ,
64+ def add (self , reference , raisonsocial , domiciliation ,
6365 guichet , compte , montant , libelle ,
6466 etablissement , balance = '' ):
6567 montant *= 100 #passe le montant en centime d'euros
6668 self .total += montant #ajout le momtant au total des virements
67- self ._content = self ._add (reference , raisonsocial ,domiciliation ,
69+ self ._content = self ._add (reference , raisonsocial , domiciliation ,
6870 guichet , compte , montant , libelle ,
6971 etablissement , balance )
7072 return self
7173
72- def render (self ,filename = None ):
73- content = self ._header ()
74- content += self ._content
75- content += self ._footer ()
76- if (filename != None ):
77- f = open (filename ,'w' )
78- f .write (content )
79- f .close ()
80- return content
81-
82- def _space (self ,chaine ,length ,rpad = False ,caract = ' ' ):
83- chaine = str (chaine )
84- if (rpad ):
85- return chaine .rjust (length ,caract )[:length ]
86- else :
87- return chaine .ljust (length ,caract )[:length ]
74+ def render (self , filename = None ):
75+ return save (self ._header (), self ._content , self ._footer (), filename )
8876
8977 def _header (self ):
9078 #[zone A]
9179 content = "03"
9280 #[zone B1]
9381 content += "02"
9482 #[zone B2] Espace reserve 8 caracteres
95- content += self . _space ('' ,8 )
83+ content += write ('' , 8 )
9684 #[zone B3] numero emetteur (attribue par chaque etablisement 6 caracteres)
97- content += self . _space (self ._emeteur ['num_emetteur' ], 6 )
85+ content += write (self ._emeteur ['num_emetteur' ], 6 )
9886 #[zone C1-1] code CCD (virement à échéance "E-3")
99- content += self . _space ('' ,1 )
87+ content += write ('' , 1 )
10088 #[zone C1-2] Espace reserve 6 caracteres
101- content += self . _space ('' ,6 )
89+ content += write ('' , 6 )
10290 #[zone C1-3] date JJMMA
10391 content += self ._datevir ;
10492 #[zone C2] Raison sociale du donneur d'ordre (24 caracteres max)
105- content += self . _space (self ._emeteur ['raisonsocial' ], 24 )
93+ content += write (self ._emeteur ['raisonsocial' ], 24 )
10694 #[zone D1-1] Reference virement sur 7 caracteres
107- content += self . _space (self ._emeteur ['reference' ],7 )
95+ content += write (self ._emeteur ['reference' ], 7 )
10896 #[zone D1-2] Espace reserve 17 caracteres
109- content += self . _space ('' ,17 )
97+ content += write ('' , 17 )
11098 #[zone D2-1] Espace reserve 2 caracteres
111- content += self . _space ('' ,2 )
99+ content += write ('' , 2 )
112100 #[zone D2-2] Virement effectue en euro sur 1 caractere
113101 content += "E" ;
114102 #[zone D2-3] Espace reserve 5 caracteres
115- content += self . _space ('' ,5 )
103+ content += write ('' , 5 )
116104 #[zone D3] Code Guichet Emetteur 5 caracteres
117- content += self . _space (self ._emeteur ['guichet' ], 5 )
105+ content += write (self ._emeteur ['guichet' ], 5 )
118106 #[zone D4] Numero de compte Emetteur 11 caracteres
119- content += self . _space (self ._emeteur ['num_compte' ], 11 )
107+ content += write (self ._emeteur ['num_compte' ], 11 )
120108 #[zone E] Espace reserve 16 caracteres
121- content += self . _space ('' ,16 )
109+ content += write ('' , 16 )
122110 #[zone F] Espace reserve 31 caracteres
123- content += self . _space ('' ,31 )
111+ content += write ('' , 31 )
124112 #[zone G1] code etablissement de la banque du donneur d'ordre
125113 # 5 caracteres
126- content += self . _space (self ._emeteur ['banque' ], 5 )
114+ content += write (self ._emeteur ['banque' ], 5 )
127115 #[zone G2] Espace reserve 6 caracteres
128- content += self . _space ('' ,6 )
116+ content += write ('' , 6 )
129117 content += "\r \n " ;
130118 return content
131119
@@ -135,30 +123,30 @@ def _footer(self):
135123 #[zone B1]02 -> Nature de l'enregistrement (virement à vue )
136124 content += "02"
137125 #[zone B2]8 espaces
138- content += self . _space ("" ,8 )
126+ content += write ("" , 8 )
139127 #[zone B3] numéro émetteur (numéro attribué par chaque établissement à son client émetteur)
140- content += self . _space (self ._emeteur ['num_emetteur' ],6 )
128+ content += write (self ._emeteur ['num_emetteur' ], 6 )
141129 #[zone C1]Réservée 12 caractères
142- content += self . _space ("" ,12 )
130+ content += write ("" , 12 )
143131 #[zone C2]Réservée 24 caractères
144- content += self . _space ("" ,24 )
132+ content += write ("" , 24 )
145133 #[zone D1]Réservée 24 caractères
146- content += self . _space ("" ,24 )
134+ content += write ("" , 24 )
147135 #[zone D2]Réservée 8 caractères
148- content += self . _space ("" ,8 )
136+ content += write ("" , 8 )
149137 #[zone D3]Réservée 5 caractères
150- content += self . _space ("" ,5 )
138+ content += write ("" , 5 )
151139 #[zone D4]Réservée 11 caractères
152- content += self . _space ("" ,11 )
140+ content += write ("" , 11 )
153141 #[zone E]Montant : les 16 positions contiennent le montant centimes
154142 # compris (00 s'il y a lieu) cadré à droite , non signé, complété à gauche par des zéros
155- content += self . _space (self .total ,16 ,rpad = True ,caract = '0' )
143+ content += write (self .total , 16 , rpad = True , caract = '0' )
156144 #[zone F]Réservée 31 caractères
157- content += self . _space ("" ,31 )
145+ content += write ("" , 31 )
158146 #[zone G1]Réservée 5 caractères
159- content += self . _space ("" ,5 )
147+ content += write ("" , 5 )
160148 #[zone G2]Réservée 6 caractères
161- content += self . _space ("" ,6 )
149+ content += write ("" , 6 )
162150 content += "\r \n " ;
163151 return content
164152
@@ -170,34 +158,34 @@ def _add(self,reference, raisonsocial,domiciliation,
170158 #[zone B1]02 -> Nature de l'enregistrement (virement à vue )
171159 content += "02"
172160 #[zone B2]Espace réservé 8 caractères
173- content += self . _space ("" ,8 )
161+ content += write ("" , 8 )
174162 #[zone B3] numéro émetteur (numéro attribué par chaque établissement à
175163 # son client émetteur)
176- content += self . _space (self ._emeteur ['num_emetteur' ],6 )
164+ content += write (self ._emeteur ['num_emetteur' ], 6 )
177165 #[zone C1] référence (numéro facture par exemple) 12car
178- content += self . _space (reference ,12 )
166+ content += write (reference , 12 )
179167 #[zone C2] raison social du destinataure (24 caractères max)
180- content += self . _space (raisonsocial ,24 )
168+ content += write (raisonsocial , 24 )
181169 #[zone D1] domiciliation : désignation en clair du guichet et de la
182170 # banque de domiciliataire (facultatif) sur 24 caractères maxi
183- content += self . _space (domiciliation ,24 )
171+ content += write (domiciliation , 24 )
184172 #[zone D2] balance des paiements sur 8 caractères
185173 # (réservé pour les salaires et pension)
186- content += self . _space ("" ,8 )
174+ content += write ("" , 8 )
187175 #[zone D3] Code Guichet 5 caractères
188- content += self . _space (guichet ,5 )
176+ content += write (guichet , 5 )
189177 #[zone D4] Numéro de compte sur 11 caractères
190- content += self . _space (compte ,5 )
178+ content += write (compte , 5 )
191179 #[zone E]Montant : les 16 positions contiennent le montant centimes
192180 # compris (00 s'il y a lieu) cadré à droite , non signé, complété à
193181 # gauche par des zéros
194- content += self . _space (montant ,16 ,rpad = True ,caract = '0' )
182+ content += write (montant , 16 , rpad = True , caract = '0' )
195183 #[zone F]Libellé : 31 caractères à la disposition du client émetteur
196184 # pour indication du motif et des références de l'opération
197- content += self . _space (libelle ,31 )
185+ content += write (libelle , 31 )
198186 #[zone G1]Code établissement destinataire 5 chiffres
199- content += self . _space (etablissement ,5 )
187+ content += write (etablissement , 5 )
200188 #[zone G2]Zone réservée de 6 caractères
201- content += self . _space ("" ,6 )
189+ content += write ("" , 6 )
202190 content += "\r \n " ;
203191 return content
0 commit comments