Glouba Nounette Posted September 23, 2010 Share Posted September 23, 2010 Bonjour,Ca fait un moment que je cherche une solution à mon souci, et je tourne en rond...Voilà, dans le back office, on a donc l'onglet client. Lorsqu'on clique dessus, on obtient un tableau qui liste les clients du site. J'aimerai, après id, sexe, nom,etc...ajouter une colonne "société". J'ai déjà créé un champ société dans le formulaire d'inscription des nouveaux clients. Par contre, ce champ n'est pas dans la table "customer" de la base de données, mais dans la table "address". Je n'arrive pas à faire le lien avec cette autre table. j'arrive à afficher n'importe quel élément de la table "customer", mais rien à faire pour les éléments de la table "address".Merci d'avance pour votre aide. Link to comment Share on other sites More sharing options...
BVince Posted September 23, 2010 Share Posted September 23, 2010 Bonjour,je viens de faire quelques modifications sur une version 1.2.5 de Prestashop et j'arrive à obtenir le nom de la société dans la liste, voici mon code dans AdminCustomers.php : $this->_select = '(YEAR(NOW()) - YEAR(birthday)) as age, ( SELECT c.date_add FROM '._DB_PREFIX_.'guest g LEFT JOIN '._DB_PREFIX_.'connections c ON c.id_guest = g.id_guest WHERE g.id_customer = a.id_customer ORDER BY c.date_add DESC LIMIT 1 ) as connect, ( SELECT b.company FROM '._DB_PREFIX_.'address b WHERE b.id_customer = a.id_customer LIMIT 1 ) as company'; $genders = array(1 => $this->l('M'), 2 => $this->l('F'), 9 => $this->l('?')); $this->fieldsDisplay = array( 'id_customer' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25), 'id_gender' => array('title' => $this->l('Gender'), 'width' => 25, 'align' => 'center', 'icon' => array(1 => 'male.gif', 2 => 'female.gif', 'default' => 'unknown.gif'), 'orderby' => false, 'type' => 'select', 'select' => $genders, 'filter_key' => 'a!id_gender'), 'lastname' => array('title' => $this->l('Last Name'), 'width' => 80), 'firstname' => array('title' => $this->l('First name'), 'width' => 60), 'email' => array('title' => $this->l('E-mail address'), 'width' => 120, 'maxlength' => 19), 'company' => array('title' => $this->l('Company'), 'width' => 32), 'age' => array('title' => $this->l('Age'), 'width' => 30, 'search' => false), 'active' => array('title' => $this->l('Enabled'), 'width' => 25, 'align' => 'center', 'active' => 'status', 'type' => 'bool', 'orderby' => false), 'newsletter' => array('title' => $this->l('News.'), 'width' => 25, 'align' => 'center', 'type' => 'bool', 'icon' => array(0 => 'disabled.gif', 1 => 'enabled.gif'), 'orderby' => false), 'optin' => array('title' => $this->l('Opt.'), 'width' => 25, 'align' => 'center', 'type' => 'bool', 'icon' => array(0 => 'disabled.gif', 1 => 'enabled.gif'), 'orderby' => false), 'date_add' => array('title' => $this->l('Registration'), 'width' => 60, 'type' => 'date'), 'connect' => array('title' => $this->l('Connection'), 'width' => 60, 'type' => 'datetime', 'search' => false)); j'ai ajouté ceci à la fin de la requête : , ( SELECT b.company FROM '._DB_PREFIX_.'address b WHERE b.id_customer = a.id_customer LIMIT 1 ) as company et une ligne de plus dans le fieldsDisplay : 'company' => array('title' => $this->l('Company'), 'width' => 32), et voilà, la société apparaît dans la liste client :vampire: 1 Link to comment Share on other sites More sharing options...
Glouba Nounette Posted September 23, 2010 Author Share Posted September 23, 2010 Merci beaucoup BVINCE! Link to comment Share on other sites More sharing options...
HARVIE Posted February 18, 2011 Share Posted February 18, 2011 Je cherchais aussi à faire ça...Merci! Link to comment Share on other sites More sharing options...
HARVIE Posted February 18, 2011 Share Posted February 18, 2011 J'aimerai faire la même chose pour afficher le nom de la société mais, cette fois-ci, dans les commandes (AdminOrders), j'imagine que la manip est grosso modo la même mais je bloque...Quelqu'un pour m'aider?Merci,Harvie Link to comment Share on other sites More sharing options...
jp77 Posted February 21, 2011 Share Posted February 21, 2011 merci BVincesuper c'est ce que je cherchaiscordialement Link to comment Share on other sites More sharing options...
jp77 Posted February 21, 2011 Share Posted February 21, 2011 re bonjour BVINCEj'ai fais des essais afin d'avoir le nom de la company dans le fichier AdminOrder.php mais je n'y arrive pas la seule chose que j'arrive c'est d'obtenir le numero de l'adresse et cela ne me sert a rien.voici ce que j'ai fais en rose, mais pas de nom de company juste le numero d'adresse$this->_select = ' a.id_order AS id_pdf, CONCAT(LEFT(c.`firstname`, 1), \'. \', c.`lastname`) AS `customer`, osl.`name` AS `osname`, os.`color`, IF((SELECT COUNT(so.id_order) FROM `'._DB_PREFIX_.'orders` so WHERE so.id_customer = a.id_customer AND so.valid = 1) > 1, 0, 1) as new, (SELECT COUNT(od.`id_order`) FROM `'._DB_PREFIX_.'order_detail` od WHERE od.`id_order` = a.`id_order` GROUP BY `id_order`) AS product_number'; $this->_join = 'LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = a.`id_customer`) LEFT JOIN `'._DB_PREFIX_.'order_history` oh ON (oh.`id_order` = a.`id_order`) LEFT JOIN `'._DB_PREFIX_.'order_state` os ON (os.`id_order_state` = oh.`id_order_state`) LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.intval($cookie->id_lang).')'; $this->_where = 'AND oh.`id_order_history` = (SELECT MAX(`id_order_history`) FROM `'._DB_PREFIX_.'order_history` moh WHERE moh.`id_order` = a.`id_order` GROUP BY moh.`id_order`)'; $statesArray = array(); $states = OrderState::getOrderStates(intval($cookie->id_lang)); foreach ($states AS $state) $statesArray[$state['id_order_state']] = $state['name']; $this->fieldsDisplay = array( 'id_order' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25), 'new' => array('title' => $this->l('New'), 'width' => 25, 'align' => 'center', 'type' => 'bool', 'filter_key' => 'new', 'tmpTableFilter' => true, 'icon' => array(0 => 'blank.gif', 1 => 'news-new.gif'), 'orderby' => false), 'id_address_invoice' => array('title' => $this->l('Company'), 'widthColumn' => 160, 'width' => 100,), 'customer' => array('title' => $this->l('Customer'), 'widthColumn' => 120, 'width' => 100, 'filter_key' => 'customer', 'tmpTableFilter' => true), 'total_paid' => array('title' => $this->l('Total'), 'width' => 70, 'align' => 'left', 'prefix' => '', 'suffix' => '', 'price' => true, 'currency' => true), 'payment' => array('title' => $this->l('Payment'), 'width' => 100), 'osname' => array('title' => $this->l('Status'), 'widthColumn' => 230, 'type' => 'select', 'select' => $statesArray, 'filter_key' => 'os!id_order_state', 'filter_type' => 'int', 'width' => 200), 'date_add' => array('title' => $this->l('Date'), 'width' => 35, 'align' => 'right', 'type' => 'datetime', 'filter_key' => 'a!date_add'), 'id_pdf' => array('title' => $this->l('PDF'), 'callback' => 'printPDFIcons', 'orderby' => false, 'search' => false)); parent::__construct(); }meme en faisdant des essais avec la modif du coté customer je n'y arrive pas Aurais tu une idée ?Merci d'avance Link to comment Share on other sites More sharing options...
HARVIE Posted April 10, 2011 Share Posted April 10, 2011 Bonjour,Grâce à cette modif', j'ai bien le champs "Société" dans l'onglet client. J'ai tenté de filtrer ce champs société en tapant le nom d'une société par exemple...mais le filtre ne marche pas. J'ai eu comme message d'erreur sous Internet Explorer "Requête SQL invalide"...je me suis dit ce n'est pas bien grave et j'ai actualisé la page...mais j'ai toujours le message "Requête SQL invalide"...J'ai tenté alors sous FireFox en me disant que la faute venait de Internet Explorer...mais j'ai eu exactement le même message "Requête SQL invalide".Alors je me suis dit tanpis pour le filtre, on fera sans...j'ai vidé l'historique et les cookies des deux explorateurs Internet Explorer et FireFox en pensant que cela règlerait le problème...mais pas du tout. Je me trouve donc mainteanant avec l'onglet "Clients" inutilisable sous IE et FF...Est-ce que quelqu'un pourrait m'aider à fixer ce petit bug de "Requête SQL invalide" parce que là c'est vraiment problématique...Merci d'avance,Cordialement,Harvie Link to comment Share on other sites More sharing options...
hulk Posted December 27, 2011 Share Posted December 27, 2011 moi ce que je veux faire c'est d'ajouter un lien externe sur une icône dans la liste des fieldsDisplay comme ça 'detail' => array('title' => $this->l(Details'), 'align' => 'center', 'width' => 20,'icon' => array(0 => '<a href="..."ok.gif</a>', 1 => 'blank.gif')), pour afficher cette icône j'ai du tester si le Id de la commande existe dans la table details. je cherche comment ajouter ce lien <a href="..."ok.gif</a> dans la liste fieldsDisplay??? Link to comment Share on other sites More sharing options...
Rdev Posted November 13, 2012 Share Posted November 13, 2012 merci BVince Je cherchais aussi à faire ça Link to comment Share on other sites More sharing options...
Ali30 Posted January 22, 2013 Share Posted January 22, 2013 Bonjour , Pour ma part , je souhaiterai ajouter les champs : marge , taux de marge et coefficient multiplicateur a coté du prix dans l'onglet Produit , par contre je ne sais comment faire , ni par où commencer étant donné mon faible niveau en PS . Merci pour vos futures réponses Link to comment Share on other sites More sharing options...
akhawat Posted March 15, 2016 Share Posted March 15, 2016 Bonjour je me permet de deterrer le post car j'aimerais ajouter une colonne groupe dans l'onglet client afin de pouvoir trier les client par groupe. quelqu'un aurait il une idée ? je suis en 1.5.6.1 cdlt Link to comment Share on other sites More sharing options...
pitchart Posted March 16, 2016 Share Posted March 16, 2016 Bonjour je me permet de deterrer le post car j'aimerais ajouter une colonne groupe dans l'onglet client afin de pouvoir trier les client par groupe. quelqu'un aurait il une idée ? je suis en 1.5.6.1 cdlt Je ne pourrai pas te répondre pour ta version mais juste te dire que sur la version 1.6.1.4 cet onglet est déjà inclus. Link to comment Share on other sites More sharing options...
akhawat Posted March 17, 2016 Share Posted March 17, 2016 merci pour l'infos malheureusement je n'ais pas encore osé passer le cap, cela me couterais une fortune de racheter tout les modules. j'éspère qu'un bonne âme nous donnera l'astuce cdlt 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