Muttergesellschaft

Hallo,
meine Frage wurde hier schon mal ähnlich diskutiert, ich würde sie gerne etwas vertiefen, es geht um die Rechnungsadressen von Kunden mit Muttergesellschaften, ich habe diverse Firmen und diese haben eine Muttergesellschaft (Zentrale),ich hätte gerne den Namen der Zentrale in der ersten Zeile der Rechnungsadresse.
Ist so was realisierbar?

LG
Jason.

Ich habe mir jetzt eine Neue Vorlage erstellt und meinen Bedürfnissen angepasst, indem ich statt Muttergesellschaft die Zentrale als Alias-Name in Zeile 1 der Firmenanschrift verwende.
Das passt auch so, ist aber auf Dauer nicht so schön, ich würde gerne die crabe_pdf Vorlage anpassen indem ich (ich vermute) im Bereich Company ein Zeile „Alias_Name“ hinzufüge.
Kann mich da jemand unterstützen?

LG
Jason.

Hi Jason,
allgemeine Informationen zur Anpassung findest du im Wiki unter Create a PDF document template - Dolibarr ERP CRM Wiki.
Zu deiner Anpassung: Aus meiner Sicht müsstest du prüfen ob für den ausgewählten Kunden eine Muttergesellschaft existiert (ggf. wenn benötigt auch ob diese wiederrum eine Muttergesellschaft hat) und dann dort die entsprechenden Daten laden und in der Adresse verwenden. Falls etwas unklar sein sollte, gerne deine Detailfragen hier stellen.
Falls du weitere kommerzielle Unterstützung brauchst, kannst du dich gerne bei mir melden - Kontaktinfos unter: Kontakt – Digital Centric

Gruß Sven

Hallo Sven,
vielen Dank für die Info, die Muttergesellschaften sind angelegt, ich denke mein Problem ist wohl aus der hinterlegten ID in der Zelle Muttergesellschaft von der Tabelle Kunden den Firmen Namen herauszuholen.
Derzeit habe ich die Neue Vorlage mit folgenden Zeilen ergänzt

// Output header (logo, ref and address blocks). This is first call for first page.

              $top_shift = $this->_pagehead($pdf, $object, 1, $outputlangs); 
               $pdf->SetFont('', 'B', $default_font_size + 2 ); 
       	        $x = $pdf->GetX(); // ermittle die Koordinaten 
                $y = $pdf->GetY(); //  
    $pdf->SetXY($x + 2, $y -22); // setzte Neue Position 
                $pdf->MultiCell(0,3 , 'Meine Muttergesellschaft e.V.','0','L',false); // Set interline to 3 
                $pdf->SetTextColor(0, 0, 0); 

lg
Jason

Hi Jason,

wenn ich das richtig verstehe, dann fehlt dir aktuell nur noch der Schritt ‚Meine Muttergesellschaft e.V.‘ durch den richtigen Wert zu ersetzen, oder? Dafür musst du folgende Schritte ausführen:

  1. Prüfe ob der aktuelle Kunde eine Muttergesellschaft hat
  2. Lade die Muttergesellschaft und nimm den gewünschten Wert anstatt deinen im Beispiel hardkodierten String ‚Meine Muttergesellschaft e.V.‘

Weitere Infos:

  • An die Info über den aktuellen Kunden kommst du mit $object->thirdparty (Object societe)
  • Die Info ob es eine Muttergesellschaft gibt, steht im Object societe im Parameter ‚parent‘

Viele Grüße
Sven

Hi Jason,

sorry noch eine Korrektur. Im Parameter ‚parent‘ steht nicht nur ob es eine Muttergesellschaft gibt, es steht tatsächlich die ID (nicht Referenz) der Muttergesellschaft drin oder ist null wenn es keine Muttergesellschaft gibt.

Noch eine Empfehlung: Am besten das gewünschte Template kopieren und unter anderem Namen speichern (siehe vorheriger Link ins Wiki). So geht man sicher, dass bei einem Update von Dolibarr deine Änderungen nicht überschrieben werden.

Gruß Sven

Hallo Sven,
eine Kopie habe ich schon erstellt, ich werde es gleich Morgen Früh probieren und berichten, vielen Lieben Dank.

Gruß
Jason.

:joy:
hab ich mir etwas zu einfach vorgestellt, ich stehe mit PHP noch am Anfang, ich konnte mit $object->thirdparty->parent die ID auslesen, wie hole ich nun den Namen aus der ID?
Derzeit als zwischen Lösung verwende ich erstmal $object->thirdparty->name_alias

LG
Jason

Hi Jason,
kein Problem. Es fehlt nicht mehr viel bis zum Ziel:

  1. Du musst die Imports in Zeile 34 bis 38 um eine weitere Zeile ergänzen:
require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
  1. du musst ein Object von Typ Societe erstellen und einen Verweis auf die Datenbank mitgeben:
$parentThirdparty = new Societe($this->db);
  1. du musst jetzt das neue Object mit der gegebenen Id laden:
$parentThirdpartyFetchResult = $parentThirdparty->fetch($object->thirdparty->parent);
  1. Wenn das Fetch Result > 0 ist, dann kannst du auf den Wert der Muttergesellschaft zugreifen, sonst nicht da ein Fehler beim Laden vorliegt. In dem Bereich wo das Fetch Result true ist, kannst du dann auf die Werte der Muttergesellschaft wie den Namen zugreifen und ihn verwenden.
if ($parentThirdpartyFetchResult > 0) {
    // use $parentThirdparty->name here
}

Gruß Sven

:hugs:
mich hat das PHP Fieber gepackt, ich suchte schon in sämtlichen PHP Tutorials, vielen Dank für die Hilfe, werde es gleich Morgen früh probieren :wink:

LG
Jason

:partying_face:
Guten Morgen Sven, es hat geklappt :blush:, vielen vielen Dank.
Punkt 4 konnte ich anscheinend auslassen, ich habe es sowohl mit als auch ohne Muttergesellschaft probiert, ich musste lediglich noch name in nom ändern.

Das wäre doch etwas für ein Dolibarr PHP Tutorial :slight_smile:

LG
Jason

1 „Gefällt mir“