initializing git repo

This commit is contained in:
Developer 2018-12-17 17:50:23 +01:00
commit 3df8fc53b8
86 changed files with 5649 additions and 0 deletions

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
config.php
downloads/
pictures/
log/

Binary file not shown.

Binary file not shown.

31
includes/globals.php Executable file
View file

@ -0,0 +1,31 @@
<?php
$GlobalDebungMode = 1;
$GlobalLogfile = "";
$GlobalLogfileMaxLength = 1000;
$GlobalTimeZone = "";
$GlobalTimeFormat = "";
$GlobalRootPassword = "";
$GlobalTemplate = "";
$GlobalLanguage = "";
$GlobalContent = "";
$GlobalMysqlHost = "";
$GlobalMysqlUser = "";
$GlobalMysqlPwd = "";
$GlobalMysqlHandler = 0;
$GlobalMysqlDatabase = "";
$GlobalLockAutoReleaseTime=3600;
$GlobalDownloadDir = "./downloads";
$GlobalPictureDir = "./pictures";
$GlobalDecimalPoint="."
?>

19
includes/java_scripts.php Executable file
View file

@ -0,0 +1,19 @@
<script type="text/javascript" language="JavaScript">
<!--
function ToggleDisplayStyle(ElementId)
{
var Element=document.getElementById(ElementId);
if(!Element)
return true;
if(Element.style.display=="none")
Element.style.display="block";
else
Element.style.display="none";
return true;
}
//-->
</script>

68
includes/language.php Executable file
View file

@ -0,0 +1,68 @@
<?php
function LangStr2Html ( $String )
{
$String = nl2br(htmlspecialchars($String,ENT_QUOTES));
//umlauts
$String = str_replace("ß","&szlig;",$String);
$String = str_replace("ä","&auml;",$String);
$String = str_replace("ö","&ouml;",$String);
$String = str_replace("ü","&uuml;",$String);
$String = str_replace("Ä","&Auml;",$String);
$String = str_replace("Ö","&Ouml;",$String);
$String = str_replace("Ü","&Uuml;",$String);
return $String;
}
function LangSpellHtml ( $Sentence )
{
return LangStr2Html(LangSpell($Sentence));
}
function LangSpell ( $Sentence )
{
global $GlobalLanguage;
$ReturnValue="";
if (file_exists("./languages/$GlobalLanguage.lng"))
$Language = file ("./languages/$GlobalLanguage.lng");
else
{
ErrorLog("[language.php] File \"./languages/$GlobalLanguage.lng\" not found!");
}
foreach ( $Language as $i )
{
$FileSentence=explode("=",$i,2);
if ( trim( $FileSentence[0] ) == $Sentence )
{
$ReturnValue=trim($FileSentence[1]);
break;
}
}
if (!$ReturnValue)
{
ErrorLog("[$GlobalLanguage.lng] Sentence \"$Sentence\" not found!");
$ReturnValue=$Sentence;
}
return $ReturnValue;
}
function LangGetAvailableLanguages ()
{
$ReturnValue=array();
$DirList=scandir('./languages/');
foreach ($DirList as $i)
{
$SplitString=explode(".",$i);
if ($i[0]=="." || strtolower($SplitString[1])!="lng")
continue;
$ReturnValue[count($ReturnValue)]=$SplitString[0];
}
return $ReturnValue;
}
?>

39
includes/load_config.php Executable file
View file

@ -0,0 +1,39 @@
<?php
//load config to global vars
include("./config.php");
if (strtolower($CfgSetDebugMode)=="true")
{
error_reporting(E_ALL);
ini_set('display_errors', 1);
global $GlobalDebungMode;
$GlobalDebungMode = 1;
}
else
{
global $GlobalDebungMode;
$GlobalDebungMode = 0;
}
$GlobalLogfile = $CfgLogfile;
$GlobalLogfileMaxLength = $CfgLogfileMaxLines;
$GlobalTimeZone = $CfgStdTimeZone;
$GlobalTimeFormat = $CfgStdTimeFormat;
$GlobalRootPassword = $CfgRootPassword;
$GlobalTemplate = $CfgStdTemplate;
$GlobalLanguage = $CfgStdLanguage;
$GlobalMysqlHost = $CfgMysqlHost;
$GlobalMysqlUser = $CfgMysqlUser;
$GlobalMysqlPwd = $CfgMysqlPwd;
$GlobalMysqlDatabase = $CfgMysqlDatabase;
$GlobalUserTimeout = $CfgLoginTimeout;
$GlobalLockAutoReleaseTime = $CfgLockAutoReleaseTime;
?>

65
includes/lock.php Executable file
View file

@ -0,0 +1,65 @@
<?php
function LockIsActive($Table,$Id)
{
$Ret=1;
global $GlobalMysqlHandler;
global $GlobalLockAutoReleaseTime;
$LockQuery="SELECT `LockId`, `LockTime` FROM `$Table` WHERE `Id` = $Id";
$LockQuery=mysqli_query($GlobalMysqlHandler, $LockQuery);
if ($LockQuery)
{
if (mysqli_num_rows($LockQuery))
{
$Lock = mysqli_fetch_array($LockQuery);
if (!$Lock['LockId']
|| ($Lock['LockId']==UserGetId())
|| ($Lock['LockTime']<(time()-$GlobalLockAutoReleaseTime))
)
{ $Ret=0; }
}
else
{ $Ret=0; }
}
else
{ ErrorLog("[lock.php] Can not fetch lock fields in table \"$Table\" at id $Id"); }
return $Ret;
}
function LockActivate($Table,$Id)
{
$Ret=0;
global $GlobalMysqlHandler;
if (!LockIsActive($Table,$Id))
{
$LockQuery="UPDATE `$Table` SET `LockId` = '".UserGetId()."', `LockTime` = '".time()."' WHERE `Id` =$Id";
if (mysqli_query($GlobalMysqlHandler, $LockQuery))
{ $Ret=1; }
else
{ ErrorLog("[lock.php] Can not update lock fields in table \"$Table\" at id $Id"); }
}
return $Ret;
}
function LockRelease($Table,$Id)
{
$Ret=0;
global $GlobalMysqlHandler;
if (!LockIsActive($Table,$Id))
{
$LockQuery="UPDATE `$Table` SET `LockId` = '0', `LockTime` = '0' WHERE `Id` =$Id";
if (mysqli_query($GlobalMysqlHandler, $LockQuery))
{ $Ret=1; }
else
{ ErrorLog("[lock.php] Can not update lock fields in table \"$Table\" at id $Id"); }
}
return $Ret;
}
?>

60
includes/log.php Executable file
View file

@ -0,0 +1,60 @@
<?php
$LogLineArray = array();
$LogFirstLineWritten = 0;
function ErrorLog ($Msg)
{
global $LogLineArray;
global $LogFirstLineWritten;
$LogFirstLineWritten = 1;
$LogLineArray[count($LogLineArray)]=LogFormatMessage($Msg);
$Dbg=debug_backtrace();
for ($i=0; $i<count($Dbg);$i++) $LogLineArray[count($LogLineArray)]= " - (Callstack $i) ".$Dbg[$i]['file'].":".$Dbg[$i]['line']."\n";
}
function LogWriteToFile ()
{
global $LogLineArray;
global $GlobalLogfile;
global $LogFirstLineWritten;
global $GlobalLogfileMaxLength;
if ($GlobalLogfile && $LogFirstLineWritten)
{
//read existing file
$ExistingFileArray=array();
if (file_exists($GlobalLogfile))
$ExistingFileArray=file($GlobalLogfile);
//merge both line arrays
$ExistingFileArray[count($ExistingFileArray)]="\n";
foreach ($LogLineArray as $x)
$ExistingFileArray[count($ExistingFileArray)]=$x;
//save to file
$FileHandler=fopen($GlobalLogfile,'w');
$Length=count($ExistingFileArray);
for ($i= (($Length>$GlobalLogfileMaxLength) ? $Length-$GlobalLogfileMaxLength:0); $i<$Length;$i++)
fputs($FileHandler,$ExistingFileArray[$i]);
fclose($FileHandler);
}
}
function LogClose ()
{
LogWriteToFile();
}
function LogFormatMessage ($Msg)
{
global $GlobalTimeZone;
global $GlobalTimeFormat;
date_default_timezone_set($GlobalTimeZone);
$NewMsg = "";
$NewMsg .= "[".date($GlobalTimeFormat,time())."]";
$NewMsg .= $Msg . "\n";
return $NewMsg;
}
?>

41
includes/message.php Executable file
View file

@ -0,0 +1,41 @@
<?php
$MessageErrorMsg="";
$MessageWarningMsg="";
$MessageSuccessMsg="";
function MessageError($Msg)
{
global $MessageErrorMsg;
$MessageErrorMsg.=$Msg."\n";
}
function MessageWarning($Msg)
{
global $MessageWarningMsg;
$MessageWarningMsg.=$Msg."\n";
}
function MessageSuccess($Msg)
{
global $MessageSuccessMsg;
$MessageSuccessMsg.=$Msg."\n";
}
function MessageGetErrors()
{
global $MessageErrorMsg;
return $MessageErrorMsg;
}
function MessageGetWarnings()
{
global $MessageWarningMsg;
return $MessageWarningMsg;
}
function MessageGetSuccess()
{
global $MessageSuccessMsg;
return $MessageSuccessMsg;
}
?>

28
includes/mysql.php Executable file
View file

@ -0,0 +1,28 @@
<?php
$MysqlErrorsArePresent = 0;
$GlobalMysqlHandler=mysqli_connect($GlobalMysqlHost,$GlobalMysqlUser,$GlobalMysqlPwd);
if (!$GlobalMysqlHandler)
{
ErrorLog("[mysql.php] Can not connect to mysql database \"$GlobalMysqlHost\" as \"$GlobalMysqlUser\"!");
$MysqlErrorsArePresent = 1;
}
else
{
if (!mysqli_select_db($GlobalMysqlHandler, $GlobalMysqlDatabase))
{
ErrorLog("[mysql.php] Can not select mysql database \"$GlobalMysqlDatabase\"!");
$MysqlErrorsArePresent = 2;
}
}
if ($MysqlErrorsArePresent)
MessageError(LangSpellHtml('SentenceDatabaseError'));
function MysqlCloseDb ()
{
global $GlobalMysqlHandler;
mysqli_close($GlobalMysqlHandler);
}
?>

View file

@ -0,0 +1,173 @@
<?php
///////////
//logistics
function NestedListGetParentId($Id, $TableName)
{
if (!$TableName || !$Id) return 0;
$ReturnValue=0;
global $GlobalMysqlHandler;
$Query = "SELECT `ParentId` FROM `$TableName` WHERE `Id` =$Id";
$Query = mysqli_query($GlobalMysqlHandler, $Query);
if (mysqli_num_rows($Query))
{
$Data=mysqli_fetch_array($Query);
$ReturnValue=$Data['ParentId'];
}
else
{
ErrorLog("[nested_list_functions.php] No table element found at id $Id in table \"$Table\"!");
}
return $ReturnValue;
}
function NestedListGetName($Id, $TableName)
{
if (!$TableName || !$Id) return "";
$ReturnValue="";
global $GlobalMysqlHandler;
$Query = "SELECT `Name` FROM `$TableName` WHERE `Id` =$Id";
$Query = mysqli_query($GlobalMysqlHandler, $Query);
if (mysqli_num_rows($Query))
{
$Data=mysqli_fetch_array($Query);
$ReturnValue=$Data['Name'];
}
else
{
ErrorLog("[nested_list_functions.php] No table element found at id $Id in table \"$Table\"!");
}
return $ReturnValue;
}
function NestedLisGetSubelements ($ParentId, $TableName)
{
if (!$TableName) return 0;
$ReturnValue=array();
global $GlobalMysqlHandler;
$Query = "SELECT `Id`,`Name` FROM `$TableName` WHERE `ParentId` = $ParentId";
$Query = mysqli_query($Query,$GlobalMysqlHandler);
while ($Item = mysqli_fetch_row($Query))
{
$counter=count($ReturnValue);
$ReturnValue[$counter][0] = $Item[0];
$ReturnValue[$counter][1] = $Item[1];
}
return $ReturnValue;
}
/////////////
// statistics
function NestedListCountSubElements($ParentId, $TableName)
{
if (!$TableName) return 0;
$ReturnValue=1;
global $GlobalMysqlHandler;
$Query = "SELECT * FROM `$TableName` WHERE `ParentId` =$ParentId";
$Query = mysqli_query($GlobalMysqlHandler, $Query);
$ReturnValue=mysqli_num_rows($Query);
return $ReturnValue;
}
///////////////////////////
//list-visibility functions
function NestedListVisibilityToggle ($Id, $ListIdentifier)
{
if (!$Id || !$ListIdentifier) return;
if (!isset($_SESSION[$ListIdentifier]))
{
$EmptyArray = array();
$_SESSION[$ListIdentifier] = $EmptyArray;
}
$IdArray = $_SESSION[$ListIdentifier];
if (NestedListVisibilityIsSet($Id, $ListIdentifier)) $IdArray[$Id] = "False";
else $IdArray[$Id] = "True";
$_SESSION[$ListIdentifier]=$IdArray;
}
function NestedListVisibilitySetAllParents ($Id, $ListIdentifier, $TableName)
{
global $GlobalMysqlHandler;
while ($Id)
{
$Query="SELECT `ParentId` FROM `$TableName` WHERE `Id` = $Id";
$Query=mysqli_query($GlobalMysqlHandler, $Query);
if (mysqli_num_rows($Query))
{
$Item=mysqli_fetch_array($Query);
$Id=$Item['ParentId'];
NestedListVisibilitySet ($Id,$ListIdentifier);
}
else
{
ErrorLog("[nested_list_functions.php] No id '$Id' found in table '$TableName'!");
break;
}
}
}
function NestedListVisibilitySet ($Id, $ListIdentifier)
{
if (!NestedListVisibilityIsSet($Id, $ListIdentifier)) NestedListVisibilityToggle ($Id, $ListIdentifier);
}
function NestedListVisibilityUnset ($Id, $ListIdentifier)
{
if (NestedListVisibilityIsSet($Id, $ListIdentifier)) NestedListVisibilityToggle ($Id, $ListIdentifier);
}
function NestedListVisibilityIsSet ($Id, $ListIdentifier)
{
if (!$Id || !$ListIdentifier || !isset($_SESSION[$ListIdentifier])) return 0;
$IdArray = $_SESSION[$ListIdentifier];
//$Ret = ((count($IdArray)>=$Id) && (strtolower($IdArray[$Id])=="true")) ? 1:0;
$Ret = (isset($IdArray[$Id]) && (strtolower($IdArray[$Id])=="true")) ? 1:0;
return $Ret;
}
function NestedListVisibilityUnsetAllSubelements ($ParentId, $ListIdentifier, $TableName)
{
if (!$TableName) return 0;
$ReturnValue=1;
global $GlobalMysqlHandler;
$Query = "SELECT * FROM `$TableName` WHERE `ParentId` =$ParentId";
$Query = mysqli_query($GlobalMysqlHandler, $Query);
while ($Item = mysqli_fetch_array($Query))
{
NestedListVisibilityUnset ($Item['Id'], $ListIdentifier);
}
return $ReturnValue;
}
function NestedListVisibilityUnsetAllElements ($ListIdentifier)
{
if (!$ListIdentifier) return;
if (!isset($_SESSION[$ListIdentifier]))
{
$EmptyArray = array();
$_SESSION[$ListIdentifier] = $EmptyArray;
}
$IdArray = $_SESSION[$ListIdentifier];
for ($i=0; $i < count($IdArray); $i++) $IdArray[$i] = "False";
$_SESSION[$ListIdentifier]=$IdArray;
}
?>

132
includes/other_functions.php Executable file
View file

@ -0,0 +1,132 @@
<?php
function OtherGetAvailableTemplates ()
{
$ReturnValue=array();
$DirList=scandir('./templates/');
foreach ($DirList as $i)
{
if (!is_dir('./templates/'.$i) || (substr($i,0,1)=="."))
continue;
$ReturnValue[count($ReturnValue)]=$i;
}
return $ReturnValue;
}
function OtherFormatPrice ($PriceString)
{
global $GlobalDecimalPoint;
return str_replace(".",$GlobalDecimalPoint,sprintf("%.3f",OtherConvertToFloat($PriceString)));
}
function OtherConvertToFloat ($Value)
{
global $GlobalDecimalPoint;
$Value=trim($Value);
for ($i=0;$i<(strlen($Value)-1);$i++)
{
//replace first non-decimal position with decimal-point
if ( ! ($Value[$i]=="0"
|| $Value[$i]=="1"
|| $Value[$i]=="2"
|| $Value[$i]=="3"
|| $Value[$i]=="4"
|| $Value[$i]=="5"
|| $Value[$i]=="6"
|| $Value[$i]=="7"
|| $Value[$i]=="8"
|| $Value[$i]=="9"
))
{
$Value[$i]=$GlobalDecimalPoint;
break;
}
}
return (float) $Value;
}
function OtherSiPrefixToFloat ($String)
{
$String=trim($String);
if (substr($String,strlen($String)-1,1)=="E")
return OtherConvertToFloat($String)*1000000000000000000;
if (substr($String,strlen($String)-1,1)=="P")
return OtherConvertToFloat($String)*1000000000000000;
if (substr($String,strlen($String)-1,1)=="T")
return OtherConvertToFloat($String)*1000000000000;
if (substr($String,strlen($String)-1,1)=="G")
return OtherConvertToFloat($String)*1000000000;
if (substr($String,strlen($String)-1,1)=="M")
return OtherConvertToFloat($String)*1000000;
if (substr($String,strlen($String)-1,1)=="k")
return OtherConvertToFloat($String)*1000;
if (substr($String,strlen($String)-1,1)=="m")
return OtherConvertToFloat($String)/1000;
if (substr($String,strlen($String)-1,1)=="µ")
return OtherConvertToFloat($String)/1000000;
if (substr($String,strlen($String)-1,1)=="u")
return OtherConvertToFloat($String)/1000000;
if (substr($String,strlen($String)-1,1)=="n")
return OtherConvertToFloat($String)/1000000000;
if (substr($String,strlen($String)-1,1)=="p")
return OtherConvertToFloat($String)/1000000000000;
if (substr($String,strlen($String)-1,1)=="f")
return OtherConvertToFloat($String)/1000000000000000;
if (substr($String,strlen($String)-1,1)=="a")
return OtherConvertToFloat($String)/1000000000000000000;
else
return OtherConvertToFloat($String);
}
function OtherFloatToSiPrefix ($Integer)
{
$Integer = trim(sprintf("%E",$Integer));
$Exponent=0;
for ($i=(strlen($Integer)-1); $i>=0; $i--)
{
if ($Integer[$i]=="E") break;
$Exponent = $Integer[$i] . $Exponent;
}
$Exponent = substr($Exponent,0,strlen($Exponent)-1);
//set si prefix
if ($Exponent>=18) return ($Integer/1000000000000000000)." E";
if ($Exponent>=15) return ($Integer/1000000000000000)." P";
if ($Exponent>=12) return ($Integer/1000000000000)." T";
if ($Exponent>=9) return ($Integer/1000000000)." G";
if ($Exponent>=6) return ($Integer/1000000)." M";
if ($Exponent>=3) return ($Integer/1000)." k";
if ($Exponent<3 && $Exponent>=0) return ($Integer/1)." ";
if ($Exponent<-15) return ($Integer*1000000000000000)." a";
if ($Exponent<-12) return ($Integer*1000000000000000)." f";
if ($Exponent<-9) return ($Integer*1000000000000)." p";
if ($Exponent<-6) return ($Integer*1000000000)." n";
if ($Exponent<-3) return ($Integer*1000000)." µ";
if ($Exponent<0) return ($Integer*1000)." m";
}
function OtherGetIcon ($IconName,$CssClass)
{
global $GlobalTemplate;
$IconDirectory='./templates/'.$GlobalTemplate.'/icons/';
$Error = 0;
$RetVal = "";
if (file_exists($IconDirectory.$IconName.".png")) $IconFile=$IconName.".png";
elseif (file_exists($IconDirectory.$IconName.".jpg")) $IconFile=$IconName.".jpg";
elseif (file_exists($IconDirectory.$IconName.".gif")) $IconFile=$IconName.".gif";
else
{
$Error = 1;
//log if template directory is existing - if not, anyone else will report this
if (file_exists("./templates/".$GlobalTemplate)) ErrorLog("Icon '$IconName' +[.png|.jpg|.gif] not found!");
}
if (!$Error)
{
$RetVal = "<img src=\"$IconDirectory$IconFile\"".(($CssClass)? " class=\"$CssClass\"":"").">";
}
return $RetVal;
}
?>

158
includes/prepare_template.php Executable file
View file

@ -0,0 +1,158 @@
<?php
function GetPathToGuide($Guide)
{
global $GlobalLanguage;
include "config.php";
$Path="";
$PathUserLanguage = "./documentation/$GlobalLanguage/$Guide.pdf";
$PathConfigLanguage = "./documentation/$GlobalLanguage/$CfgStdLanguage.pdf";
if (file_exists($PathUserLanguage))
{
$Path=$PathUserLanguage;
}
elseif (file_exists($PathConfigLanguage))
{
$Path=$PathConfigLanguage;
}
elseif (file_exists("./documentation"))
{
$Dir=scandir("./documentation");
foreach ($Dir as $x)
{
if ($x=="." || $x=="..") continue;
if (!is_dir("./documentation/$x")) continue;
if (file_exists("./documentation/$x/$Guide.pdf"))
{
$Path="./documentation/$x/$Guide.pdf";
break;
}
}
}
return $Path;
}
$TemplateMainMenu ="";
$TemplateMainMenu .= ' <div id="MainMenu">'."\n";
$TemplateMainMenu .= ' <ul>'."\n";
$TemplateMainMenu .= ' <li><a href="index.php" target="_top" title="'.LangSpellHtml('MenuHome').'">'.OtherGetIcon('Home',0).LangSpellHtml('MenuHome').'</a></li>'."\n";
$TemplateMainMenu .= ' <li><a title="'.LangSpellHtml('MenuParts').'">'.OtherGetIcon('Parts',0).LangSpellHtml('MenuParts').'</a>'."\n";
$TemplateMainMenu .= ' <ul>'."\n";
$TemplateMainMenu .= ' <li><a href="index.php?Page=PartsByType" title="'.LangSpellHtml('MenuPartsByType').'">'.OtherGetIcon('Types',0).LangSpellHtml('MenuPartsByType').'</a></li>'."\n";
$TemplateMainMenu .= ' <li><a href="index.php?Page=PartsByStore" title="'.LangSpellHtml('MenuPartsByStore').'">'.OtherGetIcon('Stores',0).LangSpellHtml('MenuPartsByStore').'</a></li>'."\n";
if (UserHasRight('EditParts'))
$TemplateMainMenu .= ' <li><a href="index.php?Page=AddPart" title="'.LangSpellHtml('MenuPartsAddNewPart').'">'.OtherGetIcon('New',0).LangSpellHtml('MenuPartsAddNewPart').'</a></li>'."\n";
$TemplateMainMenu .= ' </ul>'."\n";
$TemplateMainMenu .= ' </li>'."\n";
if (UserHasRight('EditStores') || UserHasRight('EditTypes') || UserHasRight('EditPackages') || UserHasRight('EditVendors')
|| UserGetLogin()=="root"
|| UserHasRight('ViewSTPV'))
{
$TemplateMainMenu .= ' <li><a title="'.LangSpellHtml('MenuAdmin').'">'.LangSpellHtml('MenuAdmin').'</a>'."\n";
$TemplateMainMenu .= ' <ul>'."\n";
if (UserHasRight('EditStores') || UserHasRight('ViewSTPV'))
$TemplateMainMenu .= ' <li><a href="index.php?Page=EditStores" title="'.LangSpellHtml('MenuAdminStores').'">'.OtherGetIcon('Stores',0).LangSpellHtml('MenuAdminStores').'</a></li>'."\n";
if (UserHasRight('EditTypes') || UserHasRight('ViewSTPV'))
$TemplateMainMenu .= ' <li><a href="index.php?Page=EditTypes" title="'.LangSpellHtml('MenuAdminTypes').'">'.OtherGetIcon('Types',0).LangSpellHtml('MenuAdminTypes').'</a></li>'."\n";
if (UserHasRight('EditPackages') || UserHasRight('ViewSTPV'))
$TemplateMainMenu .= ' <li><a href="index.php?Page=EditPackages" title="'.LangSpellHtml('MenuAdminPacks').'">'.OtherGetIcon('Packages',0).LangSpellHtml('MenuAdminPacks').'</a></li>'."\n";
if (UserHasRight('EditVendors') || UserHasRight('ViewSTPV'))
$TemplateMainMenu .= ' <li><a href="index.php?Page=EditVendors" title="'.LangSpellHtml('MenuAdminVendors').'">'.OtherGetIcon('Vendors',0).LangSpellHtml('MenuAdminVendors').'</a></li>'."\n";
if (UserGetLogin()=="root")
{
$TemplateMainMenu .= ' <li><a href="index.php?Page=EditUsers" title="'.LangSpellHtml('MenuAdminUsers').'">'.OtherGetIcon('UserAdmin',0).LangSpellHtml('MenuAdminUsers').'</a></li>'."\n";
$TemplateMainMenu .= ' <li><a href="index.php?Page=EditConfig" title="'.LangSpellHtml('MenuAdminConfig').'">'.OtherGetIcon('Config',0).LangSpellHtml('MenuAdminConfig').'</a></li>'."\n";
}
$TemplateMainMenu .= ' </ul>'."\n";
$TemplateMainMenu .= ' </li>'."\n";
}
$TemplateMainMenu .= ' <li><a title="'.LangSpellHtml('MenuTools').'">'.OtherGetIcon('Tools',0).LangSpellHtml('MenuTools').'</a>'."\n";
$TemplateMainMenu .= ' <ul>'."\n";
$TemplateMainMenu .= ' <li><a href="index.php?Page=RepeatOrder" title="'.LangSpellHtml('MenuToolsRepOrder').'">'.OtherGetIcon('RepeatOrder',0).LangSpellHtml('MenuToolsRepOrder').'</a></li>'."\n";
$TemplateMainMenu .= ' <li><a title="'.LangSpellHtml('MenuToolsPartStat').'">'.OtherGetIcon('PartStatistic',0).LangSpellHtml('MenuToolsPartStat').'</a></li>'."\n";
if (UserHasRight('ConsistencyCheck') || UserGetLogin()=="root")
$TemplateMainMenu .= ' <li><a href="index.php?Page=ConsistencyCheck" title="'.LangSpellHtml('MenuToolsConsCheck').'">'.OtherGetIcon('ConsistencyCheck',0).LangSpellHtml('MenuToolsConsCheck').'</a></li>'."\n";
$TemplateMainMenu .= ' </ul>'."\n";
$TemplateMainMenu .= ' </li>'."\n";
$TemplateMainMenu .= ' <li><a title="'.LangSpellHtml('MenuHelp').'">'.OtherGetIcon('Help',0).LangSpellHtml('MenuHelp').'</a>'."\n";
$TemplateMainMenu .= ' <ul>'."\n";
if ($UserGuide=GetPathToGuide('UserGuide'))
$TemplateMainMenu .= ' <li><a href="'.$UserGuide.'" title="'.LangSpellHtml('MenuHelpUserGuide').'">'.OtherGetIcon('UserGuide',0).LangSpellHtml('MenuHelpUserGuide').'</a></li>'."\n";
if ($AdminGuide=GetPathToGuide('AdminGuide'))
$TemplateMainMenu .= ' <li><a href="'.$AdminGuide.'" title="'.LangSpellHtml('MenuHelpAdminGuide').'">'.OtherGetIcon('AdminGuide',0).LangSpellHtml('MenuHelpAdminGuide').'</a></li>'."\n";
if ($DeveloperGuide=GetPathToGuide('DeveloperGuide'))
$TemplateMainMenu .= ' <li><a href="'.$DeveloperGuide.'" title="'.LangSpellHtml('MenuHelpDeveloperGuide').'">'.OtherGetIcon('DeveloperGuide',0).LangSpellHtml('MenuHelpDeveloperGuide').'</a></li>'."\n";
$TemplateMainMenu .= ' <li><a href="index.php?Page=VersionHistory" title="'.LangSpellHtml('MenuHelpVersionHistory').'">'.OtherGetIcon('VersionHistory',0).LangSpellHtml('MenuHelpVersionHistory').'</a></li>'."\n";
$TemplateMainMenu .= ' <li><a title="'.LangSpellHtml('MenuHelpAbout').'">'.OtherGetIcon('About',0).LangSpellHtml('MenuHelpAbout').'</a>'."\n";
$TemplateMainMenu .= ' </li>'."\n";
$TemplateMainMenu .= ' </ul>'."\n";
$TemplateMainMenu .= ' </li>'."\n";
if (UserIsLoggedIn())
{
$TemplateMainMenu .= ' <li><a title="'.UserGetLogin().'">'.OtherGetIcon('Login',0).UserGetLogin().'</a>'."\n";
$TemplateMainMenu .= ' <ul>'."\n";
if (UserGetLogin()!=="root")
{
$TemplateMainMenu .= ' <li><a href="index.php?Page=UserSettings" title="'.LangSpellHtml('MenuUserSettings').'">'.OtherGetIcon('UserSettings',0).LangSpellHtml('MenuUserSettings').'</a></li>'."\n";
}
$TemplateMainMenu .= ' <li><a href="index.php?ToDo=Logout" target="_top" title="'.LangSpellHtml('MenuUserLogout').'">'.OtherGetIcon('Logout',0).LangSpellHtml('MenuUserLogout').'</a></li>'."\n";
$TemplateMainMenu .= ' </li>'."\n";
$TemplateMainMenu .= ' </ul>'."\n";
$TemplateMainMenu .= ' </li>'."\n";
}
$TemplateMainMenu .= ' </ul>'."\n";
$TemplateMainMenu .= ' </div>'."\n";
$TemplateMainMenu .= "\n";
$TemplateLogin = "";
$TemplateLogin .= ' <div id="Login">'."\n";
if (!UserIsLoggedIn())
{
$TemplateLogin .= ' <form action="index.php?ToDo=Login" method="post" id="LoginForm">'."\n";
$TemplateLogin .= ' <input type="text" name="Login" title="'.LangSpellHtml('MenuLoginName').'">'."\n";
$TemplateLogin .= ' <input type="password" name="Password" title="'.LangSpellHtml('MenuLoginPassword').'">'."\n";
$TemplateLogin .= ' <input type="submit" value="'.LangSpellHtml('MenuLogin').'" title="'.LangSpellHtml('MenuLogin').'">'."\n";
$TemplateLogin .= ' </form>'."\n";
}
$TemplateLogin .= ' </div>'."\n";
/**********
messages
***********/
$ShowMessageError = (MessageGetErrors()) ? 1:0;
$ShowMessageWarning = (MessageGetWarnings()) ? 1:0;
$ShowMessageSuccess = (MessageGetSuccess()) ? 1:0;
$TemplateMessage = "";
if ($ShowMessageError || $ShowMessageWarning || $ShowMessageSuccess)
{
$TemplateMessage .= '<div id="Message">';
if ($ShowMessageError)
$TemplateMessage .= '<div id="Error">'.nl2br(htmlentities(MessageGetErrors())).'</div>';
if ($ShowMessageWarning)
$TemplateMessage .= '<div id="Warning">'.nl2br(htmlentities(MessageGetWarnings())).'</div>';
if ($ShowMessageSuccess)
$TemplateMessage .= '<div id="Success">'.nl2br(htmlentities(MessageGetSuccess())).'</div>';
$TemplateMessage .= '</div>';
}
/***********************
include java scripts
************************/
$JSInclude = "";
$JSFileArray = file ("./includes/java_scripts.php");
foreach ($JSFileArray as $JSFileArrayLine)
$JSInclude .= $JSFileArrayLine;
$GlobalContent = $JSInclude.$GlobalContent;
/**********
Content
***********/
$TemplateBody='<div id="Body">'."\n".$GlobalContent.'</div>';
?>

