Zeilennummer / Position auf Rechnung

Hi all,

hat jemand eine Idee wie man auf eine Rechnung die Zeilennummerierung bzw. Positionsnummerieung aktivieren / implementieren kann?

Ich habe das Modul „Line Numbers“ gefunden, jedoch ist es laut Beschreibung nur bis Version 13, ich habe jedoch 14 installiert. Beim Support hab ich schon zwei mal geschrieben aber da meldet sich keiner.

Danke euch

Versuche einmal MAIN_VIEW_LINE_NUMBER und/oder MAIN_VIEW_LINE_NUMBER_IN_LIST bei den erweiterten Einstellungen auf 1 zu setzen. Die erste Option funktioniert laut Beschreibung nur auf dem Bildschirm, nicht in der PDF-Ausgabe. Bei der zweiten bin ich mir nicht sicher, was sie tut.

Diese und andere Optionen sind im englischsprachigen Wiki beschrieben:

Danke für den Tipp, hab beide Einstellungen auf 1 gesetzt, aber leider ohne Erfolg, MAIN_VIEW_LINE_NUMBER ist genau was ich suche, nur eben auch für die PDFs…

1 „Gefällt mir“

Wenn du das meinst - leider kann ich keine PHP hier einfügen und der Quellcode ist zu lange

kann dir aber das geänderte Standard Module für Angebot und Rechnung schicken

Gruß Aba

Oh, das würde mich auch sehr interessieren. Kannst Du ins Dolistore diese Module einstellen?

Um ehrlich zu sein habe ich nicht vor etwas in den Dolistore zu stellen.
Die Unverschämtheit und Falschheit manche Anbieter dort will ich nicht unterstützen.

Kann die Files für Angebot und Rechnung aber gern an dich schicken

Gruß Aba

1 „Gefällt mir“

Nachdem diese Frage immer wieder kommt, hier mal eine Anpassung

Für das Dokument Angebot

Öffne in einem Texteditor – z.B. Notepad++ die Datei - in deinem Dolibarr Ortner

..\htdocs\core\modules\propale\doc\pdf_cyan.modules.php

und speichere sie direkt unter - dein Dolibarr Ortner

..\htdocs\core\modules\propale\doc\pdf_cyan_pos.modules.php

Falls du schon Änderungen vorgenommen hast und das Dokument einen anderen Namen hat - nimm das

nun suche und ersetze

class pdf_cyan extends ModelePDFPropales     -->   class pdf_cyan_Pos extends ModelePDFPropales
$this->name = "cyan";      -->       $this->name = "cyan pos";

suche nach → // Unit price before discount
und füge nach der geschlossenen " } " das ein

// Pos
$pdf->SetXY ($this->posxpos + 25, $curY +1);
$pdf->MultiCell($this->posxdesc-$this->posxpos - 0.8, 3, $i+1, 0, 'L', 0);

suche nach → // line takes a position y in 2nd parameter and 4th parameter
und füge nach der geschlossenen " } " das ein

// Pos Line
        $pdf->line($this->posxdesc + 8, $tab_top, $this->posxdesc + 8, $tab_top + $tab_height);

suche nach → $rank = 0; // do not use negative rank

