31 public $array_import_module;
32 public $array_import_perms;
33 public $array_import_icon;
34 public $array_import_code;
35 public $array_import_label;
36 public $array_import_tables;
37 public $array_import_tables_creator;
38 public $array_import_fields;
39 public $array_import_fieldshidden;
40 public $array_import_entities;
41 public $array_import_regex;
42 public $array_import_updatekeys;
43 public $array_import_examplevalues;
44 public $array_import_convertvalue;
45 public $array_import_run_sql_after;
55 public $errors = array();
82 dol_syslog(get_class($this).
"::load_arrays user=".$user->id.
" filter=".$filter);
86 require_once DOL_DOCUMENT_ROOT.
'/core/lib/functions2.lib.php';
90 foreach ($modulesdir as $dir)
93 if (!is_resource($handle))
continue;
96 while (($file = readdir($handle)) !==
false)
98 if (!preg_match(
"/^(mod.*)\.class\.php/i", $file, $reg))
continue;
100 $modulename = $reg[1];
104 $part = strtolower(preg_replace(
'/^mod/i',
'', $modulename));
106 if ($part ===
'propale') $part =
'propal';
107 if (empty($conf->$part->enabled)) $enabled =
false;
109 if (empty($enabled))
continue;
112 $file = $dir.
"/".$modulename.
".class.php";
113 $classname = $modulename;
115 $module =
new $classname($this->
db);
117 if (isset($module->import_code) && is_array($module->import_code))
119 foreach ($module->import_code as $r => $value)
121 if ($filter && ($filter != $module->import_code[$r]))
continue;
139 $langtoload = $module->getLangFilesArray();
140 if (is_array($langtoload))
142 foreach ($langtoload as $key)
149 $this->array_import_perms[$i] = $user->rights->import->run;
151 $this->array_import_icon[$i] = (isset($module->import_icon[$r]) ? $module->import_icon[$r] : $module->picto);
153 $this->array_import_code[$i] = $module->import_code[$r];
155 $this->array_import_label[$i] = $module->getImportDatasetLabel($r);
157 $this->array_import_tables[$i] = $module->import_tables_array[$r];
159 $this->array_import_tables_creator[$i] = (isset($module->import_tables_creator_array[$r]) ? $module->import_tables_creator_array[$r] :
'');
161 $this->array_import_fields[$i] = $module->import_fields_array[$r];
163 $this->array_import_fieldshidden[$i] = $module->import_fieldshidden_array[$r];
165 $this->array_import_entities[$i] = $module->import_entities_array[$r];
167 $this->array_import_regex[$i] = $module->import_regex_array[$r];
169 $this->array_import_updatekeys[$i] = $module->import_updatekeys_array[$r];
171 $this->array_import_examplevalues[$i] = $module->import_examplevalues_array[$r];
173 $this->array_import_convertvalue[$i] = (isset($module->import_convertvalue_array[$r]) ? $module->import_convertvalue_array[$r] :
'');
175 $this->array_import_run_sql_after[$i] = (isset($module->import_run_sql_after_array[$r]) ? $module->import_run_sql_after_array[$r] :
'');
177 $this->array_import_module[$i] = array(
'position_of_profile'=>($module->module_position.
'-'.$module->import_code[$r]),
'module'=>$module);
179 dol_syslog(
"Import loaded for module ".$modulename.
" with index ".$i.
", dataset=".$module->import_code[$r].
", nb of fields=".count($module->import_fields_array[$r]));
205 global $conf, $langs;
209 dol_syslog(get_class($this).
"::build_example_file ".$model);
212 $dir = DOL_DOCUMENT_ROOT.
"/core/modules/import/";
213 $file =
"import_".$model.
".modules.php";
214 $classname =
"Import".$model;
215 require_once $dir.$file;
216 $objmodel =
new $classname($this->
db, $datatoimport);
218 $outputlangs = $langs;
222 $s .= $objmodel->write_header_example($outputlangs);
225 $s .= $objmodel->write_title_example($outputlangs, $headerlinefields);
228 $s .= $objmodel->write_record_example($outputlangs, $contentlinevalues);
231 $s .= $objmodel->write_footer_example($outputlangs);
249 if (empty($this->model_name)) { $this->error =
'ErrorWrongParameters';
return -1; }
250 if (empty($this->datatoimport)) { $this->error =
'ErrorWrongParameters';
return -1; }
251 if (empty($this->hexa)) { $this->error =
'ErrorWrongParameters';
return -1; }
255 $sql =
'INSERT INTO '.MAIN_DB_PREFIX.
'import_model (';
256 $sql .=
'fk_user, label, type, field';
258 $sql .=
" VALUES (".($user->id > 0 ? $user->id : 0).
", '".$this->
db->escape($this->model_name).
"', '".$this->
db->escape($this->datatoimport).
"', '".$this->
db->escape($this->hexa).
"')";
260 dol_syslog(get_class($this).
"::create", LOG_DEBUG);
267 $this->error = $this->
db->lasterror();
268 $this->errno = $this->
db->lasterrno();
269 $this->
db->rollback();
282 $sql =
'SELECT em.rowid, em.field, em.label, em.type';
283 $sql .=
' FROM '.MAIN_DB_PREFIX.
'import_model as em';
284 $sql .=
' WHERE em.rowid = '.((int) $id);
286 dol_syslog(get_class($this).
"::fetch", LOG_DEBUG);
287 $result = $this->
db->query($sql);
290 $obj = $this->
db->fetch_object($result);
293 $this->
id = $obj->rowid;
294 $this->hexa = $obj->field;
295 $this->model_name = $obj->label;
296 $this->datatoimport = $obj->type;
297 $this->fk_user = $obj->fk_user;
300 $this->error =
"Model not found";
316 public function delete($user, $notrigger = 0)
318 global $conf, $langs;
321 $sql =
"DELETE FROM ".MAIN_DB_PREFIX.
"import_model";
322 $sql .=
" WHERE rowid=".$this->id;
326 dol_syslog(get_class($this).
"::delete", LOG_DEBUG);
328 if (!
$resql) { $error++; $this->errors[] =
"Error ".$this->db->lasterror(); }
346 foreach ($this->errors as $errmsg)
348 dol_syslog(get_class($this).
"::delete ".$errmsg, LOG_ERR);
349 $this->error .= ($this->error ?
', '.$errmsg : $errmsg);
351 $this->
db->rollback();
dol_osencode($str)
Return a string encoded into OS filesystem encoding.
create($user)
Save an export model in database.
dolGetModulesDirs($subdir= '')
Return list of modules directories.
load_arrays($user, $filter= '')
Load description int this->array_import_module, this->array_import_fields, ...
$conf db
API class for accounts.
fetch($id)
Load an import profil from database.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename= '', $restricttologhandler= '', $logcontext=null)
Write log message into outputs.
__construct($db)
Constructor.
if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) if(!empty($conf->don->enabled)&&$user->rights->don->lire) if(!empty($conf->tax->enabled)&&$user->rights->tax->charges->lire) if(!empty($conf->facture->enabled)&&!empty($conf->commande->enabled)&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.
dol_print_error($db= '', $error= '', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
build_example_file($model, $headerlinefields, $contentlinevalues, $datatoimport)
Build an import example file.