175
includes/user.php Executable file
View file

@ -0,0 +1,175 @@
<?php
session_start();
//login
if ($ToDo=="Login")
{
$Login = (isset($_POST['Login'])) ? $_POST['Login'] :"";
$Password = (isset($_POST['Password'])) ? md5($_POST['Password']):"";
if ($Login=="root")
{
global $CfgRootPassword;
if ($Password==$CfgRootPassword)
{
MessageSuccess(LangSpell('ScentenceLoginSucceeded')."\n");
$_SESSION['Id']=0;
$_SESSION['Login']=$Login;
$_SESSION['Time']=time();
}
else
{
MessageError(LangSpell('ScentenceLoginFailed')."\n");
$_SESSION['Id']=0;
$_SESSION['Login']="";
$_SESSION['Time']=0;
}
}
else if ($Login)
{
global $GlobalMysqlHandler;
$query="SELECT * FROM `User` WHERE `Login` = '$Login' LIMIT 0 , 1";
$query=mysqli_query($GlobalMysqlHandler, $query);
$data=mysqli_fetch_array($query);
if ($Password==$data['Password'])
{
MessageSuccess(LangSpell('ScentenceLoginSucceeded')."\n");
$_SESSION['Id']=$data['Id'];
$_SESSION['Login']=$Login;
$_SESSION['Time']=time();
}
else
{
MessageError(LangSpell('ScentenceLoginFailed')."\n");
$_SESSION['Id']=0;
$_SESSION['Login']="";
$_SESSION['Time']=0;
}
}
else
{
MessageError(LangSpell('ScentenceNoLoginSpecified')."\n");
$_SESSION['Id']=0;
$_SESSION['Login']="";
$_SESSION['Time']=0;
}
}
//logout
else if ($ToDo=="Logout")
{
$_SESSION['Id']=0;
$_SESSION['Login']="";
$_SESSION['Time']=0;
}
//load login from session
else
{
$Id = (isset($_SESSION['Id'])) ? $_SESSION['Id']:"";
$Login = (isset($_SESSION['Login'])) ? $_SESSION['Login']:"";
$Time = (isset($_SESSION['Time'])) ? $_SESSION['Time']:0;
if ($Login && ((time()-$GlobalUserTimeout)<=$Time))
{
$_SESSION['Time']=time();
}
elseif ($Login)
{
MessageWarning(LangSpell('ScentenceLoginTimeoutExpired'));
$_SESSION['Id']=0;
$_SESSION['Login']="";
$_SESSION['Time']=0;
}
}
//login messages
if (isset($_SESSION['Login']) && $_SESSION['Login']=="root")
MessageWarning(LangSpell('ScentenceLoggedAsRoot'));
//load user settings
UserLoadSettings();
/************
functions
*************/
function UserLogout()
{
$_SESSION['Id']=0;
$_SESSION['Login']="";
$_SESSION['Time']=0;
}
function UserIsLoggedIn()
{
$ReturnValue=0;
if (isset($_SESSION['Login']) && $_SESSION['Login'])
$ReturnValue=1;
else
$ReturnValue=0;
return $ReturnValue;
}
function UserGetLogin()
{
return ((isset($_SESSION['Login']))? $_SESSION['Login']:"");
}
function UserGetId()
{
return ((isset($_SESSION['Id']))? $_SESSION['Id']:0);
}
function UserHasRight($Right)
{
$Ret=0;
if (isset($_SESSION['Id']) && $_SESSION['Id']>0)
{
global $GlobalMysqlHandler;
$RightsQuery = "SELECT `$Right` FROM `UserRights` WHERE `Id` =".$_SESSION['Id'];
$RightsQuery = mysqli_query($GlobalMysqlHandler, $RightsQuery);
if ($RightsQuery && mysqli_num_rows($RightsQuery))
{
$RightData = mysqli_fetch_array($RightsQuery);
$Ret=(strtolower($RightData[$Right])=="true")? 1:0;
}
else
{
ErrorLog("[user.php] User with id '".$_SESSION['Id']."' not found in table 'UserRights' while asking for right '$Right'!");
}
}
return ($Ret);
}
function UserLoadSettings()
{
$Ret=0;
global $GlobalMysqlHandler;
global $GlobalTemplate;
global $CfgStdTemplate;
global $GlobalLanguage;
global $CfgStdLanguage;
if (isset($_SESSION['Id']) && $_SESSION['Id']>0)
{
$LoadQuery="SELECT `Template` , `Language` FROM `User` WHERE `Id` =".$_SESSION['Id'];
$LoadQuery=mysqli_query($GlobalMysqlHandler, $LoadQuery);
if ($LoadQuery)
{
$LoadValue=mysqli_fetch_array($LoadQuery);
$GlobalTemplate=($LoadValue['Template'])? $LoadValue['Template']:$CfgStdTemplate;
$GlobalLanguage=($LoadValue['Language'])? $LoadValue['Language']:$CfgStdLanguage;
$Ret=1;
}
else
{
ErrorLog("[user.php] Not able to load vars for user with id = ".$_SESSION['Id']."!");
}
}
return $Ret;
}
?>

110
index.php Executable file
View file

@ -0,0 +1,110 @@
<?php
$StartTime=time()+microtime();
//set ToDo var
if (isset($_GET['ToDo']))
$ToDo=$_GET['ToDo'];
else
$ToDo="";
//main include code
include ("./includes/globals.php");
include ("./includes/load_config.php");
include ("./includes/log.php");
include ("./includes/message.php");
include ("./includes/language.php");
include ("./includes/mysql.php");
include ("./includes/user.php");
include ("./includes/lock.php");
include ("./includes/other_functions.php");
//special includes
include ("./includes/nested_list_functions.php");
//select page to include
$Page = (isset($_GET['Page']))? $_GET['Page']:"";
switch ($Page)
{
case 'RepeatOrder':
$Page="./pages/repeat_order.php";
break;
case 'ConsistencyCheck':
$Page="./pages/consistency_check.php";
break;
case 'ShowPart':
$Page="./pages/show_part.php";
break;
case 'PartsByType':
$Page="./pages/parts_by_type.php";
break;
case 'PartsByStore':
$Page="./pages/parts_by_store.php";
break;
case 'AddPart':
$Page="./pages/add_part.php";
break;
case 'EditTypes':
$Page="./pages/edit_types.php";
break;
case 'EditPackages':
$Page="./pages/edit_packages.php";
break;
case 'EditStores':
$Page="./pages/edit_stores.php";
break;
case 'EditVendors':
$Page="./pages/edit_vendors.php";
break;
case 'EditConfig':
$Page="./pages/edit_config.php";
break;
case 'EditUsers':
$Page="./pages/edit_users.php";
break;
case 'UserSettings':
$Page="./pages/user_settings.php";
break;
case 'VersionHistory':
$Page="./pages/version_history.php";
break;
case '':
$Page="./pages/home.php";
break;
default:
MessageError(LangSpell("SentencePageNotFound"));
ErrorLog("[index.php] Page \"$Page\" not Found.");
$Page="./pages/home.php";
}
//include page
if (file_exists($Page)) include ($Page);
else ErrorLog("[index.php] Page-include \"$Page\" not found!");
//include template
include ( "./includes/prepare_template.php" );
if (file_exists("./templates/$GlobalTemplate/template.php"))
include ( "./templates/$GlobalTemplate/template.php" );
else
{
ErrorLog("[index.php] Template \"$GlobalTemplate\" damaged!");
MessageError(LangSpell('SentenceTemplateNotFound'));
echo $TemplateMainMenu.$TemplateLogin.$TemplateMessage.$GlobalContent;
}
//Final Code
LogClose();
MysqlCloseDb();
if ($GlobalDebungMode)
{
$StopTime=time()+microtime();
$TimeSpan=ceil(($StopTime-$StartTime)*1000);
if ($TimeSpan<0)
{
ErrorLog("Execution time negative, start: '$StartTime' stop: '$StopTime' timespan: '$TimeSpan'!");
echo "Start time: <strong>$StartTime s</strong><br>\n";
echo "Stop time: <strong>$StopTime s</strong><br>\n";
}
echo "Script execution time: <strong>$TimeSpan ms</strong><br>\n";
}
?>

158
languages/English.lng Executable file
View file

@ -0,0 +1,158 @@
MenuHome = Home
MenuParts = Parts
MenuPartsByType = Party By Type
MenuPartsByStore = Parts By Store
MenuPartsAddNewPart = Add New Part
MenuAdmin = Administration
MenuAdminStores = Stores
MenuAdminTypes = Types
MenuAdminPacks = Packages
MenuAdminVendors = Vendors
MenuAdminUsers = Users
MenuAdminConfig = Config
MenuTools = Tools
MenuToolsRepOrder = Repeat Order
MenuToolsPartStat = Part Statistic
MenuToolsConsCheck = Consistency Check
MenuHelp = Help
MenuHelpUserGuide = User Guide
MenuHelpAdminGuide = Admin Guide
MenuHelpDeveloperGuide = Developer Guide
MenuHelpVersionHistory = Version History
MenuHelpAbout = About
MenuUserSettings = User Settings
MenuUserLogout = Logout
MenuLogin = Login
MenuLoginName = Login Name
MenuLoginPassword = Password
ScentenceNoLoginSpecified = No login specified!
ScentenceLoggedAsRoot = Logged as root user.
ScentenceLoginFailed = Login failed!
ScentenceLoginTimeoutExpired = Login Timeout expired!
ScentenceLoginSucceeded = Login successfull.
ScentenceNoUserRights = You have not the required rights for this!
SentencePageNotFound = Page not found!
SentenceLoginForbidden = This login was not allowed!
SentencePasswordForbidden = This password was not allowed!
SentenceDatabaseError = Databse error!
SentenceNewUserAdded = New user has been added.
SentenceUserUpdated = User entry has been updated.
SentenceUserDeleted = User has been deleted.
SentencePasswordChangedWarning = User password has been changed!
SentenceTemplateNotFound = Template not found!
SentenceLockIsActive = Item is locked by another user.
SentenceUnknownError = Unkown error!
SentenceNestedListMoved = Element was moved.
SentencePleaseSelectPartType = Please select the type of the part.
SentencePleaseSelectPartStorage = Please select the store of the part.
SentencePleaseSelectPackage = Please select the package of the part.
SentencePleaseSpecifyPartValues = Please specify the values of the part.
SentenceNoNameOrValueOrDescriptionGiven = No name, value or description given!
SentenceNewPartAdded = New part was added to database.
SentencePartHasBeenUpdated = Part has been updated.
SentenceNoFileGiven = No file given!
SentenceNotEnoughDiskSpace = There is not enough free disk space!
SentenceFileAlreadyExist = File already exist!
SentenceCanNotCopyFile = Can not copy file!
SentenceFileHasBeenUploaded = File has been uploaded.
SentenceDownloadEdited = Download has been edited.
SentenceDownloadDeleted = Download deleted.
SentenceShureToDeletePart = Are you shure to remove the part from the database?
SentencePartDeleted = Part was removed from database.
TagTitleEditUserLogin = Edit this users login name.
TagTitleEditUserPassword = Edit this users password or leave untouched to keep the old.
TagTitleEditUserRight = Check or uncheck to set or reset this users right.
TagTitleDeleteUser = Delete this user.
TagTitleDeleteEntry = Delete Item
TagTitleEdit = Edit Item
TagTitleDelete = Delete Item
TagTitleCancel = Cancel
TagTitleMove = Move Item
TagTitleMoveUp = Move Item Up
ButtonEdit = Edit
ButtonSave = Save
ButtonNew = New
ButtonProceed = Proceed
ButtonUpload = Upload
UserSettingsTableHead = user settings
UserSettingsSetNewPassword = set new password
UserSettingsConfirmNewPassword = confirm new password
UserSettingsLanguage = language
UserSettingsTemplate = template
UserSettingsDefault = default
EditVendorsId = id
EditVendorsName = vendor
EditVendorsHomepage = homepage
EditVendorsMinBill = minimum bill
EditVendorsShippingCost = shipping cost
EditVendorsEdit = Edit
EditVendorsSentenceVendorNameRequired = Name of the Vendor is required!
EditVendorsSentenceVendorNewAdded = New vendor added.
EditVendorsSentenceVendorDeleted = Vendor deleted.
EditVendorsSentenceVendorUpated = Vendor updated.
EditStoresNoStoreNameGiven = You need to give a name for the store!
EditStoresNewStoreAdded = New store added.
EditStoresStoreDeleted = Store deleted.
EditPackagesNoPackageNameGiven = You need to give a name for the package!
EditPackagesNewPackageAdded = New package added.
EditPackagesPackageDeleted = Package deleted.
EditTypesNoTypeNameGiven = You need to give a name for the type!
EditTypesNewTypeAdded = New type added.
EditTypesTypeDeleted = Type deleted.
EditTypesName = Name
EditTypesShortName = Abbr.
EditTypesNameValue1 = Value1
EditTypesNameValue2 = Value2
EditTypesNameValue3 = Value3
EditTypesUnitValue1 = Unit1
EditTypesUnitValue2 = Unit2
EditTypesUnitValue3 = Unit3
PartsName = Name
PartsShortDescription = Short Description
PartsLongDescription = Long Description
PartsVendor = Vendor
PartsManufactorLink = Manufactor Link
PartsNotSpecified = not specified
PartsVendorLink = Vendor Link
PartsPackageUnit = Package Unit
PartsPrice = Price
PartsMinOrderQuantity = Minimum Order Quantity
PartsQuantity = Actual Quantity
PartsMinQuantity = Minimum Quantity
PartsPackage = Package
PartsObsolete = Obsolete
PartsObsoleteOnly = Only Obsolete
PartsObsoleteNon = Non Obsolete
PartsObsoleteAll = All Parts
PartsType = Type
PartsStorage = Store
PartsValues = Values
PartsDownloads = Downloads
PartsPicture = Picture
DownloadsName = Name
DownloadsPath = Path
DownloadsSize = Size
DownloadsType = Type
RepeatOrderPackagesToOrder = Packages To Order
RepeatOrderSumPrice = Sum Price
ConsCheckCreateDatabaseStructure = Create Database Structure
ConsCheckRepairIncorrectType = Repair incorrect parts type
COnsCheckIncorrectTypeParts = Number of parts with incorrect types

158
languages/German.lng Executable file
View file

@ -0,0 +1,158 @@
MenuHome = Startseite
MenuParts = Bauteile
MenuPartsByType = Teile nach Typ
MenuPartsByStore = Teile nach Lager
MenuPartsAddNewPart = Neues Bauteil
MenuAdmin = Administration
MenuAdminStores = Lager
MenuAdminTypes = Typen
MenuAdminPacks = Gehäuse
MenuAdminVendors = Lieferanten
MenuAdminUsers = Benutzer
MenuAdminConfig = Config
MenuTools = Werkzeuge
MenuToolsRepOrder = Nachbestellung
MenuToolsPartStat = Bauteil Statistik
MenuToolsConsCheck = Konsistenz Prüfung
MenuHelp = Hilfe
MenuHelpUserGuide = Benutzerhandbuch
MenuHelpAdminGuide = Administrationshandbuch
MenuHelpDeveloperGuide = Entwicklerhandbuch
MenuHelpVersionHistory = Versionsgeschichte
MenuHelpAbout = Über
MenuUserSettings = Benutzer Einstellungen
MenuUserLogout = Logout
MenuLogin = Login
MenuLoginName = Login Name
MenuLoginPassword = Passwort
ScentenceNoLoginSpecified = Kein Login angegeben!
ScentenceLoggedAsRoot = Eingeloggt als root!
ScentenceLoginFailed = Login fehlgeschlagen!
ScentenceLoginTimeoutExpired = Login Zeitlimit überschritten!
ScentenceLoginSucceeded = Login erfolgreich.
ScentenceNoUserRights = Sie besitzen nicht die nötigen Benutzerrechte!
SentencePageNotFound = Die Seite wurde nicht gefunden!
SentenceLoginForbidden = Dieser Login ist nicht erlaubt!
SentencePasswordForbidden = Dieses Passwort ist nicht erlaubt!
SentenceDatabaseError = Datenbank fehler!
SentenceNewUserAdded = Neuer Benutzer wurde zugefügt.
SentenceUserUpdated = Benutzereintrag wurde gespeichert.
SentenceUserDeleted = Benutzer wurde gelöscht.
SentencePasswordChangedWarning = Benutzer Passwort wurde geändert!
SentenceTemplateNotFound = Das Template wurde nicht gefunden!
SentenceLockIsActive = Dieser Posten ist durch einen anderen Benutzer gesperrt.
SentenceUnknownError = Unbekannter Fehler!
SentenceNestedListMoved = Das Element wurde verschoben.
SentencePleaseSelectPartType = Bitte wählen sie den Typ des Bauteils.
SentencePleaseSelectPartStorage = Bitte wählen sie den Lagerort des Bauteils.
SentencePleaseSelectPackage = Bitte wählen sie den Gehäusetyp des Bauteils.
SentencePleaseSpecifyPartValues = Bitte geben sie die Werte des Bauteils ein.
SentenceNoNameOrValueOrDescriptionGiven = Kein Name, Wert oder Beschreibung angegeben!
SentenceNewPartAdded = Neues Bauteil wurde der Datenbank hinzugefügt.
SentencePartHasBeenUpdated = Bauteil wurde gespeichert.
SentenceNoFileGiven = Keine Datei angegeben!
SentenceNotEnoughDiskSpace = Nicht genügend Speicherplatz!
SentenceFileAlreadyExist = Die Datei existiert bereits!
SentenceCanNotCopyFile = Datei kann nicht kopiert werden!
SentenceFileHasBeenUploaded = Datei wurde hochgeladen.
SentenceDownloadEdited = Download wurde bearbeitet.
SentenceDownloadDeleted = Download wurde gelöscht.
SentenceShureToDeletePart = Sind sie sicher, dass sie das Bauteil aus der Datenbank löschen wollen?
SentencePartDeleted = Bauteil wurde aus der Datenbank gelöscht.
TagTitleEditUserLogin = Benutzer login bearbeiten.
TagTitleEditUserPassword = Passwort ändern oder frei lassen.
TagTitleEditUserRight = Markieren setzt dieses Benutzerrecht.
TagTitleDeleteUser = Benutzer löschen.
TagTitleDeleteEntry = Eintrag löschen.
TagTitleEdit = Eintrag bearbeiten.
TagTitleDelete = Eintrag löschen.
TagTitleCancel = Abbrechen
TagTitleMove = Eintrag verschieben.
TagTitleMoveUp = Eintrag nach oben verschieben.
ButtonEdit = Bearbeiten
ButtonSave = Speichern
ButtonNew = Neu
ButtonProceed = Fortfahren
ButtonUpload = Hochladen
UserSettingsTableHead = Benutzer Einstellungen
UserSettingsSetNewPassword = Neues Passwort setzen
UserSettingsConfirmNewPassword = Neues Passwort bestätigen
UserSettingsLanguage = Sprache
UserSettingsTemplate = Template
UserSettingsDefault = Standart
EditVendorsId = Id
EditVendorsName = Händler
EditVendorsHomepage = Homepage
EditVendorsMinBill = Mindestbestellwert
EditVendorsShippingCost = Versandkosten
EditVendorsEdit = Ändern
EditVendorsSentenceVendorNameRequired = Name des Händlers wird benötigt!
EditVendorsSentenceVendorNewAdded = Neuer Händler eingetragen.
EditVendorsSentenceVendorDeleted = Händler gelöscht.
EditVendorsSentenceVendorUpated = Händler geändert.
EditStoresNoStoreNameGiven = Sie müssen einen Namen für das Lager angeben!
EditStoresNewStoreAdded = Neues Lager angelegt.
EditStoresStoreDeleted = Lager gelöscht.
EditPackagesNoPackageNameGiven = Sie müssen einen Gehäusenamen angeben!
EditPackagesNewPackageAdded = Neues Gehäuse hinzugefügt.
EditPackagesPackageDeleted = Gehäuse gelöscht.
EditTypesNoTypeNameGiven = Sie müssen einen Typennamen angeben!
EditTypesNewTypeAdded = Neuer Typ zugefügt.
EditTypesTypeDeleted = Typ gelöscht.
EditTypesName = Name
EditTypesShortName = Abk.
EditTypesNameValue1 = Wert1
EditTypesNameValue2 = Wert2
EditTypesNameValue3 = Wert2
EditTypesUnitValue1 = Einheit1
EditTypesUnitValue2 = Einheit2
EditTypesUnitValue3 = Einheit3
PartsName = Name
PartsShortDescription = kuzre Beschreibung
PartsLongDescription = lange Beschreibung
PartsVendor = Händler
PartsManufactorLink = Hersteller Link
PartsNotSpecified = nicht angegeben
PartsVendorLink = Händler Link
PartsPackageUnit = Verpackungseinheit
PartsPrice = Preis
PartsMinOrderQuantity = Mindestbestellmenge
PartsQuantity = Aktuelle Anzahl
PartsMinQuantity = Mindest Anzahl
PartsPackage = Gehäuse
PartsObsolete = Obsolet
PartsObsoleteOnly = nur Obsolet
PartsObsoleteNon = keine Obsolete
PartsObsoleteAll = alle Bauteile
PartsType = Typ
PartsStorage = Lager
PartsValues = Werte
PartsDownloads = Downloads
PartsPicture = Bild
DownloadsName = Name
DownloadsPath = Pfad
DownloadsSize = Größe
DownloadsType = Typ
RepeatOrderPackagesToOrder = Bestellmenge
RepeatOrderSumPrice = Gesamtpreis
ConsCheckCreateDatabaseStructure = Datenbank Struktur erzeugen
ConsCheckRepairIncorrectType = Kaputte Bauteiltypen reparieren
COnsCheckIncorrectTypeParts = Anzahl kaputter Bauteiltypen

125
pages/add_part.php Executable file
View file

