2021-05-21 08:49:41 +02:00
< ? php
include '_gen/widget.gen.artikel.php' ;
class WidgetArtikel extends WidgetGenArtikel
{
/** @var Application $app */
private $app ;
/**
* WidgetArtikel constructor .
*
* @ param Application $app
* @ param string $parsetarget
*/
public function __construct ( $app , $parsetarget )
{
$this -> app = $app ;
$this -> parsetarget = $parsetarget ;
parent :: __construct ( $app , $parsetarget );
$this -> ExtendsForm ();
}
function ExtendsForm ()
{
//$this->app->YUI->AutoComplete(STANDARDLAGERAUTO,"lager_platz",array('kurzbezeichnung'),"kurzbezeichnung");
//$this->app->YUI->AutoComplete(PROJEKTAUTO,"projekt",array('name','abkuerzung'),"abkuerzung");
$this -> app -> YUI -> AutoComplete ( " projekt " , " projektname " , 1 );
$this -> app -> YUI -> AutoComplete ( " adresse " , " lieferant " );
$this -> app -> YUI -> AutoComplete ( " typ " , " artikelgruppe " );
$this -> app -> YUI -> AutoComplete ( " shop " , " shopname " );
$this -> app -> YUI -> AutoComplete ( " shop2 " , " shopname " );
$this -> app -> YUI -> AutoComplete ( " shop3 " , " shopname " );
$this -> app -> YUI -> AutoComplete ( " variante_von " , " artikelnummer " );
$this -> app -> YUI -> AutoComplete ( " hersteller " , " hersteller " );
$this -> app -> YUI -> AutoComplete ( " einheit " , " artikeleinheit " );
$this -> app -> YUI -> AutoComplete ( " herstellerlink " , " herstellerlink " );
$this -> app -> YUI -> AutoComplete ( " lager_platz " , " lagerplatz " );
$this -> app -> YUI -> AutoComplete ( " zolltarifnummer " , " zolltarifnummer " , 1 );
$this -> app -> YUI -> AutoComplete ( " bestandalternativartikel " , " artikelnummer " );
$this -> app -> YUI -> AutoComplete ( " steuergruppe " , " steuergruppe " );
2023-12-29 14:15:34 +01:00
$this -> app -> YUI -> AutoComplete ( " sachkonto " , " sachkonto " , 1 );
2021-05-21 08:49:41 +02:00
$this -> app -> YUI -> AutoComplete ( " kostenstelle " , " kostenstelle " , 1 );
$this -> app -> YUI -> AutoComplete ( " steuersatz " , " steuersatz " , 1 );
$this -> app -> YUI -> AutoComplete ( " preproduced_partlist " , " lagerartikelnummer " );
$this -> form -> ReplaceFunction ( " adresse " , $this , " ReplaceLieferant " );
$this -> form -> ReplaceFunction ( " steuergruppe " , $this , " ReplaceSteuergruppe " );
$this -> form -> ReplaceFunction ( " gueltigbis " , $this , " ReplaceDatum " );
$this -> form -> ReplaceFunction ( " lager_platz " , $this , " ReplaceLagerplatz " );
$this -> form -> ReplaceFunction ( " shop " , $this , " ReplaceShopname " );
$this -> form -> ReplaceFunction ( " shop2 " , $this , " ReplaceShopname " );
$this -> form -> ReplaceFunction ( " shop3 " , $this , " ReplaceShopname " );
$this -> form -> ReplaceFunction ( " variante_von " , $this , " ReplaceArtikel " );
$this -> form -> ReplaceFunction ( " preproduced_partlist " , $this , " ReplaceArtikel " );
$this -> form -> ReplaceFunction ( " projekt " , $this , " ReplaceProjekt " );
$this -> form -> ReplaceFunction ( " pseudopreis " , $this , " ReplaceDecimal " );
$this -> form -> ReplaceFunction ( " gewicht " , $this , " ReplaceDecimal " );
$this -> form -> ReplaceFunction ( " steuersatz_erloese_normal " , $this , " ReplaceSteuersatz " );
$this -> form -> ReplaceFunction ( " steuersatz_erloese_ermaessigt " , $this , " ReplaceSteuersatz " );
$this -> form -> ReplaceFunction ( " steuersatz_erloese_innergemeinschaftlich " , $this , " ReplaceSteuersatz " );
$this -> form -> ReplaceFunction ( " steuersatz_erloese_euermaessigt " , $this , " ReplaceSteuersatz " );
$this -> form -> ReplaceFunction ( " steuersatz_erloese_export " , $this , " ReplaceSteuersatz " );
$this -> form -> ReplaceFunction ( " bestandalternativartikel " , $this , " ReplaceArtikel " );
$this -> form -> ReplaceFunction ( " pseudopreis " , $this , " ReplaceBetrag " );
$this -> form -> ReplaceFunction ( " breite " , $this , " ReplaceBetrag " );
$this -> form -> ReplaceFunction ( " hoehe " , $this , " ReplaceBetrag " );
$this -> form -> ReplaceFunction ( " laenge " , $this , " ReplaceBetrag " );
$this -> form -> ReplaceFunction ( " inventurek " , $this , " ReplaceBetrag " );
$this -> form -> ReplaceFunction ( " berechneterek " , $this , " ReplaceBetrag " );
$this -> form -> ReplaceFunction ( " nummer " , $this , " ReplaceTrim " );
$this -> form -> ReplaceFunction ( " ean " , $this , " ReplaceTrim " );
$this -> form -> ReplaceFunction ( " name_de " , $this , " ReplaceTrim " );
2023-12-29 14:15:34 +01:00
$this -> form -> ReplaceFunction ( " sachkonto " , $this , " ReplaceKontorahmen " );
2021-05-21 08:49:41 +02:00
$this -> form -> ReplaceFunction ( " steuersatz " , $this , " ReplaceSteuersatz " );
$this -> app -> Tpl -> Set ( 'GEWICHTBEZEICHNUNG' , $this -> app -> erp -> GetGewichtbezeichnung ());
$this -> app -> YUI -> CkEditor ( " uebersicht_de " , " internal " );
$this -> app -> YUI -> CkEditor ( " uebersicht_en " , " internal " );
if ( $this -> app -> erp -> Firmendaten ( " briefhtml " ) == " 1 " )
{
$this -> app -> YUI -> CkEditor ( " anabregs_text " , " belege " );
$this -> app -> YUI -> CkEditor ( " anabregs_text_en " , " belege " );
}
$id = $this -> app -> Secure -> GetGET ( " id " );
$this -> app -> erp -> RunHook ( 'article_widget' , 1 , $id );
$action = $this -> app -> Secure -> GetGET ( " action " );
$nummer = $this -> app -> Secure -> GetPOST ( " nummer " );
$submit = $this -> app -> Secure -> GetPOST ( " speichern " );
$projekt = $this -> app -> Secure -> GetPOST ( " projekt " );
$projekttmp = $this -> app -> DB -> Select ( " SELECT projekt FROM artikel WHERE id=' $id ' LIMIT 1 " );
// versuchen standardprojekt zu kriegen beim anlegen
if ( $action === 'create' )
{
if ( $projekttmp <= 0 )
$projekttmp = $this -> app -> DB -> Select ( " SELECT id FROM projekt WHERE abkuerzung=' $projekt ' AND abkuerzung!='' LIMIT 1 " );
if ( $projekttmp <= 0 )
$projekttmp = $this -> app -> erp -> GetCreateProjekt ();
}
$_artikelart = $this -> app -> erp -> GetArtikelgruppe ( $projekttmp );
if ( $id ){
$standardbild = $this -> app -> erp -> GetArtikelStandardbild ( $id , true );
if ( $standardbild > 0 ){
//$this->app->Tpl->Set('ARTIKELBILD', "<img src=\"index.php?module=dateien&action=send&id=$standardbild\" align=\"left\" style=\"width: 200px; margin-right:10px; margin-bottom:10px;\">");
$this -> app -> Tpl -> Set ( 'ARTIKELBILD' ,
'<img alt="Artikelbild" src="index.php?module=artikel&action=thumbnail&id=' . $id . '&fileid=' . $standardbild . '&size=200&direkt=1" align="left" width="200" style="margin-right:10px; margin-bottom:10px;" />'
);
}
$standardlieferant = $this -> app -> DB -> Select ( " SELECT adresse FROM artikel WHERE id=' $id ' LIMIT 1 " );
$hinweistextlieferant = $this -> app -> DB -> Select ( " SELECT hinweistextlieferant FROM adresse WHERE id=' $standardlieferant ' LIMIT 1 " );
if ( $hinweistextlieferant != '' )
{
if ( $standardbild <= 0 )
{
$this -> app -> Tpl -> Set ( 'ARTIKELBILD' , " <img src= \" index.php?module=artikel&action=thumbnail&id=1&bildvorschau=KEINBILD \" align= \" left \" style= \" width: 200px; margin-right:10px; margin-bottom:10px; \" > " );
}
$this -> app -> YUI -> CkEditor ( " readonlybox " , " none " );
$this -> app -> Tpl -> Set ( 'INFOFUERAUFTRAGSERFASSUNG' , " <fieldset><legend>Info von Lieferant</legend>
< textarea id = \ " readonlybox \" rows> $hinweistextlieferant </textarea></fieldset> " );
}
// $this->app->Tpl->Add('ARTIKELBILD',"<img src=\"index.php?module=artikel&action=thumbnail&cmd=artikel&id=$id&size=400&direkt=1\" style=\"max-width:400px;max-height:400px;\">");
$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' , '<div class="error">Es ist eine falsche Artikelkategorie ausgewählt</div>' );
}
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' , '<!--' );
$this -> app -> Tpl -> Set ( 'DISABLECLOSEPARAMETER' , '-->' );
//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 , '<tr><td>' );
$this -> app -> Tpl -> Set ( 'NACHFREIFELD' . $i , '</tr>' );
}
$this -> app -> Tpl -> Set ( 'DISABLEOPENPARAMETER2' , '<div style="display:none">' );
$this -> app -> Tpl -> Set ( 'DISABLECLOSEPARAMETER2' , '</div>' );
} else {
$this -> app -> erp -> ArtikelFreifeldBezeichnungen ();
}
if ( ! $this -> app -> erp -> ModulVorhanden ( 'formeln' ))
{
$this -> app -> Tpl -> Set ( 'VORFORMELN' , '<!--' );
$this -> app -> Tpl -> Set ( 'NACHFORMELN' , '-->' );
}
$tmpi = 0 ;
if ( $this -> app -> erp -> Firmendaten ( 'parameterundfreifelder' )){
for ( $i = 1 ; $i <= 40 ; $i ++ )
{
if ( $this -> app -> erp -> Firmendaten ( 'freifeld' . $i ) != '' ){
$this -> app -> Tpl -> Set ( 'FREIFELD' . $i . 'BEZEICHNUNG' , $this -> app -> erp -> Firmendaten ( 'freifeld' . $i ));
}
else {
$this -> app -> Tpl -> Set ( 'FREIFELD' . $i . 'BEZEICHNUNG' , 'Freifeld ' . $i );
}
}
$aktind = 0 ;
for ( $i = 1 ; $i <= 40 ; $i ++ )
{
$n1 = 'freifeld' . $i . 'typ' ;
$n2 = 'freifeld' . $i . 'spalte' ;
$n3 = 'freifeld' . $i . 'sort' ;
$freifeldtyp [ $i ] = $this -> app -> erp -> Firmendaten ( $n1 );
$freifeldspalte [ $i ] = $this -> app -> erp -> Firmendaten ( $n2 );
$freifeldsort [ $i ] = $this -> app -> erp -> Firmendaten ( $n3 );
if ( $freifeldspalte [ $i ] > 0 )
{
$this -> app -> Tpl -> Set ( 'VORFREIFELD' . $i , '<!--' );
$this -> app -> Tpl -> Set ( 'NACHFREIFELD' . $i , '-->' );
$spalte [ $freifeldspalte [ $i ]][ $i ][ 'index' ] = $i ;
$spalte [ $freifeldspalte [ $i ]][ $i ][ 'sort' ] = $freifeldsort [ $i ];
$sort [ $freifeldspalte [ $i ]][ $i ] = $freifeldsort [ $i ];
} else {
$aktind ++ ;
if ( $aktind % 2 == 1 )
{
$this -> app -> Tpl -> Set ( 'VORFREIFELD' . $i , '<tr><td width="200">' );
$this -> app -> Tpl -> Set ( 'NACHFREIFELD' . $i , '</td>' );
} else {
$this -> app -> Tpl -> Set ( 'VORFREIFELD' . $i , '<td width="20"> </td><td width="150">' );
$this -> app -> Tpl -> Set ( 'NACHFREIFELD' . $i , '</td></tr>' );
}
}
}
for ( $s = 1 ; $s <= 2 ; $s ++ )
{
if ( isset ( $spalte [ $s ]))
{
array_multisort ( $sort [ $s ], SORT_ASC , $spalte [ $s ]);
$this -> app -> Tpl -> Set ( 'FREIFELDSPALTE' . $s , '<table class="mkTableFormular" width="100%">' );
foreach ( $spalte [ $s ] as $k => $v )
{
$tmpi ++ ;
$bez = ( String ) $this -> app -> erp -> Firmendaten ( 'freifeld' . $v [ 'index' ]);
if ( $freifeldtyp [ $v [ 'index' ]] === 'select' )
{
$optionen = null ;
$beza = explode ( '|' , $bez );
$bez = trim ( $beza [ 0 ]);
$cbeza = count ( $beza );
if ( $cbeza > 1 )
{
for ( $inds = 1 ; $inds < $cbeza ; $inds ++ ){
$optionen [] = trim ( $beza [ $inds ]);
}
}
}
if ( empty ( $bez )){
$bez = 'Freifeld ' . $v [ 'index' ];
}
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '<tr><td>' );
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , $bez . ':</td><td>' );
switch ( $freifeldtyp [ $v [ 'index' ]])
{
case 'checkbox' :
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '<input type="checkbox" name="freifeld' . $v [ 'index' ] . '" id="freifeld' . $v [ 'index' ] . '" value="1" ' . ( $this -> 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 , '<textarea cols="40" name="freifeld' . $v [ 'index' ] . '" id="freifeld' . $v [ 'index' ] . '">' . $this -> app -> DB -> Select ( " SELECT freifeld " . $v [ 'index' ] . " FROM artikel WHERE id = ' $id ' LIMIT 1 " ) . '</textarea>' );
break ;
case 'datum' :
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '<input type="text" size="10" id="freifeld' . $v [ 'index' ] . '" name="freifeld' . $v [ 'index' ] . '" value="' . $this -> app -> DB -> Select ( " SELECT freifeld " . $v [ 'index' ] . " FROM artikel WHERE id = ' $id ' LIMIT 1 " ) . '" />' );
$this -> app -> YUI -> DatePicker ( 'freifeld' . $v [ 'index' ]);
break ;
case 'select' :
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '<select name="freifeld' . $v [ 'index' ] . '" id="freifeld' . $v [ 'index' ] . '">' );
$tmpv = $this -> app -> DB -> Select ( " SELECT freifeld " . $v [ 'index' ] . " FROM artikel WHERE id = ' $id ' LIMIT 1 " );
if ( isset ( $optionen ) && $optionen )
{
$found = false ;
foreach ( $optionen as $ov )
{
$ovvalue = $ov ;
if ( strpos ( $ov , '=>' ) !== false ) {
list ( $ov , $ovvalue ) = explode ( '=>' , $ov );
}
if ( $ovvalue == $tmpv )
{
$found = true ;
break ;
}
}
if ( ! $found ){
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '<option>' . $tmpv . '</option>' );
}
foreach ( $optionen as $ov )
{
$ovvalue = $ov ;
if ( strpos ( $ov , '=>' ) !== false ) {
list ( $ov , $ovvalue ) = explode ( '=>' , $ov );
}
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '<option' . ( $tmpv == $ovvalue ? ' selected' : '' ) . ' value="' . $ovvalue . '">' . $ov . '</option>' );
}
} else {
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '<option>' . $tmpv . '</option>' );
}
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '</select>' );
break ;
default :
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '<input type="text" size="30" id="freifeld' . $v [ 'index' ] . '" name="freifeld' . $v [ 'index' ] . '" value="' . $this -> app -> DB -> Select ( " SELECT freifeld " . $v [ 'index' ] . " FROM artikel WHERE id = ' $id ' LIMIT 1 " ) . '" />' );
break ;
}
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '</td></tr>' );
}
$this -> app -> Tpl -> Add ( 'FREIFELDSPALTE' . $s , '</table>' );
}
}
}
if ( $tmpi > 0 )
{
$this -> app -> Tpl -> Set ( 'BENUTZERDEFINIERT' , 'Weitere Felder' );
}
else {
$this -> app -> Tpl -> Set ( 'BENUTZERDEFINIERTSTART' , '<!--' );
$this -> app -> Tpl -> Set ( 'BENUTZERDEFINIERTENDE' , '-->' );
}
if ( ! $this -> app -> erp -> ModulVorhanden ( 'steuerregeln' ))
{
$this -> app -> Tpl -> Set ( 'VORSTEUERREGELN' , '<!--' );
$this -> app -> Tpl -> Set ( 'NACHSTEUERREGELN' , '-->' );
}
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' , '<div class="warning">Der Artikel ist als Stückliste markiert, enthält aber keine Stücklistenelemente</div>' );
}
}
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 );
}
2023-12-29 14:15:34 +01:00
function ReplaceKontorahmen ( $db , $value , $fromform )
{
return $this -> app -> erp -> ReplaceKontorahmen ( $db , $value , $fromform );
}
2021-05-21 08:49:41 +02:00
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'));
}
}