dolibarr/htdocs/modulebuilder/template/mymoduleindex.php

260 lines
7.6 KiB
PHP
Raw Permalink Normal View History

2017-07-16 14:57:30 +02:00
<?php
add baseline exclude for phpstan (#31632) * add baseline exclude for phpstan * update * update * update * update * update * merge * restore one filter * delete old errors * fix * fix * fix * $moreforfilter can t be empty * fix * enable check * refresh baseline * add phpdoc * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix --------- Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-11-04 23:53:20 +01:00
/* Copyright (C) 2001-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004-2015 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2012 Regis Houssin <regis.houssin@inodbox.com>
* Copyright (C) 2015 Jean-François Ferry <jfefe@aternatik.fr>
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) ---Replace with your own copyright and developer email---
2017-07-16 14:57:30 +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
* 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
2019-09-23 21:55:30 +02:00
* along with this program. If not, see <https://www.gnu.org/licenses/>.
2017-07-16 14:57:30 +02:00
*/
/**
2019-06-06 18:57:57 +02:00
* \file htdocs/modulebuilder/template/mymoduleindex.php
2017-07-16 14:57:30 +02:00
* \ingroup mymodule
* \brief Home page of mymodule top menu
*/
// Load Dolibarr environment
$res = 0;
2017-07-16 14:57:30 +02:00
// Try main.inc.php into web root known defined into CONTEXT_DOCUMENT_ROOT (not always defined)
2021-02-26 18:26:44 +01:00
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) {
$res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
}
2018-05-23 17:16:58 +02:00
// Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME
$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME'];
$tmp2 = realpath(__FILE__);
$i = strlen($tmp) - 1;
$j = strlen($tmp2) - 1;
2021-02-26 18:26:44 +01:00
while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) {
2023-12-04 13:46:42 +01:00
$i--;
$j--;
2021-02-26 18:26:44 +01:00
}
if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) {
$res = @include substr($tmp, 0, ($i + 1))."/main.inc.php";
}
if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) {
$res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php";
}
2017-07-16 14:57:30 +02:00
// Try main.inc.php using relative path
2021-02-26 18:26:44 +01:00
if (!$res && file_exists("../main.inc.php")) {
$res = @include "../main.inc.php";
}
if (!$res && file_exists("../../main.inc.php")) {
$res = @include "../../main.inc.php";
}
if (!$res && file_exists("../../../main.inc.php")) {
$res = @include "../../../main.inc.php";
}
if (!$res) {
die("Include of main fails");
}
2017-07-16 14:57:30 +02:00
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
add baseline exclude for phpstan (#31632) * add baseline exclude for phpstan * update * update * update * update * update * merge * restore one filter * delete old errors * fix * fix * fix * $moreforfilter can t be empty * fix * enable check * refresh baseline * add phpdoc * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix --------- Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-11-04 23:53:20 +01:00
/**
* @var Conf $conf
* @var DoliDB $db
* @var HookManager $hookmanager
* @var Translate $langs
* @var User $user
*/
2018-05-26 17:57:30 +02:00
// Load translation files required by the page
2017-07-25 12:44:55 +02:00
$langs->loadLangs(array("mymodule@mymodule"));
2017-07-16 14:57:30 +02:00
2020-09-16 19:39:50 +02:00
$action = GETPOST('action', 'aZ09');
2017-07-16 14:57:30 +02:00
$now = dol_now();
$max = getDolGlobalInt('MAIN_SIZE_SHORTLIST_LIMIT', 5);
2024-04-02 12:01:23 +02:00
// Security check - Protection if external user
$socid = GETPOSTINT('socid');
add baseline exclude for phpstan (#31632) * add baseline exclude for phpstan * update * update * update * update * update * merge * restore one filter * delete old errors * fix * fix * fix * $moreforfilter can t be empty * fix * enable check * refresh baseline * add phpdoc * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix --------- Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-11-04 23:53:20 +01:00
if (!empty($user->socid) && $user->socid > 0) {
2017-07-16 14:57:30 +02:00
$action = '';
$socid = $user->socid;
2017-07-16 14:57:30 +02:00
}
// Initialize a technical object to manage hooks. Note that conf->hooks_modules contains array
//$hookmanager->initHooks(array($object->element.'index'));
// Security check (enable the most restrictive one)
//if ($user->socid > 0) accessforbidden();
//if ($user->socid > 0) $socid = $user->socid;
2022-09-08 16:19:11 +02:00
//if (!isModEnabled('mymodule')) {
2022-09-08 14:58:00 +02:00
// accessforbidden('Module not enabled');
//}
//if (! $user->hasRight('mymodule', 'myobject', 'read')) {
// accessforbidden();
//}
//restrictedArea($user, 'mymodule', 0, 'mymodule_myobject', 'myobject', '', 'rowid');
2022-09-08 14:58:00 +02:00
//if (empty($user->admin)) {
// accessforbidden('Must be admin');
//}
2017-07-16 14:57:30 +02:00
/*
* Actions
*/
// None
/*
* View
*/
$form = new Form($db);
$formfile = new FormFile($db);
llxHeader("", $langs->trans("MyModuleArea"), '', '', 0, 0, '', '', '', 'mod-mymodule page-index');
2017-07-16 14:57:30 +02:00
print load_fiche_titre($langs->trans("MyModuleArea"), '', 'mymodule.png@mymodule');
2017-07-16 14:57:30 +02:00
print '<div class="fichecenter"><div class="fichethirdleft">';
/* BEGIN MODULEBUILDER DRAFT MYOBJECT
// Draft MyObject
2024-02-04 16:03:59 +01:00
if (isModEnabled('mymodule') && $user->hasRight('mymodule', 'read')) {
2017-07-16 14:57:30 +02:00
$langs->load("orders");
$sql = "SELECT c.rowid, c.ref, c.ref_client, c.total_ht, c.tva as total_tva, c.total_ttc, s.rowid as socid, s.nom as name, s.client, s.canvas";
2020-05-01 08:40:55 +02:00
$sql.= ", s.code_client";
$sql.= " FROM ".$db->prefix()."commande as c";
$sql.= ", ".$db->prefix()."societe as s";
2017-07-16 14:57:30 +02:00
$sql.= " WHERE c.fk_soc = s.rowid";
$sql.= " AND c.fk_statut = 0";
$sql.= " AND c.entity IN (".getEntity('commande').")";
2021-06-09 15:36:47 +02:00
if ($socid) $sql.= " AND c.fk_soc = ".((int) $socid);
2017-07-16 14:57:30 +02:00
$resql = $db->query($sql);
if ($resql)
{
$total = 0;
$num = $db->num_rows($resql);
2019-11-05 21:24:41 +01:00
print '<table class="noborder centpercent">';
2017-07-16 14:57:30 +02:00
print '<tr class="liste_titre">';
2020-08-06 13:14:43 +02:00
print '<th colspan="3">'.$langs->trans("DraftMyObjects").($num?'<span class="badge marginleftonlyshort">'.$num.'</span>':'').'</th></tr>';
2017-07-16 14:57:30 +02:00
$var = true;
if ($num > 0)
{
$i = 0;
while ($i < $num)
{
$obj = $db->fetch_object($resql);
print '<tr class="oddeven"><td class="nowrap">';
2020-08-06 13:14:43 +02:00
$myobjectstatic->id=$obj->rowid;
$myobjectstatic->ref=$obj->ref;
$myobjectstatic->ref_client=$obj->ref_client;
$myobjectstatic->total_ht = $obj->total_ht;
$myobjectstatic->total_tva = $obj->total_tva;
$myobjectstatic->total_ttc = $obj->total_ttc;
print $myobjectstatic->getNomUrl(1);
2020-05-01 08:40:55 +02:00
print '</td>';
2017-07-16 14:57:30 +02:00
print '<td class="nowrap">';
print '</td>';
print '<td class="right" class="nowrap">'.price($obj->total_ttc).'</td></tr>';
2017-07-16 14:57:30 +02:00
$i++;
$total += $obj->total_ttc;
}
if ($total>0)
{
print '<tr class="liste_total"><td>'.$langs->trans("Total").'</td><td colspan="2" class="right">'.price($total)."</td></tr>";
2017-07-16 14:57:30 +02:00
}
}
else
{
print '<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans("NoOrder").'</td></tr>';
}
print "</table><br>";
$db->free($resql);
}
else
{
dol_print_error($db);
}
}
END MODULEBUILDER DRAFT MYOBJECT */
2021-10-24 00:37:37 +02:00
print '</div><div class="fichetwothirdright">';
2017-07-16 14:57:30 +02:00
/* BEGIN MODULEBUILDER LASTMODIFIED MYOBJECT
// Last modified myobject
2024-02-04 16:03:59 +01:00
if (isModEnabled('mymodule') && $user->hasRight('mymodule', 'read')) {
2020-08-06 13:14:43 +02:00
$sql = "SELECT s.rowid, s.ref, s.label, s.date_creation, s.tms";
$sql.= " FROM ".$db->prefix()."mymodule_myobject as s";
2020-08-06 13:14:43 +02:00
$sql.= " WHERE s.entity IN (".getEntity($myobjectstatic->element).")";
//if ($socid) $sql.= " AND s.rowid = $socid";
2017-07-16 14:57:30 +02:00
$sql .= " ORDER BY s.tms DESC";
$sql .= $db->plimit($max, 0);
$resql = $db->query($sql);
if ($resql)
{
$num = $db->num_rows($resql);
$i = 0;
2019-11-05 21:24:41 +01:00
print '<table class="noborder centpercent">';
2017-07-16 14:57:30 +02:00
print '<tr class="liste_titre">';
print '<th colspan="2">';
2020-08-06 16:10:40 +02:00
print $langs->trans("BoxTitleLatestModifiedMyObjects", $max);
2017-07-16 14:57:30 +02:00
print '</th>';
print '<th class="right">'.$langs->trans("DateModificationShort").'</th>';
2017-07-16 14:57:30 +02:00
print '</tr>';
if ($num)
{
while ($i < $num)
{
$objp = $db->fetch_object($resql);
2020-08-06 13:14:43 +02:00
$myobjectstatic->id=$objp->rowid;
$myobjectstatic->ref=$objp->ref;
$myobjectstatic->label=$objp->label;
$myobjectstatic->status = $objp->status;
2017-07-16 14:57:30 +02:00
print '<tr class="oddeven">';
2020-08-06 13:14:43 +02:00
print '<td class="nowrap">'.$myobjectstatic->getNomUrl(1).'</td>';
print '<td class="right nowrap">';
2017-07-16 14:57:30 +02:00
print "</td>";
2020-08-06 16:10:40 +02:00
print '<td class="right nowrap">'.dol_print_date($db->jdate($objp->tms), 'day')."</td>";
2017-07-16 14:57:30 +02:00
print '</tr>';
$i++;
}
$db->free($resql);
2020-08-06 16:10:40 +02:00
} else {
2017-07-16 14:57:30 +02:00
print '<tr class="oddeven"><td colspan="3" class="opacitymedium">'.$langs->trans("None").'</td></tr>';
}
print "</table><br>";
}
}
*/
2021-10-24 00:37:37 +02:00
print '</div></div>';
2017-07-16 14:57:30 +02:00
2018-08-14 09:55:58 +02:00
// End of page
2017-07-16 14:57:30 +02:00
llxFooter();
$db->close();