* Copyright (C) 2012 Laurent Destailleur * Copyright (C) 2021 florian.henry@scopen.fr * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * \file htdocs/projet/event.php * \ingroup project * \brief Tab event organization */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; require_once DOL_DOCUMENT_ROOT.'/categories/class/categorie.class.php'; // Load translation files required by the page $langs->load('projects', 'eventorganization'); $action = GETPOST('action', 'aZ09'); $id = GETPOST('id', 'int'); $ref = GETPOST('ref', 'alpha'); $mine = $_REQUEST['mode'] == 'mine' ? 1 : 0; //if (! $user->rights->projet->all->lire) $mine=1; // Special for projects $object = new Project($db); include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Security check $socid = 0; if ($user->socid > 0) { $socid = $user->socid; // For external user, no check is done on company because readability is managed by public status of project and assignement. } $result = restrictedArea($user, 'eventorganization', $id); $permissiontoread = $user->rights->eventorganization->read; $permissiontoadd = $user->rights->eventorganization->write; // Used by the include of actions_addupdatedelete.inc.php and actions_lineupdown.inc.php $permissiontodelete = $user->rights->eventorganization->delete || ($permissiontoadd && isset($object->status) && $object->status == $object::STATUS_DRAFT); /* * Actions */ if ($action == 'update' && empty(GETPOST('cancel')) && $permissiontoadd) { $error = 0; $object->oldcopy = clone $object; $object->accept_conference_suggestions=(GETPOST('accept_conference_suggestions', 'alpha') == 'on' ? 1 : 0); $object->accept_booth_suggestions=(GETPOST('accept_booth_suggestions', 'alpha') == 'on' ? 1 : 0); $object->price_registration=price2num(GETPOST('price_registration', 'alphanohtml'));; $object->price_booth=price2num(GETPOST('price_booth', 'alphanohtml'));; $result = $object->update($user); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); $db->rollback(); $action = 'edit'; } else { $db->commit(); if (GETPOST('socid', 'int') > 0) { $object->fetch_thirdparty(GETPOST('socid', 'int')); } else { unset($object->thirdparty); } $action=''; } } /* * View */ $title = $langs->trans("Project").' - '.$langs->trans("ConferenceOrBoothTab").' - '.$object->ref.' '.$object->name; if (!empty($conf->global->MAIN_HTML_TITLE) && preg_match('/projectnameonly/', $conf->global->MAIN_HTML_TITLE) && $object->name) { $title = $object->ref.' '.$object->name.' - '.$langs->trans("Note"); } //TODO Make wiki docs $help_url = ''; llxHeader("", $title, $help_url); $form = new Form($db); $userstatic = new User($db); $now = dol_now(); if ($id > 0 || !empty($ref)) { $head = project_prepare_head($object); print dol_get_fiche_head($head, 'eventorganisation', $langs->trans('ConferenceOrBoothTab'), -1); // Project card $linkback = ''.$langs->trans("BackToList").''; $morehtmlref = '
'; // Title $morehtmlref .= $object->title; // Thirdparty if ($object->thirdparty->id > 0) { $morehtmlref .= '
'.$langs->trans('ThirdParty').' : '.$object->thirdparty->getNomUrl(1, 'project'); } $morehtmlref .= '
'; // Define a complementary filter for search of next/prev ref. if (!$user->rights->projet->all->lire) { $objectsListId = $object->getProjectsAuthorizedForUser($user, 0, 0); $object->next_prev_filter = " rowid in (".(count($objectsListId) ?join(',', array_keys($objectsListId)) : '0').")"; } dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); print '
'; print '
'; print '
'; print ''; // Usage print ''; print ''; // Visibility print ''; if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES) && !empty($object->usage_opportunity)) { // Opportunity status print ''; // Opportunity percent print ''; // Opportunity Amount print ''; // Opportunity Weighted Amount print ''; } // Date start - end print ''; // Budget print ''; // Other attributes $cols = 2; include DOL_DOCUMENT_ROOT.'/core/tpl/extrafields_view.tpl.php'; print '
'; print $langs->trans("Usage"); print ''; if (!empty($conf->global->PROJECT_USE_OPPORTUNITIES)) { print 'usage_opportunity ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("ProjectFollowOpportunity"); print $form->textwithpicto($langs->trans("ProjectFollowOpportunity"), $htmltext); print '
'; } if (empty($conf->global->PROJECT_HIDE_TASKS)) { print 'usage_task ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("ProjectFollowTasks"); print $form->textwithpicto($langs->trans("ProjectFollowTasks"), $htmltext); print '
'; } if (!empty($conf->global->PROJECT_BILL_TIME_SPENT)) { print 'usage_bill_time ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("ProjectBillTimeDescription"); print $form->textwithpicto($langs->trans("BillTime"), $htmltext); print '
'; } if (!empty($conf->eventorganization->enabled)) { print 'usage_organize_event ? ' checked="checked"' : '')).'"> '; $htmltext = $langs->trans("EventOrganizationDescriptionLong"); print $form->textwithpicto($langs->trans("ManageOrganizeEvent"), $htmltext); } print '
'.$langs->trans("Visibility").''; if ($object->public) { print $langs->trans('SharedProject'); } else { print $langs->trans('PrivateProject'); } print '
'.$langs->trans("OpportunityStatus").''; $code = dol_getIdFromCode($db, $object->opp_status, 'c_lead_status', 'rowid', 'code'); if ($code) { print $langs->trans("OppStatus".$code); } print '
'.$langs->trans("OpportunityProbability").''; if (strcmp($object->opp_percent, '')) { print price($object->opp_percent, 0, $langs, 1, 0).' %'; } print '
'.$langs->trans("OpportunityAmount").''; /*if ($object->opp_status) { print price($obj->opp_amount, 1, $langs, 1, 0, -1, $conf->currency); }*/ if (strcmp($object->opp_amount, '')) { print price($object->opp_amount, 0, $langs, 1, 0, -1, $conf->currency); } print '
'.$langs->trans('OpportunityWeightedAmount').''; if (strcmp($object->opp_amount, '') && strcmp($object->opp_percent, '')) { print price($object->opp_amount * $object->opp_percent / 100, 0, $langs, 1, 0, -1, $conf->currency); } print '
'.$langs->trans("DateStart").' - '.$langs->trans("DateEnd").''; $start = dol_print_date($object->date_start, 'day'); print ($start ? $start : '?'); $end = dol_print_date($object->date_end, 'day'); print ' - '; print ($end ? $end : '?'); if ($object->hasDelay()) { print img_warning("Late"); } print '
'.$langs->trans("Budget").''; if (strcmp($object->budget_amount, '')) { print price($object->budget_amount, 0, $langs, 1, 0, 0, $conf->currency); } print '
'; print '
'; print '
'; print '
'; print '
'; if ($action == 'edit') { print '
'; print ''; print ''; print ''; } print ''; // Description print ''; // Categories if ($conf->categorie->enabled) { print '"; } if ($action == 'edit' && $permissiontoadd) { //Allow unknown people to suggest conferences print '"; //Allow unknown people to suggest booth print '"; //Price of registration print '"; //Price of registration print '"; } else { //Allow unknown people to suggest conferences print '"; //Allow unknown people to suggest booth print '"; //Price of registration print '"; //Price of registration print '"; } //ICS Link print '"; print '
'.$langs->trans("Description").''; print dol_htmlentitiesbr($object->description); print '
'.$langs->trans("Categories").''; print $form->showCategories($object->id, Categorie::TYPE_PROJECT, 1); print "
' . $langs->trans("AllowUnknownPeopleSuggestConf") . $form->textwithpicto('', $langs->trans("AllowUnknownPeopleSuggestConfHelp")) . ''; print 'accept_conference_suggestions ? ' checked="checked"' : '')) . '"> '; print "
' . $langs->trans("AllowUnknownPeopleSuggestBooth") . $form->textwithpicto('', $langs->trans("AllowUnknownPeopleSuggestBoothHelp")) . ''; print 'accept_booth_suggestions ? ' checked="checked"' : '')) . '"> '; print "
' . $langs->trans("PriceOfRegistration") . ''; print ''; print "
' . $langs->trans("PriceOfBooth") . ''; print ''; print "
' . $langs->trans("AllowUnknownPeopleSuggestConf") . $form->textwithpicto('', $langs->trans("AllowUnknownPeopleSuggestConfHelp")) . ''; print 'accept_conference_suggestions ? ' checked="checked"' : '')) . '"> '; print "
' . $langs->trans("AllowUnknownPeopleSuggestBooth") . $form->textwithpicto('', $langs->trans("AllowUnknownPeopleSuggestBoothHelp")) . ''; print 'accept_booth_suggestions ? ' checked="checked"' : '')) . '"> '; print "
' . $langs->trans("PriceOfRegistration") . ''; if (strcmp($object->price_registration, '')) { print price($object->price_registration, 0, $langs, 1, 0, 0, $conf->currency); } print "
' . $langs->trans("PriceOfBooth") . ''; if (strcmp($object->price_booth, '')) { print price($object->price_booth, 0, $langs, 1, 0, 0, $conf->currency); } print "
'.$langs->trans("EventOrganizationICSLink").''; //TODO ICS Link //print 'ICS'; print "
'; print ''; print '
'; print '
'; print '
'; print '
'; } print dol_get_fiche_end(); if ($action == 'edit' && $permissiontoadd > 0) { print '
'; print '     '; print ''; print '
'; print ''; } /* * Actions Buttons */ print '
'; $parameters = array(); $reshook = $hookmanager->executeHooks('addMoreActionsButtons', $parameters, $object, $action); // Note that $action and $object may have been // modified by hook if (empty($reshook)) { // Modify if ($object->statut != Project::STATUS_CLOSED && $action=='') { if ($permissiontoadd > 0) { print ''.$langs->trans("Modify").''; } else { print ''.$langs->trans('Modify').''; } } } // End of page llxFooter(); $db->close();