~camptocamp/openerp-swiss-localization/7.0-pending-merge

« back to all changes in this revision

Viewing changes to l10n_ch_payment_slip/report/multi_bvr.mako

  • Committer: nicolas.bessi at camptocamp
  • Author(s): romain.deheele at camptocamp
  • Date: 2013-09-23 07:15:24 UTC
  • mfrom: (177.1.11 multi-payment-bvr)
  • Revision ID: nicolas.bessi@camptocamp.com-20130923071524-sv1b3qa46ocug3dr
[MRG]release 7.2 adds support of multi payments term BVR.
Adds a new report that will allows to print BVR from invoice using account.move.line So if there is many payment terms many BVR will be print per invoice.
The previous report is kept but deprecated.
A new field is addes on account.move.line transaction_ref.
Changes to manage bvr_reference and transaction_ref depending on payment terms are automatic

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html>
 
2
<head>
 
3
       <style type="text/css">
 
4
           @font-face {
 
5
               font-family: "bvrocrb";
 
6
               font-style: normal;
 
7
               font-weight: normal;
 
8
               src: url(${police_absolute_path('ocrbb.ttf')}) format("truetype");
 
9
           }
 
10
 
 
11
           #ocrbb{
 
12
             position:absolute;
 
13
             left:${str(company.bvr_scan_line_horz or '0.0').replace(',','.')}mm;
 
14
             top:${str(company.bvr_scan_line_vert or '0.0').replace(',','.')}mm;
 
15
             font-family:bvrocrb;
 
16
             font-size:${str(company.bvr_scan_line_font_size or '0.0').replace(',','.')}pt;
 
17
             text-align:left;
 
18
             width: 119mm;
 
19
           }
 
20
 
 
21
           .digitref {
 
22
             position:absolute;
 
23
             top:7px;
 
24
             text-align:center;
 
25
             float:left;
 
26
             width:9px;
 
27
           }
 
