Autor Thema: Mehrwertfreie Berechnung für Nicht-EU-Länder  (Gelesen 4586 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline parimo

  • Full Member
  • ***
  • Beiträge: 104
  • Lob: 0
Mehrwertfreie Berechnung für Nicht-EU-Länder
« am: September 19, 2011, 17:30:39 »
Hallo an die ExpertInnen,

was muss ich wo einstellen, damit bei Bestellungen aus Nicht-EU-Ländern (Schweiz) die MwSt nicht in Abzug gebracht wird.
Gerade bei Paypal-Bestellungen ist es lästig, wenn man hinterher immer Gutschriften ausstellen muss.
Wir arbeiten mit der Version 3.02.03b.

Danke im voraus für jeden Tipp.

Viele Grüße
parimo


Linkback: http://www.shoppilot.net/pf/shoppilot-enterprise/2/seo/1554/

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1337
  • Lob: 18
    • ShopPilot AT
Re: Mehrwertfreie Berechnung für Nicht-EU-Länder
« Antwort #1 am: September 19, 2011, 17:42:24 »
Hallo parimo,

das geht mit invoice_addpos_final

Auszug aus dem Handbuch

Zitat
Beispiel für die Anwendung bei Berechnung der MwSt.
Die MwSt soll für bestimmte Zielländer (Lieferzonen) nicht berechnet werden. Dazu ist der folgende Code in die Datei stdcart.ipl einzutragen.
Die Datei muss als zusätzliche Datei im WC eingetragen werden, damit Sie auf den Server übertragen wird.

Beispiel 1: keine MWST für Zone 10

<!--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 10 die Zahlungszonen-ID für ein Land ohne Mwst. Berechnung ist
  if ($wert == 10) {

     $$ref_gesamt -= $$ref_gesamt_steuer;
     $$ref_gesamt_steuer = 0;
  }
  return 0;
}
-->
mfG
dobra
______________________________
Betreute Shops:
Barrique Einzelhandel
Barrique Großhandel

Offline parimo

  • Full Member
  • ***
  • Beiträge: 104
  • Lob: 0
Re: Mehrwertfreie Berechnung für Nicht-EU-Länder
« Antwort #2 am: September 19, 2011, 18:11:01 »
Hallo dobra,

danke für deine schnelle Antwort.

Ich würde mir eigentlich wünschen, dass ich als Laie nicht jedesmal an der Programmierung der Shop-Software herumbasteln muss, was auch schon bisweilen schief gegangen ist, da ich Kauffrau und keine Programmiererin bin. Ich kann den Code immer nur blind übernehmen und irgendwo genauso blind einsetzen, das ist mir nicht immer sehr geheuer.

Viele Grüße
parimo

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1337
  • Lob: 18
    • ShopPilot AT
Re: Mehrwertfreie Berechnung für Nicht-EU-Länder
« Antwort #3 am: September 20, 2011, 06:29:20 »
Hallo parimo,

ShopPilot ist offen für alle Branchen und alle - noch so individuellen - Shopanforderungen !!!
Würden alle Wünsche aller Anwender einfach anklickbar eingebaut werden, wäre das soooo unübersichtlich dass sich niemand mehr zurechtfinden würde.

Damit wirklich jeder seine Vorstellungen und Anforderungen punktgenau realisieren kann gibt es ja die extrem flexiblen Möglichkeiten mit ssp die zu einem sehr großen Teil schon fertig im Handbuch dokumentiert sind (also NICHT erst programmiert werden müssen)
Ein bisschen Eigeninitiative - z.B. das Handbuch bzw. die Online-Hilfe benutzen - kann man doch wirklich voraussetzen  ::)
Und schließlich gibt es ja auch noch den exzellenten Support der weiter hilft wenn jemand so absolut keine Ahnung hat ...

P.S.: eine Sicherungskopie des Shop-Projekts zu machen bevor man - als absoluter Laie - was am Code ändert kann nicht schaden ;)
Wenn man was falsch macht, kann man so jederzeit wieder den vorherigen Stand einspielen und nochmal neu beginnen.

Offline parimo

  • Full Member
  • ***
  • Beiträge: 104
  • Lob: 0
Re: Mehrwertfreie Berechnung für Nicht-EU-Länder
« Antwort #4 am: September 23, 2011, 14:12:22 »
Hallo dobra,

meine stdcart.ipl sieht so aus:

<!--spmacro:module(Callback)
$rabattsumme = 0;
sub invoice_addpos {
my $userrabatt = ssp::get_var_user("USERRABATT");
$userrabatt =~ s/,/./g;  # dadurch ist es egal, ob ein Kommabetrag mit "," oder "." eingetragen wird
   if (length($userrabatt)) { # Feld USERRABATT ist nicht leer
                  
   my $ref_gesamt = $_[0];
   my $ref_gesamt_steuer = $_[2];
   my $ust = $_[3]/100;
   my $netto = $_[4];
   my $anzahl = ssp::get_cart_items();   
      for (my $i = 0;$i <= $anzahl;++$i) {
         my ($zahlart) = ssp::get_cart_zahlart();
         my $myrabatt = ssp::get_cart_myrabatt();
         if ($zahlart == 1 && $myrabatt == 0) { # Zahlart "Vorauskasse" gewählt
            my $rabatt = (ssp::get_var_cart('preis',$i) * $userrabatt) / 100;
                           
            $rabattsumme += $rabatt * ssp::get_var_cart('anzahl',$i);
            }
            }
               if ($netto > 0) {
                  $$ref_gesamt -= $rabattsumme;
                  $$ref_gesamt_steuer -= $rabattsumme*$ust;
               } else {
                  $$ref_gesamt -= $rabattsumme;
                  $$ref_gesamt_steuer -= $rabattsumme*(1-1/(1+$ust));
               }
         return 0;
   }   else { # kein spezieller Kundenrabatt eingetragen -> also 4% Rabatt für alle anderen
                  
   my $ref_gesamt = $_[0];
   my $ref_gesamt_steuer = $_[2];
   my $ust = $_[3]/100;
   my $netto = $_[4];
   my $anzahl = ssp::get_cart_items();   
      for (my $i = 0;$i <= $anzahl;++$i) {
         my ($zahlart) = ssp::get_cart_zahlart();
         if ($zahlart == 1) { # Zahlart "Vorauskasse" gewählt
            my $rabatt = (ssp::get_var_cart('preis',$i) * 4) / 100;
                           
            $rabattsumme += $rabatt * ssp::get_var_cart('anzahl',$i);
            }
            }
               if ($netto > 0) {
                  $$ref_gesamt -= $rabattsumme;
                  $$ref_gesamt_steuer -= $rabattsumme*$ust;
               } else {
                  $$ref_gesamt -= $rabattsumme;
                  $$ref_gesamt_steuer -= $rabattsumme*(1-1/(1+$ust));
               }
         return 0;
      }   
   }
