2004-10-19 22:19:58 +02:00
< ? php
2005-01-04 10:00:29 +01:00
/* Copyright ( C ) 2001 - 2005 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2018-08-15 14:42:03 +02:00
* Copyright ( C ) 2004 - 2018 Laurent Destailleur < eldy @ users . sourceforge . net >
2005-09-06 09:11:19 +02:00
* Copyright ( C ) 2005 Simon TOSSER < simon @ kornog - computing . com >
2018-10-27 14:43:12 +02:00
* Copyright ( C ) 2005 - 2017 Regis Houssin < regis . houssin @ inodbox . com >
2014-02-26 16:55:42 +01:00
* Copyright ( C ) 2010 - 2013 Juanjo Menent < jmenent @ 2 byte . es >
2013-06-14 22:33:01 +02:00
* Copyright ( C ) 2013 Florian Henry < florian . henry @ open - concept . pro >
2014-08-08 14:25:14 +02:00
* Copyright ( C ) 2014 Cedric GROSS < c . gross @ kreiz - it . fr >
2018-09-09 10:40:00 +02:00
* Copyright ( C ) 2015 Alexandre Spangaro < aspangaro . dolibarr @ gmail . com >
* Copyright ( C ) 2018 Frédéric France < frederic . france @ netlogic . fr >
2002-04-29 20:01:16 +02:00
*
* 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
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2002-04-29 20:01:16 +02:00
* ( 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
2011-08-01 00:21:57 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2002-04-29 20:01:16 +02:00
*/
2006-09-16 02:14:11 +02:00
2004-12-25 20:54:16 +01:00
/**
2014-09-18 21:18:25 +02:00
* \file htdocs / comm / action / card . php
2008-10-06 23:31:05 +02:00
* \ingroup agenda
2011-02-02 14:29:54 +01:00
* \brief Page for event card
2008-10-06 23:31:05 +02:00
*/
2006-09-16 02:14:11 +02:00
2012-08-22 23:24:21 +02:00
require '../../main.inc.php' ;
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/agenda.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/comm/action/class/cactioncomm.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/comm/action/class/actioncomm.class.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php' ;
2014-11-04 16:08:07 +01:00
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php' ;
2015-06-08 12:39:25 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/class/html.form.class.php' ;
2017-07-29 02:11:45 +02:00
require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php' ;
2018-09-20 10:08:40 +02:00
require_once DOL_DOCUMENT_ROOT . '/projet/class/task.class.php' ;
2017-07-29 02:11:45 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formprojet.class.php' ;
2012-12-08 12:49:20 +01:00
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php' ;
2004-10-30 04:01:06 +02:00
2018-05-26 19:03:41 +02:00
// Load translation files required by the page
2018-05-12 10:46:17 +02:00
$langs -> loadLangs ( array ( " companies " , " other " , " commercial " , " bills " , " orders " , " agenda " ));
2002-05-09 16:57:48 +02:00
2012-02-27 17:02:56 +01:00
$action = GETPOST ( 'action' , 'alpha' );
2012-07-13 11:40:06 +02:00
$cancel = GETPOST ( 'cancel' , 'alpha' );
2012-02-27 17:02:56 +01:00
$backtopage = GETPOST ( 'backtopage' , 'alpha' );
2017-11-18 12:36:03 +01:00
$socpeopleassigned = GETPOST ( 'socpeopleassigned' , 'array' );
2013-08-27 15:51:06 +02:00
$origin = GETPOST ( 'origin' , 'alpha' );
$originid = GETPOST ( 'originid' , 'int' );
2015-06-08 12:39:25 +02:00
$confirm = GETPOST ( 'confirm' , 'alpha' );
2009-08-28 03:14:35 +02:00
2014-09-09 14:38:10 +02:00
$fulldayevent = GETPOST ( 'fullday' );
2016-06-28 13:25:47 +02:00
$aphour = GETPOST ( 'aphour' );
$apmin = GETPOST ( 'apmin' );
$p2hour = GETPOST ( 'p2hour' );
$p2min = GETPOST ( 'p2min' );
$datep = dol_mktime ( $fulldayevent ? '00' : $aphour , $fulldayevent ? '00' : $apmin , 0 , GETPOST ( " apmonth " ), GETPOST ( " apday " ), GETPOST ( " apyear " ));
$datef = dol_mktime ( $fulldayevent ? '23' : $p2hour , $fulldayevent ? '59' : $p2min , $fulldayevent ? '59' : '0' , GETPOST ( " p2month " ), GETPOST ( " p2day " ), GETPOST ( " p2year " ));
2014-09-09 14:38:10 +02:00
2008-04-16 03:04:12 +02:00
// Security check
2012-02-27 17:02:56 +01:00
$socid = GETPOST ( 'socid' , 'int' );
$id = GETPOST ( 'id' , 'int' );
2009-04-29 08:22:37 +02:00
if ( $user -> societe_id ) $socid = $user -> societe_id ;
2014-05-10 18:57:04 +02:00
$result = restrictedArea ( $user , 'agenda' , $id , 'actioncomm&societe' , 'myactions|allactions' , 'fk_soc' , 'id' );
2013-09-18 11:56:42 +02:00
if ( $user -> societe_id && $socid ) $result = restrictedArea ( $user , 'societe' , $socid );
2009-04-29 08:22:37 +02:00
2012-02-13 01:43:35 +01:00
$error = GETPOST ( " error " );
2014-10-03 15:58:08 +02:00
$donotclearsession = GETPOST ( 'donotclearsession' ) ? GETPOST ( 'donotclearsession' ) : 0 ;
2005-07-08 00:47:02 +02:00
2008-04-15 10:34:36 +02:00
$cactioncomm = new CActionComm ( $db );
2014-01-30 00:40:00 +01:00
$object = new ActionComm ( $db );
2008-04-15 10:34:36 +02:00
$contact = new Contact ( $db );
2012-12-08 12:49:20 +01:00
$extrafields = new ExtraFields ( $db );
2014-10-27 10:54:50 +01:00
$formfile = new FormFile ( $db );
2012-12-08 12:49:20 +01:00
2015-06-08 12:39:25 +02:00
$form = new Form ( $db );
$formfile = new FormFile ( $db );
$formactions = new FormActions ( $db );
2013-04-01 19:43:26 +02:00
// fetch optionals attributes and labels
2014-01-30 00:40:00 +01:00
$extralabels = $extrafields -> fetch_name_optionals_label ( $object -> table_element );
2013-04-01 19:43:26 +02:00
2011-04-09 13:52:11 +02:00
//var_dump($_POST);
2009-08-28 03:14:35 +02:00
2017-06-10 12:56:28 +02:00
// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context
2014-10-06 07:20:58 +02:00
$hookmanager -> initHooks ( array ( 'actioncard' , 'globalcard' ));
Add: hooks and triggers for a lot of core modules (action/calendrier, deplacement, dons, tva, contact/tiers, contrat, product lines, expedition, fournisseur commandes et factures, fiche intervention, projet et taches)
Signed-off-by: Stephen L. <lrq3000@gmail.com>
2012-08-14 15:50:45 +02:00
2016-09-19 10:43:30 +02:00
2002-04-29 20:01:16 +02:00
/*
2013-09-25 21:26:06 +02:00
* Actions
2002-04-29 20:01:16 +02:00
*/
2016-09-19 10:43:30 +02:00
2015-11-05 11:11:03 +01:00
$listUserAssignedUpdated = false ;
2014-09-20 00:57:29 +02:00
// Remove user to assigned list
2014-10-03 18:04:13 +02:00
if ( GETPOST ( 'removedassigned' ) || GETPOST ( 'removedassigned' ) == '0' )
2014-09-20 00:57:29 +02:00
{
2014-10-03 18:04:13 +02:00
$idtoremove = GETPOST ( 'removedassigned' );
2015-04-23 23:29:31 +02:00
if ( ! empty ( $_SESSION [ 'assignedtouser' ])) $tmpassigneduserids = json_decode ( $_SESSION [ 'assignedtouser' ], 1 );
2014-09-20 00:57:29 +02:00
else $tmpassigneduserids = array ();
2014-10-03 18:04:13 +02:00
2014-09-23 16:15:15 +02:00
foreach ( $tmpassigneduserids as $key => $val )
{
2014-10-03 18:04:13 +02:00
if ( $val [ 'id' ] == $idtoremove || $val [ 'id' ] == - 1 ) unset ( $tmpassigneduserids [ $key ]);
2014-09-23 16:15:15 +02:00
}
2014-09-20 00:57:29 +02:00
//var_dump($_POST['removedassigned']);exit;
2015-04-23 23:29:31 +02:00
$_SESSION [ 'assignedtouser' ] = json_encode ( $tmpassigneduserids );
2014-09-20 00:57:29 +02:00
$donotclearsession = 1 ;
if ( $action == 'add' ) $action = 'create' ;
if ( $action == 'update' ) $action = 'edit' ;
2017-06-07 16:44:04 +02:00
2015-11-05 11:11:03 +01:00
$listUserAssignedUpdated = true ;
2014-09-20 00:57:29 +02:00
}
// Add user to assigned list
if ( GETPOST ( 'addassignedtouser' ) || GETPOST ( 'updateassignedtouser' ))
2014-09-09 14:38:10 +02:00
{
// Add a new user
2014-09-23 12:18:42 +02:00
if ( GETPOST ( 'assignedtouser' ) > 0 )
2014-09-09 14:38:10 +02:00
{
$assignedtouser = array ();
2014-09-23 16:15:15 +02:00
if ( ! empty ( $_SESSION [ 'assignedtouser' ]))
{
2015-04-23 23:29:31 +02:00
$assignedtouser = json_decode ( $_SESSION [ 'assignedtouser' ], true );
2014-09-23 16:15:15 +02:00
}
2017-11-24 20:02:46 +01:00
$assignedtouser [ GETPOST ( 'assignedtouser' )] = array ( 'id' => GETPOST ( 'assignedtouser' ), 'transparency' => GETPOST ( 'transparency' ), 'mandatory' => 1 );
2015-04-23 23:29:31 +02:00
$_SESSION [ 'assignedtouser' ] = json_encode ( $assignedtouser );
2014-09-09 14:38:10 +02:00
}
$donotclearsession = 1 ;
2014-09-20 00:57:29 +02:00
if ( $action == 'add' ) $action = 'create' ;
if ( $action == 'update' ) $action = 'edit' ;
2015-11-05 22:13:08 +01:00
2015-11-05 11:11:03 +01:00
$listUserAssignedUpdated = true ;
2014-09-09 14:38:10 +02:00
}
2014-09-20 00:57:29 +02:00
2017-02-22 17:46:54 +01:00
// Link to a project
if ( $action == 'classin' && ( $user -> rights -> agenda -> allactions -> create ||
(( $object -> authorid == $user -> id || $object -> userownerid == $user -> id ) && $user -> rights -> agenda -> myactions -> create )))
{
$object -> fetch ( $id );
$object -> setProject ( GETPOST ( 'projectid' ));
}
2015-06-08 12:39:25 +02:00
// Action clone object
if ( $action == 'confirm_clone' && $confirm == 'yes' )
{
if ( 1 == 0 && ! GETPOST ( 'clone_content' ) && ! GETPOST ( 'clone_receivers' ))
{
2015-10-31 17:21:48 +01:00
setEventMessages ( $langs -> trans ( " NoCloneOptionsSpecified " ), null , 'errors' );
2015-06-08 12:39:25 +02:00
}
else
{
if ( $id > 0 ) {
$object -> fetch ( $id );
$result = $object -> createFromClone ( GETPOST ( 'fk_userowner' ), GETPOST ( 'socid' ));
if ( $result > 0 ) {
header ( " Location: " . $_SERVER [ 'PHP_SELF' ] . '?id=' . $result );
exit ();
} else {
2015-10-31 17:21:48 +01:00
setEventMessages ( $object -> error , $object -> errors , 'errors' );
2015-06-08 12:39:25 +02:00
$action = '' ;
}
}
}
}
2014-09-20 00:57:29 +02:00
// Add event
2014-09-15 19:04:30 +02:00
if ( $action == 'add' )
2002-12-19 19:59:23 +01:00
{
2011-11-07 17:31:03 +01:00
$error = 0 ;
2012-01-04 21:23:50 +01:00
2012-02-27 17:02:56 +01:00
if ( empty ( $backtopage ))
2010-12-13 18:06:04 +01:00
{
2011-03-27 03:20:10 +02:00
if ( $socid > 0 ) $backtopage = DOL_URL_ROOT . '/societe/agenda.php?socid=' . $socid ;
2010-12-13 18:06:04 +01:00
else $backtopage = DOL_URL_ROOT . '/comm/action/index.php' ;
}
2017-11-18 12:36:03 +01:00
if ( ! empty ( $socpeopleassigned [ 0 ]))
2009-03-03 01:20:21 +01:00
{
2017-11-18 12:36:03 +01:00
$result = $contact -> fetch ( $socpeopleassigned [ 0 ]);
2009-03-03 01:20:21 +01:00
}
2009-02-04 21:43:18 +01:00
2012-07-13 11:40:06 +02:00
if ( $cancel )
2008-01-26 14:18:47 +01:00
{
2008-04-17 14:15:20 +02:00
header ( " Location: " . $backtopage );
2009-02-04 21:43:18 +01:00
exit ;
2008-01-26 14:18:47 +01:00
}
2015-05-29 14:32:50 +02:00
$percentage = in_array ( GETPOST ( 'status' ), array ( - 1 , 100 )) ? GETPOST ( 'status' ) : ( in_array ( GETPOST ( 'complete' ), array ( - 1 , 100 )) ? GETPOST ( 'complete' ) : GETPOST ( " percentage " )); // If status is -1 or 100, percentage is not defined and we must use status
2010-11-18 23:17:44 +01:00
// Clean parameters
2017-10-17 10:43:37 +02:00
$datep = dol_mktime ( $fulldayevent ? '00' : GETPOST ( " aphour " , 'int' ), $fulldayevent ? '00' : GETPOST ( " apmin " , 'int' ), $fulldayevent ? '00' : GETPOST ( " apsec " , 'int' ), GETPOST ( " apmonth " , 'int' ), GETPOST ( " apday " , 'int' ), GETPOST ( " apyear " , 'int' ));
$datef = dol_mktime ( $fulldayevent ? '23' : GETPOST ( " p2hour " , 'int' ), $fulldayevent ? '59' : GETPOST ( " p2min " , 'int' ), $fulldayevent ? '59' : GETPOST ( " apsec " , 'int' ), GETPOST ( " p2month " , 'int' ), GETPOST ( " p2day " , 'int' ), GETPOST ( " p2year " , 'int' ));
2010-01-05 00:33:23 +01:00
2010-02-21 15:06:41 +01:00
// Check parameters
2012-09-02 14:26:40 +02:00
if ( ! $datef && $percentage == 100 )
2008-10-06 23:31:05 +02:00
{
2014-09-20 00:57:29 +02:00
$error ++ ; $donotclearsession = 1 ;
2011-04-09 13:52:11 +02:00
$action = 'create' ;
2015-10-17 16:18:33 +02:00
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " DateEnd " )), null , 'errors' );
2008-10-06 23:31:05 +02:00
}
2009-02-04 21:43:18 +01:00
2012-12-01 15:45:05 +01:00
if ( empty ( $conf -> global -> AGENDA_USE_EVENT_TYPE ) && ! GETPOST ( 'label' ))
{
2014-09-20 00:57:29 +02:00
$error ++ ; $donotclearsession = 1 ;
2012-12-01 15:45:05 +01:00
$action = 'create' ;
2015-10-17 16:18:33 +02:00
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " Title " )), null , 'errors' );
2012-12-01 15:45:05 +01:00
}
2008-04-15 10:34:36 +02:00
// Initialisation objet cactioncomm
2014-10-05 04:51:34 +02:00
if ( ! GETPOST ( 'actioncode' ) > 0 ) // actioncode is id
2009-03-03 01:20:21 +01:00
{
2014-09-20 00:57:29 +02:00
$error ++ ; $donotclearsession = 1 ;
2011-04-09 13:52:11 +02:00
$action = 'create' ;
2015-10-17 16:18:33 +02:00
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " Type " )), null , 'errors' );
2009-03-03 01:20:21 +01:00
}
2009-02-04 21:43:18 +01:00
else
2008-04-15 10:34:36 +02:00
{
2014-10-05 04:51:34 +02:00
$object -> type_code = GETPOST ( 'actioncode' );
2008-04-15 10:34:36 +02:00
}
2009-02-04 21:43:18 +01:00
2014-10-05 04:51:34 +02:00
if ( ! $error )
2008-04-15 10:34:36 +02:00
{
2014-10-05 04:51:34 +02:00
// Initialisation objet actioncomm
$object -> priority = GETPOST ( " priority " ) ? GETPOST ( " priority " ) : 0 ;
$object -> fulldayevent = ( ! empty ( $fulldayevent ) ? 1 : 0 );
$object -> location = GETPOST ( " location " );
$object -> label = trim ( GETPOST ( 'label' ));
$object -> fk_element = GETPOST ( " fk_element " );
$object -> elementtype = GETPOST ( " elementtype " );
if ( ! GETPOST ( 'label' ))
2008-04-15 10:34:36 +02:00
{
2014-10-05 04:51:34 +02:00
if ( GETPOST ( 'actioncode' ) == 'AC_RDV' && $contact -> getFullName ( $langs ))
2008-04-15 10:34:36 +02:00
{
2014-10-05 04:51:34 +02:00
$object -> label = $langs -> transnoentitiesnoconv ( " TaskRDVWith " , $contact -> getFullName ( $langs ));
}
else
{
if ( $langs -> trans ( " Action " . $object -> type_code ) != " Action " . $object -> type_code )
{
$object -> label = $langs -> transnoentitiesnoconv ( " Action " . $object -> type_code ) . " \n " ;
}
else $object -> label = $cactioncomm -> libelle ;
2008-04-15 10:34:36 +02:00
}
}
2014-10-05 04:51:34 +02:00
$object -> fk_project = isset ( $_POST [ " projectid " ]) ? $_POST [ " projectid " ] : 0 ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
$taskid = GETPOST ( 'taskid' , 'int' );
if ( ! empty ( $taskid )){
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
$taskProject = new Task ( $db );
if ( $taskProject -> fetch ( $taskid ) > 0 ){
$object -> fk_project = $taskProject -> fk_project ;
}
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
$object -> fk_element = $taskid ;
$object -> elementtype = 'task' ;
}
2018-11-11 14:36:35 +01:00
2014-10-05 04:51:34 +02:00
$object -> datep = $datep ;
$object -> datef = $datef ;
$object -> percentage = $percentage ;
$object -> duree = (( float ) ( GETPOST ( 'dureehour' ) * 60 ) + ( float ) GETPOST ( 'dureemin' )) * 60 ;
2006-09-16 02:14:11 +02:00
2015-08-14 13:01:20 +02:00
$transparency = ( GETPOST ( " transparency " ) == 'on' ? 1 : 0 );
2014-10-05 04:51:34 +02:00
$listofuserid = array ();
2015-06-10 18:45:10 +02:00
if ( ! empty ( $_SESSION [ 'assignedtouser' ])) $listofuserid = json_decode ( $_SESSION [ 'assignedtouser' ], true );
2014-10-05 04:51:34 +02:00
$i = 0 ;
foreach ( $listofuserid as $key => $value )
2014-09-20 00:57:29 +02:00
{
2014-10-05 04:51:34 +02:00
if ( $i == 0 ) // First entry
2014-09-20 00:57:29 +02:00
{
2014-10-13 00:50:51 +02:00
if ( $value [ 'id' ] > 0 ) $object -> userownerid = $value [ 'id' ];
2015-08-14 13:01:20 +02:00
$object -> transparency = $transparency ;
2014-09-20 00:57:29 +02:00
}
2015-08-14 13:01:20 +02:00
$object -> userassigned [ $value [ 'id' ]] = array ( 'id' => $value [ 'id' ], 'transparency' => $transparency );
2014-09-20 00:57:29 +02:00
2014-10-05 04:51:34 +02:00
$i ++ ;
}
2008-04-15 10:34:36 +02:00
}
2014-09-20 00:57:29 +02:00
2014-10-05 04:51:34 +02:00
if ( ! $error && ! empty ( $conf -> global -> AGENDA_ENABLE_DONEBY ))
2008-04-15 10:34:36 +02:00
{
2014-10-11 15:04:42 +02:00
if ( GETPOST ( " doneby " ) > 0 ) $object -> userdoneid = GETPOST ( " doneby " , " int " );
2008-04-15 10:34:36 +02:00
}
2009-02-04 21:43:18 +01:00
2016-12-26 18:21:18 +01:00
$object -> note = trim ( GETPOST ( " note " ));
2014-09-24 01:35:29 +02:00
2014-01-30 00:40:00 +01:00
if ( isset ( $_POST [ " contactid " ])) $object -> contact = $contact ;
2014-09-24 01:35:29 +02:00
2012-02-27 22:26:22 +01:00
if ( GETPOST ( 'socid' , 'int' ) > 0 )
2008-04-15 10:34:36 +02:00
{
2014-10-05 04:51:34 +02:00
$object -> socid = GETPOST ( 'socid' , 'int' );
$object -> fetch_thirdparty ();
$object -> societe = $object -> thirdparty ; // For backward compatibility
2008-04-15 10:34:36 +02:00
}
2008-05-07 02:50:24 +02:00
2008-09-09 19:57:12 +02:00
// Check parameters
2014-11-03 20:02:11 +01:00
if ( empty ( $object -> userownerid ) && empty ( $_SESSION [ 'assignedtouser' ]))
2014-09-20 00:57:29 +02:00
{
$error ++ ; $donotclearsession = 1 ;
$action = 'create' ;
2015-10-17 16:18:33 +02:00
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " ActionsOwnedBy " )), null , 'errors' );
2014-09-20 00:57:29 +02:00
}
2014-01-30 00:40:00 +01:00
if ( $object -> type_code == 'AC_RDV' && ( $datep == '' || ( $datef == '' && empty ( $fulldayevent ))))
2008-09-09 19:57:12 +02:00
{
2014-09-20 00:57:29 +02:00
$error ++ ; $donotclearsession = 1 ;
2011-04-09 13:52:11 +02:00
$action = 'create' ;
2015-10-17 16:18:33 +02:00
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " DateEnd " )), null , 'errors' );
2008-09-09 19:57:12 +02:00
}
2009-02-04 21:43:18 +01:00
2012-08-20 11:04:56 +02:00
if ( ! GETPOST ( 'apyear' ) && ! GETPOST ( 'adyear' ))
2009-03-03 01:20:21 +01:00
{
2014-09-20 00:57:29 +02:00
$error ++ ; $donotclearsession = 1 ;
2011-04-09 13:52:11 +02:00
$action = 'create' ;
2015-10-17 16:18:33 +02:00
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " Date " )), null , 'errors' );
2009-03-03 01:20:21 +01:00
}
2017-11-18 12:36:03 +01:00
foreach ( $socpeopleassigned as $cid )
{
$object -> socpeopleassigned [ $cid ] = array ( 'id' => $cid );
}
if ( ! empty ( $object -> socpeopleassigned ))
{
reset ( $object -> socpeopleassigned );
$object -> contactid = key ( $object -> socpeopleassigned );
}
2017-11-22 14:42:47 +01:00
2013-04-01 19:43:26 +02:00
// Fill array 'array_options' with data from add form
2014-01-30 00:40:00 +01:00
$ret = $extrafields -> setOptionalsFromPost ( $extralabels , $object );
2015-02-26 14:25:30 +01:00
if ( $ret < 0 ) $error ++ ;
2012-12-08 12:49:20 +01:00
2009-03-03 01:20:21 +01:00
if ( ! $error )
{
$db -> begin ();
// On cree l'action
2016-04-16 21:41:06 +02:00
$idaction = $object -> create ( $user );
2009-03-03 01:20:21 +01:00
if ( $idaction > 0 )
{
2014-01-30 00:40:00 +01:00
if ( ! $object -> error )
2009-03-03 01:20:21 +01:00
{
2014-09-23 16:15:15 +02:00
unset ( $_SESSION [ 'assignedtouser' ]);
2014-10-14 00:27:23 +02:00
$moreparam = '' ;
2017-05-05 18:42:11 +02:00
if ( $user -> id != $object -> userownerid ) $moreparam = " filtert=-1 " ; // We force to remove filter so created record is visible when going back to per user view.
2014-10-13 17:45:52 +02:00
2009-03-03 01:20:21 +01:00
$db -> commit ();
2010-12-13 18:06:04 +01:00
if ( ! empty ( $backtopage ))
2009-03-03 01:20:21 +01:00
{
2014-10-14 00:27:23 +02:00
dol_syslog ( " Back to " . $backtopage . ( $moreparam ? ( preg_match ( '/\?/' , $backtopage ) ? '&' . $moreparam : '?' . $moreparam ) : '' ));
header ( " Location: " . $backtopage . ( $moreparam ? ( preg_match ( '/\?/' , $backtopage ) ? '&' . $moreparam : '?' . $moreparam ) : '' ));
2009-03-03 01:20:21 +01:00
}
elseif ( $idaction )
{
2014-10-14 00:27:23 +02:00
header ( " Location: " . DOL_URL_ROOT . '/comm/action/card.php?id=' . $idaction . ( $moreparam ? '&' . $moreparam : '' ));
2009-03-03 01:20:21 +01:00
}
else
{
2014-10-13 17:45:52 +02:00
header ( " Location: " . DOL_URL_ROOT . '/comm/action/index.php' . ( $moreparam ? '?' . $moreparam : '' ));
2009-03-03 01:20:21 +01:00
}
exit ;
}
else
{
2012-12-30 13:49:37 +01:00
// If error
2009-03-03 01:20:21 +01:00
$db -> rollback ();
2009-01-07 14:40:07 +01:00
$langs -> load ( " errors " );
2014-01-30 00:40:00 +01:00
$error = $langs -> trans ( $object -> error );
2015-10-31 17:21:48 +01:00
setEventMessages ( $error , null , 'errors' );
2014-09-20 00:57:29 +02:00
$action = 'create' ; $donotclearsession = 1 ;
2009-03-03 01:20:21 +01:00
}
}
else
{
$db -> rollback ();
2014-09-20 00:57:29 +02:00
setEventMessages ( $object -> error , $object -> errors , 'errors' );
$action = 'create' ; $donotclearsession = 1 ;
2009-07-22 22:41:50 +02:00
}
2009-03-03 01:20:21 +01:00
}
2003-08-03 14:18:29 +02:00
}
2004-10-02 16:24:43 +02:00
/*
2012-09-02 14:10:51 +02:00
* Action update event
2004-10-02 16:24:43 +02:00
*/
2011-04-09 13:52:11 +02:00
if ( $action == 'update' )
2003-08-03 19:26:19 +02:00
{
2012-08-20 11:04:56 +02:00
if ( empty ( $cancel ))
2009-03-03 01:20:21 +01:00
{
2012-08-20 11:04:56 +02:00
$fulldayevent = GETPOST ( 'fullday' );
$aphour = GETPOST ( 'aphour' );
$apmin = GETPOST ( 'apmin' );
$p2hour = GETPOST ( 'p2hour' );
$p2min = GETPOST ( 'p2min' );
2014-09-15 19:04:30 +02:00
$percentage = in_array ( GETPOST ( 'status' ), array ( - 1 , 100 )) ? GETPOST ( 'status' ) : ( in_array ( GETPOST ( 'complete' ), array ( - 1 , 100 )) ? GETPOST ( 'complete' ) : GETPOST ( " percentage " )); // If status is -1 or 100, percentage is not defined and we must use status
2010-11-18 23:17:44 +01:00
// Clean parameters
2012-08-20 11:04:56 +02:00
if ( $aphour == - 1 ) $aphour = '0' ;
if ( $apmin == - 1 ) $apmin = '0' ;
if ( $p2hour == - 1 ) $p2hour = '0' ;
if ( $p2min == - 1 ) $p2min = '0' ;
2006-09-16 02:14:11 +02:00
2014-01-30 00:40:00 +01:00
$object -> fetch ( $id );
2014-09-23 16:15:15 +02:00
$object -> fetch_userassigned ();
2006-09-10 15:46:25 +02:00
2012-08-20 11:04:56 +02:00
$datep = dol_mktime ( $fulldayevent ? '00' : $aphour , $fulldayevent ? '00' : $apmin , 0 , $_POST [ " apmonth " ], $_POST [ " apday " ], $_POST [ " apyear " ]);
$datef = dol_mktime ( $fulldayevent ? '23' : $p2hour , $fulldayevent ? '59' : $p2min , $fulldayevent ? '59' : '0' , $_POST [ " p2month " ], $_POST [ " p2day " ], $_POST [ " p2year " ]);
2011-08-24 14:19:32 +02:00
2017-09-21 11:35:18 +02:00
$object -> type_id = dol_getIdFromCode ( $db , GETPOST ( " actioncode " ), 'c_actioncomm' );
2014-10-03 15:58:08 +02:00
$object -> label = GETPOST ( " label " );
2014-01-30 00:40:00 +01:00
$object -> datep = $datep ;
$object -> datef = $datef ;
$object -> percentage = $percentage ;
2014-10-03 15:58:08 +02:00
$object -> priority = GETPOST ( " priority " );
$object -> fulldayevent = GETPOST ( " fullday " ) ? 1 : 0 ;
2014-01-30 00:40:00 +01:00
$object -> location = GETPOST ( 'location' );
2014-10-03 15:58:08 +02:00
$object -> socid = GETPOST ( " socid " );
2017-11-18 12:36:03 +01:00
$socpeopleassigned = GETPOST ( " socpeopleassigned " , 'array' );
2018-05-24 13:32:13 +02:00
$object -> socpeopleassigned = array ();
2017-11-18 12:36:03 +01:00
foreach ( $socpeopleassigned as $cid ) $object -> socpeopleassigned [ $cid ] = array ( 'id' => $cid );
2014-10-03 18:04:13 +02:00
$object -> contactid = GETPOST ( " contactid " , 'int' );
$object -> fk_project = GETPOST ( " projectid " , 'int' );
2014-10-03 15:58:08 +02:00
$object -> note = GETPOST ( " note " );
$object -> pnote = GETPOST ( " note " );
$object -> fk_element = GETPOST ( " fk_element " );
$object -> elementtype = GETPOST ( " elementtype " );
2014-09-15 19:04:30 +02:00
2012-09-02 14:10:51 +02:00
if ( ! $datef && $percentage == 100 )
2009-03-03 01:20:21 +01:00
{
2014-09-20 00:57:29 +02:00
$error ++ ; $donotclearsession = 1 ;
2015-09-12 12:52:07 +02:00
setEventMessages ( $langs -> transnoentitiesnoconv ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " DateEnd " )), $object -> errors , 'errors' );
2011-04-09 13:52:11 +02:00
$action = 'edit' ;
2009-03-03 01:20:21 +01:00
}
2014-09-29 13:21:03 +02:00
$transparency = ( GETPOST ( " transparency " ) == 'on' ? 1 : 0 );
2008-02-11 16:51:03 +01:00
// Users
2014-09-23 16:15:15 +02:00
$listofuserid = array ();
2014-09-29 13:21:03 +02:00
if ( ! empty ( $_SESSION [ 'assignedtouser' ])) // Now concat assigned users
2008-02-11 16:51:03 +01:00
{
2014-09-23 16:15:15 +02:00
// Restore array with key with same value than param 'id'
2017-11-24 20:02:46 +01:00
$tmplist1 = json_decode ( $_SESSION [ 'assignedtouser' ], true );
2014-09-23 16:15:15 +02:00
foreach ( $tmplist1 as $key => $val )
2014-09-20 00:57:29 +02:00
{
2014-10-03 18:25:38 +02:00
if ( $val [ 'id' ] > 0 && $val [ 'id' ] != $assignedtouser ) $listofuserid [ $val [ 'id' ]] = $val ;
2014-09-20 00:57:29 +02:00
}
2014-09-23 16:15:15 +02:00
}
2014-10-14 00:27:23 +02:00
else {
$assignedtouser = ( ! empty ( $object -> userownerid ) && $object -> userownerid > 0 ? $object -> userownerid : 0 );
if ( $assignedtouser ) $listofuserid [ $assignedtouser ] = array ( 'id' => $assignedtouser , 'mandatory' => 0 , 'transparency' => ( $user -> id == $assignedtouser ? $transparency : '' )); // Owner first
}
$object -> userassigned = array (); $object -> userownerid = 0 ; // Clear old content
$i = 0 ;
2014-09-23 16:15:15 +02:00
foreach ( $listofuserid as $key => $val )
{
2014-10-14 00:27:23 +02:00
if ( $i == 0 ) $object -> userownerid = $val [ 'id' ];
2014-09-29 13:21:03 +02:00
$object -> userassigned [ $val [ 'id' ]] = array ( 'id' => $val [ 'id' ], 'mandatory' => 0 , 'transparency' => ( $user -> id == $val [ 'id' ] ? $transparency : '' ));
2014-10-14 00:27:23 +02:00
$i ++ ;
2008-02-11 16:51:03 +01:00
}
2013-04-06 17:39:31 +02:00
2015-08-14 13:01:20 +02:00
$object -> transparency = $transparency ; // We set transparency on event (even if we can also store it on each user, standard says this property is for event)
2017-11-24 20:02:46 +01:00
// TODO store also transparency on owner user
2015-08-14 13:01:20 +02:00
2014-09-20 00:57:29 +02:00
if ( ! empty ( $conf -> global -> AGENDA_ENABLE_DONEBY ))
2008-02-11 16:51:03 +01:00
{
2014-10-11 15:04:42 +02:00
if ( GETPOST ( " doneby " )) $object -> userdoneid = GETPOST ( " doneby " , " int " );
2014-09-20 00:57:29 +02:00
}
// Check parameters
if ( ! GETPOST ( 'actioncode' ) > 0 )
{
$error ++ ; $donotclearsession = 1 ;
$action = 'edit' ;
2015-10-17 16:18:33 +02:00
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " Type " )), null , 'errors' );
2014-09-20 00:57:29 +02:00
}
else
{
$result = $cactioncomm -> fetch ( GETPOST ( 'actioncode' ));
}
2014-10-11 15:04:42 +02:00
if ( empty ( $object -> userownerid ))
2014-09-20 00:57:29 +02:00
{
$error ++ ; $donotclearsession = 1 ;
$action = 'edit' ;
2015-10-17 16:18:33 +02:00
setEventMessages ( $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentitiesnoconv ( " ActionsOwnedBy " )), null , 'errors' );
2008-02-11 16:51:03 +01:00
}
2013-04-01 19:43:26 +02:00
// Fill array 'array_options' with data from add form
2014-01-30 00:40:00 +01:00
$ret = $extrafields -> setOptionalsFromPost ( $extralabels , $object );
2015-02-26 14:25:30 +01:00
if ( $ret < 0 ) $error ++ ;
2012-12-21 17:56:40 +01:00
2008-04-16 03:04:12 +02:00
if ( ! $error )
{
$db -> begin ();
2009-01-04 23:19:25 +01:00
2014-01-30 00:40:00 +01:00
$result = $object -> update ( $user );
2009-02-04 21:43:18 +01:00
2008-04-16 03:04:12 +02:00
if ( $result > 0 )
{
2014-09-23 16:15:15 +02:00
unset ( $_SESSION [ 'assignedtouser' ]);
2008-04-16 03:04:12 +02:00
$db -> commit ();
}
else
{
2014-09-20 00:57:29 +02:00
setEventMessages ( $object -> error , $object -> errors , 'errors' );
2008-04-16 03:04:12 +02:00
$db -> rollback ();
2009-02-04 21:43:18 +01:00
}
2008-04-16 03:04:12 +02:00
}
2009-03-03 01:20:21 +01:00
}
2006-09-16 02:14:11 +02:00
2014-09-20 00:57:29 +02:00
if ( ! $error )
2009-03-03 01:20:21 +01:00
{
2012-02-27 17:02:56 +01:00
if ( ! empty ( $backtopage ))
2010-12-13 18:06:04 +01:00
{
2014-09-23 16:15:15 +02:00
unset ( $_SESSION [ 'assignedtouser' ]);
2012-02-27 17:02:56 +01:00
header ( " Location: " . $backtopage );
2010-12-13 18:06:04 +01:00
exit ;
}
2009-03-03 01:20:21 +01:00
}
2003-08-03 19:26:19 +02:00
}
2003-08-03 14:18:29 +02:00
2014-09-20 00:57:29 +02:00
/*
* delete event
*/
if ( $action == 'confirm_delete' && GETPOST ( " confirm " ) == 'yes' )
{
$object -> fetch ( $id );
if ( $user -> rights -> agenda -> myactions -> delete
|| $user -> rights -> agenda -> allactions -> delete )
{
$result = $object -> delete ();
if ( $result >= 0 )
{
header ( " Location: index.php " );
exit ;
}
else
{
setEventMessages ( $object -> error , $object -> errors , 'errors' );
}
}
}
2014-08-08 14:25:14 +02:00
/*
* Action move update , used when user move an event in calendar by drag ' n drop
2017-11-25 00:12:45 +01:00
* TODO Move this into page comm / action / index that trigger this call by the drag and drop of event .
2014-08-08 14:25:14 +02:00
*/
2017-11-25 00:12:45 +01:00
if ( GETPOST ( 'actionmove' , 'alpha' ) == 'mupdate' )
2014-08-08 14:25:14 +02:00
{
$object -> fetch ( $id );
2014-09-23 16:15:15 +02:00
$object -> fetch_userassigned ();
2014-08-08 14:25:14 +02:00
$shour = dol_print_date ( $object -> datep , " %H " );
$smin = dol_print_date ( $object -> datep , " %M " );
2014-09-07 19:56:17 +02:00
2014-08-08 14:25:14 +02:00
$newdate = GETPOST ( 'newdate' , 'alpha' );
if ( empty ( $newdate ) || strpos ( $newdate , 'dayevent_' ) != 0 )
{
2017-11-25 00:12:45 +01:00
header ( " Location: " . $backtopage );
2014-08-08 14:25:14 +02:00
exit ;
}
2011-04-09 13:52:11 +02:00
2014-08-08 15:00:03 +02:00
$datep = dol_mktime ( $shour , $smin , 0 , substr ( $newdate , 13 , 2 ), substr ( $newdate , 15 , 2 ), substr ( $newdate , 9 , 4 ));
2014-08-08 14:25:14 +02:00
if ( $datep != $object -> datep )
2014-09-07 19:56:17 +02:00
{
2014-08-08 14:25:14 +02:00
if ( ! empty ( $object -> datef ))
{
$object -> datef += $datep - $object -> datep ;
}
$object -> datep = $datep ;
$result = $object -> update ( $user );
if ( $result < 0 )
{
2015-10-31 17:21:48 +01:00
setEventMessages ( $object -> error , $object -> errors , 'errors' );
2014-09-07 19:56:17 +02:00
}
2014-08-08 14:25:14 +02:00
}
if ( ! empty ( $backtopage ))
{
header ( " Location: " . $backtopage );
exit ;
}
2014-09-07 19:56:17 +02:00
else
2014-08-08 14:25:14 +02:00
{
$action = '' ;
}
}
2014-09-07 19:56:17 +02:00
2017-08-22 18:33:00 +02:00
// Actions to delete doc
$upload_dir = $conf -> agenda -> dir_output . '/' . dol_sanitizeFileName ( $object -> ref );
2017-10-18 17:40:47 +02:00
$permissioncreate = ( $user -> rights -> agenda -> allactions -> create || (( $object -> authorid == $user -> id || $object -> userownerid == $user -> id ) && $user -> rights -> agenda -> myactions -> read ));
2017-08-22 18:33:00 +02:00
include DOL_DOCUMENT_ROOT . '/core/actions_builddoc.inc.php' ;
2014-09-07 19:56:17 +02:00
2008-10-06 23:31:05 +02:00
/*
* View
*/
2017-12-12 10:37:51 +01:00
$form = new Form ( $db );
2017-07-29 02:11:45 +02:00
$formproject = new FormProjets ( $db );
2009-08-24 19:11:30 +02:00
$help_url = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:M&omodulodulo_Agenda' ;
llxHeader ( '' , $langs -> trans ( " Agenda " ), $help_url );
2004-08-07 01:39:54 +02:00
2011-04-09 13:52:11 +02:00
if ( $action == 'create' )
2003-08-03 19:26:19 +02:00
{
2009-03-07 02:19:28 +01:00
$contact = new Contact ( $db );
2017-11-18 12:36:03 +01:00
$socpeopleassigned = GETPOST ( " socpeopleassigned " , 'array' );
if ( ! empty ( $socpeopleassigned [ 0 ]))
2006-09-05 01:55:19 +02:00
{
2017-11-18 12:36:03 +01:00
$result = $contact -> fetch ( $socpeopleassigned [ 0 ]);
2009-03-07 02:19:28 +01:00
if ( $result < 0 ) dol_print_error ( $db , $contact -> error );
2006-09-05 01:55:19 +02:00
}
2003-08-29 22:22:27 +02:00
2013-02-19 13:24:32 +01:00
dol_set_focus ( " #label " );
2013-04-03 18:37:54 +02:00
2012-07-13 11:40:06 +02:00
if ( ! empty ( $conf -> use_javascript_ajax ))
2010-08-29 20:23:56 +02:00
{
2012-11-13 16:20:15 +01:00
print " \n " . '<script type="text/javascript">' ;
print ' $ ( document ) . ready ( function () {
function setdatefields ()
{
if ( $ ( " #fullday:checked " ) . val () == null ) {
$ ( " .fulldaystarthour " ) . removeAttr ( " disabled " );
$ ( " .fulldaystartmin " ) . removeAttr ( " disabled " );
$ ( " .fulldayendhour " ) . removeAttr ( " disabled " );
$ ( " .fulldayendmin " ) . removeAttr ( " disabled " );
2012-12-01 15:45:05 +01:00
$ ( " #p2 " ) . removeAttr ( " disabled " );
2012-11-13 16:20:15 +01:00
} else {
2015-05-12 14:47:33 +02:00
$ ( " .fulldaystarthour " ) . prop ( " disabled " , true ) . val ( " 00 " );
$ ( " .fulldaystartmin " ) . prop ( " disabled " , true ) . val ( " 00 " );
$ ( " .fulldayendhour " ) . prop ( " disabled " , true ) . val ( " 23 " );
$ ( " .fulldayendmin " ) . prop ( " disabled " , true ) . val ( " 59 " );
$ ( " #p2 " ) . removeAttr ( " disabled " );
2012-11-13 16:20:15 +01:00
}
}
2010-11-18 23:17:44 +01:00
setdatefields ();
2012-11-13 16:20:15 +01:00
$ ( " #fullday " ) . change ( function () {
2010-11-18 23:17:44 +01:00
setdatefields ();
2010-08-29 20:23:56 +02:00
});
2012-11-13 16:20:15 +01:00
$ ( " #selectcomplete " ) . change ( function () {
if ( $ ( " #selectcomplete " ) . val () == 100 )
2011-03-19 20:06:15 +01:00
{
2012-11-13 16:20:15 +01:00
if ( $ ( " #doneby " ) . val () <= 0 ) $ ( " #doneby " ) . val ( \ '' . $user -> id . ' \ ' );
2011-03-19 20:06:15 +01:00
}
2012-11-13 16:20:15 +01:00
if ( $ ( " #selectcomplete " ) . val () == 0 )
2011-03-19 20:06:15 +01:00
{
2012-11-13 16:20:15 +01:00
$ ( " #doneby " ) . val ( - 1 );
2011-03-19 20:06:15 +01:00
}
});
2012-11-13 16:20:15 +01:00
$ ( " #actioncode " ) . change ( function () {
if ( $ ( " #actioncode " ) . val () == \ ' AC_RDV\ ' ) $ ( " #dateend " ) . addClass ( " fieldrequired " );
else $ ( " #dateend " ) . removeClass ( " fieldrequired " );
2011-04-09 13:52:11 +02:00
});
2010-08-29 20:23:56 +02:00
}) ' ;
print '</script>' . " \n " ;
}
2012-11-13 16:20:15 +01:00
print '<form name="formaction" action="' . $_SERVER [ 'PHP_SELF' ] . '" method="POST">' ;
2009-05-17 10:01:54 +02:00
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
2014-09-15 19:04:30 +02:00
print '<input type="hidden" name="action" value="add">' ;
2014-10-03 15:58:08 +02:00
print '<input type="hidden" name="donotclearsession" value="1">' ;
2012-05-12 15:53:57 +02:00
if ( $backtopage ) print '<input type="hidden" name="backtopage" value="' . ( $backtopage != '1' ? $backtopage : $_SERVER [ " HTTP_REFERER " ]) . '">' ;
2014-10-05 04:51:34 +02:00
if ( empty ( $conf -> global -> AGENDA_USE_EVENT_TYPE )) print '<input type="hidden" name="actioncode" value="' . dol_getIdFromCode ( $db , 'AC_OTH' , 'c_actioncomm' ) . '">' ;
2002-05-09 16:57:48 +02:00
2016-09-19 10:43:30 +02:00
if ( GETPOST ( " actioncode " ) == 'AC_RDV' ) print load_fiche_titre ( $langs -> trans ( " AddActionRendezVous " ), '' , 'title_agenda' );
else print load_fiche_titre ( $langs -> trans ( " AddAnAction " ), '' , 'title_agenda' );
2004-08-07 01:39:54 +02:00
2015-05-20 21:50:38 +02:00
dol_fiche_head ();
2008-04-16 03:04:12 +02:00
print '<table class="border" width="100%">' ;
2009-02-04 21:43:18 +01:00
2014-10-03 18:04:13 +02:00
// Type of event
2012-12-01 15:45:05 +01:00
if ( ! empty ( $conf -> global -> AGENDA_USE_EVENT_TYPE ))
2008-04-16 03:04:12 +02:00
{
2016-04-04 15:20:21 +02:00
print '<tr><td class="titlefieldcreate"><span class="fieldrequired">' . $langs -> trans ( " Type " ) . '</span></b></td><td>' ;
2015-09-29 14:17:03 +02:00
$default = ( empty ( $conf -> global -> AGENDA_USE_EVENT_TYPE_DEFAULT ) ? '' : $conf -> global -> AGENDA_USE_EVENT_TYPE_DEFAULT );
2016-01-07 11:01:37 +01:00
$formactions -> select_type_actions ( GETPOST ( " actioncode " ) ? GETPOST ( " actioncode " ) : ( $object -> type_code ? $object -> type_code : $default ), " actioncode " , " systemauto " , 0 , - 1 );
2012-12-01 15:45:05 +01:00
print '</td></tr>' ;
2008-04-16 03:04:12 +02:00
}
2005-02-09 22:15:28 +01:00
2008-09-09 19:57:12 +02:00
// Title
2017-09-13 15:12:54 +02:00
print '<tr><td' . ( empty ( $conf -> global -> AGENDA_USE_EVENT_TYPE ) ? ' class="fieldrequired titlefieldcreate"' : '' ) . '>' . $langs -> trans ( " Label " ) . '</td><td><input type="text" id="label" name="label" class="soixantepercent" value="' . GETPOST ( 'label' ) . '"></td></tr>' ;
2009-02-04 21:43:18 +01:00
2010-11-18 23:17:44 +01:00
// Full day
2015-05-07 11:39:26 +02:00
print '<tr><td>' . $langs -> trans ( " EventOnFullDay " ) . '</td><td><input type="checkbox" id="fullday" name="fullday" ' . ( GETPOST ( 'fullday' ) ? ' checked' : '' ) . '></td></tr>' ;
2013-12-15 14:26:27 +01:00
2010-11-08 02:25:36 +01:00
// Date start
2014-09-09 14:38:10 +02:00
$datep = ( $datep ? $datep : $object -> datep );
2010-11-21 17:11:52 +01:00
if ( GETPOST ( 'datep' , 'int' , 1 )) $datep = dol_stringtotime ( GETPOST ( 'datep' , 'int' , 1 ), 0 );
2016-04-04 15:20:21 +02:00
print '<tr><td class="nowrap"><span class="fieldrequired">' . $langs -> trans ( " DateActionStart " ) . '</span></td><td>' ;
2018-09-09 10:40:00 +02:00
if ( GETPOST ( " afaire " ) == 1 ) {
2018-09-09 11:30:40 +02:00
print $form -> selectDate ( $datep , 'ap' , 1 , 1 , 0 , " action " , 1 , 1 , 0 , 'fulldayend' );
2018-09-09 10:40:00 +02:00
} elseif ( GETPOST ( " afaire " ) == 2 ) {
print $form -> selectDate ( $datep , 'ap' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldayend' );
} else {
print $form -> selectDate ( $datep , 'ap' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldaystart' );
}
2010-11-08 02:25:36 +01:00
print '</td></tr>' ;
2014-09-09 14:38:10 +02:00
2010-11-08 02:25:36 +01:00
// Date end
2014-09-09 14:38:10 +02:00
$datef = ( $datef ? $datef : $object -> datef );
2010-11-21 17:11:52 +01:00
if ( GETPOST ( 'datef' , 'int' , 1 )) $datef = dol_stringtotime ( GETPOST ( 'datef' , 'int' , 1 ), 0 );
2014-09-15 10:19:08 +02:00
if ( empty ( $datef ) && ! empty ( $datep ) && ! empty ( $conf -> global -> AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS ))
{
$datef = dol_time_plus_duree ( $datep , $conf -> global -> AGENDA_AUTOSET_END_DATE_WITH_DELTA_HOURS , 'h' );
}
2011-04-09 13:52:11 +02:00
print '<tr><td><span id="dateend"' . ( GETPOST ( " actioncode " ) == 'AC_RDV' ? ' class="fieldrequired"' : '' ) . '>' . $langs -> trans ( " DateActionEnd " ) . '</span></td><td>' ;
2018-09-09 10:40:00 +02:00
if ( GETPOST ( " afaire " ) == 1 ) {
print $form -> selectDate ( $datef , 'p2' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldayend' );
} elseif ( GETPOST ( " afaire " ) == 2 ) {
print $form -> selectDate ( $datef , 'p2' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldayend' );
} else {
print $form -> selectDate ( $datef , 'p2' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldayend' );
}
2010-11-08 02:25:36 +01:00
print '</td></tr>' ;
2018-09-09 10:40:00 +02:00
// Dev in progress
$userepeatevent = ( $conf -> global -> MAIN_FEATURES_LEVEL == 2 ? 1 : 0 );
2017-11-22 14:42:47 +01:00
if ( $userepeatevent )
{
// Repeat
print '<tr><td>' . $langs -> trans ( " RepeatEvent " ) . '</td><td colspan="3">' ;
print '<input type="hidden" name="recurid" value="' . $object -> recurid . '">' ;
$arrayrecurrulefreq = array (
'no' => $langs -> trans ( " No " ),
'MONTHLY' => $langs -> trans ( " EveryMonth " ),
'WEEKLY' => $langs -> trans ( " EveryWeek " ),
//'DAYLY'=>$langs->trans("EveryDay")
);
$selectedrecurrulefreq = 'no' ;
$selectedrecurrulebymonthday = '' ;
$selectedrecurrulebyday = '' ;
if ( $object -> recurrule && preg_match ( '/FREQ=([A-Z]+)/i' , $object -> recurrule , $reg )) $selectedrecurrulefreq = $reg [ 1 ];
if ( $object -> recurrule && preg_match ( '/FREQ=MONTHLY.*BYMONTHDAY=(\d+)/i' , $object -> recurrule , $reg )) $selectedrecurrulebymonthday = $reg [ 1 ];
if ( $object -> recurrule && preg_match ( '/FREQ=WEEKLY.*BYDAY(\d+)/i' , $object -> recurrule , $reg )) $selectedrecurrulebyday = $reg [ 1 ];
print $form -> selectarray ( 'recurrulefreq' , $arrayrecurrulefreq , $selectedrecurrulefreq , 0 , 0 , 0 , '' , 0 , 0 , 0 , '' , 'marginrightonly' );
// If recurrulefreq is MONTHLY
print '<div class="hidden marginrightonly inline-block repeateventBYMONTHDAY">' ;
print $langs -> trans ( " DayOfMonth " ) . ': <input type="input" size="2" name="BYMONTHDAY" value="' . $selectedrecurrulebymonthday . '">' ;
print '</div>' ;
// If recurrulefreq is WEEKLY
print '<div class="hidden marginrightonly inline-block repeateventBYDAY">' ;
print $langs -> trans ( " DayOfWeek " ) . ': <input type="input" size="4" name="BYDAY" value="' . $selectedrecurrulebyday . '">' ;
print '</div>' ;
print ' < script type = " text/javascript " language = " javascript " >
jQuery ( document ) . ready ( function () {
function init_repeat ()
{
if ( jQuery ( " #recurrulefreq " ) . val () == \ ' MONTHLY\ ' )
{
jQuery ( " .repeateventBYMONTHDAY " ) . css ( " display " , " inline-block " ); /* use this instead of show because we want inline-block and not block */
jQuery ( " .repeateventBYDAY " ) . hide ();
}
else if ( jQuery ( " #recurrulefreq " ) . val () == \ ' WEEKLY\ ' )
{
jQuery ( " .repeateventBYMONTHDAY " ) . hide ();
jQuery ( " .repeateventBYDAY " ) . css ( " display " , " inline-block " ); /* use this instead of show because we want inline-block and not block */
}
else
{
jQuery ( " .repeateventBYMONTHDAY " ) . hide ();
jQuery ( " .repeateventBYDAY " ) . hide ();
}
}
init_repeat ();
jQuery ( " #recurrulefreq " ) . change ( function () {
init_repeat ();
});
});
</ script > ' ;
print '</td></tr>' ;
}
2010-11-20 19:41:09 +01:00
// Status
2016-04-04 15:20:21 +02:00
print '<tr><td>' . $langs -> trans ( " Status " ) . ' / ' . $langs -> trans ( " Percentage " ) . '</td>' ;
2010-11-08 02:25:36 +01:00
print '<td>' ;
2011-03-19 20:06:15 +01:00
$percent =- 1 ;
2014-09-09 14:38:10 +02:00
if ( isset ( $_GET [ 'status' ]) || isset ( $_POST [ 'status' ])) $percent = GETPOST ( 'status' );
else if ( isset ( $_GET [ 'percentage' ]) || isset ( $_POST [ 'percentage' ])) $percent = GETPOST ( 'percentage' );
2010-11-08 02:25:36 +01:00
else
{
2014-09-09 14:38:10 +02:00
if ( GETPOST ( 'complete' ) == '0' || GETPOST ( " afaire " ) == 1 ) $percent = '0' ;
else if ( GETPOST ( 'complete' ) == 100 || GETPOST ( " afaire " ) == 2 ) $percent = 100 ;
2010-11-08 02:25:36 +01:00
}
2017-05-05 20:41:44 +02:00
$formactions -> form_select_status_action ( 'formaction' , $percent , 1 , 'complete' , 0 , 0 , 'maxwidth200' );
2010-11-08 02:25:36 +01:00
print '</td></tr>' ;
2010-11-20 19:41:09 +01:00
// Location
2014-09-22 20:16:58 +02:00
if ( empty ( $conf -> global -> AGENDA_DISABLE_LOCATION ))
{
2017-11-22 14:42:47 +01:00
print '<tr><td>' . $langs -> trans ( " Location " ) . '</td><td colspan="3"><input type="text" name="location" class="soixantepercent" value="' . ( GETPOST ( 'location' ) ? GETPOST ( 'location' ) : $object -> location ) . '"></td></tr>' ;
2014-09-22 20:16:58 +02:00
}
2010-11-20 19:41:09 +01:00
2014-08-03 23:32:36 +02:00
// Assigned to
2015-05-31 01:06:51 +02:00
print '<tr><td class="tdtop nowrap">' . $langs -> trans ( " ActionAffectedTo " ) . '</td><td>' ;
2014-09-23 16:15:15 +02:00
$listofuserid = array ();
2014-09-09 14:38:10 +02:00
if ( empty ( $donotclearsession ))
{
2014-09-29 13:21:03 +02:00
$assignedtouser = GETPOST ( " assignedtouser " ) ? GETPOST ( " assignedtouser " ) : ( ! empty ( $object -> userownerid ) && $object -> userownerid > 0 ? $object -> userownerid : $user -> id );
2014-09-23 16:15:15 +02:00
if ( $assignedtouser ) $listofuserid [ $assignedtouser ] = array ( 'id' => $assignedtouser , 'mandatory' => 0 , 'transparency' => $object -> transparency ); // Owner first
2017-11-22 14:42:47 +01:00
$listofuserid [ $user -> id ][ 'transparency' ] = GETPOSTISSET ( 'transparency' ) ? GETPOST ( 'transparency' , 'alpha' ) : 1 ; // 1 by default at first init
2015-04-23 23:29:31 +02:00
$_SESSION [ 'assignedtouser' ] = json_encode ( $listofuserid );
2014-09-09 14:38:10 +02:00
}
2014-10-05 03:44:20 +02:00
else
{
if ( ! empty ( $_SESSION [ 'assignedtouser' ]))
{
2015-04-23 23:29:31 +02:00
$listofuserid = json_decode ( $_SESSION [ 'assignedtouser' ], true );
2014-10-05 03:44:20 +02:00
}
2017-11-22 14:42:47 +01:00
$listofuserid [ $user -> id ][ 'transparency' ] = GETPOSTISSET ( 'transparency' ) ? GETPOST ( 'transparency' , 'alpha' ) : 0 ; // 0 by default when refreshing
2014-10-05 03:44:20 +02:00
}
2015-11-22 12:33:56 +01:00
print '<div class="assignedtouser">' ;
2017-11-22 14:42:47 +01:00
print $form -> select_dolusers_forevent (( $action == 'create' ? 'add' : 'update' ), 'assignedtouser' , 1 , '' , 0 , '' , '' , 0 , 0 , 0 , 'AND u.statut != 0' , 1 , $listofuserid , $listofcontactid , $listofotherid );
2015-11-22 12:33:56 +01:00
print '</div>' ;
2017-11-22 14:42:47 +01:00
/* if ( in_array ( $user -> id , array_keys ( $listofuserid )))
2015-11-22 12:33:56 +01:00
{
print '<div class="myavailability">' ;
print $langs -> trans ( " MyAvailability " ) . ': <input id="transparency" type="checkbox" name="transparency"' . ((( ! isset ( $_GET [ 'transparency' ]) && ! isset ( $_POST [ 'transparency' ])) || GETPOST ( 'transparency' )) ? ' checked' : '' ) . '> ' . $langs -> trans ( " Busy " );
print '</div>' ;
2017-11-22 14:42:47 +01:00
} */
2013-06-05 16:24:32 +02:00
print '</td></tr>' ;
2013-04-06 17:39:31 +02:00
2010-11-08 02:25:36 +01:00
// Realised by
2014-09-20 00:57:29 +02:00
if ( ! empty ( $conf -> global -> AGENDA_ENABLE_DONEBY ))
2013-04-06 17:39:31 +02:00
{
2013-07-19 14:23:42 +02:00
print '<tr><td class="nowrap">' . $langs -> trans ( " ActionDoneBy " ) . '</td><td>' ;
2014-09-29 13:21:03 +02:00
print $form -> select_dolusers ( GETPOST ( " doneby " ) ? GETPOST ( " doneby " ) : ( ! empty ( $object -> userdoneid ) && $percent == 100 ? $object -> userdoneid : 0 ), 'doneby' , 1 );
2013-04-06 17:39:31 +02:00
print '</td></tr>' ;
}
2010-11-08 02:25:36 +01:00
print '</table>' ;
2017-11-22 14:42:47 +01:00
print '<br><hr><br>' ;
2017-06-07 16:44:04 +02:00
2010-11-08 02:25:36 +01:00
print '<table class="border" width="100%">' ;
2009-02-04 21:43:18 +01:00
2017-11-22 14:42:47 +01:00
if ( $conf -> societe -> enabled )
2008-04-16 03:04:12 +02:00
{
2017-11-22 14:42:47 +01:00
// Related company
print '<tr><td class="titlefieldcreate nowrap">' . $langs -> trans ( " ActionOnCompany " ) . '</td><td>' ;
if ( GETPOST ( 'socid' , 'int' ) > 0 )
{
$societe = new Societe ( $db );
$societe -> fetch ( GETPOST ( 'socid' , 'int' ));
print $societe -> getNomUrl ( 1 );
print '<input type="hidden" id="socid" name="socid" value="' . GETPOST ( 'socid' , 'int' ) . '">' ;
2013-01-09 20:34:36 +01:00
}
2017-11-22 14:42:47 +01:00
else
{
$events = array ();
$events [] = array ( 'method' => 'getContacts' , 'url' => dol_buildpath ( '/core/ajax/contacts.php?showempty=1' , 1 ), 'htmlname' => 'contactid' , 'params' => array ( 'add-customer-contact' => 'disabled' ));
//For external user force the company to user company
if ( ! empty ( $user -> societe_id )) {
print $form -> select_company ( $user -> societe_id , 'socid' , '' , 1 , 1 , 0 , $events , 0 , 'minwidth300' );
} else {
print $form -> select_company ( '' , 'socid' , '' , 'SelectThirdParty' , 1 , 0 , $events , 0 , 'minwidth300' );
}
}
print '</td></tr>' ;
2013-12-15 14:26:27 +01:00
2017-11-22 14:42:47 +01:00
// Related contact
print '<tr><td class="nowrap">' . $langs -> trans ( " ActionOnContact " ) . '</td><td>' ;
2017-11-23 00:59:43 +01:00
$preselectedids = GETPOST ( 'socpeopleassigned' , 'array' );
if ( GETPOST ( 'contactid' , 'int' )) $preselectedids [ GETPOST ( 'contactid' , 'int' )] = GETPOST ( 'contactid' , 'int' );
print $form -> selectcontacts ( GETPOST ( 'socid' , 'int' ), $preselectedids , 'socpeopleassigned[]' , 1 , '' , '' , 0 , 'quatrevingtpercent' , false , 0 , array (), false , 'multiple' , 'contactid' );
2017-11-22 14:42:47 +01:00
print '</td></tr>' ;
}
2006-09-05 01:55:19 +02:00
2010-01-05 00:33:23 +01:00
// Project
2012-07-13 11:40:06 +02:00
if ( ! empty ( $conf -> projet -> enabled ))
2010-01-05 00:33:23 +01:00
{
// Projet associe
2014-01-26 18:43:30 +01:00
$langs -> load ( " projects " );
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
$projectid = GETPOST ( 'projectid' , 'int' );
2010-01-05 00:33:23 +01:00
2018-09-20 10:08:40 +02:00
print '<tr><td class="titlefieldcreate">' . $langs -> trans ( " Project " ) . '</td><td id="project-input-container" >' ;
2013-06-16 23:15:20 +02:00
2018-09-20 10:08:40 +02:00
$numproject = $formproject -> select_projects (( ! empty ( $societe -> id ) ? $societe -> id :- 1 ), $projectid , 'projectid' , 0 , 0 , 1 , 1 );
2018-11-11 14:36:35 +01:00
2017-12-12 10:37:51 +01:00
print ' <a href="' . DOL_URL_ROOT . '/projet/card.php?socid=' . $societe -> id . '&action=create">' . $langs -> trans ( " AddProject " ) . '</a>' ;
2018-09-20 10:08:40 +02:00
$urloption = '?action=create' ;
$url = dol_buildpath ( 'comm/action/card.php' , 2 ) . $urloption ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
// update task list
print " \n " . '<script type="text/javascript">' ;
print ' $ ( document ) . ready ( function () {
$ ( " #projectid " ) . change ( function () {
var url = " '. $url .'&projectid= " + $ ( " #projectid " ) . val ();
$ . get ( url , function ( data ) {
console . log ( $ ( data ) . find ( " #taskid " ) . html ());
if ( data ) $ ( " #taskid " ) . html ( $ ( data ) . find ( " #taskid " ) . html () ) . select2 ();
})
});
}) ' ;
print '</script>' . " \n " ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
print '</td></tr>' ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
print '<tr><td class="titlefieldcreate">' . $langs -> trans ( " Task " ) . '</td><td id="project-task-input-container" >' ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
$projectsListId = false ;
if ( ! empty ( $projectid )){ $projectsListId = $projectid ; }
$tid = GETPOST ( " projecttaskid " ) ? GETPOST ( " projecttaskid " ) : '' ;
$formproject -> selectTasks (( ! empty ( $societe -> id ) ? $societe -> id :- 1 ), $tid , 'taskid' , 24 , 0 , '1' , 1 , 0 , 0 , 'maxwidth500' , $projectsListId );
2010-01-05 00:33:23 +01:00
print '</td></tr>' ;
}
2016-11-08 14:08:48 +01:00
if ( ! empty ( $origin ) && ! empty ( $originid ))
2013-08-27 15:51:06 +02:00
{
2015-04-23 15:54:49 +02:00
include_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php' ;
2017-11-22 14:42:47 +01:00
print '<tr><td class="titlefieldcreate">' . $langs -> trans ( " LinkedObject " ) . '</td>' ;
2015-04-23 15:54:49 +02:00
print '<td colspan="3">' . dolGetElementUrl ( $originid , $origin , 1 ) . '</td></tr>' ;
2013-08-27 15:51:06 +02:00
print '<input type="hidden" name="fk_element" size="10" value="' . GETPOST ( 'originid' ) . '">' ;
print '<input type="hidden" name="elementtype" size="10" value="' . GETPOST ( 'origin' ) . '">' ;
2015-07-28 17:25:33 +02:00
print '<input type="hidden" name="originid" size="10" value="' . GETPOST ( 'originid' ) . '">' ;
print '<input type="hidden" name="origin" size="10" value="' . GETPOST ( 'origin' ) . '">' ;
2013-08-27 15:51:06 +02:00
}
2010-01-05 00:33:23 +01:00
2010-08-29 20:23:56 +02:00
if ( GETPOST ( " datep " ) && preg_match ( '/^([0-9][0-9][0-9][0-9])([0-9][0-9])([0-9][0-9])$/' , GETPOST ( " datep " ), $reg ))
2008-04-16 03:04:12 +02:00
{
2014-01-30 00:40:00 +01:00
$object -> datep = dol_mktime ( 0 , 0 , 0 , $reg [ 2 ], $reg [ 3 ], $reg [ 1 ]);
2003-08-03 19:26:19 +02:00
}
2006-09-05 01:55:19 +02:00
2008-10-06 23:31:05 +02:00
// Priority
2017-11-22 14:42:47 +01:00
print '<tr><td class="titlefieldcreate nowrap">' . $langs -> trans ( " Priority " ) . '</td><td colspan="3">' ;
2014-01-30 00:40:00 +01:00
print '<input type="text" name="priority" value="' . ( GETPOST ( 'priority' ) ? GETPOST ( 'priority' ) : ( $object -> priority ? $object -> priority : '' )) . '" size="5">' ;
2008-10-06 23:31:05 +02:00
print '</td></tr>' ;
2004-10-02 16:24:43 +02:00
2010-11-20 19:41:09 +01:00
// Description
2015-05-31 01:06:51 +02:00
print '<tr><td class="tdtop">' . $langs -> trans ( " Description " ) . '</td><td>' ;
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php' ;
2017-12-02 10:43:01 +01:00
$doleditor = new DolEditor ( 'note' ,( GETPOST ( 'note' , 'none' ) ? GETPOST ( 'note' , 'none' ) : $object -> note ), '' , 180 , 'dolibarr_notes' , 'In' , true , true , $conf -> fckeditor -> enabled , ROWS_4 , '90%' );
2010-11-20 19:41:09 +01:00
$doleditor -> Create ();
print '</td></tr>' ;
2013-12-15 14:26:27 +01:00
2012-12-08 12:49:20 +01:00
// Other attributes
2017-06-07 16:44:04 +02:00
$parameters = array ();
2014-01-30 00:40:00 +01:00
$reshook = $hookmanager -> executeHooks ( 'formObjectOptions' , $parameters , $object , $action ); // Note that $action and $object may have been modified by hook
2017-06-11 10:37:58 +02:00
print $hookmanager -> resPrint ;
2018-04-13 13:28:48 +02:00
if ( empty ( $reshook ))
2012-12-08 12:49:20 +01:00
{
2014-01-30 00:40:00 +01:00
print $object -> showOptionals ( $extrafields , 'edit' );
2012-12-08 12:49:20 +01:00
}
2013-04-03 18:37:54 +02:00
2013-04-01 19:43:26 +02:00
print '</table>' ;
2012-12-08 12:49:20 +01:00
2015-05-20 21:50:38 +02:00
dol_fiche_end ();
print '<div class="center">' ;
2008-04-16 03:04:12 +02:00
print '<input type="submit" class="button" value="' . $langs -> trans ( " Add " ) . '">' ;
2014-11-25 20:13:43 +01:00
print ' ' ;
2016-04-04 15:20:21 +02:00
print '<input type="button" class="button" name="cancel" value="' . $langs -> trans ( " Cancel " ) . '" onClick="javascript:history.go(-1)">' ;
2014-11-25 20:13:43 +01:00
print '</div>' ;
2003-05-25 18:32:02 +02:00
2006-09-05 01:55:19 +02:00
print " </form> " ;
2002-04-29 20:01:16 +02:00
}
2004-08-07 01:39:54 +02:00
2010-11-18 23:17:44 +01:00
// View or edit
2012-12-30 13:49:37 +01:00
if ( $id > 0 )
2002-12-19 19:59:23 +01:00
{
2014-09-23 16:15:15 +02:00
$result1 = $object -> fetch ( $id );
2018-08-15 14:42:03 +02:00
if ( $result1 <= 0 )
{
$langs -> load ( " errors " );
print $langs -> trans ( " ErrorRecordNotFound " );
llxFooter ();
exit ;
}
2014-09-24 01:35:29 +02:00
$result2 = $object -> fetch_thirdparty ();
2016-10-17 17:52:58 +02:00
$result2 = $object -> fetch_projet ();
2014-11-03 01:07:07 +01:00
$result3 = $object -> fetch_contact ();
$result4 = $object -> fetch_userassigned ();
2018-02-21 14:48:25 +01:00
$result5 = $object -> fetch_optionals ();
2017-06-07 16:44:04 +02:00
if ( $listUserAssignedUpdated || $donotclearsession )
2017-02-23 02:54:40 +01:00
{
$percentage = in_array ( GETPOST ( 'status' ), array ( - 1 , 100 )) ? GETPOST ( 'status' ) : ( in_array ( GETPOST ( 'complete' ), array ( - 1 , 100 )) ? GETPOST ( 'complete' ) : GETPOST ( " percentage " )); // If status is -1 or 100, percentage is not defined and we must use status
2017-06-07 16:44:04 +02:00
2015-11-05 11:11:03 +01:00
$datep = dol_mktime ( $fulldayevent ? '00' : $aphour , $fulldayevent ? '00' : $apmin , 0 , $_POST [ " apmonth " ], $_POST [ " apday " ], $_POST [ " apyear " ]);
$datef = dol_mktime ( $fulldayevent ? '23' : $p2hour , $fulldayevent ? '59' : $p2min , $fulldayevent ? '59' : '0' , $_POST [ " p2month " ], $_POST [ " p2day " ], $_POST [ " p2year " ]);
2017-09-21 11:35:18 +02:00
$object -> type_id = dol_getIdFromCode ( $db , GETPOST ( " actioncode " ), 'c_actioncomm' );
2015-11-05 11:11:03 +01:00
$object -> label = GETPOST ( " label " );
$object -> datep = $datep ;
$object -> datef = $datef ;
$object -> percentage = $percentage ;
$object -> priority = GETPOST ( " priority " );
$object -> fulldayevent = GETPOST ( " fullday " ) ? 1 : 0 ;
$object -> location = GETPOST ( 'location' );
$object -> socid = GETPOST ( " socid " );
2017-11-18 12:36:03 +01:00
$socpeopleassigned = GETPOST ( " socpeopleassigned " , 'array' );
2017-11-24 20:02:46 +01:00
foreach ( $socpeopleassigned as $tmpid ) $object -> socpeopleassigned [ $id ] = array ( 'id' => $tmpid );
2015-11-05 11:11:03 +01:00
$object -> contactid = GETPOST ( " contactid " , 'int' );
$object -> fk_project = GETPOST ( " projectid " , 'int' );
2017-06-07 16:44:04 +02:00
2017-11-24 20:02:46 +01:00
$object -> note = GETPOST ( " note " , 'none' );
2015-11-05 11:11:03 +01:00
}
2018-08-15 14:42:03 +02:00
if ( $result2 < 0 || $result3 < 0 || $result4 < 0 || $result5 < 0 )
2010-05-07 21:33:17 +02:00
{
2014-01-30 00:40:00 +01:00
dol_print_error ( $db , $object -> error );
2010-05-07 21:33:17 +02:00
exit ;
}
2009-02-04 21:43:18 +01:00
2014-09-29 13:21:03 +02:00
if ( $object -> authorid > 0 ) { $tmpuser = new User ( $db ); $res = $tmpuser -> fetch ( $object -> authorid ); $object -> author = $tmpuser ; }
if ( $object -> usermodid > 0 ) { $tmpuser = new User ( $db ); $res = $tmpuser -> fetch ( $object -> usermodid ); $object -> usermod = $tmpuser ; }
2004-10-02 16:24:43 +02:00
2009-03-03 01:20:21 +01:00
/*
2014-09-29 13:21:03 +02:00
* Show tabs
2009-03-03 01:20:21 +01:00
*/
2004-10-02 16:24:43 +02:00
2014-01-30 00:40:00 +01:00
$head = actions_prepare_head ( $object );
2004-10-02 16:24:43 +02:00
2010-06-09 20:25:20 +02:00
$now = dol_now ();
2009-01-07 16:21:16 +01:00
$delay_warning = $conf -> global -> MAIN_DELAY_ACTIONS_TODO * 24 * 60 * 60 ;
2009-02-04 21:43:18 +01:00
2009-03-03 01:20:21 +01:00
// Confirmation suppression action
2011-04-09 13:52:11 +02:00
if ( $action == 'delete' )
2009-03-03 01:20:21 +01:00
{
2016-03-25 15:53:44 +01:00
print $form -> formconfirm ( " card.php?id= " . $id , $langs -> trans ( " DeleteAction " ), $langs -> trans ( " ConfirmDeleteAction " ), " confirm_delete " , '' , '' , 1 );
2009-03-03 01:20:21 +01:00
}
2005-10-01 16:25:34 +02:00
2011-04-09 13:52:11 +02:00
if ( $action == 'edit' )
2009-03-03 01:20:21 +01:00
{
2012-11-13 16:20:15 +01:00
if ( ! empty ( $conf -> use_javascript_ajax ))
2010-11-18 23:17:44 +01:00
{
2012-11-13 16:20:15 +01:00
print " \n " . '<script type="text/javascript">' ;
print ' $ ( document ) . ready ( function () {
function setdatefields ()
{
if ( $ ( " #fullday:checked " ) . val () == null ) {
$ ( " .fulldaystarthour " ) . removeAttr ( " disabled " );
$ ( " .fulldaystartmin " ) . removeAttr ( " disabled " );
$ ( " .fulldayendhour " ) . removeAttr ( " disabled " );
$ ( " .fulldayendmin " ) . removeAttr ( " disabled " );
} else {
2015-05-12 14:47:33 +02:00
$ ( " .fulldaystarthour " ) . prop ( " disabled " , true ) . val ( " 00 " );
$ ( " .fulldaystartmin " ) . prop ( " disabled " , true ) . val ( " 00 " );
$ ( " .fulldayendhour " ) . prop ( " disabled " , true ) . val ( " 23 " );
$ ( " .fulldayendmin " ) . prop ( " disabled " , true ) . val ( " 59 " );
2012-11-13 16:20:15 +01:00
}
}
setdatefields ();
$ ( " #fullday " ) . change ( function () {
setdatefields ();
});
2010-11-18 23:17:44 +01:00
}) ' ;
print '</script>' . " \n " ;
}
2012-11-13 16:20:15 +01:00
print '<form name="formaction" action="' . $_SERVER [ 'PHP_SELF' ] . '" method="POST">' ;
2009-05-17 10:01:54 +02:00
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
2009-03-03 01:20:21 +01:00
print '<input type="hidden" name="action" value="update">' ;
2010-09-12 22:59:38 +02:00
print '<input type="hidden" name="id" value="' . $id . '">' ;
2014-01-30 00:40:00 +01:00
print '<input type="hidden" name="ref_ext" value="' . $object -> ref_ext . '">' ;
2012-05-12 15:53:57 +02:00
if ( $backtopage ) print '<input type="hidden" name="backtopage" value="' . ( $backtopage != '1' ? $backtopage : $_SERVER [ " HTTP_REFERER " ]) . '">' ;
2014-10-05 04:51:34 +02:00
if ( empty ( $conf -> global -> AGENDA_USE_EVENT_TYPE )) print '<input type="hidden" name="actioncode" value="' . $object -> type_code . '">' ;
2004-08-07 01:39:54 +02:00
2013-04-21 17:56:29 +02:00
dol_fiche_head ( $head , 'card' , $langs -> trans ( " Action " ), 0 , 'action' );
2013-04-25 01:13:13 +02:00
2009-03-03 01:20:21 +01:00
print '<table class="border" width="100%">' ;
2008-09-09 19:57:12 +02:00
2009-03-03 01:20:21 +01:00
// Ref
2016-04-23 16:51:22 +02:00
print '<tr><td class="titlefieldcreate">' . $langs -> trans ( " Ref " ) . '</td><td colspan="3">' . $object -> id . '</td></tr>' ;
2009-02-04 21:43:18 +01:00
2014-10-03 18:04:13 +02:00
// Type of event
2012-12-01 15:45:05 +01:00
if ( ! empty ( $conf -> global -> AGENDA_USE_EVENT_TYPE ))
{
2017-07-08 00:19:30 +02:00
print '<tr><td class="fieldrequired">' . $langs -> trans ( " Type " ) . '</td><td colspan="3">' ;
if ( $object -> type_code != 'AC_OTH_AUTO' )
{
$formactions -> select_type_actions ( GETPOST ( " actioncode " ) ? GETPOST ( " actioncode " ) : $object -> type_code , " actioncode " , " systemauto " );
}
else
{
print '<input type="hidden" name="actioncode" value="' . $object -> type_code . '">' . $langs -> trans ( " Action " . $object -> type_code );
}
2013-02-27 19:43:40 +01:00
print '</td></tr>' ;
2012-12-01 15:45:05 +01:00
}
2009-02-04 21:43:18 +01:00
2009-03-03 01:20:21 +01:00
// Title
2018-03-07 11:06:14 +01:00
print '<tr><td class="fieldrequired">' . $langs -> trans ( " Title " ) . '</td><td colspan="3"><input type="text" name="label" class="soixantepercent" value="' . $object -> label . '"></td></tr>' ;
2009-02-04 21:43:18 +01:00
2010-11-18 23:17:44 +01:00
// Full day event
2016-04-23 16:51:22 +02:00
print '<tr><td>' . $langs -> trans ( " EventOnFullDay " ) . '</td><td colspan="3"><input type="checkbox" id="fullday" name="fullday" ' . ( $object -> fulldayevent ? ' checked' : '' ) . '></td></tr>' ;
2010-11-18 23:17:44 +01:00
2010-11-08 02:25:36 +01:00
// Date start
2013-04-25 01:13:13 +02:00
print '<tr><td class="nowrap"><span class="fieldrequired">' . $langs -> trans ( " DateActionStart " ) . '</span></td><td colspan="3">' ;
2018-09-09 10:40:00 +02:00
if ( GETPOST ( " afaire " ) == 1 ) {
print $form -> selectDate ( $datep ? $datep : $object -> datep , 'ap' , 1 , 1 , 0 , " action " , 1 , 1 , 0 , 'fulldaystart' );
} elseif ( GETPOST ( " afaire " ) == 2 ) {
print $form -> selectDate ( $datep ? $datep : $object -> datep , 'ap' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldaystart' );
} else {
print $form -> selectDate ( $datep ? $datep : $object -> datep , 'ap' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldaystart' );
}
2010-11-08 02:25:36 +01:00
print '</td></tr>' ;
// Date end
print '<tr><td>' . $langs -> trans ( " DateActionEnd " ) . '</td><td colspan="3">' ;
2018-09-09 10:40:00 +02:00
if ( GETPOST ( " afaire " ) == 1 ) {
print $form -> selectDate ( $datef ? $datef : $object -> datef , 'p2' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldayend' );
} elseif ( GETPOST ( " afaire " ) == 2 ) {
print $form -> selectDate ( $datef ? $datef : $object -> datef , 'p2' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldayend' );
} else {
print $form -> selectDate ( $datef ? $datef : $object -> datef , 'p2' , 1 , 1 , 1 , " action " , 1 , 1 , 0 , 'fulldayend' );
}
2010-11-08 02:25:36 +01:00
print '</td></tr>' ;
2018-09-09 10:40:00 +02:00
// Dev in progress
$userepeatevent = ( $conf -> global -> MAIN_FEATURES_LEVEL == 2 ? 1 : 0 );
2015-06-30 21:50:24 +02:00
if ( $userepeatevent )
{
// Repeat
print '<tr><td>' . $langs -> trans ( " RepeatEvent " ) . '</td><td colspan="3">' ;
print '<input type="hidden" name="recurid" value="' . $object -> recurid . '">' ;
2018-09-09 10:40:00 +02:00
$arrayrecurrulefreq = array (
'no' => $langs -> trans ( " No " ),
'MONTHLY' => $langs -> trans ( " EveryMonth " ),
'WEEKLY' => $langs -> trans ( " EveryWeek " ),
//'DAYLY'=>$langs->trans("EveryDay"),
);
2015-06-30 21:50:24 +02:00
$selectedrecurrulefreq = 'no' ;
$selectedrecurrulebymonthday = '' ;
$selectedrecurrulebyday = '' ;
if ( $object -> recurrule && preg_match ( '/FREQ=([A-Z]+)/i' , $object -> recurrule , $reg )) $selectedrecurrulefreq = $reg [ 1 ];
if ( $object -> recurrule && preg_match ( '/FREQ=MONTHLY.*BYMONTHDAY=(\d+)/i' , $object -> recurrule , $reg )) $selectedrecurrulebymonthday = $reg [ 1 ];
if ( $object -> recurrule && preg_match ( '/FREQ=WEEKLY.*BYDAY(\d+)/i' , $object -> recurrule , $reg )) $selectedrecurrulebyday = $reg [ 1 ];
2017-11-22 14:42:47 +01:00
print $form -> selectarray ( 'recurrulefreq' , $arrayrecurrulefreq , $selectedrecurrulefreq , 0 , 0 , 0 , '' , 0 , 0 , 0 , '' , 'marginrightonly' );
2015-06-30 21:50:24 +02:00
// If recurrulefreq is MONTHLY
2017-11-22 14:42:47 +01:00
print '<div class="hidden marginrightonly inline-block repeateventBYMONTHDAY">' ;
2015-06-30 21:50:24 +02:00
print $langs -> trans ( " DayOfMonth " ) . ': <input type="input" size="2" name="BYMONTHDAY" value="' . $selectedrecurrulebymonthday . '">' ;
print '</div>' ;
// If recurrulefreq is WEEKLY
2017-11-22 14:42:47 +01:00
print '<div class="hidden marginrightonly inline-block repeateventBYDAY">' ;
2015-06-30 21:50:24 +02:00
print $langs -> trans ( " DayOfWeek " ) . ': <input type="input" size="4" name="BYDAY" value="' . $selectedrecurrulebyday . '">' ;
print '</div>' ;
print ' < script type = " text/javascript " language = " javascript " >
jQuery ( document ) . ready ( function () {
function init_repeat ()
{
if ( jQuery ( " #recurrulefreq " ) . val () == \ ' MONTHLY\ ' )
{
2017-11-22 14:42:47 +01:00
jQuery ( " .repeateventBYMONTHDAY " ) . css ( " display " , " inline-block " ); /* use this instead of show because we want inline-block and not block */
2015-06-30 21:50:24 +02:00
jQuery ( " .repeateventBYDAY " ) . hide ();
}
else if ( jQuery ( " #recurrulefreq " ) . val () == \ ' WEEKLY\ ' )
{
jQuery ( " .repeateventBYMONTHDAY " ) . hide ();
2017-11-22 14:42:47 +01:00
jQuery ( " .repeateventBYDAY " ) . css ( " display " , " inline-block " ); /* use this instead of show because we want inline-block and not block */
2015-06-30 21:50:24 +02:00
}
else
{
jQuery ( " .repeateventBYMONTHDAY " ) . hide ();
jQuery ( " .repeateventBYDAY " ) . hide ();
}
}
init_repeat ();
jQuery ( " #recurrulefreq " ) . change ( function () {
init_repeat ();
});
});
2015-08-14 13:01:20 +02:00
</ script > ' ;
2015-06-30 21:50:24 +02:00
print '</td></tr>' ;
}
2010-11-08 02:25:36 +01:00
// Status
2013-04-25 01:13:13 +02:00
print '<tr><td class="nowrap">' . $langs -> trans ( " Status " ) . ' / ' . $langs -> trans ( " Percentage " ) . '</td><td colspan="3">' ;
2017-02-20 09:00:39 +01:00
$percent = GETPOST ( " percentage " ) ? GETPOST ( " percentage " ) : $object -> percentage ;
2014-06-26 20:24:00 +02:00
$formactions -> form_select_status_action ( 'formaction' , $percent , 1 );
2010-11-08 02:25:36 +01:00
print '</td></tr>' ;
2010-11-20 19:41:09 +01:00
// Location
2014-09-22 20:16:58 +02:00
if ( empty ( $conf -> global -> AGENDA_DISABLE_LOCATION ))
{
2017-11-22 14:42:47 +01:00
print '<tr><td>' . $langs -> trans ( " Location " ) . '</td><td colspan="3"><input type="text" name="location" class="soixantepercent" value="' . $object -> location . '"></td></tr>' ;
2014-09-22 20:16:58 +02:00
}
2010-11-20 19:41:09 +01:00
2013-04-06 17:39:31 +02:00
// Assigned to
2017-11-22 14:42:47 +01:00
$listofuserid = array (); // User assigned
if ( empty ( $donotclearsession ))
{
2017-11-24 20:02:46 +01:00
if ( $object -> userownerid > 0 )
{
$listofuserid [ $object -> userownerid ] = array (
'id' => $object -> userownerid ,
'type' => 'user' ,
//'transparency'=>$object->userassigned[$user->id]['transparency'],
'transparency' => $object -> transparency , // Force transparency on ownerfrom event
'answer_status' => $object -> userassigned [ $object -> userownerid ][ 'answer_status' ],
'mandatory' => $object -> userassigned [ $object -> userownerid ][ 'mandatory' ]
);
}
2017-11-22 14:42:47 +01:00
if ( ! empty ( $object -> userassigned )) // Now concat assigned users
{
// Restore array with key with same value than param 'id'
2017-11-24 20:02:46 +01:00
$tmplist1 = $object -> userassigned ;
2017-11-22 14:42:47 +01:00
foreach ( $tmplist1 as $key => $val )
{
if ( $val [ 'id' ] && $val [ 'id' ] != $object -> userownerid )
{
$listofuserid [ $val [ 'id' ]] = $val ;
}
}
}
$_SESSION [ 'assignedtouser' ] = json_encode ( $listofuserid );
}
else
{
if ( ! empty ( $_SESSION [ 'assignedtouser' ]))
{
$listofuserid = json_decode ( $_SESSION [ 'assignedtouser' ], true );
}
}
2018-11-11 14:36:35 +01:00
$listofcontactid = $object -> socpeopleassigned ; // Contact assigned
2017-11-22 14:42:47 +01:00
$listofotherid = $object -> otherassigned ; // Other undefined email (not used yet)
2017-06-07 16:44:04 +02:00
2017-11-22 14:42:47 +01:00
print '<tr><td class="tdtop nowrap fieldrequired">' . $langs -> trans ( " ActionAssignedTo " ) . '</td><td colspan="3">' ;
2015-11-22 12:33:56 +01:00
print '<div class="assignedtouser">' ;
2017-11-22 14:42:47 +01:00
print $form -> select_dolusers_forevent (( $action == 'create' ? 'add' : 'update' ), 'assignedtouser' , 1 , '' , 0 , '' , '' , 0 , 0 , 0 , 'AND u.statut != 0' , 1 , $listofuserid , $listofcontactid , $listofotherid );
2015-11-22 12:33:56 +01:00
print '</div>' ;
2017-11-22 14:42:47 +01:00
/* if ( in_array ( $user -> id , array_keys ( $listofuserid )))
2015-11-22 12:33:56 +01:00
{
print '<div class="myavailability">' ;
print $langs -> trans ( " MyAvailability " ) . ': <input id="transparency" type="checkbox" name="transparency"' . ( $listofuserid [ $user -> id ][ 'transparency' ] ? ' checked' : '' ) . '>' . $langs -> trans ( " Busy " );
print '</div>' ;
2017-11-22 14:42:47 +01:00
} */
2013-06-05 16:24:32 +02:00
print '</td></tr>' ;
2010-11-08 02:25:36 +01:00
// Realised by
2014-09-20 00:57:29 +02:00
if ( ! empty ( $conf -> global -> AGENDA_ENABLE_DONEBY ))
2013-06-05 16:24:32 +02:00
{
2013-04-25 01:13:13 +02:00
print '<tr><td class="nowrap">' . $langs -> trans ( " ActionDoneBy " ) . '</td><td colspan="3">' ;
2014-09-29 13:21:03 +02:00
print $form -> select_dolusers ( $object -> userdoneid > 0 ? $object -> userdoneid :- 1 , 'doneby' , 1 );
2013-04-06 17:39:31 +02:00
print '</td></tr>' ;
}
2010-11-08 02:25:36 +01:00
2014-09-29 13:21:03 +02:00
print '</table>' ;
2017-06-07 16:44:04 +02:00
2017-11-22 14:42:47 +01:00
print '<br><hr><br>' ;
2010-11-08 02:25:36 +01:00
2017-06-07 16:44:04 +02:00
2010-11-08 02:25:36 +01:00
print '<table class="border" width="100%">' ;
2012-12-21 17:56:40 +01:00
if ( $conf -> societe -> enabled )
{
2017-11-22 14:42:47 +01:00
// Related company
print '<tr><td class="titlefieldcreate">' . $langs -> trans ( " ActionOnCompany " ) . '</td>' ;
2012-12-21 17:56:40 +01:00
print '<td>' ;
2016-04-03 19:04:03 +02:00
print '<div class="maxwidth200onsmartphone">' ;
2016-10-17 17:52:58 +02:00
$events = array (); // 'method'=parameter action of url, 'url'=url to call that return new list of contacts
2016-04-03 19:04:03 +02:00
$events [] = array ( 'method' => 'getContacts' , 'url' => dol_buildpath ( '/core/ajax/contacts.php?showempty=1' , 1 ), 'htmlname' => 'contactid' , 'params' => array ( 'add-customer-contact' => 'disabled' ));
2016-10-17 17:52:58 +02:00
// TODO Refresh also list of project if $conf->global->PROJECT_ALLOW_TO_LINK_FROM_OTHER_COMPANY not defined with list linked to socid ?
// FIXME If we change company, we may get a project that does not match
2017-05-19 18:03:49 +02:00
print $form -> select_company ( $object -> socid , 'socid' , '' , 'SelectThirdParty' , 1 , 0 , $events , 0 , 'minwidth200' );
2016-04-03 19:04:03 +02:00
print '</div>' ;
print '</td></tr>' ;
2012-12-21 17:56:40 +01:00
2017-02-22 17:46:54 +01:00
// related contact
print '<tr><td>' . $langs -> trans ( " ActionOnContact " ) . '</td><td>' ;
2016-04-03 19:04:03 +02:00
print '<div class="maxwidth200onsmartphone">' ;
2017-11-22 14:42:47 +01:00
print $form -> selectcontacts ( $object -> socid , array_keys ( $object -> socpeopleassigned ), 'socpeopleassigned[]' , 1 , '' , '' , 0 , 'quatrevingtpercent' , false , 0 , 0 , array (), 'multiple' , 'contactid' );
2016-04-03 19:04:03 +02:00
print '</div>' ;
print '</td>' ;
print '</tr>' ;
2012-12-21 17:56:40 +01:00
}
2005-10-01 16:25:34 +02:00
2010-01-05 00:33:23 +01:00
// Project
2012-09-15 10:01:35 +02:00
if ( ! empty ( $conf -> projet -> enabled ))
2010-01-05 00:33:23 +01:00
{
2016-04-03 19:04:03 +02:00
$langs -> load ( " projects " );
2010-01-05 00:33:23 +01:00
2016-10-17 17:52:58 +02:00
print '<tr><td class="titlefieldcreate">' . $langs -> trans ( " Project " ) . '</td><td>' ;
$numprojet = $formproject -> select_projects (( $object -> socid > 0 ? $object -> socid : - 1 ), $object -> fk_project , 'projectid' , 0 , 0 , 1 , 0 , 0 , 0 , 0 , '' , 0 );
2010-01-05 00:33:23 +01:00
if ( $numprojet == 0 )
{
2015-06-30 21:50:24 +02:00
print ' <a href="' . DOL_URL_ROOT . '/projet/card.php?socid=' . $object -> socid . '&action=create&backtopage=' . urlencode ( $_SERVER [ " PHP_SELF " ] . '?id=' . $object -> id . '&action=edit' ) . '">' . $langs -> trans ( " AddProject " ) . '</a>' ;
2010-01-05 00:33:23 +01:00
}
print '</td></tr>' ;
}
2008-10-06 23:31:05 +02:00
// Priority
2016-10-17 17:52:58 +02:00
print '<tr><td class="titlefieldcreate nowrap">' . $langs -> trans ( " Priority " ) . '</td><td>' ;
2014-01-30 00:40:00 +01:00
print '<input type="text" name="priority" value="' . ( $object -> priority ? $object -> priority : '' ) . '" size="5">' ;
2008-04-24 22:59:29 +02:00
print '</td></tr>' ;
2009-03-03 01:20:21 +01:00
// Object linked
2014-01-30 00:40:00 +01:00
if ( ! empty ( $object -> fk_element ) && ! empty ( $object -> elementtype ))
2009-03-03 01:20:21 +01:00
{
2013-06-16 23:15:20 +02:00
include_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php' ;
2018-08-24 09:29:17 +02:00
print '<tr>' ;
print '<td>' . $langs -> trans ( " LinkedObject " ) . '</td>' ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
if ( $object -> elementtype == 'task' && ! empty ( $conf -> projet -> enabled ))
{
print '<td id="project-task-input-container" >' ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
$urloption = '?action=create' ; // we use create not edit for more flexibility
$url = DOL_URL_ROOT . '/comm/action/card.php' . $urloption ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
// update task list
print " \n " . '<script type="text/javascript" >' ;
print ' $ ( document ) . ready ( function () {
$ ( " #projectid " ) . change ( function () {
var url = " '. $url .'&projectid= " + $ ( " #projectid " ) . val ();
$ . get ( url , function ( data ) {
console . log ( $ ( data ) . find ( " #fk_element " ) . html ());
if ( data ) $ ( " #fk_element " ) . html ( $ ( data ) . find ( " #taskid " ) . html () ) . select2 ();
})
});
}) ' ;
print '</script>' . " \n " ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
$formproject -> selectTasks (( ! empty ( $societe -> id ) ? $societe -> id :- 1 ), $object -> fk_element , 'fk_element' , 24 , 0 , 0 , 1 , 0 , 0 , 'maxwidth500' , $object -> fk_project );
print '<input type="hidden" name="elementtype" value="' . $object -> elementtype . '">' ;
2018-11-11 14:36:35 +01:00
2018-09-20 10:08:40 +02:00
print '</td>' ;
}
else
{
print '<td>' ;
print dolGetElementUrl ( $object -> fk_element , $object -> elementtype , 1 );
print '<input type="hidden" name="fk_element" value="' . $object -> fk_element . '">' ;
print '<input type="hidden" name="elementtype" value="' . $object -> elementtype . '">' ;
print '</td>' ;
}
2018-11-11 14:36:35 +01:00
2018-08-24 09:29:17 +02:00
print '</tr>' ;
2009-03-03 01:20:21 +01:00
}
2005-10-01 16:25:34 +02:00
2010-11-20 19:41:09 +01:00
// Description
2016-10-17 17:52:58 +02:00
print '<tr><td class="tdtop">' . $langs -> trans ( " Description " ) . '</td><td>' ;
2010-11-20 19:41:09 +01:00
// Editeur wysiwyg
2012-08-22 23:11:24 +02:00
require_once DOL_DOCUMENT_ROOT . '/core/class/doleditor.class.php' ;
2016-11-25 17:47:47 +01:00
$doleditor = new DolEditor ( 'note' , $object -> note , '' , 200 , 'dolibarr_notes' , 'In' , true , true , $conf -> fckeditor -> enabled , ROWS_5 , '90%' );
2010-11-20 19:41:09 +01:00
$doleditor -> Create ();
print '</td></tr>' ;
2005-10-01 16:25:34 +02:00
2012-12-08 12:49:20 +01:00
// Other attributes
2017-06-07 16:44:04 +02:00
$parameters = array ();
2014-01-30 00:40:00 +01:00
$reshook = $hookmanager -> executeHooks ( 'formObjectOptions' , $parameters , $object , $action ); // Note that $action and $object may have been modified by hook
2017-06-11 10:37:58 +02:00
print $hookmanager -> resPrint ;
2018-04-13 13:28:48 +02:00
if ( empty ( $reshook ))
2012-12-08 12:49:20 +01:00
{
2014-01-30 00:40:00 +01:00
print $object -> showOptionals ( $extrafields , 'edit' );
2012-12-08 12:49:20 +01:00
}
2012-12-21 17:56:40 +01:00
2013-04-01 19:43:26 +02:00
print '</table>' ;
2012-12-08 12:49:20 +01:00
2013-04-21 17:56:29 +02:00
dol_fiche_end ();
2013-04-25 01:13:13 +02:00
2014-11-25 20:13:43 +01:00
print '<div class="center">' ;
print '<input type="submit" class="button" name="edit" value="' . $langs -> trans ( " Save " ) . '">' ;
print ' ' ;
print '<input type="submit" class="button" name="cancel" value="' . $langs -> trans ( " Cancel " ) . '">' ;
print '</div>' ;
2005-07-10 04:05:09 +02:00
2010-02-25 22:28:17 +01:00
print '</form>' ;
2009-03-03 01:20:21 +01:00
}
else
{
2017-03-31 14:21:51 +02:00
dol_fiche_head ( $head , 'card' , $langs -> trans ( " Action " ), - 1 , 'action' );
2013-04-25 01:13:13 +02:00
2015-06-08 12:39:25 +02:00
// Clone event
if ( $action == 'clone' )
{
2016-05-08 10:48:55 +02:00
$formconfirm = $form -> formconfirm ( $_SERVER [ " PHP_SELF " ] . '?id=' . GETPOST ( 'id' ), $langs -> trans ( 'CloneAction' ), $langs -> trans ( 'ConfirmCloneEvent' , $object -> label ), 'confirm_clone' , $formquestion , 'yes' , 1 );
2015-06-30 01:34:17 +02:00
2015-06-08 12:39:25 +02:00
print $formconfirm ;
}
2016-09-19 10:43:30 +02:00
$linkback = img_picto ( $langs -> trans ( " BackToList " ), 'object_list' , 'class="hideonsmartphone pictoactionview"' );
2018-05-16 20:59:45 +02:00
$linkback .= '<a href="' . DOL_URL_ROOT . '/comm/action/list.php?restore_lastsearch_values=1">' . $langs -> trans ( " BackToList " ) . '</a>' ;
2016-09-19 10:43:30 +02:00
// Link to other agenda views
$out = '' ;
2017-11-25 00:12:45 +01:00
$out .= '</li>' ;
$out .= '<li class="noborder litext">' . img_picto ( $langs -> trans ( " ViewCal " ), 'object_calendar' , 'class="hideonsmartphone pictoactionview"' );
2016-09-19 10:43:30 +02:00
$out .= '<a href="' . DOL_URL_ROOT . '/comm/action/index.php?action=show_month&year=' . dol_print_date ( $object -> datep , '%Y' ) . '&month=' . dol_print_date ( $object -> datep , '%m' ) . '&day=' . dol_print_date ( $object -> datep , '%d' ) . '">' . $langs -> trans ( " ViewCal " ) . '</a>' ;
2017-11-25 00:12:45 +01:00
$out .= '</li>' ;
$out .= '<li class="noborder litext">' . img_picto ( $langs -> trans ( " ViewWeek " ), 'object_calendarweek' , 'class="hideonsmartphone pictoactionview"' );
2017-06-01 16:26:32 +02:00
$out .= '<a href="' . DOL_URL_ROOT . '/comm/action/index.php?action=show_week&year=' . dol_print_date ( $object -> datep , '%Y' ) . '&month=' . dol_print_date ( $object -> datep , '%m' ) . '&day=' . dol_print_date ( $object -> datep , '%d' ) . '">' . $langs -> trans ( " ViewWeek " ) . '</a>' ;
2017-11-25 00:12:45 +01:00
$out .= '</li>' ;
$out .= '<li class="noborder litext">' . img_picto ( $langs -> trans ( " ViewDay " ), 'object_calendarday' , 'class="hideonsmartphone pictoactionview"' );
2016-09-19 10:43:30 +02:00
$out .= '<a href="' . DOL_URL_ROOT . '/comm/action/index.php?action=show_day&year=' . dol_print_date ( $object -> datep , '%Y' ) . '&month=' . dol_print_date ( $object -> datep , '%m' ) . '&day=' . dol_print_date ( $object -> datep , '%d' ) . '">' . $langs -> trans ( " ViewDay " ) . '</a>' ;
2017-11-25 00:12:45 +01:00
$out .= '</li>' ;
$out .= '<li class="noborder litext">' . img_picto ( $langs -> trans ( " ViewPerUser " ), 'object_calendarperuser' , 'class="hideonsmartphone pictoactionview"' );
$out .= '<a href="' . DOL_URL_ROOT . '/comm/action/peruser.php?action=show_peruser&year=' . dol_print_date ( $object -> datep , '%Y' ) . '&month=' . dol_print_date ( $object -> datep , '%m' ) . '&day=' . dol_print_date ( $object -> datep , '%d' ) . '">' . $langs -> trans ( " ViewPerUser " ) . '</a>' ;
2016-09-19 10:43:30 +02:00
$linkback .= $out ;
2017-06-07 16:44:04 +02:00
2017-02-22 17:46:54 +01:00
$morehtmlref = '<div class="refidno">' ;
// Thirdparty
//$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
if ( ! empty ( $conf -> projet -> enabled ))
{
$langs -> load ( " projects " );
//$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
$morehtmlref .= $langs -> trans ( 'Project' ) . ' ' ;
if ( $user -> rights -> agenda -> allactions -> create ||
(( $object -> authorid == $user -> id || $object -> userownerid == $user -> id ) && $user -> rights -> agenda -> myactions -> create ))
{
if ( $action != 'classify' )
$morehtmlref .= '<a href="' . $_SERVER [ 'PHP_SELF' ] . '?action=classify&id=' . $object -> id . '">' . img_edit ( $langs -> transnoentitiesnoconv ( 'SetProject' )) . '</a> : ' ;
if ( $action == 'classify' ) {
//$morehtmlref.=$form->form_project($_SERVER['PHP_SELF'] . '?id=' . $object->id, $object->socid, $object->fk_project, 'projectid', 0, 0, 1, 1);
$morehtmlref .= '<form method="post" action="' . $_SERVER [ 'PHP_SELF' ] . '?id=' . $object -> id . '">' ;
$morehtmlref .= '<input type="hidden" name="action" value="classin">' ;
$morehtmlref .= '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
$morehtmlref .= $formproject -> select_projects ( $object -> socid , $object -> fk_project , 'projectid' , $maxlength , 0 , 1 , 0 , 1 , 0 , 0 , '' , 1 );
$morehtmlref .= '<input type="submit" class="button valignmiddle" value="' . $langs -> trans ( " Modify " ) . '">' ;
$morehtmlref .= '</form>' ;
} else {
$morehtmlref .= $form -> form_project ( $_SERVER [ 'PHP_SELF' ] . '?id=' . $object -> id , $object -> socid , $object -> fk_project , 'none' , 0 , 0 , 0 , 1 );
}
} else {
if ( ! empty ( $object -> fk_project )) {
$proj = new Project ( $db );
$proj -> fetch ( $object -> fk_project );
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $object -> fk_project . '" title="' . $langs -> trans ( 'ShowProject' ) . '">' ;
$morehtmlref .= $proj -> ref ;
$morehtmlref .= '</a>' ;
if ( $proj -> title ) $morehtmlref .= ' - ' . $proj -> title ;
} else {
$morehtmlref .= '' ;
}
}
}
$morehtmlref .= '</div>' ;
2017-06-07 16:44:04 +02:00
2017-02-22 17:46:54 +01:00
dol_banner_tab ( $object , 'id' , $linkback , ( $user -> societe_id ? 0 : 1 ), 'id' , 'ref' , $morehtmlref );
2017-06-07 16:44:04 +02:00
2017-03-31 14:21:51 +02:00
print '<div class="fichecenter">' ;
2017-06-07 16:44:04 +02:00
2016-09-19 10:43:30 +02:00
print '<div class="underbanner clearboth"></div>' ;
2017-06-07 16:44:04 +02:00
2009-03-03 01:20:21 +01:00
// Affichage fiche action en mode visu
print '<table class="border" width="100%">' ;
2006-09-10 15:53:20 +02:00
// Type
2012-12-01 15:45:05 +01:00
if ( ! empty ( $conf -> global -> AGENDA_USE_EVENT_TYPE ))
{
2016-09-19 10:43:30 +02:00
print '<tr><td class="titlefield">' . $langs -> trans ( " Type " ) . '</td><td colspan="3">' . $object -> type . '</td></tr>' ;
2012-12-01 15:45:05 +01:00
}
2006-09-10 15:53:20 +02:00
2010-11-18 23:17:44 +01:00
// Full day event
2016-09-19 10:43:30 +02:00
print '<tr><td class="titlefield">' . $langs -> trans ( " EventOnFullDay " ) . '</td><td colspan="3">' . yn ( $object -> fulldayevent , 3 ) . '</td></tr>' ;
2010-11-18 23:17:44 +01:00
2014-09-22 20:16:58 +02:00
$rowspan = 4 ;
if ( empty ( $conf -> global -> AGENDA_DISABLE_LOCATION )) $rowspan ++ ;
2010-11-20 19:41:09 +01:00
// Date start
2016-09-19 10:43:30 +02:00
print '<tr><td>' . $langs -> trans ( " DateActionStart " ) . '</td><td colspan="3">' ;
2014-01-30 00:40:00 +01:00
if ( ! $object -> fulldayevent ) print dol_print_date ( $object -> datep , 'dayhour' );
else print dol_print_date ( $object -> datep , 'day' );
if ( $object -> percentage == 0 && $object -> datep && $object -> datep < ( $now - $delay_warning )) print img_warning ( $langs -> trans ( " Late " ));
2010-11-20 19:41:09 +01:00
print '</td>' ;
print '</tr>' ;
2010-11-08 02:25:36 +01:00
2010-11-20 19:41:09 +01:00
// Date end
2014-09-29 13:21:03 +02:00
print '<tr><td>' . $langs -> trans ( " DateActionEnd " ) . '</td><td colspan="3">' ;
2014-01-30 00:40:00 +01:00
if ( ! $object -> fulldayevent ) print dol_print_date ( $object -> datef , 'dayhour' );
else print dol_print_date ( $object -> datef , 'day' );
if ( $object -> percentage > 0 && $object -> percentage < 100 && $object -> datef && $object -> datef < ( $now - $delay_warning )) print img_warning ( $langs -> trans ( " Late " ));
2010-11-08 02:25:36 +01:00
print '</td></tr>' ;
2010-11-20 19:41:09 +01:00
// Location
2014-09-22 20:16:58 +02:00
if ( empty ( $conf -> global -> AGENDA_DISABLE_LOCATION ))
{
2014-09-29 13:21:03 +02:00
print '<tr><td>' . $langs -> trans ( " Location " ) . '</td><td colspan="3">' . $object -> location . '</td></tr>' ;
2014-09-22 20:16:58 +02:00
}
2010-11-20 19:41:09 +01:00
2013-04-06 17:39:31 +02:00
// Assigned to
2016-09-19 10:43:30 +02:00
print '<tr><td class="nowrap">' . $langs -> trans ( " ActionAssignedTo " ) . '</td><td colspan="3">' ;
2014-09-23 16:15:15 +02:00
$listofuserid = array ();
if ( empty ( $donotclearsession ))
{
2017-11-24 20:02:46 +01:00
if ( $object -> userownerid > 0 )
{
$listofuserid [ $object -> userownerid ] = array (
'id' => $object -> userownerid ,
'transparency' => $object -> transparency , // Force transparency on onwer from preoperty of event
'answer_status' => $object -> userassigned [ $object -> userownerid ][ 'answer_status' ],
'mandatory' => $object -> userassigned [ $object -> userownerid ][ 'mandatory' ]
);
}
2014-09-29 13:21:03 +02:00
if ( ! empty ( $object -> userassigned )) // Now concat assigned users
{
// Restore array with key with same value than param 'id'
2017-11-24 20:02:46 +01:00
$tmplist1 = $object -> userassigned ;
2014-09-29 13:21:03 +02:00
foreach ( $tmplist1 as $key => $val )
{
if ( $val [ 'id' ] && $val [ 'id' ] != $object -> userownerid ) $listofuserid [ $val [ 'id' ]] = $val ;
}
}
2015-04-23 23:29:31 +02:00
$_SESSION [ 'assignedtouser' ] = json_encode ( $listofuserid );
2014-09-23 16:15:15 +02:00
}
2014-10-05 03:44:20 +02:00
else
{
if ( ! empty ( $_SESSION [ 'assignedtouser' ]))
{
2015-04-23 23:29:31 +02:00
$listofuserid = json_decode ( $_SESSION [ 'assignedtouser' ], true );
2014-10-05 03:44:20 +02:00
}
}
2017-11-24 20:02:46 +01:00
2017-11-22 14:42:47 +01:00
$listofcontactid = array (); // not used yet
$listofotherid = array (); // not used yet
2015-11-22 12:33:56 +01:00
print '<div class="assignedtouser">' ;
2017-11-22 14:42:47 +01:00
print $form -> select_dolusers_forevent ( 'view' , 'assignedtouser' , 1 , '' , 0 , '' , '' , 0 , 0 , 0 , '' , ( $object -> datep != $object -> datef ) ? 1 : 0 , $listofuserid , $listofcontactid , $listofotherid );
2015-11-22 12:33:56 +01:00
print '</div>' ;
2017-11-22 14:42:47 +01:00
/*
2017-06-07 16:44:04 +02:00
if ( $object -> datep != $object -> datef && in_array ( $user -> id , array_keys ( $listofuserid )))
2015-11-22 12:33:56 +01:00
{
2017-11-13 02:44:02 +01:00
//var_dump($object->userassigned);
//var_dump($listofuserid);
2015-11-22 12:33:56 +01:00
print '<div class="myavailability">' ;
print $langs -> trans ( " MyAvailability " ) . ': ' . (( $object -> userassigned [ $user -> id ][ 'transparency' ] > 0 ) ? $langs -> trans ( " Busy " ) : $langs -> trans ( " Available " )); // We show nothing if event is assigned to nobody
print '</div>' ;
}
2017-11-22 14:42:47 +01:00
*/
2014-09-29 13:21:03 +02:00
print ' </td></tr>' ;
2010-11-08 02:25:36 +01:00
2010-11-20 00:50:27 +01:00
// Done by
2013-04-06 17:39:31 +02:00
if ( $conf -> global -> AGENDA_ENABLE_DONEBY )
{
2013-04-25 01:13:13 +02:00
print '<tr><td class="nowrap">' . $langs -> trans ( " ActionDoneBy " ) . '</td><td colspan="3">' ;
2014-10-11 15:04:42 +02:00
if ( $object -> userdoneid > 0 )
{
$tmpuser = new User ( $db );
$tmpuser -> fetch ( $object -> userdoneid );
print $tmpuser -> getNomUrl ( 1 );
}
2013-04-06 17:39:31 +02:00
print '</td></tr>' ;
}
2010-11-08 02:25:36 +01:00
2014-09-29 13:21:03 +02:00
print '</table>' ;
2017-02-22 17:46:54 +01:00
print '<br>' ;
2014-09-29 13:21:03 +02:00
2017-03-31 14:21:51 +02:00
print '<div class="underbanner clearboth"></div>' ;
2014-09-29 13:21:03 +02:00
print '<table class="border" width="100%">' ;
2010-11-08 02:25:36 +01:00
2013-01-10 08:27:12 +01:00
if ( $conf -> societe -> enabled )
{
2017-02-22 17:46:54 +01:00
// Related company
print '<tr><td class="titlefield">' . $langs -> trans ( " ActionOnCompany " ) . '</td><td colspan="3">' . ( $object -> thirdparty -> id ? $object -> thirdparty -> getNomUrl ( 1 ) : ( '<span class="opacitymedium">' . $langs -> trans ( " None " ) . '</span>' ));
2014-09-24 01:35:29 +02:00
if ( is_object ( $object -> thirdparty ) && $object -> thirdparty -> id > 0 && $object -> type_code == 'AC_TEL' )
2008-12-02 19:41:17 +01:00
{
2014-09-24 01:35:29 +02:00
if ( $object -> thirdparty -> fetch ( $object -> thirdparty -> id ))
2012-12-21 17:56:40 +01:00
{
2014-09-24 01:35:29 +02:00
print " <br> " . dol_print_phone ( $object -> thirdparty -> phone );
2012-12-21 17:56:40 +01:00
}
2008-12-02 19:41:17 +01:00
}
2017-02-22 17:46:54 +01:00
print '</td></tr>' ;
2017-06-07 16:44:04 +02:00
2017-02-22 17:46:54 +01:00
// Related contact
print '<tr><td>' . $langs -> trans ( " ActionOnContact " ) . '</td>' ;
print '<td colspan="3">' ;
2017-11-22 14:42:47 +01:00
2017-11-18 12:36:03 +01:00
if ( ! empty ( $object -> socpeopleassigned ))
2008-12-02 19:41:17 +01:00
{
2017-11-18 12:36:03 +01:00
foreach ( $object -> socpeopleassigned as $cid => $Tab )
2008-12-02 19:41:17 +01:00
{
2017-06-06 17:43:22 +02:00
$contact = new Contact ( $db );
$result = $contact -> fetch ( $cid );
2017-11-22 14:42:47 +01:00
2017-06-06 17:43:22 +02:00
if ( $result < 0 ) dol_print_error ( $db , $contact -> error );
2017-11-22 14:42:47 +01:00
2017-06-06 17:43:22 +02:00
if ( $result > 0 )
2012-12-21 17:56:40 +01:00
{
2017-11-22 14:42:47 +01:00
print $contact -> getNomUrl ( 1 );
2017-06-06 17:43:22 +02:00
if ( $object -> type_code == 'AC_TEL' )
{
if ( ! empty ( $contact -> phone_pro )) print '(' . dol_print_phone ( $contact -> phone_pro ) . ')' ;
}
2017-11-22 14:42:47 +01:00
print '<div class="paddingright"></div>' ;
2012-12-21 17:56:40 +01:00
}
2008-12-02 19:41:17 +01:00
}
2009-02-04 21:43:18 +01:00
}
2012-12-21 17:56:40 +01:00
else
{
2017-11-22 14:42:47 +01:00
print '<span class="opacitymedium">' . $langs -> trans ( " None " ) . '</span>' ;
2012-12-21 17:56:40 +01:00
}
print '</td></tr>' ;
2009-03-03 01:20:21 +01:00
}
2017-06-07 16:44:04 +02:00
2008-10-06 23:31:05 +02:00
// Priority
2016-09-19 10:43:30 +02:00
print '<tr><td class="nowrap" class="titlefield">' . $langs -> trans ( " Priority " ) . '</td><td colspan="3">' ;
2014-01-30 00:40:00 +01:00
print ( $object -> priority ? $object -> priority : '' );
2008-10-06 23:31:05 +02:00
print '</td></tr>' ;
2018-11-19 14:38:30 +01:00
// Object linked (if link is for thirdparty, contact, project it is a recording error. We should not have links in link table
// for such objects because there is already a dedicated field into table llx_actioncomm.
if ( ! empty ( $object -> fk_element ) && ! empty ( $object -> elementtype ) && ! in_array ( $object -> elementtype , array ( 'societe' , 'contact' , 'project' )))
2009-03-03 01:20:21 +01:00
{
2013-06-16 23:15:20 +02:00
include_once DOL_DOCUMENT_ROOT . '/core/lib/functions2.lib.php' ;
2009-03-03 01:20:21 +01:00
print '<tr><td>' . $langs -> trans ( " LinkedObject " ) . '</td>' ;
2017-05-19 17:24:15 +02:00
$link = dolGetElementUrl ( $object -> fk_element , $object -> elementtype , 1 );
print '<td colspan="3">' ;
if ( empty ( $link )) print '<span class="opacitymedium">' . $langs -> trans ( " ObjectDeleted " ) . '</span>' ;
else print $link ;
print '</td></tr>' ;
2009-03-03 01:20:21 +01:00
}
2005-10-01 16:25:34 +02:00
2010-11-20 19:41:09 +01:00
// Description
2015-05-31 01:06:51 +02:00
print '<tr><td class="tdtop">' . $langs -> trans ( " Description " ) . '</td><td colspan="3">' ;
2014-01-30 00:40:00 +01:00
print dol_htmlentitiesbr ( $object -> note );
2009-03-03 01:20:21 +01:00
print '</td></tr>' ;
2005-10-01 16:25:34 +02:00
2012-12-08 12:49:20 +01:00
// Other attributes
2017-06-07 16:44:04 +02:00
$cols = 3 ;
include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php' ;
Add: hooks and triggers for a lot of core modules (action/calendrier, deplacement, dons, tva, contact/tiers, contrat, product lines, expedition, fournisseur commandes et factures, fiche intervention, projet et taches)
Signed-off-by: Stephen L. <lrq3000@gmail.com>
2012-08-14 15:50:45 +02:00
2009-03-03 01:20:21 +01:00
print '</table>' ;
2012-12-21 17:56:40 +01:00
2017-03-31 14:21:51 +02:00
print '</div>' ;
2017-06-07 16:44:04 +02:00
2013-04-21 17:56:29 +02:00
dol_fiche_end ();
}
2004-03-02 11:57:44 +01:00
2004-10-02 16:24:43 +02:00
2009-11-10 13:36:30 +01:00
/*
2009-03-03 01:20:21 +01:00
* Barre d ' actions
*/
2004-10-02 16:24:43 +02:00
2009-03-03 01:20:21 +01:00
print '<div class="tabsAction">' ;
2005-10-01 16:25:34 +02:00
2014-01-24 11:15:25 +01:00
$parameters = array ();
$reshook = $hookmanager -> executeHooks ( 'addMoreActionsButtons' , $parameters , $object , $action ); // Note that $action and $object may have been modified by hook
if ( empty ( $reshook ))
2009-03-03 01:20:21 +01:00
{
2014-01-24 11:15:25 +01:00
if ( $action != 'edit' )
2009-03-03 01:20:21 +01:00
{
2014-01-24 11:15:25 +01:00
if ( $user -> rights -> agenda -> allactions -> create ||
2014-09-29 13:21:03 +02:00
(( $object -> authorid == $user -> id || $object -> userownerid == $user -> id ) && $user -> rights -> agenda -> myactions -> create ))
2014-01-24 11:15:25 +01:00
{
2014-09-18 21:18:25 +02:00
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?action=edit&id=' . $object -> id . '">' . $langs -> trans ( " Modify " ) . '</a></div>' ;
2014-01-24 11:15:25 +01:00
}
else
{
2018-11-13 21:40:17 +01:00
print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs -> trans ( " NotAllowed " ) . '">' . $langs -> trans ( " Modify " ) . '</a></div>' ;
2014-01-24 11:15:25 +01:00
}
2015-06-30 01:34:17 +02:00
2015-06-08 12:39:25 +02:00
if ( $user -> rights -> agenda -> allactions -> create ||
(( $object -> authorid == $user -> id || $object -> userownerid == $user -> id ) && $user -> rights -> agenda -> myactions -> create ))
{
print '<div class="inline-block divButAction"><a class="butAction" href="card.php?action=clone&object=' . $object -> element . '&id=' . $object -> id . '">' . $langs -> trans ( " ToClone " ) . '</a></div>' ;
}
else
{
2018-11-13 21:40:17 +01:00
print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs -> trans ( " NotAllowed " ) . '">' . $langs -> trans ( " ToClone " ) . '</a></div>' ;
2015-06-08 12:39:25 +02:00
}
2015-06-30 01:34:17 +02:00
2014-01-24 11:15:25 +01:00
if ( $user -> rights -> agenda -> allactions -> delete ||
2014-09-29 13:21:03 +02:00
(( $object -> authorid == $user -> id || $object -> userownerid == $user -> id ) && $user -> rights -> agenda -> myactions -> delete ))
2014-01-24 11:15:25 +01:00
{
2014-09-18 21:18:25 +02:00
print '<div class="inline-block divButAction"><a class="butActionDelete" href="card.php?action=delete&id=' . $object -> id . '">' . $langs -> trans ( " Delete " ) . '</a></div>' ;
2014-01-24 11:15:25 +01:00
}
else
{
2018-11-13 21:40:17 +01:00
print '<div class="inline-block divButAction"><a class="butActionRefused classfortooltip" href="#" title="' . $langs -> trans ( " NotAllowed " ) . '">' . $langs -> trans ( " Delete " ) . '</a></div>' ;
2014-01-24 11:15:25 +01:00
}
2009-03-03 01:20:21 +01:00
}
}
2014-01-30 00:40:00 +01:00
2009-03-03 01:20:21 +01:00
print '</div>' ;
2014-09-29 13:21:03 +02:00
2014-10-09 17:05:57 +02:00
if ( $action != 'edit' )
{
2014-12-01 00:52:38 +01:00
if ( empty ( $conf -> global -> AGENDA_DISABLE_BUILDDOC ))
{
2017-05-05 20:41:44 +02:00
print '<div style="clear:both;"></div><div class="fichecenter"><div class="fichehalfleft">' ;
2014-12-01 00:53:15 +01:00
print '<a name="builddoc"></a>' ; // ancre
2014-12-01 00:52:38 +01:00
2014-12-01 00:53:15 +01:00
/*
* Documents generes
*/
2014-12-01 00:52:38 +01:00
2014-12-01 00:53:15 +01:00
$filedir = $conf -> agenda -> multidir_output [ $conf -> entity ] . '/' . $object -> id ;
2017-08-22 18:33:00 +02:00
$urlsource = $_SERVER [ " PHP_SELF " ] . " ?id= " . $object -> id ;
2014-12-01 00:52:38 +01:00
2017-10-18 17:21:30 +02:00
$genallowed = $user -> rights -> agenda -> myactions -> read ;
$delallowed = $user -> rights -> agenda -> myactions -> create ;
2014-12-01 00:52:38 +01:00
2018-10-04 16:55:16 +02:00
print $formfile -> showdocuments ( 'actions' , $object -> id , $filedir , $urlsource , $genallowed , $delallowed , '' , 0 , 0 , 0 , 0 , 0 , '' , '' , '' , $object -> default_lang );
2014-12-01 00:52:38 +01:00
print '</div><div class="fichehalfright"><div class="ficheaddleft">' ;
print '</div></div></div>' ;
}
2014-10-09 17:05:57 +02:00
}
2002-04-29 20:01:16 +02:00
}
2018-07-29 13:40:35 +02:00
// End of page
2011-08-27 16:24:16 +02:00
llxFooter ();
2013-04-03 18:37:54 +02:00
$db -> close ();