Refactor basket_adapter

This commit is contained in:
Romain Neutron
2011-12-26 10:50:55 +01:00
parent 6a815c91da
commit 0e6757e2db
11 changed files with 107 additions and 133 deletions

View File

@@ -479,23 +479,6 @@ class record_adapter implements record_Interface, cache_cacheableInterface
*/
public function move_to_collection(collection &$collection, appbox &$appbox)
{
$sql = 'UPDATE sselcont
SET base_id = :base_id
WHERE record_id = :record_id
AND base_id IN (SELECT base_id FROM bas WHERE sbas_id = :sbas_id)';
$params = array(
':base_id' => $collection->get_base_id(),
':record_id' => $this->get_record_id(),
':sbas_id' => $this->get_sbas_id()
);
$stmt = $appbox->get_connection()->prepare($sql);
$stmt->execute($params);
$stmt->closeCursor();
basket_adapter::revoke_baskets_record($this, $appbox);
$sql = "UPDATE record SET coll_id = :coll_id WHERE record_id =:record_id";
$params = array(
@@ -1714,21 +1697,17 @@ class record_adapter implements record_Interface, cache_cacheableInterface
$stmt->execute(array(':record_id' => $this->get_record_id()));
$stmt->closeCursor();
$sql = 'SELECT s.ssel_id, c.sselcont_id, s.usr_id
FROM sselcont c, ssel s
WHERE c.base_id = :base_id AND c.record_id = :record_id
AND s.ssel_id = c.ssel_id';
$stmt = $conn->prepare($sql);
$stmt->execute(array(':record_id' => $this->get_record_id(), ':base_id' => $this->get_base_id()));
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($rs as $row)
$em = bootstrap::getCore()->getEntityManager();
$repository = $em->getRepository('\Entities\BasketElement');
/* @var $repository \Repositories\BasketElementRepository */
foreach($repository->findElementsByRecord($this) as $basket_element)
{
$basket = basket_adapter::getInstance($appbox, $row['ssel_id'], $row['usr_id']);
$basket->remove_from_ssel($row['sselcont_id']);
$em->remove($basket_element);
}
$stmt->closeCursor();
$em->flush();
foreach ($ftodel as $f)
@unlink($f);
@@ -1935,37 +1914,13 @@ class record_adapter implements record_Interface, cache_cacheableInterface
*/
public function get_container_baskets()
{
if ($this->container_basket)
return $this->container_basket;
$appbox = appbox::get_instance();
$session = $appbox->get_session();
$baskets = array();
$sql = 'SELECT s.ssel_id FROM ssel s, sselcont c
WHERE s.ssel_id = c.ssel_id
AND c.base_id = :base_id AND record_id = :record_id
AND usr_id = :usr_id AND temporaryType="0"';
$params = array(
':base_id' => $this->get_base_id()
, ':record_id' => $this->get_record_id()
, ':usr_id' => $session->get_usr_id()
);
$stmt = $appbox->get_connection()->prepare($sql);
$stmt->execute($params);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor();
foreach ($rs as $row)
{
$baskets[$row['ssel_id']] = basket_adapter::getInstance($appbox, $row['ssel_id'], $session->get_usr_id());
}
$this->container_basket = $baskets;
return $this->container_basket;
$Core = bootstrap::getCore();
$em = $Core->getEntityManager();
$repo = $em->getRepository('\Entities\Baskets');
/* @var $$repo \Repositories\BasketRepository */
return $repo->findContainingRecord($this);
}
/**