New: Add agenda tab into member cards.

Uniformize a lot of code.
This commit is contained in:
Laurent Destailleur 2012-02-13 01:43:35 +01:00
parent cfaf1f0813
commit 4ce9e70775
17 changed files with 310 additions and 98 deletions

166
htdocs/adherents/agenda.php Normal file
View File

@ -0,0 +1,166 @@
<?php
/* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2005 Brice Davoleau <brice.davoleau@gmail.com>
* Copyright (C) 2005-2009 Regis Houssin <regis@dolibarr.fr>
* Copyright (C) 2006-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2007 Patrick Raguin <patrick.raguin@gmail.com>
* Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
*
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* \file htdocs/adherents/agenda.php
* \ingroup member
* \brief Page of members events
*/
require("../main.inc.php");
require_once(DOL_DOCUMENT_ROOT."/contact/class/contact.class.php");
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent.class.php");
require_once(DOL_DOCUMENT_ROOT."/core/lib/member.lib.php");
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
$langs->load("companies");
$langs->load("members");
$mesg=isset($_GET["mesg"])?'<div class="ok">'.$_GET["mesg"].'</div>':'';
$id = GETPOST("id");
// Security check
if (! $user->rights->adherent->lire) accessforbidden();
$object = new Adherent($db);
$result=$object->fetch($id);
if ($result > 0)
{
$adht = new AdherentType($db);
$result=$adht->fetch($object->typeid);
}
/*
* Actions
*/
// None
/*
* View
*/
$contactstatic = new Contact($db);
$form = new Form($db);
/*
* Fiche categorie de client et/ou fournisseur
*/
if ($id)
{
require_once(DOL_DOCUMENT_ROOT."/core/lib/company.lib.php");
require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
$langs->load("companies");
llxHeader("",$langs->trans("Agenda"),'');
if ($conf->notification->enabled) $langs->load("mails");
$head = member_prepare_head($object);
dol_fiche_head($head, 'agenda', $langs->trans("Member"),0,'user');
print '<table class="border" width="100%">';
// Reference
print '<tr><td width="20%">'.$langs->trans('Ref').'</td>';
print '<td colspan="3">';
print $form->showrefnav($object,'id');
print '</td>';
print '</tr>';
// Login
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
{
print '<tr><td>'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.'&nbsp;</td></tr>';
}
// Morphy
print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
/*print '<td rowspan="'.$rowspan.'" align="center" valign="middle" width="25%">';
print $form->showphoto('memberphoto',$member);
print '</td>';*/
print '</tr>';
// Type
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$adht->getNomUrl(1)."</td></tr>\n";
// Company
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'</td></tr>';
// Civility
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().'&nbsp;</td>';
print '</tr>';
// Lastname
print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur" colspan="3">'.$object->lastname.'&nbsp;</td>';
print '</tr>';
// Firstname
print '<tr><td>'.$langs->trans("Firstname").'</td><td class="valeur" colspan="3">'.$object->firstname.'&nbsp;</td></tr>';
// Status
print '<tr><td>'.$langs->trans("Status").'</td><td class="valeur">'.$object->getLibStatut(4).'</td></tr>';
print '</table>';
print '</div>';
dol_htmloutput_mesg($mesg);
/*
* Barre d'action
*/
print '<div class="tabsAction">';
if ($conf->agenda->enabled)
{
print '<a class="butAction" href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&socid='.$socid.'">'.$langs->trans("AddAction").'</a>';
}
print '</div>';
print '<br>';
print load_fiche_titre($langs->trans("ActionsOnMember"),'','');
// List of todo actions
show_actions_todo($conf,$langs,$db,$object);
// List of done actions
show_actions_done($conf,$langs,$db,$object);
}
llxFooter();
$db->close();
?>

View File

