Автор Тема: Не правильно отображаетс счет в PDF  (Прочитано 406 раз)

20 Сентября 2014, 17:57:25
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте!
После оформления заказа, на странице покупателя появляется файл PDF, в котором счет на покупку.
Но он не правильно отображается. Некоторые данные из таблица съехали влево. Это видно на скриншоте.
Как это можно исправить? Где вообще можно отредактировать счет?
Магазин на PrestaShop 1.5.6.2
21 Сентября 2014, 13:35:40
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86335
  • Репутация: +25417/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В шаблонах PDF счет-фактуры:
/pdf/header.tpl
/pdf/footer.tpl
/pdf/invoice.tpl
21 Сентября 2014, 18:46:03
Ответ #2
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Может есть у кого-то готовый отредактированный шаблон?

А то в стандартном шаблоне такой бардак, просто ужас.
И никто ничего с этим не делает..
22 Сентября 2014, 11:11:19
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 13636
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Каждый под себя шаблоны настраивает.
22 Сентября 2014, 16:56:32
Ответ #4
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добился такого результата:


Остался один вопрос. Как сделать, чтобы сумма указывалась ниже, с новой строки в столбце "Способ оплаты"?
Мне бы хотелось, чтобы в этом столбце показывался способ оплаты, а ниже сумма.
Привожу код:
<td style="text-align: center; width: 20%"><table style="width: 100%;">
{foreach from=$order_invoice->getOrderPaymentCollection() item=payment}
<tr>
<td>{$payment->payment_method}</td>
<td>{displayPrice price=$payment->amount currency=$order->id_currency}</td>
</tr>
{foreachelse}
<tr>
<td>{l s='No payment' pdf='true'}</td>
</tr>
{/foreach}
</table>
</td>
22 Сентября 2014, 17:11:43
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 33028
  • Репутация: +26761/-0
    • Просмотр профиля
<td>
    {$payment->payment_method}
    <br>
    {displayPrice price=$payment->amount currency=$order->id_currency}
</td>
22 Сентября 2014, 18:49:56
Ответ #6
  • Пользователь
  • **
  • Сообщений: 58
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В общем, не стал заморачиваться... И сделал такую таблицу, теперь счет выглядит так:

А вот как выглядит, если в корзине было 2 товара:


Делюсь своим корявым кодом  ;D
<table style="width: 100%">
<tr>
<td style="width: 17%; padding-right: 7px; text-align: right; vertical-align: top; font-size: 7pt;">
<!-- / CUSTOMER INFORMATION -->
</td>
<td style="width: 100%; text-align: right">
<table style="width: 100%; font-size: 8pt;">
<tr style="line-height:4px;">
<td style="background-color: #4D4D4D; color: #FFF; text-align: left; font-weight: bold; width: 20%">{l s='Order Number:' pdf='true'}</td>
<!-- unit price tax excluded is mandatory -->
<td style="background-color: #4D4D4D; color: #FFF; text-align: center; font-weight: bold; width: 20%; white-space: nowrap;">{l s='Order Date:' pdf='true'}</td>

<td style="background-color: #4D4D4D; color: #FFF; text-align: centert; font-weight: bold; width: 20%; white-space: nowrap;">{l s='Payment Method:' pdf='true'}</td>
<td style="background-color: #4D4D4D; color: #FFF; text-align: right; font-weight: bold; width: 22%">{l s='Carrier:' pdf='true'}</td>

</tr>
<!-- PRODUCTS -->
{foreach $order_details as $order_detail}
{cycle values='#FFF,#DDD' assign=bgcolor}
<tr style="line-height:6px;background-color:{$bgcolor};">
<td style="text-align: left; width: {if !$tax_excluded_display}35%{else}20%{/if}">{$order->getUniqReference()}</td>
<!-- unit price tax excluded is mandatory -->

<td style="text-align: center; width: 20%; white-space: nowrap;">
{if $tax_excluded_display}
{dateFormat date=$order->date_add full=0}

{/if}
</td>

