home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Freeware / Programare / dotproject / modules / projects / projects.class.php < prev    next >
Encoding:
PHP Script  |  2004-01-14  |  2.2 KB  |  78 lines

  1. <?php /* PROJECTS $Id: projects.class.php,v 1.8 2004/01/14 03:11:59 dylan_cuthbert Exp $ */
  2. /**
  3.  *    @package dotProject
  4.  *    @subpackage modules
  5.  *    @version $Revision: 1.8 $
  6. */
  7.  
  8. require_once( $AppUI->getSystemClass ('dp' ) );
  9. require_once( $AppUI->getLibraryClass( 'PEAR/Date' ) );
  10. require_once( $AppUI->getModuleClass( 'tasks' ) );
  11. require_once( $AppUI->getModuleClass( 'companies' ) );
  12.  
  13. /**
  14.  * The Project Class
  15.  */
  16. class CProject extends CDpObject {
  17.     var $project_id = NULL;
  18.     var $project_company = NULL;
  19.     var $project_department = NULL;
  20.     var $project_name = NULL;
  21.     var $project_short_name = NULL;
  22.     var $project_owner = NULL;
  23.     var $project_url = NULL;
  24.     var $project_demo_url = NULL;
  25.     var $project_start_date = NULL;
  26.     var $project_end_date = NULL;
  27.     var $project_actual_end_date = NULL;
  28.     var $project_status = NULL;
  29.     var $project_percent_complete = NULL;
  30.     var $project_color_identifier = NULL;
  31.     var $project_description = NULL;
  32.     var $project_target_budget = NULL;
  33.     var $project_actual_budget = NULL;
  34.     var $project_creator = NULL;
  35.     var $project_active = NULL;
  36.     var $project_private = NULL;
  37.  
  38.     function CProject() {
  39.         $this->CDpObject( 'projects', 'project_id' );
  40.     }
  41.  
  42.     function check() {
  43.     // ensure changes of state in checkboxes is captured
  44.         $this->project_active = intval( $this->project_active );
  45.         $this->project_private = intval( $this->project_private );
  46.  
  47.         return NULL; // object is ok
  48.     }
  49.  
  50. // overload canDelete
  51.     function canDelete( &$msg, $oid=null ) {
  52.         // TODO: check if user permissions are considered when deleting a project
  53.         return true;
  54.         
  55.         // NOTE: I uncommented the dependencies check since it is
  56.         // very anoying having to delete all tasks before being able
  57.         // to delete a project.
  58.         
  59.         /*        
  60.         $tables[] = array( 'label' => 'Tasks', 'name' => 'tasks', 'idfield' => 'task_id', 'joinfield' => 'task_project' );
  61.         // call the parent class method to assign the oid
  62.         return CDpObject::canDelete( $msg, $oid, $tables );
  63.         */
  64.     }
  65.  
  66.     function delete() {
  67.         $sql = "DELETE FROM tasks WHERE task_project = $this->project_id";
  68.         db_exec($sql);
  69.         $sql = "DELETE FROM projects WHERE project_id = $this->project_id";
  70.         if (!db_exec( $sql )) {
  71.             return db_error();
  72.         } else {
  73.             return NULL;
  74.         }
  75.     }
  76. }
  77. ?>
  78.