Jump to content

(RISOLTO) elenco ordini


Recommended Posts

no perchè mi farebbe visualizzare solo quel determinato stato.

avendo molti ordini in vari stati era comodo accedere alla pagina e avere la situazione di tutti gli ordini in sospeso ancora da consegnare.

poi se voglio vedere quelli consegnati userei il filtro

potrei modificare il file ma non so come

Link to comment
Share on other sites

creerebbe solo confusione perchè gli utenti hanno bisogno di sapere se l'ordine è in stampa, in attesa di rifornimento, pronto, spedito ... i attesa di pagamento ... ecc ecc

so che mi basterebbe inserire nella stringa del db WHERE order_state <> 5 (5 è l'id dello stato consegnato ) .... ma non so dove inserirla questa riga

Link to comment
Share on other sites

Il file adminOrdersController è il file dove vengono generate la lista e le funzionalità nella pagina degli ordini in BO. 

Prova a aggiungere (circa alla riga 70, prima di _orderBy) $this->_where = 1 AND (la stringa che hai scritto tu) 

Link to comment
Share on other sites

 grazie haumea ... purtroppo da errore

la modifica che ho fatto è

        $this->_join = '
        LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = a.`id_customer`)
        INNER JOIN `'._DB_PREFIX_.'address` address ON address.id_address = a.id_address_delivery
        INNER JOIN `'._DB_PREFIX_.'country` country ON address.id_country = country.id_country
        INNER JOIN `'._DB_PREFIX_.'country_lang` country_lang ON (country.`id_country` = country_lang.`id_country` AND country_lang.`id_lang` = '.(int)$this->context->language->id.')
        LEFT JOIN `'._DB_PREFIX_.'order_state` os ON (os.`id_order_state` = a.`current_state`)
        LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        $this->_where = 1 AND order_state <> 5;
        $this->_orderBy = 'id_order';

sicuramente è un errore del join os.order_state ? e delle apici ... ho sempre usato asp e adesso mi trovo in difficoltà

l'errore

  • Query SQL non valida
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 AND a.id_shop IN (1) ORDER BY a.id_order DESC LIMIT 0, 300' at line 21
Link to comment
Share on other sites

ancora no. ho provato sia con " che con '

LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        $this->_where = '1 AND a.current_state <> 5';
        $this->_orderBy = 'id_order';

  • Query SQL non valida
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 AND a.current_state <> 5 AND a.id_shop IN (1) ORDER BY a.id_order DESC LI' at line 21
Link to comment
Share on other sites

25 minutes ago, overbags said:

ancora no. ho provato sia con " che con '

LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        $this->_where = '1 AND a.current_state <> 5';
        $this->_orderBy = 'id_order';

  • Query SQL non valida
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1 AND a.current_state <> 5 AND a.id_shop IN (1) ORDER BY a.id_order DESC LI' at line 21

Prova a togliere l'1 dopo il where. Adesso non ho purtroppo il codice davanti e vado un po' a memoria, ma siamo comunque vicini. 

Link to comment
Share on other sites

no niente

        LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        $this->_where = 'a.current_state <> 5';
        $this->_orderBy = 'id_order';

  • Query SQL non valida
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a.current_state <> 5 AND a.id_shop IN (1) ORDER BY a.id_order DESC LIMIT 0,' at line 21
Link to comment
Share on other sites

3 minutes ago, overbags said:

no niente

        LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        $this->_where = 'a.current_state <> 5';
        $this->_orderBy = 'id_order';

  • Query SQL non valida
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a.current_state <> 5 AND a.id_shop IN (1) ORDER BY a.id_order DESC LIMIT 0,' at line 21

Intendevo solo l'1, l'AND lascialo ;)

  • Like 1
Link to comment
Share on other sites

ok così funziona

        LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        $this->_where = 'AND a.current_state <> 5';
        $this->_orderBy = 'id_order';
        $this->_orderWay = 'DESC';

adesso però devo trovare il modo che quando seleziono lo stato "consegnato" appaiono quelli consegnati ... adesso non li fa visualizzare

Link to comment
Share on other sites

No, quella query rimane fissa diciamo. 

Si potrebbe risolvere mettendo la condizione che abbiamo scritto adesso dentro un if (che controlla se abbiamo spinto il pulsante "filtra"), in modo che gli ordini non consegnati appaiono di default solo se appunto vi si accede la prima volta. 

Non ho possibilità di vedere il codice ora, ma prova a mettere la riga che abbiamo scritto dentro a if(!Tools::isSubmit('submitFilter')) 

Edited by Haumea (see edit history)
Link to comment
Share on other sites

buongiorno

ho provato in queste due maniere ma niente ... non da errore .... senza filtri visualizzo solo gli ordini non consegnati con il filtro non visualizzo ordini

        LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        if(!Tools::isSubmit('submitFilter')) $this->_where = 'AND a.current_state <> 5';
        $this->_orderBy = 'id_order';

 

        LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        if(!Tools::isSubmit('submitFilter')) {
        $this->_where = 'AND a.current_state <> 5';
        }
        $this->_orderBy = 'id_order';

Link to comment
Share on other sites

37 minutes ago, overbags said:

buongiorno

ho provato in queste due maniere ma niente ... non da errore .... senza filtri visualizzo solo gli ordini non consegnati con il filtro non visualizzo ordini

        LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        if(!Tools::isSubmit('submitFilter')) $this->_where = 'AND a.current_state <> 5';
        $this->_orderBy = 'id_order';

 

        LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$this->context->language->id.')';
        if(!Tools::isSubmit('submitFilter')) {
        $this->_where = 'AND a.current_state <> 5';
        }
        $this->_orderBy = 'id_order';

Cosi dovrebbe funzionare

if(Tools::getValue('submitFilterorder') != 1) {
	$this->_where = 'AND a.current_state <> 5';
}

 

  • Like 1
Link to comment
Share on other sites

  • 8 months later...

Salve, scusate se mi intrometto in questa discussione, ma credevo di risolvere il mio problema prendendo spunto da quello che avete scritto.

Mi spiego meglio: uso PS 1.7.5.0 e volevo aggiornare la lista ordini del sito in una copia di lavoro dove mancavano gli ultimi ordini del sito di produzione, perciò, ho copiato le tabelle del database del sito di produzione contenenti la parola "order" e le ho messe al posto di quelle del sito di lavoro e sembra aver funzionato ma, non capisco perchè nel BO, anche impostando la data di ricerca ad oggi, si vedono gli ordini fino al 31 luglio, se però apro una scheda cliente, posso vedere l'ordine anche fatto ad agosto.

Dove sbaglio?

Grazie anticipatamente.

Piero.

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