PDF Templates bearbeiten

Hallo

nach dem update zu Version 13.0.1 ist leider das nutzen der ODT Templates etwas mühsam geworden. Daher habe ich angefangen die PDF Templates so zu änder5n das sie für meine Zwecke passen.

Soweit so gut - klappt auch überraschender weise

leider finde ich ein paar Sachen nicht

wo ist der Dokument Autor hinterlegt?

$pdf->MultiCell(66, 5, $outputlangs->transnoentities("erstellt von").": "........autor-fullname.., '', 'L');

wo finde ich Tel. + Mobile vom Autor?

$pdf->MultiCell(66, 5, $outputlangs->transnoentities("Mobile").": "........autor-mobile-phone.., '', 'L');

die daten sind vorhanden da jedes Dokument einem Bearbeiter zugeordnet wird nur finde ich es nicht.

Ich muss auch zugeben das ich als Bauingenieur eher ein PHP leihe bin, dennoch hoffe und freue ich mich auf Eure Unterstützung.

Danke
Peter

Ich mach mal ein Update - vll. findet sich ja doch noch der eine oder andere der hilft ohne auf kostenpflichtige Firmen zu verweisen.

Im Bild sieht man wie weit ich schon gekommen bin - Ich habe das Angebot eingeführt da es die meiste Arbeit macht.

In gelb sieht man wo ich Hilfe brauchen würde bitte

Danke Peter

Hallo Peter.

Wenn ich das richtig sehe, ist das Projekt mit dem Empfänger verknüpft und du willst das darunter einsetzen, oder? Wenn ja, dann solltest du das an der Stelle, wie im Screenshot angegeben, bearbeiten können. Was genau du dort angeben musst, weiss ich nicht, aber es wird schon einen Befehl zum Einfügen der Projektbezeichnung geben.
Beim Angebot Bezeichnung meinst du sicher “Ihr Zeichen“ oder? dann sollte das bei $pdf->MultiCell(100, 4, $outputlangs->transnoentities(„Ref“).": " . $outputlangs->convToOutputCharset($object->ref), ‚‘, ‚R‘); im selben Dokument zu bearbeiten gehen.

Bei der Seitengeschichte kenne ich mich auch nicht richtig aus. :frowning:!

Hallo Percy

Danke für deine Antwort.

den Bereich den du in deinem Bild anzeigst habe ich schon zerpflückt, alles was schwarz geschrieben ist habe ich schon fertig, habe nur die Adressen gelöscht wegen Datenschutz.

Der gelbe Teil macht Probleme. Hier meine ich jedoch nicht die Referenz Nummer sondern wirklich den Namen (Bezeichnung) des Projekts.

ZB:
Projekt Nr.: PJ2103001
Projekt Bezeichnung: Bauen eines Einfamilienhauses

das ganze wird in mehrere Aufgaben zerlegt. Jeder Aufgabe (im Projekt festgelegt) wird mit einem Angebot verknüpft. Diese Tasks würde ich dann als Angebot Name (Bezeichnungen) übernehmen.

Für die Angabe der Dauer - in Tagen, Wochen… bis Jahren habe ich eine Funktion die auch schon funktioniert, denke ich. $startdate, $enddate sollen aus den Tasks übernommen werden.

function datediff( $timeformat, $startdate, $enddate )
{
    $unix_startdate = strtotime( $startdate ) ;
    $unix_enddate = strtotime( $enddate ) ;
    $min_date = min($unix_startdate, $unix_enddate);
    $max_date = max($unix_startdate, $unix_enddate);
    $Sd = date( "d", $unix_startdate ) ;
    $Sm = date( "m", $unix_startdate ) ;
    $Sy = date( "Y", $unix_startdate ) ;
    $Ed = date( "d", $unix_enddate ) ;
    $Em = date( "m", $unix_enddate ) ;
    $Ey = date( "Y", $unix_enddate ) ;

    $unixtimediff = $unix_enddate - $unix_startdate ;
    if ( $unixtimediff <= 0 ) return -1 ;

    switch( strtolower( $timeformat ) )
    {
         case "d": // days
         $divisor = 3600 * 24 ;
         return floor( $unixtimediff / $divisor ) + 1 ; 
         break ;
         case "w": // weeks
         $i = 0 ;
         while ( ( $min_date = strtotime("+1 DAY", $min_date) ) <= $max_date) $i++;
         return floor( $i / 7 ) ;
         break ;
         case "m": // months
         $i = $Sd != $Ed && $Sm != $Em ? 1 : 0 ;
         while ( ( $min_date = strtotime("+1 MONTH", $min_date) ) <= $max_date) $i++;
         return $i ;
         break ;
         case "q": // quaterly (3 months)
         $i = $Sd != $Ed && $Sm != $Em ? 1 : 0 ;
         while ( ( $min_date = strtotime("+3 MONTH", $min_date) ) <= $max_date) $i++;
         return $i ;
         break ;
         case "y": // year
         $i = $Sd != $Ed && $Sm != $Em ? 1 : 0 ;
         while ( ( $min_date = strtotime("+1 MONTH", $min_date) ) <= $max_date) $i++;
         return floor( $i / 12 ) ;
         break ;
    }
}

Ausgabe wäre dann ungefähr so

$startdate = .dol_print_date($object->date_start) ;
$enddate = .dol_print_date($object->date_end) ;
$formats = array( "d" => "days", "w" => "weeks", "m" => "months", "q" => "quaterly", "y" => "years" ) ;
foreach( $formats AS $K => $F )

$pdf->SetFont('', 'B', $default_font_size -1);
$pdf->SetXY($posx, $posy);
$pdf->MultiCell(100, 4, $outputlangs->transnoentities("geplante Dauer in "$F). " : ". datediff( "$K",  $startdate, $enddate ), '', 'L');

Leider Habe ich noch nicht heraus gefunden wo ich diese Namen her bekomme. Unter - \htdocs\doli\htdocs\core\modules\project - finde ich leider nichts das mir weiterhilft.

Solltest du, oder jeder anderes, da eine Idee haben würde ich mich sehr freuen.
Ich brauche auch nichts fertiges - ein schubs in die richtige Richtung, wo ich suchen muss, reicht mir schon.

Das mit dem Seitenumbruch kann so schwer nicht sein - hoffe ich. Leider klappt es aber nicht einfach die öffentlichen Anmerkungen zu verlängern.

Nochmal danke für deine Antwort

einen schönen Abend
Peter

Im pdf template code müssen Sie PHP-Object Projekt benutzen und Projekt-id mit fetch() lesen aus der Datenbank. Dann Bezeichnung des Projekts benutzen. Sie können PHP code sehen im Projekt module zum beispiel. Es ist gar nicht einfach alles zu erklären im Forum.

Das ist meines Erachtens leider ein Hauptproblem von Dolibarr – die Benutzerfreundlichkeit ist nicht gegeben. Das fängt bei der Gestaltung der Rechnungsvorlage an (und dieses Thema ploppt irgendwie ständig in allen Foren auf) und hört beim Doli-Store auf, wo man Unmengen Geld ausgeben kann und hinterher funktioniert es meist nicht recht. Da haben andere ERPs leider die Nase vorn.

1 „Gefällt mir“