public function getMergedMaintenances($table, $id) { if ($table == 'loans') { $sql = "SELECT * , exists( select 1 from multimedia where referenced_relation='collection_maintenance' and record_id = cm.id) as with_multimedia\n FROM collection_maintenance cm where referenced_relation='loans' and record_id = :id \n\n UNION ALL\n\n SELECT * , exists( select 1 from multimedia where referenced_relation='collection_maintenance' and record_id = cm.id) as with_multimedia\n FROM collection_maintenance cm where referenced_relation='loan_items' and \n record_id in (select id from loan_items where loan_ref = :id)\n ORDER BY modification_date_time DESC\n "; $conn_MGR = Doctrine_Manager::connection(); $conn = $conn_MGR->getDbh(); $statement = $conn->prepare($sql); $statement->execute(array(':id' => $id)); $res = $statement->fetchAll(PDO::FETCH_ASSOC); } if ($table == 'loan_items') { $sql = "SELECT * , exists( select 1 from multimedia where referenced_relation='collection_maintenance' and record_id = cm.id) as with_multimedia\n FROM collection_maintenance cm where referenced_relation='loans' and record_id = (select loan_ref from loan_items where id = :id) \n\n UNION ALL\n\n SELECT * , exists( select 1 from multimedia where referenced_relation='collection_maintenance' and record_id = cm.id) as with_multimedia\n FROM collection_maintenance cm where referenced_relation='loan_items' and \n record_id = :id\n ORDER BY modification_date_time DESC\n "; $conn_MGR = Doctrine_Manager::connection(); $conn = $conn_MGR->getDbh(); $statement = $conn->prepare($sql); $statement->execute(array(':id' => $id)); $res = $statement->fetchAll(PDO::FETCH_ASSOC); } $array_results = array(); foreach ($res as $item) { $m = new CollectionMaintenance(); $m->hydrate($item); $array_results[] = $m; } return $array_results; }
public function doMassAction($user_id, $items, $values) { $query = Doctrine_Query::create()->select('id')->from('Specimens s'); $query->andWhere('s.id in (select fct_filter_encodable_row(?,?,?))', array(implode(',', $items), 'spec_ref', $user_id)); $results = $query->execute(); foreach ($results as $result) { $maintenance = new CollectionMaintenance(); $maintenance->fromArray($values); $maintenance->setRecordId($result->getId()); $maintenance->setReferencedRelation("specimens"); $maintenance->save(); } }
public function executeEditMaintenance(sfWebRequest $request) { if ($this->getUser()->isA(Users::REGISTERED_USER)) { $this->forwardToSecureAction(); } //We edit a maintenance if ($request->getParameter('id', null) !== null) { $maint = Doctrine::getTable('CollectionMaintenance')->find($request->getParameter('id')); } elseif ($request->getParameter('rid', null) !== null) { $maint = new CollectionMaintenance(); $maint->setRecordId($request->getParameter('rid')); $maint->setReferencedRelation('specimens'); } $this->forward404unless($maint); $this->form = new CollectionMaintenanceForm($maint); if ($request->isMethod('post')) { $this->form->bind($request->getParameter('collection_maintenance')); if ($this->form->isValid()) { try { $this->form->save(); return $this->renderText('ok'); } catch (Doctrine_Exception $ne) { $e = new DarwinPgErrorParser($ne); $error = new sfValidatorError(new savedValidator(), $e->getMessage()); $this->form->getErrorSchema()->addError($error); } } } }