Jump to content
  • 0

Zmiana dokumentów PDF na te generowane z ifirma (presta 1.6.xx)


nonameno

Question

Witam,

Sprawa dotyczy presty 1.6.1.3.

Mam dość nietypowy problem i przyznam, że chyba mam jakieś mega zaćmienie, bo nie mogę sobie z nim dać rady.

Otóż chcę podmienić dokumenty typu faktura, proforma itp generowane przez prestę na dokumenty generowane przez moduł ifirma i wyświetlić odpowiednie linki (ikonki) w szczegółach zamówienia w panelu klienta.

 

Konkretniej chodzi o to, że jak wygeneruję fakturę, proformę lub inny dokument w module ifirma to będzie on dostępny do pobrania także z podglądu zamówienia, które może sobie wyświetlić klient.

 

Teraz tak. Plik główny modułu o nazwie ifirma.php zawiera kod przycisków do wyświetlenia i generowania faktur. Poniżej kod odpowiedzialny za to :

    public function hookAdminOrder()
    {
        $this->context->controller->addJS(($this->_path).'js/ifirma.js');
        if(!$this->_isConfigurationSet())
        {
            return $this->display(__FILE__,'/views/noOrder.tpl');
        }
            
        $orderId = intval(Tools::getValue(self::KEY_ORDER_ID));
        if($orderId != 0){
            $invoiceMapCollection = \ifirma\InvoiceMap::getInvoiceMapRowsForOrderId($orderId);
            
            $this->context->smarty->assign(array(
                'sendResultMessage' => $this->_getSendResultMessage(),
                'invoiceValidationMessage' => $this->_getInvoiceValidationMessage(),
                'isVat' => Configuration::get(self::API_VAT),
                'hash' => Configuration::get(self::API_HASH),
                'orderId' => $orderId,
                'invoice' => $invoiceMapCollection->{\ifirma\InvoiceMap::INVOICE_TYPE_NORMAL},
                'invoiceSend' => $invoiceMapCollection->{\ifirma\InvoiceMap::INVOICE_TYPE_SEND},
                'invoiceProforma' => $invoiceMapCollection->{\ifirma\InvoiceMap::INVOICE_TYPE_PROFORMA},
                'bill' => $invoiceMapCollection->{\ifirma\InvoiceMap::INVOICE_TYPE_BILL},
                'actionInvoice' => \ifirma\ApiManager::KEY_ACTION_INVOICE,
                'actionInvoiceSend' => \ifirma\ApiManager::KEY_ACTION_INVOICE_SEND,
                'actionInvoiceProforma' => \ifirma\ApiManager::KEY_ACTION_INVOICE_PROFORMA,
                'actionInvoiceFromProforma' => \ifirma\ApiManager::KEY_ACTION_INVOICE_FROM_PROFORMA,
                'actionBill' => \ifirma\ApiManager::KEY_ACTION_BILL
            ));
            
            return $this->display(__FILE__,'/views/order.tpl');

        }
        
        return '';
    }

 

Czyli linijka jaka mnie interesuje to :

return $this->display(__FILE__,'/views/order.tpl');

Powieliłem ją, przekierowałem do pliku o nazwie orderCustomer.tpl

I wpisałem do zawartości tego pliku zmodyfikowaną zawartość pliku order.tpl, czyli :

<fieldset style="margin-top: 10px;">
{$sendResultMessage}
{$invoiceValidationMessage}
{if $invoice}
<a href="../modules/ifirma/requests/getInvoice.php?id={$invoice->id}&h={$hash}"><img src="../img/admin/pdf.gif"/> Pobierz »</a>
{/if}
<br/>

{if !$isVat}
{if $bill}
<a href="../modules/ifirma/requests/getInvoice.php?id={$bill->id}&h={$hash}"><img src="../img/admin/pdf.gif"/>Pobierz rachunek »</a>
{/if}<br/>
{else}
{if $invoiceSend}
<a href="../modules/ifirma/requests/getInvoice.php?id={$invoiceSend->id}&h={$hash}"><img src="../img/admin/pdf.gif"/>Pobierz fakturę wysyłkową»</a>
{/if}
<br/>
{if $invoiceProforma}
<a href="../modules/ifirma/requests/getInvoice.php?id={$invoiceProforma->id}&h={$hash}"><img src="../img/admin/pdf.gif"/>Pobierz fakturę proforma»</a>
{if !$invoice}
{/if}
{/if}
{/if}


</fieldset>

Powyższy kod ma za zadanie pokazać jedynie te dokumenty, które są wygenerowane z panelu admina.

 

Teraz tylko nie za bardzo wiem jak wyświetlić zawartość orderCustomer.tpl w pliku order-detail.tpl, który odpowiada za wyświetlenie podglądu zamówień w panelu klienta. (45 linijka kodu zawiera link generujący PDFa z fakturą (z presty):

<a target="_blank" href="{$link->getPageLink('pdf-invoice', true)}?id_order={$order->id|intval}{if $is_guest}&secure_key={$order->secure_key|escape:'html':'UTF-8'}{/if}">{l s='Download your invoice as a PDF file.'}</a>

 

Ogólnie zamiast powyższego kodu chcę mieć zawartość wygenerowaną z modułu.

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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...