- XDB::execute("DELETE FROM entreprises
- WHERE uid = {?}",
- S::i('uid'));
- $i = 0;
- foreach ($value as &$job) {
- XDB::execute("INSERT INTO entreprises (uid, entrid, entreprise, secteur, ss_secteur,
- fonction, poste, adr1, adr2, adr3, postcode,
- city, cityid, country, region, regiontxt,
- tel, fax, mobile, email, web,
- pub, adr_pub, tel_pub, email_pub, flags,
- glat, glng)
- VALUES ({?}, {?}, {?}, {?}, {?},
- {?}, {?}, {?}, {?}, {?}, {?},
- {?}, {?}, {?}, {?}, {?},
- {?}, {?}, {?}, {?}, {?},
- {?}, {?}, {?}, {?}, {?},
- {?}, {?})",
- S::i('uid'), $i++, $job['name'], $job['secteur'], $job['ss_secteur'],
- $job['fonction'], $job['poste'], $job['adr']['adr1'], $job['adr']['adr2'], $job['adr']['adr3'],
- $job['adr']['postcode'],
- $job['adr']['city'], $job['adr']['cityid'], $job['adr']['country'], $job['adr']['region'],
- $job['adr']['regiontxt'],
- $job['tel'], $job['fax'], $job['mobile'], $job['email'], $job['web'],
- $job['pub'], $job['adr']['pub'], $job['tel_pub'], $job['email_pub'],
- $job['adr']['checked'] ? 'geoloc' : '', $job['adr']['precise_lat'],
- $job['adr']['precise_lon']);
+
+ $deletePrivate = S::user()->isMe($page->owner) || S::admin();
+ XDB::execute('DELETE FROM pj, pjt
+ USING profile_job AS pj
+ LEFT JOIN profile_job_term AS pjt ON (pj.pid = pjt.pid AND pj.id = pjt.jid)
+ WHERE pj.pid = {?}' . (($deletePrivate) ? '' : ' AND pj.pub IN (\'public\', \'ax\')'),
+ $page->pid());
+ Address::deleteAddresses($page->pid(), Address::LINK_JOB, null, null, $deletePrivate);
+ Phone::deletePhones($page->pid(), Phone::LINK_JOB, null, $deletePrivate);
+ $previous_requests = EntrReq::get_typed_requests($page->pid(), 'entreprise');
+ foreach ($previous_requests as $request) {
+ $request->clean();
+ }
+ $terms_values = array();
+ foreach ($value as $id => &$job) {
+ if (($job['pub'] != 'private' || $deletePrivate) && (isset($job['name']) && $job['name'])) {
+ if (isset($job['jobid']) && $job['jobid']) {
+ XDB::execute('INSERT INTO profile_job (pid, id, description, email, entry_year,
+ url, pub, email_pub, jobid)
+ VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
+ $page->pid(), $id, $job['description'], $job['w_email'], $job['w_entry_year'],
+ $job['w_url'], $job['pub'], $job['w_email_pub'], $job['jobid']);
+ } else {
+ XDB::execute('INSERT INTO profile_job (pid, id, description, email, entry_year,
+ url, pub, email_pub)
+ VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})',
+ $page->pid(), $id, $job['description'], $job['w_email'], $job['w_entry_year'],
+ $job['w_url'], $job['pub'], $job['w_email_pub']);
+ $request = new EntrReq(S::user(), $page->profile, $id, $job['name'], $job['hq_acronym'], $job['hq_url'],
+ $job['hq_email'], $job['hq_fixed'], $job['hq_fax'], $job['hq_address']);
+ $request->submit();
+ sleep(1);
+ }
+ $address = new Address(array_merge($job['w_address'],
+ array('pid' => $page->pid(),
+ 'id' => $id,
+ 'type' => Address::LINK_JOB)));
+ $address->save();
+ Phone::savePhones($job['w_phone'], $page->pid(), Phone::LINK_JOB, $id);
+ if (isset($job['terms'])) {
+ foreach ($job['terms'] as $term) {
+ $terms_values[] = XDB::format('({?}, {?}, {?}, {?})',
+ $page->pid(), $id, $term['jtid'], "original");
+ }
+ }
+ }
+ }
+ if (count($terms_values) > 0) {
+ XDB::rawExecute('INSERT INTO profile_job_term (pid, jid, jtid, computed)
+ VALUES ' . implode(', ', $terms_values) . '
+ ON DUPLICATE KEY UPDATE computed = VALUES(computed)');
+ }
+ if (S::user()->isMe($page->owner) && count($value) > 1) {
+ Platal::page()->trigWarning('Attention, tu as plusieurs emplois sur ton profil. Pense à supprimer ceux qui sont obsolètes.');