/**
  * @param OrderInvoice $order_invoice
  * @param $smarty
  * @throws PrestaShopException
  */
 public function __construct(OrderInvoice $order_invoice, $smarty, $bulk_mode = false)
 {
     $this->order_invoice = $order_invoice;
     $this->order = new Order((int) $this->order_invoice->id_order);
     $this->smarty = $smarty;
     // If shop_address is null, then update it with current one.
     // But no DB save required here to avoid massive updates for bulk PDF generation case.
     // (DB: bug fixed in 1.6.1.1 with upgrade SQL script to avoid null shop_address in old orderInvoices)
     if (!isset($this->order_invoice->shop_address) || !$this->order_invoice->shop_address) {
         $this->order_invoice->shop_address = OrderInvoice::getCurrentFormattedShopAddress((int) $this->order->id_shop);
         if (!$bulk_mode) {
             OrderInvoice::fixAllShopAddresses();
         }
     }
     // header informations
     $this->date = Tools::displayDate($order_invoice->date_add);
     $id_lang = Context::getContext()->language->id;
     $this->title = $order_invoice->getInvoiceNumberFormatted($id_lang);
     $this->shop = new Shop((int) $this->order->id_shop);
 }
 /**
  * @param OrderInvoice $order_invoice
  * @param $smarty
  * @throws PrestaShopException
  */
 public function __construct(OrderInvoice $order_invoice, $smarty, $bulk_mode = false)
 {
     $this->order_invoice = $order_invoice;
     $this->order = new Order($this->order_invoice->id_order);
     $this->smarty = $smarty;
     // If shop_address is null, then update it with current one.
     // But no DB save required here to avoid massive updates for bulk PDF generation case.
     // (DB: bug fixed in 1.6.1.1 with upgrade SQL script to avoid null shop_address in old orderInvoices)
     if (!isset($this->order_invoice->shop_address) || !$this->order_invoice->shop_address) {
         $this->order_invoice->shop_address = OrderInvoice::getCurrentFormattedShopAddress((int) $this->order->id_shop);
         if (!$bulk_mode) {
             OrderInvoice::fixAllShopAddresses();
         }
     }
     // header informations
     $this->date = Tools::displayDate($order_invoice->date_add);
     $prefix = Configuration::get('PS_DELIVERY_PREFIX', Context::getContext()->language->id);
     $this->title = sprintf(HTMLTemplateDeliverySlip::l('%1$s%2$06d'), $prefix, $this->order_invoice->delivery_number);
     // footer informations
     $this->shop = new Shop((int) $this->order->id_shop);
 }
Example #3
0
 /**
  * This method is used to fix shop addresses that cannot be fixed during upgrade process
  * (because uses the whole environnement of PS classes that is not available during upgrade).
  * This method should execute once on an upgraded PrestaShop to fix all OrderInvoices in one shot.
  * This method is triggered once during a (non bulk) creation of a PDF from an OrderInvoice that is not fixed yet.
  *
  * @since 1.6.1.1
  */
 public static function fixAllShopAddresses()
 {
     $shop_ids = Shop::getShops(false, null, true);
     $db = Db::getInstance();
     foreach ($shop_ids as $id_shop) {
         $address = OrderInvoice::getCurrentFormattedShopAddress($id_shop);
         $escaped_address = $db->escape($address, true, true);
         $db->execute('UPDATE `' . _DB_PREFIX_ . 'order_invoice` INNER JOIN `' . _DB_PREFIX_ . 'orders` USING (`id_order`)
             SET `shop_address` = \'' . $escaped_address . '\' WHERE `shop_address` IS NULL AND `id_shop` = ' . $id_shop);
     }
 }