"Fehlende Daten???" in der Bestellhistorie

Begonnen von db, Januar 26, 2010, 12:07:52

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

db

Hallo!

Wir basteln gerade an unserer Bestellhistorie.
So weit so gut.

Wir hätten gerne nicht nur die Summe der Artikel als Preis dargestellt, sondern auch die Gesamtsumme, die Versandkosten etc. .
Leider finden ich nirgends ein Hinweis dafür, wo sich die Werte verstecken. In der Datenbank stehen nur die Artikkel mit Preisen.
Ich habe auch die Spalte SAVECART in der Tabell ORDERS auseinandergenommen und auch die Bestelldatei im Ordner cart auf dem Server.

Nirgends wird etwas darüber gespeichert.
Sobald man aber die Daten mit dem Work Center abgleicht, sind die gewünschten Werte da.
Wo finde ich diese denn auf dem Server?

Ich hoffe Ihr wisst was ich meine.

Im voraus Danke

db

admin

Hallo,

man muss bei den Auftragsdaten entsprechende benutzerdef. Felder anlegen. Die Namen sind festgelegt:
XMINDERMENGE = 0
XMYRABATT = 0
XRABATT = 0
XTAX0 = 0
XTAX1 = 0
XTAX2 = 0
XTAXP0 = 19.000000
XTAXP1 = 7.000000
XTAXP2 = 1.000000
XTOTALSUM = 0
XTOTSUMNET = 0
XVERSAND = 0
XZAHLUNG = 0

Sind diese Felder vorhanden, werden sie auch gefüllt.
Man benötigt mindestens die 3.02.01, damit das funktioniert.

Gruss hop


dobra

Hallo hop,

Danke für den Hinweis!
wollte schon lange meine Auftragsdetailseite wie den WK anzeigen  :)

allerdings verwende ich "gewichtsabhängige Versandkosten"
<!--spmacro:include(bestellposition.ipl)-->
<!--spmacro:module(defs)
#Versandkosten abhängig vom Gewicht
   my ($zone) = ssp::get_cart_zone();
   if ($zone == 1) {$verskosttab = [
[0,0,0],[1,9999999999999,4.90]
];}
   if ($zone >= 2) {$verskosttab =[
[0,0,0],[1,9999999999999,7.90]
];}
-->


und da wird leider im XVERSAND-Feld 0 ausgewiesen.

Kann ich dieses Feld irgendwie mit einem hidden input dennoch mit den Versandkosten füllen?
mfG
dobra

admin

Zitat von: dobra am Januar 27, 2010, 11:43:33

und da wird leider im XVERSAND-Feld 0 ausgewiesen.

Kann ich dieses Feld irgendwie mit einem hidden input dennoch mit den Versandkosten füllen?
Das sollte gehen.
Aber wenn die Versandkosten korrekt im WK angezeigt werden, müßte auch XVERSAND  stimmen.
Mit welchem Callback wird die Berechnung der Versk. aufgerufen ?

dobra

das Script steht in stdall


