Autor Thema: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"  (Gelesen 8935 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« am: November 01, 2008, 15:43:30 »
Hallo,

ich habe mal wieder ein "verzwicktes" Problem  ;)

Die Aufgabe:
Monatsaktion -  bei Kauf von mindestens 5 (gleichen oder verschiedenen beliebigen) Artikeln eines Herstellers 10% Rabatt.
Der rabattierte Preis soll (in Form von "alter Preis / Aktionspreis") aber nicht nur im WK angezeigt und berechnet werden, sondern auch auf den Produktseiten.

Soweit funktioniert das auch alles schon :D
Da ich die Anzahl der bereits bestellten Artikel von Herstelle "X" aber nur im WK auslesen kann, habe ich das so gelöst, daß diese Anzahl in die Warenkorbdatei geschrieben wird und im  sub modify_db_price Callback abgefragt werden kann.
ABER hier liegt das Problem  ???

sub calc1 { # alle Artikel eines Herstellers minus x% ab x Stueck
my $p = $_[0];
my $artid = $_[1];
    my $pre = ssp::db_get_prefix();
    my $MERCH = $pre . "MERCH";
    ssp::readSQLData(qq|SELECT AKTIMARKE, ABSTUECK FROM $MERCH WHERE STANDARD=1|,  "AKTIMARKE", "ABSTUECK");

    my $pf = ssp::get_var_db('AKTIFAKTOR',0); # Preisfaktor vom benutdef.  Feld des Haendlers holen
    my $marke = ssp::get_var_db('AKTIMARKE',0);
    my $von = ssp::get_var_db('AKTIONVON',0);
    my $bis = ssp::get_var_db('AKTIONBIS',0);
    my $abstueck = ssp::get_var_db('ABSTUECK',0);
if (!length($abstueck)) {$abstueck = 0}
my $sum = ssp::cart_read_var('aktistueck');
    ($sec,$min,$hour,$mday,$mon,$year) = localtime(time);
    $mon += 1; $year += 1900; # Y2K
    my $datum = sprintf("%04d%02d%02d",$year,$mon,$mday);
   
    my $ITEM = $pre . "ITEM";
    my $SITM = $pre . "SITM";
    ssp::readSQLData("SELECT FIRMA FROM $ITEM WHERE ITEMID='$artid' UNION SELECT FIRMAV FROM $SITM WHERE ITEMID='$artid'","FIRMA");
    my $artikel = ssp::get_var_db('FIRMA',0);
    if($artikel ne $ssp::undefined && $artikel ne "" && $sum >= $abstueck){
        if ($marke ne $artikel || ($datum <= $von && $datum >= $bis))  {
            $pf = 1;   
        }
        return ($p*$pf);
    }
    else
    {
        return $p;
    }
}

