");
}
// $this->app->Tpl->Add('ARTIKELBILD',"");
$kat = $this->app->DB->Select("SELECT typ FROM artikel WHERE id = '$id' LIMIT 1");
if(!empty($kat) && !isset($_artikelart[$kat]))
{
$artikelart[$kat] = '';
$this->app->Tpl->Add('MESSAGE','
Es ist eine falsche Artikelkategorie ausgewählt
');
}
if(empty($kat)){
$artikelart[''] = '- Keine Kategorie zugewiesen -';
}
}
foreach($_artikelart as $k => $v)
{
$artikelart[$k] = $v;
}
if($action==='create' &&
$this->app->DB->Select("SELECT COUNT(id) FROM artikelkategorien WHERE geloescht!=1 AND projekt > 0") > 0 &&
$this->app->DB->Select("SELECT COUNT(id) FROM artikelkategorien WHERE geloescht!=1 AND projekt <= 0") > 0
)
{
$artikelart = array(''=>'')+$artikelart;
}
$field = new HTMLSelect('typ',0);
$field->AddOptionsSimpleArray($artikelart);
$this->form->NewField($field);
$land = $this->app->erp->GetSelectLaenderliste();
$field = new HTMLSelect('herkunftsland',0);
$field->AddOptionsSimpleArray($land);
$chargensel = null;
$chargensel['0'] = 'keine';
$chargensel['1'] = 'aktivieren';
$chargensel['2'] = 'aktivieren';
if($this->app->DB->Select("SELECT id FROM artikel WHERE id = '$id' AND chargenverwaltung = '1' LIMIT 1"))
{
unset($chargensel['2']);
}else{
unset($chargensel['1']);
}
$field = new HTMLSelect('chargenverwaltung',0);
$field->AddOptionsAsocSimpleArray($chargensel);
/* 18.05. heute ausgeblendet / kein herkunftsland als standard
if($action=="create" && !$this->app->Secure->GetPOST('speichern'))
{
$landdefault = $this->app->erp->Firmendaten('land');
if(!$landdefault)$landdefault = 'DE';
$field->value=$landdefault;
}
*/
$this->form->NewField($field);
if($this->app->Secure->POST['projekt']=='')
{
$projekt = $this->app->DB->Select("SELECT standardprojekt FROM firma WHERE id='".$this->app->User->GetFirma()."' LIMIT 1");
$projekt_bevorzugt=$this->app->DB->Select("SELECT projekt_bevorzugen FROM user WHERE id='".$this->app->User->GetID()."' LIMIT 1");
if($projekt_bevorzugt=='1') {
$projekt = $this->app->DB->Select("SELECT projekt FROM user WHERE id='".$this->app->User->GetID()."' LIMIT 1");
}
$field = new HTMLInput("projekt","text",$projekt);
$field->value=$projekt;
$this->form->NewField($field);
}
$field = new HTMLCheckbox("rabatt","","","1");
$field->onclick="rabattevent();";
$this->form->NewField($field);
$field = new HTMLCheckbox("juststueckliste","","","1");
$field->onclick="juststuecklisteevent(this.form.juststueckliste.value);";
$this->form->NewField($field);
$field = new HTMLCheckbox("stueckliste","","","1");
$field->onclick="stuecklisteevent(this.form.stueckliste.value);";
$this->form->NewField($field);
$field = new HTMLCheckbox("porto","","","1");
$field->onclick="portoevent(this.form.porto.value);";
$this->form->NewField($field);
$field = new HTMLCheckbox("lagerartikel","","","1");
$field->onclick="lagerartikelevent(this.form.lagerartikel.value);";
$this->form->NewField($field);
/* pruefung Artikel nummer doppel */
if(is_numeric($id)){
$nummer_db = $this->app->DB->Select("SELECT nummer FROM artikel WHERE id='$id' LIMIT 1");
}
if(is_numeric($id)){
//$artikelart = $this->app->DB->Select("SELECT typ FROM artikel WHERE id='$id' LIMIT 1");
}
//$anzahl_nummer = $this->app->DB->Select("SELECT count(id) FROM artikel WHERE firma='".$this->app->User->GetFirma()."' AND nummer='$nummer_db'");
if($nummer !=''){
$fremde_anzahl_nummer = $this->app->DB->Select("SELECT count(id) FROM artikel WHERE nummer='$nummer' AND id!='$id' AND geloescht=0");
}
else {
$fremde_anzahl_nummer = 0;
}
//exec('echo "hallo ('.$submit.') nummer: ('.$nummer.') action:('.$action.')" >> /tmp/test');
$neuenummervergeben=0;
if($this->app->erp->Firmendaten('parameterundfreifelder')!=1)
{
$this->app->Tpl->Set('DISABLEOPENPARAMETER','');
//Workaround für Freifelder werden im Artikel gelöscht wenn Freifelder nicht angezeigt und Artikel gespeichert wird
//Vielleicht besser bei Speicherfunktion direkt ansetzen
for($i = 1; $i <= 40; $i++)
{
$this->app->Tpl->Set('VORFREIFELD'.$i, '
');
switch($freifeldtyp[$v['index']])
{
case 'checkbox':
$this->app->Tpl->Add('FREIFELDSPALTE'.$s,'app->DB->Select("SELECT freifeld".$v['index']." FROM artikel WHERE id = '$id' LIMIT 1")?' checked="checked" ':'').' />');
break;
case 'mehrzeilig':
$this->app->Tpl->Add('FREIFELDSPALTE'.$s,'');
break;
case 'datum':
$this->app->Tpl->Add('FREIFELDSPALTE'.$s,'');
$this->app->YUI->DatePicker('freifeld'.$v['index']);
break;
case 'select':
$this->app->Tpl->Add('FREIFELDSPALTE'.$s,'');
break;
default:
$this->app->Tpl->Add('FREIFELDSPALTE'.$s,'');
break;
}
$this->app->Tpl->Add('FREIFELDSPALTE'.$s,'
');
}
$this->app->Tpl->Add('FREIFELDSPALTE'.$s,'
');
}
}
}
if($tmpi>0)
{
$this->app->Tpl->Set('BENUTZERDEFINIERT','Weitere Felder');
}
else {
$this->app->Tpl->Set('BENUTZERDEFINIERTSTART','');
}
if(!$this->app->erp->ModulVorhanden('steuerregeln'))
{
$this->app->Tpl->Set('VORSTEUERREGELN','');
}
if($nummer == '' && $action==='edit' && $submit!='')
{
// erst platt machen
$this->app->DB->Update("UPDATE artikel SET nummer='' WHERE id='$id'");
$artikelart = $this->app->Secure->GetPOST('typ');
$neue_nummer = $this->app->erp->GetNextArtikelnummer($artikelart,$this->app->User->GetFirma(),$projekttmp);
$nummer_db = $neue_nummer;
$this->app->Secure->POST['nummer']=$neue_nummer;
$this->app->DB->Update("UPDATE artikel SET nummer='$neue_nummer' WHERE id='$id' LIMIT 1");
$field = new HTMLInput('nummer','hidden',$neue_nummer);
$this->form->NewField($field);
$this->app->YUI->Message('info','Es wurde eine neue Artikelnummer vergeben.');
$neuenummervergeben=1;
}
if($nummer == '' && $action==='create' && $submit!='')
{
//exec('echo "neu '.$submit.' '.$nummer.' '.$action.' '.$artikelart.'" >> /tmp/test');
// erst platt machen
$artikelart = $this->app->Secure->GetPOST("typ");
$neue_nummer = $this->app->erp->GetNextArtikelnummer($artikelart,$this->app->User->GetFirma(),$projekttmp);
$nummer_db = $neue_nummer;
$this->app->Secure->POST["nummer"]=$neue_nummer;
$field = new HTMLInput("nummer","hidden",$neue_nummer);
$this->form->NewField($field);
$this->app->YUI->Message("info","Es wurde eine neue Artikelnummer vergeben.");
if($this->app->Secure->POST["projekt"]=="")
{
$field = new HTMLInput("projekt","text",$projekttmp);
$field->value=$projekttmp;
$this->form->NewField($field);
}
$neuenummervergeben=1;
}
if($action==='create')
{
if($this->app->erp->Version()==='stock')
{
$this->app->Secure->POST["lagerartikel"]=1;
$field = new HTMLInput("lagerartikel","hidden",1);
$this->form->NewField($field);
}
}
if($action === 'edit' && $nummer != '' && ($nummer !== $nummer_db)) {
$doppelteNummern = $this->app->DB->SelectArr(
sprintf(
"SELECT art.nummer, count(art.nummer) as NumOccurrences, if(ifnull(pr.eigenernummernkreis,0) = 0,0,pr.id) AS projekt
FROM artikel art
LEFT JOIN projekt pr ON art.projekt = pr.id
WHERE art.geloescht <> '1' AND art.nummer <> '' AND art.nummer <> 'DEL' AND nummer in ('%s','%s')
GROUP BY art.nummer,if(ifnull(pr.eigenernummernkreis,0) = 0,0,pr.id)
HAVING (COUNT(art.nummer) > 0)
LIMIT 101",
$nummer_db, $nummer
)
);
if(!empty($doppelteNummern)) {
$oldCount = [];
$newCount = [];
foreach($doppelteNummern as $doppelteNummer) {
if($doppelteNummer['nummer'] == $nummer) {
$newCount[] = $doppelteNummer['NumOccurrences'] + 1;
}
elseif($doppelteNummer['nummer'] == $nummer_db) {
$oldCount[] = $doppelteNummer['NumOccurrences'];
}
}
$oldCount = implode(',', $oldCount);
$newCount = implode(',', $newCount);
if($newCount === '') {
$newCount = '1';
}
if($oldCount !== $newCount) {
$this->app->erp->ClearSqlCache('artikel');
}
}
}
//$already_set=0;
$anzahl_nummer = $this->app->DB->Select("SELECT count(id) FROM artikel WHERE firma='".$this->app->User->GetFirma()."' AND nummer='$nummer_db' AND geloescht!=1");
if(($anzahl_nummer > 1 || $fremde_anzahl_nummer > 0) && $neuenummervergeben==1) {
$this->app->erp->ClearSqlCache('artikel');
}
if(($anzahl_nummer > 1 || $fremde_anzahl_nummer > 0) && $neuenummervergeben!=1 && $action==='edit') {
$this->app->YUI->Message('error','Achtung! Die Artikelnummer wurde doppelt vergeben!');
}
$warengruppe = $this->app->erp->GetArtikelWarengruppe();
$field = new HTMLSelect('warengruppe',0);
$field->AddOptionsSimpleArray($warengruppe);
$this->form->NewField($field);
$this->app->Secure->POST["firma"]=$this->app->User->GetFirma();
$field = new HTMLInput('firma','hidden',$this->app->User->GetFirma());
$this->form->NewField($field);
if($id && $this->app->DB->Select("SELECT id FROM artikel WHERE id = '$id' AND stueckliste = 1 LIMIT 1") &&
!$this->app->DB->Select("SELECT id FROM stueckliste WHERE `stuecklistevonartikel` = '$id' LIMIT 1"))
{
$this->app->Tpl->Add('MESSAGE','
Der Artikel ist als Stückliste markiert, enthält aber keine Stücklistenelemente
');
}
}
function ReplaceDecimal($db,$value,$fromform)
{
return $this->app->erp->ReplaceDecimal($db,$value,$fromform);
}
function ReplaceProjekt($db,$value,$fromform)
{
return $this->app->erp->ReplaceProjekt($db,$value,$fromform);
}
function ReplaceDatum($db,$value,$fromform)
{
//value muss hier vom format ueberprueft werden
$dbformat = 0;
if(strpos($value,'-') > 0) {
$dbformat = 1;
}
// wenn ziel datenbank
if($db)
{
if($dbformat) {
return $value;
}
return $this->app->String->Convert($value,'%1.%2.%3','%3-%2-%1');
}
// wenn ziel formular
if($dbformat){
return $this->app->String->Convert($value, '%1-%2-%3', '%3.%2.%1');
}
return $value;
}
function ReplaceShopname($db,$value,$fromform)
{
//value muss hier vom format ueberprueft werden
$dbformat = 0;
if(!$fromform) {
$dbformat = 1;
$id = $value;
if(is_numeric($id)){
$abkuerzung = $this->app->DB->Select("SELECT bezeichnung FROM shopexport WHERE id='$id' LIMIT 1");
}else{
$abkuerzung = '';
}
} else {
$dbformat = 0;
$abkuerzung = $value;
$id = $this->app->DB->Select("SELECT id FROM shopexport WHERE bezeichnung='$value' LIMIT 1");
}
// wenn ziel datenbank
if($db)
{
return $id;
}
// wenn ziel formular
return $abkuerzung;
}
function ReplaceBetrag($db,$value,$fromform)
{
return $this->app->erp->ReplaceBetrag($db,$value,$fromform);
}
public function ReplaceTrim($db,$value,$fromform)
{
return trim($value);
}
function ReplaceLagerplatz($db,$value,$fromform)
{
//value muss hier vom format ueberprueft werden
$dbformat = 0;
if(!$fromform) {
$dbformat = 1;
$id = $value;
if(is_numeric($id)){
$abkuerzung = $this->app->DB->Select("SELECT kurzbezeichnung FROM lager_platz WHERE id='$id' LIMIT 1");
}else{
$abkuerzung = '';
}
} else {
$dbformat = 0;
$abkuerzung = $value;
$id = $this->app->DB->Select("SELECT id FROM lager_platz WHERE kurzbezeichnung='$value' LIMIT 1");
}
// wenn ziel datenbank
if($db)
{
return $id;
}
// wenn ziel formular
return $abkuerzung;
}
function ReplaceLieferant($db,$value,$fromform)
{
return $this->app->erp->ReplaceLieferant($db,$value,$fromform);
}
function ReplaceSteuergruppe($db,$value,$fromform)
{
return $this->app->erp->ReplaceSteuergruppe($db,$value,$fromform);
}
function ReplaceArtikel($db,$value,$fromform)
{
return $this->app->erp->ReplaceArtikel($db,$value,$fromform);
}
function ReplaceSteuersatz($db,$value,$fromform)
{
if($db)
{
if($value === '' || $value === null)
{
return -1;
}
return str_replace(',','.', $value);
}
if($value < 0){
return '';
}
return $value;
}
public function Table()
{
$table = new EasyTable($this->app);
$table->Query("SELECT nummer, name_de as name,barcode, id FROM artikel order by nummer");
$table->Display($this->parsetarget);
}
public function Search()
{
//$this->app->Tpl->Set($this->parsetarget,"suchmaske");
//$this->app->Table(
//$table = new OrderTable("veranstalter");
//$table->Heading(array('Name','Homepage','Telefon'));
}
}