2005-09-06 09:11:19 +02:00
< ? php
/* Copyright ( C ) 2003 - 2004 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2015-05-31 02:05:39 +02:00
* Copyright ( C ) 2004 - 2015 Laurent Destailleur < eldy @ users . sourceforge . net >
2005-09-06 09:11:19 +02:00
* Copyright ( C ) 2005 Marc Barilley / Ocebo < marc @ ocebo . com >
2018-10-27 14:43:12 +02:00
* Copyright ( C ) 2005 - 2012 Regis Houssin < regis . houssin @ inodbox . com >
2009-04-29 08:22:37 +02:00
* Copyright ( C ) 2005 Simon TOSSER < simon @ kornog - computing . com >
2013-07-25 18:35:48 +02:00
* Copyright ( C ) 2013 Cédric Salvador < csalvador @ gpcsolutions . fr >
2005-09-06 09:11:19 +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
2005-09-06 09:11:19 +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
2019-09-23 21:55:30 +02:00
* along with this program . If not , see < https :// www . gnu . org / licenses />.
2005-09-06 09:11:19 +02:00
*/
2009-03-03 01:12:56 +01:00
2005-09-06 09:11:19 +02:00
/**
2009-03-28 19:22:15 +01:00
* \file htdocs / comm / action / document . php
* \ingroup agenda
2011-11-01 15:34:11 +01:00
* \brief Page of documents linked to actions
2009-03-28 19:22:15 +01:00
*/
2005-09-06 09:11:19 +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 . '/contact/class/contact.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/lib/files.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/lib/images.lib.php' ;
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formfile.class.php' ;
2021-02-23 18:59:19 +01:00
if ( ! empty ( $conf -> projet -> enabled )) {
require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php' ;
}
2005-09-06 09:11:19 +02:00
2018-05-26 19:03:41 +02:00
// Load translation files required by the page
$langs -> loadLangs ( array ( 'companies' , 'commercial' , 'other' , 'bills' ));
2005-09-06 09:11:19 +02:00
2014-11-03 01:07:07 +01:00
$id = GETPOST ( 'id' , 'int' );
2020-09-16 19:39:50 +02:00
$action = GETPOST ( 'action' , 'aZ09' );
2013-07-30 16:44:47 +02:00
$confirm = GETPOST ( 'confirm' , 'alpha' );
2005-09-06 18:39:18 +02:00
2008-05-04 16:24:29 +02:00
// Security check
2019-01-27 11:55:16 +01:00
$socid = GETPOST ( 'socid' , 'int' );
2021-02-23 18:59:19 +01:00
if ( $user -> socid ) {
$socid = $user -> socid ;
}
if ( $user -> socid > 0 ) {
2008-05-04 16:24:29 +02:00
unset ( $_GET [ " action " ]);
2020-04-10 10:59:32 +02:00
$action = '' ;
2005-09-06 09:11:19 +02:00
}
2013-04-26 16:07:35 +02:00
2014-02-08 02:02:01 +01:00
$object = new ActionComm ( $db );
2013-04-22 14:47:37 +02:00
2021-02-23 18:59:19 +01:00
if ( $id > 0 ) {
2014-11-03 01:07:07 +01:00
$ret = $object -> fetch ( $id );
2014-09-24 01:35:29 +02:00
$object -> fetch_thirdparty ();
2013-04-22 14:47:37 +02:00
}
2008-05-04 16:24:29 +02:00
// Get parameters
2020-04-20 15:06:27 +02:00
$limit = GETPOST ( 'limit' , 'int' ) ? GETPOST ( 'limit' , 'int' ) : $conf -> liste_limit ;
2019-01-27 11:55:16 +01:00
$sortfield = GETPOST ( " sortfield " , 'alpha' );
$sortorder = GETPOST ( " sortorder " , 'alpha' );
2020-03-13 13:07:11 +01:00
$page = GETPOSTISSET ( 'pageplusone' ) ? ( GETPOST ( 'pageplusone' ) - 1 ) : GETPOST ( " page " , 'int' );
2021-02-23 18:59:19 +01:00
if ( empty ( $page ) || $page == - 1 ) {
$page = 0 ;
} // If $page is not defined, or '' or -1
2020-04-20 15:06:27 +02:00
$offset = $limit * $page ;
2008-05-04 16:24:29 +02:00
$pageprev = $page - 1 ;
$pagenext = $page + 1 ;
2021-02-23 18:59:19 +01:00
if ( ! $sortorder ) {
$sortorder = " ASC " ;
}
if ( ! $sortfield ) {
$sortfield = " name " ;
}
2008-05-04 16:24:29 +02:00
2014-02-08 02:02:01 +01:00
$upload_dir = $conf -> agenda -> dir_output . '/' . dol_sanitizeFileName ( $object -> ref );
2020-04-10 10:59:32 +02:00
$modulepart = 'actions' ;
2014-02-08 02:02:01 +01:00
2021-03-29 22:43:39 +02:00
$result = restrictedArea ( $user , 'agenda' , $id , 'actioncomm&societe' , 'myactions|allactions' , 'fk_soc' , 'id' );
if ( $user -> socid && $socid ) {
$result = restrictedArea ( $user , 'societe' , $socid );
}
2021-05-18 01:58:54 +02:00
$permissiontoadd = $user -> rights -> agenda -> myactions -> read ; // Used by the include of actions_addupdatedelete.inc.php and actions_linkedfiles.inc.php
2005-09-06 09:11:19 +02:00
/*
2013-07-25 18:35:48 +02:00
* Actions
2005-09-06 09:11:19 +02:00
*/
2021-03-29 22:43:39 +02:00
2021-02-19 16:10:19 +01:00
include DOL_DOCUMENT_ROOT . '/core/actions_linkedfiles.inc.php' ;
2005-09-06 18:39:18 +02:00
2005-09-06 09:11:19 +02:00
2005-09-06 18:39:18 +02:00
/*
2009-08-05 19:19:55 +02:00
* View
2005-09-06 18:39:18 +02:00
*/
2005-09-06 09:11:19 +02:00
2012-02-13 02:24:17 +01:00
$form = new Form ( $db );
2020-04-10 10:59:32 +02:00
$help_url = 'EN:Module_Agenda_En|FR:Module_Agenda|ES:M&omodulodulo_Agenda' ;
2021-03-29 22:43:39 +02:00
2019-01-27 11:55:16 +01:00
llxHeader ( '' , $langs -> trans ( " Agenda " ), $help_url );
2005-09-06 09:11:19 +02:00
2021-02-23 18:59:19 +01:00
if ( $object -> id > 0 ) {
2020-04-10 10:59:32 +02:00
$result1 = $object -> fetch ( $id );
$result2 = $object -> fetch_thirdparty ();
$result3 = $object -> fetch_contact ();
$result4 = $object -> fetch_userassigned ();
$result5 = $object -> fetch_optionals ();
2014-11-03 01:07:07 +01:00
2021-02-23 18:59:19 +01:00
if ( $result1 < 0 || $result2 < 0 || $result3 < 0 || $result4 < 0 || $result5 < 0 ) {
2019-01-27 11:55:16 +01:00
dol_print_error ( $db , $object -> error );
2014-11-03 01:07:07 +01:00
exit ;
}
2021-02-23 18:59:19 +01: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 ;
}
2014-11-03 01:07:07 +01:00
2020-04-10 10:59:32 +02:00
$author = new User ( $db );
2014-02-08 02:02:01 +01:00
$author -> fetch ( $object -> author -> id );
2020-04-10 10:59:32 +02:00
$object -> author = $author ;
2009-03-03 01:12:56 +01:00
2008-12-03 22:17:51 +01:00
2020-04-10 10:59:32 +02:00
$head = actions_prepare_head ( $object );
2014-09-15 19:04:30 +02:00
2020-04-10 10:59:32 +02:00
$now = dol_now ();
$delay_warning = $conf -> global -> MAIN_DELAY_ACTIONS_TODO * 24 * 60 * 60 ;
2014-09-24 01:35:29 +02:00
2020-10-22 22:50:03 +02:00
print dol_get_fiche_head ( $head , 'documents' , $langs -> trans ( " Action " ), - 1 , 'action' );
2009-03-03 01:12:56 +01:00
2019-01-27 11:55:16 +01:00
$linkback = img_picto ( $langs -> trans ( " BackToList " ), 'object_list' , 'class="hideonsmartphone pictoactionview"' );
2020-07-09 12:33:28 +02:00
$linkback .= '<a href="' . DOL_URL_ROOT . '/comm/action/list.php?action=show_list">' . $langs -> trans ( " BackToList " ) . '</a>' ;
2016-09-19 10:43:30 +02:00
// Link to other agenda views
2020-04-10 10:59:32 +02:00
$out = '' ;
$out .= '</li><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>' ;
2021-05-18 14:00:29 +02:00
$out .= '</li><li class="noborder litext">' . img_picto ( $langs -> trans ( " ViewCal " ), 'object_calendarmonth' , 'class="hideonsmartphone pictoactionview"' );
2020-04-10 10:59:32 +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>' ;
$out .= '</li><li class="noborder litext">' . img_picto ( $langs -> trans ( " ViewWeek " ), 'object_calendarweek' , 'class="hideonsmartphone pictoactionview"' );
$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 ( " ViewWeek " ) . '</a>' ;
$out .= '</li><li class="noborder litext">' . img_picto ( $langs -> trans ( " ViewDay " ), 'object_calendarday' , 'class="hideonsmartphone pictoactionview"' );
$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>' ;
$linkback .= $out ;
$morehtmlref = '<div class="refidno">' ;
2017-02-22 17:46:54 +01:00
// Thirdparty
//$morehtmlref.='<br>'.$langs->trans('ThirdParty') . ' : ' . $object->thirdparty->getNomUrl(1);
// Project
2021-02-23 18:59:19 +01:00
if ( ! empty ( $conf -> projet -> enabled )) {
2020-03-23 15:54:02 +01:00
$langs -> load ( " projects " );
//$morehtmlref.='<br>'.$langs->trans('Project') . ' ';
2020-04-10 10:59:32 +02:00
$morehtmlref .= $langs -> trans ( 'Project' ) . ': ' ;
if ( ! empty ( $object -> fk_project )) {
2020-03-23 15:54:02 +01:00
$proj = new Project ( $db );
$proj -> fetch ( $object -> fk_project );
2020-04-10 10:59:32 +02:00
$morehtmlref .= '<a href="' . DOL_URL_ROOT . '/projet/card.php?id=' . $object -> fk_project . '" title="' . $langs -> trans ( 'ShowProject' ) . '">' ;
$morehtmlref .= $proj -> ref ;
$morehtmlref .= '</a>' ;
2021-02-23 18:59:19 +01:00
if ( $proj -> title ) {
$morehtmlref .= ' - ' . $proj -> title ;
}
2020-03-23 15:54:02 +01:00
} else {
2020-04-10 10:59:32 +02:00
$morehtmlref .= '' ;
2020-03-23 15:54:02 +01:00
}
2017-02-22 17:46:54 +01:00
}
2020-04-10 10:59:32 +02:00
$morehtmlref .= '</div>' ;
2017-06-28 18:29:57 +02:00
2020-04-10 10:59:32 +02:00
dol_banner_tab ( $object , 'id' , $linkback , ( $user -> socid ? 0 : 1 ), 'id' , 'ref' , $morehtmlref );
2017-06-28 18:29:57 +02:00
2017-03-31 14:21:51 +02:00
print '<div class="fichecenter">' ;
2017-06-28 18:29:57 +02:00
2016-09-19 10:43:30 +02:00
print '<div class="underbanner clearboth"></div>' ;
2017-06-28 18:29:57 +02:00
2013-04-22 14:47:37 +02:00
// Affichage fiche action en mode visu
2019-03-05 12:18:36 +01:00
print '<table class="border tableforfield centpercent">' ;
2009-03-03 01:12:56 +01:00
2021-02-27 17:15:40 +01:00
// Type of event
2021-02-23 18:59:19 +01:00
if ( ! empty ( $conf -> global -> AGENDA_USE_EVENT_TYPE )) {
2021-02-27 17:15:40 +01:00
print '<tr><td class="titlefield">' . $langs -> trans ( " Type " ) . '</td><td colspan="3">' ;
print $object -> getTypePicto ();
print $langs -> trans ( " Action " . $object -> type_code );
print '</td></tr>' ;
2013-04-22 14:47:37 +02:00
}
2009-03-03 01:12:56 +01:00
2013-04-22 14:47:37 +02: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>' ;
2013-04-22 14:47:37 +02:00
// Date start
2016-09-19 10:43:30 +02:00
print '<tr><td>' . $langs -> trans ( " DateActionStart " ) . '</td><td colspan="3">' ;
2021-02-23 18:59:19 +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 " ));
}
2013-04-22 14:47:37 +02:00
print '</td>' ;
print '</tr>' ;
// Date end
2014-11-03 01:07:07 +01:00
print '<tr><td>' . $langs -> trans ( " DateActionEnd " ) . '</td><td colspan="3">' ;
2021-02-23 18:59:19 +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 " ));
}
2013-04-22 14:47:37 +02:00
print '</td></tr>' ;
// Location
2021-02-23 18:59:19 +01:00
if ( empty ( $conf -> global -> AGENDA_DISABLE_LOCATION )) {
2014-11-03 01:07:07 +01:00
print '<tr><td>' . $langs -> trans ( " Location " ) . '</td><td colspan="3">' . $object -> location . '</td></tr>' ;
}
2013-04-22 14:47:37 +02:00
2014-09-15 19:04:30 +02:00
// Assigned to
2016-09-19 10:43:30 +02:00
print '<tr><td class="nowrap">' . $langs -> trans ( " ActionAffectedTo " ) . '</td><td colspan="3">' ;
2020-04-10 10:59:32 +02:00
$listofuserid = array ();
2021-02-23 18:59:19 +01:00
if ( empty ( $donotclearsession )) {
if ( $object -> userownerid > 0 ) {
$listofuserid [ $object -> userownerid ] = array ( 'id' => $object -> userownerid , 'transparency' => $object -> transparency ); // Owner first
}
if ( ! empty ( $object -> userassigned )) { // Now concat assigned users
2014-11-03 01:07:07 +01:00
// Restore array with key with same value than param 'id'
2021-01-03 18:42:45 +01:00
$tmplist1 = $object -> userassigned ;
2021-02-23 18:59:19 +01:00
foreach ( $tmplist1 as $key => $val ) {
if ( $val [ 'id' ] && $val [ 'id' ] != $object -> userownerid ) {
$listofuserid [ $val [ 'id' ]] = $val ;
}
2014-11-03 01:07:07 +01:00
}
}
2020-04-10 10:59:32 +02:00
$_SESSION [ 'assignedtouser' ] = json_encode ( $listofuserid );
2020-05-21 15:05:19 +02:00
} else {
2021-02-23 18:59:19 +01:00
if ( ! empty ( $_SESSION [ 'assignedtouser' ])) {
2020-04-10 10:59:32 +02:00
$listofuserid = json_decode ( $_SESSION [ 'assignedtouser' ], true );
2014-11-03 01:07:07 +01:00
}
}
2020-04-10 10:59:32 +02:00
$listofcontactid = array (); // not used yet
$listofotherid = array (); // not used yet
2015-11-22 12:33:56 +01:00
print '<div class="assignedtouser">' ;
2020-04-10 10:59:32 +02: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
/* if ( in_array ( $user -> id , array_keys ( $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-11-03 01:07:07 +01:00
print ' </td></tr>' ;
2014-09-24 01:35:29 +02:00
2016-09-19 10:43:30 +02:00
print '</table>' ;
2017-06-28 18:29:57 +02:00
2019-03-05 12:18:36 +01:00
print '<table class="border tableforfield centpercent">' ;
2009-03-03 01:12:56 +01:00
2018-08-04 14:17:51 +02:00
// Build file list
2020-04-10 10:59:32 +02:00
$filearray = dol_dir_list ( $upload_dir , " files " , 0 , '' , '(\.meta|_preview.*\.png)$' , $sortfield , ( strtolower ( $sortorder ) == 'desc' ? SORT_DESC : SORT_ASC ), 1 );
$totalsize = 0 ;
2021-02-23 18:59:19 +01:00
foreach ( $filearray as $key => $file ) {
2020-04-10 10:59:32 +02:00
$totalsize += $file [ 'size' ];
2013-04-22 14:47:37 +02:00
}
2009-03-03 01:12:56 +01:00
2016-09-19 10:43:30 +02:00
print '<tr><td class="titlefield" class="nowrap">' . $langs -> trans ( " NbOfAttachedFiles " ) . '</td><td colspan="3">' . count ( $filearray ) . '</td></tr>' ;
2013-04-22 14:47:37 +02:00
print '<tr><td>' . $langs -> trans ( " TotalSizeOfAttachedFiles " ) . '</td><td colspan="3">' . $totalsize . ' ' . $langs -> trans ( " bytes " ) . '</td></tr>' ;
2014-11-03 01:07:07 +01:00
2014-11-07 23:07:15 +01:00
print '</table>' ;
2009-03-03 01:12:56 +01:00
2020-03-23 15:54:02 +01:00
print '</div>' ;
2017-06-28 18:29:57 +02:00
2020-10-27 18:19:31 +01:00
print dol_get_fiche_end ();
2013-04-22 14:47:37 +02:00
2014-11-03 01:07:07 +01:00
2014-11-07 23:07:15 +01:00
$modulepart = 'actions' ;
2021-06-08 16:19:21 +02:00
$permissiontoadd = $user -> rights -> agenda -> myactions -> create || $user -> rights -> agenda -> allactions -> create ;
2020-04-10 10:59:32 +02:00
$param = '&id=' . $object -> id ;
2021-04-12 21:25:58 +02:00
include DOL_DOCUMENT_ROOT . '/core/tpl/document_actions_post_headers.tpl.php' ;
2020-05-21 15:05:19 +02:00
} else {
2014-03-10 19:36:32 +01:00
print $langs -> trans ( " ErrorUnknown " );
2005-09-06 09:11:19 +02:00
}
2018-07-29 13:40:35 +02:00
// End of page
2011-08-27 16:24:16 +02:00
llxFooter ();
2014-11-07 23:07:15 +01:00
$db -> close ();