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