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

SUJET : Synchronisation bases de données

Synchronisation bases de données il y a 2 mois 1 semaine #112381

  • Midona
  • Portrait de Midona
  • Hors ligne
  • Fresh Boarder
  • Messages : 2
  • Karma: 0
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 :)
Dernière édition: il y a 2 mois 1 semaine par Midona.
L'administrateur a désactivé l'accès en écriture pour le public.

Synchronisation bases de données il y a 2 mois 1 semaine #112384

  • ksar
  • Portrait de ksar
  • Hors ligne
  • Admin
  • Bijour!
  • Messages : 932
  • Remerciements reçus 262
  • Karma: 14
Bonjour,

A mon avis il faut passer par l'API : www.dolibarr.fr/forum/api/58888-documentation-api-rest
L'administrateur a désactivé l'accès en écriture pour le public.

Synchronisation bases de données il y a 2 mois 10 heures #112796

  • Midona
  • Portrait de Midona
  • Hors ligne
  • Fresh Boarder
  • Messages : 2
  • Karma: 0
Il est vrai que l'api est plus en adéquation avec mes besoins pour ce projet.

Merci beaucoup ! :)
L'administrateur a désactivé l'accès en écriture pour le public.