@ -0,0 +1,125 @@
<?php
if (isset($_POST['NewPartType'])) $_SESSION['NewPartType'] = $_POST['NewPartType'];
if (isset($_POST['NewPartStorage'])) $_SESSION['NewPartStorage'] = $_POST['NewPartStorage'];
if (isset($_POST['NewPartPackage'])) $_SESSION['NewPartPackage'] = $_POST['NewPartPackage'];
$_SESSION['NewPartObsolete'] = (isset($_POST['NewPartObsolete']))? $_POST['NewPartObsolete']:"";
$_SESSION['NewPartName'] = (isset($_POST['NewPartName']))? $_POST['NewPartName']:"";
$_SESSION['NewPartValue1'] = (isset($_POST['NewPartValue1']))? $_POST['NewPartValue1']:"";
$_SESSION['NewPartValue2'] = (isset($_POST['NewPartValue2']))? $_POST['NewPartValue2']:"";
$_SESSION['NewPartValue3'] = (isset($_POST['NewPartValue3']))? $_POST['NewPartValue3']:"";
$_SESSION['NewPartShortDesc'] = (isset($_POST['NewPartShortDesc']))? $_POST['NewPartShortDesc']:"";
$_SESSION['NewPartLongDesc'] = (isset($_POST['NewPartLongDesc']))? $_POST['NewPartLongDesc']:"";
$_SESSION['NewPartVendor'] = (isset($_POST['NewPartVendor']))? $_POST['NewPartVendor']:"";
$_SESSION['NewPartVedorLink'] = (isset($_POST['NewPartVedorLink']))? $_POST['NewPartVedorLink']:"";
$_SESSION['NewPartManufactorLink'] = (isset($_POST['NewPartManufactorLink']))? $_POST['NewPartManufactorLink']:"";
$_SESSION['NewPartPackageUnit'] = (isset($_POST['NewPartPackageUnit']))? $_POST['NewPartPackageUnit']:"";
$_SESSION['NewPartPrice'] = (isset($_POST['NewPartPrice']))? $_POST['NewPartPrice']:"";
$_SESSION['NewPartMinOrderQty'] = (isset($_POST['NewPartMinOrderQty']))? $_POST['NewPartMinOrderQty']:"";
$_SESSION['NewPartQty'] = (isset($_POST['NewPartQty']))? $_POST['NewPartQty']:"";
$_SESSION['NewPartMinQty'] = (isset($_POST['NewPartMinQty']))? $_POST['NewPartMinQty']:"";
$AddNewPartSetp = (isset($_GET['AddNewPartSetp'])) ? $_GET['AddNewPartSetp']:"";
if (UserHasRight('EditParts'))
{
if ($AddNewPartSetp=="CreatePart")
{
if (!isset($_SESSION['NewPartPackage']) || !$_SESSION['NewPartPackage']) $AddNewPartSetp="SelectPackage" ;
elseif (!isset($_SESSION['NewPartStorage']) || !$_SESSION['NewPartStorage']) $AddNewPartSetp="SelectStorage" ;
elseif (!isset($_SESSION['NewPartType']) || !$_SESSION['NewPartType']) $AddNewPartSetp="" ;
else
{
if (!$_SESSION['NewPartName'] && !$_SESSION['NewPartShortDesc'] && !$_SESSION['NewPartLongDesc']
&& !$_SESSION['NewPartValue1'] && !$_SESSION['NewPartValue2'] && !$_SESSION['NewPartValue3'])
{
MessageError(LangSpell('SentenceNoNameOrValueOrDescriptionGiven'));
ErrorLog("[add_part.php] No name, description or value given!");
$AddNewPartSetp="SelectValues";
}
else
{
$InsertQuery = "INSERT INTO `Parts` (`Name`, `Value1`, `Value2`, `Value3`, `ShortDesc`, `LongDesc`"
.", `TypeId`, `StorageId`, `PackageId`, `VendorId`, `VendorLink`, `ManufactorLink`"
.", `PackageUnit`, `Price`, `MinOrderQty`, `Qty`, `MinQty`, `Obsolete`) VALUES "
."('".$_SESSION['NewPartName']."', '".OtherSiPrefixToFloat ($_SESSION['NewPartValue1'])."'"
.", '".OtherSiPrefixToFloat ($_SESSION['NewPartValue2'])."', '".OtherSiPrefixToFloat ($_SESSION['NewPartValue3'])."'"
.", '".$_SESSION['NewPartShortDesc']."', '".$_SESSION['NewPartLongDesc']."'"
.", '".$_SESSION['NewPartType']."', '".$_SESSION['NewPartStorage']."'"
.", '".$_SESSION['NewPartPackage']."', '".$_SESSION['NewPartVendor']."'"
.", '".$_SESSION['NewPartVedorLink']."', '".$_SESSION['NewPartManufactorLink']."'"
.", '".$_SESSION['NewPartPackageUnit']."', '".OtherConvertToFloat ($_SESSION['NewPartPrice'])."'"
.", '".$_SESSION['NewPartMinOrderQty']."', '".$_SESSION['NewPartQty']."'"
.", '".$_SESSION['NewPartMinQty']."', '".((isset($_SESSION['NewPartObsolete']) && strtolower($_SESSION['NewPartObsolete'])=="true")? "True":"False")."');";
global $GlobalMysqlHandler;
if (mysqli_query($GlobalMysqlHandler, $InsertQuery))
{
unset($_SESSION['NewPartType'],$_SESSION['NewPartStorage'],$_SESSION['NewPartPackage']
,$_SESSION['NewPartName'],$_SESSION['NewPartValue1'],$_SESSION['NewPartValue2']
,$_SESSION['NewPartValue3'],$_SESSION['NewPartShortDesc'],$_SESSION['NewPartLongDesc']
,$_SESSION['NewPartVendor'],$_SESSION['NewPartVedorLink'],$_SESSION['NewPartManufactorLink']
,$_SESSION['NewPartPackageUnit'],$_SESSION['NewPartPrice'],$_SESSION['NewPartMinOrderQty']
,$_SESSION['NewPartQty'],$_SESSION['NewPartMinQty']);
$AddNewPartSetp = "";
MessageSuccess(LangSpell('SentenceNewPartAdded'));
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
ErrorLog("[add_part.hp] Failed to Insert new part!");
$AddNewPartSetp="SelectValues";
}
}
}
}
if ($AddNewPartSetp=="SelectValues")
{
if (isset($_SESSION['NewPartPackage']) && $_SESSION['NewPartPackage'])
{
include "./pages/add_part_values.php";
}
else
{
MessageWarning(LangSpell('SentencePleaseSelectPackage'));
$AddNewPartSetp="SelectPackage";
}
}
if ($AddNewPartSetp=="SelectPackage")
{
if (isset($_SESSION['NewPartStorage']) && $_SESSION['NewPartStorage'])
{
include "./pages/add_part_package.php";
}
else
{
MessageWarning(LangSpell('SentencePleaseSelectPartStorage'));
$AddNewPartSetp="SelectStorage";
}
}
if ($AddNewPartSetp=="SelectStorage")
{
if (isset($_SESSION['NewPartType']) && $_SESSION['NewPartType'])
{
include "./pages/add_part_storage.php";
}
else
{
MessageWarning(LangSpell('SentencePleaseSelectPartType'));
include "./pages/add_part_type.php";
}
}
if ($AddNewPartSetp=="")
{
$_SESSION['NewPartType'] = 0;
$_SESSION['NewPartStorage'] = 0;
include "./pages/add_part_type.php";
}
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

73
pages/add_part_package.php Executable file
View file

@ -0,0 +1,73 @@
<?php
$NewPartType = (isset($_POST['NewPartType']))? $_POST['NewPartType']:0;
function WritePackageList($ParentId, $ParentIsLocked)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
global $EditTypesEditId;
$ListQuery="SELECT * FROM `Packages` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'AddPartPackage'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
$GlobalContent .= " <li>\n";
if (LockIsActive('Types',$ListData['Id']) || $ParentIsLocked)
{
$GlobalContent .= OtherGetIcon('LockActive.png',0);
$ParentIsLocked = 1;
}
else
{
$GlobalContent .= ' <input type="radio" name="NewPartPackage" value="'.$ListData['Id'].'">';
}
$GlobalContent .= " <a href=\"index.php?Page=AddPart&AddNewPartSetp=SelectPackage&ToDo=OpenSublist&SublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name'])."</a>";
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Packages').")";
$GlobalContent .= " \n</li>\n";
WritePackageList($ListData['Id'],$ParentIsLocked);
}
}
$GlobalContent .= "</ul>\n";
}
if (UserHasRight('EditParts'))
{
///////////////
// open sublist
if ($ToDo=="OpenSublist")
{
if (isset($_GET['SublistId']) && $_GET['SublistId'])
{
NestedListVisibilityToggle($_GET['SublistId'], 'AddPartPackage');
}
else
{
ErrorLog("[add_part1.php] No SublistId to open type!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
$GlobalContent .= '<h1>'.LangSpellHtml('SentencePleaseSelectPackage').'</h1>';
$GlobalContent .= '<form action="index.php?Page=AddPart&AddNewPartSetp=SelectValues" method="post">';
WritePackageList(0, 0);
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonProceed').'"class="Button">';
$GlobalContent .= '</form>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

73
pages/add_part_storage.php Executable file
View file

@ -0,0 +1,73 @@
<?php
$NewPartType = (isset($_POST['NewPartType']))? $_POST['NewPartType']:0;
function WriteStorageList($ParentId, $ParentIsLocked)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
global $EditTypesEditId;
$ListQuery="SELECT * FROM `Storages` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'AddPartStorage'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
$GlobalContent .= " <li>\n";
if (LockIsActive('Types',$ListData['Id']) || $ParentIsLocked)
{
$GlobalContent .= OtherGetIcon('LockActive.png',0);
$ParentIsLocked = 1;
}
else
{
$GlobalContent .= ' <input type="radio" name="NewPartStorage" value="'.$ListData['Id'].'">';
}
$GlobalContent .= " <a href=\"index.php?Page=AddPart&AddNewPartSetp=SelectStorage&ToDo=OpenSublist&SublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name'])."</a>";
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Storages').")";
$GlobalContent .= " \n</li>\n";
WriteStorageList($ListData['Id'],$ParentIsLocked);
}
}
$GlobalContent .= "</ul>\n";
}
if (UserHasRight('EditParts'))
{
///////////////
// open sublist
if ($ToDo=="OpenSublist")
{
if (isset($_GET['SublistId']) && $_GET['SublistId'])
{
NestedListVisibilityToggle($_GET['SublistId'], 'AddPartStorage');
}
else
{
ErrorLog("[add_part1.php] No SublistId to open type!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
$GlobalContent .= '<h1>'.LangSpellHtml('SentencePleaseSelectPartStorage').'</h1>';
$GlobalContent .= '<form action="index.php?Page=AddPart&AddNewPartSetp=SelectPackage" method="post">';
WriteStorageList(0, 0);
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonProceed').'"class="Button">';
$GlobalContent .= '</form>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

75
pages/add_part_type.php Executable file
View file

@ -0,0 +1,75 @@
<?php
function WriteTypeList($ParentId, $ParentIsLocked)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
global $EditTypesEditId;
$ListQuery="SELECT * FROM `Types` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'AddPartType'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
$GlobalContent .= " <li>\n";
if (LockIsActive('Types',$ListData['Id']) || $ParentIsLocked)
{
$GlobalContent .= OtherGetIcon('LockActive',0);
$ParentIsLocked = 1;
}
else
{
$GlobalContent .= ' <input type="radio" name="NewPartType" value="'.$ListData['Id'].'">';
}
$GlobalContent .= " <a href=\"index.php?Page=AddPart&ToDo=OpenSublist&SublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name']);
if (strlen($ListData['ShortName'])) $GlobalContent .= " [".LangStr2Html($ListData['ShortName'])."]";
$GlobalContent .= "</a>";
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Types').")";
$GlobalContent .= " \n</li>\n";
WriteTypeList($ListData['Id'],$ParentIsLocked);
}
}
$GlobalContent .= "</ul>\n";
}
if (UserHasRight('EditParts'))
{
///////////////
// open sublist
if ($ToDo=="OpenSublist")
{
if (isset($_GET['SublistId']) && $_GET['SublistId'])
{
NestedListVisibilityToggle($_GET['SublistId'], 'AddPartType');
}
else
{
ErrorLog("[add_part1.php] No SublistId to open type!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
//////////
// Content
$GlobalContent .= '<h1>'.LangSpellHtml('SentencePleaseSelectPartType').'</h1>';
$GlobalContent .= '<form action="index.php?Page=AddPart&AddNewPartSetp=SelectStorage" method="post">';
WriteTypeList(0, 0);
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonProceed').'"class="Button">';
$GlobalContent .= '</form>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

107
pages/add_part_values.php Executable file
View file

@ -0,0 +1,107 @@
<?php
if (UserHasRight('EditParts'))
{
global $GlobalMysqlHandler;
/////////////
// Type Array
$TypeQuery = "SELECT * FROM `Types` WHERE `Id` = ".$_SESSION['NewPartType'];
$TypeQuery = mysqli_query($GlobalMysqlHandler, $TypeQuery);
$TypeValues = array();
if (mysqli_num_rows($TypeQuery))
{
$TypeItem = mysql_fetch_array($TypeQuery);
$TypeValues[0][0] = $TypeItem['NameValue1'];
$TypeValues[0][1] = $TypeItem['UnitValue1'];
$TypeValues[1][0] = $TypeItem['NameValue2'];
$TypeValues[1][1] = $TypeItem['UnitValue2'];
$TypeValues[2][0] = $TypeItem['NameValue3'];
$TypeValues[2][1] = $TypeItem['UnitValue3'];
}
//////////////
// Value Table
$GlobalContent .= '<h1>'.LangSpellHtml('SentencePleaseSpecifyPartValues').'</h1>';
$GlobalContent .= '<form action="index.php?Page=AddPart&AddNewPartSetp=CreatePart" method="post">';
$GlobalContent .= '<table>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsObsolete').'</th><td>';
$GlobalContent .= '<input type="checkbox" name="NewPartObsolete" value="True" '.((isset($_SESSION['NewPartObsolete']) && strtolower($_SESSION['NewPartObsolete'])=="true")? "checked":"").'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsName').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartName" value="'.((isset($_SESSION['NewPartName']))? $_SESSION['NewPartName']:"").'"></td></tr>';
if ($TypeValues[0][0])
{
$GlobalContent .= '<tr><th>'.$TypeValues[0][0].'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartValue1" value="'.((isset($_SESSION['NewPartValue1']))? $_SESSION['NewPartValue1']:"").'"></td>';
$GlobalContent .= '<td> '.$TypeValues[0][1].'</td></tr>';
}
if ($TypeValues[1][0])
{
$GlobalContent .= '<tr><th>'.$TypeValues[1][0].'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartValue2" value="'.((isset($_SESSION['NewPartValue2']))? $_SESSION['NewPartValue2']:"").'"></td>';
$GlobalContent .= '<td> '.$TypeValues[1][1].'</td></tr>';
}
if ($TypeValues[2][0])
{
$GlobalContent .= '<tr><th>'.$TypeValues[2][0].'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartValue3" value="'.((isset($_SESSION['NewPartValue3']))? $_SESSION['NewPartValue3']:"").'"></td>';
$GlobalContent .= '<td> '.$TypeValues[2][1].'</td></tr>';
}
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsShortDescription').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartShortDesc" value="'.((isset($_SESSION['NewPartShortDesc']))? $_SESSION['NewPartShortDesc']:"").'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsLongDescription').'</th><td>';
$GlobalContent .= '<textarea name="NewPartLongDesc">'.((isset($_SESSION['NewPartLongDesc']))? $_SESSION['NewPartLongDesc']:"").'</textarea></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsVendor').'</th><td>';
$GlobalContent .= '<select name="NewPartVendor">';
$VendorQuery = "SELECT `Id`,`Name` FROM `Vendors` ORDER BY `Name` ASC";
$GlobalContent .= '<option value="0">'.LangSpellHtml('PartsNotSpecified').'</option>';
$VendorQuery = mysqli_query($GlobalMysqlHandler, $VendorQuery);
while ($VendorData = mysqli_fetch_array($VendorQuery))
{
$Selected = (isset($_SESSION['NewPartVendor']) && ($_SESSION['NewPartVendor']==$VendorData['Id']))? "selected":"";
$GlobalContent .= '<option value="'.$VendorData['Id'].'" '.$Selected.'>'.$VendorData['Name'].'</option>';
}
$GlobalContent .= '</select></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsVendorLink').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartVedorLink" value="'.((isset($_SESSION['NewPartVedorLink']))? $_SESSION['NewPartVedorLink']:"").'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsManufactorLink').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartManufactorLink" value="'.((isset($_SESSION['NewPartManufactorLink']))? $_SESSION['NewPartManufactorLink']:"").'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsPackageUnit').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartPackageUnit" value="'.((isset($_SESSION['NewPartPackageUnit']))? $_SESSION['NewPartPackageUnit']:"").'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsPrice').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartPrice" value="'.((isset($_SESSION['NewPartPrice']))? $_SESSION['NewPartPrice']:"").'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsMinOrderQuantity').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartMinOrderQty" value="'.((isset($_SESSION['NewPartMinOrderQty']))? $_SESSION['NewPartMinOrderQty']:"").'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsQuantity').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartQty" value="'.((isset($_SESSION['NewPartQty']))? $_SESSION['NewPartQty']:"").'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsMinQuantity').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartMinQty" value="'.((isset($_SESSION['NewPartMinQty']))? $_SESSION['NewPartMinQty']:"").'"></td></tr>';
$GlobalContent .= '<tr><th></th><td>';
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonProceed').'"class="Button">';
$GlobalContent .= '</td></tr>';
$GlobalContent .= '</table>';
$GlobalContent .= '</form>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

4
pages/consistency_check.php Executable file
View file

@ -0,0 +1,4 @@
<?php
include "./pages/consistency_check_databse.php";
include "./pages/consistency_check_incorrect_types.php";
?>

View file

@ -0,0 +1,146 @@
<?php
////////////////////////////
// create database structure
if (UserGetLogin()=="root")
{
if ($ToDo=="CreateDbStructure")
{
$CheckHandler=mysqli_connect($GlobalMysqlHost,$GlobalMysqlUser,$GlobalMysqlPwd);
if (!$CheckHandler)
{
MessageError("Can not connect to database, check config!");
}
else
{
MessageSuccess("Database connection successful.");
$DatabaseExists = 0;
if (mysqli_select_db$CheckHandler, ($GlobalMysqlDatabase)) $DatabaseExists=1;
if (!$DatabaseExists)
{
if (mysqli_query($CheckHandler, "CREATE DATABASE `$GlobalMysqlDatabase` ;")) $DatabaseExists=1;
else MessageError("Can not create database!");
}
if (mysqli_select_db($CheckHandler, $GlobalMysqlDatabase)) $DatabaseExists=1;
if ($DatabaseExists)
{
////////////////
// create tables
mysqli_query($CheckHandler, 'SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";');
//Downloads
mysqli_query($CheckHandler, 'CREATE TABLE IF NOT EXISTS `Downloads` ( `Id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ');
mysqli_query($CheckHandler, 'ALTER TABLE `Downloads` ADD `Id` int(11) NOT NULL AUTO_INCREMENT');
mysqli_query($CheckHandler, 'ALTER TABLE `Downloads` DROP PRIMARY KEY , ADD PRIMARY KEY ( `Id` )');
mysqli_query($CheckHandler, 'ALTER TABLE `Downloads` CHANGE `Id` `Id` INT( 11 ) NOT NULL AUTO_INCREMENT ');
mysqli_query($CheckHandler, 'ALTER TABLE `Downloads` ADD `PartId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Downloads` ADD `Name` varchar(200) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Downloads` ADD `Path` varchar(200) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Downloads` ADD `Type` varchar(200) COLLATE utf8_unicode_ci NOT NULL');
//Packages
mysqli_query($CheckHandler, 'CREATE TABLE IF NOT EXISTS `Packages` ( `Id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ');
mysqli_query($CheckHandler, 'ALTER TABLE `Packages` ADD `Id` int(11) NOT NULL AUTO_INCREMENT');
mysqli_query($CheckHandler, 'ALTER TABLE `Packages` DROP PRIMARY KEY , ADD PRIMARY KEY ( `Id` )');
mysqli_query($CheckHandler, 'ALTER TABLE `Packages` CHANGE `Id` `Id` INT( 11 ) NOT NULL AUTO_INCREMENT ');
mysqli_query($CheckHandler, 'ALTER TABLE `Packages` ADD `Name` varchar(100) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Packages` ADD `ParentId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Packages` ADD `LockId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Packages` ADD `LockTime` int(11) NOT NULL');
//Parts
mysqli_query($CheckHandler, 'CREATE TABLE IF NOT EXISTS `Parts` ( `Id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `Id` int(11) NOT NULL AUTO_INCREMENT');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` DROP PRIMARY KEY , ADD PRIMARY KEY ( `Id` )');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` CHANGE `Id` `Id` INT( 11 ) NOT NULL AUTO_INCREMENT ');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `Name` varchar(100) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `Value1` float NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `Value2` float NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `Value3` float NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `ShortDesc` varchar(250) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `LongDesc` text COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `TypeId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `StorageId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `PackageId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `VendorId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `VendorLink` varchar(250) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `ManufactorLink` varchar(250) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `PackageUnit` int(11) NOT NULL DEFAULT \'1\'');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `Price` float NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `MinOrderQty` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `Qty` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `MinQty` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `Obsolete` enum(\'False\',\'True\') COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `PicturePath` varchar(200) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `LockId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Parts` ADD `LockTime` int(11) NOT NULL');
//Storages
mysqli_query($CheckHandler, 'CREATE TABLE IF NOT EXISTS `Storages` ( `Id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ');
mysqli_query($CheckHandler, 'ALTER TABLE `Storages` ADD `Id` int(11) NOT NULL AUTO_INCREMENT');
mysqli_query($CheckHandler, 'ALTER TABLE `Storages` DROP PRIMARY KEY , ADD PRIMARY KEY ( `Id` )');
mysqli_query($CheckHandler, 'ALTER TABLE `Storages` CHANGE `Id` `Id` INT( 11 ) NOT NULL AUTO_INCREMENT ');
mysqli_query($CheckHandler, 'ALTER TABLE `Storages` ADD `Name` varchar(100) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Storages` ADD `ParentId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Storages` ADD `LockId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Storages` ADD `LockTime` int(11) NOT NULL');
//Types
mysqli_query($CheckHandler, 'CREATE TABLE IF NOT EXISTS `Types` ( `Id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `Id` int(11) NOT NULL AUTO_INCREMENT');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` DROP PRIMARY KEY , ADD PRIMARY KEY ( `Id` )');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` CHANGE `Id` `Id` INT( 11 ) NOT NULL AUTO_INCREMENT ');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `Name` varchar(100) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `ShortName` varchar(10) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `NameValue1` varchar(50) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `UnitValue1` varchar(20) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `NameValue2` varchar(50) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `UnitValue2` varchar(20) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `NameValue3` varchar(50) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `UnitValue3` varchar(20) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `ParentId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `LockId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Types` ADD `LockTime` int(11) NOT NULL');
//User
mysqli_query($CheckHandler, 'CREATE TABLE IF NOT EXISTS `User` ( `Id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ');
mysqli_query($CheckHandler, 'ALTER TABLE `User` ADD `Id` int(11) NOT NULL AUTO_INCREMENT');
mysqli_query($CheckHandler, 'ALTER TABLE `User` DROP PRIMARY KEY , ADD PRIMARY KEY ( `Id` )');
mysqli_query($CheckHandler, 'ALTER TABLE `User` CHANGE `Id` `Id` INT( 11 ) NOT NULL AUTO_INCREMENT ');
mysqli_query($CheckHandler, 'ALTER TABLE `User` ADD `Login` varchar(100) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `User` ADD `Password` varchar(35) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `User` ADD `Template` varchar(100) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `User` ADD `Language` varchar(100) COLLATE utf8_unicode_ci NOT NULL');
//UserRights
mysqli_query($CheckHandler, 'CREATE TABLE IF NOT EXISTS `UserRights` ( `Id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` ADD `Id` int(11) NOT NULL AUTO_INCREMENT');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` DROP PRIMARY KEY , ADD PRIMARY KEY ( `Id` )');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` CHANGE `Id` `Id` INT( 11 ) NOT NULL AUTO_INCREMENT ');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` ADD `EditStores` enum(\'False\',\'True\') COLLATE utf8_unicode_ci NOT NULL DEFAULT \'False\'');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` ADD `EditTypes` enum(\'False\',\'True\') COLLATE utf8_unicode_ci NOT NULL DEFAULT \'False\'');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` ADD `EditPackages` enum(\'False\',\'True\') COLLATE utf8_unicode_ci NOT NULL DEFAULT \'False\'');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` ADD `EditVendors` enum(\'False\',\'True\') COLLATE utf8_unicode_ci NOT NULL DEFAULT \'False\'');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` ADD `ViewSTPV` enum(\'False\',\'True\') COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` ADD `EditParts` enum(\'False\',\'True\') COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` ADD `EditPartQuantity` enum(\'False\',\'True\') COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `UserRights` ADD `ConsistencyCheck` enum(\'False\',\'True\') COLLATE utf8_unicode_ci NOT NULL');
//Vendors
mysqli_query($CheckHandler, 'CREATE TABLE IF NOT EXISTS `Vendors` ( `Id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`Id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ');
mysqli_query($CheckHandler, 'ALTER TABLE `Vendors` ADD `Id` int(11) NOT NULL AUTO_INCREMENT');
mysqli_query($CheckHandler, 'ALTER TABLE `Vendors` DROP PRIMARY KEY , ADD PRIMARY KEY ( `Id` )');
mysqli_query($CheckHandler, 'ALTER TABLE `Vendors` CHANGE `Id` `Id` INT( 11 ) NOT NULL AUTO_INCREMENT ');
mysqli_query($CheckHandler, 'ALTER TABLE `Vendors` ADD `Name` varchar(200) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Vendors` ADD `Homepage` varchar(200) COLLATE utf8_unicode_ci NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Vendors` ADD `MinBill` float NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Vendors` ADD `ShippingCost` float NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Vendors` ADD `LockId` int(11) NOT NULL');
mysqli_query($CheckHandler, 'ALTER TABLE `Vendors` ADD `LockTime` int(11) NOT NULL');
mysqli_close($CheckHandler);
}
else
{
MessageError("No database to operate!");
}
}
}
else
{
$GlobalContent .= "<h1>".LangSpellHtml('ConsCheckCreateDatabaseStructure')."</h1>";
$GlobalContent .= '<a href="index.php?Page=ConsistencyCheck&ToDo=CreateDbStructure" class="Button">'.LangSpellHtml('ButtonProceed').'</a>';
}
}
?>

View file

