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

Reply via email to