und ersetze das

		$rank = 0; // do not use negative rank
		$this->cols['desc'] = array(
			'rank' => $rank,
			'width' => false, // only for desc
			'status' => true,
			'title' => array(
				'textkey' => 'Designation', // use lang key is usefull in somme case with module
				'align' => 'L',
				// 'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label
				// 'label' => ' ', // the final label
				'padding' => array(0.5, 0.5, 0.5, 0.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
			),
			'content' => array(
				'align' => 'L',
				'padding' => array(1, 0.5, 1, 1.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
			),
		);

gegen das

			    $rank = $rank + 0;
                $this->cols['pos'] = array(
                        'rank' => $rank,
                        'status' => true,
                        'width' => 8, // in mm
                        'title' => array(
                                'textkey' => 'POS'
                        ),
                        'border-left' => false, // add left line separator
                );

                $rank = + 10; // do not use negative rank
                $this->cols['desc'] = array(
                        'rank' => $rank,
                        'width' => false, // only for desc
                        'status' => true,
                        'title' => array(
                                'textkey' => 'Designation', // use lang key is usefull in somme case with module
                                'align' => 'L',
                                // 'textkey' => 'yourLangKey', // if there is no label, yourLangKey will be translated to replace label
                                // 'label' => ' ', // the final label
                                'padding' => array(0.5, 0.5, 0.5, 2.5), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
                        ),
                        'content' => array(
                                'align' => 'L',
                                'padding' => array(1, 0.5, 1, 2), // Like css 0 => top , 1 => right, 2 => bottom, 3 => left
                        ),
                );

speichere die Änderungen und gehe zu Dolibarr

Um die Spaltenbezeichnung zu bekommen gehe bei Dolibarr zu

  • Einstellungen → Übersetzungen → Überschreiben der Übersetzungen +

  • wähle die Sprache aus - trage als Key " POS " ein - und bei Meine Übersetzung den Namen der Positionsspalte z.B. " Pos. "

  • öffne → Einstellungen → Module → Angebote
    da sollte jetzt eine neue Dokumentenvorlage mit dem Namen - cyan pos - sein.

Wenn alles geklappt hat wird ab jetzt bei Angeboten, wenn sie mit dem neuen Dokument erstellt wird, eine Spalte mit der Position Nummer angezeigt.

Viel Spaß Scalar

1 „Gefällt mir“

Für das Dokument Rechnung

Öffne in einem Texteditor – z.B. Notepad++ die Datei - in deinem Dolibarr Ortner

..\htdocs\core\modules\facture\doc\pdf_crabe.modules.php

und speichere sie direkt unter - dein Dolibarr Ortner

..\htdocs\core\modules\facture\doc\pdf_crabe_pos.modules.php

Falls du schon Änderungen vorgenommen hast und das Dokument einen anderen Namen hat - nimm das.

nun suche und ersetze

class pdf_crabe extends ModelePDFFactures  -->  class pdf_crabe_pos extends ModelePDFFactures
$this->name = "crabe";  -->  $this->name = "crabe pos";

suche → // Define position of columns
und ersetze

$this->posxdesc = $this->marge_gauche + 1;

mit

$this->posxpos = $this->marge_gauche + 1;
$this->posxdesc = 20;

suche → // Description of product line
und ersetze

$curX = $this->posxdesc - 1;  -->  $curX = $this->posxdesc + 8;

suche → // Unit price before discount
und ersetze

$pdf->SetXY($this->posxup, $curY);
$pdf->MultiCell($this->posxqty - $this->posxup - 0.8, 3, $up_excl_tax, 0, 'R', 0);

mit

$pdf->SetXY($this->posxup +2, $curY);
$pdf->MultiCell($this->posxqty +3 - $this->posxup - 0.8, 3, $up_excl_tax, 0, 'R', 0);

suche → // Quantity
und füge darüber ein

// Pos.
$pdf->SetXY ($this->posxpos + 3, $curY);
$pdf->MultiCell($this->posxdesc-$this->posxpos - 0.8, 3, $i+1, 0, 'L', 0);

suche nach

$pdf->SetXY($this->posxdesc - 1, $tab_top + 1);

und füge darunter ein

//columns
$pdf->MultiCell(10,1, "Pos.",'','C');
$pdf->line($this->posxdesc + 8, $tab_top, $this->posxdesc + 8, $tab_top + $tab_height);
$pdf->SetXY ($this->posxdesc + 8, $tab_top + 1);

speichere die Änderungen und gehe zu Dolibarr

  • öffne → Einstellungen → Module → Rechnung
    da sollte jetzt eine neue Dokumentenvorlage mit dem Namen - crabe pos - sein.

Wenn alles geklappt hat wird ab jetzt bei Rechnung, wenn sie mit dem neuen Dokument erstellt wird, eine Spalte mit der Position Nummer angezeigt.

Viel Spaß Scalar

Hallo Scalar,
vielen Dank für diese Schnipsel … alles funktioniert perfekt !!!

Grüße
scaleo