Auftrag "Abweichende Lieferadresse" und WIKI "neue Datei anlegen". Upgrade von Xentral auf openXE

  • Guten Abend

    wir haben ein Upgrade von Xentral auf openXE durchgeführt und folgende Probleme (gehabt):


    1.

    Beim Auftrag "Abweichende Lieferadresse" wird bei mir nicht die gesamte Lieferadresse in den Auftrag übernommen.

    Haben nur wir das Problem oder auch andere Anwender?


    Problem ist anscheinend in der Datei

    Code
    www/js/ajax_001.js
    if(typeof mySplitResult[3] != 'undefined')SelectCountry('#lieferland',trim(mySplitResult[3]));
    ...
    function SelectCountry(selector, value) {
        ...
        window.parent.$(selector).trigger('change');
    }

    Bei trigger change bricht die Ausführung ab und es werden dann keine weiteren Felder mehr übernommen. Daher nur Werte in den ersten 4 Felder im Auftrag.

    Habe den Aufruf SelectCountry('#lieferland') an das Ende der Funktion gesetzt. Problem erstmal gelöst.


    2.

    WIKI Datei upload mit dem Javascript Drag and Drop.

    Hat das mal funktioniert oder ist das Problem bekannt?

    Vermutlich gibt es das Problem auch an andere Stelle ( https://github.com/OpenXE-org/OpenXE/issues/102 )


    Zumindest erwartet die PHP Funktion einen Dateinamen:

    Code
    www/lib/class.erpapi.php
    if(@is_uploaded_file($datei))

    Aber $datei hat den Inhalt der Datei, daher kann die Abfrage ja so nicht funktionieren. ( https://www.php.net/manual/en/function.is-uploaded-file.php )


    3.

    Rechnungen per Email versenden

    ohne Angabe einer Email Adresse im Datensatz erzeugt einen Fehler.

    Dieses Problem (Email vergessen) haben anscheinend auch andere Anwender ( https://github.com/OpenXE-org/OpenXE/issues/75 )


    Code
    www/lib/class.erpapi.php
    
    /*
    * Return 0 = not ok, return 1 = ok
    * $to, $to_name, $cc, $bcc can be csv or arrays
    */
           $recipients = [];
    +      $to_array = [];
    
    and return 0 if empty($to_array)


    4.

    Rechnung erstellen und die Funktion "Artikel manuell suchen / neu anlegen"

    Da haben wir eine Fehlermeldung bekommen.


    Code
    www/pages/artikel.php
    +      
    +      // ERROR: cmd is now kundeartikelpreise
           $cmd = $this->app->Secure->GetGET('cmd');
    +      // for error:  // Error: Table 'db.kundeartikelpreise_position' doesn't exist
    +      if($cmd === 'kundeartikelpreise')
    +      {
    +        $cmd='rechnung';
    +      }

    An die Funktion wird vom javascript als cmd der Wert kundeartikelpreise übergeben. Das muss ja in dem Fall "rechnung" sein. Dann findet das script auch die Tabelle rechnung_positionen.

    Ist das nur bei uns so? Also bedingt durch das Update von Xentral 20.3 auf openXE?


    Wird davon etwas benötig als Pull Request?


    Vielen Dank

  • Zu 1.:

    Das Problem kannte ich noch nicht. Ausgelöst wird das wenn man keine Bundesstaaten definiert hat. Dazu gibt es wohl das Modul bundesstaaten, das ist aber über die Oberfläche nicht anklickbar. Man kann das Modul über index.php?module=bundesstaaten öffnen. Wenn man dort einen Eintrag anlegt ist der Fehler weg.


    -> Kommt auf die Bugliste

  • Hallo Alex


    1. Neue Rechnung erstellen

    2. dann Tab Positionen

    3. über "Artikel manuell suchen / neu anlegen"Artikel suchen

    4. dann Klick auf übernehmen (+)

    5. der Link ist /index.php?module=artikel&action=profisuche&cmd=rechnung&fmodul=&id=3565#

    6. aber in der Datei pages.php -> funktion ArtikelProfisuche() ist cmd=kundeartikelpreise

    7. Tabelle gibt es nicht in der DB ->

    SQL
    SELECT projekt FROM {$cmd} WHERE
    SELECT sprache FROM {$cmd} WHERE
    // for error:  // Error: Table 'db.kundeartikelpreise_position' doesn't exist
    SELECT IFNULL(MAX(sort),0) FROM {$cmd}_position WHERE {$cmd}=


    Code
      public function ArtikelProfisuche()
      {
    ..
    ..Zeile 3150
    // ERROR: cmd is now kundeartikelpreise
    $cmd = $this->app->Secure->GetGET('cmd');
    // for error:  // Error: Table 'db.kundeartikelpreise_position' doesn't exist
    if($cmd === 'kundeartikelpreise')
  • Hallo Alex


    hier ein weiterer Punkt:


    5.

    Bei Rechnungen wird die "Differenz" nicht angepasst.

    Rechnung wird als bezahlt markiert und die Differenz ist weiterhin der "Betrag Brutto". In der alten Version wurde dann der Wert für "Differenz"auf 0 gesetzt


    www/pages/rechnung.php


    OpenXE

    Code
    public function setManualPayed($invoiceId)
    {
    ..
      $this->app->DB->Update(
        "UPDATE rechnung 
        SET zahlungsstatus='bezahlt',bezahlt_am = now(), mahnwesenfestsetzen='1',
        mahnwesen_internebemerkung=CONCAT(mahnwesen_internebemerkung,'\r\n','Manuell als bezahlt markiert am ".date('d.m.Y')."') 
        WHERE id='$invoiceId'"
      );


    Xentral 20,3 -> ist=soll

    Code
    public function setManualPayed($invoiceId)
    {
      $this->app->DB->Update(
        "UPDATE rechnung 
        SET zahlungsstatus='bezahlt',bezahlt_am = now(), ist=soll,mahnwesenfestsetzen='1',
        mahnwesen_internebemerkung=CONCAT(mahnwesen_internebemerkung,'\r\n','Manuell als bezahlt markiert am ".date('d.m.Y')."') 
        WHERE id='$invoiceId'"
      );
  • Leider keine Änderung. Das landet in der Funktion

    Code
    $this->rechnung_zahlstatus_berechnen();


    und da werden ja nur alle mit Zahlungsstatus "offen" gefunden

    Code
    FROM
        rechnung 
    WHERE 
        belegnr <> '' AND zahlungsstatus = 'offen'

    Aber der Zahlungsstatus wurde ja in der Rechnung auf "bezahlt" geändert. Oder übersehe ich da etwas?

  • In der Version 20.3 wurde der Betrag auf 0 gesetzt. Das wurde in der neuen Version entfernt... warum?


    Habe noch weitere Punkte

    6.

    Als "normaler" Benutzer und mit den erforderlichen Rechten kommt bei Stammdaten -> Adresse und dann klick auf Lieferadresse Neu Anlegen ein Fehler:

    Hier gibt die Funktion ProjektRechte() einen falschen Wert zurück ("p.id='1'":(


    www/pages/adresse.php

    Code
    $adresstypen = $this->app->DB->SelectArr("SELECT type, bezeichnung FROM adresse_typ WHERE aktiv = 1 AND geloescht = 0".$this->app->erp->ProjektRechte());

    Abfrage ProjektRechte() macht ja hier so keinen Sinn.


    7. RECHNUNG ZU VERBINDLICHKEIT

    Rechnung und dann "Rechnung zu Verbindlichkeit" kommt die Javascript Meldung "Wirklich... "

    /index.php?module=rechnungzuverbindlichkeit&action=create&id=1

    und danach nur eine leere Seite RECHNUNGZUVERBINDLICHKEIT

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!