Bernd Wurst commited on 2009-02-13 16:11:18
Zeige 1 geänderte Dateien mit 16 Einfügungen und 3 Löschungen.
... | ... |
@@ -143,19 +143,29 @@ def InvoiceToPDF(iv): |
143 | 143 |
left += 1.5*cm |
144 | 144 |
right -= 1.5*cm |
145 | 145 |
height += len(part.paragraphs) * 3 * line_padding |
146 |
+ # Rechne eine Zeile mehr für den Rahmen |
|
147 |
+ height += line_height |
|
146 | 148 |
if part.headline: |
147 | 149 |
height += (len(_splitToWidth(canvas, part.headline, right-left, font+'-Bold', default_font_size+1)) * line_height) + line_padding |
148 | 150 |
for para in part.paragraphs: |
149 | 151 |
height += (len(_splitToWidth(canvas, para, right-left, font, default_font_size)) * line_height) + line_padding |
150 | 152 |
elif type(part) == Invoice.Table: |
151 |
- height = line_height |
|
153 |
+ # Eine Zeile plus 2 mal line_padding für Tabellenkopf |
|
154 |
+ height = line_height + 2 * line_padding |
|
152 | 155 |
for el in part.entries: |
156 |
+ # Die Abstände oben und unten |
|
157 |
+ height += 2 * line_padding |
|
153 | 158 |
# Die Breite ist konservativ |
154 | 159 |
height += line_height*len(_splitToWidth(canvas, el['subject'], 9.3*cm, font, font_size)) |
155 | 160 |
if 'desc' in el and el['desc'] != '': |
156 | 161 |
height += line_height * len(_splitToWidth(canvas, el['desc'], 11*cm, font, font_size)) |
157 |
- # 4 Zeilen sollten reichen für die Summen |
|
158 |
- height += line_height * 4 |
|
162 |
+ if part.vatType == 'net': |
|
163 |
+ # Eine Zeile mehr |
|
164 |
+ height += line_height + line_padding |
|
165 |
+ # Für die MwSt-Summen |
|
166 |
+ height += (line_height + line_padding) * len(part.vat) |
|
167 |
+ # Für den Rechnungsbetrag |
|
168 |
+ height += line_height + line_padding |
|
159 | 169 |
return height |
160 | 170 |
|
161 | 171 |
|
... | ... |
@@ -226,6 +236,9 @@ def InvoiceToPDF(iv): |
226 | 236 |
canvas.setFont(font, font_size-2) |
227 | 237 |
canvas.drawCentredString(leftcontent + (rightcontent - leftcontent) / 2, y, '- Seite %i -' % num_pages) |
228 | 238 |
y -= line_padding*3 |
239 |
+ # Debug: Was hat die Höhenbestimmung für diesen Teil als Höhe herausgefunden? |
|
240 |
+ #canvas.line(leftcontent, y-_partHeight(part), rightcontent, y-_partHeight(part)) |
|
241 |
+ |
|
229 | 242 |
if type(part) == Invoice.Table: |
230 | 243 |
|
231 | 244 |
left = leftcontent |
232 | 245 |