Bonjour à tous.
Pour les besoins d’un projet je dois synchroniser les sociétés de la base de données d’un site web avec celles de Dolibarr.
J’arrive à créer des sociétés depuis mon site web qui vont bien s’enregistrer dans la base Dolibarr également.
Malheureusement je n’arrive pas à utiliser la fonction update de la classe societe (pour mettre à jours les informations des societes depuis mon site web), et après de nombreuses recherches j’espere trouver une réponse ici.
Je vous dépose mon code ci-dessous, sachant que la seule partie qui ne fonctionne pas est l’utilisation du update
include($_SERVER['DOCUMENT_ROOT'].'/dolibarr/htdocs/master.inc.php');
// Inclure la classe societe
include($_SERVER['DOCUMENT_ROOT'].'/dolibarr/htdocs/core/lib/company.lib.php');
// Récupérer les infos de la société dans la base
$item = $userModel->get($line->ItemId);
// Regarder si la societe existe deja dans Dolibarr
$dgLine = $dgModel->getOneWhere(array('Class' => 'societe', 'GnssId' => $item->UserId));
// Instancier l'objet Societe
$mycompany = new Societe($db);
// Si la societe existe dans Dolibarr la relire avec la méthode fetch
if (isset($dgLine) || !empty($dgLine)) {
$mycompany->fetch($dgLine->DoliId);
}
// Mettre en parallèle les champs des deux bases
$country = getCountry(strtoupper($item->Country), 3);
$mycompany->country_id=$country;
$mycompany->nom=$item->Company;
$mycompany->email=$item->Email;
$mycompany->address=$item->Address1.' '.$item->Address2;
$mycompany->zip=$item->PostalCode;
$mycompany->town=$item->City;
$mycompany->phone=$item->Phone;
$mycompany->url=$item->Website;
$mycompany->client=1;
// Si n'existe pas dans la base de données Dolibarr, création de la société
if (!isset($dgLine) || empty($dgLine)) {
$id=$mycompany->create($user);
$dgModel->insert(array('Class' => 'societe', 'DoliId' => $id, 'GnssId' => $item->UserId));
}
// Sinon modifier
else {
$mycompany->update($dgLine->DoliId, $user);
}
Merci d’avance