Jump to content

Generando Pdf De La Factura


schattenburg

Recommended Posts

Hola, estoy intentando añadir el campo DNI del cliente en la factura que se genera en el PDF, por lo que he visto se hace en:

 

Localización-> Paises -> Editar Paises -> Formato dirección y añade "dni" en el formato de la dirección

 

Lo he probado y no me funciona. Este Prestashop lo han tocado otros programadores antes que yo por lo que supongo que a lo mejor el proceso de generar la factura en PDF está hecho a pelo. Trato de comprender el proceso que se sigue:

 

a) Se llama al controller de AdminPDFControllers a la funcion generateInvoicePDFByIdOrder que tiene lo siguiente:

 

public function generateInvoicePDFByIdOrder($id_order)
    {
        $order = new Order((int)$id_order);
        if (!Validate::isLoadedObject($order)) {
            die(Tools::displayError('The order cannot be found within your database.'));
        }
        $order_invoice_list = $order->getInvoicesCollection();
        Hook::exec('actionPDFInvoiceRender', array('order_invoice_list' => $order_invoice_list));
        $this->generatePDF($order_invoice_list, PDF::TEMPLATE_INVOICE);
    }

 

B) Me voy a la función getInvoicesCollection de la clase order que tiene lo siguiente:

 

public function getInvoicesCollection()
    {
        $order_invoices = new PrestaShopCollection('OrderInvoice');
        $order_invoices->where('id_order', '=', $this->id);
        return $order_invoices;
    }

 

c) Por lo que deduzco (no estoy seguro) que en PrestashopCollection se le pasa el nombre del modelo del que quieres extraer los campos a mostrar en la factura. La pregunta es: ¿Dónde está físicamente ese fichero? ¿Dónde puedo ver donde están todos los PrestashopCollection para así añadirle el DNI a OrderInvoice?

 

Quizás hay alguna otra forma de hacerlo pero por el momento no encuentro nada.

 

Gracias por adelantado.

Link to comment
Share on other sites

Los formatos de las direcciones para las facturas vienen de

classes\pdf\HTMLTemplateInvoice.php

Alli tienes donde se toman las direcciones

public function getContent()

y donde se crean las variables que se pasan al .tpl, en el array

    $data = array(
            'delivery_address' => $formatted_delivery_address,
            'invoice_address' => $formatted_invoice_address,
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...