Obwohl der aktuelle Wert sofort in der Cart-Datei steht, wird er erst bei nochmaligem Laden des WK bei der Abfrage my $sum = ssp::cart_read_var('aktistueck'); berücksichtigt   :(

mt hatte mal ein ähnliches Problem mit sub invoice_addpos_final ....
ahe hat das dann irgendwie gelöst - vielleicht geht das auch für mein Problem und jemand verrät mir die Lösung?

Nachtrag (editiert):
Es hat offensichtlich garnichts mit cart_read_var zu tun ...
Wenn ich diesen Wert auslese, wird er sofort - also bei Artikel in WK legen oder Menge ändern - korrekt ausgegeben
<!--spmacro:module(show)
sub test {
my $sum = ssp::cart_read_var('aktistueck');
main::mprint $sum;
}
-->
Das Problem ist also scheinbar das Callbackscript, das erst nach dem Laden der Seite ausgeführt wird  :-\
<!--spmacro:module(Callback)            
sub modify_db_price {
...
(steht in stdall)

Wie kann ich das lösen?

Linkback: https://www.shoppilot.net/pf/index.php?topic=1153.0
« Letzte Änderung: November 02, 2008, 09:36:03 von dobra »
mfG
dobra

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #1 am: November 04, 2008, 00:18:25 »
nach oben schieb - hat wirklich niemand einen Lösungsvorschlag?

Offline mt

  • Jr. Member
  • **
  • Beiträge: 57
  • Lob: 0
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #2 am: November 04, 2008, 10:47:27 »
Hallo dobra,

Zitat
mt hatte mal ein ähnliches Problem mit sub invoice_addpos_final ....

wir hatten doch bei meinem Problem eine Brückenseite gebaut.

Heißt auf einer leeren Seite wird diese Funktion ausgeführt und
danach die Weiterleitung auf den Referer gemacht.

Hier nochmal Deine Antwort:
http://www.shoppilot.net/pf/ssp_shop_server_pages/invoiceaddposfinal-t1102.0.html;msg4119#msg4119

Hoffe dass Dir das weiterhilft.

Gruß
mt

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #3 am: November 04, 2008, 10:51:20 »
Hallo mt,

nein, in diesem Fall kann ich leider keine Brückenseite verwenden, da ich das Problem ja nicht nur bei Artikelanzahl im WK ändern habe, sondern auch wenn ein Artikel von einer beliebigen Detailseite aus in den WK gelegt wird.

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #4 am: November 04, 2008, 11:27:55 »
Hallo dobra,

habe mir das Problem mal angeschaut (in einem Demoshop) und kann folgendes festellen:

- beim Aufruf des Callbacks ist die Warenkorbdatei aktuell (heisst: beinhaltet neue Artikel)
- ssp::cart_read_var öffnet die Warenkorbdatei beim Funktionsaufruf (heisst: es werden die aktuellen Daten auch zurückgegeben)
- modify_db_price wird immer aufgerufen BEVOR irgendetwas ausgegeben wird (heisst: zum Zeitpunkt der Ausgabe wurde das Callback schon ausgeführt)

Folglich scheint irgendwo anders noch ein Fehler aufzutreten.
Ich würde empfehlen im Callback mal genaue Logausgaben (plog) einzubauen, sodass Sie nachvollziehen können,
wann welche Variablen welchen Inhalt haben und welcher Programmablauf dadurch erfolgt.

Bsp (natürlich noch zu komplettieren ;)):
my $artikel = ssp::get_var_db('FIRMA',0);
    main::plog("D, artikel=$artikel\n");
    if($artikel ne $ssp::undefined && $artikel ne "" && $sum >= $abstueck){
        main::plog("D, zweig1 (sum=$sum; datum=$datum)\n");
        if ($marke ne $artikel || ($datum <= $von && $datum >= $bis))  {
            $pf = 1;   
        }
        main::plog("D, returning -".($p*$pf)."-\n");
        return ($p*$pf);
    }
    else
    {
        main::plog("D, zweig2 (sum=$sum)\n");
        main::plog("D, returning -$p-\n");
        return $p;
    }
MfG ahe

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #5 am: November 04, 2008, 11:49:25 »
Hallo ahe,

Danke für den Code - hab ihn eingebaut
(Ergebnis kommt per Mail - die Details sind hier vermutlich ausführlich  ;))

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #6 am: November 04, 2008, 21:32:49 »
EDIT - diesen Fehler gefunden   ;)

1) Callback begin_read_template  wird korrekt ausgeführt   :D
- aber
2) modifiy_db_price funktioniert noch immer nicht (erst nach neuladen der WK Seite)  :(
« Letzte Änderung: November 04, 2008, 23:47:23 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #7 am: November 04, 2008, 23:45:54 »
Hallo dobra,

ich tippe immer noch darauf, dass irgendwo die Funktion begin_read_template schon definiert wurde,
und deshalb die 2. (neue) Funktion ignoriert wird.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #8 am: November 04, 2008, 23:49:29 »
Hallo ahe,

hab DIESEN Fehler gefunden und Beitrag gerade editiert - hat sich überschnitten  ;)
Aber Punkt 2) funktioniert leider noch immer nicht  ???

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #9 am: November 05, 2008, 00:02:41 »
Ich schlage vor wir machen morgen per Mail weiter.
Ist doch ein *wenig* speziell Ihr Problem :D

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #10 am: November 05, 2008, 00:07:09 »
OK
gute Nacht
ich mach für heute auch Feieradend  ;)

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Problem mit sub modify_db_price "Nachtrag EDITIERT !!!"
« Antwort #11 am: November 05, 2008, 00:27:13 »
Wünsche ich ebenfalls


xx
"Bild" statt "Titel" in __tab__ anzeigen?

Begonnen von dobra

4 Antworten
7416 Aufrufe
Letzter Beitrag Februar 21, 2008, 15:24:34
von dobra
xx
Problem mit ssp::embedded("search",..)

Begonnen von dobra

4 Antworten
6379 Aufrufe
Letzter Beitrag Januar 24, 2010, 15:07:10
von dobra
question
"(" und ")" nicht anzeigen

Begonnen von dobra

2 Antworten
8360 Aufrufe
Letzter Beitrag Mai 09, 2007, 10:45:31
von dobra
xx
Ich möchte auf der "Danke" Seite den Warenkorb nochmal anzeigen.

Begonnen von admin

0 Antworten
6614 Aufrufe
Letzter Beitrag Mai 24, 2006, 11:12:02
von admin