@ -1428,6 +1428,7 @@ class Adherent extends CommonObject
defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != '' defined('ADHERENT_SPIP_DB') && ADHERENT_SPIP_DB != ''
) )
{ {
require_once(DOL_DOCUMENT_ROOT."/core/lib/security2.lib.php");
$mdpass=dol_hash($this->pass); $mdpass=dol_hash($this->pass);
$htpass=crypt($this->pass,makesalt()); $htpass=crypt($this->pass,makesalt());
$query = "INSERT INTO spip_auteurs (nom, email, login, pass, htpass, alea_futur, statut) VALUES(\"".$this->firstname." ".$this->lastname."\",\"".$this->email."\",\"".$this->login."\",\"$mdpass\",\"$htpass\",FLOOR(32000*RAND()),\"1comite\")"; $query = "INSERT INTO spip_auteurs (nom, email, login, pass, htpass, alea_futur, statut) VALUES(\"".$this->firstname." ".$this->lastname."\",\"".$this->email."\",\"".$this->login."\",\"$mdpass\",\"$htpass\",FLOOR(32000*RAND()),\"1comite\")";

View File

@ -584,7 +584,8 @@ if ($user->rights->adherent->supprimer && $_POST["action"] == 'confirm_del_spip'
{ {
if (! count($object->errors)) if (! count($object->errors))
{ {
if(!$object->del_to_spip()){ if(!$object->del_to_spip())
{
$errmsg.="Echec de la suppression de l'utilisateur dans spip: ".$object->error."<BR>\n"; $errmsg.="Echec de la suppression de l'utilisateur dans spip: ".$object->error."<BR>\n";
} }
} }
@ -1516,8 +1517,9 @@ if ($rowid && $action != 'edit')
{ {
print "<a class=\"butAction\" href=\"fiche.php?rowid=$object->id&action=add_spip\">".$langs->trans("AddIntoSpip")."</a>\n"; print "<a class=\"butAction\" href=\"fiche.php?rowid=$object->id&action=add_spip\">".$langs->trans("AddIntoSpip")."</a>\n";
} }
if ($isinspip == -1) { if ($isinspip == -1)
print '<br><font class="error">Failed to connect to SPIP: '.$object->error.'</font>'; {
print '<br><br><font class="error">Failed to connect to SPIP: '.$object->error.'</font>';
} }
} }
@ -1529,7 +1531,7 @@ if ($rowid && $action != 'edit')
} }
$db->close();
llxFooter(); llxFooter();
$db->close();
?> ?>

View File

@ -25,6 +25,15 @@
*/ */
require("../main.inc.php"); require("../main.inc.php");
require_once(DOL_DOCUMENT_ROOT."/core/lib/security2.lib.php");
// Security check
if (! $user->rights->adherent->export) accessforbidden();
/*
* View
*/
llxHeader(); llxHeader();
@ -42,13 +51,12 @@ if (! isset($cotis))
} }
$sql = "SELECT d.login, d.pass, d.datefin"; $sql = "SELECT d.login, d.pass, d.datefin";
$sql .= " FROM ".MAIN_DB_PREFIX."adherent as d "; $sql .= " FROM ".MAIN_DB_PREFIX."adherent as d ";
$sql .= " WHERE d.statut = $statut "; $sql .= " WHERE d.statut = $statut ";
if ($cotis==1) if ($cotis==1)
{ {
$sql .= " AND datefin > ".$db->idate(mktime()); $sql .= " AND datefin > '".$db->idate(mktime())."'";
} }
$sql.= $db->order($sortfield,$sortorder); $sql.= $db->order($sortfield,$sortorder);
//$sql.=$db->plimit($conf->liste_limit, $offset); //$sql.=$db->plimit($conf->liste_limit, $offset);
@ -77,7 +85,7 @@ else
} }
$db->close();
llxFooter(); llxFooter();
$db->close();
?> ?>

View File