@ -0,0 +1,81 @@
<?php
//////////////
// check types
global $GlobalMysqlHandler;
function ElementExistInArray ( $Array, $Element )
{
$RetVal=0;
foreach ($Array as $x)
{
if ($x==$Element) $RetVal=1;
}
return $RetVal;
}
if (UserHasRight('ConsistencyCheck'))
{
$TypeQuery = "SELECT `Id` FROM `Types`";
$TypeQuery = mysqli_query($GlobalMysqlHandler, $TypeQuery);
$Types = array();
while ($Type = mysqli_fetch_array($TypeQuery)) $Types[count($Types)]=$Type['Id'];
if ($ToDo=="RepairIncorrectTypes")
{
$CheckQuery = mysqli_query($GlobalMysqlHandler, "SELECT `Id`,`TypeId` FROM `Parts`");
$LostPartsTypeId=0;
$Error=0;
$MovedParts=0;
while ($Part = mysqli_fetch_array($CheckQuery))
{
if (!ElementExistInArray($Types,$Part['TypeId']))
{
if (!$LostPartsTypeId)
{
$LostPartypeQuery=mysqli_query($GlobalMysqlHandler, "SELECT `Id` FROM `Types` WHERE `Name` = 'LostTypeParts'");
if (!mysql_num_rows($LostPartypeQuery))
{
mysqli_query($GlobalMysqlHandler, "INSERT INTO `Types` ( `Name` , `ParentId` ) VALUES ( 'LostTypeParts', '0' );");
}
$LostPartypeQuery=mysqli_query($GlobalMysqlHandler, "SELECT `Id` FROM `Types` WHERE `Name` = 'LostTypeParts'");
if (mysqli_num_rows($LostPartypeQuery))
{
$Type=mysqli_fetch_array($LostPartypeQuery);
$LostPartsTypeId=$Type['Id'];
}
else
{
$Error=1;
MessageError(LangSpell('SentenceDatabaseError'));
ErrorLog("Can not create 'LostTypeParts' type!");
}
}
if (!$Error)
{
if (mysqli_query($GlobalMysqlHandler, "UPDATE `Parts` SET `TypeId` = '$LostPartsTypeId' WHERE `Id` =".$Part['Id']." LIMIT 1 ;"))
$MovedParts++;
else
{
MessageError(LangSpell('SentenceDatabaseError'));
ErrorLog("Can not change type id from part '".$Part['Id']."'!");
}
}
else
break;
}
}
if ($MovedParts)
{
MessageSuccess("$MovedParts parts moved to type 'LostTypeParts'.");
}
}
//show content
$CheckQuery = mysqli_query($GlobalMysqlHandler, "SELECT `TypeId` FROM `Parts`");
$IncorrectTypes=0;
while ($Part = mysqli_fetch_array($CheckQuery)) $IncorrectTypes+= ElementExistInArray($Types,$Part['TypeId'])? 0:1;
$GlobalContent .= "<h1>".LangSpellHtml('ConsCheckRepairIncorrectType')."</h1>";
$GlobalContent .= LangSpellHtml('COnsCheckIncorrectTypeParts') . ": " . $IncorrectTypes . "<br>";
$GlobalContent .= '<a href="index.php?Page=ConsistencyCheck&ToDo=RepairIncorrectTypes" class="Button">'.LangSpellHtml('ButtonProceed').'</a>';
}
?>

165
pages/edit_config.php Executable file
View file