<td style="text-align: center; width: 20%"><table style="width: 100%;">
{foreach from=$order_invoice->getOrderPaymentCollection() item=payment}
<tr>
<td>{$payment->payment_method}</td>

</tr>
{foreachelse}
<tr>
<td>{l s='No payment' pdf='true'}</td>
</tr>
{/foreach}
</table>
</td>
<td style="text-align: right; width: 22%; white-space: nowrap;">
{if $tax_excluded_display}
{$carrier->name}

{/if}
</td>

</tr>
{foreach $order_detail.customizedDatas as $customizationPerAddress}
{foreach $customizationPerAddress as $customizationId => $customization}
<tr style="line-height:6px;background-color:{$bgcolor};">
<td style="line-height:3px; text-align: left; width: 45%; vertical-align: top">

<blockquote>
{if isset($customization.datas[$smarty.const._CUSTOMIZE_TEXTFIELD_]) && count($customization.datas[$smarty.const._CUSTOMIZE_TEXTFIELD_]) > 0}
{foreach $customization.datas[$smarty.const._CUSTOMIZE_TEXTFIELD_] as $customization_infos}
{$customization_infos.name}: {$customization_infos.value}
{if !$smarty.foreach.custo_foreach.last}<br />
{else}
<div style="line-height:0.4pt">&nbsp;</div>
{/if}
{/foreach}
{/if}

{if isset($customization.datas[$smarty.const._CUSTOMIZE_FILE_]) && count($customization.datas[$smarty.const._CUSTOMIZE_FILE_]) > 0}
{count($customization.datas[$smarty.const._CUSTOMIZE_FILE_])} {l s='image(s)' pdf='true'}
{/if}
</blockquote>
</td>
{if !$tax_excluded_display}
<td style="text-align: right;"></td>
{/if}
<td style="text-align: right; width: 10%"></td>
<td style="text-align: center; width: 10%; vertical-align: top">({$customization.quantity})</td>
<td style="width: 15%; text-align: right;"></td>
</tr>
{/foreach}
{/foreach}
{/foreach}
<!-- END PRODUCTS -->

<!-- CART RULES -->
{assign var="shipping_discount_tax_incl" value="0"}
{foreach $cart_rules as $cart_rule}
{cycle values='#FFF,#DDD' assign=bgcolor}
<tr style="line-height:6px;background-color:{$bgcolor};text-align:left;">
<td style="line-height:3px;text-align:left;width:60%;vertical-align:top" colspan="{if !$tax_excluded_display}5{else}4{/if}">{$cart_rule.name}</td>
<td>
{if $tax_excluded_display}
- {$cart_rule.value_tax_excl}
{else}
- {$cart_rule.value}
{/if}
</td>
</tr>
{/foreach}
<!-- END CART RULES -->
</table>

</td>
</tr>
</table>

<P STYLE="font-size:30px;">&nbsp;</P>

Пользуйтесь! Этот код нужно расположить в /pdf/invoice.tpl. Его я разместил в 70-й строке, сразу после:
<td style="width: 50%">
<span style="font-weight: bold; font-size: 10pt; color: #9E9F9E">{l s='Billing & Delivery Address.' pdf='true'}</span><br />
{$invoice_address}
</td>
<td style="width: 50%">

</td>
</tr>
</table>
{/if}
</td>
</tr>
</table>
<!-- / ADDRESSES -->

<div style="line-height: 1pt">&nbsp;</div>
Предварительно сохраните свой оригинальный файл на компьютере. Вы действуете на свой страх и риск  ;)
И буду рад, если гуру форума поправят мой код, т.к. я не специалист и могут быть ошибки.

P.s. не пойму как расположить под кат некоторые данные этого поста. Так, что verzeihen Sie!  ::)
23 Сентября 2014, 10:30:09
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 1012
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если работает и показывает правльно, то зачем править. Все сделано хорошо, можно использовать.
24 Сентября 2014, 00:13:16
Ответ #8
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо!
Это не идеальный вариант, но лучше чем то, что идет по умолчанию!!!