/**
  * Funzione per ritornare il task array con delle informazioni in più
  */
 private static function getDescribedTaskArray(DBResult $result, Project $active_project, User $logged_user, $items_limit = null)
 {
     $return_value = Tasks::getDescribedTaskArray($result, $active_project, $logged_user, $items_limit);
     // a new array is created
     $nuovo_ritorno = array();
     if ($result instanceof DBResult) {
         $id_assegnatari = array();
         foreach ($result as $row) {
             if ($row['assignee_id'] && !in_array($row['assignee_id'], $id_assegnatari)) {
                 $id_assegnatari[] = $row['assignee_id'];
             }
             //if
         }
         $assegnatari_array = count($id_assegnatari) ? Users::findByIds($id_assegnatari)->toArrayIndexedBy('getId') : array();
         // Referenza &, non c'è copia.
         // Per ognuno aggiungo l'assignee e la data di aggiornamento
         foreach ($return_value as $chiave => &$task) {
             foreach ($result as $row) {
                 //copio i vecchi valori
                 foreach ($task as $k => $v) {
                     $nuovo_ritorno[$chiave][$k] = $v;
                 }
                 //scorro tutto l'array dei risultati per ottenere la riga con il risultato corretto
                 if ($row['id'] == $task['id']) {
                     $nuovo_ritorno[$chiave]['assignee_id'] = $row['assignee_id'] ? $assegnatari_array[$row['assignee_id']] : null;
                     $nuovo_ritorno[$chiave]['updated_on'] = $row['updated_on'] ? datetimeval($row['updated_on']) : $row['created_on'];
                 }
             }
         }
     }
     // if
     return $nuovo_ritorno;
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'parent_id':
             $set = intval($value);
             break;
         case 'parent_type':
             $set = strval($value);
             break;
         case 'name':
             $set = strval($value);
             break;
         case 'mime_type':
             $set = strval($value);
             break;
         case 'size':
             $set = intval($value);
             break;
         case 'location':
             $set = strval($value);
             break;
         case 'attachment_type':
             $set = strval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
         case 'created_by_id':
             $set = intval($value);
             break;
         case 'created_by_name':
             $set = strval($value);
             break;
         case 'created_by_email':
             $set = strval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'parent_id':
             $set = intval($value);
             break;
         case 'message':
             $set = strval($value);
             break;
         case 'created_by_id':
             $set = intval($value);
             break;
         case 'created_by_name':
             $set = strval($value);
             break;
         case 'created_by_email':
             $set = strval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
         case 'last_update_on':
             $set = datetimeval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'user_id':
             $set = intval($value);
             break;
         case 'object_id':
             $set = intval($value);
             break;
         case 'comment':
             $set = strval($value);
             break;
         case 'created_by_id':
             $set = intval($value);
             break;
         case 'created_by_name':
             $set = strval($value);
             break;
         case 'created_by_email':
             $set = strval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'category_id':
             $set = intval($value);
             break;
         case 'type':
             $set = strval($value);
             break;
         case 'name':
             $set = strval($value);
             break;
         case 'body':
             $set = strval($value);
             break;
         case 'mime_type':
             $set = strval($value);
             break;
         case 'visibility':
             $set = intval($value);
             break;
         case 'is_pinned':
             $set = boolval($value);
             break;
         case 'created_by_id':
             $set = intval($value);
             break;
         case 'created_by_name':
             $set = strval($value);
             break;
         case 'created_by_email':
             $set = strval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'company_id':
             $set = intval($value);
             break;
         case 'role_id':
             $set = intval($value);
             break;
         case 'first_name':
             $set = strval($value);
             break;
         case 'last_name':
             $set = strval($value);
             break;
         case 'email':
             $set = strval($value);
             break;
         case 'password':
             $set = strval($value);
             break;
         case 'token':
             $set = strval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
         case 'updated_on':
             $set = datetimeval($value);
             break;
         case 'last_login_on':
             $set = datetimeval($value);
             break;
         case 'last_visit_on':
             $set = datetimeval($value);
             break;
         case 'last_activity_on':
             $set = datetimeval($value);
             break;
         case 'auto_assign':
             $set = boolval($value);
             break;
         case 'auto_assign_role_id':
             $set = intval($value);
             break;
         case 'auto_assign_permissions':
             $set = strval($value);
             break;
         case 'password_reset_key':
             $set = strval($value);
             break;
         case 'password_reset_on':
             $set = datetimeval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'company_id':
             $set = intval($value);
             break;
         case 'group_id':
             $set = intval($value);
             break;
         case 'name':
             $set = strval($value);
             break;
         case 'leader_id':
             $set = intval($value);
             break;
         case 'leader_name':
             $set = strval($value);
             break;
         case 'leader_email':
             $set = strval($value);
             break;
         case 'overview':
             $set = strval($value);
             break;
         case 'status':
             $set = strval($value);
             break;
         case 'type':
             $set = strval($value);
             break;
         case 'default_visibility':
             $set = boolval($value);
             break;
         case 'starts_on':
             $set = dateval($value);
             break;
         case 'completed_on':
             $set = datetimeval($value);
             break;
         case 'completed_by_id':
             $set = intval($value);
             break;
         case 'completed_by_name':
             $set = strval($value);
             break;
         case 'completed_by_email':
             $set = strval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
         case 'updated_on':
             $set = datetimeval($value);
             break;
         case 'created_by_id':
             $set = intval($value);
             break;
         case 'created_by_name':
             $set = strval($value);
             break;
         case 'created_by_email':
             $set = strval($value);
             break;
         case 'open_tasks_count':
             $set = intval($value);
             break;
         case 'total_tasks_count':
             $set = intval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'mailbox_id':
             $set = intval($value);
             break;
         case 'state':
             $set = intval($value);
             break;
         case 'response':
             $set = strval($value);
             break;
         case 'sender':
             $set = strval($value);
             break;
         case 'subject':
             $set = strval($value);
             break;
         case 'incoming_mail_id':
             $set = intval($value);
             break;
         case 'project_object_id':
             $set = intval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'parent_id':
             $set = intval($value);
             break;
         case 'project_id':
             $set = intval($value);
             break;
         case 'incoming_mailbox_id':
             $set = intval($value);
             break;
         case 'subject':
             $set = strval($value);
             break;
         case 'body':
             $set = strval($value);
             break;
         case 'headers':
             $set = strval($value);
             break;
         case 'object_type':
             $set = strval($value);
             break;
         case 'state':
             $set = intval($value);
             break;
         case 'created_by_id':
             $set = intval($value);
             break;
         case 'created_by_name':
             $set = strval($value);
             break;
         case 'created_by_email':
             $set = strval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'company_id':
             $set = intval($value);
             break;
         case 'project_id':
             $set = intval($value);
             break;
         case 'currency_id':
             $set = intval($value);
             break;
         case 'language_id':
             $set = intval($value);
             break;
         case 'number':
             $set = strval($value);
             break;
         case 'company_name':
             $set = strval($value);
             break;
         case 'company_address':
             $set = strval($value);
             break;
         case 'comment':
             $set = strval($value);
             break;
         case 'note':
             $set = strval($value);
             break;
         case 'status':
             $set = intval($value);
             break;
         case 'issued_on':
             $set = dateval($value);
             break;
         case 'issued_by_id':
             $set = intval($value);
             break;
         case 'issued_by_name':
             $set = strval($value);
             break;
         case 'issued_by_email':
             $set = strval($value);
             break;
         case 'issued_to_id':
             $set = intval($value);
             break;
         case 'due_on':
             $set = dateval($value);
             break;
         case 'closed_on':
             $set = datetimeval($value);
             break;
         case 'closed_by_id':
             $set = intval($value);
             break;
         case 'closed_by_name':
             $set = strval($value);
             break;
         case 'closed_by_email':
             $set = strval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
         case 'created_by_id':
             $set = intval($value);
             break;
         case 'created_by_name':
             $set = strval($value);
             break;
         case 'created_by_email':
             $set = strval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'type':
             $set = strval($value);
             break;
         case 'source':
             $set = strval($value);
             break;
         case 'module':
             $set = strval($value);
             break;
         case 'project_id':
             $set = intval($value);
             break;
         case 'milestone_id':
             $set = intval($value);
             break;
         case 'parent_id':
             $set = intval($value);
             break;
         case 'parent_type':
             $set = strval($value);
             break;
         case 'name':
             $set = strval($value);
             break;
         case 'body':
             $set = strval($value);
             break;
         case 'tags':
             $set = strval($value);
             break;
         case 'state':
             $set = intval($value);
             break;
         case 'visibility':
             $set = intval($value);
             break;
         case 'priority':
             $set = intval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
         case 'created_by_id':
             $set = intval($value);
             break;
         case 'created_by_name':
             $set = strval($value);
             break;
         case 'created_by_email':
             $set = strval($value);
             break;
         case 'updated_on':
             $set = datetimeval($value);
             break;
         case 'updated_by_id':
             $set = intval($value);
             break;
         case 'updated_by_name':
             $set = strval($value);
             break;
         case 'updated_by_email':
             $set = strval($value);
             break;
         case 'due_on':
             $set = dateval($value);
             break;
         case 'completed_on':
             $set = datetimeval($value);
             break;
         case 'completed_by_id':
             $set = intval($value);
             break;
         case 'completed_by_name':
             $set = strval($value);
             break;
         case 'completed_by_email':
             $set = strval($value);
             break;
         case 'has_time':
             $set = boolval($value);
             break;
         case 'comments_count':
             $set = intval($value);
             break;
         case 'is_locked':
             $set = boolval($value);
             break;
         case 'varchar_field_1':
             $set = strval($value);
             break;
         case 'varchar_field_2':
             $set = strval($value);
             break;
         case 'integer_field_1':
             $set = intval($value);
             break;
         case 'integer_field_2':
             $set = intval($value);
             break;
         case 'float_field_1':
             $set = floatval($value);
             break;
         case 'float_field_2':
             $set = floatval($value);
             break;
         case 'text_field_1':
             $set = strval($value);
             break;
         case 'text_field_2':
             $set = strval($value);
             break;
         case 'date_field_1':
             $set = dateval($value);
             break;
         case 'date_field_2':
             $set = dateval($value);
             break;
         case 'datetime_field_1':
             $set = datetimeval($value);
             break;
         case 'datetime_field_2':
             $set = datetimeval($value);
             break;
         case 'boolean_field_1':
             $set = boolval($value);
             break;
         case 'boolean_field_2':
             $set = boolval($value);
             break;
         case 'position':
             $set = intval($value);
             break;
         case 'version':
             $set = intval($value);
             break;
             //BOF: task 04 | AD
             //case 'category_id':
             //  $set = intval($value);
             //  break;
             //EOF: task 04 | AD
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }
 /**
  * Set value of specific field
  *
  * @param string $name
  * @param mided $value
  * @return mixed
  */
 function setFieldValue($name, $value)
 {
     $real_name = $this->realFieldName($name);
     $set = $value;
     switch ($real_name) {
         case 'id':
             $set = intval($value);
             break;
         case 'name':
             $set = strval($value);
             break;
         case 'created_on':
             $set = datetimeval($value);
             break;
         case 'updated_on':
             $set = datetimeval($value);
             break;
         case 'is_owner':
             $set = boolval($value);
             break;
         case 'is_archived':
             $set = boolval($value);
             break;
     }
     // switch
     return parent::setFieldValue($real_name, $set);
 }