Jump to content

Rajouter la colonne société dans commandes, clients , adresses


Recommended Posts

Bonjour
Je travaille avec la version prestashop 1.5.5. J ai activé la fonction b2b . Car je travaille qu avec des sociétés.
Ce qui est mal fait dans Presta du moins je n ai pas trouvé, c est que :
1 - lorsque l on clique dans commande on a pas la colonne société qui nous permettrai de rechercher et filtrer les commandes par société.
2 - lorsque l on crée une commande directement via l admin que l on puisse rechercher le client par le nom de société
3- lorsque l on est dans la partie client que l on puisse rechercher également par société .
4- pareil pour adresse .
5 Toujours dans la partie commande il serait intéressant de rajouter la date du changement de statut , car la date affiché reste toujours celle du bon de commande.
Chers communautés talentueuses qui pourrait m aider .

Merci d avance.

Link to comment
Share on other sites

Pour les points 1, 3, 4 c'est possible facilement.

Il faut rajouter le champ company dans les fields_list des trois AdminController concernés à savoir  :

 

AdminOrdersController.php - AdminCustomersController.php - AdminAddressesController.php

 

Donc pour AdminOrdersController.php  ligne 93 environ

        'company' => array(
            'title' => $this->l('Company'),
            'havingFilter' => true,
        ),

AdminCustomersController.php ligne 102 environ

            'company' => array(
                'title' => $this->l('Company'),
                'width' => 'auto'
            ),

AdminAddressesController.php  ligne 60 environ

            'company' => array('title' => $this->l('Company'), 'width' => 140, 'filter_key' => 'a!company'),

Pour le points 5 à voir dans les tables ps_order *  > date_add  > date_upd

 

Pour le point 2 plus délicat à première vue.

 

Merci pour ton intervention , pour la 1.5 ca ne marche pas .

Pas si sûr. ;)

 

Link to comment
Share on other sites

merci indesign, j'ai appliqué a chaque fichiers les codes effectivements la colonnes apparait pour les 3.

Seul bémol c'est que la recherche de société ne fonctionne que lorsque l'on clique dans adresse.

Pour commande ET client quand on recherche sur société on a un retour vide. je pense qu'il faudrait faire appel a la table customer

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

concernant le point 5 c'est résolu au lieu d'avoir dans commande la date de la commande je préfere avoir la date du changement de statut de maniere a trier par date mes différent statut car ne reste pas des bon de commande éternellement.

Remplacer

'date_add' => array(
            'title' => $this->l('Date changement  '),
            'width' => 130,
            'align' => 'right',
            'type' => 'datetime',
            'filter_key' => 'a!date_add'

 ),

par

    'date_add' => array(
            'title' => $this->l('Date changement  '),
            'width' => 130,
            'align' => 'right',
            'type' => 'datetime',
            'filter_key' => 'a!date_upd'

        ),

    'date_upd' => array(
            'title' => $this->l('Date de commande'),
            'width' => 130,
            'align' => 'right',
            'type' => 'datetime',
            'filter_key' => 'a!date_add'

        ),

 

C'est beaucoup mieux je trouve

Link to comment
Share on other sites

Pour commande ET client quand on recherche sur société on a un retour vide. je pense qu'il faudrait faire appel a la table customer

J'ai testé... chez moi ça marche.  company n'est-il pas vide pour le client ou la commande ?

Pour le point 2, il faut chercher dans le form.tpl du controller orders  ;)

Link to comment
Share on other sites

Salut indesign

En voyant ton post et que ca a marché chez toi, j'ai tout de suite tilté sur le probléme d'ou il venait . Effectivement ca marche, que si la fonction B2B est activé.        "Je l'avais désactivé".

Ce qui est mal fait dans presta c'est que dans le formulaire d'origine si l'option B2B n'est pas activé il affichera toujours ce champs société. Si on le renseigne, ce champ sera pas logé logé dans la table customer mais seulement dans la table adress, c'est pour cette raison que j'avais un champ vide. Il faudrait que la team fasse en sorte que pour les prochaines versions que si champ est rempli qu'il soit envoyé directement dans la table customer.

Un grand merci a toi .

Qui va nous trouver le probléme 2

2 - lorsque l on crée une commande directement via l admin que l on puisse rechercher le client par le nom de société

Link to comment
Share on other sites

En voyant ton post et que ca a marché chez toi, j'ai tout de suite tilté sur le probléme d'ou il venait . Effectivement ca marche, que si la fonction B2B est activé.        "Je l'avais désactivé".

Dommage, ça m'aurait évité de tester à nouveau l'ensemble ;)

 

Tout est dans cet excellent Pull Request de PhpMadman

Link to comment
Share on other sites

C vraiment pas mal, desolè si je t ai fait testé lol.

Manque plus que l étape 2 . Pour rechercher par société lors de la création de la commande.

 

Sorry hasclub je viens de découvrir ton pm.

 

Pour activer la recherche sur le champ company de la classe Customer, autant le faire au plus bas niveau afin que l'impact soit également utile ailleurs.

