You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
232 lines
8.6 KiB
232 lines
8.6 KiB
{% load my_tags pytils_numeral %}
|
|
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
|
|
|
<style type="text/css">
|
|
@page { size: a4 portrait; margin: 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: 8pt; line-height: 140%; }
|
|
|
|
table { border-collapse: collapse; padding-top: 0.5ex; line-height: 140%; }
|
|
table tr { padding-left: 0.5ex; padding-right: 0.5ex; vertical-align: bottom; }
|
|
table tr td { vertical-align: bottom; }
|
|
table .row { text-align: right; }
|
|
|
|
#header { padding-left: 1ex; font-weight: bold; }
|
|
#content_header { margin-top: 1ex; }
|
|
#content_middle { text-align: left; }
|
|
|
|
.center { text-align: center; }
|
|
|
|
.borders { border-style: solid; border-width: 1px; border-color: black; }
|
|
.top_border { border-top-style: solid; border-top-width: 1px; border-top-color: black; }
|
|
.bottom_border { border-bottom-style: solid; border-bottom-width: 1px; border-bottom-color: black; }
|
|
.left_border { border-left-style: solid; border-left-width: 1px; border-left-color: black; }
|
|
.right_border { border-right-style: solid; border-right-width: 1px; border-right-color: black; }
|
|
.no_borders { border-style: solid; border-width: 1px; border-color: white; }
|
|
</style>
|
|
|
|
<body>
|
|
|
|
<div id="header">
|
|
<table width="100%">
|
|
{% if profile.logo %}
|
|
<tr class="">
|
|
<td width="20%">
|
|
{% if profile.logo %}<img src="{{ profile.logo.path }}" />{% endif %}
|
|
</td>
|
|
<td width="80%">
|
|
{% else %}
|
|
<td width="100%">
|
|
{% endif %}
|
|
{{ profile.get_company_name }}<br />
|
|
{{ profile.address }}
|
|
{% if profile.phone %} , тел. {{ profile.get_full_phone }}{% endif %}<br />
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="content_header">
|
|
<table width="100%">
|
|
<tr class="borders">
|
|
<td width="31%">ИНН {{ profile.inn }}</td>
|
|
<td width="31%">КПП {{ profile.kpp }}</td>
|
|
<td width="9%" rowspan="3">Сч. №</td>
|
|
<td width="29%" rowspan="3">{{ obj.bank_account.account }}</td>
|
|
</tr>
|
|
|
|
<tr class="left_border right_border">
|
|
<td colspan="2">Получатель</td>
|
|
</tr>
|
|
|
|
<tr class="left_border right_border">
|
|
<td colspan="2" class="bottom_border">{{ profile.get_company_name }}</td>
|
|
</tr>
|
|
|
|
<tr class="left_border right_border">
|
|
<td colspan="2">Банк получателя</td>
|
|
<td>БИК</td>
|
|
<td class="bottom_border">{{ obj.bank_account.bik }}</td>
|
|
</tr>
|
|
|
|
<tr class="left_border right_border bottom_border">
|
|
<td colspan="2">{{ obj.bank_account.name }}</td>
|
|
<td>Сч. №</td>
|
|
<td class="no_top_border">{{ obj.bank_account.korr_account }}</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="header_2">
|
|
<br /><br />
|
|
{{ obj.doc_text }}
|
|
<center><h1>СЧЕТ № {{ obj.doc_num }} от {{ obj.doc_date|date:"d.m.Y" }}</h1></center>
|
|
</div>
|
|
|
|
<div id="content_middle">
|
|
Покупатель: {{ obj.client.name }},
|
|
ИНН {{ obj.client.get_inn_and_kpp }},
|
|
{{ obj.client.address }}
|
|
{% if obj.client.contact_phone %} , тел. {{ obj.client.contact_phone }}{% endif %}
|
|
|
|
<table repeat="1" width="100%">
|
|
<tr class="borders">
|
|
<th width="5%">№</th>
|
|
<th width="39%">Наименование товара, работ, услуг</th>
|
|
<th width="8%">Ед. изм.</th>
|
|
<th width="10%">Кол-во</th>
|
|
<th width="18%">Цена</th>
|
|
<th width="20%">Сумма</th>
|
|
</tr>
|
|
|
|
{% for item in obj_items %}
|
|
<tr class="row borders">
|
|
<td>{{ forloop.counter }}</td>
|
|
<td align="left">{{ item.name }}</td>
|
|
<td align="center">{{ item.units }}</td>
|
|
<td>{{ item.qty|floatformat:"-3" }}</td>
|
|
<td>{{ item.price }}</td>
|
|
<td>{{ item.total_price }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
|
|
{# --- итоги --- #}
|
|
|
|
<tr class="row no_borders">
|
|
<td class="top_border" colspan="5"><b>Итого:</b></td>
|
|
<td class="borders"><b>{{ obj.sum_total_price|floatformat:2 }}</b></td>
|
|
</tr>
|
|
|
|
<tr class="row no_borders">
|
|
<td colspan="5">
|
|
<b>{{ obj.nds_itogo_text }}</b>:
|
|
</td>
|
|
<td class="borders">
|
|
<b>
|
|
{{ obj.sum_total_nds|floatformat:2 }}
|
|
</b>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr class="row no_borders">
|
|
<td colspan="5"><b>Всего к оплате:</b></td>
|
|
<td class="borders"><b>{{ obj.sum_full_total_price|floatformat:2 }}</b></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div id="content_footer">
|
|
<div style="margin-top:2ex;">
|
|
Всего наименований {{ obj_items|length }}, на сумму {{ obj.sum_full_total_price|floatformat:2 }} руб.
|
|
</div>
|
|
|
|
<div style="margin-top:2ex;">
|
|
<b>{{ obj.sum_full_total_price|to_float|rubles|capfirst }}. {{ obj.doc_text|safe }}</b>
|
|
</div>
|
|
|
|
{% if doc_sign and profile.boss_sign %} {# TODO передавать флаг из вьюхи #}
|
|
<table width="100%"> {# не делать отступ, если нужно вставить подпись руководителя #}
|
|
{% else %}
|
|
<table width="100%" style="padding-top:3ex;">
|
|
{% endif %}
|
|
<tr>
|
|
<td width="15%"></td>
|
|
<td width="15%"></td>
|
|
<td width="30%"></td>
|
|
<td width="1%"></td>
|
|
<td width="30%"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2">
|
|
{{ profile.get_boss_title }}
|
|
</td>
|
|
<td class="bottom_border">
|
|
{% if doc_sign and profile.boss_sign %} {# TODO передавать флаг из вьюхи #}
|
|
<img src="{{ profile.boss_sign.path }}" /> {# подпись руководителя #}
|
|
{% endif %}
|
|
</td>
|
|
<td></td>
|
|
<td>
|
|
({{ profile.get_boss_fio }}) {# фио руководителя #}
|
|
</td>
|
|
</tr>
|
|
|
|
{# подпись главбуха: a) всегда для организации, b) для ИП - если задана #}
|
|
|
|
{% if profile.is_ip and profile.get_glavbuh_fio %} {# ИП #}
|
|
<tr>
|
|
<td colspan="2">Главный бухгалтер</td>
|
|
<td class="bottom_border">
|
|
{% if doc_sign and profile.glavbuh_sign %} {# TODO передавать флаг из вьюхи #}
|
|
<img src="{{ profile.glavbuh_sign.path }}" /> {# подпись главбуха #}
|
|
{% else %}
|
|
<br />
|
|
{% endif %}
|
|
</td>
|
|
<td></td>
|
|
<td>({{ profile.get_glavbuh_fio }})</td> {# фио главбуха #}
|
|
</tr>
|
|
{% endif %}
|
|
|
|
{% if profile.is_org %} {# Орг #}
|
|
<tr>
|
|
<td colspan="2">Главный бухгалтер</td>
|
|
<td class="bottom_border">
|
|
{% if doc_sign and profile.glavbuh_sign %}
|
|
<img src="{{ profile.glavbuh_sign.path }}" /> {# подпись главбуха #}
|
|
{% else %}
|
|
{% if doc_sign and profile.boss_sign %}
|
|
<img src="{{ profile.boss_sign.path }}" /> {# или подпись руководителя #}
|
|
{% else %}
|
|
<br />
|
|
{% endif %}
|
|
{% endif %}
|
|
</td>
|
|
<td></td>
|
|
<td>
|
|
({{ profile.get_glavbuh_fio|default:profile.get_boss_fio }}) {# фио главбуха #}
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
|
|
{# --------------------------------------------------------------------- #}
|
|
|
|
<tr>
|
|
<td></td>
|
|
<td colspan="2" class="left">
|
|
{% if doc_sign and profile.stamp %} {# TODO передавать флаг из вьюхи #}
|
|
<img src="{{ profile.stamp.path }}" /> {# печать #}
|
|
{% endif %}
|
|
</td>
|
|
<td colspan="2"></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|
|
|