leon 01/08/27 15:21:06
Modified: freetrade2/modules/action ADD_BASKET ADD_FROM_WISHLIST
freetrade2/modules/database/mysql item
freetrade2/modules/screen wishlist
Log:
fixing wishlist for new schema
Revision Changes Path
1.4 +17 -3 freetrade/freetrade2/modules/action/ADD_BASKET
Index: ADD_BASKET
===================================================================
RCS file: /home/cvs/freetrade/freetrade2/modules/action/ADD_BASKET,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ADD_BASKET 2000/11/08 00:54:09 1.3
+++ ADD_BASKET 2001/08/27 22:21:05 1.4
@@ -8,9 +8,12 @@
** Author: Leon Atkinson
** Email: [EMAIL PROTECTED]
** CVS Author: $Author: leon $
- ** Last Revised: $Date: 2000/11/08 00:54:09 $
+ ** Last Revised: $Date: 2001/08/27 22:21:05 $
**
** Log : $Log: ADD_BASKET,v $
+ ** Log : Revision 1.4 2001/08/27 22:21:05 leon
+ ** Log : fixing wishlist for new schema
+ ** Log :
** Log : Revision 1.3 2000/11/08 00:54:09 leon
** Log : *** empty log message ***
** Log :
@@ -34,16 +37,27 @@
else
{
+ //assemble variations
+ $variation = array();
+ if(is_array($inputVariation))
+ {
+ foreach($inputVariation as $v)
+ {
+ //FIXME: note that inputQualifier doesn't exist yet!
+ $variation[$v] = $inputQualifier[$v];
+ }
+ }
+
//check for wishlist button and user being logged in
if(isset($wishlist_button) AND ($UserInfo["ID"]>0))
{
//insert into wishlist
- $success = insertUserSKU($UserInfo["ID"], $sku, 1,
$inputVariation, &$error);
+ $success = insertUserSKU($UserInfo["ID"], $sku, 1, $variation,
&$error);
}
else
{
//insert into basket
- $success = insertSessionSKU($sid, $sku, 1, $inputVariation,
&$error);
+ $success = insertSessionSKU($sid, $sku, 1, $variation,
&$error);
}
//handle success/failure
1.4 +6 -3 freetrade/freetrade2/modules/action/ADD_FROM_WISHLIST
Index: ADD_FROM_WISHLIST
===================================================================
RCS file: /home/cvs/freetrade/freetrade2/modules/action/ADD_FROM_WISHLIST,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ADD_FROM_WISHLIST 2000/11/08 00:54:10 1.3
+++ ADD_FROM_WISHLIST 2001/08/27 22:21:05 1.4
@@ -3,14 +3,17 @@
/*
** File: ADD_FROM_WISHLIST
** Description: add a sku from the wishlist, then remove from wishlist
- ** Version: $Revision: 1.3 $
+ ** Version: $Revision: 1.4 $
** Created: 06/10/1999
** Author: Leon Atkinson
** Email: [EMAIL PROTECTED]
** CVS Author: $Author: leon $
- ** Last Revised: $Date: 2000/11/08 00:54:10 $
+ ** Last Revised: $Date: 2001/08/27 22:21:05 $
**
** Log : $Log: ADD_FROM_WISHLIST,v $
+ ** Log : Revision 1.4 2001/08/27 22:21:05 leon
+ ** Log : fixing wishlist for new schema
+ ** Log :
** Log : Revision 1.3 2000/11/08 00:54:10 leon
** Log : *** empty log message ***
** Log :
@@ -48,7 +51,7 @@
//grab info
$wishlistItem["SKU"] = $v["skuID"];
$wishlistItem["Quantity"] = $v["Quantity"];
- $wishlistItem["Variation"] = $v["Notes"];
+ $wishlistItem["Variation"] = $v["Variation"];
break;
}
}
1.26 +139 -41 freetrade/freetrade2/modules/database/mysql/item
Index: item
===================================================================
RCS file: /home/cvs/freetrade/freetrade2/modules/database/mysql/item,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- item 2001/08/23 23:48:55 1.25
+++ item 2001/08/27 22:21:06 1.26
@@ -2,14 +2,17 @@
/*
** File: item
** Description: functions needed for get info about items
- ** Version: $Revision: 1.25 $
+ ** Version: $Revision: 1.26 $
** Created: 6/10/1999
** Author: Leon Atkinson
** Email: [EMAIL PROTECTED]
** CVS Author: $Author: leon $
- ** Last Revised: $Date: 2001/08/23 23:48:55 $
+ ** Last Revised: $Date: 2001/08/27 22:21:06 $
**
** Log : $Log: item,v $
+ ** Log : Revision 1.26 2001/08/27 22:21:06 leon
+ ** Log : fixing wishlist for new schema
+ ** Log :
** Log : Revision 1.25 2001/08/23 23:48:55 leon
** Log : getting new session_sku_varation schema going
** Log :
@@ -734,7 +737,7 @@
$data = array();
$Query = "SELECT s.ID AS skuID, s.ExternalSKU, s.Name AS skuName,
s.ListPrice, ";
- $Query .= "s.SalePrice, i.Name AS itemName, us.Notes, us.ID AS usID,
us.Quantity ";
+ $Query .= "s.SalePrice, i.Name AS itemName, us.ID AS usID,
us.Quantity ";
$Query .= "FROM user_sku us, sku s, item i ";
$Query .= "WHERE us.SKU = s.ID ";
$Query .= "AND s.Item = i.ID ";
@@ -751,7 +754,7 @@
"skuName"=>$DatabaseRow["skuName"],
"Price"=>$DatabaseRow["SalePrice"],
"itemName"=>$DatabaseRow["itemName"],
- "Notes"=>$DatabaseRow["Notes"],
+
"Variation"=>getUserSKUVariations($DatabaseRow["usID"]),
"usID"=>$DatabaseRow["usID"],
"Quantity"=>$DatabaseRow["Quantity"]
);
@@ -759,6 +762,31 @@
return($data);
}
+
+ function getUserSKUVariations($id)
+ {
+ global $DatabaseLink;
+
+ $data = array();
+
+ $Query = "SELECT Variation, Qualifier " .
+ "FROM user_sku us INNER JOIN user_sku_variation usv ON (us.ID
= usv.UserSKU) " .
+ "WHERE us.ID = $id";
+ if(!($DatabaseResult = mysql_query($Query, $DatabaseLink)))
+ {
+ addToLog("Couldn't get basket contents!",
+ LOG_ANNOYANCE, __FILE__, __LINE__);
+ return(FALSE);
+ }
+
+ while($Row = mysql_fetch_object($DatabaseResult))
+ {
+ $data[$Row->Variation] = $Row->Qualifier;
+ }
+
+ return($data);
+
+ }
/*
@@ -776,7 +804,7 @@
$Query = "SELECT ss.ID, ss.Quantity, ".
"s.ExternalSKU, s.Name AS SKUName, s.ListPrice, s.SalePrice, "
.
- "s.AdditionalShipping, i.Name AS ItemName " .
+ "s.AdditionalShipping, i.Name AS ItemName, s.ID as SKUID " .
"FROM session_sku ss, sku s, item i " .
"WHERE ss.SKU = s.ID " .
"AND s.Item = i.ID " .
@@ -800,7 +828,8 @@
"SKUName"=>$Row->SKUName,
"SalePrice"=>$Row->SalePrice,
"AdditionalShipping"=>$Row->AdditionalShipping,
- "ItemName"=>$Row->ItemName
+ "ItemName"=>$Row->ItemName,
+ "SKUID"=>$Row->SKUID
);
}
@@ -856,21 +885,24 @@
return(FALSE);
}
- $newrec = mysql_insert_id();
-
- $Query = "INSERT INTO session_sku_variation VALUES ";
- foreach($variation as $v)
- {
- $Query .= "($newrec, $v, ''),";
- }
- $Query = substr($Query, 0, -1);
- if(!mysql_query($Query, $DatabaseLink))
+ if(is_array($variation) AND (count($variation) > 0))
{
- addToLog("Couldn't update basket contents!",
- LOG_ANNOYANCE, __FILE__, __LINE__);
- return(FALSE);
+ $newrec = mysql_insert_id();
+
+ $Query = "INSERT INTO session_sku_variation VALUES ";
+ foreach($variation as $v=>$q)
+ {
+ $Query .= "($newrec, $v, '" . addslashes($q) . "'),";
+ }
+ $Query = substr($Query, 0, -1);
+ if(!mysql_query($Query, $DatabaseLink))
+ {
+ addToLog("Couldn't update basket contents! $Query",
+ LOG_ANNOYANCE, __FILE__, __LINE__);
+ return(FALSE);
+ }
}
-
+
return(TRUE);
}
@@ -895,6 +927,17 @@
return(FALSE);
}
+ $Query = "DELETE FROM session_sku_variation " .
+ "WHERE SessionSKU=$id";
+
+ if(!mysql_query($Query, $DatabaseLink))
+ {
+ addToLog("Couldn't update basket contents!",
+ LOG_ANNOYANCE, __FILE__, __LINE__);
+ $error = mysql_error();
+ return(FALSE);
+ }
+
return(TRUE);
}
@@ -934,39 +977,66 @@
function saveSessionSKU($session, $error)
{
global $DatabaseLink;
-
- /*
- ** copy rows over
- */
- $Query = "INSERT INTO user_sku " .
- "SELECT 0, s.User, ss.SKU, ss.Quantity, ss.Notes " .
- "FROM session s, session_sku ss " .
- "WHERE s.ID = ss.Session " .
- "AND s.ID = '$session' ";
- if(!mysql_query($Query, $DatabaseLink))
+ //copy basket into memory
+ $basket = getBasket($session);
+ $basket_id = array();
+
+ //FIXME: this MAY need to be in its own function...
+ $Query = "SELECT User " .
+ "FROM session " .
+ "WHERE ID='$session' ";
+ if(!($DatabaseResult = mysql_query($Query, $DatabaseLink)))
{
- addToLog("Couldn't update wishlist!",
+ addToLog("Couldn't find user ID from session table!",
LOG_ANNOYANCE, __FILE__, __LINE__);
$error = mysql_error();
return(FALSE);
}
+ $Row = mysql_fetch_object($DatabaseResult);
+ $user = $Row->User;
- /*
- ** delete basket
- */
+ //insert basket items one-by-one
+ foreach($basket as $b)
+ {
+ $basket_id[] = $b["ID"];
+ insertUserSKU($user, $b["SKUID"],$b["Quantity"],
$b["Variation"], $error);
+ }
+
+
+ //delete session_sku rows
$Query = "DELETE FROM session_sku " .
- "WHERE Session='$session'";
+ "WHERE ID in (0";
+ foreach($basket_id as $b)
+ {
+ $Query .= ",$b";
+ }
+ $Query .= ")";
+ if(!mysql_query($Query, $DatabaseLink))
+ {
+ addToLog("Couldn't update wishlist! $Query",
+ LOG_ANNOYANCE, __FILE__, __LINE__);
+ $error = mysql_error();
+ return(FALSE);
+ }
+ //delete session_sku_variation rows
+ $Query = "DELETE FROM session_sku_variation " .
+ "WHERE SessionSKU in (0";
+ foreach($basket_id as $b)
+ {
+ $Query .= ",$b";
+ }
+ $Query .= ")";
if(!mysql_query($Query, $DatabaseLink))
{
- addToLog("Couldn't update wishlist!",
+ addToLog("Couldn't update wishlist!",
LOG_ANNOYANCE, __FILE__, __LINE__);
$error = mysql_error();
return(FALSE);
}
-
+
return(TRUE);
}
@@ -982,18 +1052,35 @@
{
global $DatabaseLink;
- $Query = "INSERT INTO user_sku (User, SKU, Quantity, Notes) " .
- "VALUES ($user, $sku, $quantity, " .
- "'".serialize($variation)."')";
+ $Query = "INSERT INTO user_sku (User, SKU, Quantity) " .
+ "VALUES ($user, $sku, $quantity)";
if(!mysql_query($Query, $DatabaseLink))
{
- addToLog("Couldn't update basket contents!",
+ addToLog("Couldn't update basket contents! $Query",
LOG_ANNOYANCE, __FILE__, __LINE__);
$error = mysql_error();
return(FALSE);
}
-
+
+ if(is_array($variation) AND (count($variation) > 0))
+ {
+ $newrec = mysql_insert_id();
+
+ $Query = "INSERT INTO user_sku_variation VALUES ";
+ foreach($variation as $v=>$q)
+ {
+ $Query .= "($newrec, $v, '" . addslashes($q) . "'),";
+ }
+ $Query = substr($Query, 0, -1);
+ if(!mysql_query($Query, $DatabaseLink))
+ {
+ addToLog("Couldn't update basket contents! $Query",
+ LOG_ANNOYANCE, __FILE__, __LINE__);
+ return(FALSE);
+ }
+ }
+
return(TRUE);
}
@@ -1020,6 +1107,17 @@
return(FALSE);
}
+ $Query = "DELETE FROM user_sku_variation " .
+ "WHERE UserSKU = $id ";
+
+ if(!mysql_query($Query, $DatabaseLink))
+ {
+ addToLog("Couldn't update basket contents!",
+ LOG_ANNOYANCE, __FILE__, __LINE__);
+ $error = mysql_error();
+ return(FALSE);
+ }
+
return(TRUE);
}
1.6 +9 -8 freetrade/freetrade2/modules/screen/wishlist
Index: wishlist
===================================================================
RCS file: /home/cvs/freetrade/freetrade2/modules/screen/wishlist,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- wishlist 2000/11/08 00:54:39 1.5
+++ wishlist 2001/08/27 22:21:06 1.6
@@ -2,14 +2,17 @@
/*
** File: wishlist
** Description: show wishlist, allow moving to basket
- ** Version: $Revision: 1.5 $
+ ** Version: $Revision: 1.6 $
** Created: 06/10/1999
** Author: Leon Atkinson
** Email: [EMAIL PROTECTED]
** CVS Author: $Author: leon $
- ** Last Revised: $Date: 2000/11/08 00:54:39 $
+ ** Last Revised: $Date: 2001/08/27 22:21:06 $
**
** Log : $Log: wishlist,v $
+ ** Log : Revision 1.6 2001/08/27 22:21:06 leon
+ ** Log : fixing wishlist for new schema
+ ** Log :
** Log : Revision 1.5 2000/11/08 00:54:39 leon
** Log : *** empty log message ***
** Log :
@@ -59,18 +62,16 @@
/* Output a row for each item in the wishlist. */
foreach($wishlist AS $witem)
{
- $sku_Variation = unserialize($witem["Notes"]);
-
$description = prepareText($witem["itemName"]) . " (" .
prepareText($witem["skuName"]) . ")";
-
- if(is_array($sku_Variation))
+ $v = $witem["Variation"];
+ if(is_array($v))
{
- while(list($key, $variation_ID) = each($sku_Variation))
+ foreach($v as $key=>$value)
{
$description .= "<br>\n";
//FIXME: this tiny bit of HTML needs to be removed
later
- $variation = getVariationInfo($variation_ID);
+ $variation = getVariationInfo($key);
$attribute = getAttributeInfo($variation["Attribute"]);
$description .= prepareText($attribute["Name"] . ": "
. $variation["Name"]);
_______________________________________________
FreeTrade-dev mailing list
[EMAIL PROTECTED]
http://share.whichever.com/mailman/listinfo/freetrade-dev