-->

<!--spmacro:module(rabatt)
sub rsumme  {
if ($Callback::rabattsumme >0) {
   main::mprint("-" . main::fp($Callback::rabattsumme));
   return 0;
   }
}
-->


An  welcher Stelle muss ich denn den Code für die Nicht-Berechnung der MwSt eintragen? Die 1. Zeile scheint ja identisch zu sein.
Was muss ich eingeben, wenn ich mehrere Lieferzonen habe, für die die MwSt nicht berechnet werden soll?

Liebe Grüße - parimo

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1337
  • Lob: 18
    • ShopPilot AT
Re: Mehrwertfreie Berechnung für Nicht-EU-Länder
« Antwort #5 am: September 23, 2011, 19:21:04 »
Hallo parimo,

invoice_addpos != invoice_addpos_final !
(übersetzt für "Nichtprogrammierer" ;)  invoice_addpos ist nicht das selbe wie invoice_addpos_final)

invoice_addpos
Zitat
Diese Funktion dient dazu innerhalb der Summenberechnung der Rechnung eine zusätzliche Rechnungsposition zu berücksichtigen. Dazu müssen die als Referenz übergebenen Variablen der Summenberechnung modifiziert werden. Dies sind die Gesamtsumme, die Gesamtsumme des Nettowertes und die Gesamtsumme der Steuer. Als zusätzliche Informationen wird der Umsatzsteuersatz 1  und  ein Flag übergeben, welches anzeigt, ob eine Nettorechnung vorliegt.

invoice_addpos_final
Zitat
Die Parameter entsprechen der Funktion invoice_addpos() und zusätzlich Versandkosten, Mindermengenzuschlag und Zahlungskosten.
Im Unterschied zu invoice_addpos() wird jedoch die Veränderung der Rechnungssummen nach der Berechnung aller übrigen Kosten (Versand, Zahlung) und Gutschriften (z.B. Rabatte) berechnet

Du schreibst also das Callback:invoice_addpos_final komplett so wie's im Handbuch steht zusätzlich in die stdcart.ipl und veränderst nichts an dem Callback:invoice_addpos

<!--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 10 die Zahlungszonen-ID für ein Land ohne Mwst. Berechnung ist
  if ($wert == 10) {
     $$ref_gesamt -= $$ref_gesamt_steuer;
     $$ref_gesamt_steuer = 0;
  }
  return 0;
}
-->

$wert == 10  ->  die "10" ersetzt Du mit Deiner Lieferzonennr.
Wenn mehrere Zonen steuerfrei sein sollen, trägst Du das so ein:

  if ($wert == 10 || $wert == 3 || $wert == 12) { ...

Offline parimo

  • Full Member
  • ***
  • Beiträge: 104
  • Lob: 0
Re: Mehrwertfreie Berechnung für Nicht-EU-Länder
« Antwort #6 am: September 23, 2011, 19:53:39 »
Wow, danke - hat geklappt.

Liebe Grüße
parimo

Offline parimo

  • Full Member
  • ***
  • Beiträge: 104
  • Lob: 0
Re: Mehrwertfreie Berechnung für Nicht-EU-Länder
« Antwort #7 am: Oktober 04, 2011, 23:38:09 »
Nein, hat doch nicht geklappt.
Habe gerade eine Bestellung aus der Schweiz bekommen:
- in der Spalte "Einzelpreis" werden die Bruttopreise ausgewiesen
- in der Spalte "MwSt" steht jeweils 19%
- der Gesamtpreis ist der Bruttopreis, nur wird jetzt die MwSt nicht mehr gesondert ausgewiesen.
Wie bekomme ich das jetzt hin, dass auch jeweils die Nettopreise ausgewiesen und vor allem auch berechnet werden?

LG - parimo


xx
Berechnung Nettobetrag bei Gutscheinen in Prozent

Begonnen von MichaelSchmitt

4 Antworten
3625 Aufrufe
Letzter Beitrag April 19, 2009, 15:04:21
von MichaelSchmitt
xx
Nicht zugeordnet!

Begonnen von jg

1 Antworten
3611 Aufrufe
Letzter Beitrag August 28, 2006, 19:57:30
von admin
xx
Warum PERL und nicht PHP

Begonnen von hop

5 Antworten
13181 Aufrufe
Letzter Beitrag März 04, 2009, 17:56:09
von admin
xx
Ablage, Nicht zugeordnet!

Begonnen von jg

2 Antworten
3614 Aufrufe
Letzter Beitrag April 24, 2003, 13:47:06
von jg