Jump to content

[SOLUCIONADO] Order Slip (PDF devoluciones) no muestra los datos de empresa, dirección, etc.


Recommended Posts

Hola a todos, hace mucho que no aportaba algo y hoy he hecho una corrección que me he encontrado.

 

Los usuarios de PS 1.6.0.X que no hayan actualizado tendrán el siguiente error: El PDF de las devoluciones no muestra los datos de empresa como Nombre de la empresa, dirección, teléfono, el CIF, etc. en el encabezado del documento.

 

Para que aparezcan sólo hay que modificar dos ficheros:

 

1. Editar el fichero /classes/order/OrderSlip.php y añadir, antes de la última llave de cierre " } " estas dos funciones:

 

 
public static function getCurrentFormattedShopAddress($id_shop = null)
    {
        $address = new Address();
        $address->company = Configuration::get('PS_SHOP_NAME', null, null, $id_shop);
        $address->address1 = Configuration::get('PS_SHOP_ADDR1', null, null, $id_shop);
        $address->address2 = Configuration::get('PS_SHOP_ADDR2', null, null, $id_shop);
        $address->postcode = Configuration::get('PS_SHOP_CODE', null, null, $id_shop);
        $address->city = Configuration::get('PS_SHOP_CITY', null, null, $id_shop);
        $address->phone = Configuration::get('PS_SHOP_PHONE', null, null, $id_shop);
        $address->id_country = Configuration::get('PS_SHOP_COUNTRY_ID', null, null, $id_shop);
 
        return AddressFormat::generateAddress($address, array(), '<br />', ' ');
    }
   
    public static function fixAllShopAddresses()
    {
        $shop_ids = Shop::getShops(false, null, true);
        $db = Db::getInstance();
        foreach ($shop_ids as $id_shop) {
            $address = self::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);
        }
    }
 
 
 
2. Editar el archivo /pdf/HTMLTemplateOrderSlip.php después de la línea 50 (donde pone "$this->smarty = $smarty;
") añadir lo siguiente:
 
        if (!isset($this->order_slip->shop_address) || !$this->order_slip->shop_address) {
            $this->order_slip->shop_address = OrderSlip::getCurrentFormattedShopAddress((int)$this->order->id_shop);
            if (!$bulk_mode) {
                OrderSlip::fixAllShopAddresses();
            }
        }
 
Guardamos y subimos los dos archivos por FTP y ya podremos ver los datos de nuestra tienda en los PDF de devoluciones.
 
Saludos

 

  • Thanks 1
Link to comment
Share on other sites

  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...