Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : [RÉSOLU]-Retranscription requête pour extrafield

[RÉSOLU]-Retranscription requête pour extrafield il y a 1 mois 3 semaines #115801

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
Bonjour à tous,

Je cherche à retranscrire une requête sql en un extrafield de case à cocher issue d'une table.

Voici la requête sql :
$sql1 = "SELECT *";
$sql1.= " FROM ".MAIN_DB_PREFIX."commande as co ";
$sql1.= " , ".MAIN_DB_PREFIX."commandedet as cod";
$sql1.= " WHERE co.entity = ".$conf->entity;
$sql1.= " AND cod.fk_commandefourndet = 0";
$sql1.= " AND co.fk_statut > 0";
$sql1.= " AND cod.product_type = 0";
$sql1.= " AND cod.fk_product IS NOT NULL";
$sql1.= " AND cod.fk_commande = ".$objp->rowid;

Auriez-vous une idée ?

Merci d'avance pour vos retours.

Bruce
Dernière édition: il y a 1 mois 1 semaine par le18info. Raison: Résolu
L'administrateur a désactivé l'accès en écriture pour le public.

[RESOLU] Retranscription requête pour extrafield il y a 1 mois 3 semaines #115807

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1312
  • Remerciements reçus 196
  • Karma: 27
Bonjour :)
Je n'ai pas vraiment compris :(
L'administrateur a désactivé l'accès en écriture pour le public.

[RESOLU] Retranscription requête pour extrafield il y a 1 mois 3 semaines #115808

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
Bonjour dolibarr95,

J'ai modifié le core (commande/list.php) en ajoutant une requête SQL pour vérifier un traitement.
Je me suis dis que peut-être un extrafield serait une meilleure solution (plutôt que de toucher au core de Dolibarr).

L'idée est d'implémenter ce champs supplémentaire sur la fiche commande afin de savoir si cette requête est TRUE ou FALSE.
Si TRUE alors la case à cocher est "checked"
Si FALSE alors la case à cocher est "no checked"

J'espère avoir été plus clair.
L'administrateur a désactivé l'accès en écriture pour le public.

[RESOLU] Retranscription requête pour extrafield il y a 1 mois 3 semaines #115819

  • dolibarr95
  • Portrait de dolibarr95
  • Hors ligne
  • Admin
  • Messages : 1312
  • Remerciements reçus 196
  • Karma: 27
ok
et avec un hook (orderlist)? wiki.dolibarr.org/index.php/Syst%C3%A8me_de_Hooks
Dernière édition: il y a 1 mois 3 semaines par dolibarr95.
L'administrateur a désactivé l'accès en écriture pour le public.

[RESOLU] Retranscription requête pour extrafield il y a 1 mois 3 semaines #115821

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
Oui c'est ce que j'essaye de faire mais sans succès...
Voici ma fonction doActions
	function doActions($parameters, &$object, &$action, $hookmanager)
	{
		global $conf, $langs, $db;

		$error = 0; // Error counter
		$myvalue = 'test'; // A result value

		if (!empty($conf->fournisseur->enabled))
			{

				$sql1 = "SELECT *";
				$sql1.= " FROM ".MAIN_DB_PREFIX."commande as co ";
				$sql1.= " , ".MAIN_DB_PREFIX."commandedet as cod";
				$sql1.= " WHERE co.entity = ".$conf->entity;
				//$sql1.= " AND co.rowid = cod.fk_commande";
				$sql1.= " AND cod.fk_commandefourndet = 0";
				$sql1.= " AND co.fk_statut > 0";
				$sql1.= " AND cod.product_type = 0";
				$sql1.= " AND cod.fk_product IS NOT NULL";
				$sql1.= " AND cod.fk_commande = ".$objp->rowid;
				$resql1 = $db->query($sql1);
				//print $sql1;

				if ($parameters['currentcontext'] = ("orderlist"))
				{
					if ($resql1)
						{
							$num1 = $db->num_rows($resql1);
							if (empty($num1))
								{
									$text_info.= '<br><span class="cde_fourn_ok">'.$langs->trans('Commande fournisseur effectuée').'</span><hr>';
									$commande_fourn = '<img id="vert" class="classfortooltip vert" title="'.$langs->trans('Commande fournisseur effectuée').'" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/feu_vert.png">';
								}

							else
								{
									$text_info.= '<br><span class="cde_fourn_nok">'.$langs->trans('Commande fournisseur a effectuer').'</span><hr>';
									$commande_fourn = '<img id="rouge" class="classfortooltip rouge" title="'.$langs->trans('Commande fournisseur a effectuer').'" src="'.DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/feu_rouge.png">';
								}
						}
					else
					{
						 $text_info.='<br>';
					}
				}
		if (! $error)
		{
			$this->results = array('myreturn' => $text_info);
			$this->resprints = $commande_fourn;
			return 0; // or return 1 to replace standard code
		}
		else
		{
			$this->errors[] = 'Error message';
			return -1;
		}
			}
		}
L'administrateur a désactivé l'accès en écriture pour le public.

[RESOLU] Retranscription requête pour extrafield il y a 1 mois 3 semaines #115826

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
J'ai résolu mon problème ;)
Avec les hooks :
printFieldListTitle
printFieldListOption
printFieldListValue dans la quelle j'ai mis ma requête sql

Je n'y arrivais pas car je suis en 3.9.2 et que ces hooks sont implémentés après cette version...

Je continue donc mon module pour personnalisé mon Dolibarr sans toucher au core.

Bonne soirée.
Bruce
L'administrateur a désactivé l'accès en écriture pour le public.
Cet utilisateur a été remercié pour son message par: dolibarr95

[RESOLU] Retranscription requête pour extrafield il y a 1 mois 2 semaines #115915

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
Bonjour à tous,

Je continue mon petit module mais je fais face à le même genre de problématique.
Je précise qu'il n'est pas possible de passer par un hook pour ce que je veux faire.
Je souhaite afficher la référence de la commande client dans objectline_view.tpl.php pour chaque ligne de produit dans la commande fournisseur.

Voici la requête qui le permet :
SELECT c.ref_client
FROM llx_commande_fournisseur as cf
,llx_commande_fournisseurdet as cfd
,llx_commande as c
,llx_commandedet as cd
,llx_product as p
WHERE cf.rowid = $ID$
AND cf.rowid = cfd.fk_commande
AND cd.fk_commandefourndet = cfd.rowid
AND c.rowid = cd.fk_commande
AND p.rowid = cd.fk_product

J'ai créer un extrafield line (liste issue d'une table) pour la commande fournisseur.
Mais là où je bloque c'est sur la syntaxe de la commande...Et la doc n'est pas très fournie sur le sujet.

Merci pour vos retours.
Bruce
L'administrateur a désactivé l'accès en écriture pour le public.

Retranscription requête pour extrafield il y a 1 mois 2 semaines #115946

Bonjour :)

la valeur contenue dans la variable "$ID" concerne le rowid de l'objet commande ou commande fournisseur
de ce fait, je ne pense pas qu'il soit possible de réaliser ce que vous cherchez à faire avec les propriétés des extrafields et leur implémentation classique

pour ce qui concerne votre demande, je ne comprends pas comment vous voulez effectuer ces liaisons entre commande clients et commandes fournisseurs - quid d'un produit présent dans plusieurs commandes clients pour une seule commande fournisseur - ou encore il manque un filtrage selon le statut de vos commandes clients afin de ne pas prendre en compte les commandes soldées...

Bonne continuation
Dernière édition: il y a 1 mois 2 semaines par pcbleu.
L'administrateur a désactivé l'accès en écriture pour le public.

Retranscription requête pour extrafield il y a 1 mois 2 semaines #115952

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
Bonjour pcbleu,

Merci pour votre retour.
Florian Henry m'a donné la syntaxe : commande:ref:rowid:: pour avoir une liste des commandes clients
Mais sur ma version de doli cela ne fonctionne pas pour le moment...
Mais visiblement c'est possible avec un doli plus récent...

