All checks were successful
Deploy Eplan / deploy (push) Successful in 1s
- Tab "Aufmaß" auf Auftragskarte: PWA-Link mit Auftrags-Kontext, Grundriss-Liste (Platzhalter für Backend-Anbindung) - Tab "Aufmaß" auf Kundenkarte: Aufträge des Kunden mit Aufmaß-Button - Neue Rechte: read, write, admin - Konstanten: EPLAN_TAB_ON_ORDER, EPLAN_TAB_ON_THIRDPARTY - Standard Dolibarr Include-Pattern für Container-Kompatibilität Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
92 lines
3.4 KiB
PHP
92 lines
3.4 KiB
PHP
<?php
|
|
/* Copyright (C) 2026 Eduard Wisch <data@data-it-solution.de>
|
|
* GPL v3+
|
|
*
|
|
* Tab "Aufmaß" auf der Kundenkarte
|
|
*/
|
|
|
|
$res = 0;
|
|
if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php";
|
|
$tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1;
|
|
while ($i > 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; }
|
|
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";
|
|
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");
|
|
|
|
require_once DOL_DOCUMENT_ROOT.'/societe/class/societe.class.php';
|
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
|
|
|
|
$langs->loadLangs(array('companies', 'eplan@eplan'));
|
|
|
|
$socid = GETPOSTINT('socid');
|
|
|
|
$object = new Societe($db);
|
|
if ($socid > 0) {
|
|
$object->fetch($socid);
|
|
}
|
|
|
|
if (!$object->id) {
|
|
llxHeader('', 'Aufmaß');
|
|
print '<div class="error">Kunde nicht gefunden</div>';
|
|
llxFooter();
|
|
exit;
|
|
}
|
|
|
|
if (!$user->hasRight('eplan', 'read')) accessforbidden();
|
|
|
|
$pwa_url = getDolGlobalString('EPLAN_PWA_URL');
|
|
|
|
llxHeader('', 'Aufmaß — '.$object->name, '', '', 0, 0, '', '', '', 'mod-eplan');
|
|
|
|
$head = societe_prepare_head($object);
|
|
print dol_get_fiche_head($head, 'aufmass', $langs->trans("ThirdParty"), -1, 'company');
|
|
|
|
dol_banner_tab($object, 'socid', '', ($user->socid ? 0 : 1), 'rowid', 'nom');
|
|
|
|
print '<div class="fichecenter">';
|
|
print '<div class="underbanner clearboth"></div>';
|
|
|
|
// Aufträge des Kunden mit Aufmaß-Status
|
|
print '<table class="noborder centpercent">';
|
|
print '<tr class="liste_titre">';
|
|
print '<td>Auftrag</td><td>Datum</td><td>Aufmaße</td><td></td>';
|
|
print '</tr>';
|
|
|
|
// Aufträge des Kunden laden
|
|
$sql = "SELECT c.rowid, c.ref, c.date_commande FROM ".MAIN_DB_PREFIX."commande as c";
|
|
$sql .= " WHERE c.fk_soc = ".((int)$object->id);
|
|
$sql .= " ORDER BY c.date_commande DESC";
|
|
$sql .= " LIMIT 20";
|
|
|
|
$resql = $db->query($sql);
|
|
$num = 0;
|
|
if ($resql) {
|
|
$num = $db->num_rows($resql);
|
|
while ($obj = $db->fetch_object($resql)) {
|
|
print '<tr class="oddeven">';
|
|
print '<td><a href="'.DOL_URL_ROOT.'/commande/card.php?id='.$obj->rowid.'">'.dol_escape_htmltag($obj->ref).'</a></td>';
|
|
print '<td>'.dol_print_date($db->jdate($obj->date_commande), 'day').'</td>';
|
|
print '<td class="opacitymedium">—</td>';
|
|
print '<td class="right">';
|
|
if (!empty($pwa_url)) {
|
|
$link = $pwa_url.'/?auftrag='.urlencode($obj->ref).'&kunde='.urlencode($object->name).'&auftrag_id='.$obj->rowid;
|
|
print '<a href="'.dol_escape_htmltag($link).'" target="_blank" class="butAction butActionSmall">Aufmaß</a>';
|
|
}
|
|
print '</td>';
|
|
print '</tr>';
|
|
}
|
|
}
|
|
if ($num == 0) {
|
|
print '<tr class="oddeven"><td colspan="4" class="opacitymedium" style="text-align: center; padding: 16px;">';
|
|
print 'Keine Aufträge für diesen Kunden.';
|
|
print '</td></tr>';
|
|
}
|
|
|
|
print '</table>';
|
|
|
|
print '</div>';
|
|
print dol_get_fiche_end();
|
|
llxFooter();
|
|
$db->close();
|