Plan aus ElektroPlan als „hochgeladen" indexieren — steht im Reiter Dateien, nicht vorne (1.1.2) [deploy]
All checks were successful
Deploy Eplan / deploy (push) Successful in 9s

dokument_upload legte die PDF nur in den Auftragsordner. Ohne Eintrag in
llx_ecm_files indexiert Dolibarr sie selbst als „unknown", und der Kasten
„Verknüpfte Dokumente" (FileArchive 4.15 filtert nach gen_or_uploaded)
zeigte sie weiter vorne. Jetzt: Eintrag mit gen_or_uploaded = 'uploaded'
und Beleg-Bezug; erneutes Speichern aktualisiert den Eintrag statt ihn
doppelt anzulegen.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Eduard Wisch 2026-10-13 21:35:51 +02:00
parent b35cd5d22d
commit 82d58c8ce4
2 changed files with 19 additions and 1 deletions

View file

@ -194,6 +194,24 @@ try {
$ziel = $ziel_dir.'/'.$dateiname;
$erfolg = dol_move_uploaded_file($_FILES['datei']['tmp_name'], $ziel, 1, 0, 0);
if ($erfolg > 0) {
// In den Dateiindex als „hochgeladen" eintragen: dann steht der Plan im Reiter
// „Dateien" und NICHT vorne im Kasten „Verknüpfte Dokumente" (FileArchive >= 4.15
// filtert dort nach gen_or_uploaded). Ohne Eintrag indexiert Dolibarr die Datei
// beim nächsten Aufruf selbst als „unknown" — die bliebe vorne stehen.
// Erneutes Speichern desselben Plans: vorhandenen Eintrag aktualisieren, nicht
// doppelt anlegen (addFileIntoDatabaseIndex prüft das nicht).
require_once DOL_DOCUMENT_ROOT.'/ecm/class/ecmfiles.class.php';
$rel_dir = ltrim(preg_replace('/^'.preg_quote(DOL_DATA_ROOT, '/').'/', '', $ziel_dir), '/');
$ecm = new EcmFiles($db);
if ($ecm->fetch(0, '', $rel_dir.'/'.$dateiname) > 0) {
$ecm->gen_or_uploaded = 'uploaded';
$ecm->label = md5_file($ziel);
$ecm->src_object_type = $c->table_element;
$ecm->src_object_id = $c->id;
$ecm->update($user);
} else {
addFileIntoDatabaseIndex($ziel_dir, $dateiname, '', 'uploaded', 0, $c);
}
echo json_encode(['erfolg' => true, 'pfad' => $ref_sanitiert.'/'.$dateiname]);
} else {
http_response_code(500);

View file

@ -24,7 +24,7 @@ class modEplan extends DolibarrModules
$this->editor_name = 'Alles Watt läuft';
$this->editor_url = '';
$this->version = '1.1.1';
$this->version = '1.1.2';
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
$this->picto = 'fa-drafting-compass';