Compare commits
63
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c46587c49f | ||
|
|
17fa438529 | ||
|
|
14e64b8f4b | ||
|
|
df028888e9 | ||
|
|
625b9627e8 | ||
|
|
3ee518af03 | ||
|
|
8518e327aa | ||
|
|
84cdd8754a | ||
|
|
7c468dbced | ||
|
|
ba31fc62cf | ||
|
|
f6a1315192 | ||
|
|
c219c32212 | ||
|
|
e1b8b7864f | ||
|
|
822960b9f0 | ||
|
|
0fef7146c6 | ||
|
|
27d48a55bb | ||
|
|
06dbb9b8b8 | ||
|
|
99d5804ffa | ||
|
|
c601ac17df | ||
|
|
3d37049ea1 | ||
|
|
1bf8f567b4 | ||
|
|
39e741a595 | ||
|
|
e2120d1862 | ||
|
|
8c67d97728 | ||
|
|
3b804ef745 | ||
|
|
aea469320f | ||
|
|
a9cab336d0 | ||
|
|
4b27887dd2 | ||
|
|
230d1b03f2 | ||
|
|
8c559bf5cf | ||
|
|
ef8b6f7a1f | ||
|
|
348d946637 | ||
|
|
cadbf08376 | ||
|
|
68723b7c4b | ||
|
|
e6188d9153 | ||
|
|
ea5ac90b13 | ||
|
|
20c64a97ea | ||
|
|
8032bf779a | ||
|
|
ed5d1690ef | ||
|
|
c0380142ba | ||
|
|
cfbc602443 | ||
|
|
e249d5a715 | ||
|
|
e39f56cb24 | ||
|
|
411ab85359 | ||
|
|
9f616fc0e5 | ||
|
|
2e6d57e93a | ||
|
|
dc6827fc1e | ||
|
|
13d776750e | ||
|
|
20e69d9291 | ||
|
|
202892b9da | ||
|
|
d774d9d349 | ||
|
|
a277250ee0 | ||
|
|
f0b1f1731e | ||
|
|
d5f60e73c1 | ||
|
|
2b5d01b52a | ||
|
|
7e73d30805 | ||
|
|
feddd00896 | ||
|
|
d1991b3f72 | ||
|
|
880f4cbdf1 | ||
|
|
278d4b631b | ||
|
|
debe733f13 | ||
|
|
a243d3b330 | ||
|
|
bbcb6f5c52 |
@@ -0,0 +1,5 @@
|
||||
conf/user.inc.php
|
||||
conf/user_defined.php
|
||||
userdata/cronjobkey.txt
|
||||
userdata/tmp/
|
||||
www/cache/
|
||||
+1
-1
@@ -44,7 +44,7 @@ upload_max_filesize = 100M
|
||||
max_execution_time = 3600
|
||||
max_input_time = 3600
|
||||
magic_quotes_gpc = Off
|
||||
file_uploads = Yes (gesetzt: file_uploads = On)
|
||||
file_uploads = Yes
|
||||
max_file_uploads = 20
|
||||
short_open_tag = On
|
||||
max_input_vars=3000
|
||||
|
||||
@@ -9571,7 +9571,7 @@ CREATE TABLE IF NOT EXISTS `produktion` (
|
||||
`angebot` varchar(255) NOT NULL,
|
||||
`freitext` text NOT NULL,
|
||||
`internebemerkung` text NOT NULL,
|
||||
`status` varchar(64) NOT NULL,
|
||||
`status` varchar(64) NOT NULL default 'angelegt',
|
||||
`adresse` int(11) NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`abteilung` varchar(255) NOT NULL,
|
||||
|
||||
@@ -3552,6 +3552,67 @@ class YUI {
|
||||
'</td></tr></table>')";
|
||||
}
|
||||
|
||||
function IconsSQL_produktion($tablename) {
|
||||
$freigegeben = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/produkton_laeuft.png\" title=\"Produktion freigegeben\" border=\"0\" style=\"margin-right:1px\">";
|
||||
$angelegt = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/blue.png\" title=\"Produktion angelegt\" border=\"0\" style=\"margin-right:1px\">";
|
||||
$abgeschlossen = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/grey.png\" title=\"Produktion abgeschlossen\" border=\"0\" style=\"margin-right:1px\">";
|
||||
$gestartet = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/produkton_green.png\" title=\"Produktion gestartet\" border=\"0\" style=\"margin-right:1px\">";
|
||||
$storniert = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/storno.png\" title=\"Produktion storniert\" border=\"0\" style=\"margin-right:1px\">";
|
||||
|
||||
for ($z = 0;$z < 6;$z++) {
|
||||
$angelegt_6 .= $angelegt;
|
||||
$abgeschlossen_6 .= $abgeschlossen;
|
||||
$storniert_6 .= $storniert;
|
||||
}
|
||||
|
||||
$lager_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/lagergo.png\" style=\"margin-right:1px\" title=\"Artikel ist im Lager\" border=\"0\">";
|
||||
$lager_nicht_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/lagerstop.png\" style=\"margin-right:1px\" title=\"Artikel fehlt im Lager\" border=\"0\">";
|
||||
|
||||
$reserviert_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/ware_bestellt.png\" style=\"margin-right:1px\" title=\"Artikel reserviert\" border=\"0\">";
|
||||
$reserviert_nicht_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/ware_nicht_bestellt.png\" style=\"margin-right:1px\" title=\"Artikel nicht reserviert\" border=\"0\">";
|
||||
|
||||
$auslagern_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/ausgelagert.png\" title=\"Produktion ausgelagert\" border=\"0\" style=\"margin-right:1px\">";
|
||||
$auslagern_nicht_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/nicht_ausgelagert.png\" title=\"Produktion ausgelagert\" border=\"0\" style=\"margin-right:1px\">";
|
||||
|
||||
$einlagern_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/eingelagert.png\" title=\"Produktion eingelagert\" border=\"0\" style=\"margin-right:1px\">";
|
||||
$einlagern_nicht_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/nicht_eingelagert.png\" title=\"Produktion eingelagert\" border=\"0\" style=\"margin-right:1px\">";
|
||||
|
||||
$zeit_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/zeit_dreiviertel.png\" style=\"margin-right:1px\" title=\"Zeiten erfasst\" border=\"0\">";
|
||||
$zeit_nicht_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/keine_zeiten.png\" style=\"margin-right:1px\" title=\"Zeiten nicht erfasst\" border=\"0\">";
|
||||
|
||||
$versand_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/liefersperrego.png\" style=\"margin-right:1px\" title=\"Versand ok\" border=\"0\">";
|
||||
$versand_nicht_ok = "<img src=\"./themes/{$this->app->Conf->WFconf['defaulttheme']}/images/liefersperrestop.png\" style=\"margin-right:1px\" title=\"Versand nicht ok\" border=\"0\">";
|
||||
|
||||
return "CONCAT('<table><tr><td nowrap>',
|
||||
CASE
|
||||
WHEN $tablename.status = 'freigegeben' THEN '$freigegeben'
|
||||
WHEN $tablename.status = 'abgeschlossen' THEN '$abgeschlossen'
|
||||
WHEN $tablename.status = 'angelegt' THEN '$angelegt'
|
||||
WHEN $tablename.status = 'gestartet' THEN '$gestartet'
|
||||
ELSE
|
||||
'$storniert'
|
||||
end,
|
||||
CASE
|
||||
WHEN FIND_IN_SET($tablename.status, 'freigegeben,gestartet') THEN
|
||||
CONCAT (
|
||||
if($tablename.lager_ok,'$lager_ok','$lager_nicht_ok'),
|
||||
if($tablename.reserviert_ok,'$reserviert_ok','$reserviert_nicht_ok'),
|
||||
if($tablename.auslagern_ok,'$auslagern_ok','$auslagern_nicht_ok'),
|
||||
if($tablename.einlagern_ok,'$einlagern_ok','$einlagern_nicht_ok'),
|
||||
if($tablename.zeit_ok,'$zeit_ok','$zeit_nicht_ok'),
|
||||
if($tablename.versand_ok,'$versand_ok','$versand_nicht_ok')
|
||||
)
|
||||
ELSE
|
||||
CASE
|
||||
WHEN $tablename.status = 'angelegt' THEN '$angelegt_6'
|
||||
WHEN $tablename.status = 'abgeschlossen' THEN '$abgeschlossen_6'
|
||||
ELSE
|
||||
'$storniert_6'
|
||||
END
|
||||
END,
|
||||
'</td></tr></table>')";
|
||||
}
|
||||
|
||||
function TablePositionSearch($parsetarget, $name, $callback = "show", $gener) {
|
||||
|
||||
$id = $this->app->Secure->GetGET("id");
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
* PLACEHOLDER_EDIT
|
||||
* PLACEHOLDER_DELETE
|
||||
* PLACEHOLDER_SQL_LIST
|
||||
* PLACEHOLDER_SQL_LIST
|
||||
* PLACEHOLDER_DROPNBOX
|
||||
* PLACEHOLDER_GET_INPUT
|
||||
* PLACEHOLDER_SET_INPUT
|
||||
* PLACEHOLDER_COLUMNS
|
||||
@@ -21,9 +21,11 @@
|
||||
*/
|
||||
|
||||
$host = 'localhost';
|
||||
$user = 'openxedev';
|
||||
$passwd = 'openxedev';
|
||||
$schema = 'openxedev';
|
||||
$user = 'openxe';
|
||||
$passwd = 'openxe';
|
||||
$schema = 'openxe';
|
||||
|
||||
echo("\n");
|
||||
|
||||
if ($argc >= 2) {
|
||||
|
||||
@@ -39,12 +41,34 @@ if ($argc >= 2) {
|
||||
$force = false;
|
||||
}
|
||||
|
||||
if (!str_starts_with($argv[1],'-')) {
|
||||
$module_name = $argv[1];
|
||||
if (strpos($argv[1],'-') == 0) {
|
||||
$module_name = $argv[1];
|
||||
} else {
|
||||
info();
|
||||
exit;
|
||||
}
|
||||
|
||||
// column selection
|
||||
$selected_columns = array();
|
||||
|
||||
// Set selected_columns here or per parameter -c col1,col2,col3
|
||||
// $selected_columns = array('belegnr','adresse','projekt');
|
||||
|
||||
if (in_array('-c', $argv)) {
|
||||
$pos = array_keys($argv, '-c')[0];
|
||||
$pos++;
|
||||
|
||||
if (isset($argv[$pos])) {
|
||||
$selected_columns = explode(',',$argv[$pos]);
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($selected_columns)) {
|
||||
echo("Selected all columns.\n");
|
||||
} else {
|
||||
echo("Selected ".count($selected_columns)." columns,\n");
|
||||
}
|
||||
|
||||
$module_class_name = ucfirst($module_name);
|
||||
$php_file_name = $module_name . ".php";
|
||||
$php_template_file_name = "module_creator_php_template.txt";
|
||||
@@ -89,40 +113,52 @@ if ($argc >= 2) {
|
||||
/* Iterate through the result set */
|
||||
echo "FIELD\t\t\t\tType\t\tNull\tKey\tDefault\tExtra\n";
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
foreach ($row as $key => $value) {
|
||||
echo($value);
|
||||
|
||||
switch ($key) {
|
||||
case 'Field':
|
||||
$colwidth = 32;
|
||||
$column_processed = false;
|
||||
|
||||
if ($value != 'id') {
|
||||
$columns[] = $value;
|
||||
$sql_columns[] = $table_short_name.".".$value;
|
||||
}
|
||||
if (empty($selected_columns) || in_array($row['Field'],$selected_columns) || $row['Field'] == 'id') {
|
||||
|
||||
break;
|
||||
case 'Type':
|
||||
$colwidth = 16;
|
||||
break;
|
||||
default:
|
||||
$colwidth = 8;
|
||||
break;
|
||||
foreach ($row as $key => $value) {
|
||||
|
||||
echo($value);
|
||||
|
||||
switch ($key) {
|
||||
case 'Field':
|
||||
$colwidth = 32;
|
||||
|
||||
if ($value != 'id') {
|
||||
$column_processed = true;
|
||||
$columns[] = $value;
|
||||
$sql_columns[] = $table_short_name.".".$value;
|
||||
}
|
||||
|
||||
break;
|
||||
case 'Type':
|
||||
$colwidth = 16;
|
||||
break;
|
||||
default:
|
||||
$colwidth = 8;
|
||||
break;
|
||||
}
|
||||
|
||||
for ($filler = strlen($value); $filler < $colwidth; $filler++) {
|
||||
echo(" ");
|
||||
}
|
||||
}
|
||||
|
||||
for ($filler = strlen($value); $filler < $colwidth; $filler++) {
|
||||
echo(" ");
|
||||
}
|
||||
// Build edit form
|
||||
// <tr><td>{|Bezeichnung|}:*</td><td><input type="text" id="bezeichnung" name="bezeichnung" value="[BEZEICHNUNG]" size="40"></td></tr>
|
||||
|
||||
if ($row['Field'] != 'id') {
|
||||
$edit_form = $edit_form . '<tr><td>{|' . ucfirst($row['Field']) . '|}:</td><td><input type="text" name="' . $row['Field'].'" id="'.$row['Field'].'" value="[' . strtoupper($row['Field']) . ']" size="20"></td></tr>' . "\n";
|
||||
}
|
||||
echo("\n");
|
||||
}
|
||||
}
|
||||
|
||||
// Build edit form
|
||||
// <tr><td>{|Bezeichnung|}:*</td><td><input type="text" id="bezeichnung" name="bezeichnung" value="[BEZEICHNUNG]" size="40"></td></tr>
|
||||
|
||||
if ($row['Field'] != 'id') {
|
||||
$edit_form = $edit_form . '<tr><td>{|' . ucfirst($row['Field']) . '|}:</td><td><input type="text" name="' . $row['Field'] . '" value="[' . strtoupper($row['Field']) . ']" size="40"></td></tr>' . "\n";
|
||||
}
|
||||
|
||||
echo("\n");
|
||||
if (empty($columns)) {
|
||||
echo("No matching columns found!\n");
|
||||
exit();
|
||||
}
|
||||
|
||||
// Create php file
|
||||
@@ -152,7 +188,8 @@ if ($argc >= 2) {
|
||||
$php_file_contents = str_replace('PLACEHOLDER_LIST', $module_name . "_list", $php_file_contents);
|
||||
$php_file_contents = str_replace('PLACEHOLDER_EDIT', $module_name . "_edit", $php_file_contents);
|
||||
$php_file_contents = str_replace('PLACEHOLDER_DELETE', $module_name . "_delete", $php_file_contents);
|
||||
$php_file_contents = str_replace('PLACEHOLDER_SQL_LIST', "SELECT SQL_CALC_FOUND_ROWS $table_short_name.id, $sql_list_of_columns, $table_short_name.id FROM $module_name $table_short_name", $php_file_contents);
|
||||
$php_file_contents = str_replace('PLACEHOLDER_DROPNBOX',"'<img src=./themes/new/images/details_open.png class=details>' AS `open`, CONCAT('<input type=\\\"checkbox\\\" name=\\\"auswahl[]\\\" value=\\\"',".$table_short_name.".id,'\\\" />') AS `auswahl`", $php_file_contents);
|
||||
$php_file_contents = str_replace('PLACEHOLDER_SQL_LIST', "SELECT SQL_CALC_FOUND_ROWS $table_short_name.id, \$dropnbox, $sql_list_of_columns, $table_short_name.id FROM $module_name $table_short_name", $php_file_contents);
|
||||
$php_file_contents = str_replace('PLACEHOLDER_SQL_EDIT', "INSERT INTO $module_name ($list_of_columns, id) values ('\".implode('\', \'',\$input).\"', \$id) ON DUPLICATE KEY UPDATE SET ", $php_file_contents);
|
||||
$php_file_contents = str_replace('PLACEHOLDER_GET_INPUT', $get_input, $php_file_contents);
|
||||
$php_file_contents = str_replace('PLACEHOLDER_SET_INPUT', $set_input, $php_file_contents);
|
||||
@@ -221,6 +258,8 @@ function info() {
|
||||
echo("arg1: SQL table name\n");
|
||||
echo("Options\n");
|
||||
echo("\t-v: verbose output\n");
|
||||
echo("\t-f: force override of existing files\n");
|
||||
echo("\t-c: select columns like this: -c col1,col2,col3,col3\n");
|
||||
echo("\n");
|
||||
}
|
||||
|
||||
|
||||
@@ -30,8 +30,11 @@ class PLACEHOLDER_MODULECLASSNAME {
|
||||
switch ($name) {
|
||||
case "PLACEHOLDER_LIST":
|
||||
$allowed['PLACEHOLDER_LIST'] = array('list');
|
||||
$heading = array(PLACEHOLDER_COLUMNS, 'Menü');
|
||||
$width = array('10%'); // Fill out manually later
|
||||
$heading = array('','',PLACEHOLDER_COLUMNS, 'Menü');
|
||||
$width = array('1%','1%','10%'); // Fill out manually later
|
||||
|
||||
// columns that are aligned right (numbers etc)
|
||||
// $alignright = array(4,5,6,7,8);
|
||||
|
||||
$findcols = array(PLACEHOLDER_SQL_COLUMNS);
|
||||
$searchsql = array(PLACEHOLDER_SQL_COLUMNS);
|
||||
@@ -39,6 +42,8 @@ class PLACEHOLDER_MODULECLASSNAME {
|
||||
$defaultorder = 1;
|
||||
$defaultorderdesc = 0;
|
||||
|
||||
$dropnbox = "PLACEHOLDER_DROPNBOX";
|
||||
|
||||
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" . "<a href=\"index.php?module=PLACEHOLDER_MODULENAME&action=edit&id=%value%\"><img src=\"./themes/{$app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\"></a> <a href=\"#\" onclick=DeleteDialog(\"index.php?module=PLACEHOLDER_MODULENAME&action=delete&id=%value%\");>" . "<img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"></a>" . "</td></tr></table>";
|
||||
|
||||
$sql = "PLACEHOLDER_SQL_LIST";
|
||||
@@ -86,6 +91,12 @@ class PLACEHOLDER_MODULECLASSNAME {
|
||||
|
||||
function PLACEHOLDER_EDIT() {
|
||||
$id = $this->app->Secure->GetGET('id');
|
||||
|
||||
// Check if other users are editing this id
|
||||
if($this->app->erp->DisableModul('artikel',$id))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$this->app->Tpl->Set('ID', $id);
|
||||
|
||||
@@ -141,6 +152,7 @@ class PLACEHOLDER_MODULECLASSNAME {
|
||||
|
||||
|
||||
// Load values again from database
|
||||
$dropnbox = "PLACEHOLDER_DROPNBOX";
|
||||
$result = $this->app->DB->SelectArr("PLACEHOLDER_SQL_LIST"." WHERE id=$id");
|
||||
|
||||
foreach ($result[0] as $key => $value) {
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
<div id="tabs-1">
|
||||
[MESSAGE]
|
||||
[TAB1]
|
||||
[TAB1NEXT]
|
||||
</div>
|
||||
@@ -0,0 +1,270 @@
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<li><a href="#tabs-1">Allgemein</a></li>
|
||||
<li><a href="#tabs-2">Produktion</a></li>
|
||||
<li><a href="#tabs-3">Positionen</a></li>
|
||||
<li><a href="#tabs-4">Protokoll</a></li>
|
||||
</ul>
|
||||
<div id="tabs-1">
|
||||
[MESSAGE]
|
||||
<form action="" method="post">
|
||||
[FORMHANDLEREVENT]
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-12 col-md-12 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|<b>Produktion <font color="blue">[BELEGNR]</font></b>|}</legend>
|
||||
[STATUSICONS]
|
||||
[TEILPRODUKTIONINFO]
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-14 col-md-6 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|Allgemein|}</legend>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<tr><td>{|Kunde|}:</td><td><input type="text" name="kundennummer" id="kundennummer" value="[KUNDENNUMMER]" size="20"></td></tr>
|
||||
<tr><td>{|Projekt|}:</td><td><input type="text" name="projekt" id="projekt" value="[PROJEKT]" size="20"></td></tr>
|
||||
<tr><td>{|Auftrag|}:</td><td><input type="text" name="auftragid" id="auftragid" value="[AUFTRAGID]" size="20"></td></tr>
|
||||
<tr><td>{|Interne Bezeichnung|}:</td><td><input type="text" name="internebezeichnung" value="[INTERNEBEZEICHNUNG]" size="20"></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-14 col-md-6 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<tr><td>{|Status|}:</td><td><input disabled type="text" name="status" value="[STATUS]" size="20"></td></tr>
|
||||
<tr><td>{|Angelegt am|}:</td><td><input type="text" name="datum" id="datum" value="[DATUM]" size="10"></td></tr>
|
||||
<tr><td>{|Materiallager|}:</td><td><input type="text" name="standardlager" id="standardlager" value="[STANDARDLAGER]" size="20"></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-14 col-md-2 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<legend>{|Aktionen|}</legend>
|
||||
<tr><td><button [AKTION_SPEICHERN_DISABLED] name="submit" value="speichern" class="ui-button-icon" style="width:100%;">Speichern</button></td></tr>
|
||||
<tr [AKTION_FREIGEBEN_VISIBLE]><td><button name="submit" value="freigeben" class="ui-button-icon" style="width:100%;">Freigeben</button></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-14 col-md-6 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|Einstellungen|}</legend>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<tr><td>{|Reservierart|}:</td><td><input disabled type="text" name="reservierart" value="[RESERVIERART]" size="20"></td></tr>
|
||||
<tr><td>{|Auslagerart|}:</td><td><input disabled type="text" name="auslagerart" value="[AUSLAGERART]" size="20"></td></tr>
|
||||
<tr><td>{|Unterstücklisten auflösen|}:</td><td><input disabled type="checkbox" name="unterlistenexplodieren" value=1 [UNTERLISTENEXPLODIEREN] size="20"></td></tr>
|
||||
<tr><td>{|Funktionstest|}:</td><td><input disabled type="checkbox" name="funktionstest" value=1 [FUNKTIONSTEST] size="20"></td></tr>
|
||||
<tr><td>{|Beschreibungen von Arbeitsschritten anzeigen|}:</td><td><input disabled type="checkbox" name="arbeitsschrittetextanzeigen" value=1 [ARBEITSSCHRITTETEXTANZEIGEN] size="20"></td></tr>
|
||||
<tr><td>{|Seriennummer erstellen|}:</td><td><input disabled type="checkbox" name="seriennummer_erstellen" value=1 [SERIENNUMMER_ERSTELLEN] size="20"></td></tr>
|
||||
<tr><td>{|Unterseriennummer erfassen|}:</td><td><input disabled type="checkbox" name="unterseriennummer_erfassen" value=1 [UNTERSERIENNUMMER_ERFASSEN] size="20"></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-14 col-md-8 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<tr><td>{|Auslieferung Lager|}:</td><td><input type="text" name="datumauslieferung" id="datumauslieferung" value="[DATUMAUSLIEFERUNG]" size="10"></td></tr>
|
||||
<tr><td>{|Bereitstellung Start|}:</td><td><input type="text" name="datumbereitstellung" id="datumbereitstellung" value="[DATUMBEREITSTELLUNG]" size="10"></td></tr>
|
||||
<tr><td>{|Produktion Start|}:</td><td><input type="text" name="datumproduktion" id="datumproduktion" value="[DATUMPRODUKTION]" size="10"></td></tr>
|
||||
<tr><td>{|Produktion Ende|}:</td><td><input type="text" name="datumproduktionende" id="datumproduktionende" value="[DATUMPRODUKTIONENDE]" size="10"></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-12 col-md-12 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|Freitext|}</legend>
|
||||
<textarea name="freitext" id="freitext" style="min-height: 180px;">[FREITEXT]</textarea>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-12 col-md-12 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|Interne Bemerkung|}</legend>
|
||||
<textarea name="internebemerkung" id="internebemerkung" style="min-height: 180px;">[INTERNEBEMERKUNG]</textarea>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div [POSITIONEN_TAB_VISIBLE]>
|
||||
<div id="tabs-2">
|
||||
[MESSAGE]
|
||||
<form action="#tabs-2" method="post">
|
||||
[FORMHANDLEREVENT]
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-14 col-md-12 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|<b>Produktion <font color="blue">[BELEGNR]</font></b>|}</legend>
|
||||
[STATUSICONS]
|
||||
[TEILPRODUKTIONINFO]
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-14 col-md-5 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend [AKTION_PLANEN_VISIBLE]>{|Zu produzierende Artikel|}</legend>
|
||||
<legend [ARTIKEL_MENGE_VISIBLE]>{|Produktionsfortschritt|}</legend>
|
||||
<table width="100%" border="0">
|
||||
<tr [AKTION_PLANEN_VISIBLE]><td>{|Artikel|}:</td></tr>
|
||||
<tr [AKTION_PLANEN_VISIBLE]><td><input type="text" name="artikel_planen" id="artikel_planen" value="[ARTIKEL_PLANEN]" size="20"></td></tr>
|
||||
<tr [AKTION_PLANEN_VISIBLE]><td>{|Planmenge|}:</td></tr>
|
||||
<tr [AKTION_PLANEN_VISIBLE]><td><input type="text" name="artikel_planen_menge" id="artikel_planen_menge" value="[ARTIKEL_PLANEN_MENGE]" size="20"></td></tr>
|
||||
<tr [ARTIKEL_MENGE_VISIBLE]>
|
||||
<td>{|Geplant|}:</td>
|
||||
<td>[MENGE_GEPLANT]</td>
|
||||
<td>{|Offen:|}</td>
|
||||
<td>[MENGE_OFFEN]</td>
|
||||
</tr>
|
||||
<tr [ARTIKEL_MENGE_VISIBLE]>
|
||||
<td>{|Produziert|}:</td>
|
||||
<td>[MENGE_PRODUZIERT]</td>
|
||||
<td>{|Reserviert:|}</td>
|
||||
<td>[MENGE_RESERVIERT]</td>
|
||||
</tr>
|
||||
<tr [ARTIKEL_MENGE_VISIBLE]>
|
||||
<td>{|Erfolgreich|}:</td>
|
||||
<td>[MENGE_ERFOLGREICH]</td>
|
||||
<td>{|Produzierbar:|}</td>
|
||||
<td>[MENGE_PRODUZIERBAR]</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr [ARTIKEL_MENGE_VISIBLE]>
|
||||
<td>{|Ausschuss|}:</td>
|
||||
<td>[MENGE_AUSSCHUSS]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-14 col-md-5 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend [AKTION_PRODUZIEREN_VISIBLE]>{|Parameter|}</legend>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<tr [AKTION_PRODUZIEREN_VISIBLE]>
|
||||
<td>{|Menge|}:</td>
|
||||
<td><input type="number" min="0" name="menge_produzieren" id="menge_produzieren" value="[MENGE_PRODUZIEREN]" size="20""></td>
|
||||
</tr>
|
||||
<tr [AKTION_PRODUZIEREN_VISIBLE]>
|
||||
<td>{|Ausschuss|}:</td>
|
||||
<td><input type="number" min="0" name="menge_ausschuss_produzieren" id="menge_ausschuss_produzieren" value="[MENGE_AUSSCHUSS_PRODUZIEREN]" size="20"></td>
|
||||
</tr>
|
||||
<tr [AKTION_PRODUZIEREN_VISIBLE]>
|
||||
<td>{|Ziellager|}:</td>
|
||||
<td><input type="text" name="ziellager" id="ziellager" value="[ZIELLAGER]" size="20"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-14 col-md-2 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<legend>{|Anpassen|}</legend>
|
||||
<tr [AKTION_PLANEN_VISIBLE]><td><button name="submit" value="planen" class="ui-button-icon" style="width:100%;">Planen</button></td></tr>
|
||||
<tr [AKTION_LEEREN_VISIBLE]><td><button name="submit" value="leeren" class="ui-button-icon" style="width:100%;">Leeren</button></td></tr>
|
||||
<tr [AKTION_FREIGEBEN_VISIBLE]><td><button name="submit" value="freigeben" class="ui-button-icon" style="width:100%;">Freigeben</button></td></tr>
|
||||
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><button name="submit" value="teilen" class="ui-button-icon" style="width:100%;">Teilen</button></td></tr>
|
||||
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><button name="submit" value="anpassen" class="ui-button-icon" style="width:100%;">Anpassen</button></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-14 col-md-2 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<legend>{|Produzieren|}</legend>
|
||||
<tr [AKTION_RESERVIEREN_VISIBLE]><td><button name="submit" value="reservieren" class="ui-button-icon" style="width:100%;">Reservieren</button></td></tr>
|
||||
<tr [AKTION_PRODUZIEREN_VISIBLE]><td><button name="submit" value="produzieren" class="ui-button-icon" style="width:100%;">Produzieren</button></td></tr>
|
||||
<tr [AKTION_ABSCHLIESSEN_VISIBLE]><td><button name="submit" value="abschliessen" class="ui-button-icon" style="width:100%;">Abschliessen</button></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div [ARTIKEL_MENGE_VISIBLE] class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-12 col-md-12 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|Materialbedarf|}</legend>
|
||||
</fieldset>
|
||||
[PRODUKTION_POSITION_SOURCE_TABELLE]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div id="tabs-3">
|
||||
[MESSAGE]
|
||||
<form action="" method="post">
|
||||
[FORMHANDLEREVENT]
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-12 col-md-12 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|Positionen|}</legend>
|
||||
[PRODUKTION_POSITION_SOURCE_POSITION_TABELLE]
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div id="tabs-4">
|
||||
[MESSAGE]
|
||||
<form action="" method="post">
|
||||
[MINIDETAILINEDIT]
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<li><a href="#tabs-1">[TABTEXT1]</a></li>
|
||||
</ul>
|
||||
<div id="tabs-1">
|
||||
[MESSAGE]
|
||||
<form action="#tabs-1" id="frmauto" name="frmauto" method="post">
|
||||
<div class="filter-box filter-usersave">
|
||||
<div class="filter-block filter-inline">
|
||||
<div class="filter-title">{|Filter|}</div>
|
||||
<ul class="filter-list">
|
||||
[STATUSFILTER]
|
||||
<li class="filter-item">
|
||||
<label for="angelegte" class="switch">
|
||||
<input type="checkbox" id="angelegte">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
<label for="angelegte">{|Angelegt|}</label>
|
||||
</li>
|
||||
<li class="filter-item">
|
||||
<label for="offene" class="switch">
|
||||
<input type="checkbox" id="offene">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
<label for="offene">{|Offen|}</label>
|
||||
</li>
|
||||
<li class="filter-item">
|
||||
<label for="geschlossene" class="switch">
|
||||
<input type="checkbox" id="geschlossene">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
<label for="geschlossene">{|Abgeschlossen|}</label>
|
||||
</li>
|
||||
<li class="filter-item">
|
||||
<label for="stornierte" class="switch">
|
||||
<input type="checkbox" id="stornierte">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
<label for="stornierte">{|Papierkorb|}</label>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
[TAB1]
|
||||
[TAB1NEXT]
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,281 +1,46 @@
|
||||
<style>
|
||||
|
||||
|
||||
.auftraginfo_cell {
|
||||
color: #636363;border: 1px solid #ccc;padding: 5px;
|
||||
}
|
||||
|
||||
.auftrag_cell {
|
||||
color: #636363;border: 1px solid #fff;padding: 0px; margin:0px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<table width="100%" border="0" cellpadding="10" cellspacing="5">
|
||||
<tr valign="top">
|
||||
<td width="">
|
||||
|
||||
<br>
|
||||
<center>[MENU]</center>
|
||||
<br>
|
||||
|
||||
<h2 class="greyh2">Artikel für Produktion</h2>
|
||||
<div style="padding:10px;">[ARTIKEL]</div>
|
||||
[MINIDETAILNACHARTIKEL]
|
||||
<h2 class="greyh2">Externe Produktionsschritte</h2>
|
||||
<div style="padding:10px;" id="[RAND]bestellungen">[BESTELLUNGEN]</div>
|
||||
|
||||
|
||||
<h2 class="greyh2">Zeiterfassung</h2>
|
||||
<div style="padding:10px;">[ZEITERFASSUNG]</div>
|
||||
<h2 class="greyh2">Arbeitsschritte</h2>
|
||||
<div style="padding:10px;">[ARBEITSSCHRITTE]</div>
|
||||
<h2 class="greyh2">Abschlussbemerkung</h2>
|
||||
<div style="padding:10px;">[ABSCHLUSSBEMERKUNG]</div>
|
||||
<div style="padding:10px;">
|
||||
<table width="100%>">
|
||||
<tr>
|
||||
<td>Zeit Geplant in Stunden</td>
|
||||
<td>Zeit Tatsächlich in Stunden</td>
|
||||
<td>Arbeitsplatzgruppe Kosten Geplant in EUR</td>
|
||||
<td>Arbeitsplatzgruppe Kosten Tatsächlich in EUR</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="greybox" width="25%">[ZEITGEPLANT]</td>
|
||||
<td class="greybox" width="25%">[ZEITGEBUCHT]</td>
|
||||
<td class="greybox" width="25%">[KOSTENGEPLANT]</td>
|
||||
<td class="greybox" width="25%">[KOSTENGEBUCHT]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
<td width="450">
|
||||
<div style="overflow:auto; min-width:450px; max-height:550px;">
|
||||
<div style="background-color:white">
|
||||
|
||||
<h2 class="greyh2">Produktionszentrum</h2>
|
||||
<div style="padding:10px;">
|
||||
<center>
|
||||
[BUTTONS]
|
||||
</center>
|
||||
</div>
|
||||
|
||||
<div style="background-color:white">
|
||||
<h2 class="greyh2">Protokoll</h2>
|
||||
<div style="padding:10px;">
|
||||
[PROTOKOLL]
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<h2 class="greyh2">Datei Anhang</h2>
|
||||
<div style="padding:10px;">[DATEIANHANGLISTE]</div>
|
||||
-->
|
||||
|
||||
<!--
|
||||
<h2 class="greyh2">Arbeitsschritte</h2>
|
||||
<div style="padding:10px">
|
||||
<table width="100%>">
|
||||
<tr><td>Fertigstellung in %</td><td>Anzahl Schritte</td></tr>
|
||||
<tr>
|
||||
<td class="greybox" width="25%">[DECKUNGSBEITRAG]</td>
|
||||
<td class="greybox" width="25%">[DBPROZENT]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
-->
|
||||
|
||||
|
||||
<h2 class="greyh2">Abschluss Bericht</h2>
|
||||
<div style="padding:10px;">
|
||||
<table width="100%>">
|
||||
<tr>
|
||||
<td>Menge Geplant</td>
|
||||
<td>Menge Ausschuss</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="greybox" width="25%">[MENGEGEPLANT]</td>
|
||||
<td class="greybox" width="25%">[MENGEAUSSCHUSS]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h2 class="greyh2">Deckungsbeitrag</h2>
|
||||
<div style="padding:10px">
|
||||
<table width="100%>">
|
||||
<tr>
|
||||
<td>Deckungsbeitrag in EUR</td>
|
||||
<td>DB in %</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="greybox" width="25%">[DECKUNGSBEITRAG]</td>
|
||||
<td class="greybox" width="25%">[DBPROZENT]</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<legend>{|Produktionsfortschritt|}</legend>
|
||||
<div class="inside inside-full-height">
|
||||
<table width="100%" border="0">
|
||||
<tr [ARTIKEL_MENGE_VISIBLE]>
|
||||
<td>{|Geplant|}:</td>
|
||||
<td>[MINI_MENGE_GEPLANT]</td>
|
||||
<td>{|Offen:|}</td>
|
||||
<td>[MINI_MENGE_OFFEN]</td>
|
||||
</tr>
|
||||
<tr [ARTIKEL_MENGE_VISIBLE]>
|
||||
<td>{|Produziert|}:</td>
|
||||
<td>[MINI_MENGE_PRODUZIERT]</td>
|
||||
<td>{|Reserviert:|}</td>
|
||||
<td>[MINI_MENGE_RESERVIERT]</td>
|
||||
</tr>
|
||||
<tr [ARTIKEL_MENGE_VISIBLE]>
|
||||
<td>{|Erfolgreich|}:</td>
|
||||
<td>[MINI_MENGEERFOLGREICH]</td>
|
||||
<td>{|Produzierbar:|}</td>
|
||||
<td>[MINI_MENGE_PRODUZIERBAR]</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<td>{|Ausschuss|}:</td>
|
||||
<td>[MINI_MENGEAUSSCHUSS]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<legend>{|Protokoll|}</legend>
|
||||
<div class="inside inside-full-height">
|
||||
[PROTOKOLL]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="[RAND]createdocdialog">
|
||||
<form id="[RAND]createdocfrom">
|
||||
<fieldset><legend>{|Artikel|}</legend>
|
||||
<div id="[RAND]createdocdialoginfo"></div>
|
||||
|
||||
<input type="hidden" name="[RAND]createdocsid" id="[RAND]createdocsid" />
|
||||
<table class="mkTable" width="100%" id="[RAND]createdocdialogtable">
|
||||
</table>
|
||||
</fieldset>
|
||||
<fieldset><legend>{|Bestellung bei externen Produzent|}</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<td nowrap>
|
||||
<input type="radio" id="[RAND]createdoctypecreatebestellung" name="[RAND]createdoctypebestellungtyp" value="createbestellung" checked="checked" />
|
||||
<label for="[RAND]createdoctypecreatebestellung">{|neue Bestellung anlegen|}</label>
|
||||
<label for="[RAND]createdocadresse">{|bei Lieferant|}:</label>
|
||||
</td><td nowrap>
|
||||
<input type="text" id="[RAND]createdocadresse" name="[RAND]createdocadresse" size="30" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="[RAND]createdoctypetrlieferant"><td></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="radio" id="[RAND]createdoctypeaddtobestellung" name="[RAND]createdoctypebestellungtyp" value="addtobestellung" /> <label for="[RAND]createdoctypeaddtobestellung">{|zu bestehender Bestellung anlegen|}:</label>
|
||||
</td><td>
|
||||
<input id="[RAND]createdocbestellung" name="[RAND]createdocbestellung" type="text" size="30"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="[RAND]createdoctrbestellungnoprice">
|
||||
<td colspan="2">
|
||||
<input type="checkbox" id="[RAND]createdoctypebestellungnoprice" name="[RAND]createdoctypebestellungnoprice" value="1" [NEWSUPPLIERSORDERHASPRICE]/>
|
||||
<label for="[RAND]createdoctypebestellungnoprice">{|Preis für Hauptprodukt nicht setzen|}</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
<fieldset><legend>{|Beistellen des Materials|}</legend>
|
||||
<table>
|
||||
<tr id="[RAND]createdoctrtypebestellung">
|
||||
<td colspan="2">
|
||||
<input type="radio" id="[RAND]createdoctypebestellung" name="[RAND]createdoctype" value="bestellung" checked="checked" />
|
||||
<label for="[RAND]createdoctypebestellung">{|Artikel sofort auslagern (basierend auf Bestellung)|}</label>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="[RAND]createdoctrtypeauftrag">
|
||||
<td colspan="2">
|
||||
<input type="radio" id="[RAND]createdoctypeauftrag" name="[RAND]createdoctype" value="auftrag" />
|
||||
<label for="[RAND]createdoctypeauftrag">{|Auftrag für Beistellung anlegen|}</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
<fieldset><legend>{|Produktion|}</legend>
|
||||
<table>
|
||||
<tr id="[RAND]createdoctrprodstarten">
|
||||
<td colspan="2">
|
||||
<input type="checkbox" id="[RAND]createdocstartprod" name="[RAND]createdocstartprod" value="1" />
|
||||
<label for="[RAND]createdocstartprod">{|Produktion starten|}</label>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<script type="application/javascript">
|
||||
[AUTOCOMPLETE]
|
||||
$(document).ready(function() {
|
||||
$('#[RAND]createdocdialog').dialog(
|
||||
{
|
||||
modal: true,
|
||||
autoOpen: false,
|
||||
minWidth: 940,
|
||||
title: 'Auftrag/Bestellung anlegen',
|
||||
buttons: {
|
||||
'OK': function () {
|
||||
var $addr = $('#[RAND]createdocadresse');
|
||||
var $best = $('#[RAND]createdocbestellung');
|
||||
var allempty = ($($addr).val()+'' === '') &&
|
||||
($($best).length === 0 || $($best).val()+'' === '');
|
||||
if(allempty) {
|
||||
alert('Bitte eine Adresse oder Bestellung auswählen');
|
||||
} else {
|
||||
if($('#[RAND]createdoctypebestellung').prop('checked') || $('#[RAND]createdoctypeauftrag').prop('checked')) {
|
||||
$.ajax({
|
||||
url: 'index.php?module=produktion&action=edit&cmd=createdocument&id=[ID]&frame=[FRAMEPARAM]',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: $('#[RAND]createdocfrom').serialize(),
|
||||
success: function (data) {
|
||||
//$('#[RAND]createdocdialog').dialog('close');
|
||||
$('#[RAND]createdocdialoginfo').html(typeof data.html != 'undefined'? data.html:'');
|
||||
if(data.html != '') {
|
||||
$('input.[RAND]createdoc').remove();
|
||||
}
|
||||
$('#[RAND]createdocdialog').dialog('close');
|
||||
if(typeof data.deliverynoteinfo != 'undefined') {
|
||||
$('#[RAND]bestellungen').html(data.deliverynoteinfo);
|
||||
bindButton[RAND]();
|
||||
}
|
||||
},
|
||||
beforeSend: function () {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
'ABBRECHEN': function () {
|
||||
$(this).dialog('close');
|
||||
}
|
||||
},
|
||||
close: function (event, ui) {
|
||||
|
||||
}
|
||||
});
|
||||
bindButton[RAND]();
|
||||
});
|
||||
|
||||
function bindButton[RAND](){
|
||||
$('input.[RAND]createdoc').on('click', function () {
|
||||
$('#[RAND]createdocsid').val($(this).data('sid'));
|
||||
|
||||
$.ajax({
|
||||
url: 'index.php?module=produktion&action=edit&cmd=gettableforcreatedocument&id=[ID]',
|
||||
type: 'POST',
|
||||
dataType: 'json',
|
||||
data: {sid: $(this).data('sid'),rand:'[RAND]'},
|
||||
success: function (data) {
|
||||
$('#[RAND]createdocdialoginfo').html(typeof data.info != 'undefined'? data.info:'');
|
||||
$('#[RAND]createdocdialogtable').html(data.html);
|
||||
$('#[RAND]createdocadresse').val(data.adresse);
|
||||
$('#[RAND]createdocbestellung').html(data.bestellung);
|
||||
$('#[RAND]createdocauftrag').html(data.auftrag);
|
||||
$('#[RAND]createdocdialog').dialog('open');
|
||||
if(data.displayprodstart) {
|
||||
$('#[RAND]createdoctrprodstarten').show();
|
||||
} else {
|
||||
$('#[RAND]createdoctrprodstarten').hide();
|
||||
}
|
||||
addClicklupe();
|
||||
lupeclickevent();
|
||||
|
||||
// AutoComplete-Ergebnisboxen an Dialog-Fenster anhängen.
|
||||
// Ansonsten wird AutoComplete-Ergebnis evtl. nicht sichtbar unterhalb des Dialog-Fensters angezeigt.
|
||||
var $uiDialog = $('#[RAND]createdocdialog').first();
|
||||
$($uiDialog).find('input.ui-autocomplete-input').autocomplete('option', 'appendTo', $uiDialog);
|
||||
},
|
||||
beforeSend: function () {
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<li><a href="#tabs-1"></a></li>
|
||||
</ul>
|
||||
<!-- Example for multiple tabs
|
||||
<ul hidden">
|
||||
<li><a href="#tabs-1">First Tab</a></li>
|
||||
<li><a href="#tabs-2">Second Tab</a></li>
|
||||
</ul>
|
||||
-->
|
||||
<div id="tabs-1">
|
||||
[MESSAGE]
|
||||
<form action="" method="post">
|
||||
[FORMHANDLEREVENT]
|
||||
<div class="row">
|
||||
<div class="row-height">
|
||||
<div class="col-xs-12 col-md-12 col-md-height">
|
||||
<div class="inside inside-full-height">
|
||||
<fieldset>
|
||||
<legend>{|<a href="index.php?module=produktion&action=edit&id=[PRODUKTIONID]#tabs-3">PRODUKTION [PRODUKTIONBELEGNR]<a>|}</legend>
|
||||
<table width="100%" border="0" class="mkTableFormular">
|
||||
<tr><td>{|Artikel|}:</td><td><input type="text" id="artikel" name="artikel" value="[ARTIKEL]" size="40"></td></tr>
|
||||
<tr><td>{|Menge|}:</td><td><input type="text" name="menge" value="[MENGE]" size="40"></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="submit" name="submit" value="Speichern" style="float:right"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -95,15 +95,15 @@ class Dateien {
|
||||
$heading = array('ID','Titel', 'Beschreibung', 'Verknüpfung', 'Geloescht', 'Logdatei', 'Menü');
|
||||
$width = array('10%'); // Fill out manually later
|
||||
|
||||
$findcols = array('d.id','d.titel', 'd.beschreibung', 'd.nummer', 'd.geloescht', 'd.logdatei');
|
||||
$searchsql = array('d.titel', 'd.beschreibung', 'd.nummer', 'd.geloescht', 'd.logdatei');
|
||||
$findcols = array('d.id','d.titel', 'd.beschreibung', 'ds.objekt', 'd.geloescht', 'd.logdatei');
|
||||
$searchsql = array('d.titel', 'd.beschreibung', 'd.nummer', 'd.geloescht', 'd.logdatei','ds.objekt');
|
||||
|
||||
$defaultorder = 1;
|
||||
$defaultorderdesc = 0;
|
||||
|
||||
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" . "<a href=\"index.php?module=dateien&action=edit&id=%value%\"><img src=\"./themes/{$app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\"></a></td></tr></table>";
|
||||
|
||||
$sql = "SELECT SQL_CALC_FOUND_ROWS d.id, d.id, d.titel, d.beschreibung, GROUP_CONCAT(ds.objekt SEPARATOR ', '), d.geloescht, d.logdatei, d.id FROM datei d LEFT join datei_stichwoerter ds ON ds.datei = d.id";
|
||||
$sql = "SELECT SQL_CALC_FOUND_ROWS d.id, d.id, d.titel, d.beschreibung, GROUP_CONCAT(ds.objekt SEPARATOR ', ') as verknuepfung, d.geloescht, d.logdatei, d.id FROM datei d LEFT join datei_stichwoerter ds ON ds.datei = d.id";
|
||||
|
||||
$where = "1";
|
||||
$count = "SELECT count(DISTINCT id) FROM datei WHERE $where";
|
||||
|
||||
@@ -620,6 +620,8 @@ class Gutschrift extends GenGutschrift
|
||||
$tmp3->DisplayNew('PDFARCHIV','Menü','noAction');
|
||||
}
|
||||
|
||||
$this->app->Tpl->Add('ZAHLUNGEN',$this->GutschriftZahlung(true));
|
||||
|
||||
if($parsetarget=='') {
|
||||
$this->app->Tpl->Output('gutschrift_minidetail.tpl');
|
||||
$this->app->ExitXentral();
|
||||
@@ -738,7 +740,7 @@ class Gutschrift extends GenGutschrift
|
||||
." $waehrung</td></tr>";
|
||||
}
|
||||
|
||||
$saldo = $this->app->erp->EUR($this->app->erp->GutschriftSaldo($id));
|
||||
$saldo = $this->app->erp->EUR($this->GutschriftSaldo($id));
|
||||
|
||||
if($saldo < 0) {
|
||||
$saldo = "<b style=\"color:red\">$saldo</b>";
|
||||
|
||||
+14
-13
@@ -1346,17 +1346,17 @@ class Lager extends GenLager {
|
||||
case "lager_reservierungen":
|
||||
$allowed['lager'] = array('reservierungen');
|
||||
|
||||
$heading = array('Kunde','Belegart','Belegnr','Status','Artikel','Menge','Projekt','Grund','Menü');
|
||||
$width = array('20%','20%','5%','10%','20%','1%');
|
||||
$findcols = array('t.kunde', 't.typ', 't.belegnr', 't.status', 't.Artikel', 't.menge', 't.projekt', 't.grund', 't.rid');
|
||||
$searchsql = array('t.kunde', 't.typ', 't.belegnr', 't.status', 't.Artikel', $app->erp->FormatMenge('t.menge'), 't.projekt', 't.grund');
|
||||
$heading = array('Kunde','Belegart','Belegnr','Status','Artikelnummer','Artikel','Menge','Projekt','Grund','Menü');
|
||||
$width = array('20%', '10%', '5%', '5%', '5%', '20%', '1%', '10%', '20%');
|
||||
$findcols = array('t.kunde', 't.typ', 't.belegnr', 't.status','t.Artikelnummer', 't.Artikel', 't.menge', 't.projekt', 't.grund', 't.rid');
|
||||
$searchsql = array('t.kunde', 't.typ', 't.belegnr', 't.status','t.Artikelnummer', 't.Artikel', $app->erp->FormatMenge('t.menge'), 't.projekt', 't.grund');
|
||||
|
||||
$defaultorder = 1; //Optional wenn andere Reihenfolge gewuenscht
|
||||
$defaultorderdesc = 1;
|
||||
//$sumcol = 9;
|
||||
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap><a href=\"#\" onclick=DeleteDialog(\"index.php?module=lager&action=artikelentfernenreserviert&reservierung=%value%\"); ><img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"></a></td></tr></table>";
|
||||
$alignright = array(6);
|
||||
$numbercols = array(5);
|
||||
$alignright = array(7);
|
||||
$numbercols = array(6);
|
||||
$menucol = 5;
|
||||
//$moreinfo = true;
|
||||
$sql = "
|
||||
@@ -1366,6 +1366,7 @@ class Lager extends GenLager {
|
||||
t.typ,
|
||||
t.belegnr,
|
||||
t.status,
|
||||
t.Artikelnummer,
|
||||
t.Artikel,
|
||||
".$app->erp->FormatMenge('t.menge').",
|
||||
t.projekt,
|
||||
@@ -1375,43 +1376,43 @@ class Lager extends GenLager {
|
||||
FROM
|
||||
(
|
||||
(
|
||||
SELECT r.id as rid, adr.name as kunde,'Auftrag' as typ,if(auf.belegnr = '','ENTWURF',auf.belegnr) as belegnr ,if(auf.status = '','angelegt',auf.status) as status, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
SELECT r.id as rid, adr.name as kunde,'Auftrag' as typ,if(auf.belegnr = '','ENTWURF',auf.belegnr) as belegnr ,if(auf.status = '','angelegt',auf.status) as status, a.nummer as Artikelnummer, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
p.id=r.projekt LEFT JOIN adresse adr ON r.adresse=adr.id
|
||||
INNER JOIN auftrag auf ON auf.id = r.parameter AND r.objekt = 'auftrag'
|
||||
)
|
||||
UNION ALL
|
||||
(
|
||||
SELECT r.id as rid, adr.name as kunde,'Lieferschein' as typ,if(l.belegnr = '','ENTWURF',l.belegnr) as belegnr ,if(l.status = '','angelegt',l.status) as status, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
SELECT r.id as rid, adr.name as kunde,'Lieferschein' as typ,if(l.belegnr = '','ENTWURF',l.belegnr) as belegnr ,if(l.status = '','angelegt',l.status) as status, a.nummer as Artikelnummer, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
p.id=r.projekt LEFT JOIN adresse adr ON r.adresse=adr.id
|
||||
INNER JOIN lieferschein l ON l.id = r.parameter AND r.objekt = 'lieferschein'
|
||||
)
|
||||
UNION ALL
|
||||
(
|
||||
SELECT r.id as rid, adr.name as kunde,'Produktion' as typ,if(l.belegnr = '','ENTWURF',l.belegnr) as belegnr ,if(l.status = '','angelegt',l.status) as status, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
SELECT r.id as rid, adr.name as kunde,'Produktion' as typ,if(l.belegnr = '','ENTWURF',l.belegnr) as belegnr ,if(l.status = '','angelegt',l.status) as status, a.nummer as Artikelnummer, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
p.id=r.projekt LEFT JOIN adresse adr ON r.adresse=adr.id
|
||||
INNER JOIN produktion l ON l.id = r.parameter AND r.objekt = 'produktion'
|
||||
)
|
||||
UNION ALL
|
||||
(
|
||||
SELECT r.id as rid, adr.name as kunde,'Auftrag' as typ,'GELÖSCHT' as belegnr ,'GELÖSCHT' as status, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
SELECT r.id as rid, adr.name as kunde,'Auftrag' as typ,'GELÖSCHT' as belegnr ,'GELÖSCHT' as status, a.nummer as Artikelnummer, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
p.id=r.projekt LEFT JOIN adresse adr ON r.adresse=adr.id
|
||||
LEFT JOIN auftrag auf ON auf.id = r.parameter AND r.objekt = 'auftrag' WHERE isnull(auf.id) AND r.objekt = 'auftrag'
|
||||
)
|
||||
UNION ALL
|
||||
(
|
||||
SELECT r.id as rid, adr.name as kunde,'Lieferschein' as typ,'GELÖSCHT' as belegnr ,'GELÖSCHT' as status, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
SELECT r.id as rid, adr.name as kunde,'Lieferschein' as typ,'GELÖSCHT' as belegnr ,'GELÖSCHT' as status, a.nummer as Artikelnummer, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
p.id=r.projekt LEFT JOIN adresse adr ON r.adresse=adr.id
|
||||
LEFT JOIN lieferschein l ON l.id = r.parameter AND r.objekt = 'lieferschein' WHERE isnull(l.id) AND r.objekt = 'lieferschein'
|
||||
)
|
||||
UNION ALL
|
||||
(
|
||||
SELECT r.id as rid, adr.name as kunde,'Produktion' as typ,'GELÖSCHT' as belegnr ,'GELÖSCHT' as status, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
SELECT r.id as rid, adr.name as kunde,'Produktion' as typ,'GELÖSCHT' as belegnr ,'GELÖSCHT' as status, a.nummer as Artikelnummer, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
p.id=r.projekt LEFT JOIN adresse adr ON r.adresse=adr.id
|
||||
LEFT JOIN produktion l ON l.id = r.parameter AND r.objekt = 'produktion' WHERE isnull(l.id) AND r.objekt = 'produktion'
|
||||
)
|
||||
UNION ALL
|
||||
(
|
||||
SELECT r.id as rid, adr.name as kunde,r.objekt as typ,'' as belegnr , '' as status, a.name_de as Artikel,r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
SELECT r.id as rid, adr.name as kunde,r.objekt as typ,'' as belegnr , '' as status, a.nummer as Artikelnummer, a.name_de as Artikel, r.menge,p.abkuerzung as projekt,r.grund, r.id FROM lager_reserviert r LEFT JOIN artikel a ON a.id=r.artikel LEFT JOIN projekt p ON
|
||||
p.id=r.projekt LEFT JOIN adresse adr ON r.adresse=adr.id WHERE r.objekt <> 'auftrag' AND r.objekt <> 'lieferschein' AND r.objekt <> 'produktion'
|
||||
)
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,249 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* Copyright (c) 2022 OpenXE project
|
||||
*/
|
||||
|
||||
use Xentral\Components\Database\Exception\QueryFailureException;
|
||||
|
||||
class Produktion_position {
|
||||
|
||||
function __construct($app, $intern = false) {
|
||||
$this->app = $app;
|
||||
if ($intern)
|
||||
return;
|
||||
|
||||
$this->app->ActionHandlerInit($this);
|
||||
$this->app->ActionHandler("list", "produktion_position_list");
|
||||
$this->app->ActionHandler("create", "produktion_position_edit"); // This automatically adds a "New" button
|
||||
$this->app->ActionHandler("edit", "produktion_position_edit");
|
||||
$this->app->ActionHandler("delete", "produktion_position_delete");
|
||||
$this->app->DefaultActionHandler("list");
|
||||
$this->app->ActionHandlerListen($app);
|
||||
}
|
||||
|
||||
public function Install() {
|
||||
/* Fill out manually later */
|
||||
}
|
||||
|
||||
static function TableSearch(&$app, $name, $erlaubtevars) {
|
||||
switch ($name) {
|
||||
case "produktion_position_list":
|
||||
$allowed['produktion_position_list'] = array('list');
|
||||
$heading = array('','','produktion', 'artikel', 'projekt', 'bezeichnung', 'beschreibung', 'internerkommentar', 'nummer', 'menge', 'preis', 'waehrung', 'lieferdatum', 'vpe', 'sort', 'status', 'umsatzsteuer', 'bemerkung', 'geliefert', 'geliefert_menge', 'explodiert', 'explodiert_parent', 'logdatei', 'nachbestelltexternereinkauf', 'beistellung', 'externeproduktion', 'einheit', 'steuersatz', 'steuertext', 'erloese', 'erloesefestschreiben', 'freifeld1', 'freifeld2', 'freifeld3', 'freifeld4', 'freifeld5', 'freifeld6', 'freifeld7', 'freifeld8', 'freifeld9', 'freifeld10', 'freifeld11', 'freifeld12', 'freifeld13', 'freifeld14', 'freifeld15', 'freifeld16', 'freifeld17', 'freifeld18', 'freifeld19', 'freifeld20', 'freifeld21', 'freifeld22', 'freifeld23', 'freifeld24', 'freifeld25', 'freifeld26', 'freifeld27', 'freifeld28', 'freifeld29', 'freifeld30', 'freifeld31', 'freifeld32', 'freifeld33', 'freifeld34', 'freifeld35', 'freifeld36', 'freifeld37', 'freifeld38', 'freifeld39', 'freifeld40', 'stuecklistestufe', 'teilprojekt', 'Menü');
|
||||
$width = array('1%','1%','10%'); // Fill out manually later
|
||||
|
||||
$findcols = array('p.produktion', 'p.artikel', 'p.projekt', 'p.bezeichnung', 'p.beschreibung', 'p.internerkommentar', 'p.nummer', 'p.menge', 'p.preis', 'p.waehrung', 'p.lieferdatum', 'p.vpe', 'p.sort', 'p.status', 'p.umsatzsteuer', 'p.bemerkung', 'p.geliefert', 'p.geliefert_menge', 'p.explodiert', 'p.explodiert_parent', 'p.logdatei', 'p.nachbestelltexternereinkauf', 'p.beistellung', 'p.externeproduktion', 'p.einheit', 'p.steuersatz', 'p.steuertext', 'p.erloese', 'p.erloesefestschreiben', 'p.freifeld1', 'p.freifeld2', 'p.freifeld3', 'p.freifeld4', 'p.freifeld5', 'p.freifeld6', 'p.freifeld7', 'p.freifeld8', 'p.freifeld9', 'p.freifeld10', 'p.freifeld11', 'p.freifeld12', 'p.freifeld13', 'p.freifeld14', 'p.freifeld15', 'p.freifeld16', 'p.freifeld17', 'p.freifeld18', 'p.freifeld19', 'p.freifeld20', 'p.freifeld21', 'p.freifeld22', 'p.freifeld23', 'p.freifeld24', 'p.freifeld25', 'p.freifeld26', 'p.freifeld27', 'p.freifeld28', 'p.freifeld29', 'p.freifeld30', 'p.freifeld31', 'p.freifeld32', 'p.freifeld33', 'p.freifeld34', 'p.freifeld35', 'p.freifeld36', 'p.freifeld37', 'p.freifeld38', 'p.freifeld39', 'p.freifeld40', 'p.stuecklistestufe', 'p.teilprojekt');
|
||||
$searchsql = array('p.produktion', 'p.artikel', 'p.projekt', 'p.bezeichnung', 'p.beschreibung', 'p.internerkommentar', 'p.nummer', 'p.menge', 'p.preis', 'p.waehrung', 'p.lieferdatum', 'p.vpe', 'p.sort', 'p.status', 'p.umsatzsteuer', 'p.bemerkung', 'p.geliefert', 'p.geliefert_menge', 'p.explodiert', 'p.explodiert_parent', 'p.logdatei', 'p.nachbestelltexternereinkauf', 'p.beistellung', 'p.externeproduktion', 'p.einheit', 'p.steuersatz', 'p.steuertext', 'p.erloese', 'p.erloesefestschreiben', 'p.freifeld1', 'p.freifeld2', 'p.freifeld3', 'p.freifeld4', 'p.freifeld5', 'p.freifeld6', 'p.freifeld7', 'p.freifeld8', 'p.freifeld9', 'p.freifeld10', 'p.freifeld11', 'p.freifeld12', 'p.freifeld13', 'p.freifeld14', 'p.freifeld15', 'p.freifeld16', 'p.freifeld17', 'p.freifeld18', 'p.freifeld19', 'p.freifeld20', 'p.freifeld21', 'p.freifeld22', 'p.freifeld23', 'p.freifeld24', 'p.freifeld25', 'p.freifeld26', 'p.freifeld27', 'p.freifeld28', 'p.freifeld29', 'p.freifeld30', 'p.freifeld31', 'p.freifeld32', 'p.freifeld33', 'p.freifeld34', 'p.freifeld35', 'p.freifeld36', 'p.freifeld37', 'p.freifeld38', 'p.freifeld39', 'p.freifeld40', 'p.stuecklistestufe', 'p.teilprojekt');
|
||||
|
||||
$defaultorder = 1;
|
||||
$defaultorderdesc = 0;
|
||||
|
||||
$dropnbox = "'<img src=./themes/new/images/details_open.png class=details>' AS `open`, CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',p.id,'\" />') AS `auswahl`";
|
||||
|
||||
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" . "<a href=\"index.php?module=produktion_position&action=edit&id=%value%\"><img src=\"./themes/{$app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\"></a> <a href=\"#\" onclick=DeleteDialog(\"index.php?module=produktion_position&action=delete&id=%value%\");>" . "<img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"></a>" . "</td></tr></table>";
|
||||
|
||||
$sql = "SELECT SQL_CALC_FOUND_ROWS p.id, $dropnbox, p.produktion, p.artikel, p.projekt, p.bezeichnung, p.beschreibung, p.internerkommentar, p.nummer, p.menge, p.preis, p.waehrung, p.lieferdatum, p.vpe, p.sort, p.status, p.umsatzsteuer, p.bemerkung, p.geliefert, p.geliefert_menge, p.explodiert, p.explodiert_parent, p.logdatei, p.nachbestelltexternereinkauf, p.beistellung, p.externeproduktion, p.einheit, p.steuersatz, p.steuertext, p.erloese, p.erloesefestschreiben, p.freifeld1, p.freifeld2, p.freifeld3, p.freifeld4, p.freifeld5, p.freifeld6, p.freifeld7, p.freifeld8, p.freifeld9, p.freifeld10, p.freifeld11, p.freifeld12, p.freifeld13, p.freifeld14, p.freifeld15, p.freifeld16, p.freifeld17, p.freifeld18, p.freifeld19, p.freifeld20, p.freifeld21, p.freifeld22, p.freifeld23, p.freifeld24, p.freifeld25, p.freifeld26, p.freifeld27, p.freifeld28, p.freifeld29, p.freifeld30, p.freifeld31, p.freifeld32, p.freifeld33, p.freifeld34, p.freifeld35, p.freifeld36, p.freifeld37, p.freifeld38, p.freifeld39, p.freifeld40, p.stuecklistestufe, p.teilprojekt, p.id FROM produktion_position p";
|
||||
|
||||
$where = "1";
|
||||
$count = "SELECT count(DISTINCT id) FROM produktion_position WHERE $where";
|
||||
// $groupby = "";
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
$erg = false;
|
||||
|
||||
foreach ($erlaubtevars as $k => $v) {
|
||||
if (isset($$v)) {
|
||||
$erg[$v] = $$v;
|
||||
}
|
||||
}
|
||||
return $erg;
|
||||
}
|
||||
|
||||
function produktion_position_list() {
|
||||
/* $this->app->erp->MenuEintrag("index.php?module=produktion_position&action=list", "Übersicht");
|
||||
$this->app->erp->MenuEintrag("index.php?module=produktion_position&action=create", "Neu anlegen");
|
||||
|
||||
$this->app->erp->MenuEintrag("index.php", "Zurück");
|
||||
|
||||
$this->app->YUI->TableSearch('TAB1', 'produktion_position_list', "show", "", "", basename(__FILE__), __CLASS__);
|
||||
$this->app->Tpl->Parse('PAGE', "produktion_position_list.tpl");*/
|
||||
|
||||
header("Location: index.php?module=produktion&action=list");
|
||||
}
|
||||
|
||||
|
||||
// End edit process and return to previous page
|
||||
// Give pid in case of delete because position.id is already gone
|
||||
function produktion_position_edit_end(string $msg, bool $error, bool $go_to_production, int $pid = 0) {
|
||||
|
||||
if ($error) {
|
||||
$msg = $this->app->erp->base64_url_encode("<div class=\"error\">".$msg."</div>");
|
||||
} else {
|
||||
$msg = $this->app->erp->base64_url_encode("<div class=\"info\">".$msg."</div>");
|
||||
}
|
||||
|
||||
if ($go_to_production) {
|
||||
|
||||
if ($pid == 0) {
|
||||
$id = (int) $this->app->Secure->GetGET('id');
|
||||
$sql = "SELECT p.status, p.id from produktion p INNER JOIN produktion_position pp ON pp.produktion = p.id WHERE pp.id = $id";
|
||||
$result = $this->app->DB->SelectArr($sql)[0];
|
||||
$pid = $result['id'];
|
||||
}
|
||||
header("Location: index.php?module=produktion&action=edit&id=$pid&msg=$msg#tabs-3");
|
||||
} else {
|
||||
header("Location: index.php?module=produktion_position&action=list&msg=$msg");
|
||||
}
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
public function produktion_position_delete() {
|
||||
$id = (int) $this->app->Secure->GetGET('id');
|
||||
|
||||
$sql = "SELECT p.status, p.id from produktion p INNER JOIN produktion_position pp ON pp.produktion = p.id WHERE pp.id = $id";
|
||||
$result = $this->app->DB->SelectArr($sql)[0];
|
||||
$status = $result['status'];
|
||||
$pid = $result['id'];
|
||||
if (!in_array($status,array('angelegt','freigegeben'))) {
|
||||
$this->produktion_position_edit_end("Bearbeiten nicht möglich, Produktionsstatus ist '$status'",true, true);
|
||||
}
|
||||
|
||||
$this->app->DB->Delete("DELETE FROM `produktion_position` WHERE `id` = '{$id}'");
|
||||
|
||||
// Remove reserved items
|
||||
|
||||
$this->produktion_position_edit_end("Der Eintrag wurde gelöscht.", true, true, $pid);
|
||||
}
|
||||
|
||||
/*
|
||||
* Edit produktion_position item
|
||||
* If id is empty, create a new one
|
||||
*/
|
||||
|
||||
function produktion_position_edit() {
|
||||
$id = $this->app->Secure->GetGET('id');
|
||||
|
||||
$this->app->Tpl->Set('ID', $id);
|
||||
|
||||
$this->app->erp->MenuEintrag("index.php?module=produktion_position&action=edit&id=$id", "Details");
|
||||
$this->app->erp->MenuEintrag("index.php?module=produktion&action=edit%id=$pid", "Zurück zur Übersicht");
|
||||
$id = $this->app->Secure->GetGET('id');
|
||||
$input = $this->GetInput();
|
||||
$submit = $this->app->Secure->GetPOST('submit');
|
||||
|
||||
if (empty($id)) {
|
||||
// New item
|
||||
$id = 'NULL';
|
||||
}
|
||||
|
||||
$sql = "SELECT p.status, p.id from produktion p INNER JOIN produktion_position pp ON pp.produktion = p.id WHERE pp.id = $id";
|
||||
$result = $this->app->DB->SelectArr($sql)[0];
|
||||
$status = $result['status'];
|
||||
$produktion_id = $result['id'];
|
||||
|
||||
$sql = "SELECT FORMAT(menge,0) as menge FROM produktion_position WHERE produktion = $produktion_id AND stuecklistestufe = 1";
|
||||
$result = $this->app->DB->SelectArr($sql)[0];
|
||||
$planmenge = $result['menge'];
|
||||
|
||||
if ($submit != '')
|
||||
{
|
||||
|
||||
// Write to database
|
||||
|
||||
// Add checks here
|
||||
$input['artikel'] = $this->app->erp->ReplaceArtikel(true, $input['artikel'],true); // Convert from form to db
|
||||
|
||||
// Only allowed when produktion is 'freigegeben or angelegt'
|
||||
if (!in_array($status,array('angelegt','freigegeben'))) {
|
||||
$this->produktion_position_edit_end("Bearbeiten nicht möglich, Produktionsstatus ist '$status'",true, true);
|
||||
}
|
||||
|
||||
if ($input['menge'] < 0) {
|
||||
$this->produktion_position_edit_end("Ungültige Menge.",true, true);
|
||||
}
|
||||
|
||||
// Only allow quantities that are a multiple of the target quantity
|
||||
if ($input['menge'] % $planmenge != 0) {
|
||||
$this->produktion_position_edit_end("Positionsmenge muss Vielfaches von $planmenge sein.",true, true);
|
||||
}
|
||||
|
||||
$columns = "id, ";
|
||||
$values = "$id, ";
|
||||
$update = "";
|
||||
|
||||
$fix = "";
|
||||
|
||||
foreach ($input as $key => $value) {
|
||||
$columns = $columns.$fix.$key;
|
||||
$values = $values.$fix."'".$value."'";
|
||||
$update = $update.$fix.$key." = '$value'";
|
||||
|
||||
$fix = ", ";
|
||||
}
|
||||
|
||||
// echo($columns."<br>");
|
||||
// echo($values."<br>");
|
||||
// echo($update."<br>");
|
||||
|
||||
$sql = "INSERT INTO produktion_position (".$columns.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$update;
|
||||
|
||||
// echo($sql);
|
||||
|
||||
$this->app->DB->Update($sql);
|
||||
|
||||
if ($id == 'NULL') {
|
||||
$msg = "Das Element wurde erfolgreich angelegt.";
|
||||
} else {
|
||||
$msg = "Die Einstellungen wurden erfolgreich übernommen.";
|
||||
}
|
||||
$this->produktion_position_edit_end($msg,false,true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Load values again from database
|
||||
|
||||
$result = $this->app->DB->SelectArr("SELECT SQL_CALC_FOUND_ROWS pp.id, pp.produktion, p.belegnr, pp.artikel, FORMAT(pp.menge,0) as menge, pp.id FROM produktion_position pp INNER JOIN produktion p ON pp.produktion = p.id "." WHERE pp.id=$id");
|
||||
|
||||
foreach ($result[0] as $key => $value) {
|
||||
$this->app->Tpl->Set(strtoupper($key), $value);
|
||||
}
|
||||
|
||||
/*
|
||||
* Add displayed items later
|
||||
*
|
||||
|
||||
$this->app->Tpl->Add('KURZUEBERSCHRIFT2', $email);
|
||||
$this->app->Tpl->Add('EMAIL', $email);
|
||||
$this->app->Tpl->Add('ANGEZEIGTERNAME', $angezeigtername);
|
||||
*/
|
||||
|
||||
//$this->app->YUI->AutoComplete("artikel", "artikelnummer");
|
||||
$this->app->YUI->AutoComplete("artikel", "lagerartikelnummer");
|
||||
$this->app->Tpl->Set('ARTIKEL',$this->app->erp->ReplaceArtikel(false, $result[0]['artikel'], false)); // Convert from form to db
|
||||
|
||||
$this->app->Tpl->Set('PRODUKTIONID',$result[0]['produktion']);
|
||||
$this->app->Tpl->Set('PRODUKTIONBELEGNR',$result[0]['belegnr']);
|
||||
|
||||
$this->app->Tpl->Add('MESSAGE',"<div class=\"info\">Positionsmenge muss Vielfaches von $planmenge sein.</div>");
|
||||
|
||||
$this->app->Tpl->Parse('PAGE', "produktion_position_edit.tpl");
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all paramters from html form and save into $input
|
||||
*/
|
||||
public function GetInput(): array {
|
||||
$input = array();
|
||||
|
||||
$input['artikel'] = $this->app->Secure->GetPOST('artikel');
|
||||
$input['menge'] = $this->app->Secure->GetPOST('menge');
|
||||
|
||||
return($input);
|
||||
}
|
||||
|
||||
}
|
||||
+181
-1
@@ -889,7 +889,8 @@ class Rechnung extends GenRechnung
|
||||
}
|
||||
|
||||
|
||||
$this->app->Tpl->Set('ZAHLUNGEN',"<table width=100% border=0 class=auftrag_cell cellpadding=0 cellspacing=0>Erst ab Version Enterprise verfügbar</table>");
|
||||
// $this->app->Tpl->Set('ZAHLUNGEN',"<table width=100% border=0 class=auftrag_cell cellpadding=0 cellspacing=0>Erst ab Version Enterprise verfügbar</table>");
|
||||
$this->app->Tpl->Set('ZAHLUNGEN',$this->RechnungZahlung(true));
|
||||
|
||||
if (!is_null($gutschrift)) {
|
||||
|
||||
@@ -2712,4 +2713,183 @@ class Rechnung extends GenRechnung
|
||||
|
||||
return $this->app->DB->GetInsertID();
|
||||
}
|
||||
|
||||
|
||||
function RechnungZahlung($return=false)
|
||||
{
|
||||
$id = $this->app->Secure->GetGET('id');
|
||||
|
||||
$rechnungArr = $this->app->DB->SelectArr(
|
||||
"SELECT DATE_FORMAT(datum,'%d.%m.%Y') as datum, belegnr, soll, waehrung, rechnungid
|
||||
FROM rechnung WHERE id='$id' LIMIT 1"
|
||||
);
|
||||
$waehrung = empty($rechnungArr)?'EUR':$rechnungArr[0]['waehrung'];
|
||||
if(!$waehrung) {
|
||||
$waehrung = 'EUR';
|
||||
}
|
||||
|
||||
$rechnungid = empty($rechnungArr)?0: $rechnungArr[0]['rechnungid'];
|
||||
|
||||
$auftragid = $rechnungid <= 0?0:$this->app->DB->Select(
|
||||
sprintf(
|
||||
'SELECT `auftragid` FROM `rechnung` WHERE `id` = %d LIMIT 1',
|
||||
$rechnungid
|
||||
)
|
||||
);
|
||||
$eingang ="<tr><td colspan=\"3\"><b>Zahlungen</b></td></tr>";
|
||||
|
||||
|
||||
$eingang .="<tr><td class=auftrag_cell>".$rechnungArr[0]['datum']
|
||||
."</td><td class=auftrag_cell>RG ".$rechnungArr[0]['belegnr']
|
||||
."</td><td class=auftrag_cell align=right>".$this->app->erp->EUR($rechnungArr[0]['soll'])
|
||||
." $waehrung</td></tr>";
|
||||
|
||||
$eingangArr = $this->app->DB->SelectArr(
|
||||
"SELECT ko.bezeichnung as konto, DATE_FORMAT(ke.datum,'%d.%m.%Y') as datum, k.id as kontoauszuege,
|
||||
ke.betrag as betrag, k.id as zeile,k.waehrung
|
||||
FROM kontoauszuege_zahlungseingang ke
|
||||
LEFT JOIN kontoauszuege k ON ke.kontoauszuege=k.id
|
||||
LEFT JOIN konten ko ON k.konto=ko.id
|
||||
WHERE (ke.objekt='rechnung' AND ke.parameter='$id')
|
||||
OR (ke.objekt='auftrag' AND ke.parameter='$auftragid' AND ke.parameter>0)
|
||||
OR (ke.objekt='rechnung' AND ke.parameter='$rechnungid' AND ke.parameter>0)"
|
||||
);
|
||||
$ceingangArr = empty($eingangArr)?0:(!empty($eingangArr)?count($eingangArr):0);
|
||||
|
||||
for($i=0;$i<$ceingangArr;$i++) {
|
||||
$waehrung = 'EUR';
|
||||
if($eingangArr[$i]['waehrung']) {
|
||||
$waehrung = $eingangArr[$i]['waehrung'];
|
||||
}
|
||||
$eingang .="<tr><td class=auftrag_cell>".$eingangArr[$i]['datum']
|
||||
."</td><td class=auftrag_cell>".$eingangArr[$i]['konto']
|
||||
." (<a href=\"index.php?module=zahlungseingang&action=editzeile&id="
|
||||
.$eingangArr[$i]['zeile']."\">zur Buchung</a>)</td><td class=auftrag_cell align=right>"
|
||||
.$this->app->erp->EUR($eingangArr[$i]['betrag'])
|
||||
." $waehrung</td></tr>";
|
||||
}
|
||||
// rechnungen zu dieser rechnung anzeigen
|
||||
|
||||
$rechnungen = $this->app->DB->SelectArr("SELECT belegnr, DATE_FORMAT(datum,'%d.%m.%Y') as datum,soll FROM rechnung WHERE rechnungid='$id'");
|
||||
|
||||
for($i=0;$i<(!empty($rechnungen)?count($rechnungen):0);$i++)
|
||||
$eingang .="<tr><td class=auftrag_cell>".$rechnungen[$i]['datum']."</td><td class=auftrag_cell>GS ".$rechnungen[$i]['belegnr']."</td><td class=auftrag_cell align=right>".$this->app->erp->EUR($rechnungen[$i]['soll'])." EUR</td></tr>";
|
||||
|
||||
$ausgang = '';
|
||||
$ausgangArr = $this->app->DB->SelectArr(
|
||||
"SELECT ko.bezeichnung as konto, DATE_FORMAT(ke.datum,'%d.%m.%Y') as datum, ke.betrag as betrag,
|
||||
k.id as zeile,k.waehrung
|
||||
FROM kontoauszuege_zahlungsausgang ke
|
||||
LEFT JOIN kontoauszuege k ON ke.kontoauszuege=k.id
|
||||
LEFT JOIN konten ko ON k.konto=ko.id
|
||||
WHERE (ke.objekt='rechnung' AND ke.parameter='$id')
|
||||
OR (ke.objekt='rechnung' AND ke.parameter='$rechnungid' AND ke.parameter>0)
|
||||
OR (ke.objekt='auftrag' AND ke.parameter='$auftragid' AND ke.parameter>0)"
|
||||
);
|
||||
$cAusgangArr = empty($ausgangArr)?0:(!empty($ausgangArr)?count($ausgangArr):0);
|
||||
for($i=0;$i<$cAusgangArr;$i++) {
|
||||
$waehrung = 'EUR';
|
||||
if($ausgangArr[$i]['waehrung']) {
|
||||
$waehrung = $ausgangArr[$i]['waehrung'];
|
||||
}
|
||||
$ausgang .="<tr><td class=auftrag_cell>".$ausgangArr[$i]['datum']."</td><td class=auftrag_cell>"
|
||||
.$ausgangArr[$i]['konto']." (<a href=\"index.php?module=zahlungseingang&action=editzeile&id="
|
||||
.$ausgangArr[$i]['zeile']."\">zur Buchung</a>)</td><td class=auftrag_cell align=right>"
|
||||
.$this->app->erp->EUR($ausgangArr[$i]['betrag'])
|
||||
." $waehrung</td></tr>";
|
||||
}
|
||||
|
||||
$saldo = $this->app->erp->EUR($this->RechnungSaldo($id));
|
||||
|
||||
if($saldo < 0) {
|
||||
$saldo = "<b style=\"color:red\">$saldo</b>";
|
||||
}
|
||||
$waehrung = $this->app->DB->Select("SELECT waehrung FROM rechnung WHERE id = '$id' LIMIT 1");
|
||||
if(!$waehrung) {
|
||||
$waehrung = 'EUR';
|
||||
}
|
||||
$ausgang .="<tr><td class=auftrag_cell></td><td class=auftrag_cell align=right>Saldo</td><td class=auftrag_cell align=right>$saldo $waehrung</td></tr>";
|
||||
|
||||
if($return) {
|
||||
return "<table width=100% border=0 class=auftrag_cell cellpadding=0 cellspacing=0>".$eingang." ".$ausgang."</table>";
|
||||
}
|
||||
}
|
||||
|
||||
public function RechnungSaldo($id)
|
||||
{
|
||||
if($id <= 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
$rechnungid = $this->app->DB->Select(
|
||||
sprintf(
|
||||
'SELECT `rechnungid` FROM `rechnung` WHERE `id`= %d LIMIT 1',
|
||||
$id
|
||||
)
|
||||
);
|
||||
$auftragid = $rechnungid <= 0?0:$this->app->DB->Select(
|
||||
sprintf(
|
||||
'SELECT `auftragid` FROM `rechnung` WHERE `id`=%d LIMIT 1',
|
||||
$rechnungid
|
||||
)
|
||||
);
|
||||
|
||||
$eingangArr = $this->app->DB->SelectArr(
|
||||
sprintf(
|
||||
"SELECT ko.bezeichnung as konto, DATE_FORMAT(ke.datum,'%%d.%%m.%%Y') as datum, k.id as kontoauszuege, ke.betrag as betrag
|
||||
FROM `kontoauszuege_zahlungseingang` AS `ke`
|
||||
LEFT JOIN `kontoauszuege` AS `k` ON ke.kontoauszuege=k.id
|
||||
LEFT JOIN `konten` AS `ko` ON k.konto=ko.id
|
||||
WHERE (ke.objekt='rechnung' AND ke.parameter=%d)
|
||||
OR (ke.objekt='auftrag' AND ke.parameter=%d AND ke.parameter>0)
|
||||
OR (ke.objekt='rechnung' AND ke.parameter=%d AND ke.parameter>0)",
|
||||
$id, $auftragid, $rechnungid
|
||||
)
|
||||
);
|
||||
$einnahmen = 0;
|
||||
if(!empty($eingangArr)) {
|
||||
foreach($eingangArr AS $eingangRow) {
|
||||
$einnahmen += $eingangRow['betrag'];
|
||||
}
|
||||
}
|
||||
|
||||
//$rechnungen = $this->app->DB->SelectArr("SELECT belegnr, DATE_FORMAT(datum,'%d.%m.%Y') as datum,soll FROM rechnung WHERE rechnungid='$id' "); // alt
|
||||
$rechnungen = $this->app->DB->SelectArr(
|
||||
sprintf(
|
||||
"SELECT ro.belegnr, DATE_FORMAT(ro.datum,'%%d.%%m.%%Y') as datum, ro.soll
|
||||
FROM `rechnung` AS `ro`
|
||||
WHERE ro.`id` = %d ",
|
||||
$id
|
||||
)
|
||||
);
|
||||
|
||||
if(!empty($rechnungen)) {
|
||||
foreach($rechnungen as $rechnungRow) {
|
||||
$einnahmen += $rechnungRow['soll'];
|
||||
}
|
||||
}
|
||||
|
||||
$ausgangArr = $this->app->DB->SelectArr(
|
||||
sprintf(
|
||||
"SELECT ko.bezeichnung as konto, DATE_FORMAT(ke.datum,'%%d.%%m') as datum, ke.betrag as betrag
|
||||
FROM kontoauszuege_zahlungsausgang ke
|
||||
LEFT JOIN kontoauszuege k ON ke.kontoauszuege=k.id
|
||||
LEFT JOIN konten ko ON k.konto=ko.id
|
||||
WHERE (ke.objekt='rechnung' AND ke.parameter=%d)
|
||||
OR (ke.objekt='rechnung' AND ke.parameter=%d AND ke.parameter>0)
|
||||
OR (ke.objekt='auftrag' AND ke.parameter=%d AND ke.parameter>0)",
|
||||
$id, $rechnungid, $auftragid
|
||||
)
|
||||
);
|
||||
$ausgaben = 0;
|
||||
if(!empty($ausgangArr)){
|
||||
foreach($ausgangArr as $ausgangRow) {
|
||||
$ausgaben += $ausgangRow['betrg'];
|
||||
}
|
||||
}
|
||||
|
||||
return $einnahmen - $ausgaben;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 357 KiB After Width: | Height: | Size: 358 KiB |
@@ -4,12 +4,12 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src 'self';">
|
||||
<title>Xentral Login</title>
|
||||
<title>OpenXE Login</title>
|
||||
<link rel="stylesheet" href="themes/new/css/login.css?v=2">
|
||||
</head>
|
||||
<body>
|
||||
<div class="permission-box">
|
||||
<h1>LOGIN Xentral</h1>
|
||||
<h1>OpenXE Login</h1>
|
||||
<p class="error">Sie haben nicht das Recht auf diese Seite zugreifen zu dürfen!</p>
|
||||
<p><a href="BACK" class="btn btn-primary">Zurück zur vorherigen Seite</a></p>
|
||||
<p><a href="index.php?module=welcome&action=logout" class="btn btn-secondary">Erneut einloggen</a></p>
|
||||
|
||||
Reference in New Issue
Block a user