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();
     }
 }
Esempio n. 3
0
 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);
             }
         }
     }
 }