|
|
|
|
@ -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 }}" /> {# печать #} |
|
|
|
|
|