BLOG = $BLOGDATA;
$this->max_warenkoerbe = $this->BLOG['geschaeft']['max_warenkoerbe'];
$this->max_warenkoerbe_free = $this->BLOG['geschaeft']['max_warenkoerbe_free'];
$this->max_warenkorb_items = $this->BLOG['geschaeft']['max_warenkorb_items'];
$this->max_warenkorb_items_free = $this->BLOG['geschaeft']['max_warenkorb_items_free'];
$this->kunde = $kunde;
$this->preis=0;
$this->preis_thisshop=0;
$this->preis_othershops=0;
}
################
function getCountWarenkorbsettings()
{
global $prefix;
$q="SELECT COUNT(*) FROM ".$prefix."_blogs_kunden
WHERE
warenkorb_content_items<>''
AND
id_geschaeft='".intval($this->BLOG['geschaeft']['id'])."'
";
$resultID = sql_query($q);
$this->count_warenkoerbe = mysql_result($resultID,0);
$q="SELECT COUNT(*) FROM ".$prefix."_blogs_kunden
WHERE
aktiv_leistung_warenkorb='free'
AND
id_geschaeft='".intval($this->BLOG['geschaeft']['id'])."'
";
$resultID = sql_query($q);
$this->count_warenkoerbe_free = mysql_result($resultID,0);
}
################
function readWarenkorb()
{
$this->preis=0;
$this->preis_thisshop=0;
$this->preis_othershops=0;
if(isset($_COOKIE['warenkorb']))
{
$this->cookie_string = $_COOKIE['warenkorb'];
}else{
$this->cookie_string = '';
}
$this->kunde = fetchKunde($this->kunde['uname'], $this->BLOG['id']);
$this->warenkorb_string = $this->cookie_string.$this->kunde['warenkorb_content_items'];
$tempArr = explode('|',$this->warenkorb_string);
//$this->warenkorb_array = array();
//$this->warenkorb_array_thisshop = array();
//$this->warenkorb_array_othershops = array();
//if(MX_IS_ADMIN)echo $this->warenkorb_string;
foreach($tempArr as $key=>$value)
{
//add item
$value = trim($value);
$tarr = explode('-', $value);
//&& !isset($this->warenkorb_array[$tarr[4]] )
if(isset($tarr) && count($tarr>6) && isset($tarr[4]) )
{
$temp_array = array();
$temp_array['id_produkt']=$tarr[0];
$temp_array['stueckzahl']=$tarr[1];
$temp_array['preis']=$tarr[2];
$temp_array['id_blog']=$tarr[3];
$temp_array['artikelnummer']=$tarr[4];
$temp_array['paketname']=$tarr[5];
$temp_array['time_putintowarenkorb']=$tarr[6];
$temp_array['checksumme_produkt_STATISCH']=$tarr[7];
$temp_array['checksumme_produkt_DYN']=$tarr[8];
$temp_array['id_geschaeft']=$tarr[9];
$temp_array['arr_count']=$key;
// if(MX_IS_ADMIN)echo 'ST: '.$temp_array['stueckzahl'].'
';
if(isset($temp_array) && count($temp_array>6) && $temp_array['stueckzahl']!=0 )
{
// if(MX_IS_ADMIN)echo $temp_array['stueckzahl'];
$artikelnummer = $temp_array['artikelnummer'];
$this->warenkorb_array[$artikelnummer]=$temp_array;
// $this->preis = $this->preis + ($temp_array['preis'] * $temp_array['stueckzahl']);
// if(MX_IS_ADMIN)echo $temp_array['artikelnummer'].$this->preis.'- '.$temp_array['stueckzahl'].'
';
if($temp_array['id_blog']==$this->BLOG['id'])
{
$this->warenkorb_array_thisshop[$artikelnummer]=$temp_array;
// $this->preis_thisshop = $this->preis_thisshop + ($temp_array['preis'] * $temp_array['stueckzahl']);
$this->count_warenkorbitems++;
}else{
$this->warenkorb_array_othershops[$artikelnummer]=$temp_array;
// $this->preis_othershops = $this->preis_othershops + ($temp_array['preis'] * $temp_array['stueckzahl']);
}
}
}
//eof add item
$this->count_warenkorbitems = count($this->warenkorb_array_thisshop);
}
//eof foreach
### preis ##
if(count($this->warenkorb_array) > 0)
foreach($this->warenkorb_array as $artikelnummer => $value)
{
$this->preis = $this->preis + ($this->warenkorb_array[$artikelnummer]['preis'] * $this->warenkorb_array[$artikelnummer]['stueckzahl']);
}
if(count($this->warenkorb_array_thisshop) > 0)
foreach($this->warenkorb_array_thisshop as $artikelnummer => $value)
{
$this->preis_thisshop = $this->preis_thisshop + ($this->warenkorb_array_thisshop[$artikelnummer]['preis'] * $this->warenkorb_array_thisshop[$artikelnummer]['stueckzahl']);
}
if(count($this->warenkorb_array_othershops) > 0)
foreach($this->warenkorb_array_othershops as $artikelnummer => $value)
{
$this->preis_othershops = $this->preis_othershops + ($this->warenkorb_array_othershops[$artikelnummer]['preis'] * $this->warenkorb_array_othershops[$artikelnummer]['stueckzahl']);
}
## ewof preis ###
}
//eof readWarenkorb
################
################
function rewriteWarenkorb_string()
{
$newPstring='';
if(count($this->warenkorb_array) > 0)
foreach($this->warenkorb_array as $artikelnummer => $value)
{
//if(MX_IS_ADMIN)echo $value['stueckzahl'].'-';
if($value['stueckzahl']!=0)
$newPstring.='|'.intval($value['id_produkt']).'-'.intval($value['stueckzahl']).'-'
.$value['preis'].'-'.intval($value['id_blog']).'-'.$value['artikelnummer'].'-'
.$value['paketname'].'-'.$value['time_putintowarenkorb'].'-'.$value['checksumme_produkt_STATISCH']
.'-'.$value['checksumme_produkt_DYN'].'-'.$value['id_geschaeft'];
// if(MX_IS_ADMIN)echo $artikelnummer;
}
//eof foreach
$this->warenkorb_string = $newPstring;
//if(MX_IS_ADMIN)echo $newPstring.'
'.$this->warenkorb_string;
$newPstring='';
if(count($this->warenkorb_array) > 0)
foreach($this->warenkorb_array_thisshop as $artikelnummer => $value)
{
// if(MX_IS_ADMIN)echo $value['stueckzahl'].'-';
if($value['stueckzahl']!=0)
$newPstring.='|'.intval($value['id_produkt']).'-'.intval($value['stueckzahl']).'-'
.$value['preis'].'-'.$this->BLOG['id'].'-'.$value['artikelnummer'].'-'
.$value['paketname'].'-'.$value['time_putintowarenkorb'].'-'.$value['checksumme_produkt_STATISCH']
.'-'.$value['checksumme_produkt_DYN'].'-'.$value['id_geschaeft'];
}
//eof foreach
$this->warenkorb_string_thisshop = $newPstring;
}
//eof SetSession
################
function setSession()
{
return;
//NICHT MACHEN:
$_SESSION['cl_warenkorb']=$this;
$_SESSION['cl_warenkorb']->SetSessionTime = time();
}
//eof SetSession
################
function writeCookie()
{
$fresult = FALSE;
if($this->warenkorb_string!='')
$fresult = setcookie(
'warenkorb',
$this->warenkorb_string,
(time() + $this->cookieExpire_addseconds),
'/',
'.webfan.de',
FALSE,
FALSE
);
//if(MX_IS_ADMIN)echo '
Cookiestring: '.$this->warenkorb_string;
if($this->warenkorb_string!='')
$_COOKIE['warenkorb'] = $this->warenkorb_string;
return $fresult;
}
//eof writeCookie
################
function deleteCookie()
{
$fresult = FALSE;
$fresult = setcookie(
'warenkorb',
'NULL',
(time() - $this->cookieExpire_addseconds),
'/',
'.webfan.de',
FALSE,
FALSE
);
//if(MX_IS_ADMIN)echo '
Cookiestring: '.$this->warenkorb_string;
unset($_COOKIE['warenkorb']);
return $fresult;
}
//eof deleteCookie
function putInto($_PDATA, $kunde)
{
global $prefix;
$report = '
Artikel Nr.'.strip_tags($_PDATA['artikelnummer']).' "'.strip_tags($_PDATA['paketname']).'" in den Warenkorb legen...
';
//$fresult.= '
Fehler: warenkrob->putInto init
';
$save = FALSE;
//$this->warenkorb_string = $_SESSION['cl_warenkorb']->warenkorb_string;
//$this->warenkorb_array = $_SESSION['cl_warenkorb']->warenkorb_array;
//$this->warenkorb_array_thisshop = $_SESSION['cl_warenkorb']->warenkorb_array_thisshop;
//$this->readWarenkorb();
//$this->refreshData();
$produktDB = fetchProdukt(intval($_PDATA['id_produkt']));
if($produktDB == FALSE || !is_array($produktDB))return '
Fehler: warenkrob->putInto FALSE Produkt
';
$checksummeS = makeChecksum_produkt_STATISCH($produktDB);
$checksummeK = makeChecksumme_kunde($kunde);
$checksummeD = makeChecksum_produkt_DYN($produktDB);
$checksummeA = makeChecksum_produkt_ALL($checksummeS, $checksummeD, $checksummeK);
$checksumme = md5('ALLCHECKSUMME: ***'.$checksummeS.'***'.$checksummeK.'***'.$checksummeD.'***'.$checksummeA);
if(
$checksummeS != $_PDATA['checksumme_produkt_s']
)return '
Fehler: warenkrob->putInto falsche Checksumme p_s
';
/*
if(
$checksummeK != $_PDATA['checksumme_produkt_k']
|| isset($_COOKIE['checksummeK']) && $_COOKIE['checksummeK']!=$checksummeK
)return '
Fehler: warenkrob->putInto falsche Checksumme p_k
';
if(
$checksumme != $_PDATA['checksumme']
)$report.= '
Notice: Die Bestelldaten haben sich geändert!
';
if(
$checksummeA != $_PDATA['checksumme_produkt_a']
)$report.= '
Notice: Die Bestelldaten haben sich geändert (2)!
';
*/
if(
$checksummeD != $_PDATA['checksumme_produkt_d']
)$report.= '
Notice: Der Preis des Produktes hat sich seit Warenkorbauswahl geändert!
';
if($this->count_warenkoerbe_free < $this->max_warenkoerbe_free)
{
$save = TRUE;
$aktiv_leistung_warenkorb = 'free';
}
if($save==FALSE && $this->count_warenkoerbe < $this->max_warenkoerbe)
{
$save = TRUE;
$aktiv_leistung_warenkorb = 'aktiviert';
}
/*
if($produktDB['stueckzahl_available']!='menge')
{
$_PDATA['stueckzahl']=1;
}else{
$_PDATA['stueckzahl'] = $_PDATA['stueckzahl'];
}
*/
$_PDATA['stueckzahl'] = $_PDATA['stueckzahl'];
$putIntoTime = time();
$artikelnummer = $produktDB['artikelnummer'];
//if(MX_IS_ADMIN)echo $artikelnummer;
$paketname = str_replace('|', ' ', $produktDB['paketname']);
$paketname = str_replace('-', ' ', $paketname);
// if(MX_IS_ADMIN)echo strip_tags($produktDB['stueckzahl_available'].' - '.$_PDATA['stueckzahl'].' - '.$_POST['stueckzahl']);
if(array_key_exists($artikelnummer, $this->warenkorb_array) )
{
//if(MX_IS_ADMIN)echo 'Artikel vorhanden';
if($produktDB['stueckzahl_available']=='menge')
{
/*
$this->warenkorb_array[$artikelnummer]['preis']=$this->warenkorb_array[$artikelnummer]['preis']
+ ($produktDB['preis'] * intval($_PDATA['stueckzahl']) );
*/
$this->warenkorb_array[$artikelnummer]['stueckzahl']=
$this->warenkorb_array[$artikelnummer]['stueckzahl'] + intval($_PDATA['stueckzahl']);
$this->warenkorb_array[$artikelnummer]['preis'] = ($produktDB['preis'] + $produktDB['preis_custom']) ;
$this->warenkorb_array[$artikelnummer]['id_geschaeft']=$this->BLOG['geschaeft']['id'];
//$this->warenkorb_array_thisshop[$artikelnummer] = $this->warenkorb_array[$artikelnummer];
}
}else{
//if(MX_IS_ADMIN)echo 'Artikel neu';
$this->warenkorb_array[$artikelnummer]=array();
$this->warenkorb_array[$artikelnummer]['id_produkt']=$produktDB['id'];
$this->warenkorb_array[$artikelnummer]['stueckzahl']=intval($_PDATA['stueckzahl']);
$this->warenkorb_array[$artikelnummer]['preis']=($produktDB['preis'] + $produktDB['preis_custom']);
$this->warenkorb_array[$artikelnummer]['id_blog']=$this->BLOG['id'];
$this->warenkorb_array[$artikelnummer]['artikelnummer']=$produktDB['artikelnummer'];
$this->warenkorb_array[$artikelnummer]['paketname']=$paketname;
$this->warenkorb_array[$artikelnummer]['time_putintowarenkorb']=$putIntoTime;
$this->warenkorb_array[$artikelnummer]['checksumme_produkt_STATISCH']=$checksummeS;
$this->warenkorb_array[$artikelnummer]['checksumme_produkt_DYN']=$checksummeD;
$this->warenkorb_array[$artikelnummer]['id_geschaeft']=$this->BLOG['geschaeft']['id'];
}
$this->warenkorb_array_thisshop[$artikelnummer] = $this->warenkorb_array[$artikelnummer];
//echo $this->warenkorb_array_thisshop[$artikelnummer]['stueckzahl'];
$this->count_warenkorbitems=count($this->warenkorb_array_thisshop);
$this->rewriteWarenkorb_string();
if($this->count_warenkorbitems >= $this->max_warenkorb_items)$save=FALSE;
if($save==TRUE)
{
$q="UPDATE ".$prefix."_blogs_kunden
SET
count_courrent_artikel_im_warenkorb='".intval($this->count_warenkorbitems)."',
warenkorb_content_items='".mxAddSlashesForSQL(strip_tags($this->warenkorb_string_thisshop))."',
warenkorb_last_update_timestamp='".time()."',
warenkorb_bestellsumme='".$this->preis_thisshop."',
aktiv_leistung_warenkorb='".mxAddSlashesForSQL(strip_tags($aktiv_leistung_warenkorb))."'
WHERE
id='".intval($kunde['id'])."'
AND
kundennummer='".mxAddSlashesForSQL(strip_tags($kunde['kundennummer']))."'
AND
id_blog='".intval($this->BLOG['id'])."'
AND
id_geschaeft='".intval($this->BLOG['geschaeft']['id'])."'
";
sql_query($q);
//if(MX_IS_ADMIN)echo $q;
if(!mysql_error() )
{
$report.= '
Artikel im persönlichen Warenkorb gespeichert. (Kundendatenbank)
';
}else{
$report.= '
FEHLER beim Speichern im persönlichen Warenkorb! (Kundendatenbank)
';
}
}
//eof save db
$fr =$this->refreshData();
if($fr['setcookie']==FALSE || $fr['setcookie']==0)
{
$report.= '
FEHLER beim Speichern in Warenkorb! (Cookie)
';
}else{
$report.= '
Artikel im Warenkorb gespeichert! (Cookie)
';
}
return $report;
}
//eof putInto
################
function refreshData()
{
$this->readWarenkorb();
$this->rewriteWarenkorb_string();
$fresult = array();
//NICHT MACHEN:
//$this->setSession();
$fresult['setcookie'] = $this->writeCookie();
return $fresult;
}
//eof refreshData
################
function change_stueckzahl($_PDATA, $kunde)
{
global $prefix;
$report = 'Stückzahl ändern...
';
//$fresult.= '
Fehler: warenkrob->putInto init
';
if(!is_numeric($_PDATA['stueckzahl']))return;
$save = FALSE;
$produktDB = fetchProdukt(intval($_PDATA['id_produkt']));
if($produktDB == FALSE || !is_array($produktDB))return '
Fehler: warenkrob->putInto FALSE Produkt
';
$artikelnummer=$produktDB['artikelnummer'];
$checksummeS = makeChecksum_produkt_STATISCH($produktDB);
$checksummeK = makeChecksumme_kunde($kunde);
$checksummeD = makeChecksum_produkt_DYN($produktDB);
$checksummeA = makeChecksum_produkt_ALL($checksummeS, $checksummeD, $checksummeK);
$checksumme = md5('ALLCHECKSUMME: ***'.$checksummeS.'***'.$checksummeK.'***'.$checksummeD.'***'.$checksummeA);
if(
$checksummeS != $_PDATA['checksumme_produkt_s']
)return '
Fehler: warenkrob->putInto falsche Checksumme p_s
';
if(
$checksummeK != $_PDATA['checksumme_produkt_k']
|| isset($_COOKIE['checksummeK']) && $_COOKIE['checksummeK']!=$checksummeK
)return '
Fehler: warenkrob->putInto falsche Checksumme p_k
';
if(
$checksumme != $_PDATA['checksumme']
)$report.= '
Notice: Die Bestelldaten haben sich geändert!
';
if(
$checksummeA != $_PDATA['checksumme_produkt_a']
)$report.= '
Notice: Die Bestelldaten haben sich geändert (2)!
';
if(
$checksummeD != $_PDATA['checksumme_produkt_d']
)$report.= '
Notice: Der Preis des Produktes hat sich seit Warenkorbauswahl geändert!
';
if($this->count_warenkoerbe_free < $this->max_warenkoerbe_free)
{
$save = TRUE;
$aktiv_leistung_warenkorb = 'free';
}
if($save==FALSE && $this->count_warenkoerbe < $this->max_warenkoerbe)
{
$save = TRUE;
$aktiv_leistung_warenkorb = 'aktiviert';
}
if($produktDB['stueckzahl_available']!='menge')
{
$_PDATA['stueckzahl']=1;
}
$this->warenkorb_array[$artikelnummer]=$this->warenkorb_array[$artikelnummer];
$this->warenkorb_array[$artikelnummer]['stueckzahl']=intval($_PDATA['stueckzahl']);
$this->warenkorb_array_thisshop[$artikelnummer] = $this->warenkorb_array[$artikelnummer];
//echo $this->warenkorb_array_thisshop[$artikelnummer]['stueckzahl'];
$this->count_warenkorbitems=count($this->warenkorb_array_thisshop);
$this->rewriteWarenkorb_string();
if($this->count_warenkoerbe_free < $this->max_warenkoerbe_free)
{
$save = TRUE;
$aktiv_leistung_warenkorb = 'free';
}
if($save==FALSE && $this->count_warenkoerbe < $this->max_warenkoerbe)
{
$save = TRUE;
$aktiv_leistung_warenkorb = 'aktiviert';
}
if($this->count_warenkorbitems >= $this->max_warenkorb_items)$save=FALSE;
if($save==TRUE)
{
$q="UPDATE ".$prefix."_blogs_kunden
SET
count_courrent_artikel_im_warenkorb='".intval($this->count_warenkorbitems)."',
warenkorb_content_items='".mxAddSlashesForSQL(strip_tags($this->warenkorb_string_thisshop))."',
warenkorb_last_update_timestamp='".time()."',
warenkorb_bestellsumme='".$this->preis_thisshop."',
aktiv_leistung_warenkorb='".mxAddSlashesForSQL(strip_tags($aktiv_leistung_warenkorb))."'
WHERE
id='".intval($kunde['id'])."'
AND
kundennummer='".mxAddSlashesForSQL(strip_tags($kunde['kundennummer']))."'
AND
id_blog='".intval($this->BLOG['id'])."'
AND
id_geschaeft='".intval($this->BLOG['geschaeft']['id'])."'
";
sql_query($q);
//if(MX_IS_ADMIN)echo $q;
if(!mysql_error() )
{
$report.= '
Artikel im persönlichen Warenkorb gespeichert. (Kundendatenbank)
';
}else{
$report.= '
FEHLER beim Speichern im persönlichen Warenkorb! (Kundendatenbank)
';
}
}
//eof save db
$fr =$this->refreshData();
if($fr['setcookie']==FALSE || $fr['setcookie']==0)
{
$report.= '
FEHLER beim Speichern in Warenkorb! (Cookie)
';
}else{
$report.= '
Artikel im Warenkorb gespeichert! (Cookie)
';
}
return $report;
}
//eof change_stueckzahl
################
function deleteItem($_PDATA, $kunde)
{
global $prefix;
$report = 'Artikel aus dem Warenkorb löschen...
';
//$fresult.= '
Fehler: warenkrob->putInto init
';
$save=FALSE;
$artikelnummer=$_PDATA['artikelnummer'];
//$this->warenkorb_array[$artikelnummer]=array();
//$this->warenkorb_array_thisshop[$artikelnummer]=array();
//$this->warenkorb_array_othershops[$artikelnummer]=array();
//$this->warenkorb_array[$artikelnummer]['stueckzahl']=0;
//$this->warenkorb_array_thisshop[$artikelnummer]['stueckzahl']=0;
//$this->warenkorb_array_othershops[$artikelnummer]['stueckzahl']=0;
if($this->count_warenkorbitems<=1)
{
$this->warenkorb_array = NULL;
$this->warenkorb_array_thisshop = NULL;
$this->warenkorb_array_othershops = NULL;
$this->rewriteWarenkorb_string();
$this->deleteCookie();
}
unset($this->warenkorb_array[$artikelnummer]);
unset($this->warenkorb_array_thisshop[$artikelnummer]);
unset($this->warenkorb_array_othershops[$artikelnummer]);
$this->count_warenkorbitems=count($this->warenkorb_array_thisshop);
$this->rewriteWarenkorb_string();
$this->writeCookie();
if($this->count_warenkoerbe_free < $this->max_warenkoerbe_free)
{
$save = TRUE;
$aktiv_leistung_warenkorb = 'free';
}
if($save==FALSE && $this->count_warenkoerbe < $this->max_warenkoerbe)
{
$save = TRUE;
$aktiv_leistung_warenkorb = 'aktiviert';
}
if($this->count_warenkorbitems >= $this->max_warenkorb_items)$save=FALSE;
if($save==TRUE)
{
$q="UPDATE ".$prefix."_blogs_kunden
SET
count_courrent_artikel_im_warenkorb='".intval($this->count_warenkorbitems)."',
warenkorb_content_items='".mxAddSlashesForSQL(strip_tags($this->warenkorb_string_thisshop))."',
warenkorb_last_update_timestamp='".time()."',
warenkorb_bestellsumme='".$this->preis_thisshop."',
aktiv_leistung_warenkorb='".mxAddSlashesForSQL(strip_tags($aktiv_leistung_warenkorb))."'
WHERE
id='".intval($kunde['id'])."'
AND
kundennummer='".mxAddSlashesForSQL(strip_tags($kunde['kundennummer']))."'
AND
id_blog='".intval($this->BLOG['id'])."'
AND
id_geschaeft='".intval($this->BLOG['geschaeft']['id'])."'
";
sql_query($q);
//if(MX_IS_ADMIN)echo $q;
if(!mysql_error() )
{
$report.= '
Artikel im persönlichen Warenkorb gespeichert. (Kundendatenbank)
';
}else{
$report.= '
FEHLER beim Speichern im persönlichen Warenkorb! (Kundendatenbank)
';
}
}
//eof save db
$GLOBALS['this_shop_kunde'] = fetchKunde($kunde['uname'], $this->BLOG['id']);
$GLOBALS['checksumme_kunde'] = makeChecksumme_kunde($GLOBALS['this_shop_kunde']);
$fr =$this->refreshData();
if($fr['setcookie']==FALSE || $fr['setcookie']==0)
{
$report.= '
FEHLER beim Speichern in Warenkorb! (Cookie)
';
}else{
$report.= '
Artikel im Warenkorb gespeichert! (Cookie)
';
}
return $report;
}
//eof deleteItem
################
}
//eof class
#####################################
?>