Model ODT expédition

J’essaie de comprendre le PHP mais hélas c’est vraiment pas facile déjà pour moi de comprendre l’orienté object. Je programme seulement des automates industriels et il n’y a pas cette notion de class, method, etc… Ou en tout cas pas à mon niveau.
Il y a encore un bug plutôt embêtant avec le module expédition. Quand on met un contact d’expédition les champs reste au format RAW (donc: {company_name}, etc…)
Dans le code je pense que ça doit être par la:

Mais pas sûr du tout.

Bon après quelques recherches, c’est pas « commondocgenerator.class.php » le soucis, j’ai du modifier le fichier « doc_generic_shipment_odt.modules.php » qui se trouve dans « \dolibarr\www\dolibarr\htdocs\core\modules\expedition\doc ».

Ajouter ces lignes:

// Define substitution array
			$substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object);
			$array_object_from_properties = $this->get_substitutionarray_each_var_object($object, $outputlangs);
			$array_objet = $this->get_substitutionarray_object($object, $outputlangs);
			$array_user = $this->get_substitutionarray_user($user, $outputlangs);
			$array_soc = $this->get_substitutionarray_mysoc($mysoc, $outputlangs);
			$array_thirdparty = $this->get_substitutionarray_thirdparty($socobject, $outputlangs);
			$array_propal = is_object($propal_object) ? $this->get_substitutionarray_object($propal_object, $outputlangs, 'propal') : array();
			$array_other = $this->get_substitutionarray_other($outputlangs);
			// retrieve contact information for use in object as contact_xxx tags
			$array_thirdparty_contact = array();
			if ($usecontact && is_object($contactobject)) $array_thirdparty_contact = $this->get_substitutionarray_contact($contactobject, $outputlangs, 'contact');

			// Make substitutions into odt of user info
			$tmparray = array_merge($substitutionarray, $array_object_from_properties, $array_user, $array_soc, $array_thirdparty, $array_objet, $array_propal, $array_other, $array_thirdparty_contact);

A la ligne 371

Et

    $linenumber = 0;
					foreach ($object->lines as $line)
					{
						$linenumber++;

A la ligne 505 après avoir rajouter les lignes au dessus.

Ça fonctionne impéc! Si quelqu’un peu faire un pull request pour l’intégrer dans la prochaine version.