<!--spmacro:module(Callback)
$vsumme = 0;
$gewichtsumme =0;
$rabattsumme = 0;
sub invoice_addpos {
my $ref_gesamt = $_[0];
my $ref_gesamt_steuer = $_[2];
my $anzahl = ssp::get_cart_items();
my $ref_gesamt = $_[0];
my $ust = $_[3]/100;
my $netto = $_[4];

($sec,$min,$hour,$mday,$mon,$year) = localtime(time);
$mon += 1; $year += 1900; # Y2K
my $datum = sprintf("%02d%02d",$mon,$mday);

for (my $i = 0;$i <= $anzahl;++$i) {
my $wert = ssp::get_var_cart('RABKLASSE',$i) ;
my $tag = ssp::get_var_cart('DATUM',$i);
if ($datum == $tag){
$rabattsumme += $wert * ssp::get_var_cart('preis',$i) *
ssp::get_var_cart('anzahl',$i); }
}
if ($netto > 0) {
$$ref_gesamt = $$ref_gesamt - $rabattsumme;
$$ref_gesamt_steuer = $$ref_gesamt_steuer - ($rabattsumme*$ust);
} else {
$$ref_gesamt = $$ref_gesamt - $rabattsumme;
$$ref_gesamt_steuer = $$ref_gesamt_steuer - ($rabattsumme*(1-1/(1+$ust)));
}

my $total = ssp::get_wktotalsum();
my $versand = $Callback::vsumme;
my $vorausk = ssp::get_cart_zahlartbetrag;
my $warenwert = ($total - $versand) - $vorausk;
if ($warenwert >=100) { $wert = 0;
}else {
my $ust = $_[3]/100;
my $netto = $_[4];
for (my $i = 0;$i <= $anzahl;++$i) {
my $wert = ssp::get_var_cart('anzahl',$i)*ssp::get_var_cart('GEWICHT',$i);
$gewichtsumme += $wert;
}
}
foreach my $i (@{$defs::verskosttab}) {
ssp::trace("$i->[0] $i->[1] $i->[2]\n");
if (($i->[0] <= $gewichtsumme) && ($gewichtsumme < $i->[1]) ) {
$vsumme = $i->[2];
break;
}
}
if ($netto > 0) {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*$ust;
} else {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*(1-1/(1-$ust));
}
ssp::trace("+++++ invoice_addpos $$ref_gesamt $$ref_gesamt_netto
$$ref_gesamt_steuer\n");
return 0;
}
-->

<!--spmacro:module(versk)
# Gesamtsumme der Versandkosten
sub versk {
    my ($id,$txt) = ssp::get_cart_zahlart();
    if (($id == 1)||($id == 2)||($id == 3)||($id == 4)||($id == 1001)) {
main::mprint(main::fp($Callback::vsumme));
}
}
...


Ausgabe im WK, den Folgeseiten und der Bestelldatenvorlage mit
__versk::versk__
mfG
dobra

admin

Die Callback-Funktion  invoice_addpos () hat mittlerweile 3 zusätzliche Paramater (ist wahrscheilich in der Doku vergessen worden).

Und zwar versandbetrag, minderbetrag und zahlkosten.

Man schreibt also:

sub invoice_addpos {
my $ref_gesamt = $_[0];
my $ref_gesamt_steuer = $_[2];
my $anzahl = ssp::get_cart_items();
my $ref_gesamt = $_[0];
my $ust = $_[3]/100;
my $netto = $_[4];
                my $versandbetrag = $_[5];
                my $minderbetrag = $_[6];
                my $zahlkosten = $_[7];



Am Ende der Funktion muss man dafür sorgen dass $$versandbetrag richtig gestetzt wird.

Gruss hop

dobra

ZitatAm Ende der Funktion muss man dafür sorgen dass $$versandbetrag richtig gestetzt wird.

und wie mache ich das "richtig"

könnten Sie bitte mal ein Beispiel posten?

      if ($netto > 0) {
         $$ref_gesamt += $vsumme;
         $$ref_gesamt_steuer += $vsumme*$ust;
      } else {
         $$ref_gesamt += $vsumme;
         $$ref_gesamt_steuer += $vsumme*(1-1/(1-$ust));
      }
      ssp::trace("+++++ invoice_addpos $$ref_gesamt $$ref_gesamt_netto
      $$ref_gesamt_steuer\n");         
   return 0;

WO/WIE soll ich da das $$versandbetrag dazuschreiben?
mfG
dobra

admin


}
if ($netto > 0) {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*$ust;
} else {
$$ref_gesamt += $vsumme;
$$ref_gesamt_steuer += $vsumme*(1-1/(1-$ust));
}
                        $$versandbetrag = $vsumme;
ssp::trace("+++++ invoice_addpos $$ref_gesamt $$ref_gesamt_netto $$ref_gesamt_steuer\n");
return 0;
}
-->



admin

Nachtrag: Die Callback-Funktion muss invoice_addpos_final sein und nicht invoice_addpos

dobra

ZitatDie Callback-Funktion muss invoice_addpos_final  sein und nicht invoice_addpos
ah ja - DAS war also mein Fehler  :(
war gerade am Verzweifeln, weil mit invoice_addpos die Versandkosten einfach nicht in die DB geschrieben wurden....

DANKE hop!!!
mfG
dobra

db

Dank an hop.

werde das mal mit den Feldern in Angriff nehmen.

db