texture pdf

feature/docker
Dmitriy Shesterkin 9 years ago
parent fdcc1e1261
commit e4e2dfe5c8
  1. 156
      src/dokumentor/templates/docs/faktura/as_pdf.html
  2. 32
      src/dokumentor/templates/docs/faktura/as_pdf_items_tbl_header.html
  3. 3
      src/dokumentor/templates/docs/nakladn/as_pdf.html

@ -5,17 +5,43 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
@page { size: a4 landscape; margin-left: 1.5cm; margin-right: 0.6cm; margin-top: 1cm; margin-bottom: 1cm; }
@page {
size: a4 landscape;
margin: 1cm 0.6cm 1cm 1.5cm;
}
@font-face { font-family: Arial; src: url("{% fonts_root %}arial.ttf"); }
@font-face { font-family: Arial; src: url("{% fonts_root %}arialbd.ttf"); font-weight: bold; }
body { font-family: Arial; font-size: 9pt; line-height: 120%; }
body { font-family: Arial, sans-serif; font-size: 9pt; line-height: 120%; }
table { border-collapse: collapse; padding-top: 0.3ex; line-height: 120%; -pdf-keep-in-frame-mode: truncate; /*shrink*/ }
table tr th { font-weight: normal; }
table tr { padding-left: 0.3ex; padding-right: 0.3ex; }
table tr td { vertical-align: middle; }
table .row { text-align: right; }
* {
box-sizing: border-box;
}
table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
padding-top: 0.3ex;
line-height: 120%;
-pdf-keep-in-frame-mode: truncate; /*shrink*/
}
th {
font-weight: normal;
overflow: hidden;
white-space: nowrap;
}
tr {
padding-left: 0.3ex;
padding-right: 0.3ex;
}
td {
{# border: 1px solid red;#}
vertical-align: middle;
}
.center { text-align: center; }
.left { text-align: left; }
@ -32,15 +58,33 @@
.font_12 { font-size: 12pt; }
.font_14 { font-size: 14pt; }
.borders { border-style: solid; border-width: 1px; border-color: black; }
.top_border { border-top-style: solid; border-top-width: 1px; border-top-color: black; }
.top_border_2 { border-top-style: solid; border-top-width: 2px; border-top-color: black; }
.bottom_border { border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: black; }
.bottom_border_2 { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: black; }
.left_border { border-left-style: solid; border-left-width: 1px; border-left-color: black; }
.left_border_2 { border-left-style: solid; border-left-width: 2px; border-left-color: black; }
.right_border { border-right-style: solid; border-right-width: 1px; border-right-color: black; }
.right_border_2 { border-right-style: solid; border-right-width: 2px; border-right-color: black; }
.borders {
border: 1px solid black;
}
.top_border {
border-top: 1px solid black;
}
.top_border_2 {
border-top: 2px solid black;
}
.bottom_border {
border-bottom: 1px solid black;
}
.bottom_border_2 {
border-bottom: 2px solid black;
}
.left_border {
border-left: 1px solid black;
}
.left_border_2 {
border-left: 2px solid black;
}
.right_border {
border-right: 1px solid black;
}
.right_border_2 {
border-right: 2px solid black;
}
</style>
<body>
@ -60,7 +104,7 @@
{# шапка документа #}
<div style="margin-top:1ex;">
<table width="100%" class="left font_8">
<table class="left font_8">
{# строка 1 #}
<tr>
<td width="1%"></td>
@ -88,7 +132,7 @@
{% endif %}
{# строка 3 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">Продавец</td>
<td colspan="4" class="bottom bottom_border">
{{ profile.get_company_name|safe }}
@ -96,7 +140,7 @@
</tr>
{# строка 4 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">Адрес</td>
<td colspan="4" class="bottom bottom_border">
{{ profile.address|safe }}
@ -104,7 +148,7 @@
</tr>
{# строка 5 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">ИНН/КПП продавца</td>
<td colspan="4" class="bottom bottom_border">
{{ profile.get_inn_and_kpp }}
@ -112,7 +156,7 @@
</tr>
{# строка 6 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">Грузоотправитель и его адрес</td>
<td colspan="4" class="bottom bottom_border">
{{ obj.get_consignor_and_address|safe }}
@ -120,7 +164,7 @@
</tr>
{# строка 7 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">Грузополучатель и его адрес</td>
<td colspan="4" class="bottom bottom_border">
{{ obj.get_receiver_and_address|safe }}
@ -128,7 +172,7 @@
</tr>
{# строка 8 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">К платежно-расчетному документу №</td>
<td colspan="4" class="bottom bottom_border">
{{ obj.plat_doc_num }} от {{ obj.plat_doc_date|date:"d.m.Y" }}
@ -136,7 +180,7 @@
</tr>
{# строка 9 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">Покупатель</td>
<td colspan="4" class="bottom bottom_border">
{{ obj.client.name|safe }}
@ -144,7 +188,7 @@
</tr>
{# строка 10 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">Адрес</td>
<td colspan="4" class="bottom bottom_border">
{{ obj.client.address|safe }}
@ -152,7 +196,7 @@
</tr>
{# строка 11 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">ИНН/КПП покупателя</td>
<td colspan="4" class="bottom bottom_border">
{{ obj.client.get_inn_and_kpp }}
@ -160,7 +204,7 @@
</tr>
{# строка 12 #}
<tr>
<td></td>
<td width="1%"></td>
<td colspan="2" class="bottom">Валюта: наименование, код</td>
<td colspan="4" class="bottom bottom_border">
{{ obj.currency.name }}, {{ obj.currency.code }}
@ -181,33 +225,33 @@
{% if item.pdf_pagebreak_before %} {# разрыв страницы перед таблицей #}
<pdf:nextpage />
{% endif %}
<table repeat="3" width="100%" class="right font_8">
<table repeat="3" class="right font_8">
{% include "docs/faktura/as_pdf_items_tbl_header.html" %}
{% endif %}
{# данные #}
<tr class="bottom_border left_border">
<td class="left right_border">{{ item.name|safe }}</td>{# 1 #}
<td class="right_border">{{ item.units_kod|safe }}</td>{# 2 #}
<td class="center right_border">{{ item.units|safe }}</td>{# 2а #}
<td class="right_border">{{ item.qty }}</td>{# 3 #}
<td class="right_border">{{ item.clean_price }}</td>{# 4 #}
<td class="right_border">{{ item.clean_total_price|floatformat:2 }}</td>{# 5 #}
<td class="right_border">-</td>{# 6 #}
<td class="right_border">{{ obj.get_nds_value_display }}</td>{# 7 #}
<td class="right_border">{{ item.total_nds|floatformat:2 }}</td>{# 8 #}
<td class="right_border">{{ item.full_total_price|floatformat:2 }}</td>{# 9 #}
<td class="center right_border">{{ item.country_code }}</td>{# 10 #}
<td class="right_border">{{ item.country_name }}</td>{# 10а #}
<td class="right_border">{{ item.ntd }}</td>{# 11 #}
<td width="21%" class="left right_border">{{ item.name|safe }}</td>{# 1 #}
<td width="3%" class="right_border">{{ item.units_kod|safe }}</td>{# 2 #}
<td width="10%" class="center right_border">{{ item.units|safe }}</td>{# 2а #}
<td width="7%" class="right_border">{{ item.qty }}</td>{# 3 #}
<td width="5%" class="right_border">{{ item.clean_price }}</td>{# 4 #}
<td width="7%" class="right_border">{{ item.clean_total_price|floatformat:2 }}</td>{# 5 #}
<td width="5%" class="right_border">-</td>{# 6 #}
<td width="5%" class="right_border">{{ obj.get_nds_value_display }}</td>{# 7 #}
<td width="7%" class="right_border">{{ item.total_nds|floatformat:2 }}</td>{# 8 #}
<td width="8%" class="right_border">{{ item.full_total_price|floatformat:2 }}</td>{# 9 #}
<td width="9%" class="center right_border">{{ item.country_code }}</td>{# 10 #}
<td width="7%" class="right_border center">{{ item.country_name }}</td>{# 10а #}
<td width="6%" class="right_border">{{ item.ntd }}</td>{# 11 #}
</tr>
{% if forloop.last %} {# всего по таблице, если последняя запись #}
<tr>
<td colspan="5" class="left left_border right_border bottom_border">Всего к оплате</td>{# 1-7 #}
<td class="center left_border right_border bottom_border"></td>{# 1-7 #}
<td width="7%" class="center left_border right_border bottom_border"></td>{# 1-7 #}
<td colspan="2" class="center left_border right_border bottom_border">X</td>{# 11 #}
<td class="left_border right_border bottom_border">{{ obj.sum_total_nds|floatformat:2 }}</td>{# 14 #}
<td class="left_border right_border bottom_border">{{ obj.sum_full_total_price|floatformat:2 }}</td>{# 15 #}
<td width="7%" class="left_border right_border bottom_border">{{ obj.sum_total_nds|floatformat:2 }}</td>{# 14 #}
<td width="8%" class="left_border right_border bottom_border">{{ obj.sum_full_total_price|floatformat:2 }}</td>{# 15 #}
</tr>
</table>
{% endif %}
@ -227,9 +271,9 @@
{# подвал документа #}
{% if obj.add_sign_and_stamp and profile.boss_sign %} {# TODO передавать флаг из вьюхи #}
<table width="100%"> {# не делать отступ, если нужно вставить подпись руководителя #}
<table> {# не делать отступ, если нужно вставить подпись руководителя #}
{% else %}
<table width="100%" style="padding-top:3ex;">
<table style="padding-top:3ex;">
{% endif %}
<tr>
<td width="25%"></td>
@ -241,22 +285,22 @@
</tr>
{% if profile.is_org %} {# Орг #}
<tr>
<td>
<td width="25%">
{{ profile.get_boss_title }}
</td>
<td class="bottom_border">
<td width="15%" class="bottom_border">
{% if obj.add_sign_and_stamp and profile.boss_sign %} {# TODO передавать флаг из вьюхи #}
<img src="{{ profile.boss_sign.path }}" /> {# подпись руководителя #}
{% endif %}
</td>
<td>
<td width="10%">
({{ profile.get_boss_fio }}) {# фио руководителя #}
</td>
{# подпись главбуха: a) всегда для организации, b) для ИП - если задана #}
<td>Главный бухгалтер</td>
<td class="bottom_border">
<td width="25%">Главный бухгалтер</td>
<td width="15%" class="bottom_border">
{% if obj.add_sign_and_stamp %} {# TODO передавать флаг из вьюхи #}
{% if profile.glavbuh_sign %}
<img src="{{ profile.glavbuh_sign.path }}" /> {# подпись главбуха #}
@ -269,21 +313,21 @@
{% endif %}
{% endif %}
</td>
<td>
<td width="10%">
{{ profile.get_glavbuh_fio|default:profile.get_boss_fio }} {# фио главбуха #}
</td>
</tr>
{% else %}
<tr>
<td>
<td width="25%">
{{ profile.get_boss_title }}
</td>
<td class="bottom_border">
<td width="15%" class="bottom_border">
{% if obj.add_sign_and_stamp and profile.boss_sign %} {# TODO передавать флаг из вьюхи #}
<img src="{{ profile.boss_sign.path }}" /> {# подпись руководителя #}
{% endif %}
</td>
<td>
<td width="10%">
{{ profile.get_boss_fio }} {# фио руководителя #}
</td>
<td colspan="3" class="bottom_border">
@ -295,7 +339,7 @@
{# --------------------------------------------------------------------- #}
<tr>
<td></td>
<td width="25%"></td>
<td colspan="2" class="left">
{% if obj.add_sign_and_stamp and profile.stamp %} {# TODO передавать флаг из вьюхи #}
<img src="{{ profile.stamp.path }}" /> {# печать #}

@ -1,29 +1,29 @@
<tr class="top_border bottom_border left_border right_border">
<th rowspan="2">Наименование товара (описание выполненных работ, оказанных услуг), имущественного права</th>
<th colspan="2">Единица измерения</th>
<th rowspan="2">Количество (объем)</th>
<th rowspan="2">Цена (тариф) за единицу измерения</th>
<th rowspan="2">Стоимость товаров (работ, услуг), имущественных прав без налога - всего</th>
<th rowspan="2">В том числе сумма акциза</th>
<th rowspan="2">Налоговая ставка</th>
<th rowspan="2">Сумма налога, предъяв-ляемая покупателю</th>
<th rowspan="2">Стоимость товаров (работ, услуг), имущественных прав с налогом - всего</th>
<th width="21%" rowspan="2">Наименование товара (описание выполненных работ, оказанных услуг), имущественного права</th>
<th width="3%" colspan="2">Единица измерения</th>
<th width="10%" rowspan="2">Количество (объем)</th>
<th width="7%" class="font_7" rowspan="2">Цена (тариф) за единицу измерения</th>
<th width="7%" class="font_7" rowspan="2">Стоимость товаров (работ, услуг), имущественных прав без налога - всего</th>
<th width="5%" rowspan="2">В том числе сумма акциза</th>
<th width="5%" rowspan="2">Налоговая ставка</th>
<th width="7%" rowspan="2">Сумма налога, предъяв-<br/>ляемая покупателю</th>
<th width="8%" rowspan="2">Стоимость товаров (работ, услуг), имущественных прав с налогом - всего</th>
<th colspan="2">Страна происхождения товара</th>
<th rowspan="2">Номер таможенной декларации</th>
<th width="6%" class="font_7" rowspan="2">Номер таможенной декларации</th>
</tr>
<tr class="bottom_border left_border right_border">
<th>код</th>
<th>условное обозначение (национальное)</th>
<th>Цифровой код</th>
<th>краткое наименование</th>
<th width="3%">к<br/>о<br/>д</th>
<th width="10%">условное обозначение (национальное)</th>
<th width="9%">Цифровой код</th>
<th class="font_7" width="7%">краткое наименование</th>
</tr>
<tr class="bottom_border left_border">
<th width="21%" class="right_border bottom_border">1</th>
<th width="5%" class="right_border bottom_border">2</th>
<th width="3%" class="right_border bottom_border">2</th>
<th width="10%" class="right_border bottom_border"></th>
<th width="7%" class="right_border bottom_border">3</th>
<th width="5%" class="right_border bottom_border">4</th>
<th width="5%" class="right_border bottom_border">5</th>
<th width="7%" class="right_border bottom_border">5</th>
<th width="5%" class="right_border bottom_border">6</th>
<th width="5%" class="right_border bottom_border">7</th>
<th width="7%" class="right_border bottom_border">8</th>

@ -31,8 +31,7 @@
padding-right: 0.3ex;
}
td {
{# border: 1px solid red;#}
vertical-align: middle;
vertical-align: middle;
}
.center { text-align: center; }

Loading…
Cancel
Save