Probleme bei der MwSt. Ausweisung

Du hast ein Problem gefunden und weißt nicht genau wo es hinpasst...
Antworten
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Probleme bei der MwSt. Ausweisung

Beitrag von Kopernikus »

Heute ist mal wieder ein solcher Tag, an welchem ich fast graue Haare bekomme - oder zumindest ein paar zusätzliche ;)

Das Problem ist folgendes.

Mir wird im Warenkorb und in der checkout_confirmation keine MwSt. angezeigt, sondern lediglich der Zusatz "inkl. Unbekannter Steuersatz:".

1. In den Kundengruppen habe ich bei allen Benutzern die Einstellung: "Möchten Sie die Preise inklusive oder exklusive Steuer anzeigen? Preise inkl. MwSt" auf Ja
2. Die Steuereinstellungen lauten bei mir wie folgt:
Unter Steuerzonen habe ich Schweiz --> alle Bundesländer
Unter Steuerklassen: 2 Einträge: Normalsatz und Reduzierter Satz
Unter Steuersätze: 2 Einträge (Normalsatz und Reduzierter Satz) mit folgendem Inhalt: Name der Steuerklasse: Normalsatz bzw. Reduzierter Satz --> Steuerzone: Schweiz --> Steuersatz (%): 8% bzw. 2,5% --> Priorität: 1

Im Prinzip wurden alle Einstellungen von meinem alten Shop migriert. Ich habe jedoch zwei Testshops auf dem Server.

1. www(dot)engelis-naturshop(dot)ch/webs_new - Dieser Testshop habe ich schon vor mehreren Monaten aufgesetzt und per Update auf die neuste Version 1.014 migriert. Hier funktioniert die MwSt. problemlos.
2. www(dot)engelis-naturshop(dot)ch/webs14 - Dieser Testshop wurde letzte Woche komplett neu aufgesetzt und dann die Daten migriert. Hier tritt das Problem auf. Daselbe Ergebnis liefert auch mein lokal installierter Testshop (ebenfalls letzte Woche aufgesetzt).

Könnte es also sein, dass irgendwelche core Dateien verändert wurden? Oder wo beginne ich am besten mit der Fehlersuche?

Für jeden noch so kleinen Hinweis ein grosses DANKESCHÖN
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Probleme bei der MwSt. Ausweisung

Beitrag von Xantiva »

Zur Fehlersuche ...

german.php => define('TEXT_UNKNOWN_TAX_RATE', 'Unbekannter Steuersatz');

Die Konstante wird nur an einer Stelle genutzt: xtc_get_tax_description.inc.php

Fang z. B. mal an, in dem Du dort die SQL Query ($sql) ausgibst.
Mein Shop: http://www.basteln-selbermachen.de
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Probleme bei der MwSt. Ausweisung

Beitrag von Kopernikus »

Hallo Xantiva

Besten Dank für den Tipp. Du hast mich auf die richtige Fährte gebracht. :)

Nun konnte ich die fehlerhafte Datei auch eruieren.

Der Fehler steckt in der aktuellen xtc_get_tax_description.inc.php (Version: 2207 2011-12-01 07:37:55Z joerg $)

Als nicht Coder ist es für mich natürlich etwas schwierig den "Hund" in dieser Datei zu finden. Aber zunächst fällt auf, dass ein abschliessendes ?> fehlt. Doch auch mit diesem wird die MwSt. noch nicht ausgegeben. Damit mir die MwSt. angezeigt wird, habe ich behelfsmässig die Datei durch eine alte (xtc_get_tax_description.inc.php 639 2009-04-06 23:44:06Z gunah $ ) ausgetauscht. Damit wird die MwSt. korrekt angezeigt. Vielleicht kann sich Jörg mal diese Datei ansehen. Ich denke jeder der sich das aktuellste Webs lädt, hat dieses Problem auch.

Code: Alles auswählen

<?php
/** ----------------------------------------------------------------------------
 **
 *F xtc_get_tax_description.inc.php
 **
 ** WEB-Shop Software http://www.webs.de
 **
 **  build the tax information string
 **
 ** ----------------------------------------------------------------------------
 ** based on:
 **  (c) 2000-2001 The Exchange Project (earlier name of osCommerce)
 **  (c) 2002-2003 osCommerce; www.oscommerce.com
 **  (c) 2003 nextcommerce; www.nextcommerce.org
 **  (c) 2006 XT-Commerce
 **
 ** Released under the GNU General Public License
 **
 ** @version $Id: xtc_get_tax_description.inc.php 2207 2011-12-01 07:37:55Z joerg $
 ** @copyright 2011 WEB-Shop Software http://www.webs.de/
 **
 ** ------------------------------------------------------------------------- */

