Works on enhancement of project tasks

Fix: use task.class.php
This commit is contained in:
Regis Houssin 2010-01-25 11:40:48 +00:00
parent b8954be4e5
commit 4223eacb7a
6 changed files with 56 additions and 110 deletions

View File

@ -157,8 +157,8 @@ class pdf_baleine extends ModelePDFProjects
}
// Complete object by loading several other informations
$tasks = $object->getTasksArray(0,0,1);
$task = new Task($this->db);
$tasksarray = $task->getTasksArray(0,0,1);
$pdf->Open();
$pagenb=0;

View File

@ -35,7 +35,7 @@ $langs->load("projects");
$langs->load('companies');
$projectid = (isset($_GET["id"])?$_GET["id"]:(isset($_POST["id"])?$_POST["id"]:''));
$ref = (isset($_GET["ref"])?$_GET["ref"]:'');
$projectref = (isset($_GET["ref"])?$_GET["ref"]:'');
// If socid provided by ajax company selector
if (! empty($_REQUEST['socid_id']))
@ -45,7 +45,7 @@ if (! empty($_REQUEST['socid_id']))
$_REQUEST['socid'] = $_REQUEST['socid_id'];
}
if ($projectid == '' && $ref == '' && ($_GET['action'] != "create" && $_POST['action'] != "add" && $_POST["action"] != "update" && !$_POST["cancel"])) accessforbidden();
if ($projectid == '' && $projectref == '' && ($_GET['action'] != "create" && $_POST['action'] != "add" && $_POST["action"] != "update" && !$_POST["cancel"])) accessforbidden();
// Security check
if ($user->societe_id) $socid=$user->societe_id;
@ -306,7 +306,7 @@ else
if ($mesg) print $mesg;
$project = new Project($db);
$project->fetch($_GET["id"],$_GET["ref"]);
$project->fetch($projectid,$projectref);
if ($project->societe->id > 0) $result=$project->societe->fetch($project->societe->id);
if ($project->user_resp_id > 0) $result=$project->fetch_user($project->user_resp_id);
@ -323,19 +323,19 @@ else
// Confirmation close
if ($_GET["action"] == 'close')
{
$ret=$html->form_confirm($_SERVER["PHP_SELF"]."?id=".$_GET["id"],$langs->trans("CloseAProject"),$langs->trans("ConfirmCloseAProject"),"confirm_close",'','',1);
$ret=$html->form_confirm($_SERVER["PHP_SELF"]."?id=".$project->id,$langs->trans("CloseAProject"),$langs->trans("ConfirmCloseAProject"),"confirm_close",'','',1);
if ($ret == 'html') print '<br>';
}
// Confirmation reopen
if ($_GET["action"] == 'reopen')
{
$ret=$html->form_confirm($_SERVER["PHP_SELF"]."?id=".$_GET["id"],$langs->trans("ReOpenAProject"),$langs->trans("ConfirmReOpenAProject"),"confirm_reopen",'','',1);
$ret=$html->form_confirm($_SERVER["PHP_SELF"]."?id=".$project->id,$langs->trans("ReOpenAProject"),$langs->trans("ConfirmReOpenAProject"),"confirm_reopen",'','',1);
if ($ret == 'html') print '<br>';
}
// Confirmation delete
if ($_GET["action"] == 'delete')
{
$ret=$html->form_confirm($_SERVER["PHP_SELF"]."?id=".$_GET["id"],$langs->trans("DeleteAProject"),$langs->trans("ConfirmDeleteAProject"),"confirm_delete",'','',1);
$ret=$html->form_confirm($_SERVER["PHP_SELF"]."?id=".$project->id,$langs->trans("DeleteAProject"),$langs->trans("ConfirmDeleteAProject"),"confirm_delete",'','',1);
if ($ret == 'html') print '<br>';
}
@ -345,7 +345,7 @@ else
print '<form method="post" action="fiche.php">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="update">';
print '<input type="hidden" name="id" value="'.$_GET["id"].'">';
print '<input type="hidden" name="id" value="'.$project->id.'">';
print '<table class="border" width="100%">';
@ -378,7 +378,9 @@ else
print $html->select_date($project->date_end?$project->date_end:-1,'projectend');
print '</td></tr>';
print '<tr><td align="center" colspan="2"><input name="update" class="button" type="submit" value="'.$langs->trans("Modify").'"> &nbsp; <input type="submit" class="button" name="cancel" Value="'.$langs->trans("Cancel").'"></td></tr>';
print '<tr><td align="center" colspan="2">';
print '<input name="update" class="button" type="submit" value="'.$langs->trans("Modify").'"> &nbsp; ';
print '<input type="submit" class="button" name="cancel" Value="'.$langs->trans("Cancel").'"></td></tr>';
print '</table>';
print '</form>';
}
@ -434,7 +436,7 @@ else
// Validate
if ($project->statut == 0 && $user->rights->projet->creer)
{
print '<a class="butAction" href="fiche.php?id='.$_GET["id"].'&action=validate"';
print '<a class="butAction" href="fiche.php?id='.$project->id.'&action=validate"';
print '>'.$langs->trans("Valid").'</a>';
}
@ -485,40 +487,6 @@ else
$somethingshown=$formfile->show_documents('project',$filename,$filedir,$urlsource,$genallowed,$delallowed,$project->modelpdf);
/*
* Commandes rattachees
*/
/* if($conf->commande->enabled)
{
$propal->loadOrders();
$coms = $propal->commandes;
if (sizeof($coms) > 0)
{
if ($somethingshown) { print '<br>'; $somethingshown=1; }
print_titre($langs->trans('RelatedOrders'));
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';
print '<td>'.$langs->trans("Ref").'</td>';
print '<td align="center">'.$langs->trans("Date").'</td>';
print '<td align="right">'.$langs->trans("Price").'</td>';
print '<td align="right">'.$langs->trans("Status").'</td>';
print '</tr>';
$var=true;
for ($i = 0 ; $i < sizeof($coms) ; $i++)
{
$var=!$var;
print '<tr '.$bc[$var].'><td>';
print '<a href="'.DOL_URL_ROOT.'/commande/fiche.php?id='.$coms[$i]->id.'">'.img_object($langs->trans("ShowOrder"),"order").' '.$coms[$i]->ref."</a></td>\n";
print '<td align="center">'.dol_print_date($coms[$i]->date,'day').'</td>';
print '<td align="right">'.price($coms[$i]->total_ttc).'</td>';
print '<td align="right">'.$coms[$i]->getLibStatut(3).'</td>';
print "</tr>\n";
}
print '</table>';
}
}
*/
print '</td><td valign="top" width="50%">';
// List of actions on element
@ -529,7 +497,6 @@ else
print '</td></tr></table>';
}
}
$db->close();

