public function selectOne($object, $where_filter_id = "", $filter_as_string = false)
 {
     if ($object->document_id() !== "") {
         //Check if the user is giving his username and that there is a value
         $tableName = \Applications\PMTool\Helpers\CommonHelper::GetShortClassName($object);
         $sql = 'SELECT * FROM `' . $tableName . '` where `document_id` = :document_id LIMIT 0, 1;';
     } else {
         return NULL;
     }
     $sth = $this->dao->prepare($sql);
     $sth->bindValue(':document_id', $object->document_id(), \PDO::PARAM_INT);
     $sth->execute();
     $sth->setFetchMode(\PDO::FETCH_CLASS | \PDO::FETCH_PROPS_LATE, '\\Applications\\PMTool\\Models\\Dao\\Document');
     $document_out = $sth->fetch();
     $sth->closeCursor();
     return $document_out;
 }
 public function deleteByProjectAndFilters($object, $filters, $projectId)
 {
     $tableName = \Applications\PMTool\Helpers\CommonHelper::GetShortClassName($object);
     $queryArray = array();
     $query = "";
     foreach ($filters as $filterName => $filterValue) {
         $queryArray[] = "`{$filterName}` = '{$filterValue}'";
     }
     $query = implode(" AND ", $queryArray);
     try {
         $sql = $this->dao->query("DELETE tf.* FROM `{$tableName}` tf JOIN `task` t ON t.`task_id` = tf.`task_id` WHERE {$query} AND t.`project_id` = '{$projectId}';");
         $sql->closeCursor();
         return true;
     } catch (Exception $exc) {
         return false;
     }
 }
 public function deleteByFilters($object, $filters)
 {
     $tableName = \Applications\PMTool\Helpers\CommonHelper::GetShortClassName($object);
     $queryArray = array();
     $deleteQuery = "DELETE FROM `{$tableName}` WHERE ";
     foreach ($filters as $filterName => $filterValue) {
         $queryArray[] = "`{$filterName}` = :{$filterName}";
     }
     $query = implode(" AND ", $queryArray);
     $deleteQuery .= $query;
     $sth = $this->dao->prepare($deleteQuery);
     foreach ($filters as $filterName => $filterValue) {
         $sth->bindValue(":{$filterName}", $filterValue, \PDO::PARAM_STR);
     }
     try {
         $sth->execute();
         $sth->closeCursor();
         return true;
     } catch (Exception $exc) {
         return false;
     }
 }
 private function GetTableName($object)
 {
     return \Applications\PMTool\Helpers\CommonHelper::GetShortClassName($object);
 }