Problem mit der Rechn-Nr. & Lieferschein Nr

Hallo liebe Oxid Freunde,

ich habe ein kleines Problem mit der PDF Genierung im Oxid Shop,
vielleicht könnte Ihr mir helfen bzw. einen Ansatz geben um das Problem zu lösen.

Im Backend unter “Bestellungen” lassen sich ja zu jeder dieser,
eine PDF “Rechnung” und “Lieferhinweis” exportieren.

Leider haben wir momentan das Problem, das die “Rechn-Nr.” beim “10” stehen geblieben ist. Ich kann mir leider nicht erklären woran das liegen kann.

Das zweite Problem bezieht sich auf die “Lieferschein Nr.”, die sich automatisch hoch
zählt, aber nicht manuell geändert werden kann, wenn mal eine Bestellung Probleme macht oder diese Storniert wird.

Vielleicht habt Ihr ja ein Tip für mich oder es gibt schon eine Lösung.

mit freundlichen Grüßen,
Sebastian

Hallo,

ich schliesse mich dem Problem mit der Rechnungsnummer an. Bei mir steckt auch der Counter auf 10 fest. Zurzeit behelfe ich mir noch mit einer manuellen Anpassung (ist aber aufwändig, fehleranfällig und entsrpicht nicht den GoB). Habe das schon etwas länger, aber noch keine Zeit nachzuforschen.

Hoffentlich findet jemand eine Lösung!

Ist die Lieferscheinnummer nicht identisch mit der Bestellnummer ? Könnte bei mir zumindest so sein.

CYA
Firefax

Hallo,

die Rechnungsnummer bleibt bei 10 stehen? Wie abgefahren ist das denn? :slight_smile:
Könnt Ihr das im Demoshop reproduzieren? Dann ab damit in den Bugtracker.

Für den Fall, dass unterschiedliche Rechnungs- oder Lieferscheinnummernkreise benötigt werden, läßt sich das spätestens in der Datenbank einstellen: Dort einfach eine Zahl seiner Wahl im oxorder-Feld eintragen, diese wird dann jeweils um +1 hochgezählt.

Gruß

Das Problem mit der “Rechn-Nr.:” habe ich gelöst.
( Da diese bei 10 stehen geblieben ist )

  • Ich hatte festgestellt das das Problem schon in einer neueren Version behoben wurde.
  • Also wer noch die Version “OXID_CE_4.1.3_19918” nutzt. Aufgepasst.

[B]Änderung:[/B]

  • /oxid/core/oxorder.php
    ( Zeile 1262 )

  • function getNextBillNum()
    ( entsprechend Anpassen )


public function getNextBillNum()
{
    //$sQ = 'select max(oxorder.oxbillnr) from oxorder where oxorder.oxshopid = "'.$this->getConfig()->getShopId().'" ';
    $sQ = 'select max(cast(oxorder.oxbillnr as unsigned)) from oxorder where oxorder.oxshopid = "'.$this->getConfig()->getShopId().'" ';
    
    return ( ( int ) oxDb::getDb()->getOne( $sQ ) + 1 );
}

mfg,
Sebastian

Und das zweite Problem mit der “Lieferschein Nr.” habe ich auch gelöst.
Ich bin genau so vorgangen wie die “Rechnungs Nr.”.

[B]Infos:[/B]

  • Die “Lieferschein Nr.” entspricht bis jetzt nur der “Bestellnr” nix weiter
    und kann auch nicht unter “Stamm” nachbearbeitet werden.
  • Das Änderung wir jetzt, in dem wir diese genau so aufbauen, wie
    die “Rechnungs Nr.”

[B]Anpassung / Neuerung:[/B]
( Nur auf eigene Gefahr ändern! )

1.)

  • Mysql Daten -> Tabelle “oxorder”
  • folgenden SQL Code ausführen

ALTER TABLE `oxorder` ADD `OXDELINR` VARCHAR( 123 ) NOT NULL AFTER `OXBILLNR` ;

2.)

  • /oxid/core/objects/oxerptype_order.php
    ( ca. Zeile 82 )
  • nach “OXBILLNR” folgendes eintragen

'OXDELINR'       => 'OXDELINR',

( ca. Zeile 156 )

  • nach “OXBILLNR” folgendes eintragen

'OXDELINR'       => 'OXDELINR',

3.)

  • /oxid/core/oxerpcsv.php
    ( ca. Zeile 330 )
  • nach “OXBILLNR” folgendes eintragen

'OXDELINR'       => 'OXDELINR',

4.)

  • /oxid/core/oxorder.php
    ( ca. Zeile 1270 )
  • nach “function getNextBillNum” folgendes eintragen

     /**
     * Returns next possible (free) order deli number.
     *
     * @return integer
     */
    public function getNextDeliNum()
    {
        $sQ = 'select max(cast(oxorder.oxdelinr as unsigned)) from oxorder where oxorder.oxshopid = "'.$this->getConfig()->getShopId().'" ';
        
        return ( ( int ) oxDb::getDb()->getOne( $sQ ) + 1 );
    }

5.)

  • /oxid/modules/invoicepdf/myorder.php
    ( ca. Zeile 705 )
  • nach “$this->_iSelectedLang = $iSelLang;” folgendes eintragen

        // setting Delivery number
        if ( !$this->oxorder__oxdelinr->value ) {
            $this->oxorder__oxdelinr->setValue($this->getNextDeliNum());
        }

( ca. 1176 )

  • nach “$oPdf->setFont( ‘Arial’, ‘’, 10 );” folgendes eintragen

//$oPdf->text( 15, 108, $this->translate( 'ORDER_OVERVIEW_PDF_DELIVNOTE' ).' '.$this->oxorder__oxordernr->value );
        $oPdf->text( 15, 108, $this->translate( 'ORDER_OVERVIEW_PDF_DELIVNOTE' ).' '.$this->oxorder__oxdelinr->value );

6.)

  • /oxid/out/admin/tpl/order_main.tpl
    ( ca. Zeile 73 )
    nach “ORDER_MAIN_BILLNUM ()” folgendes eintragen

<tr>
            <td class="edittext">
            [{ oxmultilang ident="ORDER_OVERVIEW_PDF_DELIVNOTE" }]
            </td>
            <td class="edittext">
            <input type="text" class="editinput" size="15" maxlength="[{$edit->oxorder__oxdelinr->fldmax_length}]" name="editval[oxorder__oxdelinr]" value="[{$edit->oxorder__oxdelinr->value }]" [{ $readonly }]>
            </td>
        </tr>

Und “/oxid/tmp/” Template Cache leeren nicht vergessen.

Nun wird die “Lieferschein Nr.” automatisch hochgezählt und
kann unter “Bestellung” -> “Stamm” auch geändert werden.

mfg,
Sebastian

P.s. Programmierung fetzt :wink:

Hi Sebastian,

Danke für die Lösung.

Ich hatte vergessen mich zu meiner CE 4.1.2 zu bekennen :wink:
Ich werde das mit der Rechnungsnummer mal fixen und (irgendwann) meine CE updaten. Rechnungen erstelle ich zum Glück keine, darum brauch ich das nicht.

CYA
Firefax