seriennummern added workflow buttons control, minidetail for seriennummer

This commit is contained in:
OpenXE 2024-08-21 12:45:19 +02:00
parent 42f5d3cc01
commit a3285d6c61
4 changed files with 104 additions and 288 deletions

View File

@ -2828,7 +2828,7 @@ public function NavigationHooks(&$menu)
function SeriennummernCheckLieferscheinWarnung(int $lieferschein_id, bool $notification) {
$obj = $this->LoadModul('seriennummern');
$obj->seriennummern_check_and_message_delivery_note($lieferschein_id, $notification);
return($obj->seriennummern_check_and_message_delivery_note($lieferschein_id, $notification));
}
function SeriennummernCheckLieferschein($lieferschein_id = null, $ignore_date = false, $only_missing = true, $group_lieferschein = false) {

View File

@ -1,197 +0,0 @@
<div id="tabs">
<ul>
<li><a href="#tabs-1"></a></li>
</ul>
<!-- Example for multiple tabs
<ul hidden">
<li><a href="#tabs-1">First Tab</a></li>
<li><a href="#tabs-2">Second Tab</a></li>
</ul>
-->
<div id="tabs-1">
[MESSAGE]
<form action="" method="post">
[FORMHANDLEREVENT]
<div class="row">
<div class="row-height">
<div class="col-xs-14 col-md-6 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Seriennummern erfassen [LEGEND]|}</legend>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>
{|Lagermenge|}:
</td>
<td>
<input type="text" value="[ANZLAGER]" size="40" disabled>
</td>
</tr>
<tr>
<td>
{|Seriennummern verf&uuml;gbar|}:
</td>
<td>
<input type="text" value="[ANZVORHANDEN]" size="40" disabled>
</td>
</tr>
<tr>
<td>
{|Seriennummern fehlen|}:
</td>
<td>
<input type="text" value="[ANZFEHLT]" size="40" disabled>
</td>
</tr>
<tr>
<td>
{|Seriennummer scannen|}:
</td>
<td>
<input type="text" name="eingabeneu" id="eingabeneu" value="[EINGABENEU]" size="40" autofocus>
</td>
</tr>
<tr>
<td>
{|Seriennummer w&auml;hlen|}:
</td>
<td>
<input type="text" name="eingabe" id="eingabe" value="[EINGABE]" size="40">
</td>
</tr>
</table>
</fieldset>
</div>
</div>
<div class="col-xs-14 col-md-6 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Seriennummernassistent|}</legend>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>
{|Letzte Seriennummer|}:
</td>
<td>
<input type="text" name="muster" id="muster" value="[LETZTE]" size="40" disabled>
</td>
</tr>
<tr>
<td>
{|Pr&auml;fix|}:
</td>
<td>
<input type="text" name="praefix" id="praefix" value="[PRAEFIX]" size="40">
</td>
</tr>
<tr>
<td>
{|Start|}:
</td>
<td>
<input type="number" name="start" id="start" value="[START]" size="40">
</td>
</tr>
<tr>
<td>
{|Postfix|}:
</td>
<td>
<input type="text" name="postfix" id="postfix" value="[POSTFIX]" size="40">
</td>
</tr>
<tr>
<td>
{|Anzahl|}:
</td>
<td>
<input type="number" name="anzahl" id="anzahl" value="[ANZAHL]" size="40">
</td>
</tr>
</table>
</fieldset>
</div>
</div>
<div class="col-xs-14 col-md-2 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|<!--Legend for this form area goes here>-->Aktionen|}</legend>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>
<button name="submit" value="hinzufuegen" class="ui-button-icon" style="width:100%;">Hinzuf&uuml;gen</button>
</td>
</tr>
<tr>
<td>
<button name="submit" value="assistent" class="ui-button-icon" style="width:100%;">Assistent ausf&uuml;hren</button>
</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
<div class="row">
<div class="row-height">
<div class="col-xs-14 col-md-12 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Gew&auml;hlte Seriennummern|}</legend>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>
{|Seriennummern|}:
</td>
<td>
<textarea name="seriennummern" id="seriennummern" rows="20" style="width:100%;">[SERIENNUMMERN]</textarea>
<i>Liste der Seriennummern, 1 pro Zeile</i>
</td>
</tr>
</table>
</fieldset>
</div>
</div>
<div class="col-xs-14 col-md-2 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|<!--Legend for this form area goes here>-->Aktionen|}</legend>
<table width="100%" border="0" class="mkTableFormular">
<tr>
<td>
<input type="checkbox" name="allowold" id="allowold" value="1" [PRIO] size="20">{|Ausgelieferte erlauben|}
</td>
</tr>
<tr>
<td>
<button name="submit" value="speichern" class="ui-button-icon" style="width:100%;">Speichern</button>
</td>
</tr>
<tr>
<td>
<button name="submit" value="lieferscheinzuordnen" class="ui-button-icon" style="width:100%;">Zuordnen</button>
</td>
</tr>
</table>
</fieldset>
</div>
</div>
</div>
</div>
<div class="row">
<div class="row-height">
<div class="col-xs-14 col-md-14 col-md-height">
<div class="inside inside-full-height">
<fieldset>
<legend>{|Lieferscheinpositionen|}</legend>
[LIEFERSCHEINPOSITIONEN]
</fieldset>
</div>
</div>
</div>
</div>
</form>
</div>
</div>

View File

@ -645,12 +645,15 @@ class Lieferschein extends GenLieferschein
$adresse = $this->app->DB->Select("SELECT adresse FROM lieferschein WHERE id='$id' LIMIT 1");
$lieferantenretoure = $this->app->DB->Select("SELECT lieferantenretoure FROM lieferschein WHERE id='$id' LIMIT 1");
if($adresse > 0 && ($status=="angelegt" || $status==""))
$freigabe = "<option value=\"freigabe\">Lieferschein freigeben</option>";
if($adresse > 0 && ($status=="angelegt" || $status=="")) {
$freigabe = "<option value=\"freigabe\">Lieferschein freigeben</option>";
}
$seriennummern_check_result = $this->app->erp->SeriennummernCheckLieferschein(lieferschein_id: $id, ignore_date: true, only_missing: true, group_lieferschein: true);
if(($status=="versendet" || $status=="freigegeben") && $lieferantenretoure=="1")
$abschliessen = "<option value=\"abschliessen\">Lieferschein abschliessen</option>";
if(($status=="versendet" || $status=="freigegeben") && $lieferantenretoure=="1" && empty($seriennummern_check_result)) {
$abschliessen = "<option value=\"abschliessen\">Lieferschein abschliessen</option>";
}
$checkifrgexists = $this->app->DB->Select("SELECT id FROM rechnung WHERE lieferschein='$id' LIMIT 1");
@ -668,7 +671,6 @@ class Lieferschein extends GenLieferschein
$hookcase = '';
$this->app->erp->RunHook('Lieferschein_Aktion_option',3, $id, $status, $hookoption);
$this->app->erp->RunHook('Lieferschein_Aktion_case',3, $id, $status, $hookcase);
$bestellmengelagerartikel = $this->app->DB->Select("SELECT sum(lp.menge) as bestellmenge from lieferschein_position lp INNER JOIN artikel a on a.id=lp.artikel where a.lagerartikel=1 AND lp.lieferschein = '$id'");
$liefermengelagerartikel = $this->app->DB->Select("SELECT sum(lp.geliefert) as liefermenge from lieferschein_position lp INNER JOIN artikel a on a.id=lp.artikel where a.lagerartikel=1 AND lp.lieferschein = '$id'");
@ -695,19 +697,20 @@ class Lieferschein extends GenLieferschein
}
$optionumlagern = "<option value=\"umlagern\">Lieferschein umlagern</option>";
$abschicken = "<option value=\"abschicken\">Lieferschein abschicken</option>";
if($status!="angelegt" && $lieferantenretoure!="1")
{
$alsrechnung = "<option value=\"rechnung\">als Rechnung weiterf&uuml;hren</option>";
if($this->app->erp->RechteVorhanden('lieferschein', 'proformarechnung') && $this->app->erp->ModulVorhanden('proformarechnung'))
{
$alsrechnung .= "<option value=\"proformarechnung\">als Proformarechnung weiterf&uuml;hren</option>";
}
if (empty($seriennummern_check_result)) {
$abschicken = "<option value=\"abschicken\">Lieferschein abschicken</option>";
if($status!="angelegt" && $lieferantenretoure!="1")
{
$alsrechnung = "<option value=\"rechnung\">als Rechnung weiterf&uuml;hren</option>";
if($this->app->erp->RechteVorhanden('lieferschein', 'proformarechnung') && $this->app->erp->ModulVorhanden('proformarechnung'))
{
$alsrechnung .= "<option value=\"proformarechnung\">als Proformarechnung weiterf&uuml;hren</option>";
}
}
}
}
if($this->app->erp->RechteVorhanden('belegeimport', 'belegcsvexport'))
{
$casebelegeimport = "case 'belegeimport': window.location.href='index.php?module=belegeimport&action=belegcsvexport&cmd=lieferschein&id=%value%'; break;";
@ -829,7 +832,6 @@ class Lieferschein extends GenLieferschein
$lieferantenretoureinfo = $auftragArr[0]['lieferantenretoureinfo'];
}
$this->app->Tpl->Set('LIEFERANTENRETOUREINFO',$lieferantenretoureinfo);
if($lieferantenretoure!='1') {
@ -849,7 +851,6 @@ class Lieferschein extends GenLieferschein
$this->app->Tpl->Set('ZAHLWEISE',$auftragArr[0]['zahlungsweise']);
$this->app->Tpl->Set('STATUS',$auftragArr[0]['status']);
if($auftragArr[0]['auftragid'] > 0){
$orderRow = $this->app->DB->SelectRow(
"SELECT belegnr, projekt FROM auftrag WHERE id='".$auftragArr[0]['auftragid']."' LIMIT 1"
@ -874,8 +875,7 @@ class Lieferschein extends GenLieferschein
}else{
$this->app->Tpl->Set('AUFTRAG','-');
}
if($auftragArr[0]['auftragid'] > 0){
$rechnung = $this->app->DB->SelectArr(
($auftragArr[0]['auftragid']?
@ -915,9 +915,7 @@ class Lieferschein extends GenLieferschein
INNER JOIN lieferschein_position lp ON lp.id = s.lieferschein_position_id
WHERE lp.lieferschein='$id'
");
}
}
$crechnung = !empty($rechnung)?count($rechnung):0;
@ -939,14 +937,13 @@ class Lieferschein extends GenLieferschein
else
$this->app->Tpl->Set('STEUER',"Export");
if($menu)
{
$menu = $this->LieferscheinIconMenu($id);
$this->app->Tpl->Set('MENU',$menu);
}
// ARTIKEL
// ARTIKEL
$lieferscheinarr = $this->app->DB->SelectRow("SELECT * FROM lieferschein WHERE id='$id' LIMIT 1");
$status = $lieferscheinarr['status'];//$this->app->DB->Select("SELECT status FROM lieferschein WHERE id='$id' LIMIT 1");
@ -1313,8 +1310,6 @@ class Lieferschein extends GenLieferschein
$this->app->erp->DokumentAbschicken();
}
function LieferscheinDelete($id = null)
{
if(is_null($id))
@ -1716,7 +1711,7 @@ class Lieferschein extends GenLieferschein
}
function LieferscheinMenu()
function LieferscheinMenu($seriennummern_zeigen = false, $paketmarke_zeigen = false)
{
$id = $this->app->Secure->GetGET("id");
@ -1733,26 +1728,22 @@ class Lieferschein extends GenLieferschein
// status bestell
$status = $this->app->DB->Select("SELECT status FROM lieferschein WHERE id='$id' LIMIT 1");
$this->app->erp->MenuEintrag("index.php?module=lieferschein&action=edit&id=$id","Details");
if ($status=="angelegt")
{
$this->app->erp->MenuEintrag("index.php?module=lieferschein&action=freigabe&id=$id","Freigabe");
$this->app->erp->MenuEintrag("index.php?module=lieferschein&action=freigabe&id=$id","Freigabe");
} else {
if ($seriennummern_zeigen) {
$this->app->erp->MenuEintrag("index.php?module=seriennummern&action=enter&lieferschein=".$id."&from=lieferschein", "Seriennummern");
}
if ($paketmarke_zeigen) {
$this->app->erp->MenuEintrag("index.php?module=lieferschein&action=paketmarke&id=$id","Paketmarke");
}
}
$this->app->erp->MenuEintrag("index.php?module=lieferschein&action=edit&id=$id","Details");
// $this->app->erp->MenuEintrag("index.php?module=lieferschein&action=abschicken&id=$id","Abschicken / Protokoll");
// $this->app->erp->MenuEintrag("index.php?module=lieferschein&action=protokoll&id=$id","Protokoll");
$this->app->erp->MenuEintrag("index.php?module=lieferschein&action=list","Zur&uuml;ck zur &Uuml;bersicht");
if (!empty($this->app->erp->SeriennummernCheckLieferschein(
lieferschein_id: $id,
ignore_date: true,
only_missing: false,
group_lieferschein: true))) {
$this->app->erp->MenuEintrag("index.php?module=seriennummern&action=enter&lieferschein=".$id."&from=lieferschein", "Seriennummern");
}
$this->app->erp->MenuEintrag("index.php?module=lieferschein&action=paketmarke&id=$id","Paketmarke");
$this->app->erp->RunMenuHook('lieferschein');
}
@ -1869,15 +1860,25 @@ class Lieferschein extends GenLieferschein
if($this->app->erp->InnendienstAendern("lieferschein",$id,$cmd,$sid))
return;
$seriennummern = $this->app->erp->SeriennummernCheckLieferschein(
lieferschein_id: $id,
ignore_date: true,
only_missing: false,
group_lieferschein: true);
$seriennummern_aktiv = !empty($seriennummern);
$seriennummern_check_result = $this->app->erp->SeriennummernCheckLieferscheinWarnung($id, false);
$seriennummern_ok = empty($seriennummern_check_result);
if($this->app->erp->DisableModul("lieferschein",$id))
{
//$this->app->erp->MenuEintrag("index.php?module=auftrag&action=list","Zur&uuml;ck zur &Uuml;bersicht");
$this->LieferscheinMenu();
$this->LieferscheinMenu(seriennummern_zeigen: !empty($seriennummern), paketmarke_zeigen: false);
return;
}
$this->app->YUI->AARLGPositionen();
$this->app->erp->CheckVertrieb($id,"lieferschein");
@ -1893,10 +1894,6 @@ class Lieferschein extends GenLieferschein
$lieferantenretoure = $lieferscheinarr['lieferantenretoure'];//$this->app->DB->Select("SELECT lieferantenretoure FROM lieferschein WHERE id='$id' LIMIT 1");
$schreibschutz = $lieferscheinarr['schreibschutz'];//$this->app->DB->Select("SELECT schreibschutz FROM lieferschein WHERE id='$id' LIMIT 1");
$status = $lieferscheinarr['status'];//$this->app->DB->Select("SELECT status FROM lieferschein WHERE id='$id' LIMIT 1");
if ($status != 'angelegt' && $status != 'storniert') {
$this->app->erp->SeriennummernCheckLieferscheinWarnung($id, false);
}
}else{
$nummer = '';
$projekt = 0;
@ -1958,20 +1955,19 @@ class Lieferschein extends GenLieferschein
$this->app->erp->PDFArchivieren('lieferschein', $id, true);
}
if($status != "angelegt" && $status != "angelegta" && $status != "a")
if($status != "angelegt" && $status != "angelegta" && $status != "a" && $seriennummern_ok)
{
$Brief = new Briefpapier($this->app);
if($Brief->zuArchivieren($id, "lieferschein"))
if ($Brief->zuArchivieren($id, "lieferschein"))
{
$this->app->Tpl->Add('MESSAGE',"<div class=\"warning\">Der Lieferschein ist noch nicht archiviert! Bitte versenden oder manuell archivieren.
<input type=\"button\" onclick=\"if(!confirm('Soll das Dokument archiviert werden?')) return false;else window.location.href='index.php?module=lieferschein&action=archivierepdf&id=$id';\" value=\"Manuell archivieren\" /> <input type=\"button\" value=\"Dokument versenden\" onclick=\"DokumentAbschicken('lieferschein',$id)\"></div>");
}elseif(!$this->app->DB->Select("SELECT versendet FROM lieferschein WHERE id = '$id' LIMIT 1"))
$this->app->Tpl->Add('MESSAGE',"<div class=\"warning\">Der Lieferschein ist noch nicht archiviert! Bitte versenden oder manuell archivieren.<input type=\"button\" onclick=\"if(!confirm('Soll das Dokument archiviert werden?')) return false;else window.location.href='index.php?module=lieferschein&action=archivierepdf&id=$id';\" value=\"Manuell archivieren\" /> <input type=\"button\" value=\"Dokument versenden\" onclick=\"DokumentAbschicken('lieferschein',$id)\"></div>");
} elseif(!$this->app->DB->Select("SELECT versendet FROM lieferschein WHERE id = '$id' LIMIT 1"))
{
$this->app->Tpl->Add('MESSAGE',"<div class=\"warning\">Der Lieferschein wurde noch nicht versendet! <input type=\"button\" value=\"Dokument versenden\" onclick=\"DokumentAbschicken('lieferschein',$id)\"></div>");
}
}
if($schreibschutz!="1")// && $this->app->erp->RechteVorhanden("lieferschein","schreibschutz"))
if($schreibschutz!="1")
{
$this->app->erp->AnsprechpartnerButton($adresse);
$this->app->erp->LieferadresseButton($adresse);
@ -1980,11 +1976,8 @@ class Lieferschein extends GenLieferschein
$this->app->erp->LieferscheinNeuberechnen($id);
}
//$this->LieferscheinMiniDetail(MINIDETAIL,false);
$this->app->Tpl->Set('ICONMENU',$this->LieferscheinIconMenu($id));
$this->app->Tpl->Set('ICONMENU2',$this->LieferscheinIconMenu($id,2));
//$this->app->Tpl->Set('ICONMENU2',$this->LieferscheinIconMenu($id,2));
if($nummer!="")
{
@ -1998,7 +1991,6 @@ class Lieferschein extends GenLieferschein
if($schreibschutz=="1" && $this->app->erp->RechteVorhanden("lieferschein","schreibschutz"))
{
$this->app->Tpl->Add('MESSAGE',"<div class=\"warning\">Dieser Lieferschein ist schreibgesch&uuml;tzt und darf daher nicht mehr bearbeitet werden!&nbsp;<input type=\"button\" value=\"Schreibschutz entfernen\" onclick=\"if(!confirm('Soll der Schreibschutz f&uuml;r diesen Lieferschein wirklich entfernt werden?')) return false;else window.location.href='index.php?module=lieferschein&action=schreibschutz&id=$id';\"></div>");
// $this->app->erp->CommonReadonly();
}
if($schreibschutz=="1")
$this->app->erp->CommonReadonly();
@ -2012,13 +2004,11 @@ class Lieferschein extends GenLieferschein
<input type="button" value="&uuml;bernehmen" onclick="if(!confirm(\'Soll der neue Kunde wirklich &uuml;bernommen werden? Es werden alle Felder &uuml;berladen.\')) return false;else document.getElementById(\'uebernehmen\').value=1; document.getElementById(\'eprooform\').submit();"/><input type="hidden" id="uebernehmen" name="uebernehmen" value="0">
');
$this->app->Tpl->Set('BUTTON_UEBERNEHMEN2', '
<input type="button" value="&uuml;bernehmen" onclick="if(!confirm(\'Soll der neue Lieferant wirklich &uuml;bernommen werden? Es werden alle Felder &uuml;berladen.\')) return false;else document.getElementById(\'uebernehmen2\').value=1; document.getElementById(\'eprooform\').submit();"/><input type="hidden" id="uebernehmen2" name="uebernehmen2" value="0">
');
}
// immer wenn sich der lieferant genändert hat standartwerte setzen
if($this->app->Secure->GetPOST("adresse")!="")
{
@ -2053,10 +2043,8 @@ class Lieferschein extends GenLieferschein
header("Location: index.php?module=lieferschein&action=edit&id=$id");
exit;
}
}
// easy table mit arbeitspaketen YUI als template
$table = new EasyTable($this->app);
$table->Query("SELECT nummer as Nummer, bezeichnung, menge,vpe as VPE
@ -2086,7 +2074,8 @@ class Lieferschein extends GenLieferschein
header("Location: index.php?module=lieferschein&action=positionen&id=$id");
exit;
}
$this->LieferscheinMenu();
$this->LieferscheinMenu(seriennummern_zeigen: $seriennummern_aktiv, paketmarke_zeigen: $seriennummern_ok);
}
@ -2230,8 +2219,6 @@ class Lieferschein extends GenLieferschein
$this->app->YUI->DateiUpload('PAGE',"Lieferschein",$id);
}
function LieferscheinList()
{
if($this->app->Secure->GetPOST('ausfuehren') && $this->app->erp->RechteVorhanden('lieferschein', 'edit'))

View File

@ -22,6 +22,7 @@ class Seriennummern {
$this->app->ActionHandler("enter", "seriennummern_enter");
$this->app->ActionHandler("delete", "seriennummern_delete");
$this->app->ActionHandler("remove", "seriennummern_remove");
$this->app->ActionHandler("minidetail_lieferscheinposition", "seriennummern_lieferscheinpos_minidetail");
$this->app->ActionHandler("minidetail", "seriennummern_minidetail");
$this->app->DefaultActionHandler("list");
$this->app->ActionHandlerListen($app);
@ -36,14 +37,14 @@ class Seriennummern {
case "seriennummern_list":
$allowed['seriennummern_list'] = array('list');
// $heading = array('Artikel-Nr.','Artikel', 'Seriennummer','Erfasst am','Eingelagert','Adresse','Lieferschein','Lieferdatum', 'Men&uuml;');
$heading = array('Artikel-Nr.','Artikel', 'Seriennummer','Erfasst am','Eingelagert', 'Men&uuml;');
$width = array('10%','20%','20%','10%','1%','1%'); // Fill out manually later
$heading = array('','','Artikel-Nr.','Artikel', 'Seriennummer','Erfasst am','Eingelagert', 'Men&uuml;');
$width = array('1%','1%','10%','20%','20%','10%','1%','1%'); // Fill out manually later
// columns that are aligned right (numbers etc)
// $alignright = array(4,5,6,7,8);
// $findcols = array('a.nummer', 'a.name_de', 's.seriennummer','s.datum','s.eingelagert','lh.adresse_name','lh.belegnr','lh.datum','s.id');
$findcols = array('a.nummer', 'a.name_de', 's.seriennummer','s.datum','s.eingelagert','s.id');
$findcols = array('s.id','s.id','a.nummer', 'a.name_de', 's.seriennummer','s.datum','s.eingelagert','s.id');
$searchsql = array('a.nummer', 'a.name_de', 's.seriennummer');
$defaultorder = 1;
@ -55,9 +56,9 @@ class Seriennummern {
$dropnbox = "'<img src=./themes/new/images/details_open.png class=details>' AS `open`, CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',s.id,'\" />') AS `auswahl`";
// $moreinfo = true; // Allow drop down details
$moreinfo = true; // Allow drop down details
// $moreinfoaction = "lieferschein"; // specify suffix for minidetail-URL to allow different minidetails
// $menucol = 11; // Set id col for moredata/menu
$menucol = 1; // Set id col for moredata/menu
$menu = "<table cellpadding=0 cellspacing=0><tr><td nowrap>" . "<a href=\"#\" onclick=DeleteDialog(\"index.php?module=seriennummern&action=delete&id=%value%\");>" . "<img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"></a>" . "</td></tr></table>";
@ -84,6 +85,7 @@ class Seriennummern {
$sql_columns = "
s.id,
$dropnbox,
CONCAT('<a href=\"index.php?module=artikel&action=edit&id=',a.id,'\">',a.nummer,'</a>') as nummer,
a.name_de,
s.seriennummer,
@ -369,7 +371,7 @@ class Seriennummern {
$searchsql = array('l.belegnr');
$moreinfo = true; // Allow drop down details
// $moreinfoaction = "lieferschein"; // specify suffix for minidetail-URL to allow different minidetails
$moreinfoaction = "_lieferscheinposition"; // specify suffix for minidetail-URL to allow different minidetails
$menucol = 1; // Set id col for moredata/menu
$defaultorder = 1;
@ -380,7 +382,7 @@ class Seriennummern {
$dropnbox = "'<img src=./themes/new/images/details_open.png class=details>' AS `open`, CONCAT('<input type=\"checkbox\" name=\"auswahl[]\" value=\"',lp.id,'\" />') AS `auswahl`";
$menu = "<a href=\"#\" onclick=DeleteDialog(\"index.php?module=seriennummern&action=remove&id=%value%\");>" . "<img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"></a>";
$menu = "<a href=\"#\" onclick=DeleteDialog(\"index.php?module=seriennummern&action=remove&id=%value%&from=lieferschein\");>" . "<img src=\"themes/{$app->Conf->WFconf['defaulttheme']}/images/delete.svg\" border=\"0\"></a>";
$lieferschein_link = array(
'<a href="index.php?module=lieferschein&action=edit&id=',
@ -581,14 +583,28 @@ class Seriennummern {
}
public function seriennummern_remove() {
$id = (int) $this->app->Secure->GetGET('id');
$id = (int) $this->app->Secure->GetGET('id');
$from = $this->app->Secure->GetGET('from');
if ($id) {
if (!$this->app->DB->Delete("DELETE FROM `seriennummern_lieferschein_position` WHERE `lieferschein_position` = '{$id}'")) {
$this->app->Tpl->addMessage('error', 'Der Eintrag wurde gel&ouml;scht');
}
$lieferschein = $this->app->DB->Select("SELECT lieferschein FROM lieferschein_position WHERE id = '".$id."'");
$this->app->Location->execute("index.php?module=seriennummern&action=enter&lieferschein=$lieferschein&msg=$msg");
if ($id) {
$sql = "SELECT l.id, l.schreibschutz FROM lieferschein l INNER JOIN lieferschein_position lp ON l.id = lp.lieferschein WHERE lp.id = '".$id."' LIMIT 1";
$lieferschein = $this->app->DB->SelectRow($sql);
if ($lieferschein['schreibschutz']) {
$msg = $this->app->erp->base64_url_encode("<div class=\"error\">Der Lieferschein ist schreibgesch&uuml;tzt.</div>");
} else {
$sql = "SELECT seriennummer FROM seriennummern_lieferschein_position WHERE `lieferschein_position` = '{$id}'";
$seriennummer_ids = $this->app->DB->SelectArr($sql);
if (!$this->app->DB->Delete("DELETE FROM `seriennummern_lieferschein_position` WHERE `lieferschein_position` = '{$id}'")) {
$msg = $this->app->erp->base64_url_encode("<div class=\"error\">Die Eintr&auml;ge wurden nicht gel&ouml;scht!</div>");
} else {
$msg = $this->app->erp->base64_url_encode("<div class=\"success\">Die Eintr&auml;ge wurden gel&ouml;scht.</div>");
if (!empty($seriennummer_ids)) {
$sql = "UPDATE seriennummern SET eingelagert = 1, logdatei = CURRENT_TIMESTAMP WHERE id IN (".implode(', ',array_column($seriennummer_ids, 'seriennummer')).")";
$this->app->DB->Update($sql);
}
}
}
$this->app->Location->execute("index.php?module=seriennummern&action=enter&lieferschein=".$lieferschein['id']."&msg=$msg&from=$from");
}
}
@ -746,22 +762,20 @@ class Seriennummern {
}
if ($lieferschein_position == $position['lieferschein_position']) {
$sql = "INSERT INTO seriennummern_lieferschein_position (lieferschein_position, seriennummer) VALUES ('".$lieferschein_position."','".$check_existing[0]['id']."') ";
$this->app->DB->Insert($sql);
$sql = "UPDATE seriennummern SET eingelagert = 0, logdatei = CURRENT_TIMESTAMP WHERE id = '".$check_existing[0]['id']."'";
$this->app->DB->Update($sql);
$written = true;
}
}
}
if (!$written) {
$seriennummern_not_written[] = $seriennummer;
}
}
}
if (!empty($seriennummern_dont_exist)) {
$this->app->Tpl->addMessage('error', 'Seriennummern existieren nicht: '.implode(', ',$seriennummern_dont_exist));
$this->app->Tpl->addMessage('error', 'Seriennummern nicht verf&uuml;gbar: '.implode(', ',$seriennummern_dont_exist));
}
if (!empty($seriennummern_ambigious)) {
$this->app->Tpl->addMessage('error', 'Seriennummern nicht eindeutig: '.implode(', ',$seriennummern_ambigious));
@ -853,12 +867,9 @@ class Seriennummern {
DISTINCT s.seriennummer
FROM
seriennummern s
LEFT JOIN
seriennummern_lieferschein_position slp ON slp.seriennummer = s.id
WHERE
s.artikel = '".$check_lieferschein[0]['artikel']."'
AND s.eingelagert = 1
AND slp.id IS NULL
ORDER BY s.id ASC
LIMIT 1
";
@ -1069,12 +1080,13 @@ class Seriennummern {
if ($notificiation) {
$this->seriennummern_create_notification_lieferschein($lieferschein_id, 'enter', 'Seriennummern','Bitte Seriennummern f&uuml;r Lieferschein erfassen','Zur Eingabe');
} else {
$this->app->Tpl->Add('MESSAGE',"<div class=\"warning\">Bitte Seriennummern erfassen <input type=\"button\" value=\"Jetzt erfassen\" onclick=\"window.location.href='index.php?module=seriennummern&action=enter&from=lieferschein&lieferschein=$lieferschein_id'\"></div>");
$this->app->Tpl->Add('MESSAGE',"<div class=\"warning\">Seriennummern unvollst&auml;ndig!<input type=\"button\" value=\"Jetzt erfassen\" onclick=\"window.location.href='index.php?module=seriennummern&action=enter&from=lieferschein&lieferschein=$lieferschein_id'\"></div>");
}
}
return($check_delivery_notes);
}
public function seriennummern_minidetail($parsetarget='',$menu=true) {
public function seriennummern_lieferscheinpos_minidetail($parsetarget='',$menu=true) {
$id = $this->app->Secure->GetGET('id');
if($parsetarget=='')
@ -1087,4 +1099,18 @@ class Seriennummern {
$this->app->ExitXentral();
}
}
public function seriennummern_minidetail($parsetarget='',$menu=true) {
$id = $this->app->Secure->GetGET('id');
if($parsetarget=='')
{
$tmp = new EasyTable($this->app);
$tmp->Query("SELECT l.belegnr AS Lieferschein, ".$this->app->erp->FormatDate('l.datum')." AS Datum, a.name AS Adresse FROM lieferschein l INNER JOIN adresse a ON a.id = l.adresse INNER JOIN lieferschein_position lp ON l.id = lp.lieferschein INNER JOIN seriennummern_lieferschein_position slp ON slp.lieferschein_position = lp.id WHERE slp.seriennummer ='$id' ",0,"");
$tmp->DisplayNew('TAB1',"Adresse","noAction");
$this->app->Tpl->Output('emptytab.tpl');
$this->app->ExitXentral();
}
}
}