v2.0.x Bug in V2.0.10g bis V2.0.13.3

Thema wurde von Steffen (indiv-style.de), 18. Juli 2013 erstellt.

  1. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Danke und schönen Sonntag!!! ;)
     
  2. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    So, da mich das Ganze etwas genervt hat, hab ich mal bissl gespielt und eine funktionierende Lösung gefunden!

    Was mir sofort aufgefallen ist als ich die create_account.php und die account_edit.php verglichen habe ist dieser Block:

    in create_account.php

    PHP:
    // New VAT Check
        
    require_once(DIR_WS_CLASSES.'vat_validation.php');


        
    $vatID = new vat_validation($vat''''$country);

        
    $customers_status $vatID->vat_info['status'];
        
    $customers_vat_id_status $vatID->vat_info['vat_id_status'];

        if(
    $vatID->vat_info['error'] == true) {
            
    $error true;
            
    $messageStack->add('create_account'ENTRY_VAT_ERROR);
            
    $smarty->assign('error_vat'ENTRY_VAT_ERROR);
        }

    // New VAT CHECK END
    in account_edit.php

    PHP:
    // New VAT Check
        
    require_once(DIR_WS_CLASSES.'vat_validation.php');
        
    $vatID = new vat_validation($vat''''$country);

        
    $customers_status $vatID->vat_info['status'];
        
    $customers_vat_id_status $vatID->vat_info['vat_id_status'];
        
    $error $vatID->vat_info['error'];

        if(
    $error==1){
        
    $messageStack->add('create_account'ENTRY_VAT_ERROR);
        
    $error true;
        
    $smarty->assign('error_vat'ENTRY_VAT_ERROR);
      }

    // New VAT CHECK END
    also hab ich mal den funktionierenden Block der create_account.php in der account_edit.php ersetzt. Und siehe da, er macht jetzt die Prüfungen absolut sauber.....

    Vieleicht ist das ja die Lösung des Problems?!?!? Gm wird sich das morgen dennoch genauer ansehen aber es kann ja sein das dies hier ein Ansatz ist. ;)
     
  3. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Nicht vergessen: in admin/customers.php steckt das auch nochmal drinn. Allerdings werden da andere Variablen verwendet.

    Im Moment scheint aber die Datenbank wieder mal nicht erreichbar zu sein.
     
  4. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Ja ich weis! Allerdings ist der Bereich für den Kunden nicht zugänglich und somit sollte da nix anbrennen. Allerdings hast du recht, man sollte auch das ändern! ;)
     
  5. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Steffens Lösung ist genau die richtige Korrektur. Ich habe die Lösung übernommen, so dass sie mit dem SP 2.0.14.0 erscheinen sollte.
     
  6. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Habe ich versucht. Leider bekomme ich immer ein:"Bitte geben Sie eine gültige USt-IdNr. ein oder lassen Sie das Feld leer."

    Die UStID ist definitiv korrekt.
     
  7. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Ganz wichtig:

    Wenn die Abfrage auch die Kundengruppe automatisch ändert, muss da DRINGEND vorher abgefangen werden, ob das Konto zu Kundengruppe ADMIN gehört!!! Sonst schiesst man sich da beim ausprobieren selbst raus...
     
  8. Manni_HB

    Manni_HB G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    9.098
    Danke erhalten:
    1.540
    Danke vergeben:
    909
    Ort:
    Bremen
    Da es sich nur um ein Script handelt, wäre es doch schön, dies eben als Fix bereit zu stellen!
     
  9. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    für die /admin/customers.php muss das:
    PHP:
                // New VAT Check
                    
    if (xtc_get_geo_zone_code($entry_country_id) != '6') {
                    require_once(
    DIR_FS_CATALOG.DIR_WS_CLASSES.'vat_validation.php');
                    
    $vatID = new vat_validation($customers_vat_id$customers_id''$entry_country_id);
                
                    
    $customers_vat_id_status $vatID->vat_info['vat_id_status'];
                    
    $error $vatID->vat_info['error'];
                
                    if(
    $error==1){
                    
    $entry_vat_error true;
                    
    $error true;
                  }
                
                  }
                
    // New VAT CHECK END
    gegen das getauscht werden!

    PHP:
                // New VAT Check
                    
    if (xtc_get_geo_zone_code($entry_country_id) != '6') {
                    require_once(
    DIR_FS_CATALOG.DIR_WS_CLASSES.'vat_validation.php');
                    
    $vatID = new vat_validation($customers_vat_id$customers_id''$entry_country_id);
                
                    
    $customers_status $vatID->vat_info['status'];
                    
    $customers_vat_id_status $vatID->vat_info['vat_id_status'];
                    if(
    $vatID->vat_info['error']==1){
                    
    $messageStack->add('account_edit'ENTRY_VAT_ERROR);
                    
    $error true;
                    }
                
                  }
                
    // New VAT CHECK END
    auch hier wird jetzt ordentlich geprüft! (denke ich mal so.... ;) )
     
  10. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Klasse Steffen, das sieht soweit gut aus was den Check betrifft.
    Allerdings wird die Kundengruppe nicht geändert wie in der create_account.php

    Wenn die VAT-ID gültig ist, dann soll die Kundengruppe wie in
    http://meinshop/admin/configuration.php?gID=18 definiert geändert werden. Das tut es leider nicht.

    Schlägt der UStID-Check beim Registrierungsversuch fehl, hat der Kunde keine Chance selbst einen Wiederholungscheck zu machen um mehrwertsteuerfrei beliefert zu werden. Der Shopbetreiber erhält da auch keine Mitteilung drüber, es sei denn der Kunde beschwert sich.
    Im Endeffekt wandert der Kunde frustriert ab und bestellt nicht.

    Die Datenbank ist regelmässig, gerade am Wochenende nicht ererichbar bzw. die jeweiligen ausländischen Behörden haben die Server abgestellt.

    Ich nehme mal an dass der Fehler in der includes/classes/vat_validation.php liegt.
    Die Kundengruppe wird wohl nur geändert, wenn der Kunde vorher Gast-Status hat, wenn ich das richtig begreife. Wäre schön wenn das grundsätzlich ginge, ausser der Kunde ist ADMIN.
     
  11. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Warum willste denn die K-Gruppe ändern??? Der Kunde ist eingeloggt und hat doch schon ne K-Gruppe...
     
  12. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Weil es viele Kunden gibt, die sich anmelden und erstmal nicht ihre UStID zur Hand haben oder weil der EU-Prüfserver nicht erreichbar ist. Die loggen sich dann nochmal ein und tragen die nach. Dann sind die aber in der Kundengruppe "Kunde". Da wird dann nicht mehr geprüft ob das ein Inländer oder ausländer ist, mit oder ohne UStID.

    Dann wird die KG nicht geändert und die bekommen eine falsche AB und bezahlen dann auch noch Vorauskasse oder per PayPal. inkl. MwSt.
    Das müssen wir dann wieder gutschreiben und zurücküberweisen.

    Ich habe mehr als die Hälfte Auslandskunden und habe den Stress wirklich täglich. Das führt zu mehr als Hundert Gutschriften im Jahr , die ich mir ersparen würde, wenn das vernünftig liefe.
     
  13. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Hat übrigens auch nix mit "wollen" zu tun, sondern mit "müssen".
    Die Art der Besteuerung ist Gesetz und hat mit dem persönlichen Willen nicht viel zu tun... ;-)
     
  14. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Das Problem bestand doch schon immer und hat eigentlich nichts mit der Pflichtfeldprüfung zu tun. Das es wichtig ist das dies funzt ist schon klar aber mach hierfür nen Fred auf der sich nur um dieses Thema kümmert.

    Die Pflichtfeldprüfung funzt zumindestens....
     
  15. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.698
    Danke erhalten:
    889
    Danke vergeben:
    288
    Ja, das war schon immer Murks...

    :)