Compare commits
16
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c8588562b | ||
|
|
3e2b5f6ee8 | ||
|
|
7ffb9a86a5 | ||
|
|
5816dedbc0 | ||
|
|
12f5ca8211 | ||
|
|
8b9969176c | ||
|
|
a6f742ccc0 | ||
|
|
2129627a5b | ||
|
|
22e411a6cc | ||
|
|
d7db78489c | ||
|
|
088ad4555c | ||
|
|
2cb1f91a43 | ||
|
|
dff342276e | ||
|
|
c76cb43bac | ||
|
|
72684cb092 | ||
|
|
7624e01de4 |
@@ -285,6 +285,7 @@ class TicketImportHelper
|
||||
tr.dsgvo AS `is_gdpr_relevant`,
|
||||
tr.prio AS `priority`,
|
||||
tr.persoenlich AS `is_private`,
|
||||
tr.adresse,
|
||||
tr.warteschlange AS `queue_id`
|
||||
FROM `ticket_regeln` AS `tr`
|
||||
WHERE
|
||||
@@ -464,7 +465,7 @@ class TicketImportHelper
|
||||
$status = 'neu';
|
||||
}
|
||||
|
||||
$sql = "UPDATE `ticket` SET `dsgvo` = '".$rule['is_gdpr_relevant']."', `privat` = '".$rule['is_private']."', `prio` = '".$rule['priority']."', `warteschlange` = '".$rule['queue_id']."', `status` = '".$status."' WHERE `id` = '".$ticketId."'";
|
||||
$sql = "UPDATE `ticket` SET `dsgvo` = '".$rule['is_gdpr_relevant']."', `privat` = '".$rule['is_private']."', `prio` = '".$rule['priority']."',`adresse` = '".$rule['adresse']."', `warteschlange` = '".$rule['queue_id']."', `status` = '".$status."' WHERE `id` = '".$ticketId."'";
|
||||
|
||||
$this->logger->debug('ticket rule sql',['sql' => $sql]);
|
||||
|
||||
|
||||
+15
-18
@@ -28,6 +28,15 @@ class YUI {
|
||||
$this->app = $app;
|
||||
}
|
||||
|
||||
function dateien_module_objekt_map($module) : string {
|
||||
$dateien_module_objekt_map_array = array(
|
||||
'adresse' => 'adressen',
|
||||
'ticket' => 'ticket_header'
|
||||
);
|
||||
|
||||
return (isset($dateien_module_objekt_map_array[$module]) ? $dateien_module_objekt_map_array[$module] : $module);
|
||||
}
|
||||
|
||||
function PasswordCheck($passwordFieldID, $repassFieldID, $accountNameFieldID, $submitButtonID, $extra = ''){
|
||||
$this->app->Tpl->Add('JQUERYREADY', "
|
||||
function checkPassword(){
|
||||
@@ -4074,6 +4083,7 @@ url:strUrl, success:function(html){strReturn = html;}, async:false
|
||||
$allowed['wiki'] = array('dateien');
|
||||
$allowed['geschaeftsbrief_vorlagen'] = array('dateien');
|
||||
$allowed['kasse'] = array('dateien');
|
||||
$allowed['ticket'] = array('dateien');
|
||||
|
||||
$id = $this->app->Secure->GetGET("id");
|
||||
$sid = $this->app->Secure->GetGET("sid");
|
||||
@@ -4082,13 +4092,8 @@ url:strUrl, success:function(html){strReturn = html;}, async:false
|
||||
}
|
||||
|
||||
parse_str(parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY), $queries);
|
||||
switch($queries['module'])
|
||||
{
|
||||
case "adresse": $objekt="adressen"; break;
|
||||
default: $objekt=$queries['module'];
|
||||
}
|
||||
|
||||
//if(!ctype_alpha($objekt))$objekt="";
|
||||
$objekt = $this->dateien_module_objekt_map($queries['module']);
|
||||
|
||||
if(!preg_match('/[A-Za-z_]/', $objekt)) {
|
||||
$objekt='';
|
||||
@@ -14067,11 +14072,7 @@ source: "index.php?module=ajax&action=filter&filtername=' . $filter . $extendurl
|
||||
$sid = (int)$this->app->Secure->GetPOST("sid");
|
||||
$sort = $this->app->DB->Select("SELECT sort FROM datei_stichwoerter WHERE id = '$sid' LIMIT 1");
|
||||
$id = (int)$this->app->Secure->GetGET("id");
|
||||
switch($module)
|
||||
{
|
||||
case "adresse": $objekt="adressen"; break;
|
||||
default: $objekt=$module;
|
||||
}
|
||||
$objekt = $this->dateien_module_objekt_map($module);
|
||||
|
||||
if(!preg_match('/[A-Za-z_]/', $objekt))$objekt="";
|
||||
$parameter=$id;
|
||||
@@ -14100,11 +14101,7 @@ source: "index.php?module=ajax&action=filter&filtername=' . $filter . $extendurl
|
||||
$sid = (int)$this->app->Secure->GetPOST("sid");
|
||||
$sort = $this->app->DB->Select("SELECT sort FROM datei_stichwoerter WHERE id = '$sid' LIMIT 1");
|
||||
$id = (int)$this->app->Secure->GetGET("id");
|
||||
switch($module)
|
||||
{
|
||||
case "adresse": $objekt="adressen"; break;
|
||||
default: $objekt=$module;
|
||||
}
|
||||
$objekt = $this->dateien_module_objekt_map($module);
|
||||
|
||||
if(!preg_match('/[A-Za-z_]/', $objekt))$objekt="";
|
||||
$parameter=$id;
|
||||
@@ -14203,7 +14200,7 @@ source: "index.php?module=ajax&action=filter&filtername=' . $filter . $extendurl
|
||||
$this->app->Tpl->Add('MESSAGE','<div class="error">Keine Dateien ausgewählt!</div>');
|
||||
}else{
|
||||
$objekt = $this->app->Secure->GetGET('module');
|
||||
if($objekt == 'adresse')$objekt = 'adressen';
|
||||
$objekt = $this->dateien_module_objekt_map($objekt);
|
||||
$parameter = (int)$this->app->Secure->GetGET('id');
|
||||
$alledateien = $this->app->DB->SelectArr("SELECT v.datei, v.id FROM
|
||||
datei d INNER JOIN datei_stichwoerter s ON d.id=s.datei INNER JOIN datei_version v ON v.datei=d.id WHERE s.objekt LIKE '$objekt' AND s.parameter='$parameter' AND d.geloescht=0 ");
|
||||
@@ -14270,7 +14267,7 @@ source: "index.php?module=ajax&action=filter&filtername=' . $filter . $extendurl
|
||||
$this->app->Tpl->Add('MESSAGE','<div class="error">Keine Dateien ausgewählt!</div>');
|
||||
}else{
|
||||
$objekt = $this->app->Secure->GetGET('module');
|
||||
if($objekt == 'adresse')$objekt = 'adressen';
|
||||
$objekt = $this->dateien_module_objekt_map($objekt);
|
||||
$typmodul = $this->app->Secure->GetPOST('typ');
|
||||
if($objekt == 'dateien' && $typmodul == 'geschaeftsbrief_vorlagen'){
|
||||
$objekt = $typmodul;
|
||||
|
||||
@@ -57180,6 +57180,17 @@
|
||||
"Extra": "",
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
},
|
||||
{
|
||||
"Field": "umgelagert",
|
||||
"Type": "int(1)",
|
||||
"Collation": null,
|
||||
"Null": "NO",
|
||||
"Key": "",
|
||||
"Default": "0",
|
||||
"Extra": "",
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
}
|
||||
],
|
||||
"keys": [
|
||||
@@ -104771,6 +104782,17 @@
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
},
|
||||
{
|
||||
"Field": "adresse",
|
||||
"Type": "int(11)",
|
||||
"Collation": null,
|
||||
"Null": "NO",
|
||||
"Key": "",
|
||||
"Default": "0",
|
||||
"Extra": "",
|
||||
"Privileges": "select,insert,update,references",
|
||||
"Comment": ""
|
||||
},
|
||||
{
|
||||
"Field": "warteschlange",
|
||||
"Type": "text",
|
||||
|
||||
@@ -112,6 +112,12 @@ if (php_sapi_name() == "cli") {
|
||||
$check_db = true;
|
||||
} else {
|
||||
}
|
||||
|
||||
if (in_array('-strict', $argv)) {
|
||||
$strict_db = true;
|
||||
} else {
|
||||
$strict_db = false;
|
||||
}
|
||||
|
||||
if (in_array('-do', $argv)) {
|
||||
if (!$check_git && !$check_db) {
|
||||
@@ -127,7 +133,17 @@ if (php_sapi_name() == "cli") {
|
||||
}
|
||||
|
||||
if ($check_git || $check_db || $do_git || $do_db) {
|
||||
upgrade_main($directory,$verbose,$check_git,$do_git,$export_db,$check_db,$do_db,$force,$connection,$origin);
|
||||
upgrade_main( directory: $directory,
|
||||
verbose: $verbose,
|
||||
check_git: $check_git,
|
||||
do_git: $do_git,
|
||||
export_db: $export_db,
|
||||
check_db: $check_db,
|
||||
strict_db: $strict_db,
|
||||
do_db: $do_db,
|
||||
force: $force,
|
||||
connection: $connection,
|
||||
origin: $origin);
|
||||
} else {
|
||||
info();
|
||||
}
|
||||
@@ -139,7 +155,7 @@ if (php_sapi_name() == "cli") {
|
||||
}
|
||||
// -------------------------------- END
|
||||
|
||||
function upgrade_main(string $directory,bool $verbose, bool $check_git, bool $do_git, bool $export_db, bool $check_db, bool $do_db, bool $force, bool $connection, bool $origin) {
|
||||
function upgrade_main(string $directory,bool $verbose, bool $check_git, bool $do_git, bool $export_db, bool $check_db, bool $strict_db, bool $do_db, bool $force, bool $connection, bool $origin) {
|
||||
|
||||
$mainfolder = dirname($directory);
|
||||
$datafolder = $directory."/data";
|
||||
@@ -379,7 +395,7 @@ function upgrade_main(string $directory,bool $verbose, bool $check_git, bool $do
|
||||
echo_out("--------------- Calculating database upgrade for '$schema@$host'... ---------------\n");
|
||||
|
||||
$upgrade_sql = array();
|
||||
$result = mustal_calculate_db_upgrade($compare_def, $db_def, $upgrade_sql, $mustal_replacers);
|
||||
$result = mustal_calculate_db_upgrade($compare_def, $db_def, $upgrade_sql, $mustal_replacers, $strict_db);
|
||||
|
||||
if (!empty($result)) {
|
||||
abort(count($result)." errors.\n");
|
||||
@@ -482,6 +498,7 @@ function info() {
|
||||
echo_out("\t-f: force override of existing files\n");
|
||||
echo_out("\t-o: update from origin instead of remote.json\n");
|
||||
echo_out("\t-connection use connection.json in data folder instead of user.inc.php\n");
|
||||
echo_out("\t-strict: innodb_strict_mode=ON\n");
|
||||
echo_out("\t-clean: (not yet implemented) create the needed SQL to remove items from the database not in the JSON\n");
|
||||
echo_out("\n");
|
||||
}
|
||||
|
||||
+6
-4
@@ -21,7 +21,7 @@ function mustal_compare_table_array(array $nominal, string $nominal_name, array
|
||||
Compare two database structures
|
||||
Returns a structured array containing information on all the differences.
|
||||
|
||||
function mustal_calculate_db_upgrade(array $compare_def, array $db_def, array &$upgrade_sql) : int
|
||||
function mustal_calculate_db_upgrade(array $compare_def, array $db_def, array &$upgrade_sql, bool $strict) : int
|
||||
Generate the SQL needed to upgrade the database to match the definition, based on a comparison.
|
||||
|
||||
Data structure in Array and JSON
|
||||
@@ -542,7 +542,7 @@ function mustal_implode_with_quote(string $quote, string $delimiter, array $arra
|
||||
// 11 Table type upgrade not supported
|
||||
// 12 Upgrade type not supported
|
||||
|
||||
function mustal_calculate_db_upgrade(array $compare_def, array $db_def, array &$upgrade_sql, array $replacers) : array {
|
||||
function mustal_calculate_db_upgrade(array $compare_def, array $db_def, array &$upgrade_sql, array $replacers, bool $strict) : array {
|
||||
|
||||
$result = array();
|
||||
$upgrade_sql = array();
|
||||
@@ -752,8 +752,10 @@ function mustal_calculate_db_upgrade(array $compare_def, array $db_def, array &$
|
||||
$upgrade_sql = array_unique($upgrade_sql);
|
||||
|
||||
if (count($upgrade_sql) > 0) {
|
||||
|
||||
array_unshift($upgrade_sql,"SET SQL_MODE='ALLOW_INVALID_DATES';","SET SESSION innodb_strict_mode=OFF;");
|
||||
array_unshift($upgrade_sql,"SET SQL_MODE='ALLOW_INVALID_DATES';");
|
||||
if (!$strict) {
|
||||
array_unshift($upgrade_sql,"SET SESSION innodb_strict_mode=OFF;");
|
||||
}
|
||||
}
|
||||
|
||||
return($result);
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
$version="OSS";
|
||||
$version_revision="1.10";
|
||||
$version_revision="1.11";
|
||||
$githash = file_get_contents("../githash.txt");
|
||||
if (!empty($githash)) {
|
||||
$version_revision .= " (".substr($githash,0,8).")";
|
||||
|
||||
@@ -7157,7 +7157,7 @@ title: 'Abschicken',
|
||||
|
||||
$navarray['menu']['admin'][$menu]['sec'][] = array('Lagermindestmengen','lagermindestmengen','list');
|
||||
$navarray['menu']['admin'][$menu]['sec'][] = array('Artikelkontingente','artikelkontingente','list');
|
||||
$navarray['menu']['admin'][$menu]['sec'][] = array('Ein- und auslagern','lager','bucheneinlagern');
|
||||
$navarray['menu']['admin'][$menu]['sec'][] = array('Ein- und auslagern','lager','letztebewegungen');
|
||||
$navarray['menu']['admin'][$menu]['sec'][] = array('Zwischenlager','lager','buchenzwischenlager');
|
||||
|
||||
$navarray['menu']['admin'][++$menu]['first'] = array('Buchhaltung','rechnung','list');
|
||||
@@ -12496,7 +12496,7 @@ function SendPaypalFromAuftrag($auftrag, $test = false)
|
||||
}
|
||||
$this->AuftragExplodieren($auftrag);
|
||||
|
||||
//$this->BerechneDeckungsbeitrag($auftrag,"auftrag");
|
||||
$this->BerechneDeckungsbeitrag($auftrag,"auftrag");
|
||||
$auftragarr = $this->app->DB->SelectRow("SELECT projekt,internet FROM auftrag WHERE id = '$auftrag' LIMIT 1");
|
||||
if(empty($auftragarr))
|
||||
{
|
||||
@@ -29350,7 +29350,7 @@ function Firmendaten($field,$projekt="")
|
||||
{
|
||||
foreach($ohneeks as $ek)
|
||||
{
|
||||
if($ek['ekwaehrung']=='')
|
||||
if($ek['einkaufspreis'] == 0)
|
||||
{
|
||||
$originalwaehrung = $ek['waehrung'];
|
||||
$originalpreis = $ek['preis'];
|
||||
|
||||
+12
-15
@@ -350,9 +350,9 @@ class Ajax {
|
||||
$id = $this->app->Secure->GetPOST('id');
|
||||
$objekt = $this->app->Secure->GetPOST('typ');
|
||||
$parameter = $this->app->Secure->GetPOST('parameter');
|
||||
if($objekt === 'adresse'){
|
||||
$objekt = 'Adressen';
|
||||
}
|
||||
|
||||
$module = strtolower($objekt);
|
||||
$objekt = $this->app->YUI->dateien_module_objekt_map($objekt);
|
||||
|
||||
$data = $this->app->DB->SelectRow(
|
||||
"SELECT d.*, s.subjekt
|
||||
@@ -363,12 +363,6 @@ class Ajax {
|
||||
LIMIT 1"
|
||||
);
|
||||
|
||||
|
||||
$module = strtolower($objekt);
|
||||
if($module === 'adressen'){
|
||||
$module = 'adresse';
|
||||
}
|
||||
|
||||
$typen = $this->app->erp->getDateiTypen($module);
|
||||
$found = false;
|
||||
foreach($typen as $typ) {
|
||||
@@ -431,10 +425,10 @@ class Ajax {
|
||||
$titel = $this->app->Secure->GetPOST('titel');
|
||||
$beschreibung = $this->app->Secure->GetPOST('beschreibung');
|
||||
$subjekt = $this->app->Secure->GetPOST('subjekt');
|
||||
if($objekt == 'adresse')
|
||||
{
|
||||
$objekt = 'Adressen';
|
||||
}
|
||||
|
||||
$module = strtolower($objekt);
|
||||
$objekt = $this->app->YUI->dateien_module_objekt_map($module);
|
||||
|
||||
$ersteller = $this->app->DB->real_escape_string($this->app->User->GetName());
|
||||
$datei = $this->app->DB->SelectArr("SELECT d.id, s.id as sid FROM datei d LEFT JOIN datei_stichwoerter s ON d.id=s.datei LEFT JOIN datei_version v ON v.datei=d.id WHERE s.objekt LIKE '$objekt' AND s.parameter='$parameter' AND d.geloescht=0 AND d.id = '$id' LIMIT 1");
|
||||
if($datei)
|
||||
@@ -654,6 +648,9 @@ class Ajax {
|
||||
$cmd = trim($this->app->Secure->GetGET('cmd'));
|
||||
$id = (int)$this->app->Secure->GetGET('id');
|
||||
|
||||
$module = strtolower($cmd);
|
||||
$cmd = $this->app->YUI->dateien_module_objekt_map($cmd);
|
||||
|
||||
if(!empty($cmd) && $id
|
||||
&& (!in_array($cmd, $cmds) || (in_array($cmd, $cmds) && $this->app->erp->RechteVorhanden($cmd,'dateien')))) {
|
||||
$datei = $this->app->DB->SelectRow(
|
||||
@@ -661,7 +658,7 @@ class Ajax {
|
||||
"SELECT dv.id, ds.parameter, dv.dateiname
|
||||
FROM datei_version AS dv
|
||||
INNER JOIN datei_stichwoerter ds ON ds.datei = dv.datei
|
||||
WHERE dv.datei = %d AND (ds.objekt like '%s'".($cmd === 'adresse'?" OR ds.objekt like 'Adressen' ":'').")
|
||||
WHERE dv.datei = %d AND (ds.objekt like '%s')
|
||||
ORDER BY dv.datei DESC, dv.version DESC
|
||||
LIMIT 1",
|
||||
$id, $cmd
|
||||
@@ -694,7 +691,7 @@ class Ajax {
|
||||
$projekt = $this->app->DB->Select(
|
||||
sprintf(
|
||||
'SELECT `projekt` FROM `%s` WHERE `id` = %d LIMIT 1',
|
||||
$cmd, $datei[0]['parameter']
|
||||
$module, $datei[0]['parameter']
|
||||
)
|
||||
);
|
||||
if(!$this->app->erp->UserProjektRecht($projekt)) {
|
||||
|
||||
@@ -2014,7 +2014,7 @@ class Auftrag extends GenAuftrag
|
||||
$db_gesamt = 0;
|
||||
foreach ($positionen as $position) {
|
||||
if (empty($position['einkaufspreis'])) {
|
||||
$position['einkaufspreis'] = $this->app->erp->GetEinkaufspreis($position['artikel'],$position['menge']);
|
||||
$position['einkaufspreis'] = $this->app->erp->GetEinkaufspreis($position['artikel'],$position['menge']);
|
||||
}
|
||||
$kosten = ($position['einkaufspreis']*$position['menge']);
|
||||
$db_gesamt += $position['umsatz_netto_gesamt']-$kosten;
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<li><a href="#tabs-1">[TABTEXT1]</a></li>
|
||||
</ul>
|
||||
<div id="tabs-1">
|
||||
[MESSAGE]
|
||||
[MESSAGETABLE]
|
||||
<fieldset>
|
||||
<form action="" method="post" id="eprooform" name="eprooform">
|
||||
<table class="tableborder" border="0" cellpadding="3" cellspacing="0" width="100%">
|
||||
<tbody>
|
||||
<tr valign="top" colspan="3">
|
||||
<td>
|
||||
<table width="80%" align="center">
|
||||
<tr valign="top">
|
||||
<td align="center">
|
||||
<table width="90%">
|
||||
<tr><td><b>{|Quelllager|}:</b></td><td><input type="text" id="quelllager" name="quelllager" value="[QUELLLAGER]" size="27" style="width:200px"></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
<button name="submit" value="lieferschein" class="ui-button-icon" style="width:200px;">
|
||||
Lieferschein erzeugen
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,45 @@
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<li><a href="#tabs-1">[TABTEXT1]</a></li>
|
||||
</ul>
|
||||
<div id="tabs-1">
|
||||
[MESSAGE]
|
||||
[MESSAGETABLE]
|
||||
<fieldset>
|
||||
<form action="" method="post" id="eprooform" name="eprooform">
|
||||
<table class="tableborder" border="0" cellpadding="3" cellspacing="0" width="100%">
|
||||
<tbody>
|
||||
<tr valign="top" colspan="3">
|
||||
<td>
|
||||
<table width="80%" align="center">
|
||||
<tr valign="top">
|
||||
<td align="center">
|
||||
<table width="90%">
|
||||
<tr><td><b>{|Quelllager|}:</b></td><td><input type="text" id="quelllager" name="quelllager" value="[QUELLLAGER]" size="27" style="width:200px"></td></tr>
|
||||
<tr><td><b>{|Ziellager|}:</b></td><td><input type="text" id="ziellager" name="ziellager" value="[ZIELLAGER]" size="27" style="width:200px"></td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p [ERNEUT_UMLAGERN_HIDDEN]><input type="checkbox" name="erneut" id="erneut" value="1" size="20" [ERNEUT_CHECKED]>{|Erneut umlagern|}</input></p>
|
||||
</td>
|
||||
<td>
|
||||
<button name="submit" value="umlagern" class="ui-button-icon" style="width:200px;">
|
||||
Umlagern
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br>
|
||||
<br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
@@ -25,6 +25,7 @@
|
||||
<tr><td>{|Adresse|}:</td><td><input type="text" name="adresse" id="adresse" value="[ADRESSE]" size="20"><a href="index.php?module=adresse&action=edit&id=[ADRESSE_ID]"><img src="./themes/new/images/forward.svg" border="0" style="top:6px; position:relative"></a></td></tr>
|
||||
<tr><td>{|Tags|}:</td><td><input type="text" name="tags" id="tags" value="[TAGS]" size="20"></td></tr>
|
||||
<tr><td>{|Letzte Aktion|}:</td><td>[ZEIT]</td></tr>
|
||||
[TICKET_ANHANG]
|
||||
</table>
|
||||
</fieldset>
|
||||
</div>
|
||||
@@ -49,6 +50,7 @@
|
||||
<legend>{|Aktionen|}</legend>
|
||||
<td><button name="submit" value="speichern" class="ui-button-icon" style="width:100%;">Speichern</button></td></tr>
|
||||
<td><button name="submit" value="neue_email" class="ui-button-icon" style="width:100%;">Neue E-Mail</button></td></tr>
|
||||
<td><button name="submit" value="neue_email_alle" class="ui-button-icon" style="width:100%;">Neue E-Mail an alle</button></td></tr>
|
||||
<td><button name="submit" formaction="index.php?module=ticketregeln&action=create" value="regel" class="ui-button-icon" style="width:100%;">Ticketregel erstellen</button><input hidden type="text" name="ticketid" value="[ID]"></td></tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
||||
@@ -49,7 +49,19 @@
|
||||
<tr><td>{|Status|}:</td><td><select name="status">[STATUS]</select></td></tr>
|
||||
<tr><td>{|Verantwortlich|}:</td><td><input type="text" name="warteschlange" id="warteschlange" value="[WARTESCHLANGE]" size="20"></td></tr>
|
||||
<tr>
|
||||
<td><input type="checkbox" value="1" id="autoalle" /> alle markieren </td><td><input type="submit" class="btnBlue" name="ausfuehren" value="{|Zuordnen|}" /></td>
|
||||
<td>
|
||||
<input type="checkbox" value="1" id="autoalle" /> alle markieren
|
||||
</td>
|
||||
<td>
|
||||
<button name="submit" value="zuordnen" class="ui-button-icon" style="width:100%;">{|Zuordnen|}</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr [SPAM_HIDDEN]>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
<button name="submit" value="spam_filter" class="ui-button-icon" title="Ticket auf Status 'Papierkorb' setzen und Absender-Adresse in Ticketregel eintragen" style="width:100%;">{|Spamregel erstellen|}</button>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -23,10 +23,12 @@
|
||||
<tr><td>{|E-Mail Verfasser|}:</td><td><input type="text" name="sender_email" value="[SENDER_EMAIL]" size="40"></td></tr>
|
||||
<tr><td>{|Verfasser Name|}:</td><td><input type="text" name="name" value="[NAME]" size="40"></td></tr>
|
||||
<tr><td>{|Betreff|}:</td><td><input type="text" name="betreff" value="[BETREFF]" size="40"></td></tr>
|
||||
<tr><td colspan="2"><hr style="border-style:solid; border-width:1px"></td></tr>
|
||||
<tr><td>{|Papierkorb|}:</td><td><input type="checkbox" name="spam" value="1" [SPAM] size="40"></td></tr>
|
||||
<tr><td>{|Persönlich|}:</td><td><input type="checkbox" name="persoenlich" value="1" [PERSOENLICH] size="40"></td></tr>
|
||||
<tr><td>{|Prio|}:</td><td><input type="checkbox" name="prio" value="1" [PRIO] size="40"></td></tr>
|
||||
<tr><td>{|DSGVO|}:</td><td><input type="checkbox" name="dsgvo" value="1" [DSGVO] size="40"></td></tr>
|
||||
<tr><td>{|Adresse|}:</td><td><input type="text" name="adresse" id="adresse" value="[ADRESSE]" size="40"></td></tr>
|
||||
<tr><td>{|Verantwortliche Warteschlange|}:</td><td><input type="text" name="warteschlange" id="warteschlange" value="[WARTESCHLANGE]" size="40"></td></tr>
|
||||
<tr><td>{|Aktiv|}:</td><td><input type="checkbox" name="aktiv" value="1" [AKTIV] size="40"></td></tr>
|
||||
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<div id="tabs-1">
|
||||
[MESSAGE]
|
||||
[TAB1]
|
||||
[TAB1NEXT]
|
||||
<div id="tabs">
|
||||
<ul>
|
||||
<li><a href="#tabs-1">[TABTEXT1]</a></li>
|
||||
</ul>
|
||||
<div id="tabs-1">
|
||||
[MESSAGE]
|
||||
[TAB1]
|
||||
[TAB1NEXT]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+61
-29
@@ -174,31 +174,7 @@ class Lager extends GenLager {
|
||||
// fester filter
|
||||
$where = " l.geloescht=0 AND l.id!=0 AND l.lager='$id' ";
|
||||
$count = "SELECT COUNT(id) FROM lager_platz WHERE geloescht=0 AND lager='$id' ";
|
||||
break;
|
||||
case 'lagerletztebewegungen':
|
||||
$allowed['lager'] = array('letztebewegungen');
|
||||
|
||||
// headings
|
||||
|
||||
// headings
|
||||
|
||||
$heading = array('Datum', 'Lager', 'Menge', 'Nummer', 'Artikel', 'Richtung', 'Referenz', 'Bearbeiter', 'Projekt', 'Menü');
|
||||
$width = array('1%', '5%', '5%', '5%', '5%', '5%', '40%', '20%', '5%', '1%');
|
||||
$findcols = array('zeit', 'lager', 'menge', 'nummer', 'name_de', 'Richtung', 'referenz', 'bearbeiter', 'projekt', 'id');
|
||||
$searchsql = array('lpi.referenz', 'lpi.bearbeiter', 'p.abkuerzung', 'DATE_FORMAT(lpi.zeit,\'%d.%m.%Y\')', 'lp.kurzbezeichnung', 'a.name_de', 'a.nummer');
|
||||
$defaultorder = 10; //Optional wenn andere Reihenfolge gewuenscht
|
||||
$alignright = array(3);
|
||||
$defaultorderdesc = 1;
|
||||
$menu = "-";
|
||||
|
||||
$sql = "SELECT SQL_CALC_FOUND_ROWS lpi.id,
|
||||
DATE_FORMAT(lpi.zeit,'%d.%m.%Y') as datum, lp.kurzbezeichnung as lager, trim(lpi.menge)+0 as menge,
|
||||
a.nummer, a.name_de, if(lpi.eingang,'Eingang','Ausgang') as Richtung, substring(lpi.referenz,1,60) as referenz, lpi.bearbeiter as bearbeiter, p.abkuerzung as projekt,
|
||||
lpi.id FROM lager_bewegung lpi LEFT JOIN lager_platz as lp ON lpi.lager_platz=lp.id LEFT JOIN projekt p ON lpi.projekt=p.id LEFT JOIN artikel a ON a.id=lpi.artikel";
|
||||
|
||||
|
||||
$count = "SELECT COUNT(lpi.id) FROM lager_bewegung lpi LEFT JOIN lager_platz as lp ON lpi.lager_platz=lp.id LEFT JOIN projekt p ON lpi.projekt=p.id ";
|
||||
break;
|
||||
break;
|
||||
case 'lagertabelle':
|
||||
$allowed['lager'] = array('list');
|
||||
$defaultCountry = $app->erp->Firmendaten('land');
|
||||
@@ -832,7 +808,23 @@ class Lager extends GenLager {
|
||||
|
||||
$datecols = array(6);
|
||||
|
||||
$sql = "SELECT SQL_CALC_FOUND_ROWS i.id, l.bezeichnung, lp.kurzbezeichnung as regal, a.nummer, a.name_de, IF(i.eingang, 'Eingang', 'Ausgang'), if(i.eingang, CONCAT('+', ' ', trim(i.menge)+0), CONCAT('-', ' ', trim(i.menge)+0)) as menge, DATE_FORMAT(i.zeit,'%d.%m.%Y') as datum, i.referenz, i.bearbeiter, p.abkuerzung AS projektbewegung, i.id FROM lager_bewegung i LEFT JOIN lager_platz lp ON lp.id=i.lager_platz LEFT JOIN lager l ON lp.lager = l.id LEFT JOIN artikel a ON i.artikel=a.id LEFT JOIN projekt p ON l.projekt = p.id";
|
||||
$sql = "SELECT SQL_CALC_FOUND_ROWS
|
||||
i.id,
|
||||
l.bezeichnung,
|
||||
lp.kurzbezeichnung as regal,
|
||||
a.nummer,
|
||||
a.name_de,
|
||||
IF(i.eingang,
|
||||
'Eingang',
|
||||
'Ausgang'),
|
||||
if(i.eingang,
|
||||
CONCAT('+',' ',trim(i.menge)+0),CONCAT('-',' ',trim(i.menge)+0)) as menge,
|
||||
".$app->erp->FormatDateTimeShort('i.zeit')." as datum,
|
||||
i.referenz,
|
||||
i.bearbeiter,
|
||||
p.abkuerzung AS projektbewegung,
|
||||
i.id
|
||||
FROM lager_bewegung i LEFT JOIN lager_platz lp ON lp.id=i.lager_platz LEFT JOIN lager l ON lp.lager = l.id LEFT JOIN artikel a ON i.artikel=a.id LEFT JOIN projekt p ON l.projekt = p.id";
|
||||
|
||||
|
||||
$lager = $app->User->GetParameter("lager_bewegungalle_lager");
|
||||
@@ -1107,6 +1099,7 @@ class Lager extends GenLager {
|
||||
$this->app->ActionHandler("buchenzwischenlagerdelete", "LagerBuchenZwischenlagerDelete");
|
||||
$this->app->ActionHandler("bucheneinlagern", "LagerBuchenEinlagern");
|
||||
$this->app->ActionHandler("buchenauslagern", "LagerBuchenAuslagern");
|
||||
$this->app->ActionHandler("umlagernlieferschein", "LagerBuchenUmlagernLieferschein");
|
||||
$this->app->ActionHandler("artikelentfernenreserviert", "LagerArtikelEntfernenReserviert");
|
||||
$this->app->ActionHandler("letztebewegungen", "LagerLetzteBewegungen");
|
||||
$this->app->ActionHandler("schnelleinlagern", "LagerSchnellEinlagern");
|
||||
@@ -3156,12 +3149,50 @@ class Lager extends GenLager {
|
||||
$this->app->Tpl->Parse('PAGE', 'tabview.tpl');
|
||||
}
|
||||
|
||||
function LagerBuchenUmlagernLieferschein() {
|
||||
$this->LagerBuchenMenu();
|
||||
$this->app->Tpl->AddMessage('info',"Gesamten Lagerplatz in einen neuen Lieferschein zur Umlagerung geben.");
|
||||
$this->app->YUI->AutoComplete("quelllager", "lagerplatz");
|
||||
$quelllager = $this->app->Secure->GetPOST('quelllager');
|
||||
|
||||
$submit = $this->app->Secure->GetPOST('submit');
|
||||
if ($submit == 'lieferschein') {
|
||||
$quellager_id = $this->app->erp->ReplaceLagerPlatz(true, $quelllager, true);
|
||||
if (empty($quellager_id)) {
|
||||
$this->app->Tpl->AddMessage('error',"Bitte Quelllager angeben.");
|
||||
} else {
|
||||
$sql = "SELECT artikel, SUM(menge) as menge FROM lager_platz_inhalt WHERE lager_platz=$quellager_id AND menge > 0 GROUP BY artikel";
|
||||
$positionen = $this->app->DB->SelectArr($sql);
|
||||
|
||||
if (empty($positionen)) {
|
||||
$this->app->Tpl->AddMessage('error',"Lager ist leer.");
|
||||
} else {
|
||||
$id = $this->app->erp->ImportCreateLieferschein(null);
|
||||
if (!empty($id)) {
|
||||
$this->app->erp->LieferscheinProtokoll($id,"Lieferschein aus Lager ".$quelllager." erstellt");
|
||||
$this->app->DB->Update("UPDATE lieferschein SET standardlager = '$quellager_id' WHERE id = '$id' LIMIT 1");
|
||||
|
||||
foreach ($positionen as $position) {
|
||||
// public function AddLieferscheinPositionArtikelID($lieferschein, $artikel,$menge,$bezeichnung,$beschreibung,$datum)
|
||||
$this->app->erp->AddLieferscheinPositionArtikelID($id, $position['artikel'],$position['menge'],null,null,null);
|
||||
}
|
||||
|
||||
$this->app->Location->execute("index.php?module=lieferschein&action=edit&id=$id");
|
||||
} else {
|
||||
$this->app->Tpl->AddMessage('error',"Lieferschein konnte nicht erzeugt werden.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->app->Tpl->Set('QUELLLAGER',$this->app->erp->ReplaceLagerPlatz(false, $quellager_id, false));
|
||||
$this->app->Tpl->Parse('PAGE', 'lager_umlagern_lieferschein.tpl');
|
||||
}
|
||||
|
||||
function LagerLetzteBewegungen()
|
||||
{
|
||||
$this->LagerBuchenMenu();
|
||||
|
||||
$this->app->YUI->TableSearch('TAB1', 'lagerletztebewegungen','show','','',basename(__FILE__), __CLASS__);
|
||||
|
||||
$this->app->YUI->TableSearch('TAB1', 'lager_allebewegungenlist','show','','',basename(__FILE__), __CLASS__);
|
||||
$this->app->Tpl->Parse('PAGE', 'tabview.tpl');
|
||||
}
|
||||
|
||||
@@ -3171,6 +3202,7 @@ class Lager extends GenLager {
|
||||
$this->app->erp->Headlines('Lager');
|
||||
if($this->app->erp->Version()!=='stock') {
|
||||
$this->app->erp->MenuEintrag("index.php?module=lager&action=buchenauslagern&cmd=umlagern&id=$id", 'Umlagern');
|
||||
$this->app->erp->MenuEintrag("index.php?module=lager&action=umlagernlieferschein&id=$id", 'Umlagern mit Lieferschein');
|
||||
$this->app->erp->MenuEintrag("index.php?module=lager&action=buchenauslagern&id=$id", 'Auslagern');
|
||||
$this->app->erp->MenuEintrag("index.php?module=lager&action=bucheneinlagern&id=$id", 'Einlagern');
|
||||
$this->app->erp->MenuEintrag("index.php?module=lager&action=buchenzwischenlager&id=$id", 'Zwischenlager');
|
||||
|
||||
+133
-22
@@ -194,6 +194,7 @@ class Lieferschein extends GenLieferschein
|
||||
$this->app->ActionHandler("abschicken","LieferscheinAbschicken");
|
||||
$this->app->ActionHandler("abschliessen","LieferscheinAbschliessen");
|
||||
$this->app->ActionHandler("auslagern","LieferscheinAuslagern");
|
||||
$this->app->ActionHandler("umlagern","LieferscheinUmlagern");
|
||||
$this->app->ActionHandler("pdf","LieferscheinPDF");
|
||||
$this->app->ActionHandler("inlinepdf","LieferscheinInlinePDF");
|
||||
$this->app->ActionHandler("protokoll","LieferscheinProtokoll");
|
||||
@@ -453,6 +454,107 @@ class Lieferschein extends GenLieferschein
|
||||
exit;
|
||||
}
|
||||
|
||||
function LieferscheinUmlagern()
|
||||
{
|
||||
$id = (int)$this->app->Secure->GetGET("id");
|
||||
$sql = "SELECT belegnr, name, status, umgelagert, standardlager FROM lieferschein WHERE id='$id'";
|
||||
$lieferschein = $this->app->DB->SelectArr($sql)[0];
|
||||
$belegnr = $lieferschein['belegnr'];
|
||||
$name = $lieferschein['name'];
|
||||
$status = $lieferschein['status'];
|
||||
$umgelagert = $lieferschein['umgelagert'];
|
||||
|
||||
$quelllager = $this->app->Secure->GetPOST('quelllager');
|
||||
$ziellager = $this->app->Secure->GetPOST('ziellager');
|
||||
|
||||
$quellager_id = $this->app->erp->ReplaceLagerPlatz(true, $quelllager, true);
|
||||
$ziellager_id = $this->app->erp->ReplaceLagerPlatz(true, $ziellager, true);
|
||||
|
||||
if (empty($quellager_id)) {
|
||||
$quellager_id = $lieferschein['standardlager'];
|
||||
}
|
||||
|
||||
if ($status != "versendet" && $status != "freigegeben") {
|
||||
exit();
|
||||
}
|
||||
|
||||
$submit = $this->app->Secure->GetPOST('submit');
|
||||
$erneut = $this->app->Secure->GetPOST('erneut');
|
||||
|
||||
if ($umgelagert && !$erneut) {
|
||||
$this->app->Tpl->AddMessage('warning',"Lieferschein wurde bereits umgelagert.");
|
||||
} else {
|
||||
$this->app->Tpl->Set('ERNEUT_UMLAGERN_HIDDEN','hidden');
|
||||
$submit = $this->app->Secure->GetPOST('submit');
|
||||
if ($submit == 'umlagern') {
|
||||
|
||||
if (empty($quellager_id) || empty($ziellager_id)) {
|
||||
$this->app->Tpl->AddMessage('error',"Bitte Quell- und Ziellager angeben.");
|
||||
} else {
|
||||
$sql = "SELECT artikel, name_de, a.nummer AS artikelnummer, SUM(menge) AS menge FROM lieferschein_position lp INNER JOIN artikel a ON a.id = lp.artikel WHERE lp.lieferschein = $id GROUP BY lp.artikel";
|
||||
$positionen = $this->app->DB->SelectArr($sql);
|
||||
|
||||
$menge_ok = true;
|
||||
$fehlt = array();
|
||||
|
||||
foreach ($positionen as $position) {
|
||||
$sql = "SELECT SUM(menge) as menge FROM lager_platz_inhalt WHERE lager_platz=$quellager_id AND artikel = ".$position['artikel'];
|
||||
$menge_lager = $this->app->DB->SelectArr($sql)[0]['menge'];
|
||||
|
||||
if ($menge_lager < $position['menge']) {
|
||||
$menge_ok = false;
|
||||
$fehlt[] = array('Nummer' => $position['artikelnummer'],'Artikel' => $position['name_de'],'Lieferschein Menge' => (int) $position['menge'],'Lager Menge' => empty($menge_lager)?'-':(int) $menge_lager);
|
||||
}
|
||||
}
|
||||
|
||||
if ($menge_ok) {
|
||||
foreach ($positionen as $position) {
|
||||
|
||||
$artikel = $position['artikel'];
|
||||
$menge = $position['menge'];
|
||||
$projekt = 0;
|
||||
$grund = "Umlagern Lieferschein ".$belegnr;
|
||||
$importer = "";
|
||||
$paketannahme = "";
|
||||
$doctype = "lieferschein";
|
||||
$doctypeId = $id;
|
||||
|
||||
$this->app->erp->LagerAuslagernRegal($artikel,$quellager_id,$menge,$projekt,$grund,$importer,$doctype,$doctypeid);
|
||||
$this->app->erp->LagerEinlagern($artikel,$menge,$ziellager_id,$projekt,$grund,$importer,$paketannahme,$doctype,$doctypeid);
|
||||
}
|
||||
$sql = "UPDATE lieferschein SET umgelagert = 1 WHERE id = ".$id;
|
||||
$this->app->DB->Update($sql);
|
||||
$this->app->erp->LieferscheinProtokoll($id,"Lieferschein umgelagert von ".$quelllager." nach ".$ziellager);
|
||||
$this->app->Tpl->AddMessage('success','Erfolgreich umgelagert.');
|
||||
$erneut = null;
|
||||
} else {
|
||||
$this->app->Tpl->AddMessage('error',"Mengen im Quelllager nicht ausreichend.");
|
||||
$tmp = new EasyTable($this->app);
|
||||
$tmp->headings = array('Nummer','Artikel','Lieferschein Menge','Lager Menge','');
|
||||
$tmp->datasets = $fehlt;
|
||||
$tmp->DisplayNew('MESSAGETABLE',null,"noAction");
|
||||
} // Menge ok
|
||||
} // Lager ok
|
||||
} // umlagern
|
||||
} // $umgelagert
|
||||
|
||||
$this->LieferscheinMenu();
|
||||
|
||||
$this->app->YUI->AutoComplete("quelllager", "lagerplatz");
|
||||
$this->app->YUI->AutoComplete("ziellager", "lagerplatz");
|
||||
|
||||
$this->app->Tpl->Set('KURZUEBERSCHRIFT2',"Lieferschein $belegnr umlagern");
|
||||
$this->app->Tpl->Set('TABTEXT',"Umlagern");
|
||||
|
||||
$this->app->Tpl->Set('QUELLLAGER',$this->app->erp->ReplaceLagerPlatz(false, $quellager_id, false));
|
||||
|
||||
$this->app->Tpl->Set('ZIELLAGER',$this->app->erp->ReplaceLagerPlatz(false, $ziellager_id, false));
|
||||
|
||||
$this->app->Tpl->Set('ERNEUT_CHECKED',$erneut?'checked':'');
|
||||
|
||||
$this->app->Tpl->Parse('PAGE',"lieferschein_umlagern.tpl");
|
||||
}
|
||||
|
||||
function LieferscheinPaketmarke()
|
||||
{
|
||||
$id = (int)$this->app->Secure->GetGET("id");
|
||||
@@ -537,16 +639,16 @@ class Lieferschein extends GenLieferschein
|
||||
function LieferscheinIconMenu($id,$prefix="")
|
||||
{
|
||||
$status = $this->app->DB->Select("SELECT status FROM lieferschein WHERE id='$id' LIMIT 1");
|
||||
$adresse = $this->app->DB->Select("SELECT adresse FROM lieferschein WHERE id='$id' LIMIT 1");
|
||||
$lieferantenretoure = $this->app->DB->Select("SELECT lieferantenretoure FROM lieferschein WHERE id='$id' LIMIT 1");
|
||||
|
||||
if($status=="angelegt" || $status=="")
|
||||
if($adresse > 0 && ($status=="angelegt" || $status==""))
|
||||
$freigabe = "<option value=\"freigabe\">Lieferschein freigeben</option>";
|
||||
|
||||
|
||||
if(($status=="versendet" || $status=="freigegeben") && $lieferantenretoure=="1")
|
||||
$abschliessen = "<option value=\"abschliessen\">Lieferschein abschliessen</option>";
|
||||
|
||||
|
||||
$checkifrgexists = $this->app->DB->Select("SELECT id FROM rechnung WHERE lieferschein='$id' LIMIT 1");
|
||||
|
||||
$optioncustom = $this->Custom('option');
|
||||
@@ -574,27 +676,34 @@ class Lieferschein extends GenLieferschein
|
||||
|
||||
$mengegeliefert = $mengegeliefert + $this->app->DB->Select("SELECT ifnull(sum(olp.menge),0)+0 FROM objekt_lager_platz olp INNER JOIN lieferschein_position lp ON olp.objekt='lieferschein' AND olp.parameter=lp.id AND lp.lieferschein = '$id'");
|
||||
|
||||
if($mengegeliefert <= 0 && $liefermengelagerartikel > 0 && $schreibschutz=="1" && $status!='angelegt' && $status!='storniert') {
|
||||
$auslagern = '<option value="auslagern">Lieferschein auslagern</option>';
|
||||
}else{
|
||||
//12.07.19 LG lieferscheinlager als kommissionierverfahren zum if hinzugefuegt
|
||||
$projektkommissionierverfahren = $this->app->DB->Select("SELECT kommissionierverfahren FROM projekt where id = '$projekt'");
|
||||
if($projekt && ($projektkommissionierverfahren == "" || $projektkommissionierverfahren == "rechnungsmail" || $projektkommissionierverfahren == "lieferschein" || $projektkommissionierverfahren == "lieferscheinscan" || $projektkommissionierverfahren == "lieferscheinlager" || $projektkommissionierverfahren == "lieferscheinlagerscan"))
|
||||
{
|
||||
if(($bestellmengelagerartikel != $liefermengelagerartikel && $bestellmengelagerartikel != $liefermengelagerartikel2) && $status!='angelegt' && $status!='storniert') {
|
||||
$auslagern = '<option value="auslagern">Lieferschein auslagern</option>';
|
||||
if ($status == "versendet" || $status == "freigegeben") {
|
||||
|
||||
if($mengegeliefert <= 0 && $liefermengelagerartikel > 0 && $schreibschutz=="1" && $status!='angelegt' && $status!='storniert') {
|
||||
$auslagern = '<option value="auslagern">Lieferschein auslagern</option>';
|
||||
}else{
|
||||
//12.07.19 LG lieferscheinlager als kommissionierverfahren zum if hinzugefuegt
|
||||
$projektkommissionierverfahren = $this->app->DB->Select("SELECT kommissionierverfahren FROM projekt where id = '$projekt'");
|
||||
if($projekt && ($projektkommissionierverfahren == "" || $projektkommissionierverfahren == "rechnungsmail" || $projektkommissionierverfahren == "lieferschein" || $projektkommissionierverfahren == "lieferscheinscan" || $projektkommissionierverfahren == "lieferscheinlager" || $projektkommissionierverfahren == "lieferscheinlagerscan"))
|
||||
{
|
||||
if(($bestellmengelagerartikel != $liefermengelagerartikel && $bestellmengelagerartikel != $liefermengelagerartikel2) && $status!='angelegt' && $status!='storniert') {
|
||||
$auslagern = '<option value="auslagern">Lieferschein auslagern</option>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$optionumlagern = "<option value=\"umlagern\">Lieferschein umlagern</option>";
|
||||
$abschicken = "<option value=\"abschicken\">Lieferschein abschicken</option>";
|
||||
|
||||
if($status!="angelegt" && $lieferantenretoure!="1")
|
||||
{
|
||||
$alsrechnung = "<option value=\"rechnung\">als Rechnung weiterführen</option>";
|
||||
if($this->app->erp->RechteVorhanden('lieferschein', 'proformarechnung') && $this->app->erp->ModulVorhanden('proformarechnung'))
|
||||
{
|
||||
$alsrechnung .= "<option value=\"proformarechnung\">als Proformarechnung weiterführen</option>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($status!="angelegt" && $lieferantenretoure!="1")
|
||||
{
|
||||
$alsrechnung = "<option value=\"rechnung\">als Rechnung weiterführen</option>";
|
||||
if($this->app->erp->RechteVorhanden('lieferschein', 'proformarechnung') && $this->app->erp->ModulVorhanden('proformarechnung'))
|
||||
{
|
||||
$alsrechnung .= "<option value=\"proformarechnung\">als Proformarechnung weiterführen</option>";
|
||||
}
|
||||
}
|
||||
|
||||
if($this->app->erp->RechteVorhanden('belegeimport', 'belegcsvexport'))
|
||||
{
|
||||
@@ -629,6 +738,7 @@ class Lieferschein extends GenLieferschein
|
||||
$casehook
|
||||
$hookcase
|
||||
$casebelegeimport
|
||||
case 'umlagern': window.location.href='index.php?module=lieferschein&action=umlagern&id=%value%'; break;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -639,16 +749,17 @@ class Lieferschein extends GenLieferschein
|
||||
<option value=\"storno\">Lieferschein stornieren</option>
|
||||
<option value=\"copy\">Lieferschein kopieren</option>
|
||||
$freigabe
|
||||
<option value=\"abschicken\">Lieferschein abschicken</option>
|
||||
$abschicken
|
||||
$abschliessen
|
||||
$auslagern
|
||||
$optionumlagern
|
||||
$alsrechnung
|
||||
$optionbelegeimport
|
||||
<option value=\"pdf\">PDF öffnen</option>
|
||||
$etiketten
|
||||
$optioncustom
|
||||
$optionhook
|
||||
$hookoption
|
||||
$hookoption
|
||||
</select>
|
||||
|
||||
<a href=\"index.php?module=lieferschein&action=pdf&id=%value%\" title=\"PDF\"><img border=\"0\" src=\"./themes/new/images/pdf.svg\"></a>
|
||||
|
||||
+128
-22
@@ -23,6 +23,7 @@ class Ticket {
|
||||
$this->app->ActionHandler("text_ausgang", "ticket_text_ausgang"); // Output text for iframe display
|
||||
$this->app->ActionHandler("statusfix", "ticket_statusfix"); // Xentral 20 compatibility set all ticket status to latest ticket_nachricht status
|
||||
$this->app->ActionHandler("datefix", "ticket_datefix"); // Xentral 20 compatibility set all ticket dates to latest ticket_nachricht date
|
||||
$this->app->ActionHandler("dateien", "ticket_dateien");
|
||||
$this->app->DefaultActionHandler("list");
|
||||
$this->app->ActionHandlerListen($app);
|
||||
}
|
||||
@@ -186,6 +187,7 @@ class Ticket {
|
||||
|
||||
// Process multi action
|
||||
$auswahl = $this->app->Secure->GetPOST('auswahl');
|
||||
$submit = $this->app->Secure->GetPOST('submit');
|
||||
$selectedIds = [];
|
||||
if(!empty($auswahl)) {
|
||||
foreach($auswahl as $selectedId) {
|
||||
@@ -195,19 +197,71 @@ class Ticket {
|
||||
}
|
||||
}
|
||||
|
||||
$status = $this->app->Secure->GetPOST('status');
|
||||
$warteschlange = $this->app->Secure->GetPOST('warteschlange');
|
||||
switch ($submit) {
|
||||
case 'zuordnen':
|
||||
$status = $this->app->Secure->GetPOST('status');
|
||||
$warteschlange = $this->app->Secure->GetPOST('warteschlange');
|
||||
|
||||
$sql = "UPDATE ticket SET status = '".$status."', zeit = NOW()";
|
||||
if ($warteschlange != '') {
|
||||
$sql .= ", warteschlange = '".explode(" ",$warteschlange)[0]."'";
|
||||
}
|
||||
$sql = "UPDATE ticket SET status = '".$status."', zeit = NOW()";
|
||||
if ($warteschlange != '') {
|
||||
$sql .= ", warteschlange = '".explode(" ",$warteschlange)[0]."'";
|
||||
}
|
||||
|
||||
$sql .= " WHERE id IN (".implode(",",$selectedIds).")";
|
||||
$this->app->DB->Update($sql);
|
||||
$sql .= " WHERE id IN (".implode(",",$selectedIds).")";
|
||||
$this->app->DB->Update($sql);
|
||||
$this->ticket_set_self_assigned_status($selectedIds);
|
||||
break;
|
||||
case 'spam_filter':
|
||||
if($this->app->erp->RechteVorhanden('ticketregeln','create')) {
|
||||
$sql = "UPDATE ticket SET status = 'spam', zeit = NOW()";
|
||||
$sql .= " WHERE id IN (".implode(",",$selectedIds).")";
|
||||
$this->app->DB->Update($sql);
|
||||
|
||||
$this->ticket_set_self_assigned_status($selectedIds);
|
||||
foreach ($selectedIds as $selectedId) {
|
||||
|
||||
// Check existing
|
||||
$sql = "SELECT id FROM ticket_regeln WHERE
|
||||
empfaenger_email = '' AND
|
||||
sender_email = (SELECT mailadresse FROM ticket WHERE id = ".$selectedId." LIMIT 1) AND
|
||||
name = '' AND
|
||||
betreff = '' AND
|
||||
spam = 1 AND
|
||||
aktiv = 1
|
||||
";
|
||||
|
||||
if (!$this->app->DB->Select($sql)) {
|
||||
$sql = "INSERT IGNORE INTO ticket_regeln (
|
||||
empfaenger_email,
|
||||
sender_email,
|
||||
name,
|
||||
betreff,
|
||||
spam,
|
||||
persoenlich,
|
||||
prio,
|
||||
dsgvo,
|
||||
adresse,
|
||||
warteschlange,
|
||||
aktiv
|
||||
) VALUES (
|
||||
'',
|
||||
(SELECT mailadresse FROM ticket WHERE id = ".$selectedId." LIMIT 1),
|
||||
'',
|
||||
'',
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
'',
|
||||
1
|
||||
)";
|
||||
$this->app->DB->Insert($sql);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// List
|
||||
@@ -222,6 +276,10 @@ class Ticket {
|
||||
$this->app->Tpl->Set('STATUS', $this->app->erp->GetStatusTicketSelect('neu'));
|
||||
$this->app->YUI->AutoComplete("warteschlange","warteschlangename");
|
||||
|
||||
if(!$this->app->erp->RechteVorhanden('ticketregeln','create')) {
|
||||
$this->app->Tpl->Set('SPAM_HIDDEN', 'hidden');
|
||||
}
|
||||
|
||||
$this->app->YUI->TableSearch('TAB1', 'ticket_list', "show", "", "", basename(__FILE__), __CLASS__);
|
||||
$this->app->Tpl->Parse('PAGE', "ticket_list.tpl");
|
||||
}
|
||||
@@ -305,6 +363,27 @@ class Ticket {
|
||||
}
|
||||
}
|
||||
|
||||
function add_attachments_header_html($ticket_id, $templatepos) {
|
||||
$file_attachments = $this->app->erp->GetDateiSubjektObjekt('%','ticket_header',$ticket_id);
|
||||
|
||||
if (!empty($file_attachments)) {
|
||||
$this->app->Tpl->Add($templatepos,"<tr><td>{|Anhänge|}:</td><td><div class=\"ticket_attachments\">");
|
||||
foreach ($file_attachments as $file_attachment) {
|
||||
|
||||
$this->app->Tpl->Add($templatepos,
|
||||
"<a href=\"index.php?module=dateien&action=send&id=".$file_attachment.
|
||||
"\">".
|
||||
htmlentities($this->app->erp->GetDateiName($file_attachment)).
|
||||
" (".
|
||||
$this->app->erp->GetDateiSize($file_attachment).
|
||||
")".
|
||||
"</a>".
|
||||
"<br>");
|
||||
}
|
||||
$this->app->Tpl->Add($templatepos,"</div></td></tr>");
|
||||
}
|
||||
}
|
||||
|
||||
function add_messages_tpl($messages, $showdrafts) {
|
||||
|
||||
// Add Messages now
|
||||
@@ -590,6 +669,19 @@ class Ticket {
|
||||
$this->app->Tpl->Parse('PAGE', "ticket_create.tpl");
|
||||
}
|
||||
|
||||
|
||||
function ticket_menu($id) {
|
||||
$this->app->erp->MenuEintrag("index.php?module=ticket&action=edit&id=$id", "Details");
|
||||
$this->app->erp->MenuEintrag("index.php?module=ticket&action=list", "Zurück zur Übersicht");
|
||||
$anzahldateien = $this->app->erp->AnzahlDateien("ticket_header",$id);
|
||||
if ($anzahldateien > 0) {
|
||||
$anzahldateien = " (".$anzahldateien.")";
|
||||
} else {
|
||||
$anzahldateien="";
|
||||
}
|
||||
$this->app->erp->MenuEintrag("index.php?module=ticket&action=dateien&id=$id", "Dateien".$anzahldateien);
|
||||
}
|
||||
|
||||
function ticket_edit() {
|
||||
$id = $this->app->Secure->GetGET('id');
|
||||
|
||||
@@ -597,10 +689,10 @@ class Ticket {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->ticket_menu($id);
|
||||
|
||||
$this->app->Tpl->Set('ID', $id);
|
||||
|
||||
$this->app->erp->MenuEintrag("index.php?module=ticket&action=edit&id=$id", "Details");
|
||||
$this->app->erp->MenuEintrag("index.php?module=ticket&action=list", "Zurück zur Übersicht");
|
||||
$id = $this->app->Secure->GetGET('id');
|
||||
$cmd = $this->app->Secure->GetGET('cmd');
|
||||
$input = $this->GetInput();
|
||||
@@ -721,7 +813,12 @@ class Ticket {
|
||||
$messages = $this->get_messages_of_ticket($id, 1, NULL);
|
||||
$recv_messages = $this->get_messages_of_ticket($id,"n.versendet != 1",NULL);
|
||||
|
||||
$an_alle = false;
|
||||
|
||||
switch ($submit) {
|
||||
case 'neue_email_alle':
|
||||
$an_alle = true;
|
||||
// break omitted
|
||||
case 'neue_email':
|
||||
|
||||
$senderName = $this->app->User->GetName()." (".$this->app->erp->GetFirmaAbsender().")";
|
||||
@@ -743,17 +840,18 @@ class Ticket {
|
||||
$betreff = strip_tags($recv_messages[0]['betreff']); //+ #20230916 XSS
|
||||
}
|
||||
|
||||
$sql = "SELECT GROUP_CONCAT(DISTINCT `value` ORDER BY `value` SEPARATOR ', ') FROM ticket_header th WHERE th.ticket_nachricht = ".$recv_messages[0]['id']." AND `value` <> '".$senderAddress."' AND type='to'";
|
||||
|
||||
$to = $recv_messages[0]['mail'];
|
||||
$to_additional = $this->app->DB->Select($sql);
|
||||
|
||||
if (!empty($to_additional)) {
|
||||
$to .= ", ".$to_additional;
|
||||
}
|
||||
|
||||
$sql = "SELECT GROUP_CONCAT(DISTINCT `value` ORDER BY `value` SEPARATOR ', ') FROM ticket_header th WHERE th.ticket_nachricht = ".$recv_messages[0]['id']." AND `value` <> '".$senderAddress."' AND type='cc'";
|
||||
$cc = $this->app->DB->Select($sql);
|
||||
if ($an_alle) {
|
||||
$sql = "SELECT GROUP_CONCAT(DISTINCT `value` ORDER BY `value` SEPARATOR ', ') FROM ticket_header th WHERE th.ticket_nachricht = ".$recv_messages[0]['id']." AND `value` <> '".$senderAddress."' AND type='to'";
|
||||
$to_additional = $this->app->DB->Select($sql);
|
||||
if (!empty($to_additional)) {
|
||||
$to .= ", ".$to_additional;
|
||||
}
|
||||
$sql = "SELECT GROUP_CONCAT(DISTINCT `value` ORDER BY `value` SEPARATOR ', ') FROM ticket_header th WHERE th.ticket_nachricht = ".$recv_messages[0]['id']." AND `value` <> '".$senderAddress."' AND type='cc'";
|
||||
$cc = $this->app->DB->Select($sql);
|
||||
} else {
|
||||
$cc = null;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$betreff = $ticket_from_db['betreff'];
|
||||
@@ -895,11 +993,19 @@ class Ticket {
|
||||
}
|
||||
|
||||
$this->add_messages_tpl($messages, false);
|
||||
|
||||
$this->add_attachments_header_html($id,'TICKET_ANHANG');
|
||||
$this->app->Tpl->Set('MESSAGE', $msg);
|
||||
$this->app->Tpl->Parse('PAGE', "ticket_edit.tpl");
|
||||
}
|
||||
|
||||
function ticket_dateien()
|
||||
{
|
||||
$id = $this->app->Secure->GetGET("id");
|
||||
$this->ticket_menu($id);
|
||||
$this->app->Tpl->Add('UEBERSCHRIFT'," (Dateien)");
|
||||
$this->app->YUI->DateiUpload('PAGE',"ticket_header",$id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all paramters from html form and save into $input
|
||||
*/
|
||||
|
||||
+56
-14
@@ -30,18 +30,36 @@ class Ticketregeln {
|
||||
switch ($name) {
|
||||
case "ticketregeln_list":
|
||||
$allowed['ticketregeln_list'] = array('list');
|
||||
$heading = array('E-Mail Empfänger', 'E-Mail Verfasser', 'Verfasser Name', 'Betreff', 'Papierkorb', 'Persönlich', 'Prio', 'DSGVO', 'Verantw.', 'Aktiv', 'Menü');
|
||||
$heading = array('E-Mail Empfänger', 'E-Mail Verfasser', 'Verfasser Name', 'Betreff', 'Papierkorb', 'Persönlich', 'Prio', 'DSGVO','Adresse', 'Verantw.', 'Aktiv', 'Menü');
|
||||
$width = array('10%'); // Fill out manually later
|
||||
|
||||
$findcols = array('t.empfaenger_email', 't.sender_email', 't.name', 't.betreff', 't.spam', 't.persoenlich', 't.prio', 't.dsgvo', 't.warteschlange', 't.aktiv');
|
||||
$searchsql = array('t.empfaenger_email', 't.sender_email', 't.name', 't.betreff', 't.spam', 't.persoenlich', 't.prio', 't.dsgvo', 't.warteschlange', 't.aktiv');
|
||||
$findcols = array('t.empfaenger_email', 't.sender_email', 't.name', 't.betreff', 't.spam', 't.persoenlich', 't.prio', 't.dsgvo', 'a.name', 't.warteschlange', 't.aktiv');
|
||||
$searchsql = array('t.empfaenger_email', 't.sender_email', 't.name', 't.betreff', 't.spam', 't.persoenlich', 't.prio', 't.dsgvo', 'a.name', 't.warteschlange', 't.aktiv');
|
||||
|
||||
$defaultorder = 1;
|
||||
$defaultorderdesc = 0;
|
||||
|
||||
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" . "<a href=\"index.php?module=ticketregeln&action=edit&id=%value%\"><img src=\"./themes/{$app->Conf->WFconf['defaulttheme']}/images/edit.svg\" border=\"0\"></a> <a href=\"#\" onclick=DeleteDialog(\"index.php?module=ticketregeln&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 t.id, t.empfaenger_email, t.sender_email, t.name, t.betreff, t.spam, t.persoenlich, t.prio, t.dsgvo, w.warteschlange, t.aktiv, t.id FROM ticket_regeln t LEFT JOIN warteschlangen w ON t.warteschlange = w.label";
|
||||
$sql = "SELECT SQL_CALC_FOUND_ROWS t.id,
|
||||
t.empfaenger_email,
|
||||
t.sender_email,
|
||||
t.name,
|
||||
t.betreff,
|
||||
t.spam,
|
||||
t.persoenlich,
|
||||
t.prio,
|
||||
t.dsgvo,
|
||||
a.name,
|
||||
w.warteschlange,
|
||||
t.aktiv,
|
||||
t.id
|
||||
FROM
|
||||
ticket_regeln t
|
||||
LEFT JOIN warteschlangen w ON t.warteschlange = w.label
|
||||
LEFT JOIN adresse a ON t.adresse = a.id
|
||||
|
||||
";
|
||||
|
||||
$where = "1";
|
||||
$count = "SELECT count(DISTINCT id) FROM ticket_regeln WHERE $where";
|
||||
@@ -111,6 +129,7 @@ class Ticketregeln {
|
||||
n.mail,
|
||||
t.quelle,
|
||||
t.warteschlange,
|
||||
t.adresse,
|
||||
".$this->app->erp->FormatDateTimeShort('n.zeit','zeit').",
|
||||
".$this->app->erp->FormatDateTimeShort('n.zeitausgang','zeitausgang').",
|
||||
n.versendet,
|
||||
@@ -130,6 +149,7 @@ class Ticketregeln {
|
||||
$input['sender_email'] = $last_message['mail'];
|
||||
$input['name'] = $last_message['verfasser'];
|
||||
$input['betreff'] = $last_message['betreff'];
|
||||
$input['adresse'] = $last_message['adresse'];
|
||||
$input['warteschlange'] = $last_message['warteschlange'];
|
||||
|
||||
$from_ticket = true;
|
||||
@@ -139,6 +159,7 @@ class Ticketregeln {
|
||||
'sender_email' => $last_message['mail'],
|
||||
'name' => $last_message['verfasser'],
|
||||
'betreff' => $last_message['betreff'],
|
||||
'adresse' => $last_message['adresse'],
|
||||
'warteschlange' => $last_message['warteschlange'],
|
||||
'aktiv' => 1
|
||||
);
|
||||
@@ -156,6 +177,7 @@ class Ticketregeln {
|
||||
|
||||
// Add checks here
|
||||
$input['warteschlange'] = explode(" ",$input['warteschlange'])[0]; // Just the label
|
||||
$input['adresse'] = $this->app->erp->ReplaceAdresse(true,$input['adresse'],true); // Parameters: Target db?, value, from form?
|
||||
|
||||
$columns = "id, ";
|
||||
$values = "$id, ";
|
||||
@@ -193,7 +215,22 @@ class Ticketregeln {
|
||||
|
||||
|
||||
// Load values again from database
|
||||
$result = $this->app->DB->SelectArr("SELECT t.id, t.empfaenger_email, t.sender_email, t.name, t.betreff, t.spam, t.persoenlich, t.prio, t.dsgvo, CONCAT(w.label,' ',w.warteschlange) as warteschlange, t.aktiv, t.id FROM ticket_regeln t LEFT JOIN warteschlangen w on t.warteschlange = w.label WHERE t.id=$id")[0];
|
||||
$result = $this->app->DB->SelectArr("SELECT t.id,
|
||||
t.empfaenger_email,
|
||||
t.sender_email,
|
||||
t.name,
|
||||
t.betreff,
|
||||
t.spam,
|
||||
t.persoenlich,
|
||||
t.prio,
|
||||
t.dsgvo,
|
||||
t.adresse,
|
||||
CONCAT(w.label,' ',w.warteschlange) as warteschlange,
|
||||
t.aktiv,
|
||||
t.id
|
||||
FROM ticket_regeln t
|
||||
LEFT JOIN warteschlangen w on t.warteschlange = w.label
|
||||
WHERE t.id=$id")[0];
|
||||
}
|
||||
|
||||
|
||||
@@ -206,12 +243,16 @@ class Ticketregeln {
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
$this->app->Tpl->Set('PRIO', $result['prio']==1?"checked":"");
|
||||
$this->app->Tpl->Set('SPAM', $result['spam']==1?"checked":"");
|
||||
$this->app->Tpl->Set('PERSOENLICH', $result['persoenlich']==1?"checked":"");
|
||||
$this->app->Tpl->Set('DSGVO', $result['dsgvo']==1?"checked":"");
|
||||
$this->app->Tpl->Set('AKTIV', $result['aktiv']==1?"checked":"");
|
||||
|
||||
$this->app->Tpl->Set('ADRESSE', $this->app->erp->ReplaceAdresse(false,$result['adresse'],false));
|
||||
$this->app->YUI->AutoComplete("adresse","adresse");
|
||||
$this->app->YUI->AutoComplete("warteschlange","warteschlangename");
|
||||
|
||||
// $this->SetInput($input);
|
||||
@@ -226,15 +267,16 @@ class Ticketregeln {
|
||||
//$input['EMAIL'] = $this->app->Secure->GetPOST('email');
|
||||
|
||||
$input['empfaenger_email'] = $this->app->Secure->GetPOST('empfaenger_email');
|
||||
$input['sender_email'] = $this->app->Secure->GetPOST('sender_email');
|
||||
$input['name'] = $this->app->Secure->GetPOST('name');
|
||||
$input['betreff'] = $this->app->Secure->GetPOST('betreff');
|
||||
$input['spam'] = $this->app->Secure->GetPOST('spam');
|
||||
$input['persoenlich'] = $this->app->Secure->GetPOST('persoenlich');
|
||||
$input['prio'] = $this->app->Secure->GetPOST('prio');
|
||||
$input['dsgvo'] = $this->app->Secure->GetPOST('dsgvo');
|
||||
$input['warteschlange'] = $this->app->Secure->GetPOST('warteschlange');
|
||||
$input['aktiv'] = $this->app->Secure->GetPOST('aktiv');
|
||||
$input['sender_email'] = $this->app->Secure->GetPOST('sender_email');
|
||||
$input['name'] = $this->app->Secure->GetPOST('name');
|
||||
$input['betreff'] = $this->app->Secure->GetPOST('betreff');
|
||||
$input['spam'] = $this->app->Secure->GetPOST('spam');
|
||||
$input['persoenlich'] = $this->app->Secure->GetPOST('persoenlich');
|
||||
$input['prio'] = $this->app->Secure->GetPOST('prio');
|
||||
$input['dsgvo'] = $this->app->Secure->GetPOST('dsgvo');
|
||||
$input['adresse'] = $this->app->Secure->GetPOST('adresse');
|
||||
$input['warteschlange'] = $this->app->Secure->GetPOST('warteschlange');
|
||||
$input['aktiv'] = $this->app->Secure->GetPOST('aktiv');
|
||||
|
||||
|
||||
return $input;
|
||||
|
||||
+48
-6
@@ -41,29 +41,71 @@ class upgrade {
|
||||
$this->app->Tpl->Set('UPGRADE_VISIBLE', "hidden");
|
||||
$this->app->Tpl->Set('UPGRADE_DB_VISIBLE', "hidden");
|
||||
|
||||
//function upgrade_main(string $directory,bool $verbose, bool $check_git, bool $do_git, bool $export_db, bool $check_db, bool $do_db, bool $force, bool $connection, bool $origin) {
|
||||
|
||||
$directory = dirname(getcwd())."/upgrade";
|
||||
|
||||
switch ($submit) {
|
||||
case 'check_upgrade':
|
||||
$this->app->Tpl->Set('UPGRADE_VISIBLE', "");
|
||||
unlink($logfile);
|
||||
upgrade_main($directory,$verbose,true,false,false,true,false,$force,false,false);
|
||||
upgrade_main( directory: $directory,
|
||||
verbose: $verbose,
|
||||
check_git: true,
|
||||
do_git: false,
|
||||
export_db: false,
|
||||
check_db: true,
|
||||
strict_db: false,
|
||||
do_db: false,
|
||||
force: $force,
|
||||
connection: false,
|
||||
origin: false
|
||||
);
|
||||
break;
|
||||
case 'do_upgrade':
|
||||
unlink($logfile);
|
||||
upgrade_main($directory,$verbose,true,true,false,true,true,$force,false,false);
|
||||
upgrade_main( directory: $directory,
|
||||
verbose: $verbose,
|
||||
check_git: true,
|
||||
do_git: true,
|
||||
export_db: false,
|
||||
check_db: true,
|
||||
strict_db: false,
|
||||
do_db: true,
|
||||
force: $force,
|
||||
connection: false,
|
||||
origin: false
|
||||
);
|
||||
break;
|
||||
case 'check_db':
|
||||
$this->app->Tpl->Set('UPGRADE_DB_VISIBLE', "");
|
||||
unlink($logfile);
|
||||
upgrade_main($directory,$db_verbose,false,false,false,true,false,$force,false,false);
|
||||
upgrade_main( directory: $directory,
|
||||
verbose: $db_verbose,
|
||||
check_git: false,
|
||||
do_git: false,
|
||||
export_db: false,
|
||||
check_db: true,
|
||||
strict_db: false,
|
||||
do_db: false,
|
||||
force: $force,
|
||||
connection: false,
|
||||
origin: false
|
||||
);
|
||||
break;
|
||||
case 'do_db_upgrade':
|
||||
$this->app->Tpl->Set('UPGRADE_DB_VISIBLE', "");
|
||||
unlink($logfile);
|
||||
upgrade_main($directory,$db_verbose,false,false,false,true,true,$force,false,false);
|
||||
upgrade_main( directory: $directory,
|
||||
verbose: $db_verbose,
|
||||
check_git: false,
|
||||
do_git: false,
|
||||
export_db: false,
|
||||
check_db: true,
|
||||
strict_db: false,
|
||||
do_db: true,
|
||||
force: $force,
|
||||
connection: false,
|
||||
origin: false
|
||||
);
|
||||
break;
|
||||
case 'refresh':
|
||||
break;
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<div class="copyright">
|
||||
© [YEAR] by OpenXE-org & Xentral ERP Software GmbH.<br>
|
||||
OpenXE is free open source software under AGPL/EGPL license, based on <a href="https://xentral.com" target="_blank">Xentral®</a>.<br>
|
||||
[XENTRALVERSION]
|
||||
<a href="https://github.com/OpenXE-org/OpenXE/commits/master">[XENTRALVERSION]</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,212 +1,212 @@
|
||||
<?php
|
||||
/*
|
||||
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||
*
|
||||
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
|
||||
*
|
||||
* This file is licensed under the Embedded Projects General Public License *Version 3.1.
|
||||
*
|
||||
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
|
||||
* to obtain the text of the corresponding license version.
|
||||
*
|
||||
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||
/*
|
||||
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||
*
|
||||
* Xentral (c) Xentral ERP Sorftware GmbH, Fuggerstrasse 11, D-86150 Augsburg, * Germany 2019
|
||||
*
|
||||
* This file is licensed under the Embedded Projects General Public License *Version 3.1.
|
||||
*
|
||||
* You should have received a copy of this license from your vendor and/or *along with this file; If not, please visit www.wawision.de/Lizenzhinweis
|
||||
* to obtain the text of the corresponding license version.
|
||||
*
|
||||
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||
*/
|
||||
?>
|
||||
<?php
|
||||
|
||||
class WidgetGenlieferschein
|
||||
{
|
||||
|
||||
private $app; //application object
|
||||
public $form; //store form object
|
||||
protected $parsetarget; //target for content
|
||||
|
||||
public function __construct($app,$parsetarget)
|
||||
{
|
||||
$this->app = $app;
|
||||
$this->parsetarget = $parsetarget;
|
||||
$this->Form();
|
||||
}
|
||||
|
||||
public function lieferscheinDelete()
|
||||
{
|
||||
|
||||
$this->form->Execute("lieferschein","delete");
|
||||
|
||||
$this->lieferscheinList();
|
||||
}
|
||||
|
||||
function Edit()
|
||||
{
|
||||
$this->form->Edit();
|
||||
}
|
||||
|
||||
function Copy()
|
||||
{
|
||||
$this->form->Copy();
|
||||
}
|
||||
|
||||
public function Create()
|
||||
{
|
||||
$this->form->Create();
|
||||
}
|
||||
|
||||
public function Search()
|
||||
{
|
||||
$this->app->Tpl->Set($this->parsetarget,"SUUUCHEEE");
|
||||
}
|
||||
|
||||
public function Summary()
|
||||
{
|
||||
$this->app->Tpl->Set($this->parsetarget,"grosse Tabelle");
|
||||
}
|
||||
|
||||
function Form()
|
||||
{
|
||||
$this->form = $this->app->FormHandler->CreateNew("lieferschein");
|
||||
$this->form->UseTable("lieferschein");
|
||||
$this->form->UseTemplate("lieferschein.tpl",$this->parsetarget);
|
||||
|
||||
$field = new HTMLInput("lieferid","hidden","","","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ansprechpartnerid","hidden","","","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("adresse","text","","20","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("lieferant","text","","20","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("lieferantenretoure","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("projekt","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("auftragid","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ihrebestellnummer","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("internebezeichnung","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("datum","text","","","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("standardlager","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("kommissionskonsignationslager","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("schreibschutz","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("abweichendebezeichnung","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLSelect("typ",0,"typ","","","0");
|
||||
$field->AddOption('Firma','firma');
|
||||
$field->AddOption('Herr','herr');
|
||||
$field->AddOption('Frau','frau');
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("name","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
$this->form->AddMandatory("name","notempty","Pflichfeld!","MSGNAME");
|
||||
|
||||
$field = new HTMLInput("titel","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ansprechpartner","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("abteilung","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("unterabteilung","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("adresszusatz","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("strasse","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("plz","text","","5","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ort","text","","19","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("telefon","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("telefax","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("email","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("anschreiben","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLTextarea("freitext",5,110,"","","","","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLTextarea("bodyzusatz",5,110,"","","","","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLSelect("versandart",0,"versandart","","","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("lieferbedingung","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("vertrieb","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("bearbeiter","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("keinerechnung","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("ohne_briefpapier","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("ohne_artikeltext","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("gln","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLTextarea("internebemerkung",2,110,"","","","","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ustid","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLSelect("ust_befreit",0,"ust_befreit","","","0");
|
||||
$field->AddOption('Inland','0');
|
||||
$field->AddOption('EU-Lieferung','1');
|
||||
$field->AddOption('Export','2');
|
||||
$field->AddOption('Steuerfrei Inland','3');
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("sprache","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("kostenstelle","text","","15","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
<?php
|
||||
|
||||
class WidgetGenlieferschein
|
||||
{
|
||||
|
||||
private $app; //application object
|
||||
public $form; //store form object
|
||||
protected $parsetarget; //target for content
|
||||
|
||||
public function __construct($app,$parsetarget)
|
||||
{
|
||||
$this->app = $app;
|
||||
$this->parsetarget = $parsetarget;
|
||||
$this->Form();
|
||||
}
|
||||
|
||||
public function lieferscheinDelete()
|
||||
{
|
||||
|
||||
$this->form->Execute("lieferschein","delete");
|
||||
|
||||
$this->lieferscheinList();
|
||||
}
|
||||
|
||||
function Edit()
|
||||
{
|
||||
$this->form->Edit();
|
||||
}
|
||||
|
||||
function Copy()
|
||||
{
|
||||
$this->form->Copy();
|
||||
}
|
||||
|
||||
public function Create()
|
||||
{
|
||||
$this->form->Create();
|
||||
}
|
||||
|
||||
public function Search()
|
||||
{
|
||||
$this->app->Tpl->Set($this->parsetarget,"SUUUCHEEE");
|
||||
}
|
||||
|
||||
public function Summary()
|
||||
{
|
||||
$this->app->Tpl->Set($this->parsetarget,"grosse Tabelle");
|
||||
}
|
||||
|
||||
function Form()
|
||||
{
|
||||
$this->form = $this->app->FormHandler->CreateNew("lieferschein");
|
||||
$this->form->UseTable("lieferschein");
|
||||
$this->form->UseTemplate("lieferschein.tpl",$this->parsetarget);
|
||||
|
||||
$field = new HTMLInput("lieferid","hidden","","","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ansprechpartnerid","hidden","","","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("adresse","text","","20","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("lieferant","text","","20","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("lieferantenretoure","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("projekt","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("auftragid","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ihrebestellnummer","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("internebezeichnung","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("datum","text","","","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("standardlager","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("kommissionskonsignationslager","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("schreibschutz","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("abweichendebezeichnung","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLSelect("typ",0,"typ","","","0");
|
||||
$field->AddOption('Firma','firma');
|
||||
$field->AddOption('Herr','herr');
|
||||
$field->AddOption('Frau','frau');
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("name","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
$this->form->AddMandatory("name","notempty","Pflichfeld!","MSGNAME");
|
||||
|
||||
$field = new HTMLInput("titel","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ansprechpartner","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("abteilung","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("unterabteilung","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("adresszusatz","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("strasse","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("plz","text","","5","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ort","text","","19","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("telefon","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("telefax","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("email","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("anschreiben","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLTextarea("freitext",5,110,"","","","","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLTextarea("bodyzusatz",5,110,"","","","","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLSelect("versandart",0,"versandart","","","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("lieferbedingung","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("vertrieb","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("bearbeiter","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("keinerechnung","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("ohne_briefpapier","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLCheckbox("ohne_artikeltext","","","1","0","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("gln","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLTextarea("internebemerkung",2,110,"","","","","0");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("ustid","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLSelect("ust_befreit",0,"ust_befreit","","","0");
|
||||
$field->AddOption('Inland','0');
|
||||
$field->AddOption('EU-Lieferung','1');
|
||||
$field->AddOption('Export','2');
|
||||
$field->AddOption('Steuerfrei Inland','3');
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("sprache","text","","30","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
$field = new HTMLInput("kostenstelle","text","","15","","","","","","","","0","","");
|
||||
$this->form->NewField($field);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -75,7 +75,7 @@ $(document).ready(function(){
|
||||
<tr><td>{|Ihre Bestellnummer|}:</td><td>[IHREBESTELLNUMMER][MSGIHREBESTELLNUMMER]</td></tr>
|
||||
<tr><td>{|Interne Bezeichnung|}:</td><td>[INTERNEBEZEICHNUNG][MSGINTERNEBEZEICHNUNG]</td></tr>
|
||||
<tr><td>{|Datum|}:</td><td>[DATUM][MSGDATUM]</td></tr>
|
||||
<tr><td>[VORWUNSCHLAGER]Bevorzugtes Lager:[NACHWUNSCHLAGER]<br></td><td>[VORWUNSCHLAGER][STANDARDLAGER][MSGSTANDARDLAGER][NACHWUNSCHLAGER]</td></tr>
|
||||
<tr><td>{|Standardlagerplatz|}:</td><td>[STANDARDLAGER][MSGSTANDARDLAGER]</td></tr>
|
||||
[VORKOMMISSIONSKONSIGNATIONSLAGER]<tr><td>[KOMMISSIONIERLAGER]:<br></td><td>[KOMMISSIONSKONSIGNATIONSLAGER][MSGKOMMISSIONSKONSIGNATIONSLAGER]</td></tr>[NACHKOMMISSIONSKONSIGNATIONSLAGER]
|
||||
<tr><td>Schreibschutz:</td><td>[SCHREIBSCHUTZ][MSGSCHREIBSCHUTZ] </td></tr>
|
||||
<tr><td>[ABWEICHENDEBEZEICHNUNGBESCHRIFTUNG]:</td><td>[ABWEICHENDEBEZEICHNUNG][MSGABWEICHENDEBEZEICHNUNG] </td></tr>
|
||||
|
||||
@@ -15,6 +15,7 @@ class WidgetLieferschein extends WidgetGenlieferschein
|
||||
function ExtendsForm()
|
||||
{
|
||||
$id = $this->app->Secure->GetGET("id");
|
||||
|
||||
if($this->app->Secure->GetPOST("speichern")!="")
|
||||
{
|
||||
$deliveryNote = $this->app->DB->SelectRow("SELECT `projekt`, `schreibschutz` FROM `lieferschein` WHERE `id` = {$id}");
|
||||
@@ -36,6 +37,7 @@ class WidgetLieferschein extends WidgetGenlieferschein
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($this->app->Secure->GetGET("action")=="edit")
|
||||
{
|
||||
$this->app->Tpl->Add('FURTHERTABS','<li><a href="index.php?module=lieferschein&action=minidetail&id=[ID]&frame=true#tabs-4">Protokoll</a></li>');
|
||||
@@ -49,7 +51,7 @@ class WidgetLieferschein extends WidgetGenlieferschein
|
||||
$this->app->YUI->AutoComplete("projekt","projektname",1);
|
||||
$this->app->YUI->AutoComplete("auftragid","auftrag",1);
|
||||
$this->app->YUI->AutoComplete("aktion","aktionscode",1);
|
||||
$this->app->YUI->AutoComplete("standardlager","lager");
|
||||
$this->app->YUI->AutoComplete("standardlager","lagerplatz");
|
||||
|
||||
$this->app->YUI->AutoComplete("lieferbedingung","lieferbedingungen");
|
||||
|
||||
@@ -62,7 +64,7 @@ class WidgetLieferschein extends WidgetGenlieferschein
|
||||
$this->form->ReplaceFunction("adresse",$this,"ReplaceKunde");
|
||||
$this->form->ReplaceFunction("lieferant",$this,"ReplaceLieferant");
|
||||
$this->form->ReplaceFunction("auftragid",$this,"ReplaceAuftrag");
|
||||
$this->form->ReplaceFunction("standardlager",$this,"ReplaceLager");
|
||||
$this->form->ReplaceFunction("standardlager",$this,"ReplaceLagerPlatz");
|
||||
|
||||
if($this->app->erp->ModulVorhanden('kommissionskonsignationslager'))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user