PDF Rechnung anpassen und editieren?

Hallo

habe folgendes Problem.

Will auf der Rechnung unter Der Ust-ID Nr. die Steuernummer einfügen.

        // shop VAT number
        if ($oShop->oxshops__oxvatnumber->value) {
            $sText = $this->translate('ORDER_OVERVIEW_PDF_TAXIDNR') . ' ' . $oShop->oxshops__oxvatnumber->value;
            $oPdf->text(195 - $oPdf->getStringWidth($sText), $iTop + 12, $sText);
            $iTop += 8;
        } else {
            $iTop += 4;
        }

        // invoice number
        $sText = $this->translate('ORDER_OVERVIEW_PDF_COUNTNR') . ' ' . $this->oxorder__oxbillnr->value;
        $oPdf->text(195 - $oPdf->getStringWidth($sText), $iTop + 8, $sText);

Welchen Code muss ich hierzu einfügen?
Hab schon einiges probiert, aber dann wird die Rechnungspdf nicht mehr ausgegeben :frowning:

Bitte um Hilfe

        // shop VAT number
        if ( $oShop->oxshops__oxvatnumber->value ) {
            $sText = $this->translate( 'ORDER_OVERVIEW_PDF_TAXIDNR' ).' '.$oShop->oxshops__oxvatnumber->value;
            $oPdf->text( 195 - $oPdf->getStringWidth( $sText ), $iTop + 12, $sText );
            $iTop += 8;
        } else {
            $iTop += 4;
        }
        
        // <steuernummer>
        $sText = 'Steuernummer: BLAFUSEL';
        $oPdf->text( 195 - $oPdf->getStringWidth( $sText ), $iTop + 8, $sText );
        $iTop += 8;
        // </steuernummer>

        // invoice number
        $sText = $this->translate( 'ORDER_OVERVIEW_PDF_COUNTNR' ).' '.$this->oxorder__oxbillnr->value;
        $oPdf->text( 195 - $oPdf->getStringWidth( $sText ), $iTop + 8, $sText );

Ist nicht unbedingt schön, weil es hart im Script steht, aber es tut (siehe Bild im Anhang)

Eine Frage zu den Änderungen:
Sofern ich die Datei myorder.php in dem Ordner modules/invoicepdf/ ändere und dann wieder ein Oxid Update durchführe, wird diese Datei doch sicherlich überschrieben oder?

Beste Grüße
Tobias

Ja, die würde überschrieben werden.

Hm - das dann ja auch nicht gerade eine gute Art die Änderungen einzupflegen oder?
Wie handhaben dies andere User - jedes mal die Dateien wieder manuell einspielen?

Gruß
Tobias

Kann ich in der[B] myorder.php[/B]
[U]Zeile 901[/U]

//product VAT percent
$oPdf->text (150 - $oPdf->getStringWidh( $oOrderArt->oxorderarticles__oxvat->value ), $iStartPos, $oOrderArt->oxorderarticles__oxvat->value );

irgendwie anpassen, damit bei einer bestimmten Gruppe der MwSt.Satz X% angezeigt wird?

Kann keiner helfen?

Ist es “Überhaupt möglich” in der PDF ne abfrage zu machen ob der Benutzer (dessen Bestellung ich aufmache) in einer Benutzergruppe ist?

Im Moment fehlt mir leider die Zeit, aber selbstverständlich ist das möglich.

Habe nun das Oxidforum rauf- und runterdurchsucht, aber finde niergendwo einen Tip um bei meinem Problem weiter zu kommen.
Ist das jetzt so ein Geheimnis oder bin ich bei Euch schon auf ignor:p

nein, das ist kein Geheimnis, aber anscheinend hat keiner der Entwickler gerade Zeit deine Sonderwünsche kostenlos zu erfüllen.

Dachte auch hier gibts ne Community und nicht nur Entwickler die drauf warten Geld abzukassieren.
[I]
Edit: und bevor hierdrauf Kommentare kommen: Wir haben auch in Module investiert und haben genauso schon einige Entwickler bezahlt.[/I]

Vielen Dank für die Hilfe…habe es jetzt selbst gelöst.
Dachte eigentlich auch hier ist ne Community die Hilft und nicht nur Entwickler die drauf warten abzukassieren.

Es waren [U] [B]6[/B] [/U]Wörter die ich brauchte.

(( und bitte nicht falsch verstehen und will niemanden auf den Schlips treten, nur meine Meinung. Weil das Betrifft jetzt nicht nur diesen Thread. Für Programmierer und Oxid-Profis wäre das sicher nur eine Denkpause von nichtmal 1 Minute.))

[QUOTE=Mannitu;103535]Für Programmierer und Oxid-Profis wäre das sicher nur eine Denkpause von nichtmal 1 Minute.))[/QUOTE]

Ich glaub, da irrst Du Dich.

Es wäre schön, wenn Du hier noch die berühmten sechs Worte posten könntest, damit der nächste Suchende fündig wird :wink:

