|
Tipps - Tricks - Lösungen Thema: Versandzonen und unterschiedliche MWSt Autor: hop
Frage: <!--spmacro:module(Callback)
sub invoice_addpos_final {
my $ref_gesamt = $_[0];
my $ref_gesamt_steuer = $_[2];
my $ust = $_[3]/100;
my $netto = $_[4];
my ($wert,$text) = ssp::get_cart_zone();
# Wenn ein Land ohne Mwst. Berechnung ist
# 4 Schweiz
# 9 Lichtenstein
if (
($wert == 4) ||
($wert == 9)
)
{
$$ref_gesamt -= $$ref_gesamt_steuer;
$$ref_gesamt_steuer = 0;
}
return 0;
}
-->
<!--spmacro:module(zone)
# mit __zone::land__ kann das gewählte Land im Bestellformular ausgegeben werden
sub land {
my ($wert,$text) = ssp::get_cart_zone();
main::mprint($text);
}
-->
Diesen Inhalt können Sie so in eine leere Datei kopieren und als stdcart.ipl im Projektverzeichnis abspeichern. Die einzige Anpassung wird evtl. bei den ZonenIDs notwendig (hier 4 und 9), wenn Sie evtl andere ZonenIDs vergeben haben. Hier ist zusätzlich noch eine andere nützliche Funktion für das Bestellformular enthalten. Und zwar wird mit der Funktion zone::land der ausgewählte Wert der Versandzone in das Bestellformular eingetragen. Sie können mit <input type=hidden name="LKZ" value="__zone::land__">den Wert vorbelegen. Natürlich die normale LKZ Auswahl dann rausnehmen. Zusätzliche können Sie den Wert auch anzeigen, indem Sie einfach __zone::land__ an die entsprechende Stelle im Formular schreiben. Das dargestellte Beispiel ist für B2B Shops gedacht, bei denen die Preisangaben Netto sind. Bei Endkundenshops (Bruttopreise) ist die Berechnung zwar auch richtig. Aber für den Kunden aus z.B. der Schweiz nicht direkt nachvollziehbar. Um die Berechnung zu erklären, ist ein zusätzlicher Hinweis sinnvoll. Endbetrag ist wegen steuerfreier Lieferung um 47,34 EUR Mehrwertsteuer reduziert bzw. Endbetrag enthält 47,34 EUR Mehrwertsteuer Dieser Hinweis wird mit dem SSP-Identifier __Callback::steuertext__ eingefügt. Hier der erweiterte Code: <!--spmacro:module(Callback)
sub invoice_addpos_final {
my $ref_gesamt = $_[0];
my $ref_gesamt_steuer = $_[2];
my $ust = $_[3]/100;
my $netto = $_[4];
my ($wert,$text) = ssp::get_cart_zone();
$Callback::steuerwert = main::fp($$ref_gesamt_steuer);
# Wenn ein Land ohne Mwst. Berechnung ist
# 4 Schweiz
# 9 Lichtenstein
if (
($wert == 4) ||
($wert == 9)
)
{
$$ref_gesamt -= $$ref_gesamt_steuer;
$$ref_gesamt_steuer = 0;
}
return 0;
}
$steuerwert = 0;
sub steuertext {
my ($wert,$text) = ssp::get_cart_zone();
# Wenn ein Land ohne Mwst. Berechnung ist
# 4 Schweiz
# 9 Lichtenstein
if (
($wert == 4) ||
($wert == 9)
)
{
main::mprint("Endbetrag ist wegen steuerfreier Lieferung um <b>$steuerwert</b> Mehrwertsteuer reduziert");
}
else
{
main::mprint("Endbetrag enthält $steuerwert Mehrwertsteuer");
}
}
-->
<!--spmacro:module(zone)
# mit __zone::land__ kann das gewählte Land im Bestellformular ausgegeben werden
sub land {
my ($wert,$text) = ssp::get_cart_zone();
main::mprint($text);
}
-->Wenn Sie fragen zum Artikel haben, bitte im Support-Forum stellen.
|




vor- und zurückblättern auf Detailseiten