[1.28] Rabaty automatyczne - uzupełnienie danych wstecz

Przydatne skrypty, programy itp, do współpracy z programem KQS.store

[1.28] Rabaty automatyczne - uzupełnienie danych wstecz

przez pbas » 2008 wrz 21, N 12:01

Napisałem skrypt, który uzupełni te dane. Kto chce, może go użyć - u mnie zadziałał OK. Jednak lepiej na wszelki wypadek zróbcie przed użyciem kopię bazy ;)

Poniższy kod zapiszcie jako np skrypt.php oraz uzupełnijcie zawartość zmiennych $baza_

Wywołanie: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się

Skrypt najpierw pobierze sobie informacje z tablicy rabatów automatycznych a później uzupełni tabelę rabatów. Dlatego tabela rabatów automatycznych, musi być wcześniej uzupełniona.

Kod: Odnośnik widoczny tylko dla zalogowanych użytkowników - Zarejestruj się
<?php

$baza_serwer="SERWER_BAZY";
$baza_nazwa="NAZWA_BAZY";
$baza_login="LOGIN_BAZY";
$baza_haslo="HASLO_BAZY";

$uchwyt_baza=$zapytanie=FALSE;
$rekordy_rabatow=0;

$uchwyt_serwer=mysql_connect("$baza_serwer","$baza_login","$baza_haslo") or
   die("Nie moge sie polaczyc z serwerem SQL<br><br>");

if($uchwyt_serwer){
   $uchwyt_baza=mysql_select_db("$baza_nazwa") or
   die("Nie moge sie polaczyc z baza danych<br><br>");
}

if($uchwyt_baza){
   $zapytanie=mysql_query("select kwota,rabat from kqs_rabaty_auto order by kwota asc") or
   die("Cos nie teges z tabela automatycznych rabatow<br><br>");
}

if($zapytanie){
   $i=1;
   $rekordy_rabatow=mysql_num_rows($zapytanie);
   while($rekord=mysql_fetch_array ($zapytanie)){
      $kwota=$rekord["kwota"];
      $rabat=$rekord["rabat"];
      $k[$i]=$kwota;
      $r[$i]=$rabat;
      $i++;
   }
   echo"Uzupelnilem tablice rabatow - liczba rekordow: $rekordy_rabatow <br><br>";
   mysql_free_result($zapytanie);
}

$zapytanie=FALSE;

if($uchwyt_baza && ($rekordy_rabatow>0)){
   $zapytanie=mysql_query("select u_id,sum(replace(replace(cena,' ',''),',','.')) as wartosc from kqs_zamowienia where kqs_zamowienia.status like 'wys%' group by u_id order by u_id asc") or
   die("Cos nie teges z tabela zamowien<br><br>");
}

if($zapytanie){
   $ile=mysql_affected_rows();
   echo"zapytanie sie wykonalo... liczba rekordow: $ile<br><br>";
   while($rekord=mysql_fetch_array ($zapytanie)){
      $id_klienta=$rekord["u_id"];
      $wartosc=$rekord["wartosc"];
      if($id_klienta>0){
         $i=$rabat=0;
         while($i<=$rekordy_rabatow){
            if($wartosc>$k[$i]){
               $rabat=$r[$i];
            }
            $i++;
         }
         if($rabat>0){
            echo"Klient: $id_klienta --> wartosc zakupow: $wartosc --> udzielony rabat: $rabat<br>";
            $insercik=mysql_query("insert into kqs_rabaty(klient_id,wartosc) values($id_klienta,$rabat)") or
            die("Blad podczas dodawania rabatu dla klienta: id=$id_klienta<br><br>");
         }
      }
   };
   echo"<br><br>KONIEC :)";
   mysql_free_result($zapytanie);
}
mysql_close($uchwyt_serwer);

?>
Avatar użytkownika
Moderator Witryny
 
Autor tematu
Posty: 1154
Dołączył(a): 2008 kwi 29, Wt 10:46
Lokalizacja: Chorzów
Podziękował : 0 razy
Otrzymał podziękowań: 5 razy

Re: Rabaty automatyczne - uzupełnienie danych wstecz

przez marpit » 2008 wrz 24, Śr 07:22

Potwierdzam że działa :)
Moderator Witryny
 
Posty: 1695
Dołączył(a): 2008 maja 05, Pn 16:13
Podziękował : 0 razy
Otrzymał podziękowań: 2 razy

Re: [1.28] Rabaty automatyczne - uzupełnienie danych wstecz

przez marpit » 2009 lut 20, Pt 15:10

Chyba w poprawce 1.28.2 zafundowano nam dodanie tego co zrobił ten skrypt i teraz w sklepie mamy 2 rabaty dla tej samej osoby z tym że jeden ma np 4% a drugi 6% :roll:

Nie wiesz jak sobie z tym poradzić? Trzeba wszystko ręcznie kasować?
Moderator Witryny
 
Posty: 1695
Dołączył(a): 2008 maja 05, Pn 16:13
Podziękował : 0 razy
Otrzymał podziękowań: 2 razy

Re: [1.28] Rabaty automatyczne - uzupełnienie danych wstecz

przez pbas » 2009 lut 20, Pt 16:01

Z tego co zauważyłem, to będzie pod uwagę brany rabat z wyższą wartością. Być może mechanizm w sklepie działa tak, że brany pod uwagę jest ostatni rabat. W każdym bądź razie, jeżeli danemu klientowi zwiększy się rabat w wyniku kolejnych zakupów, to dodawany jest nowy rekord z tym większym rabatem - zatem powinno wszystko działać OK.
Avatar użytkownika
Moderator Witryny
 
Autor tematu
Posty: 1154
Dołączył(a): 2008 kwi 29, Wt 10:46
Lokalizacja: Chorzów
Podziękował : 0 razy
Otrzymał podziękowań: 5 razy

Re: [1.28] Rabaty automatyczne - uzupełnienie danych wstecz

przez marpit » 2009 kwi 28, Wt 13:40

Obecnie pojawiało się spore zamieszanie klient ma np rabat 6% i drugi rabat 6% chcący np zwiększyć itp to nie wiadomo który :) Niektórzy klienci mają po 3 rabaty przypisane do jednego konta np 1, 2, 6...
Ten skrypt zadziałał tylko raz na początku czy ciągle działa ? :)
Czy ewentualnie można go skasować ze sklepu?
Moderator Witryny
 
Posty: 1695
Dołączył(a): 2008 maja 05, Pn 16:13
Podziękował : 0 razy
Otrzymał podziękowań: 2 razy

Re: [1.28] Rabaty automatyczne - uzupełnienie danych wstecz

przez pbas » 2009 sie 25, Wt 17:10

Ten skrypt działa wyłączenie wówczas, gdy go sam wywołasz - nie działa w tle itp

To, że rabaty są wielokrotnie przypisane klientowi, to cecha skryptu KQS.store. Kolejne, większe rabaty nie aktualizują poprzedniego rabatu, ale są dopisywane jako nowy rekord. Skrypt KQS.store zapewne uwzględnia ostatni, dodany rekord z rabatem. Zatem wszystko jest w porządku.
Avatar użytkownika
Moderator Witryny
 
Autor tematu
Posty: 1154
Dołączył(a): 2008 kwi 29, Wt 10:46
Lokalizacja: Chorzów
Podziękował : 0 razy
Otrzymał podziękowań: 5 razy


Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości