forked from Evarisk/Digirisk
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Evarisk#3682 [LegalDisplay] add: graph on legal display
- Loading branch information
1 parent
16a8bee
commit 525e53a
Showing
6 changed files
with
166 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
<?php | ||
/* Copyright (C) 2021-2023 EVARISK <[email protected]> | ||
/* Copyright (C) 2021-2024 EVARISK <[email protected]> | ||
* | ||
* 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 | ||
|
@@ -23,6 +23,7 @@ | |
|
||
// Load DigiriskDolibarr libraries | ||
require_once __DIR__ . '/../digiriskdocuments.class.php'; | ||
require_once __DIR__ . '/../digiriskresources.class.php'; | ||
|
||
/** | ||
* Class for LegalDisplay | ||
|
@@ -39,6 +40,11 @@ class LegalDisplay extends DigiriskDocuments | |
*/ | ||
public $element = 'legaldisplay'; | ||
|
||
/** | ||
* @var string String with name of icon for legaldisplay. Must be the part after the 'object_' into object_legaldisplay.png | ||
*/ | ||
public $picto = 'fontawesome_fa-file_fas_#d35968'; | ||
|
||
/** | ||
* Constructor. | ||
* | ||
|
@@ -50,7 +56,7 @@ public function __construct(DoliDB $db) | |
} | ||
|
||
/** | ||
* Function for JSON filling before saving in database | ||
* Function for JSON filling before saving in database for documents | ||
* | ||
* @return false|string | ||
* @throws Exception | ||
|
@@ -234,4 +240,91 @@ public function getIDCCByCode($code) { | |
return ''; | ||
} | ||
} | ||
|
||
/** | ||
* Load dashboard info | ||
* | ||
* @return array $dashboardData Return all dashboardData after load info | ||
* @throws Exception | ||
*/ | ||
public function load_dashboard(): array | ||
{ | ||
$getLegalDisplayInfos = $this->getLegalDisplayInfos(); | ||
|
||
$dashboardData['graphs'] = [$getLegalDisplayInfos]; | ||
|
||
return $dashboardData; | ||
} | ||
|
||
/** | ||
* Get legal display infos | ||
* | ||
* @return array $array Return legal display graph infos | ||
* @throws Exception | ||
*/ | ||
public function getLegalDisplayInfos(): array | ||
{ | ||
global $langs; | ||
|
||
// Graph Title parameters | ||
$array['title'] = $langs->transnoentities('DocumentCompletionRate'); | ||
$array['picto'] = $this->picto; | ||
|
||
// Graph parameters | ||
$array['width'] = '100%'; | ||
$array['height'] = 300; | ||
$array['type'] = 'pie'; | ||
$array['showlegend'] = 2; | ||
$array['dataset'] = 1; | ||
|
||
$legalDisplayGraphInfos = $this->getLegalDisplayNumber(); | ||
$array['labels'] = [ | ||
0 => [ | ||
'label' => price2num($legalDisplayGraphInfos['counter'] / $legalDisplayGraphInfos['maxNumber'] * 100, 'MT') . ' %', | ||
'color' => '#0d8affcc' | ||
], | ||
1 => [ | ||
'label' => price2num(($legalDisplayGraphInfos['maxNumber'] - $legalDisplayGraphInfos['counter']) * 100 / $legalDisplayGraphInfos['maxNumber'], 'MT') . ' %', | ||
'color' => '#6c6c6c66' | ||
] | ||
]; | ||
|
||
$array['data'] = [$legalDisplayGraphInfos['counter'], $legalDisplayGraphInfos['maxNumber'] - $legalDisplayGraphInfos['counter']]; | ||
|
||
return $array; | ||
} | ||
|
||
/** | ||
* Get legal display numbers | ||
* | ||
* @return array $array Return counter and maxNumber | ||
* @throws Exception | ||
*/ | ||
public function getLegalDisplayNumber(): array | ||
{ | ||
global $conf; | ||
|
||
$resources = new DigiriskResources($this->db); | ||
|
||
$counter = 0; | ||
$securityResources = ['SAMU','Pompiers','Police','AllEmergencies','RightsDefender','PoisonControlCenter', 'Responsible', 'LabourDoctorSociety', 'LabourDoctorContact', 'LabourInspectorSociety', 'LabourInspectorContact']; | ||
$securityConsts = ['DIGIRISKDOLIBARR_LOCATION_OF_DETAILED_INSTRUCTION', 'DIGIRISKDOLIBARR_SOCIETY_DESCRIPTION', 'DIGIRISKDOLIBARR_GENERAL_MEANS', 'DIGIRISKDOLIBARR_GENERAL_RULES', 'DIGIRISKDOLIBARR_FIRST_AID', 'DIGIRISKDOLIBARR_RULES_LOCATION', 'DIGIRISKDOLIBARR_DUER_LOCATION', 'DIGIRISKDOLIBARR_COLLECTIVE_AGREEMENT_LOCATION']; | ||
$allLinks = $resources->fetchDigiriskResources(); | ||
|
||
$maxNumber = count($securityResources) + count($securityConsts); | ||
foreach ($securityConsts as $securityConst) { | ||
if (dol_strlen($conf->global->$securityConst) > 0) { | ||
$counter += 1; | ||
} | ||
} | ||
foreach ($securityResources as $securityResource) { | ||
if (!empty($allLinks[$securityResource] && $allLinks[$securityResource]->id[0] > 0)) { | ||
$counter += 1; | ||
} | ||
} | ||
|
||
$array = ['counter' => $counter, 'maxNumber' => $maxNumber]; | ||
|
||
return $array; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
<?php | ||
/* Copyright (C) 2021-2023 EVARISK <[email protected]> | ||
/* Copyright (C) 2021-2024 EVARISK <[email protected]> | ||
* | ||
* 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 | ||
|
@@ -16,9 +16,9 @@ | |
*/ | ||
|
||
/** | ||
* \file view/digiriskstandard/digiriskstandard_legaldisplay.php | ||
* \ingroup digiriskdolibarr | ||
* \brief Page to view legaldisplay | ||
* \file view/digiriskstandard/digiriskstandard_legaldisplay.php | ||
* \ingroup digiriskdolibarr | ||
* \brief Page to view legaldisplay | ||
*/ | ||
|
||
// Load DigiriskDolibarr environment | ||
|
@@ -30,60 +30,64 @@ | |
die('Include of digiriskdolibarr main fails'); | ||
} | ||
|
||
require_once DOL_DOCUMENT_ROOT . '/core/lib/images.lib.php'; | ||
// Load Dolibarr libraries | ||
require_once DOL_DOCUMENT_ROOT . '/projet/class/project.class.php'; | ||
require_once DOL_DOCUMENT_ROOT . '/contact/class/contact.class.php'; | ||
|
||
// Load Saturne libraries | ||
require_once __DIR__ . '/../../../saturne/class/saturneschedules.class.php'; | ||
require_once __DIR__ . '/../../../saturne/class/saturnedashboard.class.php'; | ||
|
||
// Load DigiriskDolibarr libraries | ||
require_once __DIR__ . '/../../class/digiriskstandard.class.php'; | ||
require_once __DIR__ . '/../../class/digiriskresources.class.php'; | ||
require_once __DIR__ . '/../../class/digiriskdolibarrdocuments/legaldisplay.class.php'; | ||
require_once __DIR__ . '/../../lib/digiriskdolibarr_digiriskstandard.lib.php'; | ||
require_once __DIR__ . '/../../lib/digiriskdolibarr_function.lib.php'; | ||
|
||
require_once __DIR__ . '/../../../saturne/class/saturneschedules.class.php'; | ||
|
||
global $db, $conf, $langs, $user, $hookmanager; | ||
global $db, $conf, $langs, $moduleNameLowerCase, $user, $hookmanager; | ||
|
||
// Load translation files required by the page | ||
saturne_load_langs(['other']); | ||
saturne_load_langs(); | ||
|
||
// Get parameters | ||
$action = GETPOST('action', 'aZ09'); | ||
$subaction = GETPOST('subaction', 'aZ09'); | ||
|
||
// Initialize technical objects | ||
$object = new DigiriskStandard($db); | ||
$document = new LegalDisplay($db); | ||
$contact = new Contact($db); | ||
$usertmp = new User($db); | ||
$project = new Project($db); | ||
$object = new DigiriskStandard($db); | ||
$document = new LegalDisplay($db); | ||
$usertmp = new User($db); | ||
$contact = new Contact($db); | ||
$project = new Project($db); | ||
$dashboard = new SaturneDashboard($db, $moduleNameLowerCase); | ||
|
||
$hookmanager->initHooks(array('digiriskelementlegaldisplay', 'digiriskstandardview', 'globalcard')); // Note that conf->hooks_modules contains array | ||
$hookmanager->initHooks(['digiriskelementlegaldisplay', 'digiriskstandardview', 'globalcard']); // Note that conf->hooks_modules contains array | ||
|
||
$object->fetch($conf->global->DIGIRISKDOLIBARR_ACTIVE_STANDARD); | ||
|
||
$upload_dir = $conf->digiriskdolibarr->multidir_output[$conf->entity ?? 1]; | ||
|
||
// Security check - Protection if external user | ||
$permissiontoread = $user->rights->digiriskdolibarr->digiriskstandard->read && $user->rights->digiriskdolibarr->legaldisplay->read; | ||
$permissionToRead = $user->rights->digiriskdolibarr->digiriskstandard->read && $user->rights->digiriskdolibarr->legaldisplay->read; | ||
$permissiontoadd = $user->rights->digiriskdolibarr->legaldisplay->write; | ||
$permissiontodelete = $user->rights->digiriskdolibarr->legaldisplay->delete; | ||
saturne_check_access($permissiontoread); | ||
saturne_check_access($permissionToRead); | ||
|
||
/* | ||
* Actions | ||
*/ | ||
|
||
$parameters = array(); | ||
$reshook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks | ||
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); | ||
$parameters = []; | ||
$resHook = $hookmanager->executeHooks('doActions', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks | ||
if ($resHook < 0) { | ||
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); | ||
} | ||
|
||
if (empty($reshook)) { | ||
$error = 0; | ||
if (empty($resHook)) { | ||
$previousRef = $object->ref; | ||
$object->ref = ''; | ||
|
||
// Actions builddoc, forcebuilddoc, remove_file. | ||
// Actions builddoc, forcebuilddoc, remove_file | ||
require_once __DIR__ . '/../../../saturne/core/tpl/documents/documents_action.tpl.php'; | ||
|
||
// Action to generate pdf from odt file | ||
|
@@ -99,51 +103,49 @@ | |
$title = $langs->trans('LegalDisplay'); | ||
$helpUrl = 'FR:Module_Digirisk#Soci.C3.A9t.C3.A9.2FOrganisation'; | ||
|
||
digirisk_header($title, $helpUrl); ?> | ||
|
||
<div id="cardContent" value=""> | ||
|
||
<?php | ||
$res = $object->fetch_optionals(); | ||
digirisk_header($title, $helpUrl); | ||
|
||
saturne_get_fiche_head($object, 'standardLegalDisplay', $title); | ||
|
||
// Object card | ||
// ------------------------------------------------------------ | ||
// Project | ||
$morehtmlref = '<div class="refidno">'; | ||
$moreHtmlRef = '<div class="refidno">'; | ||
$project->fetch($conf->global->DIGIRISKDOLIBARR_DU_PROJECT); | ||
$morehtmlref .= $langs->trans('Project') . ' : ' . getNomUrlProject($project, 1, 'blank', 1); | ||
$morehtmlref .= '</div>'; | ||
$moreHtmlRef .= $langs->trans('Project') . ' : ' . getNomUrlProject($project, 1, 'blank', 1); | ||
$moreHtmlRef .= '</div>'; | ||
|
||
$moduleNameLowerCase = 'mycompany'; | ||
saturne_banner_tab($object,'ref','none', 0, 'ref', 'ref', $morehtmlref, true); | ||
saturne_banner_tab($object,'ref','none', 0, 'ref', 'ref', $moreHtmlRef, true); | ||
$moduleNameLowerCase = 'digiriskdolibarr'; | ||
|
||
print '<a href="../../admin/securityconf.php" target="_blank">' . $langs->trans('ConfigureSecurityAndSocialData') . ' <i class="fas fa-external-link-alt"></i></a>'; | ||
print '<div class="valignmiddle"> <a href="../../admin/securityconf.php" target="_blank">' . $langs->trans('ConfigureSecurityAndSocialData') . ' <i class="fas fa-external-link-alt"></i></a></div>'; | ||
print '<hr>'; | ||
print '<div class="fichecenter">'; | ||
print '<table class="border centpercent tableforfield">' . "\n"; | ||
print '<div class="fichehalfleft">'; | ||
print '<table class="border centpercent tableforfield">'; | ||
|
||
//JSON Decode and show fields | ||
require_once __DIR__ . '/../../core/tpl/digiriskdocuments/digiriskdolibarr_legaldisplayfields_view.tpl.php'; | ||
|
||
print '</table>'; | ||
print '</div>'; | ||
print '<div class="fichehalfright">'; | ||
|
||
$moreParams = ['loadLegalDisplay' => 1]; | ||
$dashboard->show_dashboard($moreParams); | ||
print '</div>'; | ||
print '</div>'; | ||
|
||
print dol_get_fiche_end(); | ||
|
||
// Document Generation -- Génération des documents | ||
$dirFiles = 'legaldisplay'; | ||
$filedir = $upload_dir . '/' . $dirFiles; | ||
$urlsource = $_SERVER["PHP_SELF"]; | ||
$modulepart = 'digiriskdolibarr:LegalDisplay'; | ||
|
||
if ($permissiontoadd || $permissiontoread) { | ||
$genallowed = 1; | ||
} | ||
$fileDir = $upload_dir . '/' . $dirFiles; | ||
$urlSource = $_SERVER["PHP_SELF"]; | ||
$modulePart = 'digiriskdolibarr:LegalDisplay'; | ||
|
||
print saturne_show_documents($modulepart, $dirFiles, $filedir, $urlsource, 1,1, '', 1, 0, 0, 0, 0, '', 0, '', empty($soc->default_lang) ? '' : $soc->default_lang, $object); | ||
print saturne_show_documents($modulePart, $dirFiles, $fileDir, $urlSource, $permissiontoadd, $permissiontodelete, '', 1, 0, 0, 0, 0, '', '', $langs->defaultlang, 0, $object); | ||
|
||
// End of page | ||
llxFooter(); | ||
|