Fix: List of actions

New: Add export for particular login
This commit is contained in:
Laurent Destailleur 2008-07-17 16:48:24 +00:00
parent d4a85a6625
commit a6855be45b
4 changed files with 60 additions and 20 deletions

View File

@ -68,7 +68,7 @@ class ActionComm
/** /**
* \brief Constructeur * \brief Constructeur
* \param db Handler d'accès base de donnée * \param db Handler d'acc<EFBFBD>s base de donn<EFBFBD>e
*/ */
function ActionComm($db) function ActionComm($db)
{ {
@ -88,7 +88,7 @@ class ActionComm
* \brief Ajout d'une action en base * \brief Ajout d'une action en base
* \param user auteur de la creation de l'action * \param user auteur de la creation de l'action
* \param notrigger 1 ne declenche pas les triggers, 0 sinon * \param notrigger 1 ne declenche pas les triggers, 0 sinon
* \return int id de l'action créée, < 0 si erreur * \return int id de l'action cr<EFBFBD><EFBFBD>e, < 0 si erreur
*/ */
function add($user,$notrigger=0) function add($user,$notrigger=0)
{ {
@ -198,7 +198,7 @@ class ActionComm
/** /**
* \brief Charge l'objet action depuis la base * \brief Charge l'objet action depuis la base
* \param id id de l'action a récupérer * \param id id de l'action a r<EFBFBD>cup<EFBFBD>rer
*/ */
function fetch($id) function fetch($id)
{ {
@ -446,9 +446,9 @@ class ActionComm
/** /**
* \brief Retourne le libellé du statut de la commande * \brief Retourne le libell<EFBFBD> du statut de la commande
* \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long, 5=Libellé court + Picto * \param mode 0=libell<EFBFBD> long, 1=libell<EFBFBD> court, 2=Picto + Libell<EFBFBD> court, 3=Picto, 4=Picto + Libell<EFBFBD> long, 5=Libell<EFBFBD> court + Picto
* \return string Libellé * \return string Libell<EFBFBD>
*/ */
function getLibStatut($mode) function getLibStatut($mode)
{ {
@ -456,10 +456,10 @@ class ActionComm
} }
/** /**
* \brief Renvoi le libellé d'un statut donné * \brief Renvoi le libell<EFBFBD> d'un statut donn<EFBFBD>
* \param percent Pourcentage avancement * \param percent Pourcentage avancement
* \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long, 5=Libellé court + Picto * \param mode 0=libell<EFBFBD> long, 1=libell<EFBFBD> court, 2=Picto + Libell<EFBFBD> court, 3=Picto, 4=Picto + Libell<EFBFBD> long, 5=Libell<EFBFBD> court + Picto
* \return string Libellé * \return string Libell<EFBFBD>
*/ */
function LibStatut($percent,$mode) function LibStatut($percent,$mode)
{ {
@ -506,7 +506,7 @@ class ActionComm
/** /**
* \brief Renvoie nom clicable (avec eventuellement le picto) * \brief Renvoie nom clicable (avec eventuellement le picto)
* \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul * \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul
* \param maxlength Nombre de caractères max dans libellé * \param maxlength Nombre de caract<EFBFBD>res max dans libell<EFBFBD>
* \param class Force style class on a link * \param class Force style class on a link
* \return string Chaine avec URL * \return string Chaine avec URL
* \remarks Utilise $this->id, $this->code et $this->libelle * \remarks Utilise $this->id, $this->code et $this->libelle
@ -600,6 +600,34 @@ class ActionComm
{ {
if ($key == 'year') $sql.=' AND '; if ($key == 'year') $sql.=' AND ';
if ($key == 'idaction') $sql.=' AND a.id='.$value; if ($key == 'idaction') $sql.=' AND a.id='.$value;
if ($key == 'login')
{
$userforfilter=new User($this->db);
$userforfilter->fetch($value);
$sql.= " AND (";
$sql.= " a.fk_user_author = ".$userforfilter->id;
$sql.= " OR a.fk_user_action = ".$userforfilter->id;
$sql.= " OR a.fk_user_done = ".$userforfilter->id;
$sql.= ")";
}
if ($key == 'logina')
{
$userforfilter=new User($this->db);
$userforfilter->fetch($value);
$sql.= " AND a.fk_user_author = ".$userforfilter->id;
}
if ($key == 'logint')
{
$userforfilter=new User($this->db);
$userforfilter->fetch($value);
$sql.= " AND a.fk_user_action = ".$userforfilter->id;
}
if ($key == 'logind')
{
$userforfilter=new User($this->db);
$userforfilter->fetch($value);
$sql.= " AND a.fk_user_done = ".$userforfilter->id;
}
} }
$sql.= " ORDER by datec"; $sql.= " ORDER by datec";

View File

@ -19,6 +19,7 @@
/** \file htdocs/comm/action/agendaexport.php /** \file htdocs/comm/action/agendaexport.php
\ingroup agenda \ingroup agenda
\brief Page export agenda \brief Page export agenda
http://127.0.0.1/dolibarr/comm/action/agendaexport.php?format=rss&exportkey=cle&filter=mine
\version $Id$ \version $Id$
*/ */
@ -40,6 +41,11 @@ if (! empty($_GET["type"])) $type=$_GET["type"];
$filters=array(); $filters=array();
if (! empty($_GET["year"])) $filters['year']=$_GET["year"]; if (! empty($_GET["year"])) $filters['year']=$_GET["year"];
if (! empty($_GET["idaction"])) $filters['idaction']=$_GET["idaction"]; if (! empty($_GET["idaction"])) $filters['idaction']=$_GET["idaction"];
if (! empty($_GET["login"])) $filters['login']=$_GET["login"];
if (! empty($_GET["logina"])) $filters['logina']=$_GET["logina"];
if (! empty($_GET["logint"])) $filters['logint']=$_GET["logint"];
if (! empty($_GET["logind"])) $filters['logind']=$_GET["logind"];
// C'est un wrapper, donc header vierge // C'est un wrapper, donc header vierge
function llxHeader() { print '<html><title>Export agenda cal</title><body>'; } function llxHeader() { print '<html><title>Export agenda cal</title><body>'; }

View File

@ -1,6 +1,6 @@
<?php <?php
/* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2001-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2003 Éric Seigne <erics@rycks.com> * Copyright (C) 2003 Eric Seigne <erics@rycks.com>
* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2008 Regis Houssin <regis@dolibarr.fr> * Copyright (C) 2005-2008 Regis Houssin <regis@dolibarr.fr>
* *
@ -213,8 +213,8 @@ if ($filtera > 0 || $filtert > 0 || $filterd > 0)
if ($status == 'done') { $sql.= " AND a.percent = 100"; } if ($status == 'done') { $sql.= " AND a.percent = 100"; }
if ($status == 'todo') { $sql.= " AND a.percent < 100"; } if ($status == 'todo') { $sql.= " AND a.percent < 100"; }
// \TODO Add filters on dates // \TODO Add filters on dates
//print $sql;
//echo "$sql<br>";
$actionarray=array(); $actionarray=array();
$resql=$db->query($sql); $resql=$db->query($sql);
if ($resql) if ($resql)

View File

@ -110,14 +110,15 @@ $sql.= " ut.login as logintodo, ut.rowid as useridtodo,";
$sql.= " ud.login as logindone, ud.rowid as useriddone,"; $sql.= " ud.login as logindone, ud.rowid as useriddone,";
$sql.= " sp.name, sp.firstname"; $sql.= " sp.name, sp.firstname";
if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user"; if (!$user->rights->societe->client->voir && !$socid) $sql .= ", sc.fk_soc, sc.fk_user";
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."societe as s,"; $sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm as c,";
if (!$user->rights->societe->client->voir && !$socid) $sql .= " ".MAIN_DB_PREFIX."societe_commerciaux as sc,"; if (!$user->rights->societe->client->voir && !$socid) $sql .= " ".MAIN_DB_PREFIX."societe_commerciaux as sc,";
$sql.= " ".MAIN_DB_PREFIX."actioncomm as a"; $sql.= " ".MAIN_DB_PREFIX."actioncomm as a";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s ON a.fk_soc = s.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as ua ON a.fk_user_author = ua.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as ua ON a.fk_user_author = ua.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as ut ON a.fk_user_action = ut.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as ut ON a.fk_user_action = ut.rowid";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as ud ON a.fk_user_done = ud.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as ud ON a.fk_user_done = ud.rowid";
$sql.= " WHERE a.fk_soc = s.rowid AND c.id = a.fk_action"; $sql.= " WHERE c.id = a.fk_action";
if ($_GET["type"]) if ($_GET["type"])
{ {
$sql .= " AND c.id = ".$_GET["type"]; $sql .= " AND c.id = ".$_GET["type"];
@ -146,6 +147,7 @@ if ($filtera > 0 || $filtert > 0 || $filterd > 0)
} }
$sql .= " ORDER BY ".$sortfield." ".$sortorder; $sql .= " ORDER BY ".$sortfield." ".$sortorder;
$sql .= $db->plimit( $limit + 1, $offset); $sql .= $db->plimit( $limit + 1, $offset);
//print $sql;
dolibarr_syslog("comm/action/listactions.php sql=".$sql); dolibarr_syslog("comm/action/listactions.php sql=".$sql);
$resql=$db->query($sql); $resql=$db->query($sql);
@ -279,12 +281,16 @@ if ($resql)
print dolibarr_print_date($obj->dp2,"day"); print dolibarr_print_date($obj->dp2,"day");
print '</td>'; print '</td>';
// Société // Third party
print '<td>'; print '<td>';
if ($obj->socid)
{
$societestatic->id=$obj->socid; $societestatic->id=$obj->socid;
$societestatic->client=$obj->client; $societestatic->client=$obj->client;
$societestatic->nom=$obj->societe; $societestatic->nom=$obj->societe;
print $societestatic->getNomUrl(1,'',6); print $societestatic->getNomUrl(1,'',6);
}
else print '&nbsp;';
print '</td>'; print '</td>';
// Contact // Contact