28
 
 
29
           .slip_address_b {
 
30
            position:absolute;
 
31
            top:${str(215 + (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
32
            left:${str(5 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
33
 
 
34
           }
 
35
 
 
36
         .dest_address_bvr {
 
37
           position:absolute;
 
38
           top:${str(company.bvr_add_vert or '0.0').replace(',','.')}mm;
 
39
           left:${str(company.bvr_add_horz or '0.0').replace(',','.')}mm;
 
40
           font-size:12;
 
41
          }
 
42
 
 
43
         .slip_bank_acc {
 
44
           font-family:Helvetica;
 
45
           font-size:8pt;
 
46
           border-width:0px;
 
47
           padding-left:0mm;
 
48
           padding-top:0mm;
 
49
           position:absolute;
 
50
           top:${str(194 + (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
51
           left:${str(30 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
52
          }
 
53
 
 
54
         .slip_bank_add_acc {
 
55
           font-family:Helvetica;
 
56
           font-size:8pt;
 
57
           border-width:0px;
 
58
           padding-left:0mm;
 
59
           padding-top:0mm;
 
60
           position:absolute;
 
61
           top:${str(160 + (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
62
           left:${str(5 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
63
          }
 
64
 
 
65
          .slip_comp {
 
66
              font-family:Helvetica;
 
67
              font-size:8pt;
 
68
              border-width:0px;
 
69
              padding-left:0mm;
 
70
              padding-top:0mm;
 
71
              position:absolute;
 
72
              top:${str(175+ (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
73
              left:${str(5 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
74
           }
 
75
 
 
76
           .slip_add {
 
77
             font-family:Helvetica;
 
78
             font-size:8pt;
 
79
             border-width:0px;
 
80
             padding-left:0mm;
 
81
             padding-top:0mm
 
82
           }
 
83
 
 
84
           .slip_amount {
 
85
             width:5cm;
 
86
             text-align:right;
 
87
             font-size:11pt;
 
88
             font-family:Helvetica;
 
89
             position:absolute;
 
90
             top:${str(203 + (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
91
             left:${str(7 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
92
           }
 
93
 
 
94
           /*
 
95
            Slip 2 element
 
96
           */
 
97
 
 
98
           .slip2_address_b {
 
99
             position:absolute;
 
100
             top:${str(200 + (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
101
             left:${str(130 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
102
           }
 
103
 
 
104
 
 
105
         .slip2_bank_acc {
 
106
           font-family:Helvetica;
 
107
           font-size:8pt;
 
108
           border-width:0px;
 
109
           padding-left:0mm;
 
110
           padding-top:0mm;
 
111
           position:absolute;
 
112
           top:${str(194 + (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
113
           left:${str(90 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
114
          }
 
115
 
 
116
 
 
117
 
 
118
         .slip2_bank_add_acc {
 
119
           font-family:Helvetica;
 
120
           font-size:8pt;
 
121
           border-width:0px;
 
122
           padding-left:0mm;
 
123
           padding-top:0mm;
 
124
           position:absolute;
 
125
           top:${str(160 + (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
126
           left:${str(65 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
127
          }
 
128
 
 
129
 
 
130
         .slip2_ref {
 
131
              text-align:right;
 
132
              font-size:11pt;
 
133
              font-family:Helvetica;
 
134
              position:absolute;
 
135
              top:${str(185 + (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
136
              left:${str(130 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
137
           }
 
138
 
 
139
           .slip2_comp {
 
140
             font-family:Helvetica;
 
141
             font-size:8pt;
 
142
             border-width:0px;
 
143
             padding-left:0mm;
 
144
             padding-top:0mm;
 
145
             position:absolute;
 
146
             top:${str(175+ (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
147
             left:${str(65 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
148
           }
 
149
 
 
150
           .bvr_background {
 
151
               width:210mm;
 
152
               height:106mm;
 
153
               border:0;
 
154
               margin:0;
 
155
               position:absolute;
 
156
               z-index:-10;
 
157
               top:${str(151.2+ (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
158
               left:${str(0 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
159
           }
 
160
 
 
161
           .slip2_amount {
 
162
             width:5cm;
 
163
             text-align:right;
 
164
             font-size:11pt;
 
165
             font-family:Helvetica;
 
166
             position:absolute;
 
167
             top:${str(203 + (company.bvr_delta_vert or 0.0)).replace(',','.')}mm;
 
168
             left:${str(67 + (company.bvr_delta_horz or 0.0)).replace(',','.')}mm;
 
169
           }
 
170
 
 
171
          ${css}
 
172
    </style>
 
173
 
 
174
   </head>
 
175
   <body topmargin="0px">
 
176
 
 
177
       %for move in objects:
 
178
       <% inv = move.invoice %>
 
179
       <% setLang(inv.partner_id.lang) %>
 
180
       <!--adresses + info block -->
 
181
        <table class="dest_address_bvr"  style="position:absolute;width:230px;word-wrap:break-word">
 
182
          <% commercial_partner = inv.commercial_partner_id if hasattr(move.invoice, 'commercial_partner_id') else inv.partner_id %>
 
183
                %if inv.partner_id.id != commercial_partner.id:
 
184
                <tr><td>${commercial_partner.name or ''}</td></tr>
 
185
                <tr><td>${inv.partner_id.title and inv.partner_id.title.name or ''} ${inv.partner_id.name }</td></tr>
 
186
                %else:
 
187
                <tr><td>${inv.partner_id.title and inv.partner_id.title.name or ''} ${inv.partner_id.name }</td></tr>
 
188
                %endif
 
189
               <tr><td>${inv.partner_id.street or ''|entity}</td></tr>
 
190
               <tr><td>${inv.partner_id.street2 or ''|entity}</td></tr>
 
191
               <tr><td>${inv.partner_id.zip or ''|entity} ${inv.partner_id.city or ''|entity}</td></tr>
 
192
               %if inv.partner_id.country_id :
 
193
               <tr><td>${inv.partner_id.country_id.name or ''|entity} </td></tr>
 
194
               %endif
 
195
           </table>
 
196
 
 
197
       <div style="position:absolute;top:60mm; left:10mm">
 
198
           <b>${_('Payment slip for:')}</b> ${inv.number or ''|entity}
 
199
           <br/>
 
200
       </div>
 
201
 
 
202
       <div id="cont_${inv.id}" style="padding-left:20mm;padding-top:0;padding-bottom:10;height:180mm;z-index:3500">
 
203
        <!-- Your communication message here -->
 
204
       </div>
 
205
    %if company.bvr_background:
 
206
    <img name="bvr_background" id="bvr_background" class="bvr_background" alt="bvr" src="${bvr_absolute_path()}" />
 
207
    %endif
 
208
    <!-- slip 1 elements -->
 
209
       <div id="slip_address_b" class="slip_address_b">
 
210
         <table class="slip_add">
 
211
           <tr><td>${_space(_get_ref(move))}</td></tr>
 
212
           <tr><td>
 
213
            %if inv.partner_id.id != commercial_partner.id:
 
214
                ${commercial_partner.name or ''|entity}
 
215
            %else:
 
216
                ${inv.partner_id.name |entity}
 
217
            %endif
 
218
            </td></tr>
 
219
           <tr><td>${inv.partner_id.street or ''|entity}</td></tr>
 
220
           <tr><td>${inv.partner_id.street2 or ''|entity}</td></tr>
 
221
           <tr><td>${inv.partner_id.zip or ''|entity} ${inv.partner_id.city or ''|entity}</td></tr>
 
222
       </table>
 
223
       </div>
 
224
       %if inv.partner_bank_id and inv.partner_bank_id.print_bank and inv.partner_bank_id.bank:
 
225
         <div id="slip_bank_add_acc" class="slip_bank_add_acc">
 
226
           ${inv.partner_bank_id.bank_name or ''} <br/>
 
227
           ${inv.partner_bank_id.bank and inv.partner_bank_id.bank.zip or ''}&nbsp;${inv.partner_bank_id.bank and inv.partner_bank_id.bank.city or ''}
 
228
         </div>
 
229
       %endif
 
230
 
 
231
 
 
232
       <div id="slip_bank_acc" class="slip_bank_acc">${inv.partner_bank_id.print_account and inv.partner_bank_id.get_account_number() or ''}</div>
 
233
 
 
234
       <div id="slip_amount" class="slip_amount"><span >${"&nbsp;".join(_space(('%.2f' % move.debit)[:-3], 1))}</span>  <span style="padding-left:6mm">${"&nbsp;".join(_space(('%.2f' % move.debit)[-2:], 1))}</span></div>
 
235
 
 
236
       %if  inv.partner_bank_id.print_partner:
 
237
       <div id="slip_comp" class="slip_comp">
 
238
        <table class="slip_add">
 
239
            <tr><td>${user.company_id.partner_id.name}</td></tr>
 
240
            <tr><td>${user.company_id.partner_id.street}</td></tr>
 
241
            <tr><td></td></tr>
 
242
            <tr><td>${user.company_id.partner_id.city} ${user.company_id.partner_id.zip}</td></tr>
 
243
        </table>
 
244
      </div>
 
245
      %endif
 
246
 
 
247
    <!-- slip 2 elements -->
 
248
       <div id="slip2_ref" class="slip2_ref" >${_space(_get_ref(move))}</div>
 
249
       <div id="slip2_amount" class="slip2_amount"><span>${"&nbsp;".join(_space(('%.2f' % move.debit)[:-3], 1))}</span>  <span style="padding-left:6mm">${"&nbsp;".join(_space(('%.2f' % move.debit)[-2:], 1))}</span></div>
 
250
       <div id="slip2_address_b" class="slip2_address_b">
 
251
           <table class="slip_add">
 
252
               <tr><td>
 
253
                %if inv.partner_id.id != commercial_partner.id:
 
254
                    ${commercial_partner.name or ''|entity}
 
255
                %else:
 
256
                    ${inv.partner_id.name |entity}
 
257
                %endif
 
258
               </td></tr>
 
259
               <tr><td>${inv.partner_id.street or ''|entity}</td></tr>
 
260
               <tr><td>${inv.partner_id.street2 or ''|entity}</td></tr>
 
261
               <tr><td>${inv.partner_id.zip or ''|entity} ${inv.partner_id.city or ''|entity}</td></tr>
 
262
           </table>
 
263
       </div>
 
264
 
 
265
       %if inv.partner_bank_id.print_partner:
 
266
       <div id="slip2_comp" class="slip2_comp">
 
267
           <table class="slip_add">
 
268
            <tr><td>${user.company_id.partner_id.name}</td></tr>
 
269
            <tr><td>${user.company_id.partner_id.street}</td></tr>
 
270
            <tr><td></td></tr>
 
271
            <tr><td>${user.company_id.partner_id.city} ${user.company_id.partner_id.zip}</td></tr>
 
272
           </table>
 
273
       </div>
 
274
       %endif
 
275
 
 
276
       %if inv.partner_bank_id and inv.partner_bank_id.print_bank and inv.partner_bank_id.bank:
 
277
         <div id="slip2_bank_add_acc" class="slip2_bank_add_acc">
 
278
           ${inv.partner_bank_id.bank_name or ''} <br/>
 
279
           ${inv.partner_bank_id.bank and inv.partner_bank_id.bank.zip or ''}&nbsp;${inv.partner_bank_id.bank and inv.partner_bank_id.bank.city or ''}
 
280
         </div>
 
281
       %endif
 
282
 
 
283
       <div id="slip2_bank_acc" class="slip2_bank_acc">${inv.partner_bank_id.print_account and inv.partner_bank_id.get_account_number() or ''}</div>
 
284
    <!--- scaner code bar -->
 
285
  <div id="ocrbb">
 
286
    <%
 
287
       ref_start_left   = 1.5
 
288
       ref_coef_space   = company.bvr_scan_line_letter_spacing or 2.55
 
289
       tt = [ v for v in mod10r('01'+str('%.2f' % move.debit).replace('.','').rjust(10,'0')) ]
 
290
       tt.append('&gt;')
 
291
       tt += [v for v in _get_ref(move)]
 
292
       tt.append('+')
 
293
       tt.append('&nbsp;')
 
294
       tt += [v for v in inv.partner_bank_id.get_account_number().split('-')[0]+(str(inv.partner_bank_id.get_account_number().split('-')[1])).rjust(6,'0')+inv.partner_bank_id.get_account_number().split\
 
295
('-')[2]]
 
296
       tt.append('&gt;')
 
297
    %>
 
298
        %for ii,c in enumerate(tt) :
 
299
            <div class="digitref"  style="left:${ref_start_left + (ii*ref_coef_space)}mm;">${c}</div>
 
300
        %endfor
 
301
 </div>
 
302
    %endfor
 
303
</body>
 
304
</html>