@ -27,37 +27,36 @@ require_once(DOL_DOCUMENT_ROOT.'/core/lib/member.lib.php');
require_once(DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'); require_once(DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php');
require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php"); require_once(DOL_DOCUMENT_ROOT."/adherents/class/adherent_type.class.php");
$action=isset($_GET["action"])?$_GET["action"]:(isset($_POST["action"])?$_POST["action"]:""); $action=GETPOST('action');
$id=isset($_GET["id"])?$_GET["id"]:(isset($_POST["id"])?$_POST["id"]:""); $id=GETPOST("id");
$langs->load("companies"); $langs->load("companies");
$langs->load("members"); $langs->load("members");
$langs->load("bills"); $langs->load("bills");
if (!$user->rights->adherent->lire) if (!$user->rights->adherent->lire) accessforbidden();
accessforbidden();
$adh = new Adherent($db); $object = new Adherent($db);
$result=$adh->fetch($id); $result=$object->fetch($id);
if ($result > 0) if ($result > 0)
{ {
$adht = new AdherentType($db); $adht = new AdherentType($db);
$result=$adht->fetch($adh->typeid); $result=$adht->fetch($object->typeid);
} }
/******************************************************************************/ /*
/* Actions */ * Actions
/******************************************************************************/ */
if ($_POST["action"] == 'update' && $user->rights->adherent->creer && ! $_POST["cancel"]) if ($_POST["action"] == 'update' && $user->rights->adherent->creer && ! $_POST["cancel"])
{ {
$db->begin(); $db->begin();
$res=$adh->update_note($_POST["note"],$user); $res=$object->update_note($_POST["note"],$user);
if ($res < 0) if ($res < 0)
{ {
$mesg='<div class="error">'.$adh->error.'</div>'; $mesg='<div class="error">'.$object->error.'</div>';
$db->rollback(); $db->rollback();
} }
else else
@ -78,11 +77,11 @@ $form = new Form($db);
if ($id) if ($id)
{ {
$head = member_prepare_head($adh); $head = member_prepare_head($object);
dol_fiche_head($head, 'note', $langs->trans("Member"), 0, 'user'); dol_fiche_head($head, 'note', $langs->trans("Member"), 0, 'user');
if ($msg) print '<div class="error">'.$msg.'</div>'; dol_htmloutput_errors($msg);
print "<form method=\"post\" action=\"note.php\">"; print "<form method=\"post\" action=\"note.php\">";
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
@ -92,18 +91,18 @@ if ($id)
// Reference // Reference
print '<tr><td width="20%">'.$langs->trans('Ref').'</td>'; print '<tr><td width="20%">'.$langs->trans('Ref').'</td>';
print '<td colspan="3">'; print '<td colspan="3">';
print $form->showrefnav($adh,'id'); print $form->showrefnav($object,'id');
print '</td>'; print '</td>';
print '</tr>'; print '</tr>';
// Login // Login
if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED)) if (empty($conf->global->ADHERENT_LOGIN_NOT_REQUIRED))
{ {
print '<tr><td>'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$adh->login.'&nbsp;</td></tr>'; print '<tr><td>'.$langs->trans("Login").' / '.$langs->trans("Id").'</td><td class="valeur">'.$object->login.'&nbsp;</td></tr>';
} }
// Morphy // Morphy
print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$adh->getmorphylib().'</td>'; print '<tr><td>'.$langs->trans("Nature").'</td><td class="valeur" >'.$object->getmorphylib().'</td>';
/*print '<td rowspan="'.$rowspan.'" align="center" valign="middle" width="25%">'; /*print '<td rowspan="'.$rowspan.'" align="center" valign="middle" width="25%">';
print $form->showphoto('memberphoto',$member); print $form->showphoto('memberphoto',$member);
print '</td>';*/ print '</td>';*/
@ -113,21 +112,21 @@ if ($id)
print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$adht->getNomUrl(1)."</td></tr>\n"; print '<tr><td>'.$langs->trans("Type").'</td><td class="valeur">'.$adht->getNomUrl(1)."</td></tr>\n";
// Company // Company
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$adh->societe.'</td></tr>'; print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$object->societe.'</td></tr>';
// Civility // Civility
print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$adh->getCivilityLabel().'&nbsp;</td>'; print '<tr><td>'.$langs->trans("UserTitle").'</td><td class="valeur">'.$object->getCivilityLabel().'&nbsp;</td>';
print '</tr>'; print '</tr>';
// Lastname // Lastname
print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur" colspan="3">'.$adh->lastname.'&nbsp;</td>'; print '<tr><td>'.$langs->trans("Lastname").'</td><td class="valeur" colspan="3">'.$object->lastname.'&nbsp;</td>';
print '</tr>'; print '</tr>';
// Firstname // Firstname
print '<tr><td>'.$langs->trans("Firstname").'</td><td class="valeur" colspan="3">'.$adh->firstname.'&nbsp;</td></tr>'; print '<tr><td>'.$langs->trans("Firstname").'</td><td class="valeur" colspan="3">'.$object->firstname.'&nbsp;</td></tr>';
// Status // Status
print '<tr><td>'.$langs->trans("Status").'</td><td class="valeur">'.$adh->getLibStatut(4).'</td></tr>'; print '<tr><td>'.$langs->trans("Status").'</td><td class="valeur">'.$object->getLibStatut(4).'</td></tr>';
// Note // Note
print '<tr><td valign="top">'.$langs->trans("Note").'</td>'; print '<tr><td valign="top">'.$langs->trans("Note").'</td>';
@ -135,14 +134,14 @@ if ($id)
if ($action == 'edit' && $user->rights->adherent->creer) if ($action == 'edit' && $user->rights->adherent->creer)
{ {
print "<input type=\"hidden\" name=\"action\" value=\"update\">"; print "<input type=\"hidden\" name=\"action\" value=\"update\">";
print "<input type=\"hidden\" name=\"id\" value=\"".$adh->id."\">"; print "<input type=\"hidden\" name=\"id\" value=\"".$object->id."\">";
require_once(DOL_DOCUMENT_ROOT."/core/class/doleditor.class.php"); require_once(DOL_DOCUMENT_ROOT."/core/class/doleditor.class.php");
$doleditor=new DolEditor('note',$adh->note,'',280,'dolibarr_notes','',true,true,$conf->global->FCKEDITOR_ENABLE_SOCIETE,10,80); $doleditor=new DolEditor('note',$object->note,'',280,'dolibarr_notes','',true,true,$conf->global->FCKEDITOR_ENABLE_SOCIETE,10,80);
$doleditor->Create(); $doleditor->Create();
} }
else else
{ {
print nl2br($adh->note); print nl2br($object->note);
} }
print "</td></tr>"; print "</td></tr>";
@ -167,7 +166,7 @@ if ($id)
if ($user->rights->adherent->creer && $action != 'edit') if ($user->rights->adherent->creer && $action != 'edit')
{ {
print "<a class=\"butAction\" href=\"note.php?id=$adh->id&amp;action=edit\">".$langs->trans('Modify')."</a>"; print "<a class=\"butAction\" href=\"note.php?id=".$object->id."&amp;action=edit\">".$langs->trans('Modify')."</a>";
} }
print "</div>"; print "</div>";

View File

@ -51,7 +51,7 @@ $id = GETPOST('id');
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
//$result = restrictedArea($user, 'agenda', $id, 'actioncomm', 'actions', '', 'id'); //$result = restrictedArea($user, 'agenda', $id, 'actioncomm', 'actions', '', 'id');
if (isset($_GET["error"])) $error=$_GET["error"]; $error=GETPOST("error");
$cactioncomm = new CActionComm($db); $cactioncomm = new CActionComm($db);
$actioncomm = new ActionComm($db); $actioncomm = new ActionComm($db);

View File

@ -856,6 +856,8 @@ if ($id > 0)
if (! empty($conf->global->MAIN_REPEATTASKONEACHTAB)) if (! empty($conf->global->MAIN_REPEATTASKONEACHTAB))
{ {
print load_fiche_titre($langs->trans("ActionsOnCompany"),'','');
// List of todo actions // List of todo actions
show_actions_todo($conf,$langs,$db,$object); show_actions_todo($conf,$langs,$db,$object);
@ -868,8 +870,8 @@ else
dol_print_error($db,'Bad value for socid parameter'); dol_print_error($db,'Bad value for socid parameter');
} }
llxFooter(); llxFooter();
$db->close(); $db->close();
?> ?>

View File

@ -328,6 +328,8 @@ if ($socid > 0)
if (! empty($conf->global->MAIN_REPEATTASKONEACHTAB)) if (! empty($conf->global->MAIN_REPEATTASKONEACHTAB))
{ {
print load_fiche_titre($langs->trans("ActionsOnCompany"),'','');
// List of todo actions // List of todo actions
show_actions_todo($conf,$langs,$db,$societe); show_actions_todo($conf,$langs,$db,$societe);
@ -336,7 +338,8 @@ if ($socid > 0)
} }
} }
$db->close();
llxFooter(); llxFooter();
$db->close();
?> ?>