@ -0,0 +1,165 @@
<?php
if (UserGetLogin()=="root")
{
//////////////////
//save Config
if ($ToDo=="SaveConfig")
{
//create new config file array
$ConfigFileArray = array();
$ConfigFileArray[count($ConfigFileArray)]=' $CfgStdTemplate = "'.$_POST['CfgStdTemplate'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgStdLanguage = "'.$_POST['CfgStdLanguage'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgStdTimeZone = "'.$_POST['CfgStdTimeZone'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgStdTimeFormat = "'.$_POST['CfgStdTimeFormat'].'";'."\n";
if ( ($_POST['Password1']==$_POST['Password2']) && (trim($_POST['Password1'])) )
{
$ConfigFileArray[count($ConfigFileArray)]=' $CfgRootPassword = "'.md5($_POST['Password1']).'";'."\n";
MessageWarning(LangSpellHtml('SentencePasswordChangedWarning'));
UserLogout();
}
else
{
include "config.php";
$ConfigFileArray[count($ConfigFileArray)] = ' $CfgRootPassword = "'.$CfgRootPassword.'";'."\n";
}
$ConfigFileArray[count($ConfigFileArray)]=' $CfgLogfile = "'.$_POST['CfgLogfile'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgLogfileMaxLines = "'.$_POST['CfgLogfileMaxLines'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgSetDebugMode = "'.$_POST['CfgSetDebugMode'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgMysqlHost = "'.$_POST['CfgMysqlHost'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgMysqlUser = "'.$_POST['CfgMysqlUser'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgMysqlPwd = "'.$_POST['CfgMysqlPwd'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgMysqlDatabase = "'.$_POST['CfgMysqlDatabase'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgLoginTimeout = "'.$_POST['CfgLoginTimeout'].'";'."\n";
$ConfigFileArray[count($ConfigFileArray)]=' $CfgLockAutoReleaseTime = "'.$_POST['CfgLockAutoReleaseTime'].'";'."\n";
//save config file
$ConfigFileHandler=fopen("./config.php","w");
fputs($ConfigFileHandler,"<?php\n");
foreach ($ConfigFileArray as $Line)
{
fputs($ConfigFileHandler,$Line);
}
fputs($ConfigFileHandler,"?>\n");
fclose($ConfigFileHandler);
}
include("./includes/load_config.php");
}
if (UserGetLogin()=="root")
{
//////////////////
//global content
include ("config.php");
$GlobalContent.='<form action="index.php?Page=EditConfig&ToDo=SaveConfig" method="post">'."\n";
$GlobalContent.='<table>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgStdTemplate</th>'."\n";
$GlobalContent.=' <td><select name="CfgStdTemplate">'."\n";
$AvailableTemplates=OtherGetAvailableTemplates();
foreach ($AvailableTemplates as $x)
{
$GlobalContent.=' <option value="'.$x.'" '.(($x==$CfgStdTemplate)? 'selected':'').'>'.$x.'</option>'."\n";
}
$GlobalContent.=' </select><td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgStdLanguage</th>'."\n";
$GlobalContent.=' <td><select name="CfgStdLanguage">'."\n";
$AvailableTemplates=LangGetAvailableLanguages();
foreach ($AvailableTemplates as $x)
{
$GlobalContent.=' <option value="'.$x.'" '.(($x==$CfgStdLanguage)? 'selected':'').'>'.$x.'</option>'."\n";
}
$GlobalContent.=' </select><td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgStdTimeZone</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgStdTimeZone" value="'.$CfgStdTimeZone.'"></td>'."\n";
$GlobalContent.=' <td>'."\n";
$GlobalContent.=' <a href="http://www.php.net/manual/en/timezones.php" title="" target="new">'."\n";
$GlobalContent.=' '.OtherGetIcon('Help',"Button")."\n";
$GlobalContent.=' </a>'."\n";
$GlobalContent.=' </td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgStdTimeFormat</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgStdTimeFormat" value="'.$CfgStdTimeFormat.'"></td>'."\n";
$GlobalContent.=' <td>'."\n";
$GlobalContent.=' <a href="http://www.php.net/manual/en/function.date.php" title="" target="new">'."\n";
$GlobalContent.=' '.OtherGetIcon('Help',"Button")."\n";
$GlobalContent.=' </a>'."\n";
$GlobalContent.=' </td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>'.LangSpellHtml('UserSettingsSetNewPassword').'</th>'."\n";
$GlobalContent.=' <td><input type="password" name="Password1" value=""></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>'.LangSpellHtml('UserSettingsConfirmNewPassword').'</th>'."\n";
$GlobalContent.=' <td><input type="password" name="Password2" value=""></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgLogfile</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgLogfile" value="'.$CfgLogfile.'"></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgLogfileMaxLines</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgLogfileMaxLines" value="'.$CfgLogfileMaxLines.'"></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgSetDebugMode</th>'."\n";
$GlobalContent.=' <td><select name="CfgSetDebugMode">'."\n";
$GlobalContent.=' <option value="True" '.((strtolower($CfgSetDebugMode)=="true")? "selected":"").'>True</option>'."\n";
$GlobalContent.=' <option value="False" '.((strtolower($CfgSetDebugMode)!="true")? "selected":"").'>False</option>'."\n";
$GlobalContent.=' </select></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgMysqlHost</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgMysqlHost" value="'.$CfgMysqlHost.'"></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgMysqlUser</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgMysqlUser" value="'.$CfgMysqlUser.'"></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgMysqlPwd</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgMysqlPwd" value="'.$CfgMysqlPwd.'"></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgMysqlDatabase</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgMysqlDatabase" value="'.$CfgMysqlDatabase.'"></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgLoginTimeout</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgLoginTimeout" value="'.$CfgLoginTimeout.'"></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>CfgLockAutoReleaseTime</th>'."\n";
$GlobalContent.=' <td><input type="text" name="CfgLockAutoReleaseTime" value="'.$CfgLockAutoReleaseTime.'"></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>'.LangSpellHtml('ButtonSave').'</th>'."\n";
$GlobalContent.=' <td><input type="submit" value="'.LangSpellHtml('ButtonSave').'" class="Button"></td>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.='</table>'."\n";
$GlobalContent.='</form>'."\n";
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

299
pages/edit_packages.php Executable file
View file

@ -0,0 +1,299 @@
<?php
$EditPackagesEditId=0;
function WritePackagesList($ParentId, $ParentIsLocked)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
global $EditPackagesEditId;
$ListQuery="SELECT `Id` , `Name` FROM `Packages` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'EditPackages'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
if ($EditPackagesEditId
&& ($EditPackagesEditId==$ListData['Id'])
&& !( LockIsActive('Packages',$ListData['Id']) || $ParentIsLocked)
)
{ //edit entry
$GlobalContent .= " <li>\n";
$GlobalContent .= ' <a href="index.php?Page=EditPackages&ToDo=DeletePackage&Id='.$ListData['Id'].'" title="'.LangSpellHtml('TagTitleDelete').'">'.OtherGetIcon('Delete',"Button").'</a>';
$GlobalContent .= ' <form action="index.php?Page=EditPackages&ToDo=EditpackageSave" method="post">';
$GlobalContent .= ' <input type="hidden" name="Id" value="'.$ListData['Id'].'">';
$GlobalContent .= '<input type="text" name="Name" value="'.$ListData['Name'].'">';
$GlobalContent .= '<select name="MoveToId" title="'.LangSpellHtml('TagTitleMove').'">';
if ($ParentId)
$GlobalContent .= '<option value="#MOVE#ITEM#UP#">'.LangSpellHtml('TagTitleMoveUp').'</option>';
$GlobalContent .= '<option value="" selected>--- '.LangSpellHtml('TagTitleMove').' ---</option>';
$MoveItems = NestedLisGetSubelements($ParentId,"Packages");
foreach ($MoveItems as $MvItm)
{
if ($MvItm[0]==$ListData['Id']) continue;
$GlobalContent .= '<option value="'.$MvItm[0].'">'.$MvItm[1].'</option>';
}
$GlobalContent .= "</select>";
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonSave').'" class="Button">';
$GlobalContent .= ' </form>';
$GlobalContent .= ' <a href="index.php?Page=EditPackages&ToDo=CancelEditPackage&Id='.$ListData['Id'].'" title="'.LangSpellHtml('TagTitleCancel').'">'.OtherGetIcon('Cancel',"Button").'</a>' ."\n";
$GlobalContent .= " </li>\n";
}
else
{ //just show entry
$GlobalContent .= " <li>\n";
if (LockIsActive('Packages',$ListData['Id']) || $ParentIsLocked)
{
$GlobalContent .= ' '.OtherGetIcon('LockActive');
$ParentIsLocked = 1;
}
elseif (UserHasRight('EditPackages'))
{
$GlobalContent .= ' <a href="index.php?Page=EditPackages&ToDo=EditPackage&Id='.$ListData['Id'].'" target="_top" title="'.LangSpellHtml('TagTitleEdit').'">';
$GlobalContent .= OtherGetIcon('Edit',"Button");
}
$GlobalContent .= " <a href=\"index.php?Page=EditPackages&ToDo=OpenSublist&SublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name'])."</a>";
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Packages').")";
$GlobalContent .= " \n</li>\n";
}
WritePackagesList($ListData['Id'],$ParentIsLocked);
}
}
if (!$EditPackagesEditId && UserHasRight('EditPackages'))
{
$GlobalContent .= " <li>\n";
$GlobalContent .= ' <form action="index.php?Page=EditPackages&ToDo=NewPackage&ParentId='.$ParentId.'" method="post">'."\n";
$GlobalContent .= ' <input type="text" name="NewPackageName" value="">'."\n";
$GlobalContent .= ' <input type="submit" value="'.LangSpellHtml('ButtonNew').'" class="Button">'."\n";
$GlobalContent .= ' </form>'."\n";
$GlobalContent .= " </li>\n";
}
$GlobalContent .= "</ul>\n";
}
if (UserHasRight('EditPackages'))
{
/////////////////
//edit package save
if ($ToDo=="EditpackageSave")
{
if (isset($_POST['Id']) && $_POST['Id'] && isset($_POST['Name']) && $_POST['Name'])
{
global $GlobalMysqlHandler;
$Id = $_POST['Id'];
$Name = $_POST['Name'];
$MoveId = (isset($_POST['MoveToId']))? $_POST['MoveToId']:0;
if ($MoveId)
{
$MoveQuery = "";
if ($MoveId=="#MOVE#ITEM#UP#")
{
$FirstParentId = NestedListGetParentId($Id,'Packages');
$MoveId = NestedListGetParentId($FirstParentId,'Packages');
}
else
{
$FirstParentId = NestedListGetParentId($Id,'Packages');
}
$MoveQuery="UPDATE `Packages` SET `ParentId` = '$MoveId' WHERE `Id` =$Id LIMIT 1 ;";
if (mysqli_query($GlobalMysqlHandler, $MoveQuery))
{
MessageSuccess(LangSpell('SentenceNestedListMoved'));
NestedListVisibilityUnset($FirstParentId,'EditPackages');
NestedListVisibilitySet($MoveId,'EditPackages');
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
ErrorLog("[edit_pacakges.php] Db error on moving element with id $Id to parent id $MoveId");
}
}
$ChangeNameQuery="UPDATE `Packages` SET `Name` = '$Name' WHERE `Id` =$Id LIMIT 1 ;";
if (!mysqli_query($GlobalMysqlHandler, $ChangeNameQuery))
{
MessageError(LangSpell('SentenceDatabaseError'));
ErrorLog("[edit_pacakges.php] Db error on naming element with id $Id");
}
}
else
{
if (isset($_POST['Name']) && !trim($_POST['Name']))
MessageError(LangSpell('EditPackagesNoPackageNameGiven'));
else
{
ErrorLog("[edit_pacakges.php] No Id to move down!");
MessageError(LangSpell('SentenceUnknownError'));
}
}
$ToDo="";
}
/////////////////
// delete package
if ($ToDo=="DeletePackage")
{
if (isset($_GET['Id']) && $_GET['Id'])
{
$Id = $_GET['Id'];
if (!LockIsActive('Packages',$Id))
{
global $GlobalMysqlHandler;
$DeleteQuery="DELETE FROM `Packages` WHERE `Id` = $Id LIMIT 1";
if (mysqli_query($GlobalMysqlHandler, $DeleteQuery))
{
MessageSuccess(LangSpell('EditPackagesPackageDeleted'));
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
}
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
ErrorLog("[edit_pacakges.php] No Id to delete package!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
////////////////
// add new package
if ($ToDo=="NewPackage")
{
if (isset($_GET['ParentId']) && isset($_POST['NewPackageName']))
{
$ParentId = $_GET['ParentId'];
$NewPackageName = $_POST['NewPackageName'];
if (LockActivate('Packages',$ParentId))
{
if (trim($NewPackageName)!="")
{
global $GlobalMysqlHandler;
$InsertQuery="INSERT INTO `Packages` ( `Name` , `ParentId` ) VALUES ( '$NewPackageName', '$ParentId' );";
if (mysqli_query($GlobalMysqlHandler, $InsertQuery))
{
MessageSuccess(LangSpell('EditPackagesNewPackageAdded'));
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
}
}
else
{
MessageError(LangSpell('EditPackagesNoPackageNameGiven'));
}
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
if (!isset($_GET['ParentId']))
ErrorLog("[edit_pacakges.php] No ParentId to add new package!");
if (!isset($_POST['NewPackageName']))
ErrorLog("[edit_pacakges.php] No NewPackageName to add new package!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
///////////////
// edit package
if ($ToDo=="EditPackage")
{
if (isset($_GET['Id']) && $_GET['Id'])
{
$EditId = $_GET['Id'];
if (LockActivate('Packages',$EditId))
{
$EditPackagesEditId=$EditId;
//NestedListVisibilityUnset($EditId, 'EditPackages');
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
ErrorLog("[edit_pacakges.php] No Id to edit package");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo = "";
}
//////////////////////
// cancel edit package
if ($ToDo=="CancelEditPackage")
{
if (isset($_GET['Id']) && $_GET['Id'])
{
$EditId = $_GET['Id'];
if (LockRelease('Packages',$EditId))
{
$EditPackagesEditId=0;
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
ErrorLog("[edit_pacakges.php] No Id to release loack on package");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo = "";
}
}
if (UserHasRight('EditPackages') || UserHasRight('ViewSTPV'))
{
///////////////
// open sublist
if ($ToDo=="OpenSublist")
{
if (isset($_GET['SublistId']) && $_GET['SublistId'])
{
NestedListVisibilityToggle($_GET['SublistId'], 'EditPackages');
}
else
{
ErrorLog("[edit_pacakges.php] No SublistId to open package!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
///////////////
// sow packages
if ($ToDo=="")
WritePackagesList(0,0);
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

299
pages/edit_stores.php Executable file
View file

@ -0,0 +1,299 @@
<?php
$EditStoresEditId=0;
function WriteStoreList($ParentId, $ParentIsLocked)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
global $EditStoresEditId;
$ListQuery="SELECT `Id` , `Name` FROM `Storages` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'EditStorage'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
if ($EditStoresEditId
&& ($EditStoresEditId==$ListData['Id'])
&& !( LockIsActive('Storages',$ListData['Id']) || $ParentIsLocked)
)
{ //edit entry
$GlobalContent .= " <li>\n";
$GlobalContent .= ' <a href="index.php?Page=EditStores&ToDo=DeleteStore&Id='.$ListData['Id'].'" title="'.LangSpellHtml('TagTitleDelete').'">'.OtherGetIcon('Delete',"Button").'</a>';
$GlobalContent .= ' <form action="index.php?Page=EditStores&ToDo=EditStoreSave" method="post">';
$GlobalContent .= ' <input type="hidden" name="Id" value="'.$ListData['Id'].'">';
$GlobalContent .= '<input type="text" name="Name" value="'.$ListData['Name'].'">';
$GlobalContent .= '<select name="MoveToId" title="'.LangSpellHtml('TagTitleMove').'">';
if ($ParentId)
$GlobalContent .= '<option value="#MOVE#ITEM#UP#">'.LangSpellHtml('TagTitleMoveUp').'</option>';
$GlobalContent .= '<option value="" selected>--- '.LangSpellHtml('TagTitleMove').' ---</option>';
$MoveItems = NestedLisGetSubelements($ParentId,"Storages");
foreach ($MoveItems as $MvItm)
{
if ($MvItm[0]==$ListData['Id']) continue;
$GlobalContent .= '<option value="'.$MvItm[0].'">'.$MvItm[1].'</option>';
}
$GlobalContent .= "</select>";
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonSave').'" class="Button">';
$GlobalContent .= ' </form>';
$GlobalContent .= ' <a href="index.php?Page=EditStores&ToDo=CancelEditStore&Id='.$ListData['Id'].'" title="'.LangSpellHtml('TagTitleCancel').'">'.OtherGetIcon('Cancel',"Button").'</a>' ."\n";
$GlobalContent .= " </li>\n";
}
else
{ //just show entry
$GlobalContent .= " <li>\n";
if (LockIsActive('Storages',$ListData['Id']) || $ParentIsLocked)
{
$GlobalContent .= ' '.OtherGetIcon('LockActive');
$ParentIsLocked = 1;
}
elseif (UserHasRight('EditStores'))
{
$GlobalContent .= ' <a href="index.php?Page=EditStores&ToDo=EditStore&Id='.$ListData['Id'].'" target="_top" title="'.LangSpellHtml('TagTitleEdit').'">';
$GlobalContent .= OtherGetIcon('Edit',"Button");
}
$GlobalContent .= " <a href=\"index.php?Page=EditStores&ToDo=OpenSublist&SublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name'])."</a>";
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Storages').")";
$GlobalContent .= " \n</li>\n";
}
WriteStoreList($ListData['Id'],$ParentIsLocked);
}
}
if (!$EditStoresEditId && UserHasRight('EditStores'))
{
$GlobalContent .= " <li>\n";
$GlobalContent .= ' <form action="index.php?Page=EditStores&ToDo=NewStore&ParentId='.$ParentId.'" method="post">'."\n";
$GlobalContent .= ' <input type="text" name="NewStoreName" value="">'."\n";
$GlobalContent .= ' <input type="submit" value="'.LangSpellHtml('ButtonNew').'" class="Button">'."\n";
$GlobalContent .= ' </form>'."\n";
$GlobalContent .= " </li>\n";
}
$GlobalContent .= "</ul>\n";
}
if (UserHasRight('EditStores'))
{
/////////////////
//edit store save
if ($ToDo=="EditStoreSave")
{
if (isset($_POST['Id']) && $_POST['Id'] && isset($_POST['Name']) && $_POST['Name'])
{
global $GlobalMysqlHandler;
$Id = $_POST['Id'];
$Name = $_POST['Name'];
$MoveId = (isset($_POST['MoveToId']))? $_POST['MoveToId']:0;
if ($MoveId)
{
$MoveQuery = "";
if ($MoveId=="#MOVE#ITEM#UP#")
{
$FirstParentId = NestedListGetParentId($Id,'Storages');
$MoveId = NestedListGetParentId($FirstParentId,'Storages');
}
else
{
$FirstParentId = NestedListGetParentId($Id,'Storages');
}
$MoveQuery="UPDATE `Storages` SET `ParentId` = '$MoveId' WHERE `Id` =$Id LIMIT 1 ;";
if (mysqli_query($GlobalMysqlHandler, $MoveQuery))
{
MessageSuccess(LangSpell('SentenceNestedListMoved'));
NestedListVisibilityUnset($FirstParentId,'EditStorage');
NestedListVisibilitySet($MoveId,'EditStorage');
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
ErrorLog("[edit_stored.php] Db error on moving element with id $Id to parent id $MoveId");
}
}
$ChangeNameQuery="UPDATE `Storages` SET `Name` = '$Name' WHERE `Id` =$Id LIMIT 1 ;";
if (!mysqli_query($GlobalMysqlHandler, $ChangeNameQuery))
{
MessageError(LangSpell('SentenceDatabaseError'));
ErrorLog("[edit_stored.php] Db error on naming element with id $Id");
}
}
else
{
if (isset($_POST['Name']) && !trim($_POST['Name']))
MessageError(LangSpell('EditStoresNoStoreNameGiven'));
else
{
ErrorLog("[edit_stores.php] No Id to move!");
MessageError(LangSpell('SentenceUnknownError'));
}
}
$ToDo="";
}
///////////////
// delete store
if ($ToDo=="DeleteStore")
{
if (isset($_GET['Id']) && $_GET['Id'])
{
$Id = $_GET['Id'];
if (!LockIsActive('Storages',$Id))
{
global $GlobalMysqlHandler;
$DeleteQuery="DELETE FROM `Storages` WHERE `Id` = $Id LIMIT 1";
if (mysqli_query($GlobalMysqlHandler, $DeleteQuery))
{
MessageSuccess(LangSpell('EditStoresStoreDeleted'));
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
}
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
ErrorLog("[edit_stores.php] No Id to delete store!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
////////////////
// add new store
if ($ToDo=="NewStore")
{
if (isset($_GET['ParentId']) && isset($_POST['NewStoreName']))
{
$ParentId = $_GET['ParentId'];
$NewStoreName = $_POST['NewStoreName'];
if (LockActivate('Storages',$ParentId))
{
if (trim($NewStoreName)!="")
{
global $GlobalMysqlHandler;
$InsertQuery="INSERT INTO `Storages` ( `Name` , `ParentId` ) VALUES ( '$NewStoreName', '$ParentId' );";
if (mysqli_query($GlobalMysqlHandler, $InsertQuery))
{
MessageSuccess(LangSpell('EditStoresNewStoreAdded'));
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
}
}
else
{
MessageError(LangSpell('EditStoresNoStoreNameGiven'));
}
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
if (!isset($_GET['ParentId']))
ErrorLog("[edit_stores.php] No ParentId to add new store!");
if (!isset($_POST['NewStoreName']))
ErrorLog("[edit_stores.php] No NewStoreName to add new store!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
/////////////
// edit store
if ($ToDo=="EditStore")
{
if (isset($_GET['Id']) && $_GET['Id'])
{
$EditId = $_GET['Id'];
if (LockActivate('Storages',$EditId))
{
$EditStoresEditId=$EditId;
//NestedListVisibilityUnset($EditId, 'EditStorage');
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
ErrorLog("[edit_stores.php] No Id to edit store");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo = "";
}
////////////////////
// cancel edit store
if ($ToDo=="CancelEditStore")
{
if (isset($_GET['Id']) && $_GET['Id'])
{
$EditId = $_GET['Id'];
if (LockRelease('Storages',$EditId))
{
$EditStoresEditId=0;
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
ErrorLog("[edit_stores.php] No Id to release loack on storage");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo = "";
}
}
if (UserHasRight('EditStores') || UserHasRight('ViewSTPV'))
{
///////////////
// open sublist
if ($ToDo=="OpenSublist")
{
if (isset($_GET['SublistId']) && $_GET['SublistId'])
{
NestedListVisibilityToggle($_GET['SublistId'], 'EditStorage');
}
else
{
ErrorLog("[edit_stores.php] No SublistId to open store!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
///////////////
// sow stores
if ($ToDo=="")
WriteStoreList(0,0);
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

310
pages/edit_types.php Executable file
View file

@ -0,0 +1,310 @@
<?php
$EditTypesEditId=0;
function WriteTypeList($ParentId, $ParentIsLocked)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
global $EditTypesEditId;
$ListQuery="SELECT * FROM `Types` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'EditTypes'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
if ($EditTypesEditId
&& ($EditTypesEditId==$ListData['Id'])
&& !( LockIsActive('Types',$ListData['Id']) || $ParentIsLocked)
)
{ //edit entry
$GlobalContent .= " <li>\n";
$GlobalContent .= ' <a href="index.php?Page=EditTypes&ToDo=DeleteType&Id='.$ListData['Id'].'" title="'.LangSpellHtml('TagTitleDelete').'">'.OtherGetIcon('Delete',"Button").'</a>';
$GlobalContent .= ' <form action="index.php?Page=EditTypes&ToDo=EditTypeSave" method="post">';
$GlobalContent .= ' <input type="hidden" name="Id" value="'.$ListData['Id'].'">';
$GlobalContent .= LangSpellHtml('EditTypesName').':<input type="text" name="Name" value="'.$ListData['Name'].'">&nbsp;';
$GlobalContent .= LangSpellHtml('EditTypesShortName').':<input type="text" name="ShortName" value="'.$ListData['ShortName'].'">';
$GlobalContent .= '<select name="MoveToId" title="'.LangSpellHtml('TagTitleMove').'">';
if ($ParentId)
$GlobalContent .= '<option value="#MOVE#ITEM#UP#">'.LangSpellHtml('TagTitleMoveUp').'</option>';
$GlobalContent .= '<option value="" selected>--- '.LangSpellHtml('TagTitleMove').' ---</option>';
$MoveItems = NestedLisGetSubelements($ParentId,"Types");
foreach ($MoveItems as $MvItm)
{
if ($MvItm[0]==$ListData['Id']) continue;
$GlobalContent .= '<option value="'.$MvItm[0].'">'.$MvItm[1].'</option>';
}
$GlobalContent .= "</select>";
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonSave').'" class="Button">';
$GlobalContent .= ' <a href="index.php?Page=EditTypes&ToDo=CancelEditType&Id='.$ListData['Id'].'" title="'.LangSpellHtml('TagTitleCancel').'">'.OtherGetIcon('Cancel',"Button").'</a><br>' ."\n";
$GlobalContent .= LangSpellHtml('EditTypesNameValue1').':<input type="text" name="NameValue1" value="'.$ListData['NameValue1'].'">&nbsp;';
$GlobalContent .= LangSpellHtml('EditTypesNameValue2').':<input type="text" name="NameValue2" value="'.$ListData['NameValue2'].'">&nbsp;';
$GlobalContent .= LangSpellHtml('EditTypesNameValue3').':<input type="text" name="NameValue3" value="'.$ListData['NameValue3'].'"><br>';
$GlobalContent .= LangSpellHtml('EditTypesUnitValue1').':<input type="text" name="UnitValue1" value="'.$ListData['UnitValue1'].'">&nbsp;';
$GlobalContent .= LangSpellHtml('EditTypesUnitValue2').':<input type="text" name="UnitValue2" value="'.$ListData['UnitValue2'].'">&nbsp;';
$GlobalContent .= LangSpellHtml('EditTypesUnitValue3').':<input type="text" name="UnitValue3" value="'.$ListData['UnitValue3'].'"><br>';
$GlobalContent .= ' </form>';
$GlobalContent .= " </li>\n";
}
else
{ //just show entry
$GlobalContent .= " <li>\n";
if (LockIsActive('Types',$ListData['Id']) || $ParentIsLocked)
{
$GlobalContent .= ' '.OtherGetIcon('LockActive');
$ParentIsLocked = 1;
}
elseif (UserHasRight('EditTypes'))
{
$GlobalContent .= ' <a href="index.php?Page=EditTypes&ToDo=EditType&Id='.$ListData['Id'].'" target="_top" title="'.LangSpellHtml('TagTitleEdit').'">';
$GlobalContent .= OtherGetIcon('Edit',"Button");
}
$GlobalContent .= " <a href=\"index.php?Page=EditTypes&ToDo=OpenSublist&SublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name'])."</a>";
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Types').")";
$GlobalContent .= " \n</li>\n";
}
WriteTypeList($ListData['Id'],$ParentIsLocked);
}
}
if (!$EditTypesEditId && UserHasRight('EditTypes'))
{
$GlobalContent .= " <li>\n";
$GlobalContent .= ' <form action="index.php?Page=EditTypes&ToDo=NewType&ParentId='.$ParentId.'" method="post">'."\n";
$GlobalContent .= ' <input type="text" name="NewTypeName" value="">'."\n";
$GlobalContent .= ' <input type="submit" value="'.LangSpellHtml('ButtonNew').'" class="Button">'."\n";
$GlobalContent .= ' </form>'."\n";
$GlobalContent .= " </li>\n";
}
$GlobalContent .= "</ul>\n";
}
if (UserHasRight('EditTypes'))
{
/////////////////
//edit type save
if ($ToDo=="EditTypeSave")
{
if (isset($_POST['Id']) && $_POST['Id'] && isset($_POST['Name']) && $_POST['Name']
&& isset($_POST['ShortName'])
&& isset($_POST['NameValue1']) && isset($_POST['NameValue2']) && isset($_POST['NameValue3'])
&& isset($_POST['UnitValue1']) && isset($_POST['UnitValue2']) && isset($_POST['UnitValue3'])
)
{
global $GlobalMysqlHandler;
$Id = $_POST['Id'];
$Name = $_POST['Name'];
$MoveId = (isset($_POST['MoveToId']))? $_POST['MoveToId']:0;
if ($MoveId)
{
$MoveQuery = "";
if ($MoveId=="#MOVE#ITEM#UP#")
{
$FirstParentId = NestedListGetParentId($Id,'Types');
$MoveId = NestedListGetParentId($FirstParentId,'Types');
}
else
{
$FirstParentId = NestedListGetParentId($Id,'Types');
}
$MoveQuery="UPDATE `Types` SET `ParentId` = '$MoveId' WHERE `Id` =$Id LIMIT 1 ;";
if (mysqli_query($GlobalMysqlHandler, $MoveQuery))
{
MessageSuccess(LangSpell('SentenceNestedListMoved'));
NestedListVisibilityUnset($FirstParentId,'EditTypes');
NestedListVisibilitySet($MoveId,'EditTypes');
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
ErrorLog("[edit_types.php] Db error on moving element with id $Id to parent id $MoveId");
}
}
//$ChangeItemQuery="UPDATE `Types` SET `Name` = '$Name' WHERE `Id` =$Id LIMIT 1 ;";
$ChangeItemQuery="UPDATE `Types` SET `Name` = '$Name', `ShortName` = '".$_POST['ShortName']."', `NameValue1` = '".$_POST['NameValue1']."', `NameValue2` = '".$_POST['NameValue2']."', `NameValue3` = '".$_POST['NameValue3']."', `UnitValue1` = '".$_POST['UnitValue1']."', `UnitValue2` = '".$_POST['UnitValue2']."', `UnitValue3` = '".$_POST['UnitValue3']."' WHERE `Id` =$Id LIMIT 1 ;";
if (!mysqli_query($GlobalMysqlHandler, $ChangeItemQuery))
{
MessageError(LangSpell('SentenceDatabaseError'));
ErrorLog("[edit_types.php] Db error on updating element with id $Id");
}
}
else
{
if (isset($_POST['Name']) && !trim($_POST['Name']))
MessageError(LangSpell('EditTypesNoTypeNameGiven'));
else
{
ErrorLog("[edit_types.php] No Id to move down!");
MessageError(LangSpell('SentenceUnknownError'));
}
}
$ToDo="";
}
///////////////
// delete type
if ($ToDo=="DeleteType")
{
if (isset($_GET['Id']) && $_GET['Id'])
{
$Id = $_GET['Id'];
if (!LockIsActive('Types',$Id))
{
global $GlobalMysqlHandler;
$DeleteQuery="DELETE FROM `Types` WHERE `Id` = $Id LIMIT 1";
if (mysqli_query($GlobalMysqlHandler, $DeleteQuery))
{
MessageSuccess(LangSpell('EditTypesTypeDeleted'));
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
}
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
ErrorLog("[edit_types.php] No Id to delete type!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
////////////////
// add new type
if ($ToDo=="NewType")
{
if (isset($_GET['ParentId']) && isset($_POST['NewTypeName']))
{
$ParentId = $_GET['ParentId'];
$NewTypeName = $_POST['NewTypeName'];
if (LockActivate('Types',$ParentId))
{
if (trim($NewTypeName)!="")
{
global $GlobalMysqlHandler;
$InsertQuery="INSERT INTO `Types` ( `Name` , `ParentId` ) VALUES ( '$NewTypeName', '$ParentId' );";
if (mysqli_query($GlobalMysqlHandler, $InsertQuery))
{
MessageSuccess(LangSpell('EditTypesNewTypeAdded'));
}
else
{
MessageError(LangSpell('SentenceDatabaseError'));
}
}
else
{
MessageError(LangSpell('EditTypesNoTypeNameGiven'));
}
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
if (!isset($_GET['ParentId']))
ErrorLog("[edit_types.php] No ParentId to add new type!");
if (!isset($_POST['NewTypeName']))
ErrorLog("[edit_types.php] No NewTypeName to add new type!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
/////////////
// edit type
if ($ToDo=="EditType")
{
if (isset($_GET['Id']) && $_GET['Id'])
{
$EditId = $_GET['Id'];
if (LockActivate('Types',$EditId))
{
$EditTypesEditId=$EditId;
//NestedListVisibilityUnset($EditId, 'EditTypes');
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
ErrorLog("[edit_types.php] No Id to edit type.");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo = "";
}
////////////////////
// cancel edit type
if ($ToDo=="CancelEditType")
{
if (isset($_GET['Id']) && $_GET['Id'])
{
$EditId = $_GET['Id'];
if (LockRelease('Types',$EditId))
{
$EditTypesEditId=0;
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
else
{
ErrorLog("[edit_types.php] No Id to release loack on storage");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo = "";
}
}
if (UserHasRight('EditTypes') || UserHasRight('ViewSTPV'))
{
///////////////
// open sublist
if ($ToDo=="OpenSublist")
{
if (isset($_GET['SublistId']) && $_GET['SublistId'])
{
NestedListVisibilityToggle($_GET['SublistId'], 'EditTypes');
}
else
{
ErrorLog("[edit_types.php] No SublistId to open type!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
///////////////
// sow types
if ($ToDo=="")
WriteTypeList(0,0);
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

261
pages/edit_users.php Executable file
View file

@ -0,0 +1,261 @@
<?php
if (UserGetLogin()=="root")
{
////////////////
//Add new user
if ($ToDo=="NewUser")
{
//Get primary vars
$Error=0;
$Login = (isset($_POST['Login']))? $_POST['Login']:"";
$Password = (isset($_POST['Password']))? $_POST['Password']:"";
//check primary vars
$UserExistQuery="SELECT * FROM `User` WHERE `Login` LIKE '$Login'";
$UserExistQuery=mysqli_query($GlobalMysqlHandler, $UserExistQuery);
if ($Login=="" || $Login=="root" || mysqli_num_rows($UserExistQuery))
{
$Error=1;
MessageError(LangSpell('SentenceLoginForbidden'));
}
if ($Password=="")
{
$Error=1;
MessageError(LangSpell('SentencePasswordForbidden'));
}
$Password=md5($Password);
if ($Error==0)
{
//insert into user table
$InsertUserQuery = "INSERT INTO `User` ( `Login` , `Password` ) VALUES ( '$Login', '$Password' );";
if (!mysqli_query($GlobalMysqlHandler, $InsertUserQuery))
{
ErrorLog("[edit_users.php] Database error while insert new user!");
MessageError(LangSpell('SentenceDatabaseError'));
}
else
{
MessageSuccess(LangSpell('SentenceNewUserAdded'));
}
//get eactual inserted id
$UserIdQuery="SELECT `Id` FROM `User` WHERE `Login` = '$Login' AND `Password` = '$Password'";
$ActualInsertedUserId = 0;
if (! ($UserIdQuery=mysqli_query($GlobalMysqlHandler, $UserIdQuery)) )
ErrorLog("[edit_users.php] Database error while getting id from inserted user!");
else
{
$ActualInsertedUserIdRecord=mysqli_fetch_array($UserIdQuery);
$ActualInsertedUserId = $ActualInsertedUserIdRecord['Id'];
//insert user rights table
//generate rights query
$RightsQuery="SELECT * FROM `UserRights` LIMIT 1";
$RightsQuery=mysqli_query($GlobalMysqlHandler, $RightsQuery);
$InsertRightValues = array();
for ($i=1;$i<(mysqli_num_fields($RightsQuery));$i++)
{
if (isset($_POST[mysqli_field_name($RightsQuery,$i)]))
{
$x=count($InsertRightValues);
$InsertRightValues[$x][0]=mysqli_field_name($RightsQuery,$i);
$InsertRightValues[$x][1]=(strtoupper($_POST[mysqli_field_name($RightsQuery,$i)])=="TRUE")? "True":"False";
}
}
$InsertRightsQuery1 = "INSERT INTO `UserRights` ( `Id` ";
$InsertRightsQuery2 = " ) VALUES ( '$ActualInsertedUserId' ";
$InsertRightsQuery3 = " );";
for ($i=0;$i<count($InsertRightValues);$i++)
{
$InsertRightsQuery1 .= ", `".$InsertRightValues[$i][0]."` ";
$InsertRightsQuery2 .= ", '".$InsertRightValues[$i][1]."'";
}
$InsertRightsQuery = $InsertRightsQuery1 . $InsertRightsQuery2 . $InsertRightsQuery3;
if (!mysqli_query($GlobalMysqlHandler, $InsertRightsQuery))
{
ErrorLog("[edit_users.php] Database error while insert new users rights (Id $ActualInsertedUserId)!");
MessageError(LangSpell('SentenceDatabaseError'));
}
}
}
}
/////////////
//Edit User
if ($ToDo=="EditUser")
{
$Error=0;
$Id = (isset($_POST['Id']))? $_POST['Id']:"";
$Login = (isset($_POST['Login']))? $_POST['Login']:"";
$Password = (isset($_POST['Password']))? $_POST['Password']:"";
$UserExistQuery="SELECT * FROM `User` WHERE `Login` LIKE '$Login' AND `Id` != '$Id'";
$UserExistQuery=mysqli_query($GlobalMysqlHandler, $UserExistQuery);
if ($Login=="" || $Login=="root" || mysqli_num_rows($UserExistQuery))
{
$Error=1;
MessageError(LangSpell('SentenceLoginForbidden'));
}
//check if user rights are existent, insert a record to UserRights if not
$CheckRightsExistentQuery="SELECT * FROM `UserRights` WHERE `Id` =$Id";
$CheckRightsExistentQuery=mysqli_query($GlobalMysqlHandler, $CheckRightsExistentQuery);
if (!mysqli_num_rows($CheckRightsExistentQuery))
{
ErrorLog("[edit_users.php-EditUser] No record with Id=$Id in UserRights table!");
$CheckRightsExistentQuery="INSERT INTO `ldtPartStock`.`UserRights` ( `Id` ) VALUES ( '$Id' );";
if (!mysqli_query($GlobalMysqlHandler, $CheckRightsExistentQuery))
ErrorLog("[edit_users.php-EditUser] Could not insert record with Id=$Id in UserRights table!");
}
if ($Error==0)
{
//generate rights array var
$UpdateRightValues = array();
$RightsQuery="SELECT * FROM `UserRights` LIMIT 1";
$RightsQuery=mysqli_query($GlobalMysqlHandler, $RightsQuery);
for ($i=1;$i<(mysqli_num_fields($RightsQuery));$i++)
{
$x=count($UpdateRightValues);
$UpdateRightValues[$x][0]=mysqli_field_name($RightsQuery,$i);
$UpdateRightValues[$x][1]=( (isset($_POST[mysqli_field_name($RightsQuery,$i)]))
&& (strtoupper($_POST[mysqli_field_name($RightsQuery,$i)])=="TRUE")
)? "True":"False";
}
//generate user query
$UpdateUserQuery = "UPDATE `User` SET `Login` = '$Login'";
if ($Password!="")
$UpdateUserQuery .= ", `Password` = '".md5($Password)."'";
$UpdateUserQuery .= " WHERE `Id` = '$Id' LIMIT 1;";
//generate user rights query
$UpdateRightsQuery = "UPDATE `UserRights` SET ";
for ($i=0;$i<count($UpdateRightValues);$i++)
{
$UpdateRightsQuery .= "`".$UpdateRightValues[$i][0]."` = '".$UpdateRightValues[$i][1]."'" . (($i<(count($UpdateRightValues)-1)) ? ", ":"");
}
$UpdateRightsQuery .= " WHERE `Id` = '$Id' LIMIT 1;";
$Error=0;
//update user table
if (!mysqli_query($GlobalMysqlHandler, $UpdateUserQuery))
{
ErrorLog("[edit_users.php] Database error while update User table at Id = $Id!");
MessageError(LangSpell('SentenceDatabaseError'));
$Error=1;
}
//update user rights table
if (!mysqli_query($GlobalMysqlHandler, $UpdateRightsQuery))
{
ErrorLog("[edit_users.php] Database error while update UserRights table at Id = $Id!");
MessageError(LangSpell('SentenceDatabaseError'));
$Error=1;
}
if (!$Error)
MessageSuccess(LangSpell('SentenceUserUpdated'));
}
}
///////////////
//Delete User
if ($ToDo=="DeleteUser" && isset($_GET['Id']))
{
//generate querys
$DeleteQuery1="DELETE FROM `User` WHERE `Id` = ".$_GET['Id'];
$DeleteQuery2="DELETE FROM `UserRights` WHERE `Id` = ".$_GET['Id'];
//update DB
if (!mysqli_query($GlobalMysqlHandler, $DeleteQuery1))
{
ErrorLog("[edit_users.php] Database error while delete user with Id=\"".$_GET['Id']."\" from User table!");
MessageError(LangSpell('SentenceDatabaseError'));
}
else
{
MessageSuccess(LangSpell('SentenceUserDeleted'));
}
if (!mysqli_query($GlobalMysqlHandler, $DeleteQuery2))
{
ErrorLog("[edit_users.php] Database error while delete user with Id=\"".$_GET['Id']."\" from UserRihts table!");
MessageError(LangSpell('SentenceDatabaseError'));
}
}
//////////////////
//Global content
$UserQuery="SELECT * FROM `User`";
$UserQuery=mysqli_query($GlobalMysqlHandler, $UserQuery);
$RightsQuery="SELECT * FROM `UserRights` LIMIT 1";
$RightsQuery=mysqli_query($GlobalMysqlHandler, $RightsQuery);
//table and head
$GlobalContent.='<table>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>Id</th>'."\n";
$GlobalContent.=' <th>Login</th>'."\n";
$GlobalContent.=' <th>Password</th>'."\n";
for ($i=1;$i<mysqli_num_fields($RightsQuery);$i++)
{
$GlobalContent.=' <th>'.mysqli_field_name($RightsQuery,$i).'</th>'."\n";
}
$GlobalContent.=' <th> </th>'."\n";
$GlobalContent.=' <th> </th>'."\n";
$GlobalContent.=' </tr>'."\n";
//existing users
while ($UserRecord=mysqli_fetch_array($UserQuery))
{
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <form action="index.php?Page=EditUsers&ToDo=EditUser" method="post">'."\n";
$GlobalContent.=' <td><input type="hidden" name="Id" value="'.$UserRecord['Id'].'">'.$UserRecord['Id'].'</td>'."\n";
$GlobalContent.=' <td><input type="text" name="Login" value="'.$UserRecord['Login'].'" title="'.LangSpellHtml('TagTitleEditUserLogin').'"></td>'."\n";
$GlobalContent.=' <td><input type="password" name="Password" value="" title="'.LangSpellHtml('TagTitleEditUserPassword').'"></td>'."\n";
$RightsQuery="SELECT * FROM `UserRights` WHERE `Id` = ".$UserRecord['Id']." LIMIT 1";
if (!$RightsQuery=mysqli_query($GlobalMysqlHandler, $RightsQuery))
ErrorLog('[edit_users.php-$RightsQuery] Database error or user id '.$UserRecord['Id'].' not found in UserRights');
$RightsRecord=mysqli_fetch_row($RightsQuery);
for ($i=1;$i<(mysqli_num_fields($RightsQuery));$i++)
{
$GlobalContent.=' <td><input type="checkbox" name="'.mysqli_field_name($RightsQuery,$i).'" value="True" title="'.LangSpellHtml('TagTitleEditUserRight').'" '.((strtoupper($RightsRecord[$i])=="TRUE")? "checked":"").'></td>'."\n";
}
$GlobalContent.=' <td><input type="Submit" value="'.LangSpellHtml('ButtonSave').'" title="'.LangSpellHtml('ButtonSave').'" class="Button"></td>'."\n";
$GlobalContent.=' <td><a href="index.php?Page=EditUsers&ToDo=DeleteUser&Id='.$UserRecord[0].'" title="'.LangSpellHtml('TagTitleDeleteUser').'" target="_top" class="Button">'.OtherGetIcon('Delete',0).'</a></td>'."\n";
$GlobalContent.=' </form>'."\n";
$GlobalContent.=' </tr>'."\n";
}
//new user entry
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <form action="index.php?Page=EditUsers&ToDo=NewUser" method="post">'."\n";
$GlobalContent.=' <td><input type="hidden" name="Id" value="'.$UserRecord['Id'].'">'.$UserRecord[$i].'</td>'."\n";
$GlobalContent.=' <td><input type="text" name="Login" value="'.$UserRecord['Login'].'" title="'.LangSpellHtml('TagTitleEditUserLogin').'"></td>'."\n";
$GlobalContent.=' <td><input type="password" name="Password" value="" title="'.LangSpellHtml('TagTitleEditUserPassword').'"></td>'."\n";
for ($i=1;$i<(mysqli_num_fields($RightsQuery));$i++)
{
$GlobalContent.=' <td><input type="checkbox" name="'.mysqli_field_name($RightsQuery,$i).'" value="True" title="'.LangSpellHtml('TagTitleEditUserRight').'"></td>'."\n";
}
$GlobalContent.=' <td><input type="Submit" value="'.LangSpellHtml('ButtonNew').'" class="Button"></td>'."\n";
$GlobalContent.=' <td> </td>'."\n";
$GlobalContent.=' </form>'."\n";
$GlobalContent.=' </tr>'."\n";
$GlobalContent.='</table>'."\n";
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

199
pages/edit_vendors.php Executable file
View file

@ -0,0 +1,199 @@
<?php
$EditVendorId=0;
if (UserHasRight('EditVendors'))
{
////////////////
//save changes
if ($ToDo=="SaveVendor")
{
$Id = (isset($_POST['Id']))? $_POST['Id']:"";
$Name = (isset($_POST['Name']))? $_POST['Name']:"";
$Homepage = (isset($_POST['Homepage']))? $_POST['Homepage']:"";
$MinBill = (isset($_POST['MinBill']))? OtherConvertToFloat($_POST['MinBill']):0;
$ShippingCost = (isset($_POST['ShippingCost']))? OtherConvertToFloat($_POST['ShippingCost']):0;
if (LockIsActive('Vendors',$_POST['Id']))
{
MessageError(LangSpellHtml('SentenceLockIsActive'));
}
elseif (!$Id)
{
MessageError(LangSpellHtml('SentenceUnknownError'));
}
elseif (!$Name)
{
$Error=1;
MessageError(LangSpellHtml('EditVendorsSentenceVendorNameRequired'));
}
else
{
$InsertVendorQuery = "UPDATE `Vendors` SET `Name` = '$Name', `Homepage` = '$Homepage', `MinBill` = '$MinBill', `ShippingCost` = '$ShippingCost' WHERE `Id` =$Id LIMIT 1 ;";
if (!mysqli_query($GlobalMysqlHandler, $InsertVendorQuery))
{
ErrorLog("[edit_vendors.php] Database error while save changes vendor!");
MessageError(LangSpell('SentenceDatabaseError'));
}
else
{
MessageSuccess(LangSpell('EditVendorsSentenceVendorUpated'));
}
LockRelease('Vendors',$_POST['Id']);
}
}
/////////////////
//delete vendor
if ($ToDo=="DeleteVendor")
{
global $GlobalMysqlHandler;
$Id = (isset($_GET['Id']))? $_GET['Id']:0;
$Vendor = (isset($_GET['Name']))? $_GET['Name']:0;
if ($Id && !LockIsActive("Vendors",$Id))
{
if (!mysqli_query($GlobalMysqlHandler, "DELETE FROM `Vendors` WHERE `Id` = $Id LIMIT 1;"))
{
MessageError(LangSpellHtml('SentenceDatabaseError'));
ErrorLog("[edit_vendors.php] Database error while delete vendor!");
}
else
{
MessageSuccess(LangSpellHtml('EditVendorsSentenceVendorDeleted'));
}
}
else
{
MessageError(LangSpellHtml('SentenceLockIsActive'));
}
}
//////////////
//new vendor
if ($ToDo=="NewVendor")
{
$Name = (isset($_POST['Name']))? $_POST['Name']:"";
$Homepage = (isset($_POST['Homepage']))? $_POST['Homepage']:"";
$MinBill = (isset($_POST['MinBill']))? OtherConvertToFloat($_POST['MinBill']):0;
$ShippingCost = (isset($_POST['ShippingCost']))? OtherConvertToFloat($_POST['ShippingCost']):0;
if (!$Name)
{
$Error=1;
MessageError(LangSpellHtml('EditVendorsSentenceVendorNameRequired'));
}
else
{
$InsertVendorQuery = "INSERT INTO `Vendors` ( `Name` , `Homepage` , `MinBill` , `ShippingCost` ) VALUES ( '$Name', '$Homepage', '$MinBill', '$ShippingCost' );";
if (!mysqli_query($GlobalMysqlHandler, $InsertVendorQuery))
{
ErrorLog("[edit_vendors.php] Database error while insert new vendor!");
MessageError(LangSpell('SentenceDatabaseError'));
}
else
{
MessageSuccess(LangSpell('EditVendorsSentenceVendorNewAdded'));
}
}
}
//////////////////
//cancel editing
if ($ToDo=="CancelEditVendor")
{
$Id = (isset($_GET['Id']))? $_GET['Id']:"";
if ($Id) LockRelease("Vendors",$Id);
}
//////////////////
//enable editing
if (($ToDo=="EditVendor") && isset($_POST['Id']))
{
if (LockActivate('Vendors',$_POST['Id'])) $EditVendorId=$_POST['Id'];
else MessageError(LangSpellHtml('SentenceLockIsActive'));
}
}
if(UserHasRight('EditVendors') || UserHasRight('ViewSTPV'))
{
//////////////////
//global content
$GlobalContent.='<table>'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <th>'.LangSpellHtml('EditVendorsId').'</th>'."\n";
$GlobalContent.=' <th>'.LangSpellHtml('EditVendorsName').'</th>'."\n";
$GlobalContent.=' <th>'.LangSpellHtml('EditVendorsHomepage').'</th>'."\n";
$GlobalContent.=' <th>'.LangSpellHtml('EditVendorsMinBill').'</th>'."\n";
$GlobalContent.=' <th>'.LangSpellHtml('EditVendorsShippingCost').'</th>'."\n";
if (UserHasRight('EditVendors'))
$GlobalContent.=' <th colspan="2">'.LangSpellHtml('EditVendorsEdit').'</th>'."\n";
$GlobalContent.=' </tr>'."\n";
$VendorQuery = "SELECT * FROM `Vendors`";
$VendorQuery = mysqli_query($GlobalMysqlHandler, $VendorQuery);
while ($Vendor=mysqli_fetch_array($VendorQuery))
{
if ( ($EditVendorId==$Vendor['Id']) )
{
$GlobalContent.=' <form action="index.php?Page=EditVendors&ToDo=SaveVendor" method="post">'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <td><input type="hidden" name="Id" value="'.$Vendor['Id'].'">'.$Vendor['Id'].'</td>'."\n";
$GlobalContent.=' <td><input type="text" name="Name" value="'.$Vendor['Name'].'"></td>'."\n";
$GlobalContent.=' <td><input type="text" name="Homepage" value="'.$Vendor['Homepage'].'"></td>'."\n";
$GlobalContent.=' <td><input type="text" name="MinBill" value="'.$Vendor['MinBill'].'"></td>'."\n";
$GlobalContent.=' <td><input type="text" name="ShippingCost" value="'.$Vendor['ShippingCost'].'"></td>'."\n";
$GlobalContent.=' <td><a href="index.php?Page=EditVendors&ToDo=CancelEditVendor&Id='.$Vendor['Id'].'" title="'.LangSpellHtml('TagTitleCancel').'" target="_top">'.OtherGetIcon('Cancel',"Button").'</a></td>'."\n";
$GlobalContent.=' <td><input type="submit" value="'.LangSpellHtml('ButtonSave').'" class="Button"></td>'."\n";
$GlobalContent.=' </tr>'."\n";
$GlobalContent.=' </form>'."\n";
}
else
{
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <td>'.$Vendor['Id'].'</td>'."\n";
$GlobalContent.=' <td>'.$Vendor['Name'].'</td>'."\n";
$GlobalContent.=' <td><a href="'.$Vendor['Homepage'].'" target="_new">'.$Vendor['Homepage'].'</a></td>'."\n";
$GlobalContent.=' <td>'.$Vendor['MinBill'].'</td>'."\n";
$GlobalContent.=' <td>'.$Vendor['ShippingCost'].'</td>'."\n";
if (LockIsActive("Vendors",$Vendor['Id']))
$GlobalContent.=' <td>'.OtherGetIcon('LockActive.png').'</td>'."\n";
elseif (UserHasRight('EditVendors'))
{
$GlobalContent.=' <td>'."\n";
$GlobalContent.=' <a href="index.php?Page=EditVendors&ToDo=DeleteVendor&Id='.$Vendor['Id'].'&Name='.$Vendor['Name'].'" title="'.LangSpellHtml('TagTitleDeleteEntry').'" target="_top">'.OtherGetIcon('Delete',"Button").'</a>'."\n";
$GlobalContent.=' </td>'."\n";
$GlobalContent.=' <td>'."\n";
$GlobalContent.=' <form action="index.php?Page=EditVendors&ToDo=EditVendor" method="post">'."\n";
$GlobalContent.=' <input type="hidden" name="Id" value="'.$Vendor['Id'].'">'."\n";
$GlobalContent.=' <input type="submit" value="'.LangSpellHtml('ButtonEdit').'" class="Button">'."\n";
$GlobalContent.=' </form>'."\n";
$GlobalContent.=' </td>'."\n";
}
$GlobalContent.=' </tr>'."\n";
}
}
if (!$EditVendorId && UserHasRight('EditVendors'))
{
$GlobalContent.=' <form action="index.php?Page=EditVendors&ToDo=NewVendor" method="post">'."\n";
$GlobalContent.=' <tr>'."\n";
$GlobalContent.=' <td><input type="hidden" name="Id" value="">'.$Vendor['Id'].'</td>'."\n";
$GlobalContent.=' <td><input type="text" name="Name" value=""></td>'."\n";
$GlobalContent.=' <td><input type="text" name="Homepage" value=""></td>'."\n";
$GlobalContent.=' <td><input type="text" name="MinBill" value=""></td>'."\n";
$GlobalContent.=' <td><input type="text" name="ShippingCost" value=""></td>'."\n";
$GlobalContent.=' <td></td>'."\n";
$GlobalContent.=' <td><input type="submit" value="'.LangSpellHtml('ButtonNew').'" class="Button"></td>'."\n";
$GlobalContent.=' </tr>'."\n";
$GlobalContent.=' </form>'."\n";
}
$GlobalContent.='</table>'."\n";
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

5
pages/home.php Executable file
View file

@ -0,0 +1,5 @@
<?php
$GlobalContent .= "Ich bin Inhalt!";
?>

155
pages/parts_by_store.php Executable file
View file

@ -0,0 +1,155 @@
<?php
global $GlobalMysqlHandler;
if (!isset($_SESSION['PartsByStoreStoreId'])) $_SESSION['PartsByStoreStoreId']=0;
function WriteTypeSelector ($ParentId)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
$ListQuery="SELECT * FROM `Storages` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'PartStoreSelector'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
$GlobalContent .= "<li>";
if (!(isset($_SESSION['PartsByStoreStoreId']) && $_SESSION['PartsByStoreStoreId']==$ListData['Id']))
$GlobalContent .= " <a href=\"index.php?Page=PartsByStore&ToDo=ToggleTypeSelectorVisibility&SublistId=".$ListData['Id']."\">";
$GlobalContent .= LangStr2Html($ListData['Name']);
if (!(isset($_SESSION['PartsByStoreStoreId']) && $_SESSION['PartsByStoreStoreId']==$ListData['Id']))
$GlobalContent .= "</a>\n";
if (NestedListCountSubElements($ListData['Id'], 'Storages'))
WriteTypeSelector($ListData['Id']);
$GlobalContent .= "</li>\n";
}
}
$GlobalContent .= "</ul>\n";
}
///////////////
// open sublist
if ($ToDo=="ToggleTypeSelectorVisibility")
{
if (isset($_GET['SublistId']) && $_GET['SublistId'])
{
$ParentId = NestedListGetParentId($_GET['SublistId'], 'Storages');
NestedListVisibilityUnsetAllElements('PartStoreSelector');
NestedListVisibilitySetAllParents($_GET['SublistId'], 'PartStoreSelector', 'Storages');
NestedListVisibilitySet($_GET['SublistId'], 'PartStoreSelector');
$_SESSION['PartsByStoreStoreId'] = $_GET['SublistId'];
}
else
{
ErrorLog("[parts_by_type.php] No SublistId to open type!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
///////////
// Selector
$GlobalContent .= '<div id="PartSelector">';
$GlobalContent .= WriteTypeSelector (0);
$GlobalContent .= '</div>'."\n";
////////////////
// Sort Partlist
if (!isset($_SESSION['SortPartListBy'])) $_SESSION['SortPartListBy']="Name";
if (!isset($_SESSION['SortPartListOrder'])) $_SESSION['SortPartListOrder']="ASC";
if (isset($_GET['SortBy']))
{
if ($_SESSION['SortPartListBy']==$_GET['SortBy']) //set order direction
{
if ($_SESSION['SortPartListOrder']=="ASC") $_SESSION['SortPartListOrder']="DESC";
else $_SESSION['SortPartListOrder']="ASC";
}
else //set order by
{
$_SESSION['SortPartListBy']=$_GET['SortBy'];
$_SESSION['SortPartListOrder']="ASC";
}
}
//////////////////
// Part List Begin
$GlobalContent .= '<div id="PartList">';
$GlobalContent .= '<table>'."\n";
//////////////////////
// PartList Table Head
$GlobalContent .= '<tr>';
//Name
$GlobalContent .= '<th><a href="index.php?Page=PartsByStore&SortBy=Name" target="_top">';
$GlobalContent .= LangSpellHtml('PartsName')." ";
if ($_SESSION['SortPartListBy']=="Name" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="Name" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
//Package
$GlobalContent .= '<th><a href="index.php?Page=PartsByStore&SortBy=PackageId" target="_top">';
$GlobalContent .= LangSpellHtml('PartsPackage')." ";
if ($_SESSION['SortPartListBy']=="PackageId" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="PackageId" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
//Quantity
$GlobalContent .= '<th><a href="index.php?Page=PartsByStore&SortBy=Qty" target="_top">';
$GlobalContent .= LangSpellHtml('PartsQuantity')." ";
if ($_SESSION['SortPartListBy']=="Qty" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="Qty" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
//Price
$GlobalContent .= '<th><a href="index.php?Page=PartsByStore&SortBy=Price" target="_top">';
$GlobalContent .= LangSpellHtml('PartsPrice')." ";
if ($_SESSION['SortPartListBy']=="Price" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="Price" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
//Obsolete
$GlobalContent .= '<th>'.LangSpellHtml('PartsObsolete').'</th>';
$GlobalContent .= '</tr>';
//////////////////////////
// generate Partlist query
$PartListQuery = "SELECT * FROM `Parts` WHERE `StorageId` = ".$_SESSION['PartsByStoreStoreId']."";
$PartListQuery .= " ORDER BY `".$_SESSION['SortPartListBy']."` ".$_SESSION['SortPartListOrder'];
//echo $PartListQuery;
/////////////////
// Part List List
$PartListQuery = mysqli_query($GlobalMysqlHandler, $PartListQuery);
while ($Parts = mysqli_fetch_array($PartListQuery))
{
$GlobalContent .= ' <tr>';
$GlobalContent .= ' <td><a href="index.php?Page=ShowPart&PartId='.$Parts['Id'].'" target="_top"><strong>'.$Parts['Name'].'</strong></a> '.$Parts['ShortDesc'].' </td>';
//////////
// Package
$PackageQuery = "SELECT `Name` FROM `Packages` WHERE `Id` = ".$Parts['PackageId'];
$PackageQuery = mysqli_query($GlobalMysqlHandler, $PackageQuery);
if (mysqli_num_rows($PackageQuery))
{
$Package=mysqli_fetch_array($PackageQuery);
$GlobalContent .= '<td>'.$Package['Name'].'</td>';
}
else
{
$GlobalContent .= '<td>-</td>';
}
$GlobalContent .= '<td>'.$Parts['Qty'].(($Parts['MinQty'])? "/".$Parts['MinQty']:"").'</td>';
$GlobalContent .= '<td>'.OtherFormatPrice($Parts['Price']).'</td>';
$GlobalContent .= '<td>'.((strtolower($Parts['Obsolete'])=="true")? LangSpellHtml('PartsObsolete'):"").'</td>';
$GlobalContent .= ' </tr>';
}
$GlobalContent .= '</table>'."\n";
$GlobalContent .= '</div>'."\n";
?>

241
pages/parts_by_type.php Executable file
View file

@ -0,0 +1,241 @@
<?php
global $GlobalMysqlHandler;
if (!isset($_SESSION['PartsByTypeTypeId'])) $_SESSION['PartsByTypeTypeId']=0;
function WriteTypeSelector ($ParentId)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
$ListQuery="SELECT * FROM `Types` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'PartTypeSelector'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
$GlobalContent .= "<li>";
//if (!NestedListVisibilityIsSet($ListData['Id'], 'PartTypeSelector')) $GlobalContent .= "+";
if (!(isset($_SESSION['PartsByTypeTypeId']) && $_SESSION['PartsByTypeTypeId']==$ListData['Id']))
$GlobalContent .= " <a href=\"index.php?Page=PartsByType&ToDo=ToggleTypeSelectorVisibility&SublistId=".$ListData['Id']."\">";
$GlobalContent .= LangStr2Html($ListData['Name']);
//if (strlen($ListData['ShortName'])) $GlobalContent .= " [".LangStr2Html($ListData['ShortName'])."]";
if (!(isset($_SESSION['PartsByTypeTypeId']) && $_SESSION['PartsByTypeTypeId']==$ListData['Id']))
$GlobalContent .= "</a>\n";
if (NestedListCountSubElements($ListData['Id'], 'Types'))
WriteTypeSelector($ListData['Id']);
$GlobalContent .= "</li>\n";
}
}
$GlobalContent .= "</ul>\n";
}
//////////////
// Delete Part
if ($ToDo=="ToggleTypeSelectorVisibility" && UserHasRight('EditParts')
&& isset($_POST['DeletePartId']) && $_POST['DeletePartId']
&& isset($_POST['DeletePartShure']) && $_POST['DeletePartShure']=="True"
&& isset($_GET['SublistId']) && $_GET['SublistId']
)
{
if (LockIsActive('Parts',$_POST['DeletePartId']))
{
MessageError(LangSpellHtml('SentenceLockIsActive'));
}
else
{
if (mysqli_query($GlobalMysqlHandler, "DELETE FROM `Parts` WHERE `Id` = ".$_POST['DeletePartId']." LIMIT 1"))
{
MessageSuccess(LangSpellHtml('SentencePartDeleted'));
}
else
{
MessageError(LangSpellHtml('SentenceDatabaseError'));
}
}
}
///////////////
// open sublist
if ($ToDo=="ToggleTypeSelectorVisibility")
{
if (isset($_GET['SublistId']) && $_GET['SublistId'])
{
$ParentId = NestedListGetParentId($_GET['SublistId'], 'Types');
NestedListVisibilityUnsetAllElements('PartTypeSelector');
NestedListVisibilitySetAllParents($_GET['SublistId'], 'PartTypeSelector', 'Types');
NestedListVisibilitySet($_GET['SublistId'], 'PartTypeSelector');
$_SESSION['PartsByTypeTypeId'] = $_GET['SublistId'];
}
else
{
ErrorLog("[parts_by_type.php] No SublistId to open type!");
MessageError(LangSpell('SentenceUnknownError'));
}
$ToDo="";
}
/////////////
// Type Array
$TypeQuery = "SELECT * FROM `Types` WHERE `Id` = ".$_SESSION['PartsByTypeTypeId'];
$TypeQuery = mysqli_query($GlobalMysqlHandler, $TypeQuery);
$TypeValues = array();
if (mysqli_num_rows($TypeQuery))
{
$TypeItem = mysqli_fetch_array($TypeQuery);
$TypeValues[0][0] = $TypeItem['NameValue1'];
$TypeValues[0][1] = $TypeItem['UnitValue1'];
$TypeValues[1][0] = $TypeItem['NameValue2'];
$TypeValues[1][1] = $TypeItem['UnitValue2'];
$TypeValues[2][0] = $TypeItem['NameValue3'];
$TypeValues[2][1] = $TypeItem['UnitValue3'];
}
///////////
// Selector
$GlobalContent .= '<div id="PartSelector">';
$GlobalContent .= WriteTypeSelector (0);
$GlobalContent .= '</div>'."\n";
/////////
// Filter
$GlobalContent .= '<div id="PartFilter">'."\n";
//Obsolete Filter
if (!isset($_SESSION['FilterObsolete'])) $_SESSION['FilterObsolete']="NonObsolete";
if (isset($_POST['FilterObsolete'])) $_SESSION['FilterObsolete']=$_POST['FilterObsolete'];
$GlobalContent .= ' <form action="index.php?Page=PartsByType" method="post">'."\n";
$GlobalContent .= ' <input type="radio" name="FilterObsolete" value="NonObsolete" onClick="javascript:this.form.submit()" '.(($_SESSION['FilterObsolete']=="NonObsolete")? "checked":"").'>'.LangSpellHtml('PartsObsoleteNon')."\n";
$GlobalContent .= ' <input type="radio" name="FilterObsolete" value="OnlyObsolete" onClick="javascript:this.form.submit()" '.(($_SESSION['FilterObsolete']=="OnlyObsolete")? "checked":"").'>'.LangSpellHtml('PartsObsoleteOnly')."\n";
$GlobalContent .= ' <input type="radio" name="FilterObsolete" value="AllObsolete" onClick="javascript:this.form.submit()" '.(($_SESSION['FilterObsolete']=="AllObsolete")? "checked":"").'>'.LangSpellHtml('PartsObsoleteAll')."\n";
$GlobalContent .= ' </form>'."\n";
$GlobalContent .= '</div>'."\n";
////////////////
// Sort Partlist
if (!isset($_SESSION['SortPartListBy'])) $_SESSION['SortPartListBy']="Name";
if (!isset($_SESSION['SortPartListOrder'])) $_SESSION['SortPartListOrder']="ASC";
if (isset($_GET['SortBy']))
{
if ($_SESSION['SortPartListBy']==$_GET['SortBy']) //set order direction
{
if ($_SESSION['SortPartListOrder']=="ASC") $_SESSION['SortPartListOrder']="DESC";
else $_SESSION['SortPartListOrder']="ASC";
}
else //set order by
{
$_SESSION['SortPartListBy']=$_GET['SortBy'];
$_SESSION['SortPartListOrder']="ASC";
}
}
//////////////////
// Part List Begin
$GlobalContent .= '<div id="PartList">';
$GlobalContent .= '<table>'."\n";
//////////////////////
// PartList Table Head
$GlobalContent .= '<tr>';
//Name
$GlobalContent .= '<th><a href="index.php?Page=PartsByType&SortBy=Name" target="_top">';
$GlobalContent .= LangSpellHtml('PartsName')." ";
if ($_SESSION['SortPartListBy']=="Name" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="Name" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
//Value 1
if (isset($TypeValues[0][0]) && $TypeValues[0][0])
{
$GlobalContent .= '<th><a href="index.php?Page=PartsByType&SortBy=Value1" target="_top">';
$GlobalContent .= $TypeValues[0][0]." ";
if ($_SESSION['SortPartListBy']=="Value1" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="Value1" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
}
//Value2
if (isset($TypeValues[1][0]) && $TypeValues[1][0])
{
$GlobalContent .= '<th><a href="index.php?Page=PartsByType&SortBy=Value2" target="_top">';
$GlobalContent .= $TypeValues[1][0]." ";
if ($_SESSION['SortPartListBy']=="Value2" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="Value2" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
}
//Value3
if (isset($TypeValues[2][0]) && $TypeValues[2][0])
{
$GlobalContent .= '<th><a href="index.php?Page=PartsByType&SortBy=Value3" target="_top">';
$GlobalContent .= $TypeValues[2][0]." ";
if ($_SESSION['SortPartListBy']=="Value3" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="Value3" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
}
//Package
$GlobalContent .= '<th><a href="index.php?Page=PartsByType&SortBy=PackageId" target="_top">';
$GlobalContent .= LangSpellHtml('PartsPackage')." ";
if ($_SESSION['SortPartListBy']=="PackageId" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="PackageId" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
//Quantity
$GlobalContent .= '<th><a href="index.php?Page=PartsByType&SortBy=Qty" target="_top">';
$GlobalContent .= LangSpellHtml('PartsQuantity')." ";
if ($_SESSION['SortPartListBy']=="Qty" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="Qty" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
//Price
$GlobalContent .= '<th><a href="index.php?Page=PartsByType&SortBy=Price" target="_top">';
$GlobalContent .= LangSpellHtml('PartsPrice')." ";
if ($_SESSION['SortPartListBy']=="Price" && $_SESSION['SortPartListOrder']=="ASC") $GlobalContent .= OtherGetIcon('SortUp',0);
if ($_SESSION['SortPartListBy']=="Price" && $_SESSION['SortPartListOrder']=="DESC") $GlobalContent .= OtherGetIcon('SortDown',0);
$GlobalContent .= '</a></th>';
//Obsolete
$GlobalContent .= '<th>'.LangSpellHtml('PartsObsolete').'</th>';
$GlobalContent .= '</tr>';
//////////////////////////
// generate Partlist query
$PartListQuery = "SELECT * FROM `Parts` WHERE `TypeId` = ".$_SESSION['PartsByTypeTypeId']."";
if ($_SESSION['FilterObsolete']=="OnlyObsolete") $PartListQuery .= " AND `Obsolete` LIKE 'TRUE'";
if ($_SESSION['FilterObsolete']=="NonObsolete") $PartListQuery .= " AND `Obsolete` LIKE 'FALSE'";
$PartListQuery .= " ORDER BY `".$_SESSION['SortPartListBy']."` ".$_SESSION['SortPartListOrder'];
//echo $PartListQuery;
/////////////////
// Part List List
$PartListQuery = mysqli_query($GlobalMysqlHandler, $PartListQuery);
while ($Parts = mysqli_fetch_array($PartListQuery))
{
$GlobalContent .= ' <tr>';
$GlobalContent .= ' <td><a href="index.php?Page=ShowPart&PartId='.$Parts['Id'].'" target="_top"><strong>'.$Parts['Name'].'</strong></a> '.$Parts['ShortDesc'].' </td>';
if (isset($TypeValues[0][0]) && $TypeValues[0][0]) $GlobalContent .= ' <td>'.OtherFloatToSiPrefix ($Parts['Value1']).$TypeValues[0][1].'</td>';
if (isset($TypeValues[1][0]) && $TypeValues[1][0]) $GlobalContent .= ' <td>'.OtherFloatToSiPrefix ($Parts['Value2']).$TypeValues[1][1].'</td>';
if (isset($TypeValues[2][0]) && $TypeValues[2][0]) $GlobalContent .= ' <td>'.OtherFloatToSiPrefix ($Parts['Value3']).$TypeValues[2][1].'</td>';
//////////
// Package
$PackageQuery = "SELECT `Name` FROM `Packages` WHERE `Id` = ".$Parts['PackageId'];
$PackageQuery = mysqli_query($GlobalMysqlHandler, $PackageQuery);
if (mysqli_num_rows($PackageQuery))
{
$Package=mysqli_fetch_array($PackageQuery);
$GlobalContent .= '<td>'.$Package['Name'].'</td>';
}
else
{
$GlobalContent .= '<td>-</td>';
}
$GlobalContent .= '<td>'.$Parts['Qty'].(($Parts['MinQty'])? "/".$Parts['MinQty']:"").'</td>';
$GlobalContent .= '<td>'.OtherFormatPrice($Parts['Price']).'</td>';
$GlobalContent .= '<td>'.((strtolower($Parts['Obsolete'])=="true")? LangSpellHtml('PartsObsolete'):"").'</td>';
$GlobalContent .= ' </tr>';
}
$GlobalContent .= '</table>'."\n";
$GlobalContent .= '</div>'."\n";
?>

73
pages/repeat_order.php Executable file
View file

@ -0,0 +1,73 @@
<?php
function RepeatOrderTableByVendor ($VendorName, $VendorId)
{
global $GlobalMysqlHandler;
global $GlobalContent;
$RepOrdQuery="SELECT * FROM `Parts` WHERE `Qty` < `MinQty` AND `VendorId` = $VendorId ORDER BY `Name` ASC";
$RepOrdQuery=mysqli_query($GlobalMysqlHandler, $RepOrdQuery);
$ShowTable=0;
if (mysqli_num_rows($RepOrdQuery))
{
$GlobalContent .= '<table>';
$GlobalContent .= ' <tr>';
$GlobalContent .= ' <td colspan="8">{'.$VendorId.'} <strong>'.$VendorName.'</strong></td>';
$GlobalContent .= ' </tr>';
$GlobalContent .= ' <tr>';
$GlobalContent .= ' <th>'.LangSpellHtml('PartsName').'</th>';
$GlobalContent .= ' <th>'.LangSpellHtml('PartsQuantity').'</th>';
$GlobalContent .= ' <th>'.LangSpellHtml('PartsMinQuantity').'</th>';
$GlobalContent .= ' <th>'.LangSpellHtml('PartsPackageUnit').'</th>';
$GlobalContent .= ' <th>'.LangSpellHtml('PartsPrice').'</th>';
$GlobalContent .= ' <th>'.LangSpellHtml('PartsVendorLink').'</th>';
$GlobalContent .= ' <th>'.LangSpellHtml('RepeatOrderPackagesToOrder').'</th>';
$GlobalContent .= ' <th>'.LangSpellHtml('RepeatOrderSumPrice').'</th>';
$GlobalContent .= ' </tr>';
$ShowTable = 1;
}
$AllSumPrice=0;
while ($Part = mysqli_fetch_array($RepOrdQuery))
{
if (!$Part['PackageUnit']) $Part['PackageUnit']=1;
$Price=OtherFormatPrice($Part['Price']);
$VendorLink=($Part['VendorLink'])? '<a href="'.$Part['VendorLink'].'" target="_new">':'-';
$OrderPackages = ceil(($Part['MinQty']-$Part['Qty'])/$Part['PackageUnit']);
$SumPrice = OtherFormatPrice($OrderPackages * $Part['Price']);
$AllSumPrice += $OrderPackages * $Part['Price'];
$GlobalContent .= ' <tr>';
$GlobalContent .= ' <td><a href="'.$Part['VendorLink'].'" title="'.$Part['VendorLink'].'" target="_new">'.$Part['Name'].'</a></td>';
$GlobalContent .= ' <td>'.$Part['Qty'].'</td>';
$GlobalContent .= ' <td>'.$Part['MinQty'].'</td>';
$GlobalContent .= ' <td>'.$Part['PackageUnit'].'</td>';
$GlobalContent .= ' <td>'.$Price.'</td>';
$GlobalContent .= ' <td>'.$VendorLink.'</td>';
$GlobalContent .= ' <td>'.$OrderPackages.'</td>';
$GlobalContent .= ' <td>'.OtherFormatPrice($SumPrice).'</td>';
$GlobalContent .= ' </tr>';
}
if ($ShowTable)
{
$GlobalContent .= ' <tr>';
$GlobalContent .= ' <td colspan="7"></td><td><strong>'.OtherFormatPrice($AllSumPrice).'</strong></td>';
$GlobalContent .= ' </tr>';
$GlobalContent .= '</table>';
}
}
global $GlobalMysqlHandler;
$VendorQuery = "SELECT * FROM `Vendors` ORDER BY `Name` ASC";
$VendorQuery = mysqli_query($GlobalMysqlHandler, $VendorQuery);
RepeatOrderTableByVendor(LangSpellHtml('PartsNotSpecified'),0);
while ($Vendor = mysqli_fetch_array($VendorQuery))
{
RepeatOrderTableByVendor($Vendor['Name'],$Vendor['Id']);
}
?>

398
pages/show_part.php Executable file
View file

@ -0,0 +1,398 @@
<?php
global $GlobalMysqlHandler;
global $GlobalDownloadDir;
global $GlobalPictureDir;
//////////////
// Get Part Id
$PartId = 0;
$PartId = (isset($_GET['PartId']) ) ? $_GET['PartId']:$PartId;
$PartId = (isset($_POST['PartId'])) ? $_POST['PartId']:$PartId;
//mysql part request
$PartSQLQuery = "SELECT * FROM `Parts` WHERE `Id` = $PartId LIMIT 1;";
$PartQuery = mysqli_query($GlobalMysqlHandler, $PartSQLQuery);
$Part = mysqli_fetch_array($PartQuery);
if (mysqli_num_rows($PartQuery))
{
/////////////////////
// upload new picture
if (($ToDo=="UploadNewPicture") && (UserHasRight('EditParts')))
{
if (!LockIsActive('Parts',$PartId))
{
if (!is_dir($GlobalPictureDir) && !mkdir($GlobalPictureDir))
{
MessageError(LangSpell('SentenceCanNotCopyFile'));
ErrorLog("Can not create directory $GlobalPictureDir");
}
elseif (!isset($_FILES['NewPictureFile']))
{
MessageError(LangSpell('SentenceNoFileGiven'));
$ToDo="EditPicture";
}
elseif ($_FILES['NewPictureFile']['error'])
{
MessageError($_FILES['NewPictureFile']['error'].': http://www.php.net/manual/de/features.file-upload.errors.php');
ErrorLog("Picture upload error ".$_FILES['NewPictureFile']['error']);
$ToDo="EditPicture";
}
elseif (diskfreespace($GlobalPictureDir)<$_FILES['NewPictureFile']['size'])
{
MessageError(LangSpell('SentenceNotEnoughDiskSpace'));
$ToDo="EditPicture";
}
else
{
$DestinationFileName = "[".$PartId."]_".$_FILES["NewPictureFile"]["name"];
$SqlInsertQuery="UPDATE `Parts` SET `PicturePath` = '$DestinationFileName' WHERE `Id` = $PartId LIMIT 1 ;";
$OldFileNameQuery=mysqli_query($GlobalMysqlHandler, "SELECT `PicturePath` FROM `Parts` WHERE `Id` = $PartId");
$OldFileNameArray=mysqli_fetch_array($OldFileNameQuery);
$OldFileName=$OldFileNameArray['PicturePath'];
if ($OldFileName && file_exists($GlobalPictureDir."/".$OldFileName) && !unlink($GlobalPictureDir."/".$OldFileName))
{
MessageError(LangSpell('SentenceCanNotCopyFile'));
ErrorLog("Unable to delete old picture!");
$ToDo="EditPicture";
}
elseif (!move_uploaded_file($_FILES["NewPictureFile"]["tmp_name"],$GlobalPictureDir."/".$DestinationFileName))
{
MessageError(LangSpell('SentenceCanNotCopyFile')." ($GlobalPictureDir)");
$ToDo="EditPicture";
}
elseif (!mysqli_query($GlobalMysqlHandler, $SqlInsertQuery))
{
ErrorLog("Can not instert into table 'Parts'!");
MessageError(LangSpell('SentenceDatabaseError'));
unlink($GlobalPictureDir."/".$DestinationFileName);
}
else
{
MessageSuccess(LangSpell('SentenceFileHasBeenUploaded'));
$ToDo="";
}
}
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
//////////////////
// Delete Download
if (isset($_GET['DownloadId']) && ($ToDo=="DeleteDownload") && (UserHasRight('EditParts')))
{
if (!LockIsActive('Parts',$PartId))
{
$DownloadQuery = "SELECT * FROM `Downloads` WHERE `Id` = ".$_GET['DownloadId'];
$DownloadQuery = mysqli_query($GlobalMysqlHandler, $DownloadQuery);
if (mysqli_num_rows($DownloadQuery))
{
$Download=mysqli_fetch_array($DownloadQuery);
if (file_exists($GlobalDownloadDir."/".$Download['Path']))
{
if (unlink($GlobalDownloadDir."/".$Download['Path']))
{
if (mysqli_query($GlobalMysqlHandler, "DELETE FROM `Downloads` WHERE `Id` = ".$_GET['DownloadId']." LIMIT 1"))
MessageSuccess(LangSpell('SentenceDownloadDeleted'));
else
{
ErrorLog("Can not update table 'Downloads' at id '".$_POST['EditDownloadId']."'!");
MessageError(LangSpell('SentenceDatabaseError'));
}
}
else
{
ErrorLog("Deleting file '".$GlobalDownloadDir."/".$Download['Path']."' failed'!");
MessageError(LangSpell('SentenceCanNotCopyFile'));
}
}
else
{
if (mysqli_query($GlobalMysqlHandler, "DELETE FROM `Downloads` WHERE `Id` = ".$_GET['DownloadId']." LIMIT 1"))
MessageSuccess(LangSpell('SentenceDownloadDeleted'));
else
{
ErrorLog("Can not update table 'Downloads' at id '".$_POST['EditDownloadId']."'!");
MessageError(LangSpell('SentenceDatabaseError'));
}
}
}
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
$ToDo="";
}
////////////////
// Edit Download
if (isset($_POST['EditDownloadId']) && isset($_POST['EditDownloadName']) && ($ToDo=="EditDownload") && (UserHasRight('EditParts')))
{
if (!LockIsActive('Parts',$PartId))
{
if (!mysqli_query($GlobalMysqlHandler, "UPDATE `Downloads` SET `Name` = '".$_POST['EditDownloadName']."' WHERE `Id` =".$_POST['EditDownloadId']." LIMIT 1 ;"))
{
ErrorLog("Can not update table 'Downloads' at id '".$_POST['EditDownloadId']."'!");
MessageError(LangSpell('SentenceDatabaseError'));
}
else
MessageSuccess(LangSpell('SentenceDownloadEdited'));
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
$ToDo="";
}
//////////////////////
// upload new downlaod
if (($ToDo=="UploadNewDownload") && (UserHasRight('EditParts')))
{
if (!LockIsActive('Parts',$PartId))
{
if (!is_dir($GlobalDownloadDir) && !mkdir($GlobalDownloadDir))
{
MessageError(LangSpell('SentenceCanNotCopyFile'));
ErrorLog("Can not create directory $GlobalDownloadDir");
}
elseif (!isset($_FILES['AddNewDownloadFile']))
{
MessageError(LangSpell('SentenceNoFileGiven'));
$ToDo="EditDownloads";
}
elseif ($_FILES['AddNewDownloadFile']['error'])
{
MessageError($_FILES['AddNewDownloadFile']['error'].': http://www.php.net/manual/de/features.file-upload.errors.php');
ErrorLog("Upload error ".$_FILES['AddNewDownloadFile']['error']);
$ToDo="EditDownloads";
}
elseif (diskfreespace($GlobalDownloadDir)<$_FILES['AddNewDownloadFile']['size'])
{
MessageError(LangSpell('SentenceNotEnoughDiskSpace'));
$ToDo="EditDownloads";
}
else
{
$DestinationFileName = "[".$PartId."]_".$_FILES["AddNewDownloadFile"]["name"];
$SqlInsertQuery="INSERT INTO `Downloads` ( `PartId` , `Name` , `Path` , `Type` ) VALUES ( '$PartId', "
."'".((isset($_POST['AddNewDownloadName']) && $_POST['AddNewDownloadName'])? $_POST['AddNewDownloadName']:$_FILES["AddNewDownloadFile"]["name"])."', "
."'$DestinationFileName', '".$_FILES["AddNewDownloadFile"]["type"]."' );";
if (file_exists($GlobalDownloadDir."/".$DestinationFileName))
{
MessageError(LangSpell('SentenceFileAlreadyExist'));
$ToDo="EditDownloads";
}
elseif (!move_uploaded_file($_FILES["AddNewDownloadFile"]["tmp_name"],$GlobalDownloadDir."/".$DestinationFileName))
{
MessageError(LangSpell('SentenceCanNotCopyFile')." ($GlobalDownloadDir)");
$ToDo="EditDownloads";
}
elseif (!mysqli_query($GlobalMysqlHandler, $SqlInsertQuery))
{
ErrorLog("Can not instert into table 'Downloads'!");
MessageError(LangSpell('SentenceDatabaseError'));
unlink($GlobalDownloadDir."/".$DestinationFileName);
}
else
{
MessageSuccess(LangSpell('SentenceFileHasBeenUploaded'));
}
}
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
}
//////////////////////////
// Save values of the part
if (($ToDo=="SaveValues") && (UserHasRight('EditParts')))
{
if (!LockIsActive('Parts',$PartId))
{
$UpdateQuery = "UPDATE `Parts` SET `Name` = '".$_POST['EditValuesName']."', ";
$UpdateQuery .= "`Value1` = '".((isset($_POST['EditValuesValue1']))? OtherSiPrefixToFloat($_POST['EditValuesValue1']):0)."', ";
$UpdateQuery .= "`Value2` = '".((isset($_POST['EditValuesValue2']))? OtherSiPrefixToFloat($_POST['EditValuesValue2']):0)."', ";
$UpdateQuery .= "`Value3` = '".((isset($_POST['EditValuesValue3']))? OtherSiPrefixToFloat($_POST['EditValuesValue3']):0)."', ";
$UpdateQuery .= "`ShortDesc` = '".$_POST['EditValuesShortDesc']."', ";
$UpdateQuery .= "`LongDesc` = '".$_POST['EditValuesLongDesc']."', ";
$UpdateQuery .= "`VendorId` = '".$_POST['EditValuesVendor']."', ";
$UpdateQuery .= "`VendorLink` = '".$_POST['NewPartVedorLink']."', ";
$UpdateQuery .= "`ManufactorLink` = '".$_POST['NewPartManufactorLink']."', ";
$UpdateQuery .= "`PackageUnit` = '".$_POST['EditValuesPackageUnit']."', ";
$UpdateQuery .= "`Price` = '".OtherFormatPrice($_POST['EditValuesPrice'])."', ";
$UpdateQuery .= "`MinOrderQty` = '".$_POST['EditValuesMinOrderQty']."', ";
$UpdateQuery .= "`Qty` = '".$_POST['EditValuesQty']."', ";
$UpdateQuery .= "`MinQty` = '".$_POST['EditValuesMinQty']."', ";
$UpdateQuery .= "`Obsolete` = '".(((isset($_POST['EditValuesObsolete'])) && (strtolower($_POST['EditValuesObsolete'])=="true"))? "True":"False")."' ";
$UpdateQuery .= "WHERE `Id` = $PartId LIMIT 1 ;";
if (mysqli_query($GlobalMysqlHandler, $UpdateQuery))
{
MessageSuccess(LangSpell('SentencePartHasBeenUpdated'));
}
else
{
ErrorLog("Can not update table 'Parts' at id '$PartId'!");
MessageError(LangSpell('SentenceDatabaseError'));
}
$ToDo="";
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
$ToDo="";
}
///////////////////////////
// Save storage of the part
if (isset($_POST['EditPartStorage']) && ($ToDo=="SaveStorage") && (UserHasRight('EditParts')))
{
if (!LockIsActive('Parts',$PartId))
{
if (!mysqli_query($GlobalMysqlHandler, "UPDATE `Parts` SET `StorageId` = '".$_POST['EditPartStorage']."' WHERE `Id` =$PartId LIMIT 1 ;"))
{
ErrorLog("Can not update table 'Parts' at id '$PartId'!");
MessageError(LangSpell('SentenceDatabaseError'));
}
else
MessageSuccess(LangSpell('SentencePartHasBeenUpdated'));
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
$ToDo="";
}
///////////////////////////
// Save package of the part
if (isset($_POST['EditPartPackage']) && ($ToDo=="SavePackage") && (UserHasRight('EditParts')))
{
if (!LockIsActive('Parts',$PartId))
{
if (!mysqli_query($GlobalMysqlHandler, "UPDATE `Parts` SET `PackageId` = '".$_POST['EditPartPackage']."' WHERE `Id` =$PartId LIMIT 1 ;"))
{
ErrorLog("Can not update table 'Parts' at id '$PartId'!");
MessageError(LangSpell('SentenceDatabaseError'));
}
else
MessageSuccess(LangSpell('SentencePartHasBeenUpdated'));
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
$ToDo="";
}
////////////////////////
// Save type of the part
if (isset($_POST['EditPartType']) && ($ToDo=="SaveType") && (UserHasRight('EditParts')))
{
if (!LockIsActive('Parts',$PartId))
{
if (!mysqli_query($GlobalMysqlHandler, "UPDATE `Parts` SET `TypeId` = '".$_POST['EditPartType']."' WHERE `Id` =$PartId LIMIT 1 ;"))
{
ErrorLog("Can not update table 'Parts' at id '$PartId'!");
MessageError(LangSpell('SentenceDatabaseError'));
}
else
MessageSuccess(LangSpell('SentencePartHasBeenUpdated'));
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
$ToDo="";
}
//////////////////////////////
//Update Parts Actual Quantity
if (isset($_POST['NewQuantity']) && ($ToDo=="SaveNewQuantity") && (UserHasRight('EditParts') || UserHasRight('EditPartQuantity')))
{
if (!LockIsActive('Parts',$PartId))
{
$NewQuantity=$_POST['NewQuantity'];
if (!mysqli_query($GlobalMysqlHandler, "UPDATE `Parts` SET `Qty` = '$NewQuantity' WHERE `Id` =$PartId LIMIT 1 ;"))
{
ErrorLog("Can not update table 'Parts' at id '$PartId'!");
MessageError(LangSpell('SentenceDatabaseError'));
}
else
MessageSuccess(LangSpell('SentencePartHasBeenUpdated'));
}
else
{
MessageError(LangSpell('SentenceLockIsActive'));
}
$ToDo="";
}
/////////////////
// Get Part Query
$PartSQLQuery = "SELECT * FROM `Parts` WHERE `Id` = $PartId LIMIT 1;";
$PartQuery = mysqli_query($GlobalMysqlHandler, $PartSQLQuery);
$Part = mysqli_fetch_array($PartQuery);
/////////////
// Type Array
$TypeQuery = "SELECT * FROM `Types` WHERE `Id` = ".$Part['TypeId'];
$TypeQuery = mysqli_query($GlobalMysqlHandler, $TypeQuery);
$TypeValues = array();
if (mysqli_num_rows($TypeQuery))
{
$TypeItem = mysqli_fetch_array($TypeQuery);
$TypeValues[0][0] = $TypeItem['NameValue1'];
$TypeValues[0][1] = $TypeItem['UnitValue1'];
$TypeValues[1][0] = $TypeItem['NameValue2'];
$TypeValues[1][1] = $TypeItem['UnitValue2'];
$TypeValues[2][0] = $TypeItem['NameValue3'];
$TypeValues[2][1] = $TypeItem['UnitValue3'];
}
$GlobalContent .= '<div id="ShowPart">'."\n";
if ($ToDo=="EditType" && UserHasRight('EditParts') && LockActivate('Parts',$PartId))
{
include "./pages/show_part_edit_type.php";
}
elseif ($ToDo=="EditPackage" && UserHasRight('EditParts') && LockActivate('Parts',$PartId))
{
include "./pages/show_part_edit_package.php";
}
elseif ($ToDo=="EditStorage" && UserHasRight('EditParts') && LockActivate('Parts',$PartId))
{
include "./pages/show_part_edit_storage.php";
}
elseif ($ToDo=="EditValues" && UserHasRight('EditParts') && LockActivate('Parts',$PartId))
{
include "./pages/show_part_edit_values.php";
}
elseif ($ToDo=="EditDownloads" && UserHasRight('EditParts') && LockActivate('Parts',$PartId))
{
include "./pages/show_part_edit_downloads.php";
}
elseif ($ToDo=="DeletePart" && UserHasRight('EditParts') && LockActivate('Parts',$PartId))
{
include "./pages/show_part_delete_part.php";
}
else
{
include "./pages/show_part_show.php";
}
$GlobalContent .= '</div>'."\n";
}
else
{
MessageError(LangSpell("SentenceDatabaseError"));
ErrorLog("[show_part.php] Part Id '$PartId' not found!");
}
?>

22
pages/show_part_delete_part.php Executable file
View file

@ -0,0 +1,22 @@
<?php
if (UserHasRight('EditParts'))
{
global $GlobalMysqlHandler;
global $PartId;
global $Part;
$GlobalContent .= "<h1>".LangSpellHtml('SentenceShureToDeletePart')."</h1>";
$GlobalContent .= "<strong>".$Part['Name']."</strong> ".$Part['ShortDesc']."<br><br>\n";
$GlobalContent .= '<form action="index.php?Page=PartsByType&ToDo=ToggleTypeSelectorVisibility&SublistId='.$Part['TypeId'].'" method="post">';
$GlobalContent .= '<input type="hidden" name="DeletePartId" value="'.$PartId.'">';
$GlobalContent .= LangSpellHtml('SentenceShureToDeletePart').': <input type="checkbox" name="DeletePartShure" value="True">';
$GlobalContent .= ' <input type="submit" value="'.LangSpellHtml('ButtonProceed').'">';
$GlobalContent .= '</form>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

View file

@ -0,0 +1,63 @@
<?php
if (UserHasRight('EditParts'))
{
global $GlobalMysqlHandler;
global $PartId;
global $Part;
global $GlobalDownloadDir;
//////////////
// Value Table
$GlobalContent .= '<table>';
$GlobalContent .= '<tr>';
$GlobalContent .= '<th></th>';
$GlobalContent .= '<th>'.LangSpellHtml('DownloadsName').'</th>';
$GlobalContent .= '<th>'.LangSpellHtml('DownloadsPath').'</th>';
$GlobalContent .= '<th>'.LangSpellHtml('DownloadsSize').'</th>';
$GlobalContent .= '<th>'.LangSpellHtml('DownloadsType').'</th>';
$GlobalContent .= '<th>'.LangSpellHtml('ButtonEdit').'</th>';
$GlobalContent .= '</tr>';
$DownloadQuery = "SELECT * FROM `Downloads` WHERE `PartId` = $PartId";
$DownloadQuery = mysqli_query($GlobalMysqlHandler, $DownloadQuery);
while ($Download = mysqli_fetch_array($DownloadQuery))
{
$Size="-";
if (file_exists($GlobalDownloadDir."/".$Download['Path'])) $Size=sprintf("%.2f",filesize($GlobalDownloadDir."/".$Download['Path'])/(1024*1024))." MB";
$GlobalContent .= '<form action="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=EditDownload" method="post">';
$GlobalContent .= '<input type="hidden" name="EditDownloadId" value="'.$Download['Id'].'">';
$GlobalContent .= '<tr>';
$GlobalContent .= '<td>{'.$Download['Id'].'}</td>';
$GlobalContent .= '<td><input type="text" name="EditDownloadName" value="'.$Download['Name'].'"></td>';
$GlobalContent .= '<td>'.$Download['Path'].'</td>';
$GlobalContent .= '<td>'.$Size.'</td>';
$GlobalContent .= '<td>'.$Download['Type'].'</td>';
$GlobalContent .= '<td>';
$GlobalContent .= '<a href="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=DeleteDownload&DownloadId='.$Download['Id'].'" target="_top">'.OtherGetIcon('Delete',"Button").'</a> ';
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonSave').'"class="Button">';
$GlobalContent .= '</td>';
$GlobalContent .= '</tr>';
$GlobalContent .= '</form>';
}
$GlobalContent .= '<form action="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=UploadNewDownload" method="post" enctype="multipart/form-data">';
$GlobalContent .= '<input type="hidden" name="MAX_FILE_SIZE" value="200000000">';
$GlobalContent .= '<tr><td></td>';
$GlobalContent .= '<td><input type="text" name="AddNewDownloadName" value=""></td>';
$GlobalContent .= '<td><input type="file" name="AddNewDownloadFile" value=""></td>';
$GlobalContent .= '<td></td><td></td>';
$GlobalContent .= '<td><input type="submit" value="'.LangSpellHtml('ButtonUpload').'"class="Button"></td>';
$GlobalContent .= '</tr>';
$GlobalContent .= '</form>';
$GlobalContent .= '</table>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

View file

@ -0,0 +1,72 @@
<?php
$NewPartType = (isset($_POST['NewPartType']))? $_POST['NewPartType']:0;
function WritePackageList($ParentId, $ParentIsLocked)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
global $EditTypesEditId;
global $PartId;
global $Part;
$ListQuery="SELECT * FROM `Packages` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'EditPartPackage'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
$GlobalContent .= " <li>\n";
if (LockIsActive('Types',$ListData['Id']) || $ParentIsLocked)
{
$GlobalContent .= ' '.OtherGetIcon('LockActive');
$ParentIsLocked = 1;
}
else
{
$GlobalContent .= ' <input type="radio" name="EditPartPackage" value="'.$ListData['Id'].'" '.(($Part['PackageId']==$ListData['Id'])? "checked":"").'>';
}
$GlobalContent .= " <a href=\"index.php?Page=ShowPart&ToDo=EditPackage&PartId=$PartId&OpenSublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name'])."</a>";
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Packages').")";
$GlobalContent .= " \n</li>\n";
WritePackageList($ListData['Id'],$ParentIsLocked);
}
}
$GlobalContent .= "</ul>\n";
}
if (UserHasRight('EditParts'))
{
///////////////
// open sublist
if (isset($_GET['OpenSublistId']) && $_GET['OpenSublistId'])
{
NestedListVisibilityToggle($_GET['OpenSublistId'], 'EditPartPackage');
}
else
{
NestedListVisibilityUnsetAllElements ('EditPartPackage');
NestedListVisibilitySetAllParents ($Part['PackageId'], 'EditPartPackage', 'Packages');
NestedListVisibilitySet ($Part['PackageId'], 'EditPartPackage');
}
$GlobalContent .= '<h1>'.LangSpellHtml('SentencePleaseSelectPackage').'</h1>';
$GlobalContent .= '<form action="index.php?Page=ShowPart&ToDo=SavePackage&PartId='.$PartId.'" method="post">';
WritePackageList(0, 0);
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonSave').'"class="Button">';
$GlobalContent .= '</form>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

View file

@ -0,0 +1,72 @@
<?php
$NewPartType = (isset($_POST['NewPartType']))? $_POST['NewPartType']:0;
function WriteStorageList($ParentId, $ParentIsLocked)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
global $EditTypesEditId;
global $PartId;
global $Part;
$ListQuery="SELECT * FROM `Storages` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'EditPartStorage'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
$GlobalContent .= " <li>\n";
if (LockIsActive('Types',$ListData['Id']) || $ParentIsLocked)
{
$GlobalContent .= ' '.OtherGetIcon('LockActive');
$ParentIsLocked = 1;
}
else
{
$GlobalContent .= ' <input type="radio" name="EditPartStorage" value="'.$ListData['Id'].'" '.(($Part['StorageId']==$ListData['Id'])? "checked":"").'>';
}
$GlobalContent .= " <a href=\"index.php?Page=ShowPart&ToDo=EditStorage&PartId=$PartId&OpenSublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name'])."</a>";
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Storages').")";
$GlobalContent .= " \n</li>\n";
WriteStorageList($ListData['Id'],$ParentIsLocked);
}
}
$GlobalContent .= "</ul>\n";
}
if (UserHasRight('EditParts'))
{
///////////////
// open sublist
if (isset($_GET['OpenSublistId']) && $_GET['OpenSublistId'])
{
NestedListVisibilityToggle($_GET['OpenSublistId'], 'EditPartStorage');
}
else
{
NestedListVisibilityUnsetAllElements ('EditPartStorage');
NestedListVisibilitySetAllParents ($Part['StorageId'], 'EditPartStorage', 'Storages');
NestedListVisibilitySet ($Part['StorageId'], 'EditPartStorage');
}
$GlobalContent .= '<h1>'.LangSpellHtml('SentencePleaseSelectPartStorage').'</h1>';
$GlobalContent .= '<form action="index.php?Page=ShowPart&ToDo=SaveStorage&PartId='.$PartId.'" method="post">';
WriteStorageList(0, 0);
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonSave').'"class="Button">';
$GlobalContent .= '</form>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

74
pages/show_part_edit_type.php Executable file
View file

@ -0,0 +1,74 @@
<?php
function WriteTypeList($ParentId, $ParentIsLocked)
{
global $GlobalMysqlHandler;
global $GlobalContent;
global $GlobalTemplate;
global $EditTypesEditId;
global $PartId;
global $Part;
$ListQuery="SELECT * FROM `Types` WHERE `ParentId` =$ParentId";
$ListQuery=mysqli_query($GlobalMysqlHandler, $ListQuery);
if (!$ParentId || NestedListVisibilityIsSet($ParentId, 'EditPartType'))
$GlobalContent .= "<ul style=\"display:block;\">\n";
else
$GlobalContent .= "<ul style=\"display:none;\">\n";
if (mysqli_num_rows($ListQuery))
{
while ($ListData=mysqli_fetch_array($ListQuery))
{
$GlobalContent .= " <li>\n";
if (LockIsActive('Types',$ListData['Id']) || $ParentIsLocked)
{
$GlobalContent .= ' '.OtherGetIcon('LockActive.png');
$ParentIsLocked = 1;
}
else
{
$GlobalContent .= ' <input type="radio" name="EditPartType" value="'.$ListData['Id'].'" '.(($Part['TypeId']==$ListData['Id'])? "checked":"").'>';
}
$GlobalContent .= " <a href=\"index.php?Page=ShowPart&ToDo=EditType&PartId=$PartId&OpenSublistId=".$ListData['Id']."\">".LangStr2Html($ListData['Name']);
if (strlen($ListData['ShortName'])) $GlobalContent .= " [".LangStr2Html($ListData['ShortName'])."]";
$GlobalContent .= "</a>";
$GlobalContent .= " (".NestedListCountSubElements($ListData['Id'],'Types').")";
$GlobalContent .= " \n</li>\n";
WriteTypeList($ListData['Id'],$ParentIsLocked);
}
}
$GlobalContent .= "</ul>\n";
}
if (UserHasRight('EditParts'))
{
///////////////
// open sublist
if (isset($_GET['OpenSublistId']) && $_GET['OpenSublistId'])
{
NestedListVisibilityToggle($_GET['OpenSublistId'], 'EditPartType');
}
else
{
NestedListVisibilityUnsetAllElements ('EditPartType');
NestedListVisibilitySetAllParents ($Part['TypeId'], 'EditPartType', 'Types');
NestedListVisibilitySet ($Part['TypeId'], 'EditPartType');
}
//////////
// Content
$GlobalContent .= '<h1>'.LangSpellHtml('SentencePleaseSelectPartType').'</h1>';
$GlobalContent .= '<form action="index.php?Page=ShowPart&ToDo=SaveType&PartId='.$PartId.'" method="post">';
WriteTypeList(0, 0);
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonSave').'"class="Button">';
$GlobalContent .= '</form>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

119
pages/show_part_edit_values.php Executable file
View file

@ -0,0 +1,119 @@
<?php
if (UserHasRight('EditParts'))
{
global $GlobalMysqlHandler;
global $PartId;
global $Part;
/////////////
// Type Array
$TypeQuery = "SELECT * FROM `Types` WHERE `Id` = ".$Part['TypeId'];
$TypeQuery = mysqli_query($GlobalMysqlHandler, $TypeQuery);
$TypeValues = array();
if (mysqli_num_rows($TypeQuery))
{
$TypeItem = mysqli_fetch_array($TypeQuery);
$TypeValues[0][0] = $TypeItem['NameValue1'];
$TypeValues[0][1] = $TypeItem['UnitValue1'];
$TypeValues[1][0] = $TypeItem['NameValue2'];
$TypeValues[1][1] = $TypeItem['UnitValue2'];
$TypeValues[2][0] = $TypeItem['NameValue3'];
$TypeValues[2][1] = $TypeItem['UnitValue3'];
}
//////////////
// Value Table
$GlobalContent .= '<h1>'.LangSpellHtml('SentencePleaseSpecifyPartValues').'</h1>';
$GlobalContent .= '<form action="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=SaveValues" method="post">';
$GlobalContent .= '<table>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsObsolete').'</th><td>';
$GlobalContent .= '<input type="checkbox" name="EditValuesObsolete" value="TRUE" '.((strtolower($Part['Obsolete'])=="true")? "checked":"").'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsName').'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesName" value="'.$Part['Name'].'"></td></tr>';
$GlobalContent .= '<tr><td></td><td></td></tr>';
if ($TypeValues[0][0])
{
$GlobalContent .= '<tr><th>'.$TypeValues[0][0].'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesValue1" value="'.$Part['Value1'].'"></td>';
$GlobalContent .= '<td> '.$TypeValues[0][1].'</td></tr>';
}
if ($TypeValues[1][0])
{
$GlobalContent .= '<tr><th>'.$TypeValues[1][0].'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesValue2" value="'.$Part['Value2'].'"></td>';
$GlobalContent .= '<td> '.$TypeValues[1][1].'</td></tr>';
}
if ($TypeValues[2][0])
{
$GlobalContent .= '<tr><th>'.$TypeValues[2][0].'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesValue3" value="'.$Part['Value3'].'"></td>';
$GlobalContent .= '<td> '.$TypeValues[2][1].'</td></tr>';
}
$GlobalContent .= '<tr><td></td><td></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsShortDescription').'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesShortDesc" value="'.$Part['ShortDesc'].'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsLongDescription').'</th><td>';
$GlobalContent .= '<textarea name="EditValuesLongDesc">'.$Part['LongDesc'].'</textarea></td></tr>';
$GlobalContent .= '<tr><td></td><td></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsQuantity').'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesQty" value="'.$Part['Qty'].'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsMinQuantity').'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesMinQty" value="'.$Part['MinQty'].'"></td></tr>';
$GlobalContent .= '<tr><td></td><td></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsPackageUnit').'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesPackageUnit" value="'.$Part['PackageUnit'].'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsMinOrderQuantity').'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesMinOrderQty" value="'.$Part['MinOrderQty'].'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsPrice').'</th><td>';
$GlobalContent .= '<input type="text" name="EditValuesPrice" value="'.OtherFormatPrice($Part['Price']).'"></td></tr>';
$GlobalContent .= '<tr><td></td><td></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsVendor').'</th><td>';
$GlobalContent .= '<select name="EditValuesVendor">';
$VendorQuery = "SELECT `Id`,`Name` FROM `Vendors` ORDER BY `Name` ASC";
$GlobalContent .= '<option value="0">'.LangSpellHtml('PartsNotSpecified').'</option>';
$VendorQuery = mysqli_query($GlobalMysqlHandler, $VendorQuery);
while ($VendorData = mysqli_fetch_array($VendorQuery))
{
$Selected = ($Part['VendorId']==$VendorData['Id'])? "selected":"";
$GlobalContent .= '<option value="'.$VendorData['Id'].'" '.$Selected.'>'.$VendorData['Name'].'</option>';
}
$GlobalContent .= '</select></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsVendorLink').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartVedorLink" value="'.$Part['VendorLink'].'"></td></tr>';
$GlobalContent .= '<tr><th>'.LangSpellHtml('PartsManufactorLink').'</th><td>';
$GlobalContent .= '<input type="text" name="NewPartManufactorLink" value="'.$Part['ManufactorLink'].'"></td></tr>';
$GlobalContent .= '<tr><th></th><td>';
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonSave').'"class="Button">';
$GlobalContent .= '</td></tr>';
$GlobalContent .= '</table>';
$GlobalContent .= '</form>';
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

178
pages/show_part_show.php Executable file
View file

@ -0,0 +1,178 @@
<?php
global $GlobalMysqlHandler;
/////////////////////////////
// Type, Package, Store, Name
$GlobalContent .= '<div id="ShowPartHead">'."\n";
//Part Head
$GlobalContent .= '<h1>{'.$Part['Id'].'} '.$Part['Name'].'</h1>'."\n";
//Type
$TypeId = $Part['TypeId'];
$TypeString = "";
while ($TypeId)
{
$LocalTypeString = "";
$LocalTypeString = NestedListGetName($TypeId,'Types');
$LocalTypeString = '<a href="index.php?Page=PartsByType&ToDo=ToggleTypeSelectorVisibility&SublistId='.$TypeId.'" target="_top">'.$LocalTypeString . "</a>";
$TypeId = NestedListGetParentId ($TypeId,'Types');
if ($TypeId) $LocalTypeString = " > " . $LocalTypeString;
$TypeString = $LocalTypeString . $TypeString;
}
$GlobalContent .= '<strong>'.LangSpellHtml('PartsType').":</strong> ".$TypeString."<br>"."\n";
//Storage
$StorageId = $Part['StorageId'];
$StorageString = "";
while ($StorageId)
{
$LocalStorageString = "";
$LocalStorageString = NestedListGetName($StorageId,'Storages');
$LocalStorageString = '<a href="index.php?Page=PartsByStore&ToDo=ToggleTypeSelectorVisibility&SublistId='.$StorageId.'" target="_top">'.$LocalStorageString . "</a>";
$StorageId = NestedListGetParentId ($StorageId,'Storages');
if ($StorageId) $LocalStorageString = " > " . $LocalStorageString;
$StorageString = $LocalStorageString . $StorageString;
}
$GlobalContent .= '<strong>'.LangSpellHtml('PartsStorage').":</strong> ".$StorageString."<br>"."\n";
//Package
$PackageId = $Part['PackageId'];
$PackageString = "";
while ($PackageId)
{
$LocalPackageString = "";
$LocalPackageString = NestedListGetName($PackageId,'Packages');
$PackageId = NestedListGetParentId ($PackageId,'Packages');
if ($PackageId) $LocalPackageString = " > " . $LocalPackageString;
$PackageString = $LocalPackageString . $PackageString;
}
$GlobalContent .= '<strong>'.LangSpellHtml('PartsPackage').":</strong> ".$PackageString."<br>"."\n";
//Edit Button
if (UserHasRight('EditParts'))
{
if (LockIsActive('Parts',$PartId))
{
$GlobalContent .= '<strong>'.LangSpellHtml('ButtonEdit').':</strong> ';
$GlobalContent .= OtherGetIcon('LockActive')."\n";
}
else
{
$GlobalContent .= '<strong>'.LangSpellHtml('ButtonEdit').':</strong> '."\n";
$GlobalContent .= '<a href="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=EditType" target="_top" class="Button">'.LangSpellHtml('PartsType').'</a> '."\n";
$GlobalContent .= '<a href="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=EditPackage" target="_top" class="Button">'.LangSpellHtml('PartsPackage').'</a> '."\n";
$GlobalContent .= '<a href="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=EditStorage" target="_top" class="Button">'.LangSpellHtml('PartsStorage').'</a> '."\n";
$GlobalContent .= '<a href="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=EditValues" target="_top" class="Button">'.LangSpellHtml('PartsValues').'</a> '."\n";
$GlobalContent .= '<a href="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=EditDownloads" target="_top" class="Button">'.LangSpellHtml('PartsDownloads').'</a> '."\n";
$GlobalContent .= '<a href="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=EditPicture" target="_top" class="Button">'.LangSpellHtml('PartsPicture').'</a> '."\n";
$GlobalContent .= '<a href="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=DeletePart" target="_top" title="'.LangSpellHtml('TagTitleDelete').'">'.OtherGetIcon('Delete',"Button").'</a> '."\n";
}
}
$GlobalContent .= '</div>'."\n";
///////////
// Pictures
$GlobalContent .= '<div id="ShowPartPictures" style="float:left;">'."\n";
if ($ToDo=="EditPicture" && UserHasRight('EditParts') && LockActivate('Parts',$PartId))
{
$GlobalContent .= '<form action="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=UploadNewPicture" method="post" enctype="multipart/form-data">';
$GlobalContent .= '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">';
$GlobalContent .= '<input type="file" name="NewPictureFile" value="">';
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonUpload').'"class="Button">';
$GlobalContent .= '</form><br>';
}
$GlobalContent .= '<img src="'.$GlobalPictureDir.'/'.$Part['PicturePath'].'"><br><br>';
echo "IMAGE: " . $Part['PicturePath'] . "<br>\n";
$GlobalContent .= '</div>'."\n";
////////////////
// Detail Values
$GlobalContent .= '<div id="ShowPartValues" style="float:left; margin-left:10px;">'."\n";
$GlobalContent .= '<table>';
//Obsolete
if (strtolower($Part['Obsolete'])=="true")
$GlobalContent .= ' <tr><td colspan="2"><strong>'.LangSpellHtml('PartsObsolete').'</strong></td></tr>';
//Value1
if ($TypeValues[0][0])
$GlobalContent .= ' <tr><th>'.$TypeValues[0][0].'</th><td>'.OtherFloatToSiPrefix($Part['Value1']).$TypeValues[0][1].'</td></tr>';
//Value2
if ($TypeValues[1][0])
$GlobalContent .= ' <tr><th>'.$TypeValues[1][0].'</th><td>'.OtherFloatToSiPrefix($Part['Value2']).$TypeValues[1][1].'</td></tr>';
//Value3
if ($TypeValues[2][0])
$GlobalContent .= ' <tr><th>'.$TypeValues[2][0].'</th><td>'.OtherFloatToSiPrefix($Part['Value3']).$TypeValues[2][1].'</td></tr>';
//Empty Row
$GlobalContent .= ' <tr><td></td><td></td></tr>';
//Quantity
if (UserHasRight('EditParts') || UserHasRight('EditPartQuantity'))
{
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsQuantity').'</th><td>';
$GlobalContent .= '<form action="index.php?Page=ShowPart&PartId='.$PartId.'&ToDo=SaveNewQuantity" method="post">';
$GlobalContent .= '<input type="text" name="NewQuantity" value="'.$Part['Qty'].'"> ';
$GlobalContent .= '<input type="submit" value="'.LangSpellHtml('ButtonEdit').'" class="Button"></td></tr>';
}
else
{
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsQuantity').'</th><td>'.$Part['Qty'].'</td></tr>';
}
//Minimum Quantity
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsMinQuantity').'</th><td>'.$Part['MinQty'].'</td></tr>';
//Empty Row
$GlobalContent .= ' <tr><td></td><td></td></tr>';
//Package Unit
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsPackageUnit').'</th><td>'.$Part['PackageUnit'].'</td></tr>';
//Min Order Quantity
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsMinOrderQuantity').'</th><td>'.$Part['MinOrderQty'].'</td></tr>';
//Price
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsPrice').'</th><td>'.OtherFormatPrice($Part['Price']).'</td></tr>';
//Vendor
$VendorQuery = "SELECT `Name` FROM `Vendors` WHERE `Id`= ".$Part['VendorId'];
$VendorQuery = mysqli_query($GlobalMysqlHandler, $VendorQuery);
if (mysqli_num_rows($VendorQuery))
{
$Vendor=mysqli_fetch_array($VendorQuery);
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsVendor').'</th><td>'.$Vendor['Name'].'</td></tr>';
}
else
{
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsVendor').'</th><td>-</td></tr>';
}
//Vendor Link
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsVendorLink').'</th><td>';
if ($Part['VendorLink']) $GlobalContent .= '<a href="'.$Part['VendorLink'].'" target="_new">';
$GlobalContent .= substr($Part['VendorLink'],0,(strlen($Part['VendorLink'])<=20)? strlen($Part['VendorLink']):20);
if ($Part['VendorLink']) $GlobalContent .= '</a>';
$GlobalContent .= '</td></tr>';
//Manufactor
$GlobalContent .= ' <tr><th>'.LangSpellHtml('PartsManufactorLink').'</th><td>';
if ($Part['ManufactorLink']) $GlobalContent .= '<a href="'.$Part['ManufactorLink'].'" target="_new">';
$GlobalContent .= substr($Part['ManufactorLink'],0,(strlen($Part['ManufactorLink'])<=20)? strlen($Part['ManufactorLink']):20);
if ($Part['ManufactorLink']) $GlobalContent .= '</a>';
$GlobalContent .= '</td></tr>';
//End
$GlobalContent .= '</table>';
$GlobalContent .= '</div>'."\n";
/////////////////////////
// Description, Downloads
$GlobalContent .= '<div id="ShowPartDownloads" style="clear:both;">'."\n";
$GlobalContent .= LangStr2Html($Part['ShortDesc']).'<br><br>';
$GlobalContent .= LangStr2Html($Part['LongDesc']).'<br><br>';
$GlobalContent .= '<strong>'.LangSpellHtml('PartsDownloads').':</strong>'."\n<ul>";
$DownloadQuery = "SELECT * FROM `Downloads` WHERE `PartId` = $PartId";
$DownloadQuery = mysqli_query($GlobalMysqlHandler, $DownloadQuery);
while ($Download = mysqli_fetch_array($DownloadQuery))
{
$Size="-";
$FileExist = (file_exists($GlobalDownloadDir."/".$Download['Path']))? 1:0;
if ($FileExist) $Size=sprintf("%.2f",filesize($GlobalDownloadDir."/".$Download['Path'])/(1024*1024))." MB";
$GlobalContent .= "<li>";
if ($FileExist) $GlobalContent .= '<a href="'.$GlobalDownloadDir."/".$Download['Path'].'">';
$GlobalContent .= $Download['Name']." (".$Size.")";
if ($FileExist) $GlobalContent .= '</a>';
$GlobalContent .= "</li>";
}
$GlobalContent .= '</ul></div>'."\n";
?>

121
pages/user_settings.php Executable file
View file

@ -0,0 +1,121 @@
<?php
if (UserGetLogin() && UserGetLogin()!="root")
{
//////////////////
//global content
if ($ToDo=="SaveSettings")
{
//get vars
$Login = (isset($_POST['Login'])) ? $_POST['Login']:"";
$Password1 = (isset($_POST['Password1']))? $_POST['Password1']:"";
$Password2 = (isset($_POST['Password2']))? $_POST['Password2']:"";
$Language = (isset($_POST['Language'])) ? $_POST['Language']:"";
($Template = (isset($_POST['Template'])) ? $_POST['Template']:"");
//check vars
$Error=0;
$UserExistQuery="SELECT * FROM `User` WHERE `Login` LIKE '$Login' AND `Id` != '$Id'";
$UserExistQuery=mysqli_query($GlobalMysqlHandler, $UserExistQuery);
if ($Login=="" || $Login=="root" || mysqli_num_rows($UserExistQuery))
{
$Error=1;
MessageError(LangSpell('SentenceLoginForbidden'));
}
if ( ($Password1!=$Password2) || (trim($Password1)!=$Password1) )
{
$Error=1;
MessageError(LangSpell('SentencePasswordForbidden'));
}
if (!$Error)
{
$UpdateQuery="UPDATE `User` SET `Login` = '$Login'".(($Password1) ? ", `Password` = '".md5($Password1)."'":"").", `Template` = '$Template', `Language` = '$Language' WHERE `User`.`Id` =".UserGetId()." LIMIT 1 ;";
if (!mysqli_query($GlobalMysqlHandler, $UpdateQuery))
{
ErrorLog("[user_settings.php] Database error while update User table at Id = $Id!");
MessageError(LangSpell('SentenceDatabaseError'));
$Error=1;
}
else
{
MessageSuccess(LangSpell('SentenceUserUpdated'));
if (trim($Password1)!="")
{
MessageWarning(LangSpell('SentencePasswordChangedWarning'));
}
}
}
UserLoadSettings();
}
//////////////////
//global content
$UserQuery="SELECT * FROM `User` WHERE `Id` = ".UserGetId();
$UserQuery=mysqli_query($GlobalMysqlHandler, $UserQuery);
$UserRecord=mysqli_fetch_array($UserQuery);
$GlobalContent .= '<form action="index.php?Page=UserSettings&ToDo=SaveSettings" method="post">'."\n";
$GlobalContent .= '<table>'."\n";
$GlobalContent .= ' <tr>'."\n";
$GlobalContent .= ' <th colspan="2">'.LangSpellHtml('UserSettingsTableHead').'</th>'."\n";
$GlobalContent .= ' </tr>'."\n";
$GlobalContent .= ' <tr>'."\n";
$GlobalContent .= ' <th>Id</th>'."\n";
$GlobalContent .= ' <td>'.$UserRecord['Id'].'</td>'."\n";
$GlobalContent .= ' </tr>'."\n";
$GlobalContent .= ' <tr>'."\n";
$GlobalContent .= ' <th>'.LangSpellHtml('MenuLogin').'</th>'."\n";
$GlobalContent .= ' <td><input type="text" name="Login" value="'.$UserRecord['Login'].'" title="'.LangSpellHtml('TagTitleEditUserLogin').'"></td>'."\n";
$GlobalContent .= ' </tr>'."\n";
$GlobalContent .= ' <tr>'."\n";
$GlobalContent .= ' <th>'.LangSpellHtml('UserSettingsSetNewPassword').'</th>'."\n";
$GlobalContent .= ' <td><input type="password" name="Password1" value="" title="'.LangSpellHtml('TagTitleEditUserPassword').'"></td>'."\n";
$GlobalContent .= ' </tr>'."\n";
$GlobalContent .= ' <tr>'."\n";
$GlobalContent .= ' <th>'.LangSpellHtml('UserSettingsConfirmNewPassword').'</th>'."\n";
$GlobalContent .= ' <td><input type="password" name="Password2" value="" title="'.LangSpellHtml('TagTitleEditUserPassword').'"></td>'."\n";
$GlobalContent .= ' </tr>'."\n";
$GlobalContent .= ' <tr>'."\n";
$GlobalContent .= ' <th>'.LangSpellHtml('UserSettingsLanguage').'</th>'."\n";
$GlobalContent .= ' <td><select name="Language" size="1">'."\n";
$GlobalContent .= ' <option value="">'.LangSpellHtml('UserSettingsDefault').'</option>'."\n";
$LanguageArray=LangGetAvailableLanguages();
foreach ($LanguageArray as $Language)
{
$GlobalContent .= ' <option value="'.$Language.'" '.(($UserRecord['Language']==$Language)? "selected":"").'>'.$Language.'</option>'."\n";
}
$GlobalContent .= ' </select></td>'."\n";
$GlobalContent .= ' </tr>'."\n";
$GlobalContent .= ' <tr>'."\n";
$GlobalContent .= ' <th>'.LangSpellHtml('UserSettingsTemplate').'</th>'."\n";
$GlobalContent .= ' <td><select name="Template" size="1">'."\n";
$GlobalContent .= ' <option value="">'.LangSpellHtml('UserSettingsDefault').'</option>'."\n";
$TemplateArray=OtherGetAvailableTemplates();
foreach ($TemplateArray as $Template)
{
$GlobalContent .= ' <option value="'.$Template.'" '.(($UserRecord['Template']==$Template)? "selected":"").'>'.$Template.'</option>'."\n";
}
$GlobalContent .= ' </select></td>'."\n";
$GlobalContent .= ' </tr>'."\n";
$GlobalContent .= ' <tr>'."\n";
$GlobalContent .= ' <th> </th>'."\n";
$GlobalContent .= ' <td><input type="submit" value="'.LangSpellHtml('ButtonSave').'" class="Button"></td>'."\n";
$GlobalContent .= ' </tr>'."\n";
$GlobalContent .= '</table>'."\n";
$GlobalContent .= '</form>'."\n";
}
else
{
MessageError(LangSpell("ScentenceNoUserRights"));
}
?>

66
pages/version_history.php Executable file
View file

@ -0,0 +1,66 @@
<?php
$GlobalContent .='<ul>'."\n";
$GlobalContent .=' <li>'."\n";
$GlobalContent .=' Version 0'."\n";
$GlobalContent .=' <ul>'."\n";
$GlobalContent .=' <li>'."\n";
$GlobalContent .=' Subversion 5'."\n";
$GlobalContent .=' <ul>'."\n";
$GlobalContent .=' <li>2010-11-11 Consistency check - repair incorrect parts type, Guide download (only german DeveloperGuide.pdf at this stage).</li>'."\n";
$GlobalContent .=' <li>2010-11-10 Repeat order list, creating only one ErrorLog() out of LogShort() and LogLong().</li>'."\n";
$GlobalContent .=' <li>2010-11-09 OtherGetIcon() for better icon control.</li>'."\n";
$GlobalContent .=' <li>2010-11-05 Changed milestones, building helpsection as last milestone.</li>'."\n";
$GlobalContent .=' <li>2010-11-05 Milestone 3 reached, gradation to subversion 5.</li>'."\n";
$GlobalContent .=' </ul>'."\n";
$GlobalContent .=' </li>'."\n";
$GlobalContent .=' <li>'."\n";
$GlobalContent .=' Subversion 4'."\n";
$GlobalContent .=' <ul>'."\n";
$GlobalContent .=' <li>2010-11-05 Consistency check - create database structure - ready for first testing.</li>'."\n";
$GlobalContent .=' <li>2010-11-04 Handling downloads and parts picture, parts by store view.</li>'."\n";
$GlobalContent .=' <li>2010-11-03 View and edit part (type, package, store and values).</li>'."\n";
$GlobalContent .=' <li>2010-11-02 Adding new parts is possible, first partlist view (parts by type.</li>'."\n";
$GlobalContent .=' <li>2010-10-04 Added ViewSTPV Rights.</li>'."\n";
$GlobalContent .=' <li>2010-09-20 Milestone 2 reached, gradation to subversion 4.</li>'."\n";
$GlobalContent .=' </ul>'."\n";
$GlobalContent .=' </li>'."\n";
$GlobalContent .=' <li>'."\n";
$GlobalContent .=' Subversion 3'."\n";
$GlobalContent .=' <ul>'."\n";
$GlobalContent .=' <li>2010-09-20 Edit Stores, Types and packages.</li>'."\n";
$GlobalContent .=' <li>2010-09-08 Add new stores, delete stores.</li>'."\n";
$GlobalContent .=' <li>2010-08-31 Vendor editing.</li>'."\n";
$GlobalContent .=' <li>2010-08-26 Milestone 1 reached, gradation to subversion 3.</li>'."\n";
$GlobalContent .=' </ul>'."\n";
$GlobalContent .=' </li>'."\n";
$GlobalContent .=' <li>'."\n";
$GlobalContent .=' Subversion 2'."\n";
$GlobalContent .=' <ul>'."\n";
$GlobalContent .=' <li>2010-08-26 Config editing.</li>'."\n";
$GlobalContent .=' <li>2010-08-17 User settings.</li>'."\n";
$GlobalContent .=' <li>2010-08-16 User management.</li>'."\n";
$GlobalContent .=' <li>2010-08-15 Definition of milestones.'."\n";
$GlobalContent .=' <ol>'."\n";
$GlobalContent .=' <li>Basic system administration (config editing, user management, user settings).</li>'."\n";
$GlobalContent .=' <li>Part administration (stores, types, vendors, packages).</li>'."\n";
$GlobalContent .=' <li>Parts handling (view, edit, add, downloads, pictures).</li>'."\n";
$GlobalContent .=' <li>Tools (repeat order, stats, check).</li>'."\n";
$GlobalContent .=' <li>Global test by creating own partstock.</li>'."\n";
$GlobalContent .=' <li>Build final Templates. Guide for publishing.</li>'."\n";
$GlobalContent .=' <li>Help section / User Guides.</li>'."\n";
$GlobalContent .=' </ol>'."\n";
$GlobalContent .=' </li>'."\n";
$GlobalContent .=' <li>2010-08-14 Creation of the Version History</li>'."\n";
$GlobalContent .=' <li>before: Basic system like template design, login functionality, language functionality, message logging, etc.</li>'."\n";
$GlobalContent .=' </ul>'."\n";
$GlobalContent .=' </li>'."\n";
$GlobalContent .=' <li>'."\n";
$GlobalContent .=' Subversion 1'."\n";
$GlobalContent .=' <ul>'."\n";
$GlobalContent .=' <li>A simple GUI for to the database (some primary testings).</li>'."\n";
$GlobalContent .=' </ul>'."\n";
$GlobalContent .=' </li>'."\n";
$GlobalContent .=' </ul>'."\n";
$GlobalContent .=' </li>'."\n";
$GlobalContent .='</ul>'."\n";
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 713 B

BIN
templates/GreenPartstock0/Ok.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

View file

@ -0,0 +1,3 @@
[Dolphin]
ShowPreview=true
Timestamp=2010,8,30,23,22,50

View file

@ -0,0 +1,17 @@
The icons are free for personal use and also free for commercial use, but we require linking to our web site.
http://creativecommons.org/licenses/by-sa/3.0/
You are free:
* to Share — to copy, distribute and transmit the work
Under the following conditions:
Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
Attribute this work:
What does "Attribute this work" mean?
The page you came from contained embedded licensing metadata, including how the creator wishes to be attributed for re-use. You can use the HTML here to cite the work. Doing so will also include metadata on your page so that others can find the original work as well.
Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license.
led24.de
31/05/2009

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 742 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 628 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 711 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 727 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 744 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 738 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

View file

@ -0,0 +1,67 @@
/***********
MainMenu
************/
div#MainMenu {
margin-bottom:0px;
padding:1px;
white-space:nowrap;
display:inline-block;
}
#MainMenu ul {
margin:0px;
margin-left:4px;
padding:0px;
list-style-type:none;
list-style-position:inside;
}
#MainMenu li {
padding-top:0px;
display:inline-block;
margin:0px;
}
#MainMenu ul li ul {
margin:0px;
margin-top:1px;
position:absolute;
visibility:hidden;
padding-top:2px;
}
#MainMenu li ul li {
display:block;
}
#MainMenu ul li:hover ul {
visibility:visible;
}
#MainMenu a {
border:1px solid #198533;
padding:1px 3px 1px 3px;
background-color:#cded9d;
font-weight:bold;
color:#198533;
text-decoration:none;
}
#MainMenu a:hover {
background-color:#629e1f;
color:#cded9d;
}
#MainMenu ul li ul li a {
border-bottom:1px solid #198533;
display:block;
width:100%;
}
#MainMenu img {
border:0px;
vertical-align:middle;
margin-right:4px;
margin-left:2px;
/*display:none;*/
}

View file

@ -0,0 +1,49 @@
/*****************
Message
*****************/
#Message {
padding:4px;
border-bottom:2px solid #198533;
}
#Message #Error{
margin:0px;
background-image:url(./Error.png);
background-repeat:no-repeat;
background-position:7px 2px;
padding-left:30px;
border-width:2px;
border-style:solid;
border-color:#bb2222;
color:#bb2222;
background-color:#ffaaaa;
font-weight:bold;
}
#Message #Warning {
margin:0px;
background-image:url(./Warning.png);
background-repeat:no-repeat;
background-position:7px 2px;
padding-left:30px;
border-width:2px;
border-style:solid;
border-color:#ffbb00;
color:#ffbb00;
background-color:#ffffaa;
font-weight:bold;
}
#Message #Success {
margin:0px;
background-image:url(./Ok.png);
background-repeat:no-repeat;
background-position:7px 2px;
padding-left:30px;
border-width:2px;
border-style:solid;
border-color:#00bb00;
color:#00bb00;
background-color:#aaffaa;
font-weight:bold;
}

View file

@ -0,0 +1,56 @@
div#PartSelector {
float:left;
padding:0px;
font-size:0.8em;
border:1px solid #198533;
background-color:#cded9d;
margin:0px;
margin-right:10px;
font-weight:bold;
}
div#PartSelector a {
font-weight:normal;
}
div#PartSelector ul {
list-style-type:none;
padding:2px;
margin:0px;
}
div#PartSelector ul ul{
margin-left:10px;
}
div#PartFilter {
font-size:0.8em;
}
div#PartList {
float:none;
}
div#PartList img {
border:0px;
}
div#PartList th a {
color:#cded9d;
}
div#PartList th a:hover {
color:#141;
text-decoration:none;
}
div#ShowPartHead {
margin-bottom:10px;
font-size:0.8em;
}
div#ShowPartDownloads {
margin-left:20px;
margin-right:20px;
}

View file

@ -0,0 +1,137 @@
/*****************
Global Design
*****************/
body {
background-color:#bddd8d;
color:#198533;
font-size:1.0em;
color: #198533;
}
table {
background-color:#cded9d;
text-align:center;
}
th {
background-color:#a26e1a;
color:#cded9d;
margin:1px;
padding-left:2px;
padding-right:2px;
}
td {
padding:2px;
border-bottom:1px dashed #629e1f;
}
form {
display:inline;
}
input {
background-color:#cded9d;
border:1px solid #198533;
color: #198533;
text-align:center;
}
textarea {
background-color:#cded9d;
border:1px solid #198533;
color: #198533;
}
img {
vertical-align:middle;
}
li {
padding-top: 2px;
}
a{
color: #198533;
text-decoration: none;
}
a:hover{
color: #198533;
text-decoration: underline;
}
h1 {
font-size:1.4em;
}
/*submit buttons are in Button-class */
.Button {
background-color:#cded9d;
color:#198533;
text-decoration:none;
border:1px solid #198533;
padding-left:2px;
padding-right:2px;
}
.Button:hover {
background-color:#629e1f;
color:#cded9d;
text-decoration:none;
}
div#HeadContainer {
border-bottom:2px solid #2f8f00;
white-space:nowrap;
display:block;
margin:0px;
padding:0px;
}
/*****************
Login
*****************/
div#Login {
margin:0px;
margin-left:20px;
padding:0px;
white-space:nowrap;
display:inline-block;
height:20px;
}
#Login input {
max-width:70px;
}
#Login img {
border:0px;
vertical-align:middle;
margin-right:4px;
margin-left:2px;
}
#Login a {
border:1px solid #198533;
padding:1px 3px 1px 3px;
background-color:#cded9d;
font-weight:bold;
color:#198533;
text-decoration:none;
}
#Login a:hover {
background-color:#629e1f;
color:#cded9d;
}
/*****************
Body
*****************/
div#Body {
padding:4px;
}

View file

@ -0,0 +1,21 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ldPtartstock</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="./templates/GreenPartstock0/style.css">
<link rel="stylesheet" type="text/css" href="./templates/GreenPartstock0/menu.css">
<link rel="stylesheet" type="text/css" href="./templates/GreenPartstock0/message.css">
<link rel="stylesheet" type="text/css" href="./templates/GreenPartstock0/partview.css">
</head>
<body>
<div id="HeadContainer">
<?php echo $TemplateMainMenu ?>
<?php echo $TemplateLogin ?>
</div>
<?php echo $TemplateMessage ?>
<?php echo $TemplateBody ?>
</body>
</html>

4
todo.txt Executable file
View file

@ -0,0 +1,4 @@
-LED Icons credits ins template einbauen http://led24.de/iconset/
-Delete Storages, überlegen ob das immer geht
-EditStorages - MoveDown über dropdown selector ???