app->Secure->GetGET('id');
switch($name) {
case 'wareneingangartikelmanuellerfassen':
$allowed['wareneingang'] = array('manuellerfassen');
$this->app->Tpl->Add('JQUERYREADY', "$('#eigene').click( function() { fnFilterColumn1( 0 ); } );");
for ($r = 1;$r < 2;$r++) {
$this->app->Tpl->Add('JAVASCRIPT', '
function fnFilterColumn' . $r . ' ( i )
{
if(oMoreData' . $r . $name . '==1)
oMoreData' . $r . $name . ' = 0;
else
oMoreData' . $r . $name . ' = 1;
$(\'#' . $name . '\').dataTable().fnFilter(
\'\',
i,
0,0
);
}
');
}
// headings
$alignright = array(3);
$heading = array('Nummer', 'Artikel', 'Lagerbestand', 'Projekt', 'Menü');
$width = array( '10%', '60%', '5%', '15%', '1%');
$findcols = array( 'nummer', 'name_de', 'ifnull((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id),0 )', 'projekt', 'id');
if ($this->app->erp->Firmendaten("artikel_suche_kurztext") == "1") {
$searchsql = array('a.name_de', 'kurztext_de', 'a.nummer', 'p.abkuerzung', "a.hersteller", "a.herstellernummer", "a.anabregs_text", "(SELECT tmp.nummer FROM artikel tmp WHERE a.variante_von=tmp.id LIMIT 1)");
} else {
$searchsql = array('a.name_de', 'a.nummer', 'p.abkuerzung', "a.hersteller", "a.herstellernummer", "(SELECT tmp.nummer FROM artikel tmp WHERE a.variante_von=tmp.id LIMIT 1)");
}
$searchsql[] = 'a.ean';
$searchsql[] = 'a.herstellernummer';
$paket = $this->app->Secure->GetGET("id");
$menu = "app->Conf->WFconf['defaulttheme']}/images/forward.svg\" border=\"0\">";
// SQL statement
$more_data1 = $this->app->Secure->GetGET("more_data1");
if($more_data1=="1")
{
$adresse = $this->app->DB->Select("SELECT adresse FROM paketannahme WHERE id='$id' LIMIT 1");
$subwhere = " AND (a.adresse=$adresse OR ( (e.gueltig_bis >= NOW() OR e.gueltig_bis='0000-00-00' OR e.gueltig_bis IS NULL) AND e.adresse=$adresse) )";
$addjoin = " RIGHT JOIN einkaufspreise e ON e.adresse=a.adresse ";
$groupby = " GROUP BY a.id ";
}
$sql = "SELECT SQL_CALC_FOUND_ROWS a.id, a.nummer as nummer,
CONCAT('',a.name_de,'',if(a.intern_gesperrt,CONCAT('',
if(a.variante AND a.variante_von > 0,CONCAT(name_de,' (Variante von ',ifnull((SELECT tmp.nummer FROM artikel tmp WHERE a.variante_von=tmp.id LIMIT 1),''),')'),name_de)
,''),
if(a.variante AND a.variante_von > 0,CONCAT(name_de,' (Variante von ',ifnull((SELECT tmp.nummer FROM artikel tmp WHERE a.variante_von=tmp.id LIMIT 1),''),')'),name_de)
)) as name_de,
CONCAT('',a.name_de,'',trim((SELECT SUM(l.menge) FROM lager_platz_inhalt l WHERE l.artikel=a.id))+0) as lagerbestand,
p.abkuerzung as projekt, a.id as menu
FROM artikel a
LEFT JOIN projekt p ON p.id=a.projekt ".$addjoin;
$where = "a.geloescht=0 $subwhere " . $this->app->erp->ProjektRechte();
$moreinfo = false;
$count = "SELECT COUNT(a.id) FROM artikel a LEFT JOIN projekt p ON p.id=a.projekt $addjoin WHERE a.geloescht=0 $subwhere " . $this->app->erp->ProjektRechte();
break;
case 'wareneingang_lieferant':
$allowed['wareneingang'] = array('distriinhalt');
// headings
$id = $this->app->Secure->GetGET('id');
$adresse = $this->app->DB->Select("SELECT adresse FROM paketannahme WHERE id='$id' LIMIT 1");
$wareneingangauftragzubestellung = $this->app->erp->Firmendaten('wareneingangauftragzubestellung');
if($wareneingangauftragzubestellung)
{
$heading = array('Lieferant-Art.-Nr.', 'Art.-Nummer', 'Bestellung', 'Beschreibung', 'Lieferdatum', 'Projekt', 'Menge', 'Geliefert', 'Offen', 'Auftrag', 'Menge', 'Aktion');
$width = array('5%', '5%', '5%', '30%', '5%', '5%', '5%', '5%', '5%', '5%', '5%', '5%');
$findcols = array('bp.bestellnummer', 'art.nummer', 'b.belegnr',
"CONCAT(art.name_de,' Bei Lieferant: ',bp.bezeichnunglieferant,
IF(b.internebemerkung != '' AND b.internebemerkung IS NOT NULL, CONCAT(' Interne Bemerkung: ',b.internebemerkung),''),
IF(b.internebezeichnung != '' AND b.internebezeichnung IS NOT NULL, CONCAT(' Interne Bezeichnung: ',b.internebezeichnung), ''),
IF(b.bestellungbestaetigtabnummer != '' AND b.bestellungbestaetigtabnummer IS NOT NULL, CONCAT(' AB Nummer Lieferant: ',b.bestellungbestaetigtabnummer), ''),
IF(b.bestaetigteslieferdatum != '' AND b.bestaetigteslieferdatum IS NOT NULL AND b.bestaetigteslieferdatum != '0000-00-00', CONCAT(' Best. Lieferdatum: ',DATE_FORMAT(b.bestaetigteslieferdatum, '%d.%m.%Y')),'')
)",
"if(bp.lieferdatum,bp.lieferdatum,'sofort')", 'p.abkuerzung', 'bp.menge', 'bp.geliefert', 'offen','auftrag','auftragmenge', 'bp.id');
$searchsql = array('bp.bestellnummer', 'art.nummer', 'art.ean', 'b.belegnr', "CONCAT(art.name_de,' Bei Lieferant: ',bp.bezeichnunglieferant, '',
IF(b.internebemerkung != '' AND b.internebemerkung IS NOT NULL, CONCAT(' Interne Bemerkung: ',b.internebemerkung),''),
IF(b.internebezeichnung != '' AND b.internebezeichnung IS NOT NULL, CONCAT(' Interne Bezeichnung: ',b.internebezeichnung), ''),
IF(b.bestellungbestaetigtabnummer != '' AND b.bestellungbestaetigtabnummer IS NOT NULL, CONCAT(' AB Nummer Lieferant: ',b.bestellungbestaetigtabnummer), ''),
IF(b.bestaetigteslieferdatum != '' AND b.bestaetigteslieferdatum IS NOT NULL AND b.bestaetigteslieferdatum != '0000-00-00', CONCAT(' Best. Lieferdatum: ',DATE_FORMAT(b.bestaetigteslieferdatum, '%d.%m.%Y')),'')
)", "if(bp.lieferdatum,DATE_FORMAT(bp.lieferdatum,'%d.%m.%Y'),'sofort')", 'p.abkuerzung', 'bp.menge', 'bp.geliefert',"if((SELECT COUNT(auf2.id) FROM auftrag auf2 INNER JOIN auftrag_position ap2 ON auf2.id = ap2.auftrag WHERE bp.auftrag_position_id = ap2.id ) > 0,(SELECT auf2.belegnr FROM auftrag auf2 INNER JOIN auftrag_position ap2 ON auf2.id = ap2.auftrag WHERE bp.auftrag_position_id = ap2.id ORDER BY belegnr LIMIT 1),'-' )");
}else{
$heading = array('Lieferant-Art.-Nr.', 'Art.-Nummer', 'Bestellung', 'Beschreibung', 'Lieferdatum', 'Projekt', 'Menge', 'Geliefert', 'Offen', 'Aktion');
$width = array('5%', '5%', '5%', '30%', '5%', '5%', '5%', '5%', '5%', '5%');
$findcols = array('bp.bestellnummer', 'art.nummer', 'b.belegnr',
"CONCAT(art.name_de,' Bei Lieferant: ',bp.bezeichnunglieferant,
IF(b.internebemerkung != '' AND b.internebemerkung IS NOT NULL, CONCAT(' Interne Bemerkung: ',b.internebemerkung),''),
IF(b.internebezeichnung != '' AND b.internebezeichnung IS NOT NULL, CONCAT(' Interne Bezeichnung: ',b.internebezeichnung), ''),
IF(b.bestellungbestaetigtabnummer != '' AND b.bestellungbestaetigtabnummer IS NOT NULL, CONCAT(' AB Nummer Lieferant: ',b.bestellungbestaetigtabnummer), ''),
IF(b.bestaetigteslieferdatum != '' AND b.bestaetigteslieferdatum IS NOT NULL AND b.bestaetigteslieferdatum != '0000-00-00', CONCAT(' Best. Lieferdatum: ',DATE_FORMAT(b.bestaetigteslieferdatum, '%d.%m.%Y')),'')
)",
"if(bp.lieferdatum,bp.lieferdatum,'sofort')", 'p.abkuerzung', 'bp.menge', 'bp.geliefert', $this->app->erp->FormatMenge("bp.menge - bp.geliefert"), 'bp.id');
$searchsql = array('bp.bestellnummer', 'art.nummer', 'b.belegnr', "CONCAT(art.name_de,' Bei Lieferant: ',bp.bezeichnunglieferant, '',
IF(b.internebemerkung != '' AND b.internebemerkung IS NOT NULL, CONCAT(' Interne Bemerkung: ',b.internebemerkung),''),
IF(b.internebezeichnung != '' AND b.internebezeichnung IS NOT NULL, CONCAT(' Interne Bezeichnung: ',b.internebezeichnung), ''),
IF(b.bestellungbestaetigtabnummer != '' AND b.bestellungbestaetigtabnummer IS NOT NULL, CONCAT(' AB Nummer Lieferant: ',b.bestellungbestaetigtabnummer), ''),
IF(b.bestaetigteslieferdatum != '' AND b.bestaetigteslieferdatum IS NOT NULL AND b.bestaetigteslieferdatum != '0000-00-00', CONCAT(' Best. Lieferdatum: ',DATE_FORMAT(b.bestaetigteslieferdatum, '%d.%m.%Y')),'')
,'')", "if(bp.lieferdatum,DATE_FORMAT(bp.lieferdatum,'%d.%m.%Y'),'sofort')", 'p.abkuerzung', 'bp.menge', 'bp.geliefert', $this->app->erp->FormatMenge("bp.menge - bp.geliefert"), 'art.ean', 'art.herstellernummer');
}
$alignright = array(7,8,9);
$datecols = array(4);
//$defaultorder = 6; //Optional wenn andere Reihenfolge gewuenscht
//$defaultorderdesc=1;
$menu = "
";
//&NBSP;";
$menucol = 4;
if($this->app->erp->Firmendaten("wareneingang_lagerartikel")) $lagerartikel = "AND art.lagerartikel = 1";
else $lagerartikel = "";
$receiptDocument = $this->app->erp->ModulVorhanden('receiptdocument');
if($receiptDocument) {
$this->app->DB->Select('SELECT id FROM receiptdocument LIMIT 1');
if($this->app->DB->error()) {
$receiptDocument = false;
}
}
$rdJoin = '';
$colBeschreibung = "CONCAT(art.name_de,' Bei Lieferant: ',bp.bezeichnunglieferant, '',
IF(b.internebemerkung != '' AND b.internebemerkung IS NOT NULL, CONCAT(' Interne Bemerkung: ',b.internebemerkung),''),
IF(b.internebezeichnung != '' AND b.internebezeichnung IS NOT NULL, CONCAT(' Interne Bezeichnung: ',b.internebezeichnung), ''),
IF(b.bestellungbestaetigtabnummer != '' AND b.bestellungbestaetigtabnummer IS NOT NULL, CONCAT(' AB Nummer Lieferant: ',b.bestellungbestaetigtabnummer), ''),
IF(b.bestaetigteslieferdatum != '' AND b.bestaetigteslieferdatum IS NOT NULL AND b.bestaetigteslieferdatum != '0000-00-00', CONCAT(' Best. Lieferdatum: ',DATE_FORMAT(b.bestaetigteslieferdatum, '%d.%m.%Y')),'')
,''
)";
if(!empty($receiptDocument)){
$rdJoin = " LEFT JOIN (
SELECT supplier_order_id, MAX(useredit_id) AS useredit, MAX(useredit_time) AS useredit_time
FROM receiptdocument
WHERE (status = 'angelegt' OR status = '') AND supplier_order_id > 0
AND useredit_time <> '0000-00-00 00:00:00' AND DATE_SUB(NOW(), INTERVAL 600 SECOND) < useredit_time
GROUP BY supplier_order_id
) AS rd ON b.id = rd.supplier_order_id ";
$colBeschreibung = "CONCAT(art.name_de,' Bei Lieferant: ',bp.bezeichnunglieferant, '',
IF(b.internebemerkung != '' AND b.internebemerkung IS NOT NULL, CONCAT(' Interne Bemerkung: ',b.internebemerkung),''),
IF(b.internebezeichnung != '' AND b.internebezeichnung IS NOT NULL, CONCAT(' Interne Bezeichnung: ',b.internebezeichnung), ''),
IF(b.bestellungbestaetigtabnummer != '' AND b.bestellungbestaetigtabnummer IS NOT NULL, CONCAT(' AB Nummer Lieferant: ',b.bestellungbestaetigtabnummer), ''),
IF(b.bestaetigteslieferdatum != '' AND b.bestaetigteslieferdatum IS NOT NULL AND b.bestaetigteslieferdatum != '0000-00-00', CONCAT(' Best. Lieferdatum: ',DATE_FORMAT(b.bestaetigteslieferdatum, '%d.%m.%Y')),'')
,'',
IF(
IFNULL(rd.useredit,0) <= 0,'',
CONCAT(' (in Bearbeitung von ', (SELECT a2.name FROM user u2 LEFT JOIN adresse a2 ON a2.id=u2.adresse WHERE u2.id=rd.useredit LIMIT 1),')')
)
)";
}
// SQL statement
$sql = "SELECT SQL_CALC_FOUND_ROWS bp.id, bp.bestellnummer, art.nummer, b.belegnr as `Bestellung`,
$colBeschreibung as beschreibung,
if(bp.lieferdatum,DATE_FORMAT(bp.lieferdatum,'%d.%m.%Y'),'sofort') as lieferdatum, p.abkuerzung as projekt,
".$this->app->erp->FormatMenge('bp.menge').", ".$this->app->erp->FormatMenge('bp.geliefert').",
".$this->app->erp->FormatMenge('bp.menge - bp.geliefert')." as offen,
bp.id
FROM bestellung_position bp
INNER JOIN bestellung b ON bp.bestellung=b.id
$rdJoin
INNER JOIN artikel art ON art.id=bp.artikel $lagerartikel
LEFT JOIN projekt p ON b.projekt=p.id ";
if($wareneingangauftragzubestellung)
{
$sql = "SELECT SQL_CALC_FOUND_ROWS bp.id, bp.bestellnummer, art.nummer, b.belegnr as `Bestellung`,
$colBeschreibung as beschreibung,
if(bp.lieferdatum,DATE_FORMAT(bp.lieferdatum,'%d.%m.%Y'),'sofort') as lieferdatum, p.abkuerzung as projekt,
trim(bp.menge)+0, trim(bp.geliefert)+0, trim(bp.menge - bp.geliefert)+0 as offen,
if((SELECT COUNT(auf2.id) FROM auftrag auf2 INNER JOIN auftrag_position ap2 ON auf2.id = ap2.auftrag WHERE bp.auftrag_position_id = ap2.id ) > 0,(SELECT auf2.belegnr FROM auftrag auf2 INNER JOIN auftrag_position ap2 ON auf2.id = ap2.auftrag WHERE bp.auftrag_position_id = ap2.id ORDER BY belegnr LIMIT 1),'-' ) AS auftrag,
if((SELECT sum(ap2.menge) FROM auftrag auf2 INNER JOIN auftrag_position ap2 ON auf2.id = ap2.auftrag WHERE bp.auftrag_position_id = ap2.id ) > 0,(SELECT TRIM(sum(ap2.menge))+0 FROM auftrag auf2 INNER JOIN auftrag_position ap2 ON auf2.id = ap2.auftrag WHERE bp.auftrag_position_id = ap2.id ),'-' ) AS auftragmenge,
bp.id
FROM bestellung_position bp
INNER JOIN bestellung b ON bp.bestellung=b.id
$rdJoin
INNER JOIN artikel art ON art.id=bp.artikel $lagerartikel
LEFT JOIN projekt p ON b.projekt=p.id ";
}
$where = " b.adresse='$adresse' AND b.belegnr != ''
AND bp.geliefert < bp.menge AND (bp.abgeschlossen IS NULL OR bp.abgeschlossen=0) AND (b.status='versendet' OR b.status='freigegeben') " . $this->app->erp->ProjektRechte();
// gesamt anzahl
$count = "
SELECT COUNT(bp.id) FROM bestellung_position bp INNER JOIN bestellung b ON bp.bestellung=b.id INNER JOIN artikel art ON art.id=bp.artikel $lagerartikel LEFT JOIN projekt p ON bp.projekt=p.id WHERE b.adresse='$adresse' AND b.belegnr !='' AND bp.geliefert < bp.menge AND (bp.abgeschlossen IS NULL OR bp.abgeschlossen=0) AND (b.status='versendet' OR b.status='freigegeben') " . $this->app->erp->ProjektRechte();
$moreinfo = false;
$this->app->erp->RunHook('warneingang_tablesearch_wareneingang_lieferant', 4, $id, $sql, $where, $count);
break;
case 'paketannahme_retoure':
$allowed['wareneingang'] = array('distriinhalt');
$adresse = $this->app->DB->Select("SELECT adresse FROM paketannahme WHERE id='$id' LIMIT 1");
$heading = array(
'Nummer', 'Beschreibung', 'Retoure', 'Datum', 'Projekt', 'Menge',
'Geliefert', 'Offen', 'Aktion'
);
$menucol = (!empty($heading)?count($heading):0);
$width = array('5%', '5%', '5%', '30%', '5%', '5%', '5%', '5%', '5%', '5%');
$findcols = array('art.nummer','art.name_de', 'b.belegnr',
"DATE_FORMAT(b.datum,'%d.%m.%Y')",
'p.abkuerzung', 'bp.menge', 'bp.menge_eingang',
$this->app->erp->FormatMenge('bp.menge - bp.menge_eingang'), 'bp.id'
);
$searchsql = array('art.nummer','art.name_de', 'b.belegnr',
"DATE_FORMAT(b.datum,'%d.%m.%Y')", 'p.abkuerzung', 'bp.menge',
'bp.menge_eingang',
$this->app->erp->FormatMenge('bp.menge - bp.menge_eingang'),
'art.ean', 'art.herstellernummer'
);
$this->app->DB->SelectRow(
'SELECT `return_order_id`, `id`, `useredit_time`, `status` FROM `receiptdocument` LIMIT 1'
);
$count = "SELECT COUNT(bp.id)
FROM `retoure` as `b`
INNER JOIN `retoure_position` as `bp` ON b.id = bp.retoure
LEFT JOIN `projekt` AS `p` ON b.projekt = p.id
";
if(empty($this->app->DB->error())){
$sql = "SELECT SQL_CALC_FOUND_ROWS bp.id, art.nummer,
CONCAT(art.name_de,
IF(
IFNULL(rd.useredit,0) <= 0,'',
CONCAT(' (in Bearbeitung von ',
(SELECT a2.name FROM user u2 LEFT JOIN adresse a2 ON a2.id=u2.adresse WHERE u2.id=rd.useredit LIMIT 1),')')
)
), b.belegnr,
DATE_FORMAT(b.datum,'%d.%m.%Y'),
p.abkuerzung,
trim(bp.menge)+0 AS menge, trim(bp.menge_eingang)+0 AS eingang,
trim(bp.menge - bp.menge_eingang)+0 as offen,
bp.id
FROM `retoure` AS `b`
LEFT JOIN (
SELECT `return_order_id`, MAX(`useredit_id`) AS `useredit`, MAX(`useredit_time`) AS `useredit_time`
FROM `receiptdocument`
WHERE (`status` = 'angelegt' OR `status` = '') AND `return_order_id` > 0
AND `useredit_time` <> '0000-00-00 00:00:00' AND DATE_SUB(NOW(), INTERVAL 600 SECOND) < `useredit_time`
GROUP BY `return_order_id`
) AS `rd` ON b.id = rd.return_order_id
LEFT JOIN (
SELECT `return_order_id`
FROM `receiptdocument`
WHERE (`status` = 'fertiggestellt' OR `status` = 'abgeschlossen') AND `return_order_id` > 0
GROUP BY `return_order_id`
) AS `rd2` ON b.id = rd2.return_order_id
INNER JOIN retoure_position as bp ON b.id = bp.retoure
INNER JOIN artikel AS art ON bp.artikel = art.id
LEFT JOIN projekt AS p ON b.projekt = p.id
";
$count .= "
LEFT JOIN (
SELECT `return_order_id`, MAX(`useredit_id`) AS `useredit`, MAX(`useredit_time`) AS `useredit_time`
FROM `receiptdocument`
WHERE (`status` = 'angelegt' OR `status` = '') AND `return_order_id` > 0
AND `useredit_time` <> '0000-00-00 00:00:00' AND DATE_SUB(NOW(), INTERVAL 600 SECOND) < `useredit_time`
GROUP BY `return_order_id`
) AS `rd` ON b.id = rd.return_order_id
LEFT JOIN (
SELECT `return_order_id`
FROM `receiptdocument`
WHERE (`status` = 'fertiggestellt' OR `status` = 'abgeschlossen') AND `return_order_id` > 0
GROUP BY `return_order_id`
) AS `rd2` ON b.id = rd2.return_order_id
";
}
else {
$sql = "SELECT SQL_CALC_FOUND_ROWS bp.id, art.nummer,
art.name_de
, b.belegnr,
DATE_FORMAT(b.datum,'%d.%m.%Y'),
p.abkuerzung,
trim(bp.menge)+0 AS menge, trim(bp.menge_eingang)+0 AS eingang,
trim(bp.menge - bp.menge_eingang)+0 as offen,
bp.id
FROM retoure as b
INNER JOIN retoure_position as bp ON b.id = bp.retoure
INNER JOIN artikel AS art ON bp.artikel = art.id
LEFT JOIN projekt AS p ON b.projekt = p.id
";
}
$where = sprintf(' b.adresse = %d ', $adresse).
" AND bp.menge_eingang < bp.menge AND b.belegnr <> '' AND b.status <> 'storniert' ".
$this->app->erp->ProjektRechte('b.projekt');
$count .= " WHERE $where ";
$menu = "
";
$this->app->erp->RunHook('wareneingang_tablesearch_wareneingang_retoure', 4, $id, $sql, $where, $count);
break;
case 'paketannahme':
$allowed['wareneingang'] = array('paketannahme');
$this->app->Tpl->Add('JQUERYREADY', "$('#nurkunden').click( function() { fnFilterColumn1( 0 ); } );");
$this->app->Tpl->Add('JQUERYREADY', "$('#nurlieferanten').click( function() { fnFilterColumn2( 0 ); } );");
$this->app->Tpl->Add('JQUERYREADY', "$('#kundenmitrma').click( function() { fnFilterColumn3( 0 ); } );");
$this->app->Tpl->Add('JQUERYREADY', "$('#lieferungfehlt').click( function() { fnFilterColumn4( 0 ); } );");
$this->app->Tpl->Add('JQUERYREADY', "$('#zeitvon').change( function() { fnFilterColumn5( $('#zeitvon').val() ); } );$('#zeitvon').click( function() { fnFilterColumn5( $('#zeitvon').val() ); } );");
$this->app->Tpl->Add('JQUERYREADY', "$('#zeitbis').change( function() { fnFilterColumn6( $('#zeitbis').val() ); } );$('#zeitbis').click( function() { fnFilterColumn6( $('#zeitbis').val() ); } );");
$forcerowclick=true;
$rowclickaction="paketannahme&vorlage=adresse";
$hide767 = [7, 8];
for ($r = 1;$r < 5;$r++) {
$this->app->Tpl->Add('JAVASCRIPT', '
function fnFilterColumn' . $r . ' ( i )
{
if(oMoreData' . $r . $name . '==1)
oMoreData' . $r . $name . ' = 0;
else
oMoreData' . $r . $name . ' = 1;
$(\'#' . $name . '\').dataTable().fnFilter(
\'\',
i,
0,0
);
}
');
}
for ($r = 5;$r < 7;$r++) {
$this->app->Tpl->Add('JAVASCRIPT', '
function fnFilterColumn' . $r . ' ( i )
{
oMoreData' . $r . $name . ' = i;
$(\'#' . $name . '\').dataTable().fnFilter(
\'\',
i,
0,0
);
}
');
}
$more_data1 = $this->app->Secure->GetGET("more_data1");
if ($more_data1 == 1) $subwhere[] = " a.kundennummer != '' ";
$more_data2 = $this->app->Secure->GetGET("more_data2");
if ($more_data2 == 1) $subwhere[] = " a.lieferantennummer != '' ";
$more_data3 = $this->app->Secure->GetGET("more_data3");
$tmpfrom2 = '';
if($more_data3 == 1)
{
$subwhere2[] = " rma.status != 'storniert' ";
$tmpfrom2 = ' INNER JOIN rma_artikel rma ON a.id = rma.adresse ';
}
$more_data4 = $this->app->Secure->GetGET("more_data4");
$more_data5 = $this->app->Secure->GetGET("more_data5");
$more_data6 = $this->app->Secure->GetGET("more_data6");
$tmpfrom3 = '';
if($more_data4 == 1)
{
$tmpfrom3 = ' INNER JOIN bestellung b ON a.id = b.adresse INNER JOIN bestellung_position bp ON b.id = bp.bestellung ';
$subwhere2[] = " (bp.geliefert < bp.menge AND (b.status!='abgeschlossen' AND b.status!='angelegt' AND b.status!='storniert')) ";
}
$tmpfrom4 = '';
$tmpfrom5 = '';
$tmpwhere = '';
$tmpwhere2 = '';
$datumvon = '';
$datumbis = '';
if(!empty($more_data5) || !empty($more_data6))
{
if(!empty($more_data5))$datumvon = $this->app->String->Convert($more_data5,"%1.%2.%3","%3-%2-%1");
if(!empty($more_data6))$datumbis = $this->app->String->Convert($more_data6,"%1.%2.%3","%3-%2-%1");
if($more_data4 == 1)
{
}else{
if($more_data2 == 1 || $more_data1 != 1)$tmpfrom4 = ' LEFT JOIN bestellung b on a.id = b.adresse ';
}
if($more_data2 == 1 || $more_data1 != 1)
{
if(!empty($more_data5))
{
$tmpwhere = "( date(b.versendet_am) >= '$datumvon' ";
}
if(!empty($more_data6))
{
if(!empty($tmpwhere))
{
$tmpwhere .= " AND date(b.versendet_am) <= '$datumbis' ";
}else{
$tmpwhere .= "(date(b.versendet_am) <= '$datumbis' ";
}
}
if(!empty($tmpwhere))$tmpwhere .= ') ';
}
if($more_data1 == 1 || $more_data2 != 1)
{
$tmpfrom5 = ' LEFT JOIN lieferschein l on a.id = l.adresse ';
if(!empty($more_data5))
{
$tmpwhere2 = " ((l.status = 'versendet' OR l.status = 'freigegeben') AND date(l.datum) >= '$datumvon' ";
}
if(!empty($more_data6))
{
if(!empty($tmpwhere2))
{
$tmpwhere2 .= " AND date(l.datum) <= '$datumbis' ";
}else{
$tmpwhere2 .= "((l.status = 'versendet' OR l.status = 'freigegeben') AND date(l.datum) <= '$datumbis' ";
}
}
if(!empty($tmpwhere2))$tmpwhere2 .= ') ';
}
if(!empty($tmpwhere) || !empty($tmpwhere2))
{
if(!empty($tmpwhere) && !empty($tmpwhere2))
{
$subwhere2[] = " (".$tmpwhere." OR ".$tmpwhere2.") ";
}else{
if(!empty($tmpwhere))
{
$subwhere2[] = $tmpwhere;
}else{
$subwhere2[] = $tmpwhere2;
}
}
}
}
$tmp = '';
if(!empty($subwhere))
{
foreach($subwhere as $s) {
$tmp.= " AND " . $s;
}
}
$tmp2 = '';
if(!empty($subwhere2))
{
foreach($subwhere2 as $s2) {
$tmp2.= " AND " . $s2;
}
}
// headings
$heading = array('Name', 'Kunde', 'Lieferant', 'Land', 'PLZ', 'Ort', 'E-Mail', 'Projekt', 'Menü');
$width = array('25%', '10%', '5%', '5%', '5%', '5%', '25%', '5%', '1%');
$findcols = array('a.name', 'a.kundennummer', 'a.lieferantennummer', 'a.land', 'a.plz', 'a.ort', 'a.email', 'a.projekt', 'a.id');
$searchsql = array('a.ort', 'a.name', 'p.abkuerzung', 'a.land', 'a.plz', 'a.email', 'a.kundennummer', 'a.lieferantennummer', 'a.ansprechpartner');
if ($this->app->erp->Firmendaten('adresse_freitext1_suche')) {
$searchsql[] = 'a.freifeld1';
$searchsql[] = 'a.freifeld2';
}
$defaultorder = 2;
$defaultorderdesc = 1;
if($this->app->erp->RechteVorhanden("wareneingang","distrietiketten") && $this->app->erp->RechteVorhanden("wareneingang","distriabschluss")){
$menu = "app->Conf->WFconf['defaulttheme']}/images/forward.svg\" border=\"0\">";
}
// SQL statement
//if(a.typ = 'herr' OR a.typ = 'frau',CONCAT(a.vorname,' ',a.name),a.name) as name,
if ($this->app->erp->Firmendaten("adresse_freitext1_suche")) {
$sql = "SELECT SQL_CALC_FOUND_ROWS a.id, CONCAT(a.name,if(a.freifeld1!='',CONCAT(' (',a.freifeld1,')'),'')) as name,
if(a.kundennummer!='',a.kundennummer,'-') as kundennummer,
if(a.lieferantennummer!='',a.lieferantennummer,'-') as lieferantennummer, a.land as land, a.plz as plz, a.ort as ort, a.email as email, p.abkuerzung as projekt, a.id as menu
FROM adresse AS a LEFT JOIN projekt p ON p.id=a.projekt $tmpfrom2 $tmpfrom3 $tmpfrom4 $tmpfrom5";
} else {
$sql = "SELECT SQL_CALC_FOUND_ROWS a.id, a.name as name,
if(a.kundennummer!='',a.kundennummer,'-') as kundennummer,
if(a.lieferantennummer!='',a.lieferantennummer,'-') as lieferantennummer, a.land as land, a.plz as plz, a.ort as ort, a.email as email, p.abkuerzung as projekt, a.id as menu
FROM adresse AS a LEFT JOIN projekt p ON p.id=a.projekt $tmpfrom2 $tmpfrom3 $tmpfrom4 $tmpfrom5";
}
// fester filter
$where = "a.geloescht=0 $tmp $tmp2 " . $this->app->erp->ProjektRechte();
$groupby = " GROUP BY a.id ";
$count = "SELECT COUNT(a.id) FROM adresse a LEFT JOIN projekt p ON p.id=a.projekt WHERE a.geloescht=0 $tmp " . $this->app->erp->ProjektRechte();
break;
case 'wareneingang_kunderetoure':
$allowed['wareneingang'] = array('distriinhalt');
// headings
$id = $this->app->Secure->GetGET('id');
$adresse = (int)$this->app->DB->Select(sprintf('SELECT adresse FROM paketannahme WHERE id = %d LIMIT 1', $id));
$heading = array('Nummer', 'Beschreibung', 'SN/Charge/MHD', 'Projekt', 'Menge', 'Retoure', 'Lieferschein', 'Datum', 'Aktion','');
$width = array('5%', '30%', '5%', '5%', '5%', '5%', '5%', '5%', '5%','1%');
$findcols = array('lp.nummer', 'lp.bezeichnung', 'sn.seriennummer', 'p.abkuerzung', 'if(isnull(sn.menge), lp.menge,sn.menge)', 'rma.menge', 'l.belegnr', 'l.datum', 'lp.id','lp.id');
$searchsql = array('lp.nummer', 'lp.bezeichnung', 'sn.seriennummer','lp.beschreibung', 'p.abkuerzung', 'trim(if(isnull(sn.menge), lp.menge,sn.menge))+0', 'lp.geliefert', 'l.belegnr', "DATE_FORMAT(l.datum,'%d.%m.%Y')", 'lp.id','lp.id');
$alignright = array(5,6);
//$defaultorder = 6; //Optional wenn andere Reihenfolge gewuenscht
//$defaultorderdesc=1;
$mCol = "CONCAT('
Menge: "
."app->erp->FormatMenge('ra.quantity')."
FROM returnorder_quantity AS ra
WHERE ra.delivery_note_id = lp.id
AND ra.serialnumber = IFNULL(sn.seriennummer,'')
AND ra.bestbefore = IFNULL(bbf.mhd,'')
AND ra.batch = IFNULL(batch.charge,'')
LIMIT 1
),''
),'\" type=\"text\" size=\"5\" name=\"pos',lp.id,'\" data-dnpid=\"',lp.id,'\" data-bestbefore=\"',IFNULL(bbf.mhd,''),'\" data-batch=\"',IFNULL(batch.charge,''),'\" data-serialnumber=\"',IFNULL(sn.seriennummer,''),'\" />"
."
')";
$menu = '';
// ";
$menucol = 8;
$kommissionskonsignationslager = true;
if(!$this->app->erp->ModulVorhanden('kommissionskonsignationslager')) {
$kommissionskonsignationslager = false;
}
if($kommissionskonsignationslager
&& !$this->app->DB->Select("SELECT id FROM kommissionskonsignationslager_positionen LIMIT 1")) {
$kommissionskonsignationslager = false;
}
// SQL statement
$rmamengecol = "
if(
ifnull(rma2.menge,0)+IFNULL(rma4.menge,0) > 0,
concat(".$this->app->erp->FormatMenge('ifnull(rma2.menge,0)+ifnull(rma4.menge,0)')."),
if(
ifnull(rma.menge,0)+ifnull(rma3.menge,0) > 0,
concat(".$this->app->erp->FormatMenge('ifnull(rma.menge,0)+ifnull(rma3.menge,0)').",
if(isnull(sn.pos),'',' (Retoure gesamt)')
)
,''
)
),
";
$rmajoin = "LEFT JOIN (
SELECT sum(menge) as menge,pos
FROM rma_artikel WHERE seriennummer = ''
GROUP BY pos
) rma ON lp.id = rma.pos ";
$rmajoin2 = "LEFT JOIN (
SELECT sum(menge) as menge,pos,seriennummer
FROM rma_artikel WHERE seriennummer != ''
GROUP BY pos,seriennummer
) rma2 ON lp.id = rma2.pos AND sn.seriennummer = rma2.seriennummer";
$rmajoin3 = "
LEFT JOIN (
SELECT SUM(menge) AS menge, lieferschein_position_id
FROM `retoure_position`
WHERE `lieferschein_position_id` > 0
GROUP BY lieferschein_position_id
) AS rma3 ON lp.id = rma3.lieferschein_position_id
AND (sn.seriennummer IS NULL OR sn.seriennummer = '')
";
$rmajoin4 = "
LEFT JOIN (
SELECT count(bcr.id) as menge, bcr.wert as seriennummer,
rop.lieferschein_position_id
FROM `beleg_chargesnmhd` AS bcr
INNER JOIN retoure_position AS rop ON bcr.pos = rop.id
AND bcr.doctype = 'retoure' AND bcr.type='sn'
GROUP BY rop.lieferschein_position_id, bcr.wert
) AS rma4 ON lp.id = rma4.lieferschein_position_id
AND sn.seriennummer = rma4.seriennummer
";
if($kommissionskonsignationslager) {
$kommname = $this->app->erp->Firmendaten('kommissionskonsignationslager');
if($kommname === '') {
$kommname = 'Kommissions-/Konsignationslager';
}
$sql = "SELECT SQL_CALC_FOUND_ROWS lp.id,lp.nummer,
concat(lp.bezeichnung, if(isnull(komm.menge),'',' ($kommname)')) as beschreibung,
if(
sn.seriennummer IS NULL,
IF(bbf.mhd IS NULL,
IF(batch.charge IS NULL,
'',
CONCAT('Charge: ',batch.charge)
),
CONCAT('MHD: ', bbf.mhd)
),
CONCAT('SN: ', sn.seriennummer)
),
p.abkuerzung as projekt,
trim(if(isnull(sn.menge),
if(isnull(bbf.menge),
IF(isnull(batch.menge),lp.menge,batch.menge)
, bbf.menge)
,sn.menge))+0,
$rmamengecol
l.belegnr as lieferschein,
DATE_FORMAT(l.datum,'%d.%m.%Y') as datum, if(isnull(sn.seriennummer),lp.id,
$mCol,
concat(lp.id,'-',sn.seriennummer)),
FROM lieferschein_position lp
$rmajoin
LEFT JOIN lieferschein l ON lp.lieferschein=l.id
LEFT JOIN projekt p ON l.projekt=p.id
LEFT JOIN artikel a ON a.id=lp.artikel
LEFT JOIN (
(
SELECT '1' as menge, wert as seriennummer, pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='sn'
) UNION ALL
(
SELECT '1' as menge,seriennummer, lieferscheinpos as pos
FROM seriennummern
)
) sn ON sn.pos = lp.id
LEFT JOIN (
SELECT SUM(menge) AS menge,
IF(IFNULL(wert2,'') = '',wert ,CONCAT(wert,'-',IFNULL(wert2,''))) AS mhd,
pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='mhd'
GROUP BY wert,pos,wert2
) AS bbf ON bbf.pos = lp.id AND a.mindesthaltbarkeitsdatum = 1 AND sn.pos IS NULL
AND (a.seriennummern = 'keine' OR a.seriennummern = '')
LEFT JOIN (
SELECT SUM(menge) AS menge, wert AS charge, pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='charge'
GROUP BY wert,pos
) AS batch ON batch.pos = lp.id AND a.mindesthaltbarkeitsdatum = 0 AND a.chargenverwaltung > 0
AND (a.seriennummern = 'keine' OR a.seriennummern = '') AND sn.pos IS NULL
LEFT JOIN
(SELECT lieferschein_position, sum(menge) as menge FROM kommissionskonsignationslager_positionen WHERE menge > ausgelagert GROUP BY lieferschein_position) komm ON lp.id = komm.lieferschein_position
$rmajoin2
$rmajoin3
$rmajoin4
";
}
else{
$sql = "SELECT SQL_CALC_FOUND_ROWS lp.id,lp.nummer, lp.bezeichnung as beschreibung,
if(
sn.seriennummer IS NULL,
IF(bbf.mhd IS NULL,
IF(batch.charge IS NULL,
'',
CONCAT('Charge: ',batch.charge)
),
CONCAT('MHD: ', bbf.mhd)
),
CONCAT('SN: ', sn.seriennummer)
),
p.abkuerzung as projekt,
trim(if(isnull(sn.menge),
if(isnull(bbf.menge),
IF(isnull(batch.menge),lp.menge,batch.menge)
, bbf.menge)
,sn.menge))+0,
$rmamengecol
l.belegnr as lieferschein,
DATE_FORMAT(l.datum,'%d.%m.%Y') as datum,
$mCol,
if(isnull(sn.seriennummer),lp.id,concat(lp.id,'-',sn.seriennummer))
FROM lieferschein_position lp
$rmajoin
LEFT JOIN lieferschein l ON lp.lieferschein=l.id
LEFT JOIN projekt p ON l.projekt=p.id
LEFT JOIN artikel a ON a.id=lp.artikel
LEFT JOIN
(
(
SELECT '1' as menge, wert as seriennummer, pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='sn'
)
UNION ALL
(
SELECT '1' as menge,seriennummer, lieferscheinpos as pos
FROM seriennummern
)
) sn ON sn.pos = lp.id
LEFT JOIN (
SELECT SUM(menge) AS menge,
IF(IFNULL(wert2,'') = '',wert ,CONCAT(wert,'-',IFNULL(wert2,''))) AS mhd,
pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='mhd'
GROUP BY wert,pos,wert2
) AS bbf ON bbf.pos = lp.id AND a.mindesthaltbarkeitsdatum = 1 AND sn.pos IS NULL
AND (a.seriennummern = 'keine' OR a.seriennummern = '')
LEFT JOIN (
SELECT SUM(menge) AS menge, wert AS charge, pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='charge'
GROUP BY wert,pos
) AS batch ON batch.pos = lp.id AND a.mindesthaltbarkeitsdatum = 0 AND a.chargenverwaltung > 0
AND (a.seriennummern = 'keine' OR a.seriennummern = '') AND sn.pos IS NULL
$rmajoin2
$rmajoin3
$rmajoin4
";
}
$where = " (l.adresse='$adresse' AND (l.status='versendet' OR l.status='freigegeben') AND a.lagerartikel=1) " .
$this->app->erp->ProjektRechte();
// gesamt anzahl
/*$count = "SELECT COUNT(lp.id)
FROM lieferschein_position lp
LEFT JOIN lieferschein l ON lp.lieferschein=l.id
LEFT JOIN projekt p ON l.projekt=p.id
LEFT JOIN artikel a ON a.id=lp.artikel
WHERE ($where)";*/
$count = '';
$moreinfo = false;
break;
case 'wareneingang_kunde':
$allowed['wareneingang'] = array('distriinhalt');
// headings
$id = $this->app->Secure->GetGET('id');
$adresse = $this->app->DB->Select("SELECT adresse FROM paketannahme WHERE id='$id' LIMIT 1");
$heading = array('Nummer', 'Beschreibung', 'SN/Charge/MHD', 'Projekt', 'Menge', 'Retoure', 'Lieferschein', 'Datum', 'Aktion');
$width = array('5%', '30%', '5%', '5%', '5%', '5%', '5%', '5%', '5%');
$findcols = array('lp.nummer', 'lp.bezeichnung', 'sn.seriennummer', 'p.abkuerzung', 'if(isnull(sn.menge), lp.menge,sn.menge)', 'rma.menge', 'l.belegnr', 'l.datum', 'lp.id');
$searchsql = array('lp.nummer', 'lp.bezeichnung', 'sn.seriennummer','lp.beschreibung', 'p.abkuerzung', 'trim(if(isnull(sn.menge), lp.menge,sn.menge))+0', 'lp.geliefert', 'l.belegnr', "DATE_FORMAT(l.datum,'%d.%m.%Y')", 'lp.id');
$alignright = array(5,6);
//$defaultorder = 6; //Optional wenn andere Reihenfolge gewuenscht
//$defaultorderdesc=1;
$menu = "
";
// ";
$menucol = 4;
$kommissionskonsignationslager = true;
if(!$this->app->erp->ModulVorhanden('kommissionskonsignationslager'))
{
$kommissionskonsignationslager = false;
}
if($kommissionskonsignationslager && !$this->app->DB->Select("SELECT id FROM kommissionskonsignationslager_positionen LIMIT 1"))
{
$kommissionskonsignationslager = false;
}
// SQL statement
$rmamengecol = "
if(ifnull(rma2.menge,0) > 0,
concat(".$this->app->erp->FormatMenge('ifnull(rma2.menge,0)')."),
if(ifnull(rma.menge,0) > 0,concat(".$this->app->erp->FormatMenge('ifnull(rma.menge,0)').",if(isnull(sn.pos),'',' (Retoure gesamt)')),'')
),
";
$rmajoin = "LEFT JOIN (SELECT sum(menge) as menge,pos FROM rma_artikel WHERE seriennummer = '' GROUP BY pos) rma ON lp.id = rma.pos ";
$rmajoin2 = "LEFT JOIN (SELECT sum(menge) as menge,pos,seriennummer FROM rma_artikel WHERE seriennummer != '' GROUP BY pos,seriennummer) rma2 ON lp.id = rma2.pos AND sn.seriennummer = rma2.seriennummer";
if($kommissionskonsignationslager)
{
$kommname = $this->app->erp->Firmendaten('kommissionskonsignationslager');
if($kommname === '')
{
$kommname = 'Kommissions-/Konsignationslager';
}
$sql = "SELECT SQL_CALC_FOUND_ROWS lp.id,lp.nummer,
concat(lp.bezeichnung, if(isnull(komm.menge),'',' ($kommname)')) as beschreibung,
if(
sn.seriennummer IS NULL,
IF(bbf.mhd IS NULL,
IF(batch.charge IS NULL,
'',
CONCAT('Charge: ',batch.charge)
),
CONCAT('MHD: ', bbf.mhd)
),
CONCAT('SN: ', sn.seriennummer)
),
p.abkuerzung as projekt,
trim(if(isnull(sn.menge),
if(isnull(bbf.menge),
IF(isnull(batch.menge),lp.menge,batch.menge)
, bbf.menge)
,sn.menge))+0,
$rmamengecol
l.belegnr as lieferschein, DATE_FORMAT(l.datum,'%d.%m.%Y') as datum,
if(
sn.seriennummer IS NULL,
IF(bbf.mhd IS NULL,
IF(batch.charge IS NULL,
lp.id,
CONCAT(lp.id,'-',batch.charge)
),
CONCAT(lp.id,'-', bbf.mhd)
),
CONCAT(lp.id,'-', sn.seriennummer)
)
FROM lieferschein_position lp
$rmajoin
LEFT JOIN lieferschein l ON lp.lieferschein=l.id
LEFT JOIN projekt p ON l.projekt=p.id
LEFT JOIN artikel a ON a.id=lp.artikel
LEFT JOIN (
(SELECT '1' as menge, wert as seriennummer, pos FROM `beleg_chargesnmhd` WHERE doctype = 'lieferschein' AND type='sn' ) UNION ALL
(SELECT '1' as menge,seriennummer, lieferscheinpos as pos FROM seriennummern)
) sn ON sn.pos = lp.id
LEFT JOIN (
SELECT SUM(menge) AS menge,
IF(IFNULL(wert2,'') = '',wert ,CONCAT(wert,'-',IFNULL(wert2,''))) AS mhd,
pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='mhd'
GROUP BY wert,pos,wert2
) AS bbf ON bbf.pos = lp.id AND a.mindesthaltbarkeitsdatum = 1 AND sn.pos IS NULL
AND (a.seriennummern = 'keine' OR a.seriennummern = '')
LEFT JOIN (
SELECT SUM(menge) AS menge, wert AS charge, pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='charge'
GROUP BY wert,pos
) AS batch ON batch.pos = lp.id AND a.mindesthaltbarkeitsdatum = 0 AND a.chargenverwaltung > 0
AND (a.seriennummern = 'keine' OR a.seriennummern = '') AND sn.pos IS NULL
LEFT JOIN
(SELECT lieferschein_position, sum(menge) as menge FROM kommissionskonsignationslager_positionen WHERE menge > ausgelagert GROUP BY lieferschein_position) komm ON lp.id = komm.lieferschein_position
$rmajoin2
";
}else{
$sql = "SELECT SQL_CALC_FOUND_ROWS lp.id,lp.nummer, lp.bezeichnung as beschreibung,
if(
sn.seriennummer IS NULL,
IF(bbf.mhd IS NULL,
IF(batch.charge IS NULL,
'',
CONCAT('Charge: ',batch.charge)
),
CONCAT('MHD: ', bbf.mhd)
),
CONCAT('SN: ', sn.seriennummer)
),
p.abkuerzung as projekt,
trim(if(isnull(sn.menge),
if(isnull(bbf.menge),
IF(isnull(batch.menge),lp.menge,batch.menge)
, bbf.menge)
,sn.menge))+0,
$rmamengecol
l.belegnr as lieferschein, DATE_FORMAT(l.datum,'%d.%m.%Y') as datum,
if(
sn.seriennummer IS NULL,
IF(bbf.mhd IS NULL,
IF(batch.charge IS NULL,
lp.id,
CONCAT(lp.id,'-',batch.charge)
),
CONCAT(lp.id,'-', bbf.mhd)
),
CONCAT(lp.id,'-', sn.seriennummer)
)
FROM lieferschein_position lp
$rmajoin
LEFT JOIN lieferschein l ON lp.lieferschein=l.id
LEFT JOIN projekt p ON l.projekt=p.id
LEFT JOIN artikel a ON a.id=lp.artikel
LEFT JOIN (
(SELECT '1' as menge, wert as seriennummer, pos FROM `beleg_chargesnmhd` WHERE doctype = 'lieferschein' AND type='sn' ) UNION ALL
(SELECT '1' as menge,seriennummer, lieferscheinpos as pos FROM seriennummern)
) sn ON sn.pos = lp.id
LEFT JOIN (
SELECT SUM(menge) AS menge,
IF(IFNULL(wert2,'') = '',wert ,CONCAT(wert,'-',IFNULL(wert2,''))) AS mhd,
pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='mhd'
GROUP BY wert,pos,wert2
) AS bbf ON bbf.pos = lp.id AND a.mindesthaltbarkeitsdatum = 1 AND sn.pos IS NULL
AND (a.seriennummern = 'keine' OR a.seriennummern = '')
LEFT JOIN (
SELECT SUM(menge) AS menge, wert AS charge, pos
FROM `beleg_chargesnmhd`
WHERE doctype = 'lieferschein' AND type='charge'
GROUP BY wert,pos
) AS batch ON batch.pos = lp.id AND a.mindesthaltbarkeitsdatum = 0 AND a.chargenverwaltung > 0
AND (a.seriennummern = 'keine' OR a.seriennummern = '') AND sn.pos IS NULL
$rmajoin2
";
}
$where = " (l.adresse='$adresse' AND (l.status='versendet' OR l.status='freigegeben') AND a.lagerartikel=1) " . $this->app->erp->ProjektRechte();
// gesamt anzahl
$count = "SELECT COUNT(lp.id) FROM lieferschein_position lp
LEFT JOIN lieferschein l ON lp.lieferschein=l.id LEFT JOIN projekt p ON l.projekt=p.id LEFT JOIN artikel a ON a.id=lp.artikel WHERE ($where)";
$moreinfo = false;
break;
case 'paketdistribution_list':
$allowed['paketdistribution_list'] = array('list');
/* $heading = array('bearbeiter', 'zeit', 'paketannahme', 'adresse', 'artikel', 'menge', 'vpe', 'etiketten', 'bemerkung', 'bestellung_position', 'logdatei', 'retoure_position', 'Menü');
$width = array('10%'); // Fill out manually later
$findcols = array('bearbeiter', 'zeit', 'paketannahme', 'adresse', 'artikel', 'menge', 'vpe', 'etiketten', 'bemerkung', 'bestellung_position', 'logdatei', 'retoure_position');
$searchsql = array('bearbeiter', 'zeit', 'paketannahme', 'adresse', 'artikel', 'menge', 'vpe', 'etiketten', 'bemerkung', 'bestellung_position', 'logdatei', 'retoure_position');
*/
$heading = array('Lieferant-Art.-Nr.','Art.-Nummer','Bestellung', 'Beschreibung', 'Menge','Bemerkung','');
$width = array('5%', '5%', '5%', '30%', '5%','5%','45%');
$findcols = array('p.nummer','p.bestellbezug','p.name', 'p.menge','p.bemerkung');
$searchsql = array('p.nummer','p.name','p.bemerkung');
$defaultorder = 1;
$defaultorderdesc = 0;
/*$sql = "SELECT p.nummer,p.lieferantnummer, p.nummer, p.bestellbezug, p.name, p.menge, p.bemerkung from
(SELECT bestellung.belegnr as bestellbezug, bestellung_position.bestellnummer as lieferantnummer ,artikel.nummer as nummer, artikel.name_de as name, ".$this->app->erp->FormatMenge("sum(paketdistribution.menge)")." as menge, paketdistribution.bemerkung
FROM paketdistribution
INNER JOIN artikel ON artikel.id = paketdistribution.artikel
LEFT JOIN bestellung_position ON bestellung_position = bestellung_position.id
LEFT JOIN bestellung on bestellung_position.bestellung = bestellung.id
where paketannahme = $id GROUP BY bestellung_position, paketdistribution.artikel) as p";*/
$sql = "SELECT p.nummer,p.lieferantnummer, p.nummer, p.bestellbezug, p.name, p.menge, p.bemerkung from
(SELECT bestellung.belegnr as bestellbezug, bestellung_position.bestellnummer as lieferantnummer ,artikel.nummer as nummer, artikel.name_de as name, ".$this->app->erp->FormatMenge("paketdistribution.menge")." as menge, paketdistribution.bemerkung
FROM paketdistribution
INNER JOIN artikel ON artikel.id = paketdistribution.artikel
LEFT JOIN bestellung_position ON bestellung_position = bestellung_position.id
LEFT JOIN bestellung on bestellung_position.bestellung = bestellung.id
where paketannahme = $id) as p";
$where = "";
$count = "SELECT count(DISTINCT artikel) FROM paketdistribution p WHERE paketannahme = $id";
// $groupby = "";
break;
case "paketannahme_list":
/* $allowed['paketdistribution_list'] = array('list');
$heading = array('bearbeiter', 'zeit', 'paketannahme', 'adresse', 'artikel', 'menge', 'vpe', 'etiketten', 'bemerkung', 'bestellung_position', 'logdatei', 'retoure_position', 'Menü');
$width = array('10%'); // Fill out manually later
$findcols = array('bearbeiter', 'zeit', 'paketannahme', 'adresse', 'artikel', 'menge', 'vpe', 'etiketten', 'bemerkung', 'bestellung_position', 'logdatei', 'retoure_position');
$searchsql = array('bearbeiter', 'zeit', 'paketannahme', 'adresse', 'artikel', 'menge', 'vpe', 'etiketten', 'bemerkung', 'bestellung_position', 'logdatei', 'retoure_position');
$defaultorder = 1;
$defaultorderdesc = 0;
$menu = "
Wareneingang mit Zwischenlager ist nicht aktiviert
');
}
break;
case 'standardlager':
$lager = $this->app->DB->Select(
sprintf(
'SELECT lager_platz FROM artikel WHERE id = %d',
$artikel
)
);
$lager = empty($lager)?null: $this->app->DB->Select(
sprintf(
'SELECT id FROM lager_platz WHERE id = %d AND geloescht <> 1',
$lager
)
);
if(empty($lager)) {
$error++;
$this->app->Tpl->Add('MESSAGE1','
Der Artikel hat kein Standardlager
');
}
break;
default:
$frmLager = $lager;
$lager = $this->app->DB->Select(
sprintf(
"SELECT id
FROM lager_platz
WHERE kurzbezeichnung <> '' AND kurzbezeichnung = '%s' AND geloescht <> 1",
$frmLager
)
);
if(empty($lager) && is_numeric($frmLager)) {
$lager = $this->app->DB->Select(
sprintf(
"SELECT id
FROM lager_platz
WHERE kurzbezeichnung <> '' AND id = %d AND geloescht <> 1",
$frmLager
)
);
}
if(empty($lager)) {
$error++;
$this->app->Tpl->Add(
'MESSAGE1',
'
Lagerplatz '.$frmLager.' wurde nicht gefunden
'
);
}
break;
}
}
}
//befehl ab ins lager, produktion oder mitarbeiter
if($submit!='' && $error==0) {
if (!empty($_FILES['wareneingangartikelbild']['tmp_name'])) {
$stichwort = $this->app->Secure->GetPOST('bildtyp');
$bildTitel = '';
$bildBeschreibung = '';
$chargeNummer = $this->app->Secure->GetPOST('charge');
$bildName = $_FILES['wareneingangartikelbild']['name'];
$this->app->erp->RunHook('wareneingang_chargenbildspeichern', 5, $nummer, $chargeNummer, $bildName, $bildTitel, $bildBeschreibung);
$fileid = $this->app->erp->CreateDatei($bildName, $bildTitel, $bildBeschreibung, '', $_FILES['wareneingangartikelbild']['tmp_name'], $this->app->User->GetName());
// stichwoerter hinzufuegen
if(!empty($this->app->Secure->GetPOST('charge'))){
$this->app->erp->AddDateiStichwort($fileid, $stichwort, 'Artikel', $artikel,false, $this->app->Secure->GetPOST('charge'),'Charge');
}else if(!empty($this->app->Secure->GetPOST('mhd'))){
$dstype = 'MHD';
try {
$mhddate = date_create_from_format('d.m.Y', $this->app->Secure->GetPOST('mhd'))->getTimestamp();
}catch (Exception $ex){
$mhddate='';
}
if($mhddate===''){
$dstype='';
}
$this->app->erp->AddDateiStichwort($fileid, $stichwort, 'Artikel', $artikel,false, $mhddate,$dstype);
}else{
$this->app->erp->AddDateiStichwort($fileid, $stichwort, 'Artikel', $artikel);
}
}
switch($typ) {
case 'lager':
if($anzahlauswahl==='fix') {
$druckanzahl = $anzahl_fix;
}
else {
$druckanzahl = $anzahl_dyn;
}
$name_de = $this->app->DB->Select("SELECT name_de FROM artikel WHERE id='$artikel' LIMIT 1");
$name_de = base64_encode($name_de);
$this->app->erp->LagerArtikelZusammenfassen($artikel);
//$etiketten AUSWAHL etiketten ob gross oder klein
if($this->app->erp->Firmendaten('standardetikettendrucker')>0) {
if($druckanzahl>0) {
$data['charge']=$this->app->Secure->GetPOST("charge");
// falls BE für Auftrag
if(!empty($retoure)) {
$auftragid = $this->app->DB->Select(
"SELECT a.id FROM retoure_position bp
LEFT JOIN auftrag_position ap ON bp.auftrag_position_id=ap.id
LEFT JOIN auftrag a ON a.id=ap.auftrag WHERE bp.retoure='$retoure' LIMIT 1");
$data['retoure'] = $this->app->DB->Select("SELECT belegnr FROM bestellung WHERE id='$retoure' LIMIT 1");
}
else{
$auftragid = $this->app->DB->Select("SELECT a.id FROM bestellung_position bp LEFT JOIN auftrag_position ap ON bp.auftrag_position_id=ap.id
LEFT JOIN auftrag a ON a.id=ap.auftrag WHERE bp.bestellung='$bestellung' LIMIT 1");
$data['bestellung'] = $this->app->DB->Select("SELECT belegnr FROM bestellung WHERE id='$bestellung' LIMIT 1");
}
if($auftragid>0) {
$belegnummer = $this->app->DB->Select("SELECT belegnr FROM auftrag WHERE id='$auftragid' LIMIT 1");
$data['belegnummer']=$belegnummer;
$data['auftragsnummer']=$belegnummer;
$data['auftrag']=$belegnummer;
$adresse = $this->app->DB->Select("SELECT adresse FROM auftrag WHERE id='$auftragid' LIMIT 1");
if($adresse > 0) {
$adressearr = $this->app->DB->SelectRow("SELECT * FROM adresse WHERE id='$adresse' LIMIT 1");
foreach($adressearr as $key=>$value) {
$data['adresse_'.$key]=$value;
}
}
}
$data['etiketten_menge']=$druckanzahl;
$data['menge']=$anzahl_fix;
$data['charge']=$this->app->Secure->GetPOST('charge');
$data['mhd2']=$this->app->Secure->GetPOST('mhd');
if($lager>0){
$data['lager_platz_einlagern'] = $this->app->DB->Select("SELECT kurzbezeichnung FROM lager_platz WHERE id='" . $lager . "' LIMIT 1");
}
//$data['seriennummer']="";
$tmpdataseriennummern=$this->app->Secure->GetPOST('seriennummern');
if($etiketten=='') {
$etiketten='artikel_klein';
}
if(!empty($tmpdataseriennummern) && is_array($tmpdataseriennummern) && (!empty($tmpdataseriennummern)?count($tmpdataseriennummern):0)>0) {
if($etiketten!=='keineetiketten') {
foreach($tmpdataseriennummern as $srn) {
$data['seriennummer']=$srn;
$druckanzahl = 1;
$this->app->erp->EtikettenDrucker($etiketten,$druckanzahl,'artikel',$artikel,$data);
}
}
}
else {
if($etiketten!=='keineetiketten'){
$this->app->erp->EtikettenDrucker($etiketten, $druckanzahl, 'artikel', $artikel, $data);
}
}
$this->app->User->SetParameter('wareneingang_distrietiketten_etiketten',$etiketten);
}
}
$zid = 0;
if($chargenverwaltung=='2' || $chargenverwaltung=='1') {
$charge = $this->app->Secure->GetPOST('charge');
$chargemindest = $charge;
}
else {
$ch = 0;
}
$doctype = !empty($retoure)?'retoure':'';
$doctypeId = !empty($retoure)?$retoure:0;
if(empty($doctypeId)) {
$doctypeId = !empty($bestellung)?$bestellung:$id;
}
if($doctype === '') {
$doctype =!empty($bestellung)?'bestellung':'paketannahme';
}
// entweder ins zwischenlager
if(strtolower($lager)==='zwischenlager') {
if(!empty($retoure)) {
$this->app->DB->Insert("INSERT INTO zwischenlager (id,bearbeiter,projekt,artikel,menge,vpe,grund,lager_von,richtung,objekt,parameter,firma,paketannahme)
VALUES ('','" . $this->app->User->GetName() . "','$projekt','$artikel','$menge','$vpe','Wareneingang von Retoure $retoure_belegnr','Wareneingang','Eingang',
'Retoure','$retoure','" . $this->app->User->GetFirma() . "','$id')");
}
else{
$this->app->DB->Insert("INSERT INTO zwischenlager (id,bearbeiter,projekt,artikel,menge,vpe,grund,lager_von,richtung,objekt,parameter,firma,paketannahme)
VALUES ('','" . $this->app->User->GetName() . "','$projekt','$artikel','$menge','$vpe','Wareneingang von Bestellung $bestellung_belegnr','Wareneingang','Eingang',
'Bestellung','$bestellung','" . $this->app->User->GetFirma() . "','$id')");
}
$typ = 'zwischenlager';
$zid = $this->app->DB->GetInsertID();
$typ2 = 'zwischenlager';
$tmpid2 = $zid;
}
// oder direkt ins manuelle (lagerplatz + lager_bewegung)
else {
if(strtolower($lager)==='standardlager'){
$lager = $this->app->DB->Select("SELECT lager_platz FROM artikel WHERE id='" . $artikel . "' LIMIT 1");
}
if($lager<=0){
$lager = $this->app->DB->Select("SELECT id FROM lager_platz WHERE autolagersperre!=1 AND verbrauchslager!=1 AND geloescht!=1 LIMIT 1");
}
if($lager==='zwischenlager'){
$lagerplatz = 0;
}
else{
$lagerplatz = $lager;
}
/*
//$charge = $this->app->Secure->GetPOST("charge");
/*if(false && $chargenverwaltung=="1")
{
// wenn chargenverwaltung dann chargen id holen!!!! und mit bei lagerung und etikett speichern!
$this->app->DB->Insert("INSERT INTO chargenverwaltung (id,artikel,bestellung,menge,vpe,zeit,bearbeiter)
VALUES ('','$artikel','$bestellung','$menge','$vpe',NOW(),'".$this->app->User->GetName()."')");
// drucken (inkl. chargennummer)
$ch = $this->app->DB->GetInsertID();
$chargemindest = $ch;
} else*/
if(!empty($retoure)) {
$url = null;
$this->app->erp->RunHook(
'wareneingang_before_stock_in_return_order', 7, $id, $retoure, $retourepos, $artikel, $menge, $lager, $url
);
if(!empty($url)) {
$this->app->Location->execute($url);
}
$this->app->erp->LagerEinlagern(
$artikel, $menge, $lager, '', 'Wareneingang von Retoure '.$retoure_belegnr, '', $id,'retoure',$retoure
);
}
else {
if($cmd === 'manuell') {
$this->app->erp->LagerEinlagern($artikel, $menge, $lager, '', "Wareneingang Paket $id", '', $id);
}
else{
$this->app->erp->LagerEinlagern($artikel, $menge, $lager, '', "Wareneingang Paket $id, Bestellung $bestellung_belegnr", '', $id);
$this->app->erp->RunHook('wareneingang_bestellung', 5, $bparr, $artikel, $menge, $lager, $id);
}
$lagerplatz_name = $this->app->DB->Select("SELECT kurzbezeichnung FROM lager_platz WHERE lager_platz.id = $lager LIMIT 1");
$bemerkung = $lagerplatz_name;
}
$typ2 = 'lager_platz';
$tmpid2 = array('artikel'=>$artikel,'lager_platz'=>$lager,'menge'=>$menge);
}
$_adresse = $this->app->DB->Select("SELECT adresse FROM paketannahme WHERE id = '$id' LIMIT 1");
$this->app->erp->RunHook('wareneingang_lager_submit', 8, $_adresse, $artikel, $menge,$lagerplatz,$mhd,$chargemindest, $tmpcheck, $weiterleitung);
$this->app->erp->RunHook('wareneingang_after', 3, $id, $typ2, $tmpid2);
break;
case 'mitarbeiter':
// buchen als mitarbeiter inventar auf das projekt was angegeben ist
// wenn mitarbeiterartikel muss artikel als inventar dem mitarbeiter gebucht werden fuer projekt bla bla
$this->app->DB->Insert("INSERT INTO projekt_inventar (id,artikel,menge,projekt,mitarbeiter,bestellung,zeit,vpe)
VALUES('','$artikel','$menge','$projekt','$mitarbeiter','$bestellung',NOW(),'$vpe')");
$projekt_inventar_id = $this->app->DB->GetInsertID();
$this->app->erp->RunHook('wareneingang_after', 3, $id, $typ, $projekt_inventar_id);
break;
//$this->app->erp->RunHook('wareneingang_mitarbeiter_submit', 6, $mitarbeiter, $bestellung, $projekt, $artikel, $menge, $weiterleitung);
default:
echo 'ACHTUNG DAS DARF NICHT PASSIEREN!! XENTRAL ENTWICKLUNG HOLEN! FEHLER IM PROGRAMM?';
}
if($typ!=='rma' && $cmd !== 'manuell') {
// Distribution speichern!
$this->app->DB->Insert("INSERT INTO paketdistribution
(id,bearbeiter,zeit,paketannahme,adresse,artikel,menge,vpe,etiketten,bemerkung,bestellung_position)
VALUES ('','".$this->app->User->GetName()."',NOW(),'$id','$adresse','$artikel','$menge','$vpe','$etiketten','$bemerkung','$pos')");
$pdId = $this->app->DB->GetInsertID();
if(!empty($retourepos)) {
$this->app->DB->Update(
sprintf(
'UPDATE paketdistribution SET bestellung_position = 0, retoure_position = %d WHERE id = %d',
$retourepos, $pdId
)
);
}
// anzahl gelieferte erhoehen bestellung_position !!!
if(!empty($retourepos)) {
$geliefert = $this->app->DB->Select("SELECT ifnull(menge_eingang,0) FROM retoure_position WHERE id='$retourepos' LIMIT 1");
//$gesamt_erwartet = $this->app->DB->Select("SELECT menge FROM bestellung_position WHERE id='$pos' LIMIT 1");
$geliefert += $menge;
$this->app->DB->Update("UPDATE retoure_position SET menge_eingang='$geliefert' WHERE id='$retourepos' LIMIT 1");
$this->app->DB->Update(
sprintf(
"UPDATE retoure
SET fortschritt = 'eingegangen'
WHERE id = %d AND IFNULL(fortschritt,'') IN ('angekuenigt','angekuendigt','') ",
$retoure
)
);
}
else{
$geliefert = $this->app->DB->Select("SELECT ifnull(geliefert,0) FROM bestellung_position WHERE id='$pos' LIMIT 1");
//$gesamt_erwartet = $this->app->DB->Select("SELECT menge FROM bestellung_position WHERE id='$pos' LIMIT 1");
$geliefert += $menge;
$this->app->DB->Update("UPDATE bestellung_position SET geliefert='$geliefert' WHERE id='$pos' LIMIT 1");
}
} else if ($cmd == 'manuell') {
// Save the manually added entries to paketdistribution
$this->app->DB->Insert("INSERT INTO paketdistribution
(id,bearbeiter,zeit,paketannahme,adresse,artikel,menge,vpe,etiketten,bemerkung)
VALUES ('','".$this->app->User->GetName()."',NOW(),'$id','$adresse','$artikel','$menge','$vpe','$etiketten','$bemerkung')");
}
// alles passt weiter im abschluss
if($weiterleitung) {
$this->app->Location->execute($weiterleitung);
}
else {
if(!empty($backaction) && $backaction === 'paketannahme') {
$this->app->Location->execute('index.php?module=wareneingang&action='.$backaction);
}
if(!empty($retoure) && !empty($retourepos)) {
$all = $this->app->YUI->TableSearch('', 'paketannahme_retoure','ALL','','',basename(__FILE__),__CLASS__);
$sorts = $this->app->DB->SelectPairs(
sprintf(
"SELECT id,sort FROM retoure_position WHERE retoure = %d",
$retoure
)
);
$actSort = !empty($sorts[$retourepos])?$sorts[$retourepos]:0;
$positions = $this->app->DB->SelectArr(
$all['sql'].' WHERE '.$all['where']
. sprintf(' ORDER BY bp.menge - bp.menge_eingang <= 0,
bp.menge_eingang <> 0,
bp.id = %d,
bp.sort <= %d ', $retourepos, $actSort)
);
if(!$this->app->DB->Select(
sprintf(
"SELECT `id` FROM `retoure_position` WHERE `retoure` = %d AND `menge` > `menge_eingang`",
$retoure
)
)
) {
$positions = null;
}
if(!empty($positions)) {
foreach($positions as $position) {
$position['eingang'] = str_replace(',','.', $position['eingang']);
$position['offen'] = str_replace(',','.', $position['offen']);
if($position['offen'] > 0) {
$returnOrderId = (int)$this->app->DB->Select(
sprintf(
'SELECT `retoure` FROM `retoure_position` WHERE `id` = %d',
$position['id']
)
);
if(!empty($doctypeId) && (int)$doctypeId !== $returnOrderId) {
continue;
}
if($returnOrderId <= 0 || $this->app->User->GetParameter('wareneingang_from_type') === 'manual') {
$rop = null;
}
else{
$rop = $this->getNextReturnOrderPosition($returnOrderId);
}
if(!empty($rop) && $rop['id'] == $position['id']) {
$loc = $this->getNextReturnOrderLocation($returnOrderId, $id);
if(!empty($loc)) {
$this->app->Location->execute($loc);
}
}
if($this->app->User->GetParameter('wareneingang_from_type') === 'manual') {
$this->app->Location->execute(
'index.php?module=wareneingang&action=distriinhalt&cmd=fromreturnordermanual&id='.$id
);
}
$this->app->Location->execute(
'index.php?module=wareneingang&action=distrietiketten&id='
.$id.'&retourepos='
.$position['id'].'&menge='.$position['offen']
.'&seriennummer=&nmenge='.$position['offen']
);
}
}
}
$pos = $retourepos;
}
$receiptDocument = $this->app->DB->SelectRow(
sprintf(
'SELECT `id`, `status` FROM `receiptdocument` WHERE `return_order_id` = %d LIMIT 1', empty($returnOrderId)?$retoure:$returnOrderId
)
);
$receiptDocumentId = empty($receiptDocument)?0:(int)$receiptDocument['id'];
$returnOrderComplete = !empty($retoure) && !empty($retourepos) && $positions === null;
if(!empty($receiptDocumentId)
&& ($returnOrderComplete || in_array($receiptDocument['status'], ['fertiggestellt', 'abgeschlossen']))
) {
$url = '';
$this->app->erp->RunHook('receiptdocument_close', 2, $receiptDocumentId, $url);
if(!empty($url) && $url !== 'index.php') {
$this->app->Location->execute(
"index.php?module=wareneingang&action=distriabschluss&id=$id&pos=$pos&typ=$typ&rma=$rma"
.(!empty($doctype)?'&doctype='.$doctype:'').'&locateto='.urlencode($url)
);
}
}
$this->app->Location->execute(
"index.php?module=wareneingang&action=distriabschluss&id=$id&pos=$pos&typ=$typ&rma=$rma"
.(!empty($doctype)?'&doctype='.$doctype:'')
);
}
}
$this->app->Tpl->Set('AKTIV_TAB2','tabs-1');
$this->app->Tpl->Parse('PAGE','wareneingang_distrietiketten.tpl');
}
public function WareneingangPaketDistriAbschluss()
{
$id = $this->app->Secure->GetGET('id');
$doctype = $this->app->Secure->GetGET('doctype');
$pos = $this->app->Secure->GetGET('pos');
$locateTo = $this->app->Secure->GetGET('locateto');
$fromDoctype = '';
if($doctype === 'bestellung') {
$fromDoctype = '&from=bestellung';
}
elseif($doctype === 'retoure') {
$fromDoctype = '&from=retoure';
if($this->app->User->GetParameter('wareneingang_from') === 'retoure') {
$all = $this->app->YUI->TableSearch(
'TAB1', 'paketannahme_retoure', 'ALL', '', '', basename(__FILE__), __CLASS__
);
if(!$this->app->DB->Select($all['sql'].' WHERE '.$all['where']. ' LIMIT 1')) {
$this->app->User->SetParameter('wareneingang_from', '');
$retoure = $this->app->DB->Select(sprintf('SELECT `retoure` FROM `retoure_position` WHERE `id` = %d', $pos));
$userReturnOrder = $this->app->User->GetParameter('wareneingang_from_returnorder');
$module = $this->app->User->GetParameter('wareneingang_from_module');
$action = $this->app->User->GetParameter('wareneingang_from_action');
if($retoure == $userReturnOrder && !empty($module) && !empty($action)) {
$this->app->User->SetParameter('wareneingang_from_returnorder', '');
$this->app->User->SetParameter('wareneingang_from_module', '');
$this->app->User->SetParameter('wareneingang_from_action', '');
if($module !== 'retoure') {
$retoure = '';
}
if(!empty($locateTo)) {
if($this->app->Location->getLocationUrl($locateTo) !== 'index.php'){
$this->app->Location->execute($locateTo);
}
}
$this->app->Location->execute('index.php?module='.$module.'&action='.$action.'&id='.$retoure);
}
if(!empty($locateTo)) {
if($this->app->Location->getLocationUrl($locateTo) !== 'index.php') {
$this->app->Location->execute($locateTo);
}
}
$this->app->Location->execute('index.php?module=retoure&action=list');
}
}
}
if(empty($pos) && empty($doctype) && $this->app->erp->Firmendaten('wareneingang_gross')=='1'){
$this->app->DB->Update(
sprintf(
"UPDATE `paketannahme` SET `status` = 'abgeschlossen' WHERE `id` = %d LIMIT 1",
$id
)
);
$this->app->Location->execute('index.php?module=wareneingang&action=distribution');
}
if(!empty($locateTo)) {
if($this->app->Location->getLocationUrl($locateTo) !== 'index.php'){
$this->app->Location->execute($locateTo);
}
}
$this->app->Location->execute('index.php?module=wareneingang&action=distriinhalt&id='.$id.$fromDoctype);
}
public function WareneingangPaketZustand()
{
$this->WareneingangPaketMenu();
$id = $this->app->Secure->GetGET('id');
$submit = $this->app->Secure->GetPOST('submit');
if($submit!='')
{
$this->app->FormHandler->FormUpdateDatabase('paketannahme',$id);
$this->app->Location->execute('index.php?module=wareneingang&action=paketetikett&id='.$id);
}
//$client = new HttpClient("192.168.0.171");
$wareneingang_kamera_waage = $this->app->erp->Firmendaten('wareneingang_kamera_waage');//$this->app->DB->Select("SELECT wareneingang_kamera_waage FROM firmendaten LIMIT 1");
if($wareneingang_kamera_waage == '1')
{
$seriennummer = $this->app->DB->Select("SELECT seriennummer FROM adapterbox WHERE verwendenals='kamera' OR verwendenals='waage' LIMIT 1");
$pageContent = $this->app->erp->GetAdapterboxAPIWaage($seriennummer);
}
$gewicht = $pageContent;
//$gewicht = intval($gewicht)-2;
if($wareneingang_kamera_waage =='1'){
$this->app->Tpl->Set('GEWICHT', $gewicht);
}
else{
$this->app->Tpl->Set('GEWICHT','none');
}
if($wareneingang_kamera_waage == '1'){
//$datei = HttpClient::quickGet("http://192.168.0.53/snap.jpg");
$seriennummer = $this->app->DB->Select("SELECT seriennummer FROM adapterbox WHERE verwendenals='kamera' LIMIT 1");
$datei = $this->app->erp->GetAdapterboxAPIImage($seriennummer,'800','600');
$tmpname = tempnam($this->app->erp->GetTMP(),'wareneingang').'.jpg';
file_put_contents($tmpname, $datei);
$ersteller = $this->app->User->GetName();
$file = $this->app->erp->CreateDatei(date('Ymd')."_paketannahme_$id.jpg","Paketannahme $id",'','',$tmpname,$ersteller);
unlink($tmpname);
$this->app->Tpl->Set('FOTO',$file);
$this->app->erp->AddDateiStichwort($file,'Bild','Paketannahme',$id);
$this->app->Tpl->Set('LIVEFOTO','');
}
if($gewicht <= 0 && $wareneingang_kamera_waage==1){
$this->app->Tpl->Set('MELDUNG', '
Bitte legen Sie das Paket auf die Waage und schießen Sie nochmal ein Foto!