From 3234544261403999bf680e3a1718236a7dfd7411 Mon Sep 17 00:00:00 2001 From: "vincent@cubedesigners.com" Date: Mon, 10 Jan 2011 18:47:31 +0000 Subject: [PATCH] --- importWs.php | 562 +++++++++++++++++++++++++++------------------------ 1 file changed, 293 insertions(+), 269 deletions(-) diff --git a/importWs.php b/importWs.php index 663df2c8f..81d89e7cf 100644 --- a/importWs.php +++ b/importWs.php @@ -1,310 +1,333 @@ con->execute('ALTER TABLE ' . $t . ' DISABLE KEYS'); -} + if ($utilisateurs) { + $books = true; + } + if ($books) { + $documents = true; + } -if ($themes) { - $core->con->execute('TRUNCATE TABLE themes_droits'); - $core->con->execute('TRUNCATE TABLE themes'); - $core->con->execute('TRUNCATE TABLE icones'); - $core->con->execute('TRUNCATE TABLE signatures'); -} -if ($langues) { - $core->con->execute('TRUNCATE TABLE langues'); -} + $grades = array(0 => 1, 0.4 => 1, '0.4' => 1, 0.5 => 1, '0.5' => 1, 1 => 1, 2 => 2, 3 => 3, 4 => 5); -if ($books) { - $core->con->execute('TRUNCATE TABLE book_pages'); - $core->con->execute('TRUNCATE TABLE books'); -} + $tables = array('books', 'book_pages', 'dashboard', 'devis', 'documents', 'entreprises', 'factures', 'icones', 'langues', 'projets', 'signatures', 'taches', 'themes', 'timereport', 'utilisateurs', 'themes_droits'); + foreach($tables as $t) { + $core->con->execute('ALTER TABLE ' . $t . ' DISABLE KEYS'); + } -if ($documents) { - $core->con->execute('TRUNCATE TABLE document_pages'); - $core->con->execute('TRUNCATE TABLE documents'); -} + if ($themes) { + $core->con->execute('TRUNCATE TABLE themes_droits'); + $core->con->execute('TRUNCATE TABLE themes'); + $core->con->execute('TRUNCATE TABLE icones'); + $core->con->execute('TRUNCATE TABLE signatures'); + } + if ($langues) { + $core->con->execute('TRUNCATE TABLE langues'); + } -if ($utilisateurs) { - $core->con->execute('DELETE FROM entreprises WHERE entreprise_id>242 AND entreprise_id<7'); - $core->con->execute('DELETE FROM utilisateurs WHERE utilisateur_id>278'); -} + if ($books) { + $core->con->execute('TRUNCATE TABLE book_pages'); + $core->con->execute('TRUNCATE TABLE books'); + } -if ($utilisateurs) { - // Importe les entreprises - // Contrôle des entreprises déjà dans la base extranet - $entreprises = array(); - $entreprise_id = 0; - $r = $core->con->select('SELECT entreprise_id,nom FROM entreprises'); - while ($r->fetch()) { - $nom = trim(mb_strtolower(cubeText::str2URL($r->nom))); - $entreprises[$nom] = $r->entreprise_id; - $entreprise_id = max($entreprise_id, $r->entreprise_id); + if ($documents) { + $core->con->execute('TRUNCATE TABLE documents'); } - $entreprise_id++; - // Obtient les emails des utilisateurs - $utilisateur_id = 0; - $utilisateurs = array(); - $r = $core->con->select('SELECT utilisateur_id,email FROM utilisateurs'); - while ($r->fetch()) { - $utilisateur_id = max($r->utilisateur_id, $utilisateur_id); - $utilisateurs[trim(mb_strtolower($r->email))] = $r->utilisateur_id; + + if ($utilisateurs) { + $core->con->execute('DELETE FROM entreprises WHERE entreprise_id>242 AND entreprise_id<7'); + $core->con->execute('DELETE FROM utilisateurs WHERE utilisateur_id>278'); } - $utilisateur_id++; - // Importe les entreprises et utilisateurs du WS dont les membres n'ont pas été reliés à l'extranet - $r = $core->con->select('SELECT * FROM ws.user WHERE extranet=0 AND (uid IN (SELECT uid FROM ws.book) OR grade>=3) ORDER BY date'); - $ws2ext = array(); - while ($r->fetch()) { - // On s'occupe de l'entreprise - $nom = trim(mb_strtolower(cubeText::str2URL($r->rs))); - $email = trim(mb_strtolower($r->email)); - if (isset($entreprises[$nom])) { - $e = $entreprises[$nom]; - } else { - $c = $core->con->openCursor('entreprises'); - $c->entreprise_id = $entreprise_id; - $c->nom = $r->rs; - $c->adresse = $r->adresse; - $c->code_postal = $r->code_postal; - $c->ville = $r->ville; - $c->pays = $r->pays; - $c->date_creation = $r->date; - $c->insert(); - $e = $entreprises[$nom] = $entreprise_id; - $entreprise_id++; + if ($utilisateurs) { + // Importe les entreprises + // Contrôle des entreprises déjà dans la base extranet + $entreprises = array(); + $entreprise_id = 0; + $r = $core->con->select('SELECT entreprise_id,nom FROM entreprises'); + while ($r->fetch()) { + $nom = mb_strtolower(trim($r->nom)); + $nom = cubeText::str2URL($nom); + $entreprises[$nom] = $r->entreprise_id; + $entreprise_id = max($entreprise_id, $r->entreprise_id); } - // Puis de l'utilisateur - if (isset($utilisateurs[$email])) { + + $utilisateurs_entreprises = array(); + + $entreprise_id++; + // Obtient les emails des utilisateurs + $utilisateur_id = 0; + $utilisateurs = array(); + $r = $core->con->select('SELECT utilisateur_id,email FROM utilisateurs'); + while ($r->fetch()) { + $utilisateur_id = max($r->utilisateur_id, $utilisateur_id); + $utilisateurs[trim(mb_strtolower($r->email))] = $r->utilisateur_id; + } + $utilisateur_id++; + // Importe les entreprises et utilisateurs du WS dont les membres n'ont pas été reliés à l'extranet + $r = $core->con->select('SELECT * FROM ws.user WHERE extranet=0 AND (uid IN (SELECT uid FROM ws.book) OR grade>=3) ORDER BY date'); + $ws2ext = array(); + while ($r->fetch()) { + // On s'occupe de l'entreprise + $nom = mb_strtolower(trim($r->rs)); + $nom = cubeText::str2URL($nom); + $email = trim(mb_strtolower($r->email)); + if (isset($entreprises[$nom])) { + $e = $entreprises[$nom]; + } else { + $c = $core->con->openCursor('entreprises'); + $c->entreprise_id = $entreprise_id; + $c->nom = $r->rs; + $c->adresse = $r->adresse; + $c->code_postal = $r->code_postal; + $c->ville = $r->ville; + $c->pays = $r->pays; + $c->date_creation = $r->date; + $c->ws_grade = $grades[$r->grade]; + try { + $c->insert(); + } + catch(Exception $e) { + fb($entreprises); + } + $e = $entreprises[$nom] = $entreprise_id; + + $entreprise_id++; + } + // Puis de l'utilisateur + if (isset($utilisateurs[$email])) { + $c = $core->con->openCursor('utilisateurs'); + $c->ws_password = $r->password; + $c->ws_id = $r->uid; + $c->update('WHERE utilisateur_id=\'' . $utilisateurs[$email] . '\''); + $ws2ext[$r->uid] = $utilisateurs[$email]; + $utilisateurs_entreprises[$utilisateurs[$email]] = $e; + } else { + $c = $core->con->openCursor('utilisateurs'); + $c->utilisateur_id = $utilisateur_id; + $c->entreprise = $e; + $c->nom = $r->nom; + $c->prenom = $r->prenom; + $c->email = $r->email; + $c->password = $r->password; + $c->adresse = $r->adresse; + $c->code_postal = $r->code_postal; + $c->ville = $r->ville; + $c->pays = $r->pays; + $c->telephone = $r->telephone; + $c->date_creation = $r->date; + $c->ws_password = $r->password; + $c->ws_id = $r->uid; + $c->insert(); + $ws2ext[$r->uid] = $utilisateur_id; + $utilisateurs_entreprises[$utilisateur_id] = $e; + $utilisateur_id++; + } + } + // Mets à jour les utilisateurs reliés à l'extranet + $r = $core->con->select('SELECT * FROM ws.user WHERE extranet!=0'); + while ($r->fetch()) { + $rr = $core->con->select('SELECT entreprise FROM utilisateurs WHERE utilisateur_id=\'' . $r->extranet . '\''); + $e = $rr->entreprise; + $c = $core->con->openCursor('utilisateurs'); $c->ws_password = $r->password; - $c->ws_grade = $r->grade; - $c->ws_admin = 1; $c->ws_id = $r->uid; - $c->update('WHERE utilisateur_id=\'' . $utilisateurs[$email] . '\''); - $ws2ext[$r->uid] = $utilisateurs[$email]; - } else { - $c = $core->con->openCursor('utilisateurs'); - $c->utilisateur_id = $utilisateur_id; - $c->entreprise = $e; - $c->nom = $r->nom; - $c->prenom = $r->prenom; - $c->email = $r->email; - $c->password = $r->password; - $c->adresse = $r->adresse; - $c->code_postal = $r->code_postal; - $c->ville = $r->ville; - $c->pays = $r->pays; - $c->telephone = $r->telephone; - $c->date_creation = $r->date; - $c->ws_password = $r->password; - $c->ws_grade = $r->grade; + $c->update('WHERE utilisateur_id=\'' . $r->extranet . '\''); + + $c = $core->con->openCursor('entreprises'); + $c->ws_grade = $grades[$r->grade]; $c->ws_admin = 1; - $c->ws_id = $r->uid; - $c->insert(); - $ws2ext[$r->uid] = $utilisateur_id; - $utilisateur_id++; + $c->update('WHERE entreprise_id=' . $e); + + $utilisateurs_entreprises[$r->extranet] = $e; + $ws2ext[$r->uid] = $r->extranet; } - } - // Mets à jour les utilisateurs reliés à l'extranet - $r = $core->con->select('SELECT * FROM ws.user WHERE extranet!=0'); - while ($r->fetch()) { - $c = $core->con->openCursor('utilisateurs'); - $c->ws_password = $r->password; - $c->ws_admin = 1; - $c->ws_grade = $r->grade; - $c->ws_id = $r->uid; - $c->update('WHERE utilisateur_id=\'' . $r->extranet . '\''); - $ws2ext[$r->uid] = $r->extranet; - } - // Mets à jour les liens revendeur->client - $r = $core->con->select('SELECT * FROM ws.user u ORDER BY grade DESC,date ASC'); - while ($r->fetch()) { - if (!isset($ws2ext[$r->uid])) { - continue; + // Mets à jour les liens revendeur->client + $r = $core->con->select('SELECT * FROM ws.user u ORDER BY grade DESC,date ASC'); + while ($r->fetch()) { + if (!isset($ws2ext[$r->uid])) { + continue; + } + + if (!isset($ws2ext[$r->admin])) { + $ws2ext[$r->admin] = 5; + } + $c = $core->con->openCursor('entreprises'); + $c->ws_admin = $utilisateurs_entreprises[$ws2ext[$r->admin]]; + $c->update('WHERE entreprise_id=\'' . $ws2ext[$r->uid] . '\''); } - $c = $core->con->openCursor('utilisateurs'); - if (!isset($ws2ext[$r->admin])) { - $ws2ext[$r->admin] = 5; + } else { + $ws2ext = array(); + $r = $core->con->select('SELECT ws_id,utilisateur_id,entreprise FROM utilisateurs WHERE ws_id IS NOT NULL'); + while ($r->fetch()) { + $ws2ext[$r->ws_id] = $r->utilisateur_id; + $utilisateurs_entreprises[$r->utilisateur_id] = $r->entreprise; } - $c->ws_admin = $ws2ext[$r->admin]; - $c->update('WHERE utilisateur_id=\'' . $ws2ext[$r->uid] . '\''); } -} else { - $ws2ext = array(); - $r = $core->con->select('SELECT ws_id,utilisateur_id FROM utilisateurs WHERE ws_id IS NOT NULL'); - while ($r->fetch()) { - $ws2ext[$r->ws_id] = $r->utilisateur_id; - } -} -if ($themes) { - // Importe les signatures - $r = $core->con->select('SELECT * FROM ws.signature'); - while ($r->fetch()) { - $c = $core->con->openCursor('signatures'); - $c->signature_id = $r->sigid; - $c->nom = $r->titre; - $c->fbcredit = $r->fbcredit; - $c->fblink = $r->fblink; - $c->partnercredit = $r->partnercredit; - $c->partnerlink = $r->partnerlink; - $c->insert(); - } - // Importe les jeux d'icones - for($i = 1;$i <= 2;$i++) { - $c = $core->con->openCursor('icones'); - $c->icone_id = $i; - $c->nom = 'Vectoriel'; - $c->date = TIME; - $c->proprietaire = getWsUser(5); - $c->insert(); - } - // Import des thèmes - $r = $core->con->select('SELECT * FROM ws.theme'); - $theme = new wsTheme(); - while ($r->fetch()) { - $c = $core->con->openCursor('themes'); - $c->theme_id = $r->tid; + if ($themes) { + // Importe les signatures + $r = $core->con->select('SELECT * FROM ws.signature'); + while ($r->fetch()) { + $c = $core->con->openCursor('signatures'); + $c->signature_id = $r->sigid; + $c->nom = $r->titre; + $c->fbcredit = $r->fbcredit; + $c->fblink = $r->fblink; + $c->partnercredit = $r->partnercredit; + $c->partnerlink = $r->partnerlink; + $c->insert(); + } + // Importe les jeux d'icones + for($i = 1;$i <= 2;$i++) { + $c = $core->con->openCursor('icones'); + $c->icone_id = $i; + $c->nom = 'Vectoriel'; + $c->date = TIME; + $c->proprietaire = getWsUser(5); + $c->insert(); + } + // Import des thèmes + $r = $core->con->select('SELECT * FROM ws.theme'); + $theme = new wsTheme(); + while ($r->fetch()) { + $c = $core->con->openCursor('themes'); + $c->theme_id = $r->tid; - $c->proprietaire = getWsUser($r->proprietaire); - $c->date = $r->date; - $c->nom = $r->titre; - $c->signature = $r->sigid; - $parametres = new wsThemeParametres($theme); - $parametres->fromRecord($r); - $c->icones = oldIconesToColor($r->iid, $parametres); - $c->parametres = serialize($parametres); - $c->insert(); - } - $r = $core->con->select('SELECT * FROM ws.theme_user'); - $c = $core->con->openCursor('themes_droits'); - while ($r->fetch()) { - $c->utilisateur_id = $r->uid; - $c->theme_id = $r->tid; - try { + $c->proprietaire = getWsUser($r->proprietaire); + $c->date = $r->date; + $c->nom = $r->titre; + $c->signature = $r->sigid; + $parametres = new wsThemeParametres($theme); + $parametres->fromRecord($r); + $c->icones = oldIconesToColor($r->iid, $parametres); + $c->parametres = serialize($parametres); $c->insert(); } - catch(Exception $e) { + $r = $core->con->select('SELECT * FROM ws.theme_user'); + $c = $core->con->openCursor('themes_droits'); + while ($r->fetch()) { + $c->utilisateur_id = $r->uid; + $c->theme_id = $r->tid; + try { + $c->insert(); + } + catch(Exception $e) { + } } } -} -if ($langues) { - // Importe les langues - $trad = array(); - $r = $core->con->select('SELECT * FROM ws.lang_trad,ws.lang_ord WHERE lang_trad.idlt=lang_ord.idlt'); - while ($r->fetch()) { - $idl =getLangCode($r->idl); - if (!isset($trad[$idl])) { - $trad[$idl] = array(); + if ($langues) { + // Importe les langues + $trad = array(); + $r = $core->con->select('SELECT * FROM ws.lang_trad,ws.lang_ord WHERE lang_trad.idlt=lang_ord.idlt'); + while ($r->fetch()) { + $idl = getLangCode($r->idl); + if (!isset($trad[$idl])) { + $trad[$idl] = array(); + } + $trad[$idl][$r->ord] = $r->text; } - $trad[$idl][$r->ord] = $r->text; - } - $r = $core->con->select('SELECT * FROM ws.lang'); - while ($r->fetch()) { - ksort($trad[$idl]); - $textes = new wsLangueTextes(); - $textes->textes = $trad[$idl]; - $c = $core->con->openCursor('langues'); - $c->lang_id = $r->idl; - $c->traductions = json_encode(getLangCode($r->idl)); - $c->insert(); + $r = $core->con->select('SELECT * FROM ws.lang'); + while ($r->fetch()) { + ksort($trad[$idl]); + $textes = new wsLangueTextes(); + $textes->textes = $trad[$idl]; + $c = $core->con->openCursor('langues'); + $c->lang_id = $r->idl; + $c->traductions = json_encode(getLangCode($r->idl)); + $c->insert(); + } } -} -$docs = array(); -if ($documents) { - // Importe les documents - $r = $core->con->select('SELECT * FROM ws.document ORDER BY did'); - while ($r->fetch()) { - $c = $core->con->openCursor('documents'); - $c->document_id = $r->did; - $c->file = $r->file; - $c->proprietaire = getWsUser($r->uid); - $c->pages = $r->pages; - $c->trim = $r->trim; - $c->date = $r->date; - $c->insert(); - // TODO Copie des fichiers - $docs[$r->did] = true; + $docs = array(); + if ($documents) { + // Importe les documents + $r = $core->con->select('SELECT * FROM ws.document ORDER BY did'); + while ($r->fetch()) { + $c = $core->con->openCursor('documents'); + $c->document_id = $r->did; + $c->file = $r->file; + $c->proprietaire = getWsUser($r->uid); + $c->pages = $r->pages; + $c->trim = $r->trim; + $c->date = $r->date; + $c->insert(); + // TODO Copie des fichiers + /*$docs[$r->did] = true; if (!file_exists(dirname(__FILE__) . '/docs/' . $r->did)) { mkdir(dirname(__FILE__) . '/docs/' . $r->did, 0777, true); + }*/ + } + // Importe les pages des documents + } else { + $r = $core->con->select('SELECT document_id FROM documents'); + while ($r->fetch()) { + $docs[$r->document_id] = true; } } - // Importe les pages des documents - $r = $core->con->select('SELECT * FROM ws.document_pages'); - while ($r->fetch()) { - if (!file_exists(dirname(__FILE__) . '/docs/' . $r->did . '/p' . $r->dpid . '.txt')) { - file_put_contents(dirname(__FILE__) . '/docs/' . $r->did . '/p' . $r->dpid . '.txt', $r->text); + + if ($books) { + // Importe les fluidbooks + $r = $core->con->select('SELECT * FROM ws.book ORDER BY bid'); + if ($r->count() == 0) { + break; } - if (!file_exists(dirname(__FILE__) . '/docs/' . $r->did . '/p' . $r->dpid . '.csv')) { - file_put_contents(dirname(__FILE__) . '/docs/' . $r->did . '/p' . $r->dpid . '.csv', $r->links); + // . + $books_proprietaires = array(); + while ($r->fetch()) { + $c = $core->con->openCursor('books'); + $c->book_id = $r->bid; + $c->nom = $r->titre; + $c->lang = $r->lang; + $c->theme = $r->tid; + $books_proprietaires[$r->bid] = $c->proprietaire = getWsUser($r->uid); + $c->status = $r->status; + $c->date_status = $r->date_status; + $c->hash = $r->code; + $c->compteur_visites = 20; + $c->date = $r->date; + $parametres = new wsBookParametres(); + $parametres->fromRecord($r); + $parametres->fromXML(simplexml_load_string('' . $r->extras . '')); + $c->parametres = serialize($parametres); + $c->insert(); } - } -} else { - $r = $core->con->select('SELECT document_id FROM documents'); - while ($r->fetch()) { - $docs[$r->document_id] = true; - } -} + // Importe les pages des fluidbooks + $r = $core->con->select('SELECT * FROM ws.book_pages ORDER BY bid,bpid'); + while ($r->fetch()) { + if (!isset($docs[$r->did])) { + $c = $core->con->openCursor('documents'); + $c->document_id = $r->did; + $c->proprietaire = $books_proprietaires[$r->bid]; + $c->insert(); + $docs[$r->did] = true; + } -if ($books) { - // Importe les fluidbooks - $r = $core->con->select('SELECT * FROM ws.book ORDER BY bid'); - if ($r->count() == 0) { - break; - } - // . - $books_proprietaires = array(); - while ($r->fetch()) { - $c = $core->con->openCursor('books'); - $c->book_id = $r->bid; - $c->nom = $r->titre; - $c->lang = $r->lang; - $c->theme = $r->tid; - $books_proprietaires[$r->bid] = $c->proprietaire = getWsUser($r->uid); - $c->status = $r->status; - $c->date_status = $r->date_status; - $c->hash = $r->code; - $c->compteur_visites = 20; - $c->date = $r->date; - $parametres = new wsBookParametres(); - $parametres->fromRecord($r); - $parametres->fromXML(simplexml_load_string('' . $r->extras . '')); - $c->parametres = serialize($parametres); - $c->insert(); - } - // Importe les pages des fluidbooks - $r = $core->con->select('SELECT * FROM ws.book_pages ORDER BY bid,bpid'); - while ($r->fetch()) { - if (!isset($docs[$r->did])) { - $c = $core->con->openCursor('documents'); + $c = $core->con->openCursor('book_pages'); + $c->book_id = $r->bid; $c->document_id = $r->did; - $c->proprietaire = $books_proprietaires[$r->bid]; + $c->book_page = $r->bpid; + $c->document_page = $r->dpid; $c->insert(); - $docs[$r->did] = true; } + } - $c = $core->con->openCursor('book_pages'); - $c->book_id = $r->bid; - $c->document_id = $r->did; - $c->book_page = $r->bpid; - $c->document_page = $r->dpid; - $c->insert(); + foreach($tables as $t) { + $core->con->execute('ALTER TABLE ' . $t . ' ENABLE KEYS'); } } - -foreach($tables as $t) { - $core->con->execute('ALTER TABLE ' . $t . ' ENABLE KEYS'); +catch(Exception $e) { + fb($e); } function oldIconesToColor($iid, &$parametres) @@ -331,18 +354,19 @@ function oldIconesToColor($iid, &$parametres) $parametres->iconSet = 1; $parametres->colorizeIcons = 1; $parametres->iconsHMargin = 20; - $parametres->iconsTMargin=7; + $parametres->iconsTMargin = 7; $parametres->couleurI = $line['color']; return 1; } -function getLangCode($lang){ - $lang=strtolower($lang); - if($lang=='cz'){ - $lang='cs'; +function getLangCode($lang) +{ + $lang = strtolower($lang); + if ($lang == 'cz') { + $lang = 'cs'; } - return $lang + return $lang; } function getWsUser($oldid) -- 2.39.5