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

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

А то в стандартном шаблоне такой бардак, просто ужас.
И никто ничего с этим не делает..
22 Сентябрь 2014, 11:11:19
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество 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
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-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
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Если работает и показывает правльно, то зачем править. Все сделано хорошо, можно использовать.
24 Сентябрь 2014, 00:13:16
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 105
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо!
Это не идеальный вариант, но лучше чем то, что идет по умолчанию!!!