Автор Тема: Порядковые номера товара в счете PDF. Преста 1.5.3.1  (Прочитано 1619 раз)

20 Февраль 2013, 21:28:08
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Есть вопрос, к которому не смог найти ответ.
Генерирую счет в PDF. В счете несколько наименований товара, каждый в своей строке.
Есть следующие колонки: Описание, Артикул, Цена, Количество, Итого.
Товаров может быть достаточно много, счет бывает на 2-3 листах.
Вопрос: Как сделать, чтобы проставлялись порядковые номера товаров?
Сейчас: Описание, Артикул, Цена, Количество, Итого.
Нужно: № пп, Описание, Артикул, Цена, Количество, Итого.
Может кто помочь советом в какую сторону копать?
Версия Prestashop 1.5.3.1
Спасибо.
21 Февраль 2013, 11:34:37
Ответ #1
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
21 Февраль 2013, 17:53:21
Ответ #2
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Прочел всю ветку поста. Не понял какую переменную и куда вставлять.:(
Понял, что это надо делать в классе - AdminInvoicesController.
22 Февраль 2013, 00:52:38
Ответ #3
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
С версией 1.5 вопрос решил. На другом форуме подсказал добрый человек.
Отвечает файл invoice.tpl

Заголовок колонки:

<td style="text-align: left; background-color: #4D4D4D; color: #FFF; padding-left: 10px; font-weight: bold; width: 20px">{l s='#' pdf='true'}</td>
<td style="text-align: left; background-color: #4D4D4D; color: #FFF; padding-left: 10px; font-weight: bold; width: 45%">{l s='Product / Reference' pdf='true'}</td>

Записи в колонке:
<!-- PRODUCTS -->

{assign var=ln value=0}
{foreach $order_details as $order_detail}
{assign var=ln value=$ln+1}
{cycle values='#FFF,#DDD' assign=bgcolor}
<tr style="line-height:6px;background-color:{$bgcolor};">

<td style="text-align: left; width: 20px;">{$ln}</td>
<td style="text-align: left; width: 45%">{$order_detail.product_name}</td>

done.
Выделенное оранжевым нужно вставить перед указанными строками.

Сейчас вопрос актуален для версии 1.4.9  Так как еще есть сайт на этой версии.
Кто-нибудь знает как сделать где покопаться?
22 Февраль 2013, 15:41:04
Ответ #4
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
В prestashop 1.4 нет шаблонов для pdf.
Все изменения нужно будет делать в классе PDF.php.
public function ProdTabHeader($delivery = false) добавить колонку для номера, заголовок
$header = array(
        array(self::l('#'), 'C'),
array(self::l('Description'), 'L'),
и перечисление для продуктов
public function ProdTab($delivery = false)
{
   
Cоздание интернет сайтов Webstudio UwK
22 Февраль 2013, 18:58:38
Ответ #5
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Виталий, колонку вставить вроде удалось. По крайней мере, знак # в строке появился.
Правда место под него в столбце не появилось.

И непонятно, что делать с этим:

и перечисление для продуктов
public function ProdTab($delivery = false)
{
25 Февраль 2013, 12:56:21
Ответ #6
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
public function ProdTabHeader($delivery = false)Это заголовок страницы.
Для колонки номеров продуктов.
public function ProdTab($delivery = false)
{
if (!$delivery)
$w = array(ширина нового столбца,100, 15, 30, 15, 30);
Для номера можно использовать переменную $line или создать свою.
26 Февраль 2013, 16:20:05
Ответ #7
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все понятно.
Вот с этим загвозка, пока не умею.
Для номера можно использовать переменную $line или создать свою.