function xtc_get_tax_description($class_id, $country_id= -1, $zone_id= -1) {
  	
  if ( ($country_id == -1) && ($zone_id == -1) ) {
    if (!isset($_SESSION['customer_id'])) {
      $country_id = STORE_COUNTRY;
      $zone_id = STORE_ZONE;
    } else {
      $country_id = $_SESSION['customer_country_id'];
      $zone_id = $_SESSION['customer_zone_id'];
    }
  }else{
    $country_id = $country_id;
    $zone_id = $zone_id;
  }
  
  $sql = '-- inc/xtc_get_tax_description
    select
      tax_rate
    from
      ' . TABLE_TAX_RATES . ' tr
    join ' . TABLE_ZONES_TO_GEO_ZONES .' za on tr.tax_zone_id = za.geo_zone_id
    join ' . TABLE_GEO_ZONES . ' tz on tz.geo_zone_id = tr.tax_zone_id
    where
      ( za.zone_country_id is NULL or za.zone_country_id = ' . (int)$country_id . ') and
      ( za.zone_id is NULL or za.zone_id = 0 or za.zone_id = ' . (int)$zone_id . ') and
      tr.tax_class_id = ' . (int)$class_id . '
    order by tr.tax_priority';
  $query = xtc_db_query($sql);
  if (xtc_db_num_rows($query, true)) {
    $info = array();
    while ($row = xtc_db_fetch_array($query, true)) {
      $info[] = sprintf(TAX_INFO, $row['tax_rate']);
    }
    $result = implode(' + ', $info);
  } else {
    $result = TEXT_UNKNOWN_TAX_RATE;
  }

  return $result;
}
Hier noch die Datei, die bei mir funktioniert:

Code: Alles auswählen

<?php
/* -----------------------------------------------------------------------------------------
   $Id: xtc_get_tax_description.inc.php 639 2009-04-06 23:44:06Z gunah $   

   XT-Commerce - community made shopping
   http://www.xt-commerce.com

   Copyright (c) 2003 XT-Commerce
   -----------------------------------------------------------------------------------------
   based on: 
   (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
   (c) 2002-2003 osCommerce(general.php,v 1.225 2003/05/29); www.oscommerce.com 
   (c) 2003	 nextcommerce (xtc_get_tax_description.inc.php); www.nextcommerce.org

   Released under the GNU General Public License 
   ---------------------------------------------------------------------------------------*/
   
  function xtc_get_tax_description($class_id, $country_id= -1, $zone_id= -1) {
  	
  	    if ( ($country_id == -1) && ($zone_id == -1) ) {
      if (!isset($_SESSION['customer_id'])) {
        $country_id = STORE_COUNTRY;
        $zone_id = STORE_ZONE;
      } else {
        $country_id = $_SESSION['customer_country_id'];
        $zone_id = $_SESSION['customer_zone_id'];
      }
     }else{
        $country_id = $country_id;
        $zone_id = $zone_id;
     }
  	
    $tax_query = xtDBquery("select tax_description from " . TABLE_TAX_RATES . " tr left join " . TABLE_ZONES_TO_GEO_ZONES . " za on (tr.tax_zone_id = za.geo_zone_id) left join " . TABLE_GEO_ZONES . " tz on (tz.geo_zone_id = tr.tax_zone_id) where (za.zone_country_id is null or za.zone_country_id = '0' or za.zone_country_id = '" . $country_id . "') and (za.zone_id is null or za.zone_id = '0' or za.zone_id = '" . $zone_id . "') and tr.tax_class_id = '" . $class_id . "' order by tr.tax_priority");
    if (xtc_db_num_rows($tax_query,true)) {
      $tax_description = '';
      while ($tax = xtc_db_fetch_array($tax_query,true)) {
        $tax_description .= $tax['tax_description'] . ' + ';
      }
      $tax_description = ecb_substr($tax_description, 0, -3);

      return $tax_description;
    } else {
      return TEXT_UNKNOWN_TAX_RATE;
    }
  }
 ?>
Xantiva
Beiträge: 948
Registriert: Mo 10. Mai 2010, 16:26
Shop Version: 1.0.10 [dev]
Kontaktdaten:

Re: Probleme bei der MwSt. Ausweisung

Beitrag von Xantiva »

Kopernikus hat geschrieben:Aber zunächst fällt auf, dass ein abschliessendes ?> fehlt.
Das fehlt nicht, sondern ist bewusst weggelassen worden. ;)

Es gibt kaum schlimmere Fehler zu suchen, wenn man nach so einem schliessenden PHP - Tag noch ein paar Leerzeilen in der Datei hat, die dann schon für eine Ausgabe an den Browser sorgen ...
https://www.google.de/search?q=schliess ... ssen&hl=de
Mein Shop: http://www.basteln-selbermachen.de
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Probleme bei der MwSt. Ausweisung

Beitrag von Kopernikus »

Aha, ok, da habe ich schon wieder was dazu gelernt. :)

Aber an was es nun genau hakt ist noch immer unklar.
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Probleme bei der MwSt. Ausweisung

Beitrag von yogi »

Hi Kopernikus,

in deiner Steuertabelle war keine Zone eingetragen - oder besser eine falsche.
Vermutlich hast Du die Zone mal gelöscht und dann neu angelegt - dadurch war es in der Steuertabelle noch mit ID=1 verknüpft - die gab es aber nicht mehr.
Somit war dem User aus der Schweiz kein Steuersatz zuzuordnet.
Kopernikus
Beiträge: 390
Registriert: Fr 19. Okt 2012, 12:15

Re: Probleme bei der MwSt. Ausweisung

Beitrag von Kopernikus »

Hi Yogi

Ich danke Dir herzlich für die Lösung dieses Problems. Ich war die letzten Tage etwas unter Druck und konnte leider erst jetzt antworten. Super das es nun klappt :)

Gruss Kopernikus
Antworten