Projektreferenz in Kundenrechnung (odt template)

Hi,

ist es möglich bei der Erstellung von Rechnungsvorlagen Attribute des Projektes auszulesen (ID,Name, Datum)?
Die Daten dafür wären vorhanden (Feld: fk_projet | Table: llx facture , foreign key), in der Dokumentation kann ich dazu aber nichts finden.

Hintergrund:
Wir rechnen über Projekte ab und benötigen für unsere Rechnungen eine Auftragsnr., den Titel des Projekts und das Datum des Auftrags.
Intern habe ich es so modelliert:

  • Auftragsnr. = ID des Projekts
  • Titel = Name des Projekts
  • Datum = Datum/Beginn des Projekts

Des Weiteren habe ich eine Fusszeile mit unseren Firmendaten, dort finde ich leider keine Werte für unsere Bankkonten (hier steht bei uns das Standard-Konto für solche Aufträge). Gibt es da eine Möglichkeit ähnlich dem obigen Problem?

Vielen Dank für alle Tipps/Ratschläge!

Ich konnte es nun über ein neues PDF template lösen (Infos hier ).

Ich habe dazu das crabe template modifziert (<root_path>/htdocs/core/modules/pdf_crabe.modules.php)
In dem php-code kann man die Referenz auflösen mit:

// Process project values
    if (!empty($object->fk_project))
		{
			$project=new Project($this->db);
			$project->fetch($object->fk_project);      
		}

Anzeige dann z.B. über:

$pdf->MultiCell($text_width, ,$text_heigth, $outputlangs->trans("Project").' : '.$outputlangs->convToOutputCharset($project->ref), '', 'R');

Statt $project->ref kann man dann beliebige Attribute anzeigen, z.B. title o.ä.

Für ODT habe ich bisher keine Möglichkeit gefunden

Was an Variablen NICHT von Dolibarr für .odt Formulare bereitgestellt wird, muss über gesonderrte Programmierung geschehen!

https://wiki.dolibarr.org/index.php/Create_an_ODT_document_template

Beste Grüße

Ok, das hatte ich überlesen…
also müsste die Lösung für beide Varianten klappen.

Vielen Dank !

Falls jemand das gleiche Problem hat und nichts im code ändern will:
Ein Beispiel: Ein Extrafeld im Modul Projekte mit dem Namen „kdnprj“ soll auf der Rechnung angezeigt werden, ohne dass man die Infos in ein Extrafeld im Rechnungsmodul kopieren muss.

  1. Erstellen eines Extrafeldes im Rechnungsmodul
  2. Als Berechnetes Feld auswählen und diese Formel eingeben:

(($reloadedobj = new Project($db)) && ($reloadedobj->fetchNoCompute($obj->id ? $obj->id: ($obj->rowid ? $obj->rowid: $object->fk_project)) > 0)) ? $reloadedobj->array_options[options_kdnprj]: $reloadedobj

  1. In der odt vorlage eine Variable mit dem Namen des Extrafeldes hinzufügen {object_options_extrafeldrechnung}

Es wird automatisch der Inhalt von „kdnprj“ aus dem Projektmodul in das Berechnete Feld eingefügt und erscheint auf der Rechnung.
Wenn man was anpassen will:

  1. new Project zu bspw. new Societe geändert werden.
  2. fk_project zu bspw. fk_object
  3. array_options[options_kdnprj]

edit:

$reloadedobj->array_options[options_kdnprj]: $reloadedobj

muss zu

$reloadedobj->array_options[options_kdnprj]: '' geändert werden