linea21-modules
[ class tree: linea21-modules ] [ index: linea21-modules ] [ all elements ]

Source for file class.project.php

Documentation is available at class.project.php

  1. <?php
  2. /**
  3.  * @package linea21.modules
  4.  * @subpackage project
  5.  * @author linea21 <info@linea21.com>
  6.  * @version $id SVN
  7.  * @access public
  8.  * @license http://opensource.org/licenses/gpl-3.0.html
  9.  *  Project Management
  10.  */
  11.  
  12. class project {
  13.   /* @param
  14.    * */
  15.   var $TDB_PROJECT = T_PROJECT// nom de la table.
  16.   var $ID;
  17.   var $PARENT_ID;
  18.   var $SCALE_ID;
  19.   var $PRIORITY_ID;
  20.   var $THEME_ID;
  21.   var $WORKSHOP_ID;
  22.   var $NAME;
  23.   var $DESCRIPTION;
  24.   var $BODY;
  25.   var $BEGIN_DATE;
  26.   var $ESTIMATED_DATE;
  27.   var $END_DATE;
  28.   var $SDI;
  29.   var $PUBLISHED_DATE;
  30.   var $POSTED_BY;
  31.   var $DATE_CREA;
  32.   var $STATUT;
  33.   var $LAST_MODIFY;
  34.  
  35.  
  36.   /**
  37.    * project::_getDate()
  38.    * date courante et ajout
  39.    *
  40.    * @access private
  41.    * @param int $m chiffre des mois
  42.    * @param int $d chiffre des jours
  43.    * @param int $y chiffre des années
  44.    * @return string $format_date
  45.    * @return 
  46.    */
  47.   function _getDate($m 0$d 0$y 0)
  48.   {
  49.     $format_date mktime(date("H")date("i")date("s")date("m"$mdate("d"date("Y")-1);
  50.     $format_date strftime('%Y-%m-%d %H:%M:%S'$format_date);
  51.  
  52.     return $format_date;
  53.   }
  54.  
  55.   /**
  56.    * project::CheckDataIntegrity()
  57.    * Vérification intégrité des données
  58.    *
  59.    * @access public
  60.    * @param array $table : contient les composants Nécessaires d'un projet
  61.    * @return boolean true
  62.    *  si verifié, sinon string 'message d'erreur'
  63.    */
  64.  
  65.   function CheckDataIntegrity($table)
  66.   {
  67.     if (strlen($table[0]3return _t('project','no_name');
  68.     if (strlen($table[1]3return _t('project','no_description');
  69.     if (strlen($table[2]3return _t('project','no_body');
  70.     if ($table[5<= || !is_numeric($table[5])) return _t('project','no_priority');
  71.     if ($table[4<= || !is_numeric($table[4])) return _t('project','no_scale');
  72.     if(!empty($table[6])) return checkdate_validity($table[6]_t('project','begin_date_err'));
  73.     if(!empty($table[7])) return checkdate_validity($table[7]_t('project','estimated_date_err'));
  74.     if(!empty($table[8])) return checkdate_validity($table[8]_t('project','end_date_err'));
  75.  
  76.     return true;
  77.   }
  78.  
  79.   /**
  80.    * project::AddProject()
  81.    * Ajout d'un projet
  82.    *
  83.    * @access public
  84.    * @param array $table_project : contient les composants d'un projet
  85.    * @param object $sql_object 
  86.    * @return integer $last_id
  87.    */
  88.   function AddProject($table_project$sql_object)
  89.   {
  90.     $table_project=$sql_object->DBescape($table_project);
  91.  
  92.     if ($table_project[0!= ''{
  93.       $this->NAME = strip_input(trim($table_project[0])true);
  94.     }
  95.     if ($table_project[1!= ''{
  96.       $this->DESCRIPTION = strip_input(trim($table_project[1])true);
  97.     }
  98.     if ($table_project[2!= ''{
  99.       $this->BODY = strip_input(trim($table_project[2])true);
  100.     }
  101.     if (is_numeric($table_project[3]&& $table_project[3!= -1{
  102.       $this->PARENT_ID = $table_project[3];
  103.     else {
  104.       $this->PARENT_ID = 0;
  105.     }
  106.     if (is_numeric($table_project[4])) {
  107.       $this->SCALE_ID = $table_project[4];
  108.     }
  109.     if (is_numeric($table_project[5])) {
  110.       $this->PRIORITY_ID = $table_project[5];
  111.     }
  112.     if ($table_project[6!= ''{
  113.       $this->BEGIN_DATE = formatDate($table_project[6]true);
  114.     else {
  115.       $this->BEGIN_DATE = '0001-01-01';
  116.     }
  117.     if ($table_project[7!= ''{
  118.       $this->ESTIMATED_DATE = formatDate($table_project[7]true);
  119.     else {
  120.       $this->ESTIMATED_DATE = '0001-01-01';
  121.     }
  122.     if ($table_project[8!= ''{
  123.       $this->END_DATE = formatDate($table_project[8]true);
  124.     else {
  125.       $this->END_DATE = '0001-01-01';
  126.     }
  127.     if (is_numeric($table_project[9])) {
  128.       $this->POSTED_BY = $table_project[9];
  129.     }
  130.     if ($table_project[10!= ''{
  131.       $this->STATUT = strtoupper($table_project[10]);
  132.     }
  133.     if (is_numeric($table_project[11]&& $table_project[11!= -1{
  134.       $this->THEME_ID = $table_project[11];
  135.     else {
  136.       $this->THEME_ID = 0;
  137.     }
  138.     if (is_numeric($table_project[12]&& $table_project[12!= -1{
  139.       $this->WORKSHOP_ID = $table_project[12];
  140.     else {
  141.       $this->WORKSHOP_ID = 0;
  142.     }
  143.     $this->SDI = $table_project[13];
  144.     if ($this->STATUT == 'P'{
  145.       $this->PUBLISHED_DATE = $this->_getDate();
  146.     else {
  147.       $this->PUBLISHED_DATE = '0001-01-01';
  148.     }
  149.  
  150.     $query "INSERT INTO " $this->TDB_PROJECT . " (project_name, project_description, project_body, ".
  151.     "project_parent_id, project_priority_id, project_scale_id, " .
  152.     "project_begin_date, project_estimated_date, project_end_date, ".
  153.     "project_theme_id, project_workshop_id, ".
  154.     "project_posted_by, project_published_date, " 
  155.     "project_statut, project_date_crea) " 
  156.     "VALUES('" $this->NAME . "', '" $this->DESCRIPTION . "', '" $this->BODY . 
  157.     "', " $this->PARENT_ID . ", " $this->PRIORITY_ID . ", " $this->SCALE_ID . 
  158.     ", '" $this->BEGIN_DATE . "', '" $this->ESTIMATED_DATE . "', '" $this->END_DATE . 
  159.     "', " $this->THEME_ID . ", " $this->WORKSHOP_ID . 
  160.     ", " $this->POSTED_BY . ", '" $this->PUBLISHED_DATE . "' , '" $this->STATUT . 
  161.     "', now());";
  162.      
  163.     $this->ID = $sql_object->DBInsert ($query1);
  164.     $this->_addSDI($sql_object);
  165.  
  166.     return $this->ID;
  167.   }
  168.  
  169.   /**
  170.    * project::DeleteProject()
  171.    * suppression d'un projet
  172.    *
  173.    * @access public
  174.    * @param int $ID : identifiant du projet
  175.    * @param object $sql_object 
  176.    * @return bool $result
  177.    */
  178.  
  179.   function DeleteProject($ID$sql_object)
  180.   {
  181.     $this->ID = $ID;
  182.  
  183.  
  184.     $query "UPDATE " $this->TDB_PROJECT . " set project_statut='E', project_last_modify=NOW() WHERE project_id='" $this->ID . "';";
  185.     $result $sql_object->DBQuery($query);
  186.     if($result{
  187.        $query "DELETE FROM " J_PROJECT_SDI " WHERE jps_project_id='".$this->ID."';";
  188.        $res $sql_object->DBQuery($query);
  189.     }
  190.     if($result{
  191.       $query "UPDATE " $this->TDB_PROJECT . " set project_parent_id=0 WHERE project_parent_id='" $this->ID . "';";
  192.       $result $sql_object->DBQuery($query);
  193.     }
  194.     return $result;
  195.   }
  196.  
  197.   /**
  198.    * project::ModifyProject()
  199.    * modification d'un projet
  200.    *
  201.    * @access public
  202.    * @param integer $ID : identifiant du projet
  203.    * @param object $sql_object 
  204.    * @param array $table_project : contient les composants d'un projet
  205.    * @return boolean $result
  206.    */
  207.   function ModifyProject($ID$table_project$sql_object)
  208.   {
  209.  
  210.     $table_project=$sql_object->DBescape($table_project);
  211.  
  212.     if (is_numeric($ID)) {
  213.       $this->ID = $ID;
  214.     }
  215.  
  216.     if ($table_project[0!= ''{
  217.       $this->NAME = strip_input(trim($table_project[0])true);
  218.     }
  219.     if ($table_project[1!= ''{
  220.       $this->DESCRIPTION = strip_input(trim($table_project[1])true);
  221.     }
  222.     if ($table_project[2!= ''{
  223.       $this->BODY = strip_input(trim($table_project[2])true);
  224.     }
  225.     if (is_numeric($table_project[3]&& $table_project[3!= -1{
  226.       $this->PARENT_ID = $table_project[3];
  227.     else {
  228.       $this->PARENT_ID = 0;
  229.     }
  230.     if (is_numeric($table_project[4])) {
  231.       $this->SCALE_ID = $table_project[4];
  232.     }
  233.     if (is_numeric($table_project[5])) {
  234.       $this->PRIORITY_ID = $table_project[5];
  235.     }
  236.     if ($table_project[6!= ''{
  237.       $this->BEGIN_DATE = formatDate($table_project[6]true);
  238.     else {
  239.       $this->BEGIN_DATE = '0001-01-01';
  240.     }
  241.     if ($table_project[7!= ''{
  242.       $this->ESTIMATED_DATE = formatDate($table_project[7]true);
  243.     else {
  244.       $this->ESTIMATED_DATE = '0001-01-01';
  245.     }
  246.     if ($table_project[8!= ''{
  247.       $this->END_DATE = formatDate($table_project[8]true);
  248.     else {
  249.       $this->END_DATE = '0001-01-01';
  250.     }
  251.     if ($table_project[9!= ''{
  252.       $this->STATUT = strtoupper($table_project[9]);
  253.     }
  254.     if (is_numeric($table_project[11]&& $table_project[11!= -1{
  255.       $this->THEME_ID = $table_project[11];
  256.     else {
  257.       $this->THEME_ID = 0;
  258.     }
  259.     if (is_numeric($table_project[12]&& $table_project[12!= -1{
  260.       $this->WORKSHOP_ID = $table_project[12];
  261.     else {
  262.       $this->WORKSHOP_ID = 0;
  263.     }
  264.     $this->SDI = $table_project[13];
  265.     if ($this->STATUT == 'P'{
  266.       $this->PUBLISHED_DATE = $this->_getDate();
  267.     else {
  268.       $this->PUBLISHED_DATE = '0001-01-01';
  269.     }
  270.  
  271.     $mask $this->_HavePublishedDate($table_project[10]);
  272.  
  273.     $query "UPDATE  " $this->TDB_PROJECT . " SET project_name='" $this->NAME . "', project_description='" $this->DESCRIPTION"', project_body='" $this->BODY . "' , project_parent_id='" $this->PARENT_ID . "', project_scale_id='" $this->SCALE_ID . "', project_theme_id='" $this->THEME_ID ."', project_workshop_id='" $this->WORKSHOP_ID ."', project_priority_id='" $this->PRIORITY_ID . "', project_begin_date='" $this->BEGIN_DATE . "', project_estimated_date='" $this->ESTIMATED_DATE . "', project_end_date='".$this->END_DATE."', project_statut='" $this->STATUT . "', project_last_modify=NOW() " $mask " WHERE project_id='" $this->ID . "';";
  274.     $result $sql_object->DBQuery($query);
  275.     $result $this->_modifySDI($sql_object);
  276.  
  277.     return $result;
  278.   }
  279.  
  280.   /**
  281.    * project::_addSDI()
  282.    * associate indicators to project
  283.    *
  284.    * @access private
  285.    */
  286.   function _addSDI($sql_object{
  287.     foreach ($this->SDI as &$value{
  288.       $query "INSERT INTO "J_PROJECT_SDI " VALUES(".$this->ID.", ".$value.");";
  289.       $result $sql_object->DBQuery($query);
  290.     }
  291.     return $result;
  292.   }
  293.  
  294.   /**
  295.    * project::_modifySDI()
  296.    * associate indicators to project
  297.    *
  298.    * @access private
  299.    */
  300.   function _modifySDI($sql_object{
  301.     $query "DELETE FROM " J_PROJECT_SDI " WHERE jps_project_id='".$this->ID."';";
  302.     $result $sql_object->DBQuery($query);
  303.     if(count($this->SDI)>0{
  304.       $result $this->_addSDI($sql_object);
  305.     }
  306.  
  307.     return $result;
  308.   }
  309.  
  310.   /**
  311.    * project::_HavePublishedDate()
  312.    * Détermine la date de publication a inserer dans la bdd
  313.    *
  314.    * @access private
  315.    * @param string $current_status : statut actuel de l'actualité
  316.    * @return string $sql_mask
  317.    */
  318.   function _HavePublishedDate($current_status)
  319.   {
  320.     switch ($this->STATUT{
  321.       case 'P':
  322.         if ($current_status == 'D'$sql_mask ", project_published_date= NOW()";
  323.         else $sql_mask '';
  324.         break;
  325.       case 'D':
  326.         $sql_mask ", project_published_date= '0001-01-01'";
  327.         break;
  328.       default:
  329.         $sql_mask '';
  330.     }
  331.     return $sql_mask;
  332.   }
  333. }
  334.  
  335. ?>

Documentation generated on Fri, 16 Oct 2009 09:29:59 +0200 by phpDocumentor 1.4.1