/trunk/jrest/services/CelWidgetSaisie.php |
---|
143,6 → 143,10 |
} |
} |
$obsAAjouter['input_source'] = 'widget'; |
if (isset($obs['projet_id'])) { |
$obsAAjouter['project_id'] = $obs['projet_id']; |
$obsAAjouter['project'] = $obs['projet']; |
} |
if ($this->isFromPlantNet) { |
$obsAAjouter['input_source'] = 'PlantNet'; |
$obsAAjouter['plantnet_id'] = $obs['obs_id']; |
481,7 → 485,7 |
if(! $champs_etendus_obs) return TRUE; |
return $gestionChampsEtendus->ajouterParLots($champs_etendus_obs); |
return $gestionChampsEtendus->ajouterParLots($champs_etendus_obs, $this->projet); |
} |
private function traiterImagesALierAObs($idObs, $obsImages) { |
/trunk/jrest/bibliotheque/GestionChampsEtendus2.php |
---|
19,7 → 19,7 |
private $table_champs_etendus = "extended_field"; |
private $table_champs_etendus_trad = "extendedfield_translation"; |
private $champ_id = "field_id"; |
private $liste_champs = "ce.`project`, ce.field_id, ce.`data_type`, ce.`is_mandatory`, ce.`unit`, ". |
private $liste_champs = "ce.`id`, ce.`project`, ce.field_id, ce.`data_type`, ce.`is_mandatory`, ce.`unit`, ". |
"cet.extended_field_id, cet.`label`, cet.`description`, cet.`default_value`, cet.`error_message`, cet.`language_iso_code`, cet.`help` "; |
215,7 → 215,8 |
); |
} |
$infos_groupe['champs'][] = array( |
$infos_groupe['champs'][$groupe_champ['ce.field_id']] = array( |
'id' => $groupe_champ['ce.id'], |
'cle' => $groupe_champ['ce.field_id'], |
'label' => $groupe_champ['cet.`label`'], |
'type' => $groupe_champ['type_champ'], |
240,7 → 241,7 |
* Renvoie le catalogue des champs étendus |
*/ |
public function consulterCatalogueChampsEtendusPredefinis($ordonner_par_cle = false, $groupe = "") { |
$requete = 'SELECT ce.field_id as cle, cet.`label` as label, "0" as invisible, "0" as prive '. |
$requete = 'SELECT ce.id as id, ce.field_id as cle, cet.`label` as label, "0" as invisible, "0" as prive '. |
"FROM {$this->table_champs_etendus} ce ". |
"INNER JOIN {$this->table_champs_etendus_trad} cet ON ce.field_id = cet.extended_field_id "; |
if ($groupe !== "") $requete .= " WHERE project = ".$groupe; |
251,6 → 252,7 |
if ($catalogue != false) { |
foreach ($catalogue as $champ) { |
$champ_fmt = array( |
'id' => $champ['id'], |
'cle' => $champ['cle'], |
'label' => $champ['label'], |
'options' => array( |
/trunk/jrest/bibliotheque/GestionChampsEtendus.php |
---|
133,26 → 133,33 |
* @param array $champs_etendus tableau d'objets ChampEtendu |
* @return bool true si l'ajout a eu lieu |
*/ |
public function ajouterParLots(Array $champs_etendus) { |
public function ajouterParLots(Array $champs_etendus, $projet = null) { |
if (! $champs_etendus) return TRUE; // le tableau ... vide à été inséré |
$lignes = array(); |
foreach ($champs_etendus as $champ_etendu) { |
$id = Cel::db()->proteger($champ_etendu->id); |
$cle = Cel::db()->proteger($champ_etendu->cle); |
$valeur = Cel::db()->proteger($champ_etendu->valeur); |
$lignes[] = "($id, $cle, $valeur)"; |
$ajout = false; |
$label_champs_etendus = new GestionChampsEtendus2(); |
$champs_etendus_id = $label_champs_etendus->consulterGroupesChampsEtendusPredefinis($projet); |
if ($champs_etendus_id !== null) { |
$lignes = array(); |
foreach ($champs_etendus as $champ_etendu) { |
if (isset($champs_etendus_id[$champ_etendu->cle])) { |
$id = Cel::db()->proteger($champ_etendu->id); |
$cle = Cel::db()->proteger($champs_etendus_id[$champ_etendu->cle]['id']); |
$valeur = Cel::db()->proteger($champ_etendu->valeur); |
$lignes[] = "($id, $cle, $valeur)"; |
} |
} |
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour |
// où l'on change de sgbd |
$ajout = Cel::db()->executer(sprintf( |
"INSERT INTO %s (%s, extended_field_id, value) VALUES %s ON DUPLICATE KEY UPDATE value = VALUES(valeur) -- %s:%d", |
$this->table_obs_etendus, |
$this->champ_id, |
implode(',', $lignes), |
__FILE__, __LINE__)); |
} |
// la partie on duplicate key est spécifique mysql mais il sera facile de s'en passer le jour |
// où l'on change de sgbd |
$ajout = Cel::db()->executer(sprintf( |
"INSERT INTO %s (%s, extended_field_id, value) VALUES %s ON DUPLICATE KEY UPDATE value = VALUES(valeur) -- %s:%d", |
$this->table_obs_etendus, |
$this->champ_id, |
implode(',', $lignes), |
__FILE__, __LINE__)); |
return ($ajout !== false); |
} |