Pour le lien (ligne) entre les commandes clients et les commandes fournisseurs, j'utilise simplement cette ligne AND cd.fk_commandefourndet = cfd.rowid
La requête ci-dessus fonctionne bien mais je suis en train de faire un module qui reprend toutes mes modifications du core.
C'est pour cela que je souhaite passer par un hook/extrafield.

Bonne journée.
Bruce
L'administrateur a désactivé l'accès en écriture pour le public.

Retranscription requête pour extrafield il y a 1 mois 2 semaines #115976

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
Bonjour à tous,

J'avance bien mais il reste un petit bug à résoudre...

Dans une fonction addline de la commande fournisseur :
			//mon champ ref_client que je récupère
			$array_options = $restockcmde_static->ref_client;

			$array_options->array_options["options_ref_client"];
...
			$result=$objectcf->addline(
				'', 0, 
				$lgnCmdeFourn[1],					// $qty
				$lgnCmdeFourn[3],					// TxTVA
				0, 0,
				$restockcmde_static->fk_product,	// $fk_product
				$lgnCmdeFourn[2],					// $fk_prod_fourn_price
				'', 0,
				'HT',								// $price_base_type
				0, 0,								// type
				0,									// $info_bits
				FALSE,								// $notrigger
				NULL, 								// $date_start
				NULL, 								// $date_end
				$array_options						// $array_options

			);

Quand je vérifie dans les logs, j'ai bien chaque ref_client dans la variable $array_options.
Mais dans la base de données/llx_commande_fournisseurdet_extrafields, le fk_objet s'implémente bien mais pas la colonne ref_client (qui correspond à l'attibut de mon extrafield

Auriez-vous une idée ?

Merci pour vos retours.

Bruce
L'administrateur a désactivé l'accès en écriture pour le public.

Retranscription requête pour extrafield il y a 1 mois 2 semaines #116067

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
Bonjour à tous,

Je précise que pour le moment je suis en 3.9.2.
Peut-être que quelqu'un peut me dire si cela vient de ma version de Doli ?

Bruce
L'administrateur a désactivé l'accès en écriture pour le public.

Retranscription requête pour extrafield il y a 1 mois 2 semaines #116074

  • ksar
  • Portrait de ksar
  • Hors ligne
  • Admin
  • Bijour!
  • Messages : 1042
  • Remerciements reçus 289
  • Karma: 16
en 3.9.2 Extrafields c'était un module de mémoire pas dans le core.
Et le fonctionnement était complètement différent.
L'administrateur a désactivé l'accès en écriture pour le public.

Retranscription requête pour extrafield il y a 1 mois 2 semaines #116077

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
Bonjour ksar,

Les extrafields étaient en partie implantés dans le core avec cette version.
Pour le moment je contourne la chose avec une requête
						$sql2 = 'UPDATE '.MAIN_DB_PREFIX.'commande_fournisseurdet_extrafields';
						$sql2.= ' SET ref_client = "'.$objcc->ref_client.'"';
						$sql2.= ' WHERE fk_object = "'.$idcmdefourndet.'"';
						$resqlupdate2 = $db->query($sql2);
L'administrateur a désactivé l'accès en écriture pour le public.

[RÉSOLU]-Retranscription requête pour extrafield il y a 1 mois 1 semaine #116182

  • le18info
  • Portrait de le18info
  • Hors ligne
  • Gold Boarder
  • Messages : 587
  • Remerciements reçus 54
  • Karma: 9
Bonjour à tous,

J'ai finit mon module pour ma version de Dolibarr (3.9.2) qui reprend toutes les modifs du core que j'avais faite et pas d'autres choses.
Ces modifications correspondait à notre mode de fonctionnement, le Dropshipping.
Couplé aux modules restock et customtooltip des patas-monkey, c'est bien pratique.
Le module permet donc une cohérence visuelle et fonctionnelle sur les listes ainsi que sur les fiches de commandes clients et fournisseurs.
En petit bonus, j'ai implémenter le renvoi des liens de commandes vers une boutique Prestashop.

Voici quelques captures d'écran
boxes.png


commande_fournisseur.png


liste_commande_client.png


liste_commande_fournisseur.png



Bruce
L'administrateur a désactivé l'accès en écriture pour le public.