Author SHA1 Message Date
OpenXE 3c8588562b V.1.11 2023-12-07 16:39:29 +01:00
OpenXE 3e2b5f6ee8 added github link to commits history 2023-12-07 16:29:42 +01:00
OpenXE 7ffb9a86a5 upgrade added strict DB mode 2023-12-07 14:32:02 +01:00
OpenXE 5816dedbc0 lieferschein minor bugfixes 2023-12-05 15:22:11 +01:00
OpenXE 12f5ca8211 logistik ein-auslagern menu change to listview 2023-12-05 11:52:01 +01:00
OpenXE 8b9969176c lieferschein umlagern repeat 2023-12-05 11:47:15 +01:00
OpenXE a6f742ccc0 lieferschein bugfix standardlager 2023-12-05 11:32:53 +01:00
OpenXE 2129627a5b lager lieferschein umlagern 2023-12-02 15:21:11 +01:00
OpenXE 22e411a6cc ticketregel bugfix warteschlange 0 2023-11-25 13:13:39 +01:00
OpenXE d7db78489c ticket add spam filter from list 2023-11-25 12:58:16 +01:00
OpenXE 088ad4555c ticketregeln added adresse 2023-11-25 11:24:23 +01:00
OpenXE 2cb1f91a43 ticket system attachments on ticket header 2023-11-19 14:07:16 +01:00
OpenXE dff342276e ticket added "mail to all" 2023-11-19 12:22:44 +01:00
OpenXE c76cb43bac Merge remote-tracking branch 'github/master' 2023-11-14 11:39:21 +01:00
OpenXE 72684cb092 auftrag deckungsbeitrag write einkaufspreis into auftrag_position 2023-11-14 11:38:14 +01:00
OpenXE-ERP 7624e01de4 Merge pull request #108 from OpenXE-org/OpenXE-ERP-patch-1
Update SERVER_INSTALL.md
2023-11-13 15:34:13 +01:00
24 changed files with 837 additions and 357 deletions
@@ -285,6 +285,7 @@ class TicketImportHelper
tr.dsgvo AS `is_gdpr_relevant`, tr.dsgvo AS `is_gdpr_relevant`,
tr.prio AS `priority`, tr.prio AS `priority`,
tr.persoenlich AS `is_private`, tr.persoenlich AS `is_private`,
tr.adresse,
tr.warteschlange AS `queue_id` tr.warteschlange AS `queue_id`
FROM `ticket_regeln` AS `tr` FROM `ticket_regeln` AS `tr`
WHERE WHERE
@@ -464,7 +465,7 @@ class TicketImportHelper
$status = 'neu'; $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]); $this->logger->debug('ticket rule sql',['sql' => $sql]);
+15 -18
View File
@@ -28,6 +28,15 @@ class YUI {
$this->app = $app; $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 = ''){ function PasswordCheck($passwordFieldID, $repassFieldID, $accountNameFieldID, $submitButtonID, $extra = ''){
$this->app->Tpl->Add('JQUERYREADY', " $this->app->Tpl->Add('JQUERYREADY', "
function checkPassword(){ function checkPassword(){
@@ -4074,6 +4083,7 @@ url:strUrl, success:function(html){strReturn = html;}, async:false
$allowed['wiki'] = array('dateien'); $allowed['wiki'] = array('dateien');
$allowed['geschaeftsbrief_vorlagen'] = array('dateien'); $allowed['geschaeftsbrief_vorlagen'] = array('dateien');
$allowed['kasse'] = array('dateien'); $allowed['kasse'] = array('dateien');
$allowed['ticket'] = array('dateien');
$id = $this->app->Secure->GetGET("id"); $id = $this->app->Secure->GetGET("id");
$sid = $this->app->Secure->GetGET("sid"); $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); 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)) { if(!preg_match('/[A-Za-z_]/', $objekt)) {
$objekt=''; $objekt='';
@@ -14067,11 +14072,7 @@ source: "index.php?module=ajax&action=filter&filtername=' . $filter . $extendurl
$sid = (int)$this->app->Secure->GetPOST("sid"); $sid = (int)$this->app->Secure->GetPOST("sid");
$sort = $this->app->DB->Select("SELECT sort FROM datei_stichwoerter WHERE id = '$sid' LIMIT 1"); $sort = $this->app->DB->Select("SELECT sort FROM datei_stichwoerter WHERE id = '$sid' LIMIT 1");
$id = (int)$this->app->Secure->GetGET("id"); $id = (int)$this->app->Secure->GetGET("id");
switch($module) $objekt = $this->dateien_module_objekt_map($module);
{
case "adresse": $objekt="adressen"; break;
default: $objekt=$module;
}
if(!preg_match('/[A-Za-z_]/', $objekt))$objekt=""; if(!preg_match('/[A-Za-z_]/', $objekt))$objekt="";
$parameter=$id; $parameter=$id;
@@ -14100,11 +14101,7 @@ source: "index.php?module=ajax&action=filter&filtername=' . $filter . $extendurl
$sid = (int)$this->app->Secure->GetPOST("sid"); $sid = (int)$this->app->Secure->GetPOST("sid");
$sort = $this->app->DB->Select("SELECT sort FROM datei_stichwoerter WHERE id = '$sid' LIMIT 1"); $sort = $this->app->DB->Select("SELECT sort FROM datei_stichwoerter WHERE id = '$sid' LIMIT 1");
$id = (int)$this->app->Secure->GetGET("id"); $id = (int)$this->app->Secure->GetGET("id");
switch($module) $objekt = $this->dateien_module_objekt_map($module);
{
case "adresse": $objekt="adressen"; break;
default: $objekt=$module;
}
if(!preg_match('/[A-Za-z_]/', $objekt))$objekt=""; if(!preg_match('/[A-Za-z_]/', $objekt))$objekt="";
$parameter=$id; $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&auml;hlt!</div>'); $this->app->Tpl->Add('MESSAGE','<div class="error">Keine Dateien ausgew&auml;hlt!</div>');
}else{ }else{
$objekt = $this->app->Secure->GetGET('module'); $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'); $parameter = (int)$this->app->Secure->GetGET('id');
$alledateien = $this->app->DB->SelectArr("SELECT v.datei, v.id FROM $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 "); 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&auml;hlt!</div>'); $this->app->Tpl->Add('MESSAGE','<div class="error">Keine Dateien ausgew&auml;hlt!</div>');
}else{ }else{
$objekt = $this->app->Secure->GetGET('module'); $objekt = $this->app->Secure->GetGET('module');
if($objekt == 'adresse')$objekt = 'adressen'; $objekt = $this->dateien_module_objekt_map($objekt);
$typmodul = $this->app->Secure->GetPOST('typ'); $typmodul = $this->app->Secure->GetPOST('typ');
if($objekt == 'dateien' && $typmodul == 'geschaeftsbrief_vorlagen'){ if($objekt == 'dateien' && $typmodul == 'geschaeftsbrief_vorlagen'){
$objekt = $typmodul; $objekt = $typmodul;
+22
View File
@@ -57180,6 +57180,17 @@
"Extra": "", "Extra": "",
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
},
{
"Field": "umgelagert",
"Type": "int(1)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": "0",
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
} }
], ],
"keys": [ "keys": [
@@ -104771,6 +104782,17 @@
"Privileges": "select,insert,update,references", "Privileges": "select,insert,update,references",
"Comment": "" "Comment": ""
}, },
{
"Field": "adresse",
"Type": "int(11)",
"Collation": null,
"Null": "NO",
"Key": "",
"Default": "0",
"Extra": "",
"Privileges": "select,insert,update,references",
"Comment": ""
},
{ {
"Field": "warteschlange", "Field": "warteschlange",
"Type": "text", "Type": "text",
+20 -3
View File
@@ -112,6 +112,12 @@ if (php_sapi_name() == "cli") {
$check_db = true; $check_db = true;
} else { } else {
} }
if (in_array('-strict', $argv)) {
$strict_db = true;
} else {
$strict_db = false;
}
if (in_array('-do', $argv)) { if (in_array('-do', $argv)) {
if (!$check_git && !$check_db) { if (!$check_git && !$check_db) {
@@ -127,7 +133,17 @@ if (php_sapi_name() == "cli") {
} }
if ($check_git || $check_db || $do_git || $do_db) { 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 { } else {
info(); info();
} }
@@ -139,7 +155,7 @@ if (php_sapi_name() == "cli") {
} }
// -------------------------------- END // -------------------------------- 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); $mainfolder = dirname($directory);
$datafolder = $directory."/data"; $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"); echo_out("--------------- Calculating database upgrade for '$schema@$host'... ---------------\n");
$upgrade_sql = array(); $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)) { if (!empty($result)) {
abort(count($result)." errors.\n"); abort(count($result)." errors.\n");
@@ -482,6 +498,7 @@ function info() {
echo_out("\t-f: force override of existing files\n"); 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-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-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("\t-clean: (not yet implemented) create the needed SQL to remove items from the database not in the JSON\n");
echo_out("\n"); echo_out("\n");
} }
+6 -4
View File
@@ -21,7 +21,7 @@ function mustal_compare_table_array(array $nominal, string $nominal_name, array
Compare two database structures Compare two database structures
Returns a structured array containing information on all the differences. 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. Generate the SQL needed to upgrade the database to match the definition, based on a comparison.
Data structure in Array and JSON 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 // 11 Table type upgrade not supported
// 12 Upgrade type 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(); $result = array();
$upgrade_sql = 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); $upgrade_sql = array_unique($upgrade_sql);
if (count($upgrade_sql) > 0) { if (count($upgrade_sql) > 0) {
array_unshift($upgrade_sql,"SET SQL_MODE='ALLOW_INVALID_DATES';");
array_unshift($upgrade_sql,"SET SQL_MODE='ALLOW_INVALID_DATES';","SET SESSION innodb_strict_mode=OFF;"); if (!$strict) {
array_unshift($upgrade_sql,"SET SESSION innodb_strict_mode=OFF;");
}
} }
return($result); return($result);
+1 -1
View File
@@ -1,7 +1,7 @@
<?php <?php
$version="OSS"; $version="OSS";
$version_revision="1.10"; $version_revision="1.11";
$githash = file_get_contents("../githash.txt"); $githash = file_get_contents("../githash.txt");
if (!empty($githash)) { if (!empty($githash)) {
$version_revision .= " (".substr($githash,0,8).")"; $version_revision .= " (".substr($githash,0,8).")";
+3 -3
View File
@@ -7157,7 +7157,7 @@ title: 'Abschicken',
$navarray['menu']['admin'][$menu]['sec'][] = array('Lagermindestmengen','lagermindestmengen','list'); $navarray['menu']['admin'][$menu]['sec'][] = array('Lagermindestmengen','lagermindestmengen','list');
$navarray['menu']['admin'][$menu]['sec'][] = array('Artikelkontingente','artikelkontingente','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]['sec'][] = array('Zwischenlager','lager','buchenzwischenlager');
$navarray['menu']['admin'][++$menu]['first'] = array('Buchhaltung','rechnung','list'); $navarray['menu']['admin'][++$menu]['first'] = array('Buchhaltung','rechnung','list');
@@ -12496,7 +12496,7 @@ function SendPaypalFromAuftrag($auftrag, $test = false)
} }
$this->AuftragExplodieren($auftrag); $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"); $auftragarr = $this->app->DB->SelectRow("SELECT projekt,internet FROM auftrag WHERE id = '$auftrag' LIMIT 1");
if(empty($auftragarr)) if(empty($auftragarr))
{ {
@@ -29350,7 +29350,7 @@ function Firmendaten($field,$projekt="")
{ {
foreach($ohneeks as $ek) foreach($ohneeks as $ek)
{ {
if($ek['ekwaehrung']=='') if($ek['einkaufspreis'] == 0)
{ {
$originalwaehrung = $ek['waehrung']; $originalwaehrung = $ek['waehrung'];
$originalpreis = $ek['preis']; $originalpreis = $ek['preis'];
+12 -15
View File
@@ -350,9 +350,9 @@ class Ajax {
$id = $this->app->Secure->GetPOST('id'); $id = $this->app->Secure->GetPOST('id');
$objekt = $this->app->Secure->GetPOST('typ'); $objekt = $this->app->Secure->GetPOST('typ');
$parameter = $this->app->Secure->GetPOST('parameter'); $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( $data = $this->app->DB->SelectRow(
"SELECT d.*, s.subjekt "SELECT d.*, s.subjekt
@@ -363,12 +363,6 @@ class Ajax {
LIMIT 1" LIMIT 1"
); );
$module = strtolower($objekt);
if($module === 'adressen'){
$module = 'adresse';
}
$typen = $this->app->erp->getDateiTypen($module); $typen = $this->app->erp->getDateiTypen($module);
$found = false; $found = false;
foreach($typen as $typ) { foreach($typen as $typ) {
@@ -431,10 +425,10 @@ class Ajax {
$titel = $this->app->Secure->GetPOST('titel'); $titel = $this->app->Secure->GetPOST('titel');
$beschreibung = $this->app->Secure->GetPOST('beschreibung'); $beschreibung = $this->app->Secure->GetPOST('beschreibung');
$subjekt = $this->app->Secure->GetPOST('subjekt'); $subjekt = $this->app->Secure->GetPOST('subjekt');
if($objekt == 'adresse')
{ $module = strtolower($objekt);
$objekt = 'Adressen'; $objekt = $this->app->YUI->dateien_module_objekt_map($module);
}
$ersteller = $this->app->DB->real_escape_string($this->app->User->GetName()); $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"); $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) if($datei)
@@ -654,6 +648,9 @@ class Ajax {
$cmd = trim($this->app->Secure->GetGET('cmd')); $cmd = trim($this->app->Secure->GetGET('cmd'));
$id = (int)$this->app->Secure->GetGET('id'); $id = (int)$this->app->Secure->GetGET('id');
$module = strtolower($cmd);
$cmd = $this->app->YUI->dateien_module_objekt_map($cmd);
if(!empty($cmd) && $id if(!empty($cmd) && $id
&& (!in_array($cmd, $cmds) || (in_array($cmd, $cmds) && $this->app->erp->RechteVorhanden($cmd,'dateien')))) { && (!in_array($cmd, $cmds) || (in_array($cmd, $cmds) && $this->app->erp->RechteVorhanden($cmd,'dateien')))) {
$datei = $this->app->DB->SelectRow( $datei = $this->app->DB->SelectRow(
@@ -661,7 +658,7 @@ class Ajax {
"SELECT dv.id, ds.parameter, dv.dateiname "SELECT dv.id, ds.parameter, dv.dateiname
FROM datei_version AS dv FROM datei_version AS dv
INNER JOIN datei_stichwoerter ds ON ds.datei = dv.datei 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 ORDER BY dv.datei DESC, dv.version DESC
LIMIT 1", LIMIT 1",
$id, $cmd $id, $cmd
@@ -694,7 +691,7 @@ class Ajax {
$projekt = $this->app->DB->Select( $projekt = $this->app->DB->Select(
sprintf( sprintf(
'SELECT `projekt` FROM `%s` WHERE `id` = %d LIMIT 1', 'SELECT `projekt` FROM `%s` WHERE `id` = %d LIMIT 1',
$cmd, $datei[0]['parameter'] $module, $datei[0]['parameter']
) )
); );
if(!$this->app->erp->UserProjektRecht($projekt)) { if(!$this->app->erp->UserProjektRecht($projekt)) {
+1 -1
View File
@@ -2014,7 +2014,7 @@ class Auftrag extends GenAuftrag
$db_gesamt = 0; $db_gesamt = 0;
foreach ($positionen as $position) { foreach ($positionen as $position) {
if (empty($position['einkaufspreis'])) { 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']); $kosten = ($position['einkaufspreis']*$position['menge']);
$db_gesamt += $position['umsatz_netto_gesamt']-$kosten; $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>
+2
View File
@@ -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>{|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>{|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> <tr><td>{|Letzte Aktion|}:</td><td>[ZEIT]</td></tr>
[TICKET_ANHANG]
</table> </table>
</fieldset> </fieldset>
</div> </div>
@@ -49,6 +50,7 @@
<legend>{|Aktionen|}</legend> <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="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" 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> <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> </table>
</fieldset> </fieldset>
+13 -1
View File
@@ -49,7 +49,19 @@
<tr><td>{|Status|}:</td><td><select name="status">[STATUS]</select></td></tr> <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>{|Verantwortlich|}:</td><td><input type="text" name="warteschlange" id="warteschlange" value="[WARTESCHLANGE]" size="20"></td></tr>
<tr> <tr>
<td><input type="checkbox" value="1" id="autoalle" />&nbsp;alle markieren&nbsp;</td><td><input type="submit" class="btnBlue" name="ausfuehren" value="{|Zuordnen|}" /></td> <td>
<input type="checkbox" value="1" id="autoalle" />&nbsp;alle markieren&nbsp;
</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> </tr>
</table> </table>
+2
View File
@@ -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>{|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>{|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>{|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>{|Papierkorb|}:</td><td><input type="checkbox" name="spam" value="1" [SPAM] size="40"></td></tr>
<tr><td>{|Pers&ouml;nlich|}:</td><td><input type="checkbox" name="persoenlich" value="1" [PERSOENLICH] size="40"></td></tr> <tr><td>{|Pers&ouml;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>{|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>{|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>{|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> <tr><td>{|Aktiv|}:</td><td><input type="checkbox" name="aktiv" value="1" [AKTIV] size="40"></td></tr>
+9 -4
View File
@@ -1,5 +1,10 @@
<div id="tabs-1"> <div id="tabs">
[MESSAGE] <ul>
[TAB1] <li><a href="#tabs-1">[TABTEXT1]</a></li>
[TAB1NEXT] </ul>
<div id="tabs-1">
[MESSAGE]
[TAB1]
[TAB1NEXT]
</div>
</div> </div>
+61 -29
View File
@@ -174,31 +174,7 @@ class Lager extends GenLager {
// fester filter // fester filter
$where = " l.geloescht=0 AND l.id!=0 AND l.lager='$id' "; $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' "; $count = "SELECT COUNT(id) FROM lager_platz WHERE geloescht=0 AND lager='$id' ";
break; break;
case 'lagerletztebewegungen':
$allowed['lager'] = array('letztebewegungen');
// headings
// headings
$heading = array('Datum', 'Lager', 'Menge', 'Nummer', 'Artikel', 'Richtung', 'Referenz', 'Bearbeiter', 'Projekt', 'Men&uuml;');
$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;
case 'lagertabelle': case 'lagertabelle':
$allowed['lager'] = array('list'); $allowed['lager'] = array('list');
$defaultCountry = $app->erp->Firmendaten('land'); $defaultCountry = $app->erp->Firmendaten('land');
@@ -832,7 +808,23 @@ class Lager extends GenLager {
$datecols = array(6); $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"); $lager = $app->User->GetParameter("lager_bewegungalle_lager");
@@ -1107,6 +1099,7 @@ class Lager extends GenLager {
$this->app->ActionHandler("buchenzwischenlagerdelete", "LagerBuchenZwischenlagerDelete"); $this->app->ActionHandler("buchenzwischenlagerdelete", "LagerBuchenZwischenlagerDelete");
$this->app->ActionHandler("bucheneinlagern", "LagerBuchenEinlagern"); $this->app->ActionHandler("bucheneinlagern", "LagerBuchenEinlagern");
$this->app->ActionHandler("buchenauslagern", "LagerBuchenAuslagern"); $this->app->ActionHandler("buchenauslagern", "LagerBuchenAuslagern");
$this->app->ActionHandler("umlagernlieferschein", "LagerBuchenUmlagernLieferschein");
$this->app->ActionHandler("artikelentfernenreserviert", "LagerArtikelEntfernenReserviert"); $this->app->ActionHandler("artikelentfernenreserviert", "LagerArtikelEntfernenReserviert");
$this->app->ActionHandler("letztebewegungen", "LagerLetzteBewegungen"); $this->app->ActionHandler("letztebewegungen", "LagerLetzteBewegungen");
$this->app->ActionHandler("schnelleinlagern", "LagerSchnellEinlagern"); $this->app->ActionHandler("schnelleinlagern", "LagerSchnellEinlagern");
@@ -3156,12 +3149,50 @@ class Lager extends GenLager {
$this->app->Tpl->Parse('PAGE', 'tabview.tpl'); $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() function LagerLetzteBewegungen()
{ {
$this->LagerBuchenMenu(); $this->LagerBuchenMenu();
$this->app->YUI->TableSearch('TAB1', 'lager_allebewegungenlist','show','','',basename(__FILE__), __CLASS__);
$this->app->YUI->TableSearch('TAB1', 'lagerletztebewegungen','show','','',basename(__FILE__), __CLASS__);
$this->app->Tpl->Parse('PAGE', 'tabview.tpl'); $this->app->Tpl->Parse('PAGE', 'tabview.tpl');
} }
@@ -3171,6 +3202,7 @@ class Lager extends GenLager {
$this->app->erp->Headlines('Lager'); $this->app->erp->Headlines('Lager');
if($this->app->erp->Version()!=='stock') { 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=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=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=bucheneinlagern&id=$id", 'Einlagern');
$this->app->erp->MenuEintrag("index.php?module=lager&action=buchenzwischenlager&id=$id", 'Zwischenlager'); $this->app->erp->MenuEintrag("index.php?module=lager&action=buchenzwischenlager&id=$id", 'Zwischenlager');
+133 -22
View File
@@ -194,6 +194,7 @@ class Lieferschein extends GenLieferschein
$this->app->ActionHandler("abschicken","LieferscheinAbschicken"); $this->app->ActionHandler("abschicken","LieferscheinAbschicken");
$this->app->ActionHandler("abschliessen","LieferscheinAbschliessen"); $this->app->ActionHandler("abschliessen","LieferscheinAbschliessen");
$this->app->ActionHandler("auslagern","LieferscheinAuslagern"); $this->app->ActionHandler("auslagern","LieferscheinAuslagern");
$this->app->ActionHandler("umlagern","LieferscheinUmlagern");
$this->app->ActionHandler("pdf","LieferscheinPDF"); $this->app->ActionHandler("pdf","LieferscheinPDF");
$this->app->ActionHandler("inlinepdf","LieferscheinInlinePDF"); $this->app->ActionHandler("inlinepdf","LieferscheinInlinePDF");
$this->app->ActionHandler("protokoll","LieferscheinProtokoll"); $this->app->ActionHandler("protokoll","LieferscheinProtokoll");
@@ -453,6 +454,107 @@ class Lieferschein extends GenLieferschein
exit; 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() function LieferscheinPaketmarke()
{ {
$id = (int)$this->app->Secure->GetGET("id"); $id = (int)$this->app->Secure->GetGET("id");
@@ -537,16 +639,16 @@ class Lieferschein extends GenLieferschein
function LieferscheinIconMenu($id,$prefix="") function LieferscheinIconMenu($id,$prefix="")
{ {
$status = $this->app->DB->Select("SELECT status FROM lieferschein WHERE id='$id' LIMIT 1"); $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"); $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>"; $freigabe = "<option value=\"freigabe\">Lieferschein freigeben</option>";
if(($status=="versendet" || $status=="freigegeben") && $lieferantenretoure=="1") if(($status=="versendet" || $status=="freigegeben") && $lieferantenretoure=="1")
$abschliessen = "<option value=\"abschliessen\">Lieferschein abschliessen</option>"; $abschliessen = "<option value=\"abschliessen\">Lieferschein abschliessen</option>";
$checkifrgexists = $this->app->DB->Select("SELECT id FROM rechnung WHERE lieferschein='$id' LIMIT 1"); $checkifrgexists = $this->app->DB->Select("SELECT id FROM rechnung WHERE lieferschein='$id' LIMIT 1");
$optioncustom = $this->Custom('option'); $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'"); $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') { if ($status == "versendet" || $status == "freigegeben") {
$auslagern = '<option value="auslagern">Lieferschein auslagern</option>';
}else{ if($mengegeliefert <= 0 && $liefermengelagerartikel > 0 && $schreibschutz=="1" && $status!='angelegt' && $status!='storniert') {
//12.07.19 LG lieferscheinlager als kommissionierverfahren zum if hinzugefuegt $auslagern = '<option value="auslagern">Lieferschein auslagern</option>';
$projektkommissionierverfahren = $this->app->DB->Select("SELECT kommissionierverfahren FROM projekt where id = '$projekt'"); }else{
if($projekt && ($projektkommissionierverfahren == "" || $projektkommissionierverfahren == "rechnungsmail" || $projektkommissionierverfahren == "lieferschein" || $projektkommissionierverfahren == "lieferscheinscan" || $projektkommissionierverfahren == "lieferscheinlager" || $projektkommissionierverfahren == "lieferscheinlagerscan")) //12.07.19 LG lieferscheinlager als kommissionierverfahren zum if hinzugefuegt
{ $projektkommissionierverfahren = $this->app->DB->Select("SELECT kommissionierverfahren FROM projekt where id = '$projekt'");
if(($bestellmengelagerartikel != $liefermengelagerartikel && $bestellmengelagerartikel != $liefermengelagerartikel2) && $status!='angelegt' && $status!='storniert') { if($projekt && ($projektkommissionierverfahren == "" || $projektkommissionierverfahren == "rechnungsmail" || $projektkommissionierverfahren == "lieferschein" || $projektkommissionierverfahren == "lieferscheinscan" || $projektkommissionierverfahren == "lieferscheinlager" || $projektkommissionierverfahren == "lieferscheinlagerscan"))
$auslagern = '<option value="auslagern">Lieferschein auslagern</option>'; {
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&uuml;hren</option>";
if($this->app->erp->RechteVorhanden('lieferschein', 'proformarechnung') && $this->app->erp->ModulVorhanden('proformarechnung'))
{
$alsrechnung .= "<option value=\"proformarechnung\">als Proformarechnung weiterf&uuml;hren</option>";
}
} }
}
} }
if($status!="angelegt" && $lieferantenretoure!="1")
{
$alsrechnung = "<option value=\"rechnung\">als Rechnung weiterf&uuml;hren</option>";
if($this->app->erp->RechteVorhanden('lieferschein', 'proformarechnung') && $this->app->erp->ModulVorhanden('proformarechnung'))
{
$alsrechnung .= "<option value=\"proformarechnung\">als Proformarechnung weiterf&uuml;hren</option>";
}
}
if($this->app->erp->RechteVorhanden('belegeimport', 'belegcsvexport')) if($this->app->erp->RechteVorhanden('belegeimport', 'belegcsvexport'))
{ {
@@ -629,6 +738,7 @@ class Lieferschein extends GenLieferschein
$casehook $casehook
$hookcase $hookcase
$casebelegeimport $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=\"storno\">Lieferschein stornieren</option>
<option value=\"copy\">Lieferschein kopieren</option> <option value=\"copy\">Lieferschein kopieren</option>
$freigabe $freigabe
<option value=\"abschicken\">Lieferschein abschicken</option> $abschicken
$abschliessen $abschliessen
$auslagern $auslagern
$optionumlagern
$alsrechnung $alsrechnung
$optionbelegeimport $optionbelegeimport
<option value=\"pdf\">PDF &ouml;ffnen</option> <option value=\"pdf\">PDF &ouml;ffnen</option>
$etiketten $etiketten
$optioncustom $optioncustom
$optionhook $optionhook
$hookoption $hookoption
</select>&nbsp; </select>&nbsp;
<a href=\"index.php?module=lieferschein&action=pdf&id=%value%\" title=\"PDF\"><img border=\"0\" src=\"./themes/new/images/pdf.svg\"></a> <a href=\"index.php?module=lieferschein&action=pdf&id=%value%\" title=\"PDF\"><img border=\"0\" src=\"./themes/new/images/pdf.svg\"></a>
+128 -22
View File
@@ -23,6 +23,7 @@ class Ticket {
$this->app->ActionHandler("text_ausgang", "ticket_text_ausgang"); // Output text for iframe display $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("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("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->DefaultActionHandler("list");
$this->app->ActionHandlerListen($app); $this->app->ActionHandlerListen($app);
} }
@@ -186,6 +187,7 @@ class Ticket {
// Process multi action // Process multi action
$auswahl = $this->app->Secure->GetPOST('auswahl'); $auswahl = $this->app->Secure->GetPOST('auswahl');
$submit = $this->app->Secure->GetPOST('submit');
$selectedIds = []; $selectedIds = [];
if(!empty($auswahl)) { if(!empty($auswahl)) {
foreach($auswahl as $selectedId) { foreach($auswahl as $selectedId) {
@@ -195,19 +197,71 @@ class Ticket {
} }
} }
$status = $this->app->Secure->GetPOST('status'); switch ($submit) {
$warteschlange = $this->app->Secure->GetPOST('warteschlange'); case 'zuordnen':
$status = $this->app->Secure->GetPOST('status');
$warteschlange = $this->app->Secure->GetPOST('warteschlange');
$sql = "UPDATE ticket SET status = '".$status."', zeit = NOW()"; $sql = "UPDATE ticket SET status = '".$status."', zeit = NOW()";
if ($warteschlange != '') { if ($warteschlange != '') {
$sql .= ", warteschlange = '".explode(" ",$warteschlange)[0]."'"; $sql .= ", warteschlange = '".explode(" ",$warteschlange)[0]."'";
} }
$sql .= " WHERE id IN (".implode(",",$selectedIds).")"; $sql .= " WHERE id IN (".implode(",",$selectedIds).")";
$this->app->DB->Update($sql); $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 // List
@@ -222,6 +276,10 @@ class Ticket {
$this->app->Tpl->Set('STATUS', $this->app->erp->GetStatusTicketSelect('neu')); $this->app->Tpl->Set('STATUS', $this->app->erp->GetStatusTicketSelect('neu'));
$this->app->YUI->AutoComplete("warteschlange","warteschlangename"); $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->YUI->TableSearch('TAB1', 'ticket_list', "show", "", "", basename(__FILE__), __CLASS__);
$this->app->Tpl->Parse('PAGE', "ticket_list.tpl"); $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&auml;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) { function add_messages_tpl($messages, $showdrafts) {
// Add Messages now // Add Messages now
@@ -590,6 +669,19 @@ class Ticket {
$this->app->Tpl->Parse('PAGE', "ticket_create.tpl"); $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&uuml;ck zur &Uuml;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() { function ticket_edit() {
$id = $this->app->Secure->GetGET('id'); $id = $this->app->Secure->GetGET('id');
@@ -597,10 +689,10 @@ class Ticket {
return; return;
} }
$this->ticket_menu($id);
$this->app->Tpl->Set('ID', $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&uuml;ck zur &Uuml;bersicht");
$id = $this->app->Secure->GetGET('id'); $id = $this->app->Secure->GetGET('id');
$cmd = $this->app->Secure->GetGET('cmd'); $cmd = $this->app->Secure->GetGET('cmd');
$input = $this->GetInput(); $input = $this->GetInput();
@@ -721,7 +813,12 @@ class Ticket {
$messages = $this->get_messages_of_ticket($id, 1, NULL); $messages = $this->get_messages_of_ticket($id, 1, NULL);
$recv_messages = $this->get_messages_of_ticket($id,"n.versendet != 1",NULL); $recv_messages = $this->get_messages_of_ticket($id,"n.versendet != 1",NULL);
$an_alle = false;
switch ($submit) { switch ($submit) {
case 'neue_email_alle':
$an_alle = true;
// break omitted
case 'neue_email': case 'neue_email':
$senderName = $this->app->User->GetName()." (".$this->app->erp->GetFirmaAbsender().")"; $senderName = $this->app->User->GetName()." (".$this->app->erp->GetFirmaAbsender().")";
@@ -743,17 +840,18 @@ class Ticket {
$betreff = strip_tags($recv_messages[0]['betreff']); //+ #20230916 XSS $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 = $recv_messages[0]['mail'];
$to_additional = $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'";
if (!empty($to_additional)) { $to_additional = $this->app->DB->Select($sql);
$to .= ", ".$to_additional; 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'"; $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); $cc = $this->app->DB->Select($sql);
} else {
$cc = null;
}
} }
else { else {
$betreff = $ticket_from_db['betreff']; $betreff = $ticket_from_db['betreff'];
@@ -895,11 +993,19 @@ class Ticket {
} }
$this->add_messages_tpl($messages, false); $this->add_messages_tpl($messages, false);
$this->add_attachments_header_html($id,'TICKET_ANHANG');
$this->app->Tpl->Set('MESSAGE', $msg); $this->app->Tpl->Set('MESSAGE', $msg);
$this->app->Tpl->Parse('PAGE', "ticket_edit.tpl"); $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 * Get all paramters from html form and save into $input
*/ */
+56 -14
View File
@@ -30,18 +30,36 @@ class Ticketregeln {
switch ($name) { switch ($name) {
case "ticketregeln_list": case "ticketregeln_list":
$allowed['ticketregeln_list'] = array('list'); $allowed['ticketregeln_list'] = array('list');
$heading = array('E-Mail Empf&auml;nger', 'E-Mail Verfasser', 'Verfasser Name', 'Betreff', 'Papierkorb', 'Pers&ouml;nlich', 'Prio', 'DSGVO', 'Verantw.', 'Aktiv', 'Men&uuml;'); $heading = array('E-Mail Empf&auml;nger', 'E-Mail Verfasser', 'Verfasser Name', 'Betreff', 'Papierkorb', 'Pers&ouml;nlich', 'Prio', 'DSGVO','Adresse', 'Verantw.', 'Aktiv', 'Men&uuml;');
$width = array('10%'); // Fill out manually later $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'); $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', '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; $defaultorder = 1;
$defaultorderdesc = 0; $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>&nbsp;<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>"; $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>&nbsp;<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"; $where = "1";
$count = "SELECT count(DISTINCT id) FROM ticket_regeln WHERE $where"; $count = "SELECT count(DISTINCT id) FROM ticket_regeln WHERE $where";
@@ -111,6 +129,7 @@ class Ticketregeln {
n.mail, n.mail,
t.quelle, t.quelle,
t.warteschlange, t.warteschlange,
t.adresse,
".$this->app->erp->FormatDateTimeShort('n.zeit','zeit').", ".$this->app->erp->FormatDateTimeShort('n.zeit','zeit').",
".$this->app->erp->FormatDateTimeShort('n.zeitausgang','zeitausgang').", ".$this->app->erp->FormatDateTimeShort('n.zeitausgang','zeitausgang').",
n.versendet, n.versendet,
@@ -130,6 +149,7 @@ class Ticketregeln {
$input['sender_email'] = $last_message['mail']; $input['sender_email'] = $last_message['mail'];
$input['name'] = $last_message['verfasser']; $input['name'] = $last_message['verfasser'];
$input['betreff'] = $last_message['betreff']; $input['betreff'] = $last_message['betreff'];
$input['adresse'] = $last_message['adresse'];
$input['warteschlange'] = $last_message['warteschlange']; $input['warteschlange'] = $last_message['warteschlange'];
$from_ticket = true; $from_ticket = true;
@@ -139,6 +159,7 @@ class Ticketregeln {
'sender_email' => $last_message['mail'], 'sender_email' => $last_message['mail'],
'name' => $last_message['verfasser'], 'name' => $last_message['verfasser'],
'betreff' => $last_message['betreff'], 'betreff' => $last_message['betreff'],
'adresse' => $last_message['adresse'],
'warteschlange' => $last_message['warteschlange'], 'warteschlange' => $last_message['warteschlange'],
'aktiv' => 1 'aktiv' => 1
); );
@@ -156,6 +177,7 @@ class Ticketregeln {
// Add checks here // Add checks here
$input['warteschlange'] = explode(" ",$input['warteschlange'])[0]; // Just the label $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, "; $columns = "id, ";
$values = "$id, "; $values = "$id, ";
@@ -193,7 +215,22 @@ class Ticketregeln {
// Load values again from database // 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('PRIO', $result['prio']==1?"checked":"");
$this->app->Tpl->Set('SPAM', $result['spam']==1?"checked":""); $this->app->Tpl->Set('SPAM', $result['spam']==1?"checked":"");
$this->app->Tpl->Set('PERSOENLICH', $result['persoenlich']==1?"checked":""); $this->app->Tpl->Set('PERSOENLICH', $result['persoenlich']==1?"checked":"");
$this->app->Tpl->Set('DSGVO', $result['dsgvo']==1?"checked":""); $this->app->Tpl->Set('DSGVO', $result['dsgvo']==1?"checked":"");
$this->app->Tpl->Set('AKTIV', $result['aktiv']==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->app->YUI->AutoComplete("warteschlange","warteschlangename");
// $this->SetInput($input); // $this->SetInput($input);
@@ -226,15 +267,16 @@ class Ticketregeln {
//$input['EMAIL'] = $this->app->Secure->GetPOST('email'); //$input['EMAIL'] = $this->app->Secure->GetPOST('email');
$input['empfaenger_email'] = $this->app->Secure->GetPOST('empfaenger_email'); $input['empfaenger_email'] = $this->app->Secure->GetPOST('empfaenger_email');
$input['sender_email'] = $this->app->Secure->GetPOST('sender_email'); $input['sender_email'] = $this->app->Secure->GetPOST('sender_email');
$input['name'] = $this->app->Secure->GetPOST('name'); $input['name'] = $this->app->Secure->GetPOST('name');
$input['betreff'] = $this->app->Secure->GetPOST('betreff'); $input['betreff'] = $this->app->Secure->GetPOST('betreff');
$input['spam'] = $this->app->Secure->GetPOST('spam'); $input['spam'] = $this->app->Secure->GetPOST('spam');
$input['persoenlich'] = $this->app->Secure->GetPOST('persoenlich'); $input['persoenlich'] = $this->app->Secure->GetPOST('persoenlich');
$input['prio'] = $this->app->Secure->GetPOST('prio'); $input['prio'] = $this->app->Secure->GetPOST('prio');
$input['dsgvo'] = $this->app->Secure->GetPOST('dsgvo'); $input['dsgvo'] = $this->app->Secure->GetPOST('dsgvo');
$input['warteschlange'] = $this->app->Secure->GetPOST('warteschlange'); $input['adresse'] = $this->app->Secure->GetPOST('adresse');
$input['aktiv'] = $this->app->Secure->GetPOST('aktiv'); $input['warteschlange'] = $this->app->Secure->GetPOST('warteschlange');
$input['aktiv'] = $this->app->Secure->GetPOST('aktiv');
return $input; return $input;
+48 -6
View File
@@ -41,29 +41,71 @@ class upgrade {
$this->app->Tpl->Set('UPGRADE_VISIBLE', "hidden"); $this->app->Tpl->Set('UPGRADE_VISIBLE', "hidden");
$this->app->Tpl->Set('UPGRADE_DB_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"; $directory = dirname(getcwd())."/upgrade";
switch ($submit) { switch ($submit) {
case 'check_upgrade': case 'check_upgrade':
$this->app->Tpl->Set('UPGRADE_VISIBLE', ""); $this->app->Tpl->Set('UPGRADE_VISIBLE', "");
unlink($logfile); 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; break;
case 'do_upgrade': case 'do_upgrade':
unlink($logfile); 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; break;
case 'check_db': case 'check_db':
$this->app->Tpl->Set('UPGRADE_DB_VISIBLE', ""); $this->app->Tpl->Set('UPGRADE_DB_VISIBLE', "");
unlink($logfile); 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; break;
case 'do_db_upgrade': case 'do_db_upgrade':
$this->app->Tpl->Set('UPGRADE_DB_VISIBLE', ""); $this->app->Tpl->Set('UPGRADE_DB_VISIBLE', "");
unlink($logfile); 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; break;
case 'refresh': case 'refresh':
break; break;
+1 -1
View File
@@ -40,7 +40,7 @@
<div class="copyright"> <div class="copyright">
&copy; [YEAR] by OpenXE-org & Xentral&nbsp;ERP&nbsp;Software&nbsp;GmbH.<br> &copy; [YEAR] by OpenXE-org & Xentral&nbsp;ERP&nbsp;Software&nbsp;GmbH.<br>
OpenXE is free open source software under AGPL/EGPL license, based on <a href="https://xentral.com" target="_blank">Xentral®</a>.<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>
</div> </div>
+209 -209
View File
@@ -1,212 +1,212 @@
<?php <?php
/* /*
**** 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 * 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. * 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 * 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. * to obtain the text of the corresponding license version.
* *
**** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE **** **** END OF COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
*/ */
?> ?>
<?php <?php
class WidgetGenlieferschein class WidgetGenlieferschein
{ {
private $app; //application object private $app; //application object
public $form; //store form object public $form; //store form object
protected $parsetarget; //target for content protected $parsetarget; //target for content
public function __construct($app,$parsetarget) public function __construct($app,$parsetarget)
{ {
$this->app = $app; $this->app = $app;
$this->parsetarget = $parsetarget; $this->parsetarget = $parsetarget;
$this->Form(); $this->Form();
} }
public function lieferscheinDelete() public function lieferscheinDelete()
{ {
$this->form->Execute("lieferschein","delete"); $this->form->Execute("lieferschein","delete");
$this->lieferscheinList(); $this->lieferscheinList();
} }
function Edit() function Edit()
{ {
$this->form->Edit(); $this->form->Edit();
} }
function Copy() function Copy()
{ {
$this->form->Copy(); $this->form->Copy();
} }
public function Create() public function Create()
{ {
$this->form->Create(); $this->form->Create();
} }
public function Search() public function Search()
{ {
$this->app->Tpl->Set($this->parsetarget,"SUUUCHEEE"); $this->app->Tpl->Set($this->parsetarget,"SUUUCHEEE");
} }
public function Summary() public function Summary()
{ {
$this->app->Tpl->Set($this->parsetarget,"grosse Tabelle"); $this->app->Tpl->Set($this->parsetarget,"grosse Tabelle");
} }
function Form() function Form()
{ {
$this->form = $this->app->FormHandler->CreateNew("lieferschein"); $this->form = $this->app->FormHandler->CreateNew("lieferschein");
$this->form->UseTable("lieferschein"); $this->form->UseTable("lieferschein");
$this->form->UseTemplate("lieferschein.tpl",$this->parsetarget); $this->form->UseTemplate("lieferschein.tpl",$this->parsetarget);
$field = new HTMLInput("lieferid","hidden","","","","","","","","","","0","",""); $field = new HTMLInput("lieferid","hidden","","","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("ansprechpartnerid","hidden","","","","","","","","","","0","",""); $field = new HTMLInput("ansprechpartnerid","hidden","","","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("adresse","text","","20","","","","","","","","0","",""); $field = new HTMLInput("adresse","text","","20","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("lieferant","text","","20","","","","","","","","0","",""); $field = new HTMLInput("lieferant","text","","20","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLCheckbox("lieferantenretoure","","","1","0","0"); $field = new HTMLCheckbox("lieferantenretoure","","","1","0","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("projekt","text","","30","","","","","","","","0","",""); $field = new HTMLInput("projekt","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("auftragid","text","","30","","","","","","","","0","",""); $field = new HTMLInput("auftragid","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("ihrebestellnummer","text","","30","","","","","","","","0","",""); $field = new HTMLInput("ihrebestellnummer","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("internebezeichnung","text","","30","","","","","","","","0","",""); $field = new HTMLInput("internebezeichnung","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("datum","text","","","","","","","","","","0","",""); $field = new HTMLInput("datum","text","","","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("standardlager","text","","30","","","","","","","","0","",""); $field = new HTMLInput("standardlager","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("kommissionskonsignationslager","text","","30","","","","","","","","0","",""); $field = new HTMLInput("kommissionskonsignationslager","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLCheckbox("schreibschutz","","","1","0","0"); $field = new HTMLCheckbox("schreibschutz","","","1","0","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLCheckbox("abweichendebezeichnung","","","1","0","0"); $field = new HTMLCheckbox("abweichendebezeichnung","","","1","0","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLSelect("typ",0,"typ","","","0"); $field = new HTMLSelect("typ",0,"typ","","","0");
$field->AddOption('Firma','firma'); $field->AddOption('Firma','firma');
$field->AddOption('Herr','herr'); $field->AddOption('Herr','herr');
$field->AddOption('Frau','frau'); $field->AddOption('Frau','frau');
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("name","text","","30","","","","","","","","0","",""); $field = new HTMLInput("name","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$this->form->AddMandatory("name","notempty","Pflichfeld!","MSGNAME"); $this->form->AddMandatory("name","notempty","Pflichfeld!","MSGNAME");
$field = new HTMLInput("titel","text","","30","","","","","","","","0","",""); $field = new HTMLInput("titel","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("ansprechpartner","text","","30","","","","","","","","0","",""); $field = new HTMLInput("ansprechpartner","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("abteilung","text","","30","","","","","","","","0","",""); $field = new HTMLInput("abteilung","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("unterabteilung","text","","30","","","","","","","","0","",""); $field = new HTMLInput("unterabteilung","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("adresszusatz","text","","30","","","","","","","","0","",""); $field = new HTMLInput("adresszusatz","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("strasse","text","","30","","","","","","","","0","",""); $field = new HTMLInput("strasse","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("plz","text","","5","","","","","","","","0","",""); $field = new HTMLInput("plz","text","","5","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("ort","text","","19","","","","","","","","0","",""); $field = new HTMLInput("ort","text","","19","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("telefon","text","","30","","","","","","","","0","",""); $field = new HTMLInput("telefon","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("telefax","text","","30","","","","","","","","0","",""); $field = new HTMLInput("telefax","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("email","text","","30","","","","","","","","0","",""); $field = new HTMLInput("email","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("anschreiben","text","","30","","","","","","","","0","",""); $field = new HTMLInput("anschreiben","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLTextarea("freitext",5,110,"","","","","0"); $field = new HTMLTextarea("freitext",5,110,"","","","","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLTextarea("bodyzusatz",5,110,"","","","","0"); $field = new HTMLTextarea("bodyzusatz",5,110,"","","","","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLSelect("versandart",0,"versandart","","","0"); $field = new HTMLSelect("versandart",0,"versandart","","","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("lieferbedingung","text","","30","","","","","","","","0","",""); $field = new HTMLInput("lieferbedingung","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("vertrieb","text","","30","","","","","","","","0","",""); $field = new HTMLInput("vertrieb","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("bearbeiter","text","","30","","","","","","","","0","",""); $field = new HTMLInput("bearbeiter","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLCheckbox("keinerechnung","","","1","0","0"); $field = new HTMLCheckbox("keinerechnung","","","1","0","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLCheckbox("ohne_briefpapier","","","1","0","0"); $field = new HTMLCheckbox("ohne_briefpapier","","","1","0","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLCheckbox("ohne_artikeltext","","","1","0","0"); $field = new HTMLCheckbox("ohne_artikeltext","","","1","0","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("gln","text","","30","","","","","","","","0","",""); $field = new HTMLInput("gln","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLTextarea("internebemerkung",2,110,"","","","","0"); $field = new HTMLTextarea("internebemerkung",2,110,"","","","","0");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("ustid","text","","30","","","","","","","","0","",""); $field = new HTMLInput("ustid","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLSelect("ust_befreit",0,"ust_befreit","","","0"); $field = new HTMLSelect("ust_befreit",0,"ust_befreit","","","0");
$field->AddOption('Inland','0'); $field->AddOption('Inland','0');
$field->AddOption('EU-Lieferung','1'); $field->AddOption('EU-Lieferung','1');
$field->AddOption('Export','2'); $field->AddOption('Export','2');
$field->AddOption('Steuerfrei Inland','3'); $field->AddOption('Steuerfrei Inland','3');
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("sprache","text","","30","","","","","","","","0","",""); $field = new HTMLInput("sprache","text","","30","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
$field = new HTMLInput("kostenstelle","text","","15","","","","","","","","0","",""); $field = new HTMLInput("kostenstelle","text","","15","","","","","","","","0","","");
$this->form->NewField($field); $this->form->NewField($field);
} }
} }
?> ?>
+1 -1
View File
@@ -75,7 +75,7 @@ $(document).ready(function(){
<tr><td>{|Ihre Bestellnummer|}:</td><td>[IHREBESTELLNUMMER][MSGIHREBESTELLNUMMER]</td></tr> <tr><td>{|Ihre Bestellnummer|}:</td><td>[IHREBESTELLNUMMER][MSGIHREBESTELLNUMMER]</td></tr>
<tr><td>{|Interne Bezeichnung|}:</td><td>[INTERNEBEZEICHNUNG][MSGINTERNEBEZEICHNUNG]</td></tr> <tr><td>{|Interne Bezeichnung|}:</td><td>[INTERNEBEZEICHNUNG][MSGINTERNEBEZEICHNUNG]</td></tr>
<tr><td>{|Datum|}:</td><td>[DATUM][MSGDATUM]</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] [VORKOMMISSIONSKONSIGNATIONSLAGER]<tr><td>[KOMMISSIONIERLAGER]:<br></td><td>[KOMMISSIONSKONSIGNATIONSLAGER][MSGKOMMISSIONSKONSIGNATIONSLAGER]</td></tr>[NACHKOMMISSIONSKONSIGNATIONSLAGER]
<tr><td>Schreibschutz:</td><td>[SCHREIBSCHUTZ][MSGSCHREIBSCHUTZ]&nbsp;</td></tr> <tr><td>Schreibschutz:</td><td>[SCHREIBSCHUTZ][MSGSCHREIBSCHUTZ]&nbsp;</td></tr>
<tr><td>[ABWEICHENDEBEZEICHNUNGBESCHRIFTUNG]:</td><td>[ABWEICHENDEBEZEICHNUNG][MSGABWEICHENDEBEZEICHNUNG]&nbsp;</td></tr> <tr><td>[ABWEICHENDEBEZEICHNUNGBESCHRIFTUNG]:</td><td>[ABWEICHENDEBEZEICHNUNG][MSGABWEICHENDEBEZEICHNUNG]&nbsp;</td></tr>
+4 -2
View File
@@ -15,6 +15,7 @@ class WidgetLieferschein extends WidgetGenlieferschein
function ExtendsForm() function ExtendsForm()
{ {
$id = $this->app->Secure->GetGET("id"); $id = $this->app->Secure->GetGET("id");
if($this->app->Secure->GetPOST("speichern")!="") if($this->app->Secure->GetPOST("speichern")!="")
{ {
$deliveryNote = $this->app->DB->SelectRow("SELECT `projekt`, `schreibschutz` FROM `lieferschein` WHERE `id` = {$id}"); $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") 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>'); $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("projekt","projektname",1);
$this->app->YUI->AutoComplete("auftragid","auftrag",1); $this->app->YUI->AutoComplete("auftragid","auftrag",1);
$this->app->YUI->AutoComplete("aktion","aktionscode",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"); $this->app->YUI->AutoComplete("lieferbedingung","lieferbedingungen");
@@ -62,7 +64,7 @@ class WidgetLieferschein extends WidgetGenlieferschein
$this->form->ReplaceFunction("adresse",$this,"ReplaceKunde"); $this->form->ReplaceFunction("adresse",$this,"ReplaceKunde");
$this->form->ReplaceFunction("lieferant",$this,"ReplaceLieferant"); $this->form->ReplaceFunction("lieferant",$this,"ReplaceLieferant");
$this->form->ReplaceFunction("auftragid",$this,"ReplaceAuftrag"); $this->form->ReplaceFunction("auftragid",$this,"ReplaceAuftrag");
$this->form->ReplaceFunction("standardlager",$this,"ReplaceLager"); $this->form->ReplaceFunction("standardlager",$this,"ReplaceLagerPlatz");
if($this->app->erp->ModulVorhanden('kommissionskonsignationslager')) if($this->app->erp->ModulVorhanden('kommissionskonsignationslager'))
{ {