View File

@ -550,46 +550,6 @@ class Project extends CommonObject
return $result;
}
/**
* Return array of role of user for each projects
*
* @param unknown_type $user
* @return unknown
*/
function getTasksRoleForUser($user)
{
$tasksrole = array();
/* Liste des taches et role sur la tache du user courant dans $tasksrole */
$sql = "SELECT a.fk_projet_task, a.role";
$sql.= " FROM ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."projet_task_actors as a";
$sql.= " WHERE pt.rowid = a.fk_projet_task";
$sql.= " AND a.fk_user = ".$user->id;
if ($this->id) $sql.= " AND pt.fk_projet =".$this->id;
$resql = $this->db->query($sql);
if ($resql)
{
$num = $this->db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$row = $this->db->fetch_row($resql);
$tasksrole[$row[0]] = $row[1];
$i++;
}
$this->db->free();
}
else
{
dol_print_error($this->db);
}
return $tasksrole;
}
/**
* \brief Return status label of object
* \param mode 0=long label, 1=short label, 2=Picto + short label, 3=Picto, 4=Picto + long label, 5=Short label + Picto

View File

@ -276,7 +276,7 @@ else
// can have a parent that is not affected to him).
$tasksarray=$task->getTasksArray(0, 0, 0);
// We load also tasks limited to a particular user
$tasksrole=($_REQUEST["mode"]=='mine' ? $project->getTasksRoleForUser($user) : '');
$tasksrole=($_REQUEST["mode"]=='mine' ? $task->getTasksRoleForUser($user) : '');
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';

View File

@ -1,7 +1,7 @@
<?php
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2006-2009 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2006-2009 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2006-2010 Regis Houssin <regis@dolibarr.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -44,26 +44,6 @@ $page = is_numeric($page) ? $page : 0;
$page = $page == -1 ? 0 : $page;
/*
* Actions
*/
if ($_POST["action"] == 'createtask' && $user->rights->projet->creer)
{
$project = new Project($db);
$result = $project->fetch($_GET["id"]);
if ($result == 0)
{
$task_parent = $_POST["task_parent"]?$_POST["task_parent"]:0;
$project->CreateTask($user, $_POST["task_name"], $task_parent);
Header("Location:fiche.php?id=".$project->id);
}
}
/*
* View
*/
@ -79,15 +59,15 @@ llxHeader("",$title,"Projet");
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, "", $num);
$project = new Project($db);
$task = new Task($db);
// Get list of tasks in tasksarray and taskarrayfiltered
// We need all tasks (even not limited to a user because a task to user
// can have a parent that is not affected to him).
$tasksarray=$project->getTasksArray(0, 0, 0, $socid);
$tasksarray=$task->getTasksArray(0, 0, 0, $socid);
// We load also tasks limited to a particular user
$tasksrole=($_REQUEST["mode"]=='mine' ? $project->getTasksRoleForUser($user) : '');
$tasksrole=($_REQUEST["mode"]=='mine' ? $task->getTasksRoleForUser($user) : '');
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre">';

View File

@ -497,6 +497,45 @@ class Task extends CommonObject
return $tasks;
}
/**
* Return array of role of user for each projects
*
* @param unknown_type $user
* @return unknown
*/
function getTasksRoleForUser($user)
{
$tasksrole = array();
/* Liste des taches et role sur la tache du user courant dans $tasksrole */
$sql = "SELECT a.fk_projet_task, a.role";
$sql.= " FROM ".MAIN_DB_PREFIX."projet_task as pt";
$sql.= ", ".MAIN_DB_PREFIX."projet_task_actors as a";
$sql.= " WHERE pt.rowid = a.fk_projet_task";
$sql.= " AND a.fk_user = ".$user->id;
if ($this->id) $sql.= " AND pt.fk_projet =".$this->id;
$resql = $this->db->query($sql);
if ($resql)
{
$num = $this->db->num_rows($resql);
$i = 0;
while ($i < $num)
{
$row = $this->db->fetch_row($resql);
$tasksrole[$row[0]] = $row[1];
$i++;
}
$this->db->free();
}
else
{
dol_print_error($this->db);
}
return $tasksrole;
}
}
?>