/** * * Enter description here ... * @return unknown_type */ public function deleteExpiredSessionCarts() { $db = JFactory::getDBO(); Citruscart::load('CitruscartQuery', 'library.query'); Citruscart::load("CitruscartHelperBase", 'helpers._base'); $helper = new CitruscartHelperBase(); $query = new CitruscartQuery(); $query->select("tbl.session_id"); $query->from("#__session AS tbl"); $db->setQuery((string) $query); $results = $db->loadAssocList(); $session_ids = $helper->getColumn($results, 'session_id'); $query = new CitruscartQuery(); $query->delete(); $query->from("#__citruscart_carts"); $query->where("`user_id` = '0'"); $query->where("`session_id` NOT IN('" . implode("', '", $session_ids) . "')"); $db->setQuery((string) $query); if (!$db->query()) { $this->setError($db->getErrorMsg()); return false; } $date = JFactory::getDate(); $now = $date->toSql(); // Update config to say this has been done already JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_citruscart/tables'); $config = JTable::getInstance('Config', 'CitruscartTable'); $config->load(array('config_name' => 'last_deleted_expired_sessioncarts')); $config->config_name = 'last_deleted_expired_sessioncarts'; $config->value = $now; $config->save(); return true; }
/** * Adds any necessary _productsquantities records * * @param unknown_type $product_id Product ID * @param unknown_type $vendor_id Vendor ID * @param array $items Array of productQuantities objects * @param unknown_type $csvs CSV output from getProductAttributeCSVs * @return array $items Array of objects */ static function reconcileProductAttributeCSVs($product_id, $vendor_id, $items, $csvs) { // remove extras $done = array(); foreach ($items as $key => $item) { if (!in_array($item->product_attributes, $csvs) || in_array($item->product_attributes, $done)) { $row = JTable::getInstance('ProductQuantities', 'CitruscartTable'); if (!$row->delete($item->productquantity_id)) { JError::raiseNotice('1', $row->getError()); } unset($items[$key]); } $done[] = $item->product_attributes; } // add new ones $existingEntries = CitruscartHelperBase::getColumn($items, 'product_attributes'); JTable::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_citruscart/tables'); foreach ($csvs as $csv) { if (!in_array($csv, $existingEntries)) { $row = JTable::getInstance('ProductQuantities', 'CitruscartTable'); $row->product_id = $product_id; $row->vendor_id = $vendor_id; $row->product_attributes = $csv; if (!$row->save()) { JError::raiseNotice('1', $row->getError()); } $items[] = $row; } } return $items; }