Gruß

[QUOTE=Mannitu;103535]Dachte eigentlich auch hier ist ne Community die Hilft und nicht nur Entwickler die drauf warten abzukassieren.[/QUOTE]
Richtig - und die beteiligen sich freiwillig, unbezahlt und oftmals in ihrer Freizeit hier am Forum, musst also nicht gleich patzig werden, wenn man mal auf eine bestimmte Detailfrage nicht oder nicht gleich eine Antwort erhält. Keiner wird absichtlich eine kleine Information zurückhalten, um diese dann vielleicht gegen Entgelt anzubieten.

[QUOTE=Mannitu;103535]Für Programmierer und Oxid-Profis wäre das sicher nur eine Denkpause von nichtmal 1 Minute.))[/QUOTE]
Leider ist dem nicht immer so, da man sich bei spezifischen Geschichten (vor allem wenn diese nicht so wirklich oft auftauchen) erst mal in die Materie reindenken muss und den Code sichten muss, um korrekte Lösungsvorschläge zu machen.

Die Community und das Forum hier leben von der kollektiven Erfahrung aller Beteiligten. Da Du offensichtlich in diesem Fall der Erste warst, der diese Anforderung hatte, wäre es schön, wenn Du zum kollektiven Wissen beitragen könntest und diese Lösung hier postest.

Das ich patzig bin ist richtig, und zwar wegen solcher aussagen auf so einem Forum:

nein, das ist kein Geheimnis, aber anscheinend hat keiner der Entwickler gerade Zeit deine Sonderwünsche kostenlos zu erfüllen.

Aber egal und das ist nicht das Thema, von mir aus können die unpassenden Beiträge auch gelöscht werden.

Ich habe es für mich so gelöst, das ich die oxorder überprüfe ob der Kunde die Ustid. angegeben hat. Ist das der Fall, erhält der Händler den Wert 0 und der Rest die normalen 21.

if ($this->oxorder__oxbillustid-value) { .....} else {.....}

Sicher ist es keine “Expertenlösung”, da es nur die Bestelldaten durchsucht und dort leider nicht angezeigt wird welcher Gruppe der Kunde angehört. Aber für uns ist es so erstmal gut.

Gerade Vanilla Thunder gibt sehr viel und oft technische Hilfen - völlig kostenfrei!
Aber Du hast Recht, das ist hier nicht Thema.

Danke fürs posten Deiner Lösung - solange es funktioniert muss die ja nicht den Ansprüchen an schönen Code von Experten genügen… :slight_smile:

und selbe Spiel für den Artikelpreis falls Ihr dort die Werte für Kunden mit UstID auf Netto anzeigen wollt.

ca. Zeile 909 (Oxid CE 4.6.3)

// product price
if (this->oxorder__oxbillustid->value) {
$sText = $oLang->formatCurrency( $oOrderArt->oxorderarticles__oxnprice->value, $this->_oCur ).' '.$this->_oCur->name;
} else {
$sText = $oLang->formatCurrency( $oOrderArt->oxorderarticles__oxbprice->value, $this->_oCur ).' '.$this->_oCur->name;
}
$oPdf->text...............

Auch für den Gesamtpreis in der selben Zeile,

// total product price
if (this->oxorder__oxbillustid->value) {
$sText = $oLang->formatCurrency( $oOrderArt->oxorderarticles__oxnetprice->value, $this->_oCur ).' '.$this->_oCur->name;
} else {
$sText = $oLang->formatCurrency( $oOrderArt->oxorderarticles__oxbrutprice->value, $this->_oCur ).' '.$this->_oCur->name;
}
$oPdf->text...............

Hi, bevor ich ein neues Thema erzeuge hier noch eine weitere Frage zu diesem Theme:

Wenn ich den Text in der Datei out/admin/de/lang.php ändere, schlägt sich dieses in der Rechnungs-PDF teilweise nieder, teilweise leider nicht.

Ich habe aus “Rechn-Nr” = “Rechnungsnummer” im Feld ORDER_OVERVIEW_PDF_COUNTNR gemacht. Dies klappt prima auf der PDF. Wenn ich aber in “ORDER_OVERVIEW_PDF_GREETINGS” den Text ändere von “Ihre Bestellung vom…” in z.B: “Bestelldatum”, dann schlägt sich diese Änderung nicht durch. Egal ob ich das tmp-Verzeichnis lösche oder nicht usw. Hat jemand eine Idee, was ich flasch mache? Viele Grüße und schönes Wochenende Joachim

besser ist, diese Änderungen in
[B]~/out/admin/de/cust_lang.php[/B]
zu speichern!
einfach die geänderten zeilen in die cust_lang.php kopieren. in der lang.php bleiben dann die alten werte, die aber von der cust_lag.php überschrieben werden. /tmp muss dabei nichtmal geleert werden …

Hiolg_2011,

super! Danke für die Hilfe. Ich habe da noch viel zu lernen. Funzt prima!

:slight_smile:

Gruß Joachim