Ainsi dès lors qu'on utilise la methode Customer::searchByName($query), le champ sera utilisé.

 

Pratiquement cela consiste donc à créer un fichier nommé Customer.php et l'envoyer dans le dossier /override/classes .

Le fichier doit juste contenir ceci (sauf si tu as déja surcouché d'autres méthodes auquel cas il faut ajouter celle-ci) :

<?php
class Customer extends CustomerCore
{
	public static function searchByName($query)
	{
		$sql = 'SELECT *
				FROM `'._DB_PREFIX_.'customer`
				WHERE (
						`email` LIKE \'%'.pSQL($query).'%\'
						OR `id_customer` LIKE \'%'.pSQL($query).'%\'
						OR `lastname` LIKE \'%'.pSQL($query).'%\'
						OR `firstname` LIKE \'%'.pSQL($query).'%\'
						OR `company` LIKE \'%'.pSQL($query).'%\'						
					)'.Shop::addSqlRestriction(Shop::SHARE_CUSTOMER);
		return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
	}
}

Pour info si tu utilise le back office pour créer des commandes j'ai déja fait un override qui permet de ne créer le client qu'après le panier. Ce qui peut être parfois utile... 

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

Béni sois tu brocéliande.

Tout simplement....

Tout fonctionne.

Je rencontre un autre probleme si tu peux m'aidé ca serait vraiment sympa. Mon problème concerne les statuts au niveau des commandes, Je ne genere pas la facture au moment de la commande mais aprés que le bl soit édité, pour une question de date de facturation, car il ne faut pas que mon bl soit a la date de mla facture je passe tout en facture la fin du mois.

Ce qui fait que lorsque je passe en préparation en cours les seuls éléments cochés sont :Afficher le PDF de bon de livraison. de maniére a transmettre le bl a la logistique . le probléme c'est que lorsque je clique sur bon de livraison j'ai une page blanche qui apparait sans avoir la possibilité de sortir mon bl.

Alors que sur la 1.4 on decoché tout simplement "autoriser la visualisation des factures" et on activé "considérer la commande comme valide". et ca imprimer un bon de commande et non une facture .

merci d'avance

Link to comment
Share on other sites

Je profite de sujet pour vous demander si l'un d'entre vous sait comment afficher le nom de la société, lorsqu'un client l'a renseigné, dans le détail de sa commande en admin ?

En l'état, seul son nom est affiché dans le récapitulatif des adresses.

 

EDIT : en fin de compte, ça marche, simplement un bug sur une adresse...

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

Béni sois tu brocéliande.

Tout simplement....

Tout fonctionne.

Je rencontre un autre probleme si tu peux m'aidé ca serait vraiment sympa. Mon problème concerne les statuts au niveau des commandes, Je ne genere pas la facture au moment de la commande mais aprés que le bl soit édité, pour une question de date de facturation, car il ne faut pas que mon bl soit a la date de mla facture je passe tout en facture la fin du mois.

Ce qui fait que lorsque je passe en préparation en cours les seuls éléments cochés sont :Afficher le PDF de bon de livraison. de maniére a transmettre le bl a la logistique . le probléme c'est que lorsque je clique sur bon de livraison j'ai une page blanche qui apparait sans avoir la possibilité de sortir mon bl.

Alors que sur la 1.4 on decoché tout simplement "autoriser la visualisation des factures" et on activé "considérer la commande comme valide". et ca imprimer un bon de commande et non une facture .

merci d'avance

 

 

Lorsque j'édite le statut Préparation en cours dans le BO d'une 1.5 , j'ai ça, je ne vois pas ce qu'il manquerait par rapport à la 1.5, quant à la page blanche il me faudrait un accès ftp (pour activer le debug) , et un accès BO (pour checker ta config, et surtout pour voir une erreur au lieu d'une page blanche) : 

 
 Considérer la commande associée comme validée
 
 Autoriser les clients à télécharger et lire la version PDF de la facture
 
 Cacher cet état dans la commande pour les clients
 
 Envoyer un e-mail au client lorsque la commande est changé à cet état
 
 Marquer la commande associée comme expédiée
 
 Marquer la commande associée comme payé
 
 Afficher le PDF de bon de livraison
 
 
 
 
Link to comment
Share on other sites

  • 3 years later...

Je profite de sujet pour vous demander si l'un d'entre vous sait comment afficher le nom de la société, lorsqu'un client l'a renseigné, dans le détail de sa commande en admin ?

En l'état, seul son nom est affiché dans le récapitulatif des adresses.

 

EDIT : en fin de compte, ça marche, simplement un bug sur une adresse...

Bonjour,

désolé de déterrer ce post mais j'ai besoin, aussi, d'afficher le nom de la société Mais dans le tpl d'un autre module.

Un peu d'aide serait bienvenue.

J'ai crée plusieurs posts a ce sujet mais je n'ai pas de réponse qui fonctionne.

Je croyais que c'etait simple de récupérer une donnée de la base et de l'afficher dans un tpl, mais apparemment, c'est un peu compliqué.

Merci d'avance.

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