Jump to content

Edit History

d.iandoli75

d.iandoli75


comportamento non corretto

Buongiorno,

Sto lavorando su un modulo personalizzato con cui creo ordini o fatture in un gestionale sul cloud tramite delle chiamate API.

Nel file principale ho un metodo 'afterHook' in cui controllo se nella chiamata API devo creare un ordine o una fattura:

 

public function afterHook($order, $isInvoice){
        $orderId = $order->id;
        $my_api_url = $this->baseUrl.'/api/v0.3/SaveDocument';
        $send_data = array();
        $send_data['apiKey'] = Configuration::get('PS_MYSERVICE_API');
        if ($order->total_paid != 0) 
            $send_data['xml'] = $this->createInvoiceXml($orderId, $isInvoice); // non inserisce ordine a zero
        $dataReturned = $this->curlDownload($my_api_url, http_build_query($send_data));
        $docIdMyService = explode('</docId>', explode('<docId>', $dataReturned)[1])[0];

        if(!empty($docIdMyService)){
            if (!$isInvoice) {
                $query = 'UPDATE ' . _DB_PREFIX_ . 'orders SET docIdOrderMyService=\'' . $docIdMyService . '\' WHERE id_order=\'' . $orderId . '\';';
                Db::getInstance()->Execute($query);
                $this->downloadDocument($docIdMyService, $orderId, false);
            }
            else {
                $query = 'UPDATE ' . _DB_PREFIX_ . 'orders SET docIdMyService=\'' . $docIdMyService . '\' WHERE id_order=\'' . $orderId . '\';';
                Db::getInstance()->Execute($query);
                $this->downloadDocument($docIdMyService, $orderId, true); 
            }
        }

 

Usando gli hooks 'displayAdminOrderTabOrder' e 'displayAdminOrderContentOrder' ho aggiunto al dettaglio dell'ordine una tab che contiene le informazioni sullo stato dell'ordine nel gestionale: due colonne in cui so se per quell'ordine o per quella fattura è stato creato il documento corrispondente sul gestionale. 

Qui sotto il template che utilizzo attualmente (admin_content_order.tpl):

<div class="tab-pane" id="Fattura24">

   <table>
      <thead>
         <tr>
            <td style="padding-left: 20px;"><strong>{l s='Stato ordine' mod='mymodule'}   </strong></td>
            <td style="padding-left: 20px;"><strong>{l s='Stato fattura' mod='mymodule'}  </strong></td>
         </tr>
      </thead>      
        
      <tr>
         <td style="padding-left: 20px;">{$mymodule_order}</td>
         <td style="padding-left: 20px;">{$mymodule_invoice}</td>
      </tr>
      
      <tr>
         <td style="padding-left: 20px;">
            {if $mymodule_order_docId ==''}    
               <button type="submit" name="submit_order" id="submit_order" class="btn btn-primary" onclick="saveOrder()">Salva ordine</button>
            {/if}
         </td>
         <td style="padding-left: 20px;">
            {if $mymodule_invoice_docId == ''}    
               <button type="submit" name="submit_invoice" id="submit_invoice" class="btn btn-primary" onclick="saveInvoice()">Salva fattura</button>
            {/if}
         </td>
      </tr> 
   </table>
   
</div>

Grazie a smarty riesco a visualizzare i pulsanti con le condizioni giuste, ma vorrei associare l'azione "saveOrder" e "saveInvoice" al comando 'afterHook' per creare l'ordine o la fattura a seconda dell'id del pulsante. Pensavo ad una chiamata ajax, ma poiché sono un niubbo: qualcuno può darmi qualche suggerimento?

Grazie

Davide

d.iandoli75

d.iandoli75

Buongiorno,

Sto lavorando su un modulo personalizzato con cui creo ordini o fatture in un gestionale sul cloud tramite delle chiamate API.

Nel file principale ho un metodo 'afterHook' in cui controllo se nella chiamata API devo creare un ordine o una fattura:

 

public function afterHook($order, $isInvoice){
        $orderId = $order->id;
        $my_api_url = $this->baseUrl.'/api/v0.3/SaveDocument';
        $send_data = array();
        $send_data['apiKey'] = Configuration::get('PS_MYSERVICE_API');
        if ($order->total_paid != 0) 
            $send_data['xml'] = $this->createInvoiceXml($orderId, $isInvoice); // non inserisce ordine a zero
        $dataReturned = $this->curlDownload($my_api_url, http_build_query($send_data));
        $docIdMyService = explode('</docId>', explode('<docId>', $dataReturned)[1])[0];

        if(!empty($docIdMyService)){
            if (!$isInvoice) {
                $query = 'UPDATE ' . _DB_PREFIX_ . 'orders SET docIdOrderMyService=\'' . $docIdMyService . '\' WHERE id_order=\'' . $orderId . '\';';
                Db::getInstance()->Execute($query);
                $this->downloadDocument($docIdMyService, $orderId, false);
            }
            else {
                $query = 'UPDATE ' . _DB_PREFIX_ . 'orders SET docIdMyService=\'' . $docIdMyService . '\' WHERE id_order=\'' . $orderId . '\';';
                Db::getInstance()->Execute($query);
                $this->downloadDocument($docIdMyService, $orderId, true); 
            }
        }

 

Usando gli hooks 'displayAdminOrderTabOrder' e 'displayAdminOrderContentOrder' ho aggiunto al dettaglio dell'ordine una tab che contiene le informazioni sullo stato dell'ordine nel gestionale: due colonne in cui so se per quell'ordine o per quella fattura è stato creato il documento corrispondente sul gestionale. 

Qui sotto il template che utilizzo attualmente (admin_content_order.tpl):

<div class="tab-pane" id="Fattura24">

   <table>
      <thead>
         <tr>
            <td style="padding-left: 20px;"><strong>{l s='Stato ordine' mod='mymodule'}   </strong></td>
            <td style="padding-left: 20px;"><strong>{l s='Stato fattura' mod='mymodule'}  </strong></td>
         </tr>
      </thead>      
        
      <tr>
         <td style="padding-left: 20px;">{$mymodule_order}</td>
         <td style="padding-left: 20px;">{$mymodule_invoice}</td>
      </tr>
      
      <tr>
         <td style="padding-left: 20px;">
            {if $mymodule_order_docId ==''}    
               <button type="submit" name="submit_order" id="submit_order" class="btn btn-primary" onclick="saveOrder()">Salva ordine</button>
            {/if}
         </td>
         <td style="padding-left: 20px;">
            {if $mymodule_invoice_docId == ''}    
               <button type="submit" name="submit_invoice" id="submit_invoice" class="btn btn-primary" onclick="saveInvoice()">Salva fattura</button>
            {/if}
         </td>
      </tr> 
   </table>
   
</div>

Grazie a smarty riesco a visualizzare i pulsanti con le condizioni giuste, ma vorrei associare l'azione "saveOrder" e "saveInvoice" al comando 'afterHook' per creare l'ordine o la fattura a seconda dell'id del pulsante. Pensavo ad una chiamata ajax, ma poiché sono un niubbo: qualcuno può darmi qualche suggerimento?

Grazie

Davide

d.iandoli75

d.iandoli75

Buongiorno,

Sto lavorando su un modulo personalizzato con cui creo ordini o fatture in un gestionale sul cloud tramite delle chiamate API.

Nel file principale ho un metodo 'afterHook' in cui controllo se nella chiamata API devo creare un ordine o una fattura:

 

public function afterHook($order, $isInvoice){
        $orderId = $order->id;
        $my_api_url = $this->baseUrl.'/api/v0.3/SaveDocument';
        $send_data = array();
        $send_data['apiKey'] = Configuration::get('PS_MYSERVICE_API');
        if ($order->total_paid != 0) 
            $send_data['xml'] = $this->createInvoiceXml($orderId, $isInvoice); // non inserisce ordine a zero
        $dataReturned = $this->curlDownload($my_api_url, http_build_query($send_data));
        $docIdMyService = explode('</docId>', explode('<docId>', $dataReturned)[1])[0];

        if(!empty($docIdMyService)){
            if (!$isInvoice) {
                $query = 'UPDATE ' . _DB_PREFIX_ . 'orders SET docIdOrderMyService=\'' . $docIdMyService . '\' WHERE id_order=\'' . $orderId . '\';';
                Db::getInstance()->Execute($query);
                $this->downloadDocument($docIdMyService, $orderId, false);
            }
            else {
                $query = 'UPDATE ' . _DB_PREFIX_ . 'orders SET docIdMyService=\'' . $docIdMyService . '\' WHERE id_order=\'' . $orderId . '\';';
                Db::getInstance()->Execute($query);
                $this->downloadDocument($docIdMyService, $orderId, true); 
            }
        }

 

Usando gli hooks 'displayAdminOrderTabOrder' e 'displayAdminOrderContentOrder' ho aggiunto al dettaglio dell'ordine una tab che contiene le informazioni sullo stato dell'ordine nel gestionale: due colonne in cui so se per quell'ordine o per quella fattura è stato creato il documento corrispondente sul gestionale. 

Qui sotto il template che utilizzo attualmente (admin_content_order.tpl):

<div class="tab-pane" id="Fattura24">

   <table>
      <thead>
         <tr>
            <td style="padding-left: 20px;"><strong>{l s='Stato ordine' mod='mymodule'}   </strong></td>
            <td style="padding-left: 20px;"><strong>{l s='Stato fattura' mod='mymodule'}  </strong></td>
         </tr>
      </thead>      
        
      <tr>
         <td style="padding-left: 20px;">{$mymodule_order}</td>
         <td style="padding-left: 20px;">{$mymodule_invoice}</td>
      </tr>
      
      <tr>
         <td style="padding-left: 20px;">
            {if $mymodule_order_docId ==''}    
               <button type="submit" name="submit_order" id="submit_order" class="btn btn-primary" onclick="saveOrder()">Salva ordine</button>
            {/if}
         </td>
         <td style="padding-left: 20px;">
            {if $mymodule_invoice_docId == ''}    
               <button type="submit" name="submit_invoice" id="submit_invoice" class="btn btn-primary" onclick="saveInvoice()">Salva fattura</button>
            {/if}
         </td>
      </tr> 
   </table>
   
</div>

Grazie a smarty riesco a visualizzare i pulsanti con le condizioni giuste, ma vorrei associare l'azione "saveOrder" e "saveInvoice" al comando 'afterHook' per creare l'ordine o la fattura a seconda dell'id del pulsante. Pensavo ad una chiamata ajax, ma poiché sono un niubbo: qualcuno può darmi qualche suggerimento?

Grazie

Davide

×
×
  • Create New...