View File

@ -884,13 +884,16 @@ else
print "</div><br>"; print "</div><br>";
} }
print load_fiche_titre($langs->trans("TasksHistoryForThisContact"),'','');
print show_actions_todo($conf,$langs,$db,$objsoc,$object); print show_actions_todo($conf,$langs,$db,$objsoc,$object);
print show_actions_done($conf,$langs,$db,$objsoc,$object); print show_actions_done($conf,$langs,$db,$objsoc,$object);
} }
} }
$db->close();
llxFooter(); llxFooter();
$db->close();
?> ?>

View File

@ -2015,7 +2015,7 @@ abstract class CommonObject
/** /**
* List urls of elemùent * List urls of element
* *
* @param int $objectid Id of record * @param int $objectid Id of record
* @param string $objecttype Type of object * @param string $objecttype Type of object

View File

@ -600,7 +600,7 @@ function show_contacts($conf,$langs,$db,$object,$backtopage='')
* @param Conf $conf Object conf * @param Conf $conf Object conf
* @param Translate $langs Object langs * @param Translate $langs Object langs
* @param DoliDB $db Object db * @param DoliDB $db Object db
* @param Object $object Object third party * @param Object $object Object third party or member
* @param Contact $objcon Object contact * @param Contact $objcon Object contact
* @param int $noprint Return string but does not output it * @param int $noprint Return string but does not output it
* @return void * @return void
@ -609,6 +609,9 @@ function show_actions_todo($conf,$langs,$db,$object,$objcon='',$noprint=0)
{ {
global $bc,$user; global $bc,$user;
// Check parameters
if (! is_object($object)) dol_print_error('','BadParameter');
$now=dol_now(); $now=dol_now();
$out=''; $out='';
@ -620,17 +623,20 @@ function show_actions_todo($conf,$langs,$db,$object,$objcon='',$noprint=0)
$contactstatic = new Contact($db); $contactstatic = new Contact($db);
$out.="\n"; $out.="\n";
if (is_object($objcon) && $objcon->id) $out.=load_fiche_titre($langs->trans("TasksHistoryForThisContact"),'','');
else $out.=load_fiche_titre($langs->trans("ActionsOnCompany"),'','');
$out.='<table width="100%" class="noborder">'; $out.='<table width="100%" class="noborder">';
$out.='<tr class="liste_titre">'; $out.='<tr class="liste_titre">';
$out.='<td colspan="2"><a href="'.DOL_URL_ROOT.'/comm/action/listactions.php?socid='.$object->id.'&amp;status=todo">'.$langs->trans("ActionsToDoShort").'</a></td>'; $out.='<td colspan="2">';
if (get_class($object) == 'Societe') $out.='<a href="'.DOL_URL_ROOT.'/comm/action/listactions.php?socid='.$object->id.'&amp;status=todo">';
$out.=$langs->trans("ActionsToDoShort");
if (get_class($object) == 'Societe') $out.='</a>';
$out.='</td>';
$out.='<td colspan="5" align="right">'; $out.='<td colspan="5" align="right">';
$permok=$user->rights->agenda->myactions->create; $permok=$user->rights->agenda->myactions->create;
if (($object->id || $objcon->id) && $permok) if (($object->id || $objcon->id) && $permok)
{ {
$out.='<a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&amp;socid='.$object->id.'&amp;contactid='.$objcon->id.'&amp;backtopage=1&amp;percentage=-1">'; $out.='<a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create';
if (get_class($object) == 'Societe') $out.='&amp;socid='.$object->id;
$out.='&amp;contactid='.$objcon->id.'&amp;backtopage=1&amp;percentage=-1">';
$out.=$langs->trans("AddAnAction").' '; $out.=$langs->trans("AddAnAction").' ';
$out.=img_picto($langs->trans("AddAnAction"),'filenew'); $out.=img_picto($langs->trans("AddAnAction"),'filenew');
$out.="</a>"; $out.="</a>";
@ -645,13 +651,17 @@ function show_actions_todo($conf,$langs,$db,$object,$objcon='',$noprint=0)
$sql.= " a.fk_user_author, a.fk_contact,"; $sql.= " a.fk_user_author, a.fk_contact,";
$sql.= " a.fk_element, a.elementtype,"; $sql.= " a.fk_element, a.elementtype,";
$sql.= " c.code as acode, c.libelle,"; $sql.= " c.code as acode, c.libelle,";
$sql.= " u.login, u.rowid,"; $sql.= " u.login, u.rowid";
$sql.= " sp.name, sp.firstname"; if (get_class($object) == 'Adherent') $sql.= ", m.nom as name, m.prenom as firstname";
if (get_class($object) == 'Societe') $sql.= ", sp.name, sp.firstname";
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."user as u, ".MAIN_DB_PREFIX."actioncomm as a"; $sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."user as u, ".MAIN_DB_PREFIX."actioncomm as a";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid"; if (get_class($object) == 'Adherent') $sql.= ", ".MAIN_DB_PREFIX."adherent as m";
if (get_class($object) == 'Societe') $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid";
$sql.= " WHERE u.rowid = a.fk_user_author"; $sql.= " WHERE u.rowid = a.fk_user_author";
$sql.= " AND u.entity = ".$conf->entity; $sql.= " AND a.entity IN (".getEntity('actioncomm').")";
if ($object->id) $sql.= " AND a.fk_soc = ".$object->id; if (get_class($object) == 'Adherent') $sql.= " AND a.fk_element = m.rowid AND a.elementtype = 'member'";
if (get_class($object) == 'Adherent' && $object->id) $sql.= " AND a.fk_element = ".$object->id;
if (get_class($object) == 'Societe' && $object->id) $sql.= " AND a.fk_soc = ".$object->id;
if (is_object($objcon) && $objcon->id) $sql.= " AND a.fk_contact = ".$objcon->id; if (is_object($objcon) && $objcon->id) $sql.= " AND a.fk_contact = ".$objcon->id;
$sql.= " AND c.id=a.fk_action"; $sql.= " AND c.id=a.fk_action";
$sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep > '".$db->idate($now)."'))"; $sql.= " AND ((a.percent >= 0 AND a.percent < 100) OR (a.percent = -1 AND a.datep > '".$db->idate($now)."'))";
@ -749,15 +759,19 @@ function show_actions_todo($conf,$langs,$db,$object,$objcon='',$noprint=0)
* @param Conf $conf Object conf * @param Conf $conf Object conf
* @param Translate $langs Object langs * @param Translate $langs Object langs
* @param DoliDB $db Object db * @param DoliDB $db Object db
* @param Object $object Object third party * @param Object $object Object third party or member
* @param Contact $objcon Object contact * @param Contact $objcon Object contact
* @param int $noprint Return string but does not output it * @param int $noprint Return string but does not output it
* @return void * @return void
* TODO change function to be able to list event linked to an object.
*/ */
function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0) function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
{ {
global $bc,$user; global $bc,$user;
// Check parameters
if (! is_object($object)) dol_print_error('','BadParameter');
$out=''; $out='';
$histo=array(); $histo=array();
$numaction = 0 ; $numaction = 0 ;
@ -773,13 +787,17 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
$sql.= " a.fk_element, a.elementtype,"; $sql.= " a.fk_element, a.elementtype,";
$sql.= " a.fk_user_author, a.fk_contact,"; $sql.= " a.fk_user_author, a.fk_contact,";
$sql.= " c.code as acode, c.libelle,"; $sql.= " c.code as acode, c.libelle,";
$sql.= " u.login, u.rowid as user_id,"; $sql.= " u.login, u.rowid as user_id";
$sql.= " sp.name, sp.firstname"; if (get_class($object) == 'Adherent') $sql.= ", m.nom as name, m.prenom as firstname";
if (get_class($object) == 'Societe') $sql.= ", sp.name, sp.firstname";
$sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."user as u, ".MAIN_DB_PREFIX."actioncomm as a"; $sql.= " FROM ".MAIN_DB_PREFIX."c_actioncomm as c, ".MAIN_DB_PREFIX."user as u, ".MAIN_DB_PREFIX."actioncomm as a";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid"; if (get_class($object) == 'Adherent') $sql.= ", ".MAIN_DB_PREFIX."adherent as m";
if (get_class($object) == 'Societe') $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople as sp ON a.fk_contact = sp.rowid";
$sql.= " WHERE u.rowid = a.fk_user_author"; $sql.= " WHERE u.rowid = a.fk_user_author";
$sql.= " AND u.entity = ".$conf->entity; $sql.= " AND a.entity IN (".getEntity('actioncomm').")";
if ($object->id) $sql.= " AND a.fk_soc = ".$object->id; if (get_class($object) == 'Adherent') $sql.= " AND a.fk_element = m.rowid AND a.elementtype = 'member'";
if (get_class($object) == 'Adherent' && $object->id) $sql.= " AND a.fk_element = ".$object->id;
if (get_class($object) == 'Societe' && $object->id) $sql.= " AND a.fk_soc = ".$object->id;
if (is_object($objcon) && $objcon->id) $sql.= " AND a.fk_contact = ".$objcon->id; if (is_object($objcon) && $objcon->id) $sql.= " AND a.fk_contact = ".$objcon->id;
$sql.= " AND c.id=a.fk_action"; $sql.= " AND c.id=a.fk_action";
$sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep <= '".$db->idate($now)."'))"; $sql.= " AND (a.percent = 100 OR (a.percent = -1 AND a.datep <= '".$db->idate($now)."'))";
@ -810,7 +828,7 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
} }
} }
if ($conf->mailing->enabled && $objcon->email) if ($conf->mailing->enabled && ! empty($objcon->email))
{ {
$langs->load("mails"); $langs->load("mails");
@ -851,7 +869,7 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
} }
if ($conf->agenda->enabled || ($conf->mailing->enabled && $objcon->email)) if ($conf->agenda->enabled || ($conf->mailing->enabled && ! empty($objcon->email)))
{ {
require_once(DOL_DOCUMENT_ROOT."/comm/action/class/actioncomm.class.php"); require_once(DOL_DOCUMENT_ROOT."/comm/action/class/actioncomm.class.php");
require_once(DOL_DOCUMENT_ROOT."/comm/propal/class/propal.class.php"); require_once(DOL_DOCUMENT_ROOT."/comm/propal/class/propal.class.php");
@ -869,12 +887,18 @@ function show_actions_done($conf,$langs,$db,$object,$objcon='',$noprint=0)
$out.="\n"; $out.="\n";
$out.='<table class="noborder" width="100%">'; $out.='<table class="noborder" width="100%">';
$out.='<tr class="liste_titre">'; $out.='<tr class="liste_titre">';
$out.='<td colspan="2"><a href="'.DOL_URL_ROOT.'/comm/action/listactions.php?socid='.$object->id.'&amp;status=done">'.$langs->trans("ActionsDoneShort").'</a></td>'; $out.='<td colspan="2">';
if (get_class($object) == 'Societe') $out.='<a href="'.DOL_URL_ROOT.'/comm/action/listactions.php?socid='.$object->id.'&amp;status=done">';
$out.=$langs->trans("ActionsDoneShort");
if (get_class($object) == 'Societe') $out.='</a>';
$out.='</td>';
$out.='<td colspan="5" align="right">'; $out.='<td colspan="5" align="right">';
$permok=$user->rights->agenda->myactions->create; $permok=$user->rights->agenda->myactions->create;
if (($object->id || $objcon->id) && $permok) if (($object->id || $objcon->id) && $permok)
{ {
$out.='<a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create&amp;socid='.$object->id.'&amp;contactid='.$objcon->id.'&amp;backtopage=1&amp;percentage=-1">'; $out.='<a href="'.DOL_URL_ROOT.'/comm/action/fiche.php?action=create';
if (get_class($object) == 'Societe') $out.='&amp;socid='.$object->id;
$out.='&amp;contactid='.$objcon->id.'&amp;backtopage=1&amp;percentage=-1">';
$out.=$langs->trans("AddAnAction").' '; $out.=$langs->trans("AddAnAction").' ';
$out.=img_picto($langs->trans("AddAnAction"),'filenew'); $out.=img_picto($langs->trans("AddAnAction"),'filenew');
$out.="</a>"; $out.="</a>";

View File

@ -57,6 +57,15 @@ function member_prepare_head($object)
$h++; $h++;
} }
// Show agenda tab
if (! empty($conf->agenda->enabled))
{
$head[$h][0] = DOL_URL_ROOT."/adherents/agenda.php?id=".$object->id;
$head[$h][1] = $langs->trans('Agenda');
$head[$h][2] = 'agenda';
$h++;
}
// Show category tab // Show category tab
if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire)) if (! empty($conf->categorie->enabled) && ! empty($user->rights->categorie->lire))
{ {

View File

@ -411,6 +411,8 @@ if ($object->fetch($id))
if (! empty($conf->global->MAIN_REPEATTASKONEACHTAB)) if (! empty($conf->global->MAIN_REPEATTASKONEACHTAB))
{ {
print load_fiche_titre($langs->trans("ActionsOnCompany"),'','');
// List of todo actions // List of todo actions
show_actions_todo($conf,$langs,$db,$object); show_actions_todo($conf,$langs,$db,$object);

View File

@ -191,6 +191,9 @@ ALTER TABLE llx_expedition ADD CONSTRAINT fk_expedition_fk_expedition_methode F
-- VMYSQL4.1 UPDATE llx_chargesociales set tms = date_creation WHERE tms = '0000-00-00 00:00:00'; -- VMYSQL4.1 UPDATE llx_chargesociales set tms = date_creation WHERE tms = '0000-00-00 00:00:00';
ALTER TABLE llx_actioncomm DROP COLUMN propalrowid; ALTER TABLE llx_actioncomm DROP COLUMN propalrowid;
ALTER TABLE llx_actioncomm DROP COLUMN fk_facture;
ALTER TABLE llx_actioncomm DROP COLUMN fk_supplier_order;
ALTER TABLE llx_actioncomm DROP COLUMN fk_supplier_invoice;
ALTER TABLE llx_actioncomm DROP COLUMN fk_commande; ALTER TABLE llx_actioncomm DROP COLUMN fk_commande;
ALTER TABLE llx_product_stock DROP COLUMN location; ALTER TABLE llx_product_stock DROP COLUMN location;
-- DROP TABLE llx_c_methode_commande_fournisseur; -- DROP TABLE llx_c_methode_commande_fournisseur;

View File

@ -329,6 +329,7 @@ ActionDoneShort=Finished
CompanyFoundation=Company/Foundation CompanyFoundation=Company/Foundation
ContactsForCompany=Contacts/adresses for this third party ContactsForCompany=Contacts/adresses for this third party
ActionsOnCompany=Events about this third party ActionsOnCompany=Events about this third party
ActionsOnMember=Events about this member
NActions=%s events NActions=%s events
NActionsLate=%s late NActionsLate=%s late
Filter=Filter Filter=Filter

View File

@ -330,6 +330,7 @@ ActionDoneShort=Terminé
CompanyFoundation=Société ou institution CompanyFoundation=Société ou institution
ContactsForCompany=Contacts/adresses de ce tiers ContactsForCompany=Contacts/adresses de ce tiers
ActionsOnCompany=Événements vis à vis de ce tiers ActionsOnCompany=Événements vis à vis de ce tiers
ActionsOnMember=Événements vis à vis de cet adhérent
NActions=%s événements NActions=%s événements
NActionsLate=%s en retard NActionsLate=%s en retard
Filter=Filtre Filter=Filtre

View File

@ -35,7 +35,7 @@ $langs->load("companies");
$mesg=isset($_GET["mesg"])?'<div class="ok">'.$_GET["mesg"].'</div>':''; $mesg=isset($_GET["mesg"])?'<div class="ok">'.$_GET["mesg"].'</div>':'';
// Security check // Security check
$socid = isset($_GET["socid"])?$_GET["socid"]:''; $socid = GETPOST("socid");
if ($user->societe_id) $socid=$user->societe_id; if ($user->societe_id) $socid=$user->societe_id;
$result = restrictedArea($user, 'societe', $socid); $result = restrictedArea($user, 'societe', $socid);
@ -59,7 +59,7 @@ $form = new Form($db);
/* /*
* Fiche categorie de client et/ou fournisseur * Fiche categorie de client et/ou fournisseur
*/ */
if ($_GET["socid"]) if ($socid)
{ {
require_once(DOL_DOCUMENT_ROOT."/core/lib/company.lib.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/company.lib.php");
require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php"); require_once(DOL_DOCUMENT_ROOT."/societe/class/societe.class.php");
@ -68,8 +68,8 @@ if ($_GET["socid"])
$soc = new Societe($db); $soc = new Societe($db);
$result = $soc->fetch($_GET["socid"]); $result = $soc->fetch($socid);
llxHeader("",$langs->trans("Agenda"),$langs->trans("Category")); llxHeader("",$langs->trans("Agenda"),'');
if ($conf->notification->enabled) $langs->load("mails"); if ($conf->notification->enabled) $langs->load("mails");
$head = societe_prepare_head($soc); $head = societe_prepare_head($soc);
@ -144,7 +144,9 @@ if ($_GET["socid"])
print '</div>'; print '</div>';
if ($mesg) print($mesg);
dol_htmloutput_mesg($mesg);
/* /*
* Barre d'action * Barre d'action
@ -161,31 +163,17 @@ if ($_GET["socid"])
print '<br>'; print '<br>';
/* print load_fiche_titre($langs->trans("ActionsOnCompany"),'','');
if ($conf->global->MAIN_REPEATCONTACTONEACHTAB)
{
// List of contacts
show_contacts($conf,$langs,$db,$societe);
}
if ($conf->global->MAIN_REPEATTASKONEACHTAB)
{
*/
// List of todo actions // List of todo actions
show_actions_todo($conf,$langs,$db,$soc); show_actions_todo($conf,$langs,$db,$soc);
// List of done actions // List of done actions
show_actions_done($conf,$langs,$db,$soc); show_actions_done($conf,$langs,$db,$soc);
// }
} }
llxFooter();
$db->close(); $db->close();
llxFooter();
?> ?>