Shopsystem ShopPilot

ShopPilot => Visual Forms => Thema gestartet von: db am Januar 26, 2010, 12:07:52

Titel: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: db am Januar 26, 2010, 12:07:52
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
Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: admin am Januar 27, 2010, 10:31:56
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

Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: dobra am Januar 27, 2010, 11:43:33
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?
Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: admin am Januar 27, 2010, 12:29:56

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 ?
Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: dobra am Januar 27, 2010, 12:36:46
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__
Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: admin am Januar 27, 2010, 12:52:58
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
Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: dobra am Januar 27, 2010, 12:58:16
Zitat
Am 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?
Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: admin am Januar 27, 2010, 13:07:04
}
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;
}
-->

Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: admin am Januar 27, 2010, 13:13:26
Nachtrag: Die Callback-Funktion muss invoice_addpos_final sein und nicht invoice_addpos
Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: dobra am Januar 27, 2010, 13:20:08
Zitat
Die 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!!!
Titel: Re: "Fehlende Daten???" in der Bestellhistorie
Beitrag von: db am Februar 01, 2010, 15:40:00
Dank an hop.

werde das mal mit den Feldern in Angriff nehmen.

db