Compare commits
47
Commits
V.1.10
...
wareneingang
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdb05c747a | ||
|
|
b613a99791 | ||
|
|
1dba7e9d7e | ||
|
|
60e21956ad | ||
|
|
545a39bbdc | ||
|
|
5ed516f9da | ||
|
|
76c770aba3 | ||
|
|
c9aee26df7 | ||
|
|
91c2dc88ba | ||
|
|
be222cc581 | ||
|
|
a9f3292f8f | ||
|
|
ac723e9fda | ||
|
|
5408f197fd | ||
|
|
c0a9156f0e | ||
|
|
fd0a5a5d4c | ||
|
|
1daf876976 | ||
|
|
7a29151bdd | ||
|
|
623b041a5f | ||
|
|
6242024451 | ||
|
|
0262c31e93 | ||
|
|
5557c54fd6 | ||
|
|
7df897d9d7 | ||
|
|
1a94af6b0b | ||
|
|
fa4125d63b | ||
|
|
ac0048c788 | ||
|
|
f430b7f5ac | ||
|
|
83e739d378 | ||
|
|
a32c201a91 | ||
|
|
cb2b75a3ca | ||
|
|
1f27f9a5f5 | ||
|
|
81e2cdb222 | ||
|
|
5b49171a74 | ||
|
|
869c888947 | ||
|
|
322ca715eb | ||
|
|
ab4e9f001e | ||
|
|
51b70aed0d | ||
|
|
08579804a8 | ||
|
|
64241842f6 | ||
|
|
f5c61ca6eb | ||
|
|
aa32bd1276 | ||
|
|
e6960f0030 | ||
|
|
b02da95c2f | ||
|
|
9994f8c18d | ||
|
|
ce5f359a75 | ||
|
|
57e398e7d4 | ||
|
|
ca5e5c52a1 | ||
|
|
6f5272717f |
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
|||||||
namespace Xentral\Components\MailClient\Data;
|
namespace Xentral\Components\MailClient\Data;
|
||||||
|
|
||||||
use DateTime;
|
use DateTime;
|
||||||
|
use DateTimeImmutable;
|
||||||
use DateTimeInterface;
|
use DateTimeInterface;
|
||||||
use JsonSerializable;
|
use JsonSerializable;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
@@ -307,11 +308,13 @@ final class MailMessageData implements MailMessageInterface, JsonSerializable
|
|||||||
if ($date === null) {
|
if ($date === null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
$dateTime = date_create($date->getValue());
|
/* $dateTime = date_create($date->getValue());
|
||||||
if ($dateTime === false) {
|
if ($dateTime === false) {
|
||||||
throw new InvalidArgumentException('Invalid date: '.$date->getValue());
|
throw new InvalidArgumentException('Invalid date: '.$date->getValue());
|
||||||
return null;
|
return null;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
$dateTime = new DateTimeImmutable($date->getValue());
|
||||||
|
|
||||||
return $dateTime;
|
return $dateTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ final class Psr4ClassNameResolver
|
|||||||
{
|
{
|
||||||
// Normalize inputs
|
// Normalize inputs
|
||||||
$prefix = trim($prefix, '\\') . '\\';
|
$prefix = trim($prefix, '\\') . '\\';
|
||||||
$baseDir = rtrim($baseDir, '/') . '/';
|
$baseDir = rtrim($baseDir, '/\\') . DIRECTORY_SEPARATOR;
|
||||||
|
|
||||||
$this->prefixes[$prefix] = $baseDir;
|
$this->prefixes[$prefix] = $baseDir;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -408,9 +408,6 @@ class TicketImportHelper
|
|||||||
$this->logger->error('Failed to insert ticket message into db', ['exception' => $e]);
|
$this->logger->error('Failed to insert ticket message into db', ['exception' => $e]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$this->applyTicketRules($messageId);
|
|
||||||
|
|
||||||
return($result);
|
return($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -440,7 +437,7 @@ class TicketImportHelper
|
|||||||
|
|
||||||
foreach ($ruleArray as $rule) {
|
foreach ($ruleArray as $rule) {
|
||||||
|
|
||||||
$this->logger->debug('ticket rule applies',['rule_id' => $rule['id']]);
|
$this->logger->debug('ticket rule applies',['rule_id' => $rule['id'],'rule' => print_r($rule,true)]);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
$update = $this->db->update();
|
$update = $this->db->update();
|
||||||
@@ -461,12 +458,16 @@ class TicketImportHelper
|
|||||||
$this->db->perform($sql, ['ticket_id' => $ticketId]);
|
$this->db->perform($sql, ['ticket_id' => $ticketId]);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ($rule['is_spam'] === 1) {
|
if ($rule['is_spam'] == 1) {
|
||||||
$sql = "UPDATE `ticket_nachricht` SET `status` = \'spam\' WHERE `id` = '".$ticketMessageId."'";
|
$status = 'spam';
|
||||||
$this->db->Update($sql);
|
} else {
|
||||||
|
$status = 'neu';
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "UPDATE `ticket` SET `dsgvo` = '".$rule['is_gdpr_relevant']."', `privat` = '".$rule['is_private']."', `prio` = '".$rule['priority']."', `warteschlange` = '".$rule['queue_id']."' WHERE `id` = '".$ticketId."'";
|
$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."'";
|
||||||
|
|
||||||
|
$this->logger->debug('ticket rule sql',['sql' => $sql]);
|
||||||
|
|
||||||
$this->db->Update($sql);
|
$this->db->Update($sql);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -699,6 +700,12 @@ class TicketImportHelper
|
|||||||
$from
|
$from
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Only for new tickets: apply filter rules
|
||||||
|
if (!$ticketexists) {
|
||||||
|
$this->applyTicketRules($ticketnachricht);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($ticketnachricht > 0 && $emailbackup_mails_id > 0) {
|
if ($ticketnachricht > 0 && $emailbackup_mails_id > 0) {
|
||||||
$this->db->Update(
|
$this->db->Update(
|
||||||
"UPDATE `emailbackup_mails`
|
"UPDATE `emailbackup_mails`
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ $factoryServiceMap = @include $serviceCacheFile;
|
|||||||
|
|
||||||
if (!is_file($serviceCacheFile)) {
|
if (!is_file($serviceCacheFile)) {
|
||||||
|
|
||||||
// Installer ausführen wenn ServiceMap nicht vorhanden ist
|
// Installer ausführen, wenn ServiceMap nicht vorhanden ist
|
||||||
$resolver = new Psr4ClassNameResolver();
|
$resolver = new Psr4ClassNameResolver();
|
||||||
$resolver->addNamespace('Xentral\\', __DIR__);
|
$resolver->addNamespace('Xentral\\', __DIR__);
|
||||||
$resolver->excludeFile(__DIR__ . '/bootstrap.php');
|
$resolver->excludeFile(__DIR__ . DIRECTORY_SEPARATOR . 'bootstrap.php');
|
||||||
|
|
||||||
$generator = new ClassMapGenerator($resolver, __DIR__);
|
$generator = new ClassMapGenerator($resolver, __DIR__);
|
||||||
$installer = new Installer($generator, $resolver);
|
$installer = new Installer($generator, $resolver);
|
||||||
|
|||||||
@@ -1252,7 +1252,7 @@ Options -Indexes
|
|||||||
# Deny access to all *.php
|
# Deny access to all *.php
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
Allow from all
|
Allow from all
|
||||||
<FilesMatch "\.(css|jpg|jpeg|gif|png|svg|js|ico|css.map)$">
|
<FilesMatch "\.(css|jpg|jpeg|gif|png|svg|js|ico|css.map|js.map)$">
|
||||||
Order Allow,Deny
|
Order Allow,Deny
|
||||||
Allow from all
|
Allow from all
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
|
|||||||
@@ -1424,7 +1424,7 @@ class DB{
|
|||||||
if(empty($TableName) || empty($IDFieldName) || empty($IDToDuplicate)) {
|
if(empty($TableName) || empty($IDFieldName) || empty($IDToDuplicate)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
$sql = "SELECT * FROM $TableName WHERE $IDFieldName = $IDToDuplicate";
|
$sql = "SELECT * FROM $TableName WHERE $IDFieldName = $IDToDuplicate";
|
||||||
$result = @mysqli_query($this->connection,$sql);
|
$result = @mysqli_query($this->connection,$sql);
|
||||||
if(empty($result)) {
|
if(empty($result)) {
|
||||||
@@ -1442,6 +1442,23 @@ class DB{
|
|||||||
}
|
}
|
||||||
$sql .= $RowKeys[$i] . " = '" . $this->real_escape_string($RowValues[$i]) . "'";
|
$sql .= $RowKeys[$i] . " = '" . $this->real_escape_string($RowValues[$i]) . "'";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@mysqli_query($this->connection,$sql);
|
||||||
|
*/
|
||||||
|
|
||||||
|
$sql = "INSERT INTO ".$TableName." SELECT ";
|
||||||
|
$fields = $this->GetColAssocArray($TableName);
|
||||||
|
$comma = "";
|
||||||
|
foreach ($fields as $field => $value) {
|
||||||
|
if ($field != $IDFieldName) {
|
||||||
|
$sql .= $comma."`".$field."`";
|
||||||
|
} else {
|
||||||
|
$sql .= "NULL";
|
||||||
|
}
|
||||||
|
$comma = ", ";
|
||||||
|
}
|
||||||
|
$sql .= " FROM ".$TableName." WHERE id = ".$IDToDuplicate;
|
||||||
|
|
||||||
@mysqli_query($this->connection,$sql);
|
@mysqli_query($this->connection,$sql);
|
||||||
|
|
||||||
$id = $this->GetInsertID();
|
$id = $this->GetInsertID();
|
||||||
|
|||||||
@@ -1542,7 +1542,7 @@ class YUI {
|
|||||||
if(!empty($positionsIds)) {
|
if(!empty($positionsIds)) {
|
||||||
$positions = $this->app->DB->SelectArr(
|
$positions = $this->app->DB->SelectArr(
|
||||||
sprintf(
|
sprintf(
|
||||||
"SELECT b.id, %s AS `preis`, round(b.menge) as menge
|
"SELECT b.id, %s AS `preis`, trim(b.menge)+0 as menge
|
||||||
FROM `%s` AS `b`
|
FROM `%s` AS `b`
|
||||||
%s
|
%s
|
||||||
WHERE b.`%s` = %d AND b.id IN (%s)",
|
WHERE b.`%s` = %d AND b.id IN (%s)",
|
||||||
@@ -2581,7 +2581,7 @@ class YUI {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
p.abkuerzung as projekt, b.nummer as nummer, DATE_FORMAT(lieferdatum,'%d.%m.%Y') as lieferdatum, round(b.menge) as menge, ".$this->FormatPreis($preiscell)." as preis,b.waehrung, ".$this->FormatPreis('b.rabatt')." as rabatt, ";
|
p.abkuerzung as projekt, b.nummer as nummer, DATE_FORMAT(lieferdatum,'%d.%m.%Y') as lieferdatum, trim(b.menge)+0 as menge, ".$this->FormatPreis($preiscell)." as preis,b.waehrung, ".$this->FormatPreis('b.rabatt')." as rabatt, ";
|
||||||
|
|
||||||
|
|
||||||
$sql .= "b.id as id
|
$sql .= "b.id as id
|
||||||
@@ -2601,7 +2601,7 @@ class YUI {
|
|||||||
as Artikel,
|
as Artikel,
|
||||||
|
|
||||||
|
|
||||||
p.abkuerzung as projekt, b.nummer as nummer, DATE_FORMAT(lieferdatum,'%d.%m.%Y') as lieferdatum, round(b.menge) as menge, if(b.geliefert, ".$this->app->erp->FormatMenge('b.geliefert')." ,'-') as geliefert, b.id as id
|
p.abkuerzung as projekt, b.nummer as nummer, DATE_FORMAT(lieferdatum,'%d.%m.%Y') as lieferdatum, trim(b.menge)+0 as menge, if(b.geliefert, ".$this->app->erp->FormatMenge('b.geliefert')." ,'-') as geliefert, b.id as id
|
||||||
FROM $table b
|
FROM $table b
|
||||||
LEFT JOIN artikel a ON a.id=b.artikel LEFT JOIN projekt p ON b.projekt=p.id
|
LEFT JOIN artikel a ON a.id=b.artikel LEFT JOIN projekt p ON b.projekt=p.id
|
||||||
WHERE b.$module='$id'";
|
WHERE b.$module='$id'";
|
||||||
@@ -2656,7 +2656,7 @@ class YUI {
|
|||||||
|
|
||||||
|
|
||||||
p.abkuerzung as projekt, b.nummer as nummer, DATE_FORMAT(lieferdatum,'%d.%m.%Y') as lieferdatum,
|
p.abkuerzung as projekt, b.nummer as nummer, DATE_FORMAT(lieferdatum,'%d.%m.%Y') as lieferdatum,
|
||||||
round(b.menge) as menge,
|
trim(b.menge)+0 as menge,
|
||||||
if(b.geliefert, ".$this->app->erp->FormatMenge('b.geliefert')." ,'-') as geliefert,
|
if(b.geliefert, ".$this->app->erp->FormatMenge('b.geliefert')." ,'-') as geliefert,
|
||||||
if(b.menge_eingang, ".$this->app->erp->FormatMenge('b.menge_eingang')." ,'-') as `Eingang`,
|
if(b.menge_eingang, ".$this->app->erp->FormatMenge('b.menge_eingang')." ,'-') as `Eingang`,
|
||||||
if(b.menge_gutschrift, ".$this->app->erp->FormatMenge('b.menge_gutschrift')." ,'-') as `Menge Gutschrift`,
|
if(b.menge_gutschrift, ".$this->app->erp->FormatMenge('b.menge_gutschrift')." ,'-') as `Menge Gutschrift`,
|
||||||
@@ -2678,7 +2678,7 @@ class YUI {
|
|||||||
as Artikel,
|
as Artikel,
|
||||||
|
|
||||||
|
|
||||||
p.abkuerzung as projekt, b.nummer as nummer, round(b.menge) as menge,
|
p.abkuerzung as projekt, b.nummer as nummer, trim(b.menge)+0 as menge,
|
||||||
".$this->FormatPreis(' b.preis')." as preis,
|
".$this->FormatPreis(' b.preis')." as preis,
|
||||||
|
|
||||||
b.id as id
|
b.id as id
|
||||||
@@ -2695,7 +2695,7 @@ class YUI {
|
|||||||
as Artikel,
|
as Artikel,
|
||||||
|
|
||||||
|
|
||||||
p.abkuerzung as projekt, b.nummer as nummer, DATE_FORMAT(b.lieferdatum,'%d.%m.%Y') as lieferdatum, round(b.menge) as menge,
|
p.abkuerzung as projekt, b.nummer as nummer, DATE_FORMAT(b.lieferdatum,'%d.%m.%Y') as lieferdatum, trim(b.menge)+0 as menge,
|
||||||
|
|
||||||
b.id as id
|
b.id as id
|
||||||
FROM $table b
|
FROM $table b
|
||||||
@@ -2717,7 +2717,7 @@ class YUI {
|
|||||||
if(CHAR_LENGTH(b.bezeichnunglieferant)>" . $this->app->erp->MaxArtikelbezeichnung() . ",CONCAT(SUBSTR(CONCAT(b.bezeichnunglieferant,' *'),1," . $this->app->erp->MaxArtikelbezeichnung() . "),'...'),CONCAT(b.bezeichnunglieferant,' *')),
|
if(CHAR_LENGTH(b.bezeichnunglieferant)>" . $this->app->erp->MaxArtikelbezeichnung() . ",CONCAT(SUBSTR(CONCAT(b.bezeichnunglieferant,' *'),1," . $this->app->erp->MaxArtikelbezeichnung() . "),'...'),CONCAT(b.bezeichnunglieferant,' *')),
|
||||||
if(CHAR_LENGTH(b.bezeichnunglieferant)>" . $this->app->erp->MaxArtikelbezeichnung() . ",CONCAT(SUBSTR(b.bezeichnunglieferant,1," . $this->app->erp->MaxArtikelbezeichnung() . "),'...'),b.bezeichnunglieferant)))
|
if(CHAR_LENGTH(b.bezeichnunglieferant)>" . $this->app->erp->MaxArtikelbezeichnung() . ",CONCAT(SUBSTR(b.bezeichnunglieferant,1," . $this->app->erp->MaxArtikelbezeichnung() . "),'...'),b.bezeichnunglieferant)))
|
||||||
as Artikel,
|
as Artikel,
|
||||||
p.abkuerzung as projekt, a.nummer as nummer, DATE_FORMAT(lieferdatum,'%d.%m.%Y') as lieferdatum, round(b.menge) as menge, ".$this->FormatPreis(' b.preis')." as preis, b.waehrung, b.id as id
|
p.abkuerzung as projekt, a.nummer as nummer, DATE_FORMAT(lieferdatum,'%d.%m.%Y') as lieferdatum, trim(b.menge)+0 as menge, ".$this->FormatPreis(' b.preis')." as preis, b.waehrung, b.id as id
|
||||||
FROM $table b
|
FROM $table b
|
||||||
LEFT JOIN artikel a ON a.id=b.artikel LEFT JOIN projekt p ON b.projekt=p.id
|
LEFT JOIN artikel a ON a.id=b.artikel LEFT JOIN projekt p ON b.projekt=p.id
|
||||||
WHERE b.$module='$id'";
|
WHERE b.$module='$id'";
|
||||||
@@ -12108,9 +12108,6 @@ url:strUrl, success:function(html){strReturn = html;}, async:false
|
|||||||
</tr>
|
</tr>
|
||||||
</tfoot>
|
</tfoot>
|
||||||
</table></div>
|
</table></div>
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
');
|
');
|
||||||
|
|
||||||
if((empty($disableautosavefilter)) && $this->anzusersaves < 2) {
|
if((empty($disableautosavefilter)) && $this->anzusersaves < 2) {
|
||||||
|
|||||||
@@ -64785,6 +64785,17 @@
|
|||||||
"Extra": "",
|
"Extra": "",
|
||||||
"Privileges": "select,insert,update,references",
|
"Privileges": "select,insert,update,references",
|
||||||
"Comment": ""
|
"Comment": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Field": "vorlaeufig",
|
||||||
|
"Type": "int(1)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "YES",
|
||||||
|
"Key": "",
|
||||||
|
"Default": "",
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"keys": [
|
"keys": [
|
||||||
@@ -99553,6 +99564,17 @@
|
|||||||
"Privileges": "select,insert,update,references",
|
"Privileges": "select,insert,update,references",
|
||||||
"Comment": ""
|
"Comment": ""
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Field": "getestet",
|
||||||
|
"Type": "int(11)",
|
||||||
|
"Collation": null,
|
||||||
|
"Null": "NO",
|
||||||
|
"Key": "",
|
||||||
|
"Default": "0",
|
||||||
|
"Extra": "",
|
||||||
|
"Privileges": "select,insert,update,references",
|
||||||
|
"Comment": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Field": "bearbeiter",
|
"Field": "bearbeiter",
|
||||||
"Type": "varchar(32)",
|
"Type": "varchar(32)",
|
||||||
|
|||||||
@@ -365,6 +365,9 @@ function upgrade_main(string $directory,bool $verbose, bool $check_git, bool $do
|
|||||||
foreach ($compare_differences as $compare_difference) {
|
foreach ($compare_differences as $compare_difference) {
|
||||||
$comma = "";
|
$comma = "";
|
||||||
foreach ($compare_difference as $key => $value) {
|
foreach ($compare_difference as $key => $value) {
|
||||||
|
if (is_array($value)) {
|
||||||
|
$value = implode(',',$value);
|
||||||
|
}
|
||||||
echo_out($comma."$key => [$value]");
|
echo_out($comma."$key => [$value]");
|
||||||
$comma = ", ";
|
$comma = ", ";
|
||||||
}
|
}
|
||||||
|
|||||||
+21
-15
@@ -67,6 +67,7 @@ $mustal_replacers = [
|
|||||||
['on update current_timestamp','on update current_timestamp()']
|
['on update current_timestamp','on update current_timestamp()']
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
// Load all db_def from a DB connection into a db_def array
|
// Load all db_def from a DB connection into a db_def array
|
||||||
function mustal_load_tables_from_db(string $host, string $schema, string $user, string $passwd, array $replacers) : array {
|
function mustal_load_tables_from_db(string $host, string $schema, string $user, string $passwd, array $replacers) : array {
|
||||||
|
|
||||||
@@ -358,8 +359,6 @@ function mustal_compare_table_array(array $nominal, string $nominal_name, array
|
|||||||
$compare_difference['table'] = $database_table['name'];
|
$compare_difference['table'] = $database_table['name'];
|
||||||
$compare_difference['key'] = $sql_index['Key_name'];
|
$compare_difference['key'] = $sql_index['Key_name'];
|
||||||
$compare_difference['property'] = $key;
|
$compare_difference['property'] = $key;
|
||||||
/* $compare_difference[$nominal_name] = implode(',',$value);
|
|
||||||
$compare_difference[$actual_name] = implode(',',$found_sql_index[$key]);*/
|
|
||||||
$compare_difference[$nominal_name] = $value;
|
$compare_difference[$nominal_name] = $value;
|
||||||
$compare_difference[$actual_name] = $found_sql_index[$key];
|
$compare_difference[$actual_name] = $found_sql_index[$key];
|
||||||
$compare_differences[] = $compare_difference;
|
$compare_differences[] = $compare_difference;
|
||||||
@@ -585,14 +584,7 @@ function mustal_calculate_db_upgrade(array $compare_def, array $db_def, array &$
|
|||||||
if ($key['Key_name'] == 'PRIMARY') {
|
if ($key['Key_name'] == 'PRIMARY') {
|
||||||
$keystring = "PRIMARY KEY ";
|
$keystring = "PRIMARY KEY ";
|
||||||
} else {
|
} else {
|
||||||
|
$keystring = mustal_key_type(" ".$key['Non_unique']." KEY `".$key['Key_name']."` ",$key['Index_type']);
|
||||||
// if(array_key_exists('Index_type', $key)) {
|
|
||||||
// $index_type = $key['Index_type'];
|
|
||||||
// } else {
|
|
||||||
$index_type = "";
|
|
||||||
// }
|
|
||||||
|
|
||||||
$keystring = $index_type." ".$key['Non_unique']." KEY `".$key['Key_name']."` ";
|
|
||||||
}
|
}
|
||||||
$sql .= $comma.$keystring."(`".implode("`,`",$key['columns'])."`) ";
|
$sql .= $comma.$keystring."(`".implode("`,`",$key['columns'])."`) ";
|
||||||
}
|
}
|
||||||
@@ -675,10 +667,7 @@ function mustal_calculate_db_upgrade(array $compare_def, array $db_def, array &$
|
|||||||
|
|
||||||
if ($key_key !== false) {
|
if ($key_key !== false) {
|
||||||
$key = $table['keys'][$key_key];
|
$key = $table['keys'][$key_key];
|
||||||
|
$sql = "ALTER TABLE `$table_name` ADD ".mustal_key_type(" ".$key['Non_unique']." KEY `".$key['Key_name']."` "."(`".implode("`,`",$key['columns'])."`)",$key['Index_type']).";";
|
||||||
$sql = "ALTER TABLE `$table_name` ADD ".$key['Non_unique']." KEY `".$key_name."` ";
|
|
||||||
$sql .= "(`".implode("`,`",$key['columns'])."`)";
|
|
||||||
$sql .= ";";
|
|
||||||
$upgrade_sql[] = $sql;
|
$upgrade_sql[] = $sql;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -706,7 +695,7 @@ function mustal_calculate_db_upgrade(array $compare_def, array $db_def, array &$
|
|||||||
$sql = "ALTER TABLE `$table_name` DROP KEY `".$key_name."`;";
|
$sql = "ALTER TABLE `$table_name` DROP KEY `".$key_name."`;";
|
||||||
$upgrade_sql[] = $sql;
|
$upgrade_sql[] = $sql;
|
||||||
|
|
||||||
$sql = "ALTER TABLE `$table_name` ADD ".$key['Non_unique']." KEY `".$key_name."` ";
|
$sql = "ALTER TABLE `$table_name` ADD ".mustal_key_type(" ".$key['Non_unique']." KEY `".$key['Key_name']."` ",$key['Index_type']);
|
||||||
$sql .= "(`".implode("`,`",$key['columns'])."`)";
|
$sql .= "(`".implode("`,`",$key['columns'])."`)";
|
||||||
$sql .= ";";
|
$sql .= ";";
|
||||||
$upgrade_sql[] = $sql;
|
$upgrade_sql[] = $sql;
|
||||||
@@ -781,3 +770,20 @@ function mustal_is_string_type(string $type) {
|
|||||||
return(false);
|
return(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// create correct index type syntax
|
||||||
|
function mustal_key_type(string $key_definition_string, string $key_type) {
|
||||||
|
|
||||||
|
// Key types with using syntax
|
||||||
|
$mustal_key_types_using_mapping = [
|
||||||
|
'BTREE',
|
||||||
|
'HASH'
|
||||||
|
];
|
||||||
|
|
||||||
|
if (in_array($key_type,$mustal_key_types_using_mapping)) {
|
||||||
|
return ($key_definition_string." USING ".$key_type);
|
||||||
|
} else {
|
||||||
|
return ($key_type." ".$key_definition_string);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ Options -Indexes
|
|||||||
# Deny access to all *.php
|
# Deny access to all *.php
|
||||||
Order deny,allow
|
Order deny,allow
|
||||||
Allow from all
|
Allow from all
|
||||||
<FilesMatch "\.(css|jpg|jpeg|gif|png|svg|js|ico|css.map)$">
|
<FilesMatch "\.(css|jpg|jpeg|gif|png|svg|js|ico|css.map|js.map)$">
|
||||||
Order Allow,Deny
|
Order Allow,Deny
|
||||||
Allow from all
|
Allow from all
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
|
|||||||
@@ -26040,7 +26040,7 @@ function ChargenMHDAuslagern($artikel, $menge, $lagerplatztyp, $lpid,$typ,$wert,
|
|||||||
$this->app->Tpl->Set('DRUCKER', $this->GetSelectDrucker($selected));
|
$this->app->Tpl->Set('DRUCKER', $this->GetSelectDrucker($selected));
|
||||||
}
|
}
|
||||||
$this->app->Tpl->Set('FAX',$this->GetSelectFax());
|
$this->app->Tpl->Set('FAX',$this->GetSelectFax());
|
||||||
$this->app->Tpl->Set('EMAILEMPFAENGER',$this->GetSelectEmail());
|
$this->app->Tpl->Set('EMAILEMPFAENGER',$this->GetSelectEmail($this->Firmendaten("email")));
|
||||||
$projektabkuerzung = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id='$projekt'");
|
$projektabkuerzung = $this->app->DB->Select("SELECT abkuerzung FROM projekt WHERE id='$projekt'");
|
||||||
$this->app->Tpl->Set('PROJEKT',$projektabkuerzung);
|
$this->app->Tpl->Set('PROJEKT',$projektabkuerzung);
|
||||||
//$this->app->Tpl->Set(PROJEKT,$this->GetProjektSelect($projekt));
|
//$this->app->Tpl->Set(PROJEKT,$this->GetProjektSelect($projekt));
|
||||||
|
|||||||
@@ -559,7 +559,7 @@ class Remote
|
|||||||
$steuersatz_normal = 19;
|
$steuersatz_normal = 19;
|
||||||
}
|
}
|
||||||
$crossellingInstalled = $this->app->erp->ModulVorhanden('crossselling');
|
$crossellingInstalled = $this->app->erp->ModulVorhanden('crossselling');
|
||||||
foreach($reta as $k => $ret)
|
foreach($reta as $k => $ret)
|
||||||
{
|
{
|
||||||
if(isset($ret['stueckliste'])){
|
if(isset($ret['stueckliste'])){
|
||||||
$stuecklistenmechanik = $ret['stueckliste'];
|
$stuecklistenmechanik = $ret['stueckliste'];
|
||||||
@@ -631,8 +631,17 @@ class Remote
|
|||||||
}
|
}
|
||||||
$arr['projekt'] = $shopexportArr['projekt'];
|
$arr['projekt'] = $shopexportArr['projekt'];
|
||||||
$arr['name_de'] = $ret['name'];
|
$arr['name_de'] = $ret['name'];
|
||||||
$arr['uebersicht_de'] = isset($ret['uebersicht_de'])?$ret['uebersicht_de']:'';
|
$arr['uebersicht_de'] = $ret['uebersicht_de'] ?? '';
|
||||||
$arr['kurztext_de'] = isset($ret['kurztext_de'])?$ret['kurztext_de']:'';
|
$arr['kurztext_de'] = $ret['kurztext_de'] ?? '';
|
||||||
|
$arr['name_en'] = $ret['name_en'];
|
||||||
|
$arr['uebersicht_en'] = $ret['uebersicht_en'] ?? '';
|
||||||
|
$arr['kurztext_en'] = $ret['kurztext_en'] ?? '';
|
||||||
|
$arr['metakeywords_de'] = $ret['metakeywords_de'] ?? '';
|
||||||
|
$arr['metakeywords_en'] = $ret['metakeywords_en'] ?? '';
|
||||||
|
$arr['metatitle_de'] = $ret['metatitle_de'] ?? '';
|
||||||
|
$arr['metatitle_en'] = $ret['metatitle_en'] ?? '';
|
||||||
|
$arr['metadescription_de'] = $ret['metadescription_de'] ?? '';
|
||||||
|
$arr['metadescription_en'] = $ret['metadescription_en'] ?? '';
|
||||||
//$arr['anabregs_text'] = isset($ret['uebersicht_de'])?$ret['uebersicht_de']:'';
|
//$arr['anabregs_text'] = isset($ret['uebersicht_de'])?$ret['uebersicht_de']:'';
|
||||||
if(isset($ret['ean']) && $ret['ean'] != '')
|
if(isset($ret['ean']) && $ret['ean'] != '')
|
||||||
{
|
{
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -2054,7 +2054,7 @@ $table_kontakte = '';
|
|||||||
$ckontakte = !empty($kontakte)?count($kontakte):0;
|
$ckontakte = !empty($kontakte)?count($kontakte):0;
|
||||||
for($i=0;$i<$ckontakte;$i++)
|
for($i=0;$i<$ckontakte;$i++)
|
||||||
{
|
{
|
||||||
$tabindex = $tabindex+i;
|
$tabindex = $tabindex+$i;
|
||||||
$table_kontakte .= "<tr><td>".$kontakte[$i]['bezeichnung'].":
|
$table_kontakte .= "<tr><td>".$kontakte[$i]['bezeichnung'].":
|
||||||
</td><td><input type=text name=\"adresse_kontakte[".$kontakte[$i]['id']."]\" value=\"".$kontakte[$i]['kontakt']."\" size=\"30\" tabindex=\"$tabindex\"> <a href=\"#\" onclick=\"if(!confirm('".$kontakte[$i]['bezeichnung']." wirklich entfernen?')) return false; else window.location.href='index.php?module=adresse&action=delkontakt&id=".$id."&lid=".$kontakte[$i]['id']."';\">x</a></td></tr>";
|
</td><td><input type=text name=\"adresse_kontakte[".$kontakte[$i]['id']."]\" value=\"".$kontakte[$i]['kontakt']."\" size=\"30\" tabindex=\"$tabindex\"> <a href=\"#\" onclick=\"if(!confirm('".$kontakte[$i]['bezeichnung']." wirklich entfernen?')) return false; else window.location.href='index.php?module=adresse&action=delkontakt&id=".$id."&lid=".$kontakte[$i]['id']."';\">x</a></td></tr>";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -932,14 +932,14 @@ class Artikel extends GenArtikel {
|
|||||||
|
|
||||||
$alignright = array(3,5,6);
|
$alignright = array(3,5,6);
|
||||||
// SQL statement
|
// SQL statement
|
||||||
$sql = "SELECT SQL_CALC_FOUND_ROWS
|
$sql = "SELECT SQL_CALC_FOUND_ROWS
|
||||||
s.id,
|
s.id,
|
||||||
CONCAT('<a href=\"index.php?module=artikel&action=edit&id=',a.id,'\" target=\"_blank\">',a.name_de,'</a> ',
|
CONCAT('<a href=\"index.php?module=artikel&action=edit&id=',a.id,'\" target=\"_blank\">',a.name_de,'</a> ',
|
||||||
IF(s.art='it','<br><i style=color:#999>- Informationsteil/Dienstleistung</i>',''),IF(s.art='bt','<br><i style=color:#999>- Beistellung</i>',''), COALESCE((SELECT GROUP_CONCAT('<br><i style=color:#999>- ', art.nummer, ' ', art.name_de, ' (', alt.reason, ')', '</i>' SEPARATOR '') FROM parts_list_alternative AS alt INNER JOIN artikel AS art ON art.id = alt.alternative_article_id WHERE alt.parts_list_id = s.id), '')) as artikel,
|
IF(s.art='it','<br><i style=color:#999>- Informationsteil/Dienstleistung</i>',''),IF(s.art='bt','<br><i style=color:#999>- Beistellung</i>',''), COALESCE((SELECT GROUP_CONCAT('<br><i style=color:#999>- ', art.nummer, ' ', art.name_de, ' (', alt.reason, ')', '</i>' SEPARATOR '') FROM parts_list_alternative AS alt INNER JOIN artikel AS art ON art.id = alt.alternative_article_id WHERE alt.parts_list_id = s.id), '')) as artikel,
|
||||||
CONCAT('<a href=\"index.php?module=artikel&action=edit&id=',a.id,'\" target=\"_blank\">',a.nummer,'</a>') as nummer,
|
CONCAT('<a href=\"index.php?module=artikel&action=edit&id=',a.id,'\" target=\"_blank\">',a.nummer,'</a>') as nummer,
|
||||||
s.referenz,
|
s.referenz,
|
||||||
".$this->app->erp->FormatMenge('s.menge').' as menge, a.einheit,
|
trim(s.menge)+0 as menge, a.einheit,
|
||||||
'.$this->app->erp->FormatMenge('ifnull(lag.menge,0)').' as lager,
|
".$this->app->erp->FormatMenge('ifnull(lag.menge,0)').' as lager,
|
||||||
CASE WHEN (SELECT SUM(lr.menge) FROM lager_reserviert lr WHERE lr.artikel=a.id) > 0
|
CASE WHEN (SELECT SUM(lr.menge) FROM lager_reserviert lr WHERE lr.artikel=a.id) > 0
|
||||||
THEN (SELECT '.$this->app->erp->FormatMenge('SUM(lr.menge)')." FROM lager_reserviert lr WHERE lr.artikel=a.id)
|
THEN (SELECT '.$this->app->erp->FormatMenge('SUM(lr.menge)')." FROM lager_reserviert lr WHERE lr.artikel=a.id)
|
||||||
ELSE 0
|
ELSE 0
|
||||||
@@ -6321,7 +6321,7 @@ class Artikel extends GenArtikel {
|
|||||||
|
|
||||||
$id = (int)$this->app->Secure->GetPOST('id');
|
$id = (int)$this->app->Secure->GetPOST('id');
|
||||||
|
|
||||||
$data = $this->app->DB->SelectRow('SELECT s.id, s.artikel, '.$this->app->erp->FormatMenge("s.menge")." as menge, s.art, s.referenz, s.layer, s.place, s.wert, s.bauform, s.zachse, s.xpos, s.ypos FROM stueckliste s WHERE s.id = '$id' LIMIT 1");
|
$data = $this->app->DB->SelectRow("SELECT s.id, s.artikel, trim(s.menge)+0 as menge, s.art, s.referenz, s.layer, s.place, s.wert, s.bauform, s.zachse, s.xpos, s.ypos FROM stueckliste s WHERE s.id = '$id' LIMIT 1");
|
||||||
|
|
||||||
if($data){
|
if($data){
|
||||||
if($data['artikel'] == 0){
|
if($data['artikel'] == 0){
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<fieldset>
|
<fieldset>
|
||||||
<table width="100%" border="0" class="mkTableFormular">
|
<table width="100%" border="0" class="mkTableFormular">
|
||||||
<legend>{|[STATUSICON]<b>Ticket <font color="blue">#[SCHLUESSEL]</font></b>|}</legend>
|
<legend>{|[STATUSICON]<b>Ticket <font color="blue">#[SCHLUESSEL]</font></b>|}</legend>
|
||||||
<tr><td>{|Betreff|}:</td><td><input type="text" name="betreff" id="betreff" value="[BETREFF]" size="20"></td></tr>
|
<tr><td>{|Betreff|}:</td><td><input type="text" name="betreff" id="betreff" value="[BETREFF]" size="100%"></td></tr>
|
||||||
<tr><td>{|Von|}:</td><td>[KUNDE] [MAILADRESSE]</td></tr>
|
<tr><td>{|Von|}:</td><td>[KUNDE] [MAILADRESSE]</td></tr>
|
||||||
<tr><td>{|Projekt|}:</td><td><input type="text" name="projekt" id="projekt" value="[PROJEKT]" size="20"></td></tr>
|
<tr><td>{|Projekt|}:</td><td><input type="text" name="projekt" id="projekt" value="[PROJEKT]" size="20"></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>{|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>
|
||||||
@@ -49,6 +49,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" 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>
|
||||||
</div>
|
</div>
|
||||||
@@ -61,4 +62,3 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -17,50 +17,25 @@
|
|||||||
<div class="col-xs-12 col-md-12 col-md-height">
|
<div class="col-xs-12 col-md-12 col-md-height">
|
||||||
<div class="inside inside-full-height">
|
<div class="inside inside-full-height">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{|Ticketregeln|}</legend><i>Ticketregeln fü die Verarbeitung bei Ticketeingang. Platzhalter werden mit % angegeben.</i>
|
<legend>{|Ticketregeln|}</legend><i>Ticketregeln für die Verarbeitung bei Ticketeingang. Platzhalter werden mit % angegeben.</i>
|
||||||
<table width="100%" border="0" class="mkTableFormular">
|
<table width="100%" border="0" class="mkTableFormular">
|
||||||
<tr><td>{|E-Mail Empfänger|}:</td><td><input type="text" name="empfaenger_email" value="[EMPFAENGER_EMAIL]" size="40"></td></tr>
|
<tr><td>{|E-Mail Empfänger|}:</td><td><input type="text" name="empfaenger_email" value="[EMPFAENGER_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>{|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>{|Papierkorb|}:</td><td><input type="text" name="spam" value="[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önlich|}:</td><td><input type="text" name="persoenlich" value="[PERSOENLICH]" 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="text" name="prio" value="[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="text" name="dsgvo" value="[DSGVO]" size="40"></td></tr>
|
<tr><td>{|DSGVO|}:</td><td><input type="checkbox" name="dsgvo" value="1" [DSGVO] 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="text" name="aktiv" value="[AKTIV]" size="40"></td></tr>
|
<tr><td>{|Aktiv|}:</td><td><input type="checkbox" name="aktiv" value="1" [AKTIV] size="40"></td></tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Example for 2nd row
|
|
||||||
<div class="row">
|
|
||||||
<div class="row-height">
|
|
||||||
<div class="col-xs-12 col-md-12 col-md-height">
|
|
||||||
<div class="inside inside-full-height">
|
|
||||||
<fieldset>
|
|
||||||
<legend>{|Another legend|}</legend>
|
|
||||||
<table width="100%" border="0" class="mkTableFormular">
|
|
||||||
<tr><td>{|Empfaenger_email|}:</td><td><input type="text" name="empfaenger_email" value="[EMPFAENGER_EMAIL]" size="40"></td></tr>
|
|
||||||
<tr><td>{|Sender_email|}:</td><td><input type="text" name="sender_email" value="[SENDER_EMAIL]" size="40"></td></tr>
|
|
||||||
<tr><td>{|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>{|Spam|}:</td><td><input type="text" name="spam" value="[SPAM]" size="40"></td></tr>
|
|
||||||
<tr><td>{|Persoenlich|}:</td><td><input type="text" name="persoenlich" value="[PERSOENLICH]" size="40"></td></tr>
|
|
||||||
<tr><td>{|Prio|}:</td><td><input type="text" name="prio" value="[PRIO]" size="40"></td></tr>
|
|
||||||
<tr><td>{|Dsgvo|}:</td><td><input type="text" name="dsgvo" value="[DSGVO]" size="40"></td></tr>
|
|
||||||
<tr><td>{|Warteschlange|}:</td><td><input type="text" name="warteschlange" value="[WARTESCHLANGE]" size="40"></td></tr>
|
|
||||||
<tr><td>{|Aktiv|}:</td><td><input type="text" name="aktiv" value="[AKTIV]" size="40"></td></tr>
|
|
||||||
|
|
||||||
</table>
|
|
||||||
</fieldset>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
<input type="submit" name="submit" value="Speichern" style="float:right"/>
|
<input type="submit" name="submit" value="Speichern" style="float:right"/>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
|
<!--
|
||||||
<table id="table[MD5]">
|
<table id="table[MD5]">
|
||||||
<tr><td>{|Lieferschein|}:</td><td><input type="checkbox" onchange="lsclick[MD5]();" id="beiback_lieferschein[MD5]" disabled value="1" [BEIPACK_LIEFERSCHEIN] /></td><td><span id="lsnr[MD5]">[LSNR]</span></td><td><input type="button" value="{|Belege ändern|}" style="cursor:hand;" onclick="editclick[MD5]();" /></td></tr>
|
<tr><td>{|Lieferschein|}:</td><td><input type="checkbox" onchange="lsclick[MD5]();" id="beiback_lieferschein[MD5]" disabled value="1" [BEIPACK_LIEFERSCHEIN] /></td><td><span id="lsnr[MD5]">[LSNR]</span></td>
|
||||||
|
<td><input type="button" value="{|Belege ändern|}" style="cursor:hand;" onclick="editclick[MD5]();" /></td>
|
||||||
|
</tr>
|
||||||
<tr><td>{|Rechnung|}:</td><td><input type="checkbox" onchange="reclick[MD5]();" id="beiback_rechnung[MD5]" disabled value="1" [BEIPACK_RECHNUNG] /></td><td><span id="renr[MD5]">[RENR]</span></td><td></td></tr>
|
<tr><td>{|Rechnung|}:</td><td><input type="checkbox" onchange="reclick[MD5]();" id="beiback_rechnung[MD5]" disabled value="1" [BEIPACK_RECHNUNG] /></td><td><span id="renr[MD5]">[RENR]</span></td><td></td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
-->
|
||||||
|
|
||||||
<table width="100%">
|
<table width="100%">
|
||||||
<tr><td width="100%">[ARTIKEL]</td></tr>
|
<tr><td width="100%">[ARTIKEL]</td></tr>
|
||||||
@@ -110,4 +114,4 @@ $(document).ready(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -11,9 +11,7 @@
|
|||||||
<input type="hidden" id="paketannahme_id" value="[ID]" />
|
<input type="hidden" id="paketannahme_id" value="[ID]" />
|
||||||
[BEFORETAB1]
|
[BEFORETAB1]
|
||||||
<div id="tabs-1">
|
<div id="tabs-1">
|
||||||
|
|
||||||
[TAB1START]
|
[TAB1START]
|
||||||
|
|
||||||
[MESSAGE1]
|
[MESSAGE1]
|
||||||
<form action="" method="post">
|
<form action="" method="post">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -26,25 +24,51 @@
|
|||||||
<tr><td>{|Lieferschein-Nr.|}:</td><td><input type=text size="40" name="lsnr" value=[LSNR]></td></tr>
|
<tr><td>{|Lieferschein-Nr.|}:</td><td><input type=text size="40" name="lsnr" value=[LSNR]></td></tr>
|
||||||
<tr><td>{|Rechnung-Nr.|}:</td><td><input type=text size="40" name="renr" value=[RENR]></td></tr>
|
<tr><td>{|Rechnung-Nr.|}:</td><td><input type=text size="40" name="renr" value=[RENR]></td></tr>
|
||||||
<tr><td>{|Bemerkung|}:</td><td><textarea rows="5" cols="40" name="bemerkung">[BEMERKUNG]</textarea></td></tr>
|
<tr><td>{|Bemerkung|}:</td><td><textarea rows="5" cols="40" name="bemerkung">[BEMERKUNG]</textarea></td></tr>
|
||||||
<tr><td><input type="submit" name="speichern" class="btnGreenNew" value="Speichern"></td>
|
[ISLIEFERANTSTART]
|
||||||
|
<tr><td>{|Ziellager|}:</td><td><input type=text size="40" name="ziellager" id="ziellager" value=[LAGER]></td></tr>
|
||||||
|
[ISLIEFERANTENDE]
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-12 col-md-2 col-md-height">
|
<div class="col-xs-12 col-md-2 col-md-height">
|
||||||
<div class="inside inside-full-height">
|
<div class="inside inside-full-height">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>{|Aktionen|}</legend>
|
[BUTTONS]
|
||||||
[BUTTONS]
|
[BEFOREFRM]
|
||||||
[BEFOREFRM]
|
[AFTERFRM]
|
||||||
[AFTERFRM]
|
[DISTRIINHALTBUTTONS]
|
||||||
[DISTRIINHALTBUTTONS]
|
[BEFOREFRM]
|
||||||
<input type="submit" name="abschliessen" id="btnabschliessen" class="btnGreenNew" value="Paketinhalt ist erfasst">
|
[AFTERFRM]
|
||||||
[BEFOREMANUELLERFASSEN]
|
<table width="100%" border="0" class="mkTableFormular">
|
||||||
<input type="submit" name="manuellerfassen" class="btnBlueNew" value="Artikel manuell erfassen">
|
<legend>{|Aktionen|}</legend>
|
||||||
[AFTERMANUELLERFASSEN]
|
[BEFOREMANUELLERFASSEN]
|
||||||
[BEFOREFRM]
|
<tr><td>
|
||||||
[AFTERFRM]
|
<button name="submit" class="ui-button-icon" style="width:100%;" value="manuellerfassen">{|Artikel manuell erfassen|}</button>
|
||||||
|
</td></tr>
|
||||||
|
[AFTERMANUELLERFASSEN]
|
||||||
|
[ISLIEFERANTSTART]
|
||||||
|
<!--
|
||||||
|
<tr><td>
|
||||||
|
<button name="submit" class="ui-button-icon" style="width:100%;" value="fuellen">{|Aus Bestellungen füllen|}</button>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td>
|
||||||
|
<button name="submit" class="ui-button-icon" style="width:100%;" value="leeren">{|Leeren|}</button>
|
||||||
|
</td></tr>
|
||||||
|
-->
|
||||||
|
[ISLIEFERANTENDE]
|
||||||
|
<tr><td>
|
||||||
|
<button name="submit" class="ui-button-icon" style="width:100%;" value="speichern">{|Speichern|}</button>
|
||||||
|
</td></tr>
|
||||||
|
[ISLIEFERANTSTART]
|
||||||
|
<tr><td>
|
||||||
|
<button name="submit" class="ui-button-icon" style="width:100%;" value="buchen">{|Buchen|}</button>
|
||||||
|
</td></tr>
|
||||||
|
[ISLIEFERANTENDE]
|
||||||
|
<tr><td>
|
||||||
|
<button name="submit" class="ui-button-icon" style="width:100%;" value="abschliessen">{|Abschließen|}</button>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -54,7 +78,7 @@
|
|||||||
<div class="row-height">
|
<div class="row-height">
|
||||||
<div class="col-xs-12 col-md-10 col-md-height">
|
<div class="col-xs-12 col-md-10 col-md-height">
|
||||||
<div class="inside-white inside-full-height">
|
<div class="inside-white inside-full-height">
|
||||||
[TAB1]
|
[TAB1]
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+10
-6
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||||
*
|
*
|
||||||
@@ -10,8 +10,8 @@
|
|||||||
* 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 Logfile {
|
class Logfile {
|
||||||
/** @var Application $app */
|
/** @var Application $app */
|
||||||
@@ -253,9 +253,13 @@ class Logfile {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(is_array($meldung)) {
|
|
||||||
$meldung = $this->app->DB->real_escape_string(print_r($meldung, true));
|
$module = $this->app->DB->real_escape_string(is_scalar($module) ? strval($module) : print_r($module, true));
|
||||||
}
|
$action = $this->app->DB->real_escape_string(is_scalar($action) ? strval($action) : print_r($action, true));
|
||||||
|
$meldung = $this->app->DB->real_escape_string(is_scalar($meldung) ? strval($meldung) : print_r($meldung, true));
|
||||||
|
$dump = $this->app->DB->real_escape_string(is_scalar($dump) ? strval($dump) : print_r($dump, true));
|
||||||
|
$functionname = $this->app->DB->real_escape_string(is_scalar($functionname) ? strval($functionname) : print_r($functionname, true));
|
||||||
|
|
||||||
$this->app->DB->Insert(
|
$this->app->DB->Insert(
|
||||||
sprintf(
|
sprintf(
|
||||||
"INSERT INTO logfile (module,action,meldung,dump,datum,bearbeiter,funktionsname)
|
"INSERT INTO logfile (module,action,meldung,dump,datum,bearbeiter,funktionsname)
|
||||||
|
|||||||
@@ -401,7 +401,8 @@ class Managementboard
|
|||||||
/** @var Rechnungslauf $obj */
|
/** @var Rechnungslauf $obj */
|
||||||
$obj = $this->app->erp->LoadModul('rechnungslauf');
|
$obj = $this->app->erp->LoadModul('rechnungslauf');
|
||||||
if($obj){
|
if($obj){
|
||||||
$w[24] = $obj->RechnungslaufRechnungslauf(true);
|
// $w[24] = $obj->RechnungslaufRechnungslauf(true); // This does not exist, presumably old xentral function
|
||||||
|
$w[24] = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$w[24] = 0;
|
$w[24] = 0;
|
||||||
|
|||||||
@@ -610,7 +610,7 @@ class Shopexport
|
|||||||
'SELECT `id`
|
'SELECT `id`
|
||||||
FROM `shopexport`
|
FROM `shopexport`
|
||||||
WHERE `aktiv` = 1 AND `autosendarticle` = 1 AND `artikelexport` = 1
|
WHERE `aktiv` = 1 AND `autosendarticle` = 1 AND `artikelexport` = 1
|
||||||
AND (`autosendarticle_last` IS NULL OR DATE_ADD(`autosendarticle_last` INTERVAL %d MINUTE) <= NOW())',
|
AND (`autosendarticle_last` IS NULL OR DATE_ADD(`autosendarticle_last`, INTERVAL %d MINUTE) <= NOW())',
|
||||||
$minutes
|
$minutes
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -333,34 +333,64 @@ class Shopimporter_Presta extends ShopimporterBase
|
|||||||
if (empty($nummer))
|
if (empty($nummer))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$searchresult = $this->prestaRequest('GET', 'products?filter[reference]='.$nummer);
|
$productsresult = $this->prestaRequest('GET', 'products?filter[reference]='.$nummer);
|
||||||
if (empty($searchresult)) {
|
$combinationsresult = $this->prestaRequest('GET', 'combinations?filter[reference]='.$nummer);
|
||||||
|
$numberOfCombinations = count($combinationsresult->combinations->combination);
|
||||||
|
$numberOfProducts = count($productsresult->products->product);
|
||||||
|
$numberOfResults = $numberOfProducts + $numberOfCombinations;
|
||||||
|
if ($numberOfResults > 1) {
|
||||||
|
$this->Log('Got multiple results from Shop', $this->data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
elseif ($numberOfResults < 1) {
|
||||||
$this->Log('No product found in Shop', $this->data);
|
$this->Log('No product found in Shop', $this->data);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (count($searchresult->products->product) > 1) {
|
|
||||||
$this->Log('Got multiple results from Shop', $this->data);
|
|
||||||
}
|
|
||||||
|
|
||||||
$productid = $searchresult->products->product->attributes()->id;
|
$isCombination = $numberOfCombinations > 0;
|
||||||
$product = $this->prestaRequest('GET', "products/$productid");
|
if ($isCombination) {
|
||||||
|
$combinationId = intval($combinationsresult->combinations->combination->attributes()->id);
|
||||||
|
$combination = $this->prestaRequest('GET', "combinations/$combinationId");
|
||||||
|
$productId = intval($combination->combination->id_product);
|
||||||
|
} else {
|
||||||
|
$productId = intval($productsresult->products->product->attributes()->id);
|
||||||
|
}
|
||||||
|
$product = $this->prestaRequest('GET', "products/$productId");
|
||||||
$res = [];
|
$res = [];
|
||||||
$res['nummer'] = strval($product->product->reference);
|
if ($isCombination) {
|
||||||
$res['artikelnummerausshop'] = strval($product->product->reference);
|
$res['nummer'] = strval($combination->combination->reference);
|
||||||
|
$res['artikelnummerausshop'] = strval($combination->combination->reference);
|
||||||
|
$res['ean'] = strval($combination->combination->ean13);
|
||||||
|
$res['preis_netto'] = floatval($product->product->price) + floatval($combination->combination->price);
|
||||||
|
} else {
|
||||||
|
$res['nummer'] = strval($product->product->reference);
|
||||||
|
$res['artikelnummerausshop'] = strval($product->product->reference);
|
||||||
|
$res['ean'] = strval($product->product->ean13);
|
||||||
|
$res['preis_netto'] = floatval($product->product->price);
|
||||||
|
}
|
||||||
$names = $this->toMultilangArray($product->product->name->language);
|
$names = $this->toMultilangArray($product->product->name->language);
|
||||||
$descriptions = $this->toMultilangArray($product->product->description->language);
|
$descriptions = $this->toMultilangArray($product->product->description->language);
|
||||||
$shortdescriptions = $this->toMultilangArray($product->product->description_short->language);
|
$shortdescriptions = $this->toMultilangArray($product->product->description_short->language);
|
||||||
|
$metadescriptions = $this->toMultilangArray($product->product->meta_description->language);
|
||||||
|
$metakeywords = $this->toMultilangArray($product->product->meta_keywords->language);
|
||||||
|
$metatitles = $this->toMultilangArray($product->product->meta_title->language);
|
||||||
$res['name'] = $names['de'];
|
$res['name'] = $names['de'];
|
||||||
$res['name_en'] = $names['en'];
|
$res['name_en'] = $names['en'];
|
||||||
$res['uebersicht_de'] = $descriptions['de'];
|
$res['uebersicht_de'] = $descriptions['de'];
|
||||||
$res['uebersicht_en'] = $descriptions['en'];
|
$res['uebersicht_en'] = $descriptions['en'];
|
||||||
$res['preis_netto'] = strval($product->product->price);
|
$res['kurztext_de'] = strip_tags($shortdescriptions['de']);
|
||||||
|
$res['kurztext_en'] = strip_tags($shortdescriptions['en']);
|
||||||
$res['hersteller'] = strval($product->product->manufacturer_name);
|
$res['hersteller'] = strval($product->product->manufacturer_name);
|
||||||
$res['ean'] = strval($product->product->ean13);
|
$res['metakeywords_de'] = $metakeywords['de'];
|
||||||
|
$res['metakeywords_en'] = $metakeywords['en'];
|
||||||
|
$res['metatitle_de'] = $metatitles['de'];
|
||||||
|
$res['metatitle_en'] = $metatitles['en'];
|
||||||
|
$res['metadescription_de'] = $metadescriptions['de'];
|
||||||
|
$res['metadescription_en'] = $metadescriptions['en'];
|
||||||
|
|
||||||
$images = [];
|
$images = [];
|
||||||
foreach ($product->product->associations->images->image as $img) {
|
foreach ($product->product->associations->images->image as $img) {
|
||||||
$endpoint = "images/products/$productid/$img->id";
|
$endpoint = "images/products/$productId/$img->id";
|
||||||
$imgdata = $this->prestaRequest('GET', $endpoint, '', true);
|
$imgdata = $this->prestaRequest('GET', $endpoint, '', true);
|
||||||
$images[] = [
|
$images[] = [
|
||||||
'content' => base64_encode($imgdata),
|
'content' => base64_encode($imgdata),
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
/*
|
/*
|
||||||
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
**** COPYRIGHT & LICENSE NOTICE *** DO NOT REMOVE ****
|
||||||
*
|
*
|
||||||
@@ -10,8 +10,8 @@
|
|||||||
* 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
|
||||||
use Xentral\Components\Http\JsonResponse;
|
use Xentral\Components\Http\JsonResponse;
|
||||||
|
|
||||||
@@ -230,10 +230,14 @@ class Shopimporter_Shopify extends ShopimporterBase
|
|||||||
if(isset($this->app->User) && $this->app->User && method_exists($this->app->User, 'GetName')){
|
if(isset($this->app->User) && $this->app->User && method_exists($this->app->User, 'GetName')){
|
||||||
$this->bearbeiter = $this->app->DB->real_escape_string($this->app->User->GetName());
|
$this->bearbeiter = $this->app->DB->real_escape_string($this->app->User->GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
$einstellungen = $this->app->DB->Select("SELECT einstellungen_json FROM shopexport WHERE id = '$shopid' LIMIT 1");
|
$einstellungen = $this->app->DB->Select("SELECT einstellungen_json FROM shopexport WHERE id = '$shopid' LIMIT 1");
|
||||||
if($einstellungen){
|
if(!empty($einstellungen)){
|
||||||
$einstellungen = json_decode($einstellungen,true);
|
$einstellungen = json_decode($einstellungen,true);
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->ShopifyURL=trim($einstellungen['felder']['ShopifyURL']);
|
$this->ShopifyURL=trim($einstellungen['felder']['ShopifyURL']);
|
||||||
if(stripos($this->ShopifyURL,'http') === false){
|
if(stripos($this->ShopifyURL,'http') === false){
|
||||||
$this->ShopifyURL = 'https://'.$this->ShopifyURL;
|
$this->ShopifyURL = 'https://'.$this->ShopifyURL;
|
||||||
@@ -396,7 +400,7 @@ class Shopimporter_Shopify extends ShopimporterBase
|
|||||||
$this->adapter->call("products/".$result['data']['product']['id']."/metafields.json", 'POST', array('metafield' => [
|
$this->adapter->call("products/".$result['data']['product']['id']."/metafields.json", 'POST', array('metafield' => [
|
||||||
'key' => 'sync_status',
|
'key' => 'sync_status',
|
||||||
'value' => 1,
|
'value' => 1,
|
||||||
'value_type' => 'integer',
|
'type' => 'number_integer',
|
||||||
'namespace' => 'xentral',
|
'namespace' => 'xentral',
|
||||||
]));
|
]));
|
||||||
if($result['data']['product']['id'] == $nummer) {
|
if($result['data']['product']['id'] == $nummer) {
|
||||||
@@ -429,7 +433,7 @@ class Shopimporter_Shopify extends ShopimporterBase
|
|||||||
$this->adapter->call("variants/".$resultv['variant']['id']."/metafields.json", 'POST', array('metafield' => [
|
$this->adapter->call("variants/".$resultv['variant']['id']."/metafields.json", 'POST', array('metafield' => [
|
||||||
'key' => 'sync_status',
|
'key' => 'sync_status',
|
||||||
'value' => 1,
|
'value' => 1,
|
||||||
'value_type' => 'integer',
|
'type' => 'number_integer',
|
||||||
'namespace' => 'xentral',
|
'namespace' => 'xentral',
|
||||||
]));
|
]));
|
||||||
$data['nummer'] = $resultv['data']['variant']['sku'];
|
$data['nummer'] = $resultv['data']['variant']['sku'];
|
||||||
@@ -690,7 +694,7 @@ class Shopimporter_Shopify extends ShopimporterBase
|
|||||||
$inventoryitemid = $resultv['data']['variant']['inventory_item_id'];
|
$inventoryitemid = $resultv['data']['variant']['inventory_item_id'];
|
||||||
$resulti = $this->adapter->call("inventory_levels.json?inventory_item_ids=$inventoryitemid&location_ids=$locationid");
|
$resulti = $this->adapter->call("inventory_levels.json?inventory_item_ids=$inventoryitemid&location_ids=$locationid");
|
||||||
$vorhanden = $resulti['data']['inventory_levels'][0]['available'];
|
$vorhanden = $resulti['data']['inventory_levels'][0]['available'];
|
||||||
$adjust = $lageranzahl - $vorhanden;
|
$adjust = floatval($lageranzahl) - floatval($vorhanden);
|
||||||
if($adjust != 0){
|
if($adjust != 0){
|
||||||
$data = array("location_id" => $locationid,
|
$data = array("location_id" => $locationid,
|
||||||
"inventory_item_id"=> $inventoryitemid,
|
"inventory_item_id"=> $inventoryitemid,
|
||||||
@@ -1015,12 +1019,12 @@ class Shopimporter_Shopify extends ShopimporterBase
|
|||||||
$dataproduct['product']['variants'][0]['metafields'] = array(array(
|
$dataproduct['product']['variants'][0]['metafields'] = array(array(
|
||||||
"key" => "harmonized_system_code",
|
"key" => "harmonized_system_code",
|
||||||
"value"=> $zolltarifnummer,
|
"value"=> $zolltarifnummer,
|
||||||
"value_type"=> "string",
|
"type"=> "text",
|
||||||
"namespace"=> "global"),
|
"namespace"=> "global"),
|
||||||
[
|
[
|
||||||
'key' => 'sync_status',
|
'key' => 'sync_status',
|
||||||
'value' => 1,
|
'value' => 1,
|
||||||
'value_type' => 'integer',
|
'type' => 'number_integer',
|
||||||
'namespace' => 'xentral',
|
'namespace' => 'xentral',
|
||||||
]);
|
]);
|
||||||
if($pseudopreis != ''){
|
if($pseudopreis != ''){
|
||||||
@@ -1185,12 +1189,12 @@ class Shopimporter_Shopify extends ShopimporterBase
|
|||||||
$veigenschaften[] = array(
|
$veigenschaften[] = array(
|
||||||
"key" => "harmonized_system_code",
|
"key" => "harmonized_system_code",
|
||||||
"value"=> $value['zolltarifnummer'],
|
"value"=> $value['zolltarifnummer'],
|
||||||
"value_type"=> "string",
|
"type"=> "text",
|
||||||
"namespace"=> "global");
|
"namespace"=> "global");
|
||||||
$veigenschaften[] = [
|
$veigenschaften[] = [
|
||||||
'key' => 'sync_status',
|
'key' => 'sync_status',
|
||||||
'value' => 1,
|
'value' => 1,
|
||||||
'value_type' => 'integer',
|
'type' => 'number_integer',
|
||||||
'namespace' => 'xentral',
|
'namespace' => 'xentral',
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -3334,7 +3338,7 @@ class Shopimporter_Shopify extends ShopimporterBase
|
|||||||
$this->adapter->call('orders/' . $auftrag . '/metafields.json', 'POST', array('metafield' => [
|
$this->adapter->call('orders/' . $auftrag . '/metafields.json', 'POST', array('metafield' => [
|
||||||
'key' => 'sync_status',
|
'key' => 'sync_status',
|
||||||
'value' => 1,
|
'value' => 1,
|
||||||
'value_type' => 'integer',
|
'type' => 'number_integer',
|
||||||
'namespace' => 'xentral',
|
'namespace' => 'xentral',
|
||||||
]));
|
]));
|
||||||
return 'ok';
|
return 'ok';
|
||||||
@@ -3367,7 +3371,7 @@ class Shopimporter_Shopify extends ShopimporterBase
|
|||||||
$this->adapter->call('orders/' . $auftrag . '/metafields.json', 'POST', array('metafield' => [
|
$this->adapter->call('orders/' . $auftrag . '/metafields.json', 'POST', array('metafield' => [
|
||||||
'key' => 'sync_status',
|
'key' => 'sync_status',
|
||||||
'value' => 3,
|
'value' => 3,
|
||||||
'value_type' => 'integer',
|
'type' => 'number_integer',
|
||||||
'namespace' => 'xentral',
|
'namespace' => 'xentral',
|
||||||
]));
|
]));
|
||||||
}
|
}
|
||||||
@@ -3420,7 +3424,7 @@ class Shopimporter_Shopify extends ShopimporterBase
|
|||||||
$this->adapter->call('orders/' . $auftrag . '/metafields.json', 'POST', array('metafield' => [
|
$this->adapter->call('orders/' . $auftrag . '/metafields.json', 'POST', array('metafield' => [
|
||||||
'key' => 'sync_status',
|
'key' => 'sync_status',
|
||||||
'value' => 2,
|
'value' => 2,
|
||||||
'value_type' => 'integer',
|
'type' => 'number_integer',
|
||||||
'namespace' => 'xentral',
|
'namespace' => 'xentral',
|
||||||
]));
|
]));
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class Ticket {
|
|||||||
$dropnbox = "'<img src=./themes/new/images/details_open.png class=details>' AS `open`,
|
$dropnbox = "'<img src=./themes/new/images/details_open.png class=details>' AS `open`,
|
||||||
CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',t.id,'\" />') AS `auswahl`";
|
CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',t.id,'\" />') AS `auswahl`";
|
||||||
|
|
||||||
$priobetreff = "if(t.prio!=1,t.betreff,CONCAT('<b><font color=red>',t.betreff,'</font></b>'))";
|
$priobetreff = "if(t.prio!=1,REGEXP_REPLACE(t.betreff, '<[^>]*>+', ''),CONCAT('<b><font color=red>',REGEXP_REPLACE(t.betreff, '<[^>]*>+', ''),'</font></b>'))"; //+ #20230916 XSS
|
||||||
|
|
||||||
$anzahlnachrichten = "(SELECT COUNT(n.id) FROM ticket_nachricht n WHERE n.ticket = t.schluessel)";
|
$anzahlnachrichten = "(SELECT COUNT(n.id) FROM ticket_nachricht n WHERE n.ticket = t.schluessel)";
|
||||||
|
|
||||||
@@ -310,6 +310,8 @@ class Ticket {
|
|||||||
// Add Messages now
|
// Add Messages now
|
||||||
foreach ($messages as $message) {
|
foreach ($messages as $message) {
|
||||||
|
|
||||||
|
$message['betreff'] = strip_tags($message['betreff']); //+ #20230916 XSS
|
||||||
|
|
||||||
// Clear this first
|
// Clear this first
|
||||||
$this->app->Tpl->Set('NACHRICHT_ANHANG',"");
|
$this->app->Tpl->Set('NACHRICHT_ANHANG',"");
|
||||||
|
|
||||||
@@ -622,6 +624,8 @@ class Ticket {
|
|||||||
|
|
||||||
$ticket_from_db = $this->app->DB->SelectArr($sql)[0];
|
$ticket_from_db = $this->app->DB->SelectArr($sql)[0];
|
||||||
|
|
||||||
|
$ticket_from_db['betreff'] = htmlentities(strip_tags($ticket_from_db['betreff'])); //+ #20230916 XSS
|
||||||
|
|
||||||
foreach ($ticket_from_db as $key => $value) {
|
foreach ($ticket_from_db as $key => $value) {
|
||||||
$this->app->Tpl->Set(strtoupper($key), $value);
|
$this->app->Tpl->Set(strtoupper($key), $value);
|
||||||
}
|
}
|
||||||
@@ -733,10 +737,10 @@ class Ticket {
|
|||||||
|
|
||||||
if (!empty($recv_messages)) {
|
if (!empty($recv_messages)) {
|
||||||
if (!str_starts_with(strtoupper($recv_messages[0]['betreff']),"RE:")) {
|
if (!str_starts_with(strtoupper($recv_messages[0]['betreff']),"RE:")) {
|
||||||
$betreff = "RE: ".$recv_messages[0]['betreff'];
|
$betreff = "RE: ".strip_tags($recv_messages[0]['betreff']); //+ #20230916 XSS
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$betreff = $recv_messages[0]['betreff'];
|
$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'";
|
$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'";
|
||||||
|
|||||||
+97
-43
@@ -98,67 +98,121 @@ class Ticketregeln {
|
|||||||
if (empty($id)) {
|
if (empty($id)) {
|
||||||
// New item
|
// New item
|
||||||
$id = 'NULL';
|
$id = 'NULL';
|
||||||
|
|
||||||
|
// Check for ticketid
|
||||||
|
$ticketid = $this->app->Secure->GetPOST('ticketid');
|
||||||
|
if (!empty($ticketid)) {
|
||||||
|
$sql = "
|
||||||
|
SELECT
|
||||||
|
n.id,
|
||||||
|
n.betreff,
|
||||||
|
n.bearbeiter,
|
||||||
|
n.verfasser,
|
||||||
|
n.mail,
|
||||||
|
t.quelle,
|
||||||
|
t.warteschlange,
|
||||||
|
".$this->app->erp->FormatDateTimeShort('n.zeit','zeit').",
|
||||||
|
".$this->app->erp->FormatDateTimeShort('n.zeitausgang','zeitausgang').",
|
||||||
|
n.versendet,
|
||||||
|
n.text,
|
||||||
|
n.textausgang,
|
||||||
|
n.verfasser_replyto,
|
||||||
|
n.mail_replyto,
|
||||||
|
n.mail_cc,
|
||||||
|
(SELECT GROUP_CONCAT(value SEPARATOR ', ') FROM ticket_header th WHERE th.ticket_nachricht = n.id AND th.type = 'cc') as mail_cc_recipients,
|
||||||
|
(SELECT GROUP_CONCAT(value SEPARATOR ', ') FROM ticket_header th WHERE th.ticket_nachricht = n.id AND th.type = 'to') as mail_recipients
|
||||||
|
FROM ticket_nachricht n INNER JOIN ticket t ON t.schluessel = n.ticket
|
||||||
|
WHERE t.id = ".$ticketid." ORDER BY n.zeit DESC LIMIT 1";
|
||||||
|
|
||||||
|
$last_message = $this->app->DB->SelectArr($sql)[0];
|
||||||
|
|
||||||
|
$input['empfaenger_email'] = $last_message['mail_recipients'];
|
||||||
|
$input['sender_email'] = $last_message['mail'];
|
||||||
|
$input['name'] = $last_message['verfasser'];
|
||||||
|
$input['betreff'] = $last_message['betreff'];
|
||||||
|
$input['warteschlange'] = $last_message['warteschlange'];
|
||||||
|
|
||||||
|
$from_ticket = true;
|
||||||
|
|
||||||
|
$result = array(
|
||||||
|
'empfaenger_email' => $last_message['mail_recipients'],
|
||||||
|
'sender_email' => $last_message['mail'],
|
||||||
|
'name' => $last_message['verfasser'],
|
||||||
|
'betreff' => $last_message['betreff'],
|
||||||
|
'warteschlange' => $last_message['warteschlange'],
|
||||||
|
'aktiv' => 1
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($submit != '')
|
if (!$from_ticket) {
|
||||||
{
|
|
||||||
|
|
||||||
// Write to database
|
if ($submit != '')
|
||||||
|
{
|
||||||
// Add checks here
|
|
||||||
$input['warteschlange'] = explode(" ",$input['warteschlange'])[0]; // Just the label
|
|
||||||
|
|
||||||
$columns = "id, ";
|
// Write to database
|
||||||
$values = "$id, ";
|
|
||||||
$update = "";
|
// Add checks here
|
||||||
|
$input['warteschlange'] = explode(" ",$input['warteschlange'])[0]; // Just the label
|
||||||
$fix = "";
|
|
||||||
|
|
||||||
foreach ($input as $key => $value) {
|
$columns = "id, ";
|
||||||
$columns = $columns.$fix.$key;
|
$values = "$id, ";
|
||||||
$values = $values.$fix."'".$value."'";
|
$update = "";
|
||||||
$update = $update.$fix.$key." = '$value'";
|
|
||||||
|
$fix = "";
|
||||||
|
|
||||||
$fix = ", ";
|
foreach ($input as $key => $value) {
|
||||||
|
$columns = $columns.$fix.$key;
|
||||||
|
$values = $values.$fix."'".$value."'";
|
||||||
|
$update = $update.$fix.$key." = '$value'";
|
||||||
|
|
||||||
|
$fix = ", ";
|
||||||
|
}
|
||||||
|
|
||||||
|
// echo($columns."<br>");
|
||||||
|
// echo($values."<br>");
|
||||||
|
// echo($update."<br>");
|
||||||
|
|
||||||
|
$sql = "INSERT INTO ticket_regeln (".$columns.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$update;
|
||||||
|
|
||||||
|
// echo($sql);
|
||||||
|
|
||||||
|
$this->app->DB->Update($sql);
|
||||||
|
|
||||||
|
if ($id == 'NULL') {
|
||||||
|
$msg = $this->app->erp->base64_url_encode("<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>");
|
||||||
|
header("Location: index.php?module=ticketregeln&action=list&msg=$msg");
|
||||||
|
// $this->app->Tpl->Set('MESSAGE', "<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>");
|
||||||
|
// $id = $this->app->DB->GetInsertID();
|
||||||
|
} else {
|
||||||
|
$this->app->Tpl->Set('MESSAGE', "<div class=\"success\">Die Einstellungen wurden erfolgreich übernommen.</div>");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// echo($columns."<br>");
|
|
||||||
// echo($values."<br>");
|
// Load values again from database
|
||||||
// echo($update."<br>");
|
$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];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$sql = "INSERT INTO ticket_regeln (".$columns.") VALUES (".$values.") ON DUPLICATE KEY UPDATE ".$update;
|
foreach ($result as $key => $value) {
|
||||||
|
|
||||||
// echo($sql);
|
|
||||||
|
|
||||||
$this->app->DB->Update($sql);
|
|
||||||
|
|
||||||
if ($id == 'NULL') {
|
|
||||||
$msg = $this->app->erp->base64_url_encode("<div class=\"success\">Das Element wurde erfolgreich angelegt.</div>");
|
|
||||||
header("Location: index.php?module=ticketregeln&action=list&msg=$msg");
|
|
||||||
} else {
|
|
||||||
$this->app->Tpl->Set('MESSAGE', "<div class=\"success\">Die Einstellungen wurden erfolgreich übernommen.</div>");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// 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, t.warteschlange, t.aktiv, t.id FROM ticket_regeln t"." WHERE id=$id");
|
|
||||||
|
|
||||||
foreach ($result[0] as $key => $value) {
|
|
||||||
$this->app->Tpl->Set(strtoupper($key), $value);
|
$this->app->Tpl->Set(strtoupper($key), $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add displayed items later
|
* Add displayed items later
|
||||||
*
|
*
|
||||||
|
|
||||||
$this->app->Tpl->Add('KURZUEBERSCHRIFT2', $email);
|
|
||||||
$this->app->Tpl->Add('EMAIL', $email);
|
|
||||||
$this->app->Tpl->Add('ANGEZEIGTERNAME', $angezeigtername);
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$this->app->YUI->AutoComplete("warteschlange","warteschlangename");
|
$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->YUI->AutoComplete("warteschlange","warteschlangename");
|
||||||
|
|
||||||
// $this->SetInput($input);
|
// $this->SetInput($input);
|
||||||
$this->app->Tpl->Parse('PAGE', "ticketregeln_edit.tpl");
|
$this->app->Tpl->Parse('PAGE', "ticketregeln_edit.tpl");
|
||||||
|
|||||||
+2329
-2357
File diff suppressed because it is too large
Load Diff
@@ -1,37 +1,3 @@
|
|||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../themes/new/fonts/Inter-Regular.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../themes/new/fonts/Inter-Regular.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../themes/new/fonts/Inter-Italic.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../themes/new/fonts/Inter-Italic.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../themes/new/fonts/Inter-Bold.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../themes/new/fonts/Inter-Bold.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../themes/new/fonts/Inter-BoldItalic.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../themes/new/fonts/Inter-BoldItalic.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-family: 'Inter', Arial, Helvetica, sans-serif;
|
font-family: 'Inter', Arial, Helvetica, sans-serif;
|
||||||
|
|||||||
@@ -1,38 +1,3 @@
|
|||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../themes/new/fonts/Inter-Regular.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-Regular.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../themes/new/fonts/Inter-Italic.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-Italic.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Inter-Bold.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-Bold.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Inter-BoldItalic.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-BoldItalic.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,39 +1,3 @@
|
|||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Inter-Regular.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-Regular.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Inter-Italic.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-Italic.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Inter-Bold.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-Bold.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../themes/new/fonts/Inter-BoldItalic.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../themes/new/fonts/Inter-BoldItalic.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
html {
|
html {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,71 +1,3 @@
|
|||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Inter-Regular.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-Regular.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Inter-Italic.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-Italic.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
font-display: swap;
|
|
||||||
src: url("../fonts/Inter-Medium.woff2?v=3.13") format("woff2"),
|
|
||||||
url("../fonts/Inter-Medium.woff?v=3.13") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 500;
|
|
||||||
font-display: swap;
|
|
||||||
src: url("../fonts/Inter-MediumItalic.woff2?v=3.13") format("woff2"),
|
|
||||||
url("../fonts/Inter-MediumItalic.woff?v=3.13") format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 600;
|
|
||||||
font-display: swap;
|
|
||||||
src: url("../fonts/Inter-SemiBold.woff2?v=3.13") format("woff2"),
|
|
||||||
url("../fonts/Inter-SemiBold.woff?v=3.13") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 600;
|
|
||||||
font-display: swap;
|
|
||||||
src: url("../fonts/Inter-SemiBoldItalic.woff2?v=3.13") format("woff2"),
|
|
||||||
url("../fonts/Inter-SemiBoldItalic.woff?v=3.13") format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Inter-Bold.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-Bold.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Inter';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: url('../fonts/Inter-BoldItalic.woff2?v=3.13') format("woff2"),
|
|
||||||
url('../fonts/Inter-BoldItalic.woff?v=3.13') format("woff");
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
font-family: 'Inter', Arial, Helvetica, sans-serif;
|
font-family: 'Inter', Arial, Helvetica, sans-serif;
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -195,7 +195,7 @@ background-color:red;
|
|||||||
/*
|
/*
|
||||||
function fillArtikel(id,menge)
|
function fillArtikel(id,menge)
|
||||||
{
|
{
|
||||||
if(menge < 1)
|
if(menge <= 0)
|
||||||
menge=1;
|
menge=1;
|
||||||
strSource = "./index.php";
|
strSource = "./index.php";
|
||||||
strData = "module=artikel&action=ajaxwerte&id="+id+"&smodule=[MODULE]&sid=[KID]&menge="+menge;
|
strData = "module=artikel&action=ajaxwerte&id="+id+"&smodule=[MODULE]&sid=[KID]&menge="+menge;
|
||||||
@@ -209,7 +209,7 @@ function fillArtikel(id,menge)
|
|||||||
|
|
||||||
function fillArtikel(id,menge)
|
function fillArtikel(id,menge)
|
||||||
{
|
{
|
||||||
if(menge < 1)
|
if(menge <= 0)
|
||||||
menge=1;
|
menge=1;
|
||||||
|
|
||||||
var tmp = id.split(' ');
|
var tmp = id.split(' ');
|
||||||
@@ -250,7 +250,7 @@ function fillArtikel(id,menge)
|
|||||||
|
|
||||||
function fillArtikelBestellung(id,menge)
|
function fillArtikelBestellung(id,menge)
|
||||||
{
|
{
|
||||||
if(menge < 1)
|
if(menge <= 0)
|
||||||
menge=1;
|
menge=1;
|
||||||
|
|
||||||
var vpe = 1;
|
var vpe = 1;
|
||||||
@@ -297,7 +297,7 @@ function fillArtikelBestellung(id,menge)
|
|||||||
|
|
||||||
function fillArtikelProduktion(id,menge)
|
function fillArtikelProduktion(id,menge)
|
||||||
{
|
{
|
||||||
if(menge < 1)
|
if(menge <= 0)
|
||||||
menge=1;
|
menge=1;
|
||||||
|
|
||||||
var tmp = id.split(' ');
|
var tmp = id.split(' ');
|
||||||
@@ -325,7 +325,7 @@ function fillArtikelLieferschein(id,menge)
|
|||||||
id = tmp[0];
|
id = tmp[0];
|
||||||
//wenn ab Menge dabei steht
|
//wenn ab Menge dabei steht
|
||||||
|
|
||||||
if(menge < 1)
|
if(menge <= 0)
|
||||||
menge=1;
|
menge=1;
|
||||||
strSource = "./index.php";
|
strSource = "./index.php";
|
||||||
|
|
||||||
@@ -343,7 +343,7 @@ function fillArtikelLieferschein(id,menge)
|
|||||||
|
|
||||||
function fillArtikelInventur(id,menge)
|
function fillArtikelInventur(id,menge)
|
||||||
{
|
{
|
||||||
if(menge < 1)
|
if(menge <= 0)
|
||||||
menge=1;
|
menge=1;
|
||||||
|
|
||||||
var tmp = id.split(' ');
|
var tmp = id.split(' ');
|
||||||
|
|||||||
Reference in New Issue
Block a user