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

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

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

Loading…
Cancel
Save