overbags Posted November 23, 2018 Share Posted November 23, 2018 (edited) buongiorno. prestashop 1.7.4.4 c'è un modo per poter visualizzare solo gli ordini "non consegnati" nell'elenco ordini del bo quando vi si accede ? Edited November 27, 2018 by overbags (see edit history) Link to comment Share on other sites More sharing options...
joseantgv Posted November 23, 2018 Share Posted November 23, 2018 1 hour ago, overbags said: buongiorno. prestashop 1.7.4.4 c'è un modo per poter visualizzare solo gli ordini "non consegnati" nell'elenco ordini del bo quando vi si accede ? Non ti serve filtrare in base allo stato dell'ordine? Link to comment Share on other sites More sharing options...
overbags Posted November 23, 2018 Author Share Posted November 23, 2018 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 More sharing options...
Haumea Posted November 23, 2018 Share Posted November 23, 2018 Non puoi creare un nuovo stato e poi assegnare a tutti gli ordini non consegnati quello stato? Link to comment Share on other sites More sharing options...
overbags Posted November 26, 2018 Author Share Posted November 26, 2018 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 More sharing options...
Haumea Posted November 26, 2018 Share Posted November 26, 2018 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 More sharing options...
overbags Posted November 26, 2018 Author Share Posted November 26, 2018 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 More sharing options...
Haumea Posted November 26, 2018 Share Posted November 26, 2018 Tutta la stringa va scritta dentro ai segni di citazione. Quindi "1 AND etc". Prova a a scrivere "1 AND a.current_state <> 5" Link to comment Share on other sites More sharing options...
overbags Posted November 26, 2018 Author Share Posted November 26, 2018 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 More sharing options...
Haumea Posted November 26, 2018 Share Posted November 26, 2018 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 More sharing options...
overbags Posted November 26, 2018 Author Share Posted November 26, 2018 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 More sharing options...
Haumea Posted November 26, 2018 Share Posted November 26, 2018 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 1 Link to comment Share on other sites More sharing options...
overbags Posted November 26, 2018 Author Share Posted November 26, 2018 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 More sharing options...
Haumea Posted November 26, 2018 Share Posted November 26, 2018 (edited) 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 November 26, 2018 by Haumea (see edit history) Link to comment Share on other sites More sharing options...
overbags Posted November 27, 2018 Author Share Posted November 27, 2018 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 More sharing options...
Haumea Posted November 27, 2018 Share Posted November 27, 2018 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'; } 1 Link to comment Share on other sites More sharing options...
overbags Posted November 27, 2018 Author Share Posted November 27, 2018 (edited) HAUMEA ... sei grande ... tutto ok la giornata parte bene grazie mille Edited November 27, 2018 by overbags (see edit history) Link to comment Share on other sites More sharing options...
Haumea Posted November 27, 2018 Share Posted November 27, 2018 29 minutes ago, overbags said: HAUMEA ... sei grande ... tutto ok la giornata parte bene grazie mille Di niente. E' una soluzione un po' "brutta" ma dovrebbe andare bene. 1 Link to comment Share on other sites More sharing options...
Piero Posted August 17, 2019 Share Posted August 17, 2019 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now