diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php
index 6b2d17f4..f9e14437 100644
--- a/www/lib/class.erpapi.php
+++ b/www/lib/class.erpapi.php
@@ -7018,12 +7018,28 @@ title: 'Abschicken',
$navarray['menu']['admin'][$menu]['sec'][] = array('Produktion','produktion','list');
- $navarray['menu']['admin'][++$menu]['first'] = array('Wareneingang','wareneingang','paketannahme');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Paket Annahme','wareneingang','paketannahme');
-
- if($this->Firmendaten("wareneingang_gross")=="1"){
- $navarray['menu']['admin'][$menu]['sec'][] = array('Paket Distribution', 'wareneingang', 'distribution');
+ $navarray['menu']['admin'][++$menu]['first'] = array('Lager','lager','list');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Wareneingang','wareneingang','list');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Lieferschein','lieferschein','list');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Lagerverwaltung','lager','list');
+ if($this->ModulVorhanden('lagermobil')) {
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Mobile Lagerverwaltung','lagermobil','list');
}
+ if($this->ModulVorhanden('multiorderpicking')) {
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Multiorder-Picking','multiorderpicking','list');
+ }
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Reservierungen','lager','reservierungen');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Inventur','inventur','list');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Versandzentrum','versanderzeugen','offene');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Produktionszentrum','produktionszentrum','list');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Kommissionieraufkleber','kommissionieraufkleber','list');
+
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Mindesthaltbarkeit','mhdwarning','list');
+
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Lagermindestmengen','lagermindestmengen','list');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Artikelkontingente','artikelkontingente','list');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Ein- und auslagern','lager','bucheneinlagern');
+ $navarray['menu']['admin'][$menu]['sec'][] = array('Zwischenlager','lager','buchenzwischenlager');
$navarray['menu']['admin'][++$menu]['first'] = array('Buchhaltung','rechnung','list');
$navarray['menu']['admin'][$menu]['sec'][] = array('Rechnungen','rechnung','list');
@@ -7085,28 +7101,6 @@ title: 'Abschicken',
$navarray['menu']['admin'][$menu]['sec'][] = array('Etikettendrucker','etikettendrucker','list');
- $navarray['menu']['admin'][++$menu]['first'] = array('Lager','lager','list');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Lieferschein','lieferschein','list');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Lagerverwaltung','lager','list');
- if($this->ModulVorhanden('lagermobil')) {
- $navarray['menu']['admin'][$menu]['sec'][] = array('Mobile Lagerverwaltung','lagermobil','list');
- }
- if($this->ModulVorhanden('multiorderpicking')) {
- $navarray['menu']['admin'][$menu]['sec'][] = array('Multiorder-Picking','multiorderpicking','list');
- }
- $navarray['menu']['admin'][$menu]['sec'][] = array('Reservierungen','lager','reservierungen');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Inventur','inventur','list');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Versandzentrum','versanderzeugen','offene');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Produktionszentrum','produktionszentrum','list');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Kommissionieraufkleber','kommissionieraufkleber','list');
-
- $navarray['menu']['admin'][$menu]['sec'][] = array('Mindesthaltbarkeit','mhdwarning','list');
-
- $navarray['menu']['admin'][$menu]['sec'][] = array('Lagermindestmengen','lagermindestmengen','list');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Artikelkontingente','artikelkontingente','list');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Ein- und auslagern','lager','bucheneinlagern');
- $navarray['menu']['admin'][$menu]['sec'][] = array('Zwischenlager','lager','buchenzwischenlager');
-
$navarray['menu']['admin'][++$menu]['first'] = array('System','rechnung','list');
$navarray['menu']['admin'][$menu]['sec'][] = array('Einstellungen','einstellungen','list');
$navarray['menu']['admin'][$menu]['sec'][] = array('Online-Shops / Marktplätze','onlineshops','list');
@@ -18981,14 +18975,14 @@ function SendPaypalFromAuftrag($auftrag, $test = false)
$dbformat = 1;
$id = $value;
if($id > 0){
- $abkuerzung = $this->app->DB->Select("SELECT bezeichnung FROM steuerregelngruppe WHERE id='$id' LIMIT 1");
+// Removed, table does not exist $abkuerzung = $this->app->DB->Select("SELECT bezeichnung FROM steuerregelngruppe WHERE id='$id' LIMIT 1");
}else{
$abkuerzung = '';
}
} else {
$dbformat = 0;
$value = $this->app->DB->real_escape_string($value);
- $id = $this->app->DB->Select("SELECT id FROM steuerregelngruppe WHERE bezeichnung = '$value' ORDER BY aktiv = 1 DESC LIMIT 1");
+// Removed, table does not exist $id = $this->app->DB->Select("SELECT id FROM steuerregelngruppe WHERE bezeichnung = '$value' ORDER BY aktiv = 1 DESC LIMIT 1");
if($id <=0) $id=0;
}
diff --git a/www/pages/content/wareneingangpaketdistribution_tab3_lager.tpl b/www/pages/content/wareneingang_lager.tpl
similarity index 97%
rename from www/pages/content/wareneingangpaketdistribution_tab3_lager.tpl
rename to www/pages/content/wareneingang_lager.tpl
index 0d995f5c..e2680720 100644
--- a/www/pages/content/wareneingangpaketdistribution_tab3_lager.tpl
+++ b/www/pages/content/wareneingang_lager.tpl
@@ -15,7 +15,7 @@
- Der Artikel ist für einen Mitarbeiter.
+Dies ist kein Lagerartikel.
[MESSAGE]
@@ -15,12 +15,12 @@
Artikel: | [NAME] |
-Lieferant: | [LIEFERANT] |
+
| |
Bemerkung: |
|
| |
-1. Schritt: | Artikel zu Mitarbeiter [MITARBEITER] bringen
+ | Anmerkung: | Artikel zu Mitarbeiter [MITARBEITER] bringen
[DISPLAY_WARENEINGANG_RMA_HOOK1]
|
| |
diff --git a/www/pages/content/wareneingangpaketannahme.tpl b/www/pages/content/wareneingang_paketannahme.tpl
similarity index 100%
rename from www/pages/content/wareneingangpaketannahme.tpl
rename to www/pages/content/wareneingang_paketannahme.tpl
diff --git a/www/pages/content/wareneingangpaketdistribution.tpl b/www/pages/content/wareneingang_paketinhalt.tpl
similarity index 51%
rename from www/pages/content/wareneingangpaketdistribution.tpl
rename to www/pages/content/wareneingang_paketinhalt.tpl
index 4ed9dbb2..4d1dc77c 100644
--- a/www/pages/content/wareneingangpaketdistribution.tpl
+++ b/www/pages/content/wareneingang_paketinhalt.tpl
@@ -15,34 +15,60 @@
[TAB1START]
[MESSAGE1]
-
-
-
-
[AFTERTAB1]
@@ -108,4 +134,4 @@
});
}
});
-
\ No newline at end of file
+
diff --git a/www/pages/wareneingang.php b/www/pages/wareneingang.php
index 9ae6bbe5..2684e813 100644
--- a/www/pages/wareneingang.php
+++ b/www/pages/wareneingang.php
@@ -1,3047 +1,3213 @@
-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('Bestellnummer', '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('Bestellnummer', '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),'',' Die ausgewählte Adresse hat noch keine Rolle Kunde oder Lieferant.
- Bitte vergeben Sie diese, dann sehen Sie Bestellungen oder versendete Waren.
'
- );
- }
-
- $this->app->erp->RunHook('wareneingang_distriinhalt', 1, $id);
- if($showcreateReturnOrder) {
- $this->app->Tpl->addButton(
- 'BUTTONS2',
- '✚ Retoure Anlegen',
- '',
- '',
- 'newreturnorder button-primary button',
- [
- 'id'=>'newreturnorder',
- 'data-id' => $id,
- ]
- );
- }
- if($this->app->User->GetParameter('wareneingang_action')==='distribution'){
- $this->app->erp->MenuEintrag(
- 'index.php?module=wareneingang&action=distribution',
- 'zurück zur Übersicht'
- );
- }
- if($isSupplier){
- $this->app->Tpl->Parse('PAGE', 'wareneingangpaketdistribution.tpl');
- }
- else {
- $this->app->Tpl->Parse('PAGE', 'wareneingangpaketdistribution2.tpl');
- }
- $returnordergeprueft = $this->app->Secure->GetPOST('returnordergeprueft');
- $abschliessen = $this->app->Secure->GetPOST('abschliessen');
- if($abschliessen!='' || $returnordergeprueft != '') {
- // paketannahme auf abgeschlossen setzten
-
- $returnOrderId = empty($returnordergeprueft)?null: $this->app->DB->Select(
- sprintf(
- 'SELECT return_order_id FROM receiptdocument WHERE parcel_receipt_id = %d',
- $id
- )
- );
- $this->app->DB->Update("UPDATE paketannahme SET status='abgeschlossen' WHERE id='$id' LIMIT 1");
-
-
- $this->app->erp->RunHook('wareneinang_paketannahme_abschliessen',1, $id);
- $this->app->Location->execute('index.php?module=wareneingang&action=paketannahme');
- }
-
- $manuellerfassen = $this->app->Secure->GetPOST('manuellerfassen');
- if($manuellerfassen!='') {
- $this->app->Location->execute('index.php?module=wareneingang&action=manuellerfassen&id='.$id);
- }
- }
-
- public function WareneingangMiniDetail()
- {
- $id = $this->app->Secure->GetGET('id');
- if($this->app->Secure->GetGET('cmd') === 'change') {
- $beipack_lieferschein = (int)$this->app->Secure->GetPOST('beipack_lieferschein');
- $beipack_rechnung = (int)$this->app->Secure->GetPOST('beipack_rechnung');
- $renr = $this->app->Secure->GetPOST('renr');
- $lsnr = $this->app->Secure->GetPOST('lsnr');
- $this->app->DB->Update("UPDATE paketannahme SET renr = '$renr',lsnr = '$lsnr',beipack_lieferschein = '$beipack_lieferschein', beipack_rechnung = '$beipack_rechnung' WHERE id = '$id' LIMIT 1");
- echo json_encode(array('status'=>1));
- $this->app->ExitXentral();
- }
- $table = new EasyTable($this->app);
- $table->Query("SELECT a.nummer, LEFT(a.name_de,30) as artikel, trim(lb.menge)+0 as menge FROM lager_bewegung lb
- LEFT JOIN artikel a ON lb.artikel=a.id
- WHERE lb.paketannahme='$id' ORDER by a.nummer");
- $this->app->Tpl->Set('MD5', md5(microtime(true)));
- $this->app->Tpl->Set('ID', $id);
- $arr = $this->app->DB->SelectRow("SELECT * FROM paketannahme WHERE id = '$id' LIMIT 1");
- if($arr) {
- if($arr['beipack_rechnung']) {
- $this->app->Tpl->Set('BEIPACK_RECHNUNG',' checked="checked" ');
- }
- if($arr['beipack_lieferschein']) {
- $this->app->Tpl->Set('BEIPACK_LIEFERSCHEIN',' checked="checked" ');
- }
- $this->app->Tpl->Set('RENR', $arr['renr']);
- $this->app->Tpl->Set('LSNR', $arr['lsnr']);
- }
- $table->DisplayNew('ARTIKEL','Menge','noAction');
- $this->app->Tpl->Output('wareneingang_minidetail.tpl');
- $this->app->ExitXentral();
- }
-
- public function WareneingangManuellErfassen()
- {
- $id = $this->app->Secure->GetGET('id');
- $paket = $this->app->Secure->GetGET('paket');
- $this->app->erp->MenuEintrag('index.php?module=wareneingang&action=distriinhalt&id='.$id,'Zurück zur Übersicht');
- $this->app->erp->MenuEintrag('index.php?module=wareneingang&action=manuellerfassen&id='.$id,'Artikel');
- $artikel = $this->app->Secure->GetPOST('artikel');
- if($artikel) {
- $artikelid = $this->app->DB->Select("SELECT a.id FROM artikel a LEFT JOIN projekt pr ON a.projekt = pr.id WHERE (a.nummer = '".$artikel."' OR a.herstellernummer = '".$artikel."' OR a.ean = '".$artikel."') AND a.geloescht = 0 ".$this->app->erp->ProjektRechte()." LIMIT 1");
- if($artikelid) {
- $this->app->Location->execute('index.php?module=wareneingang&action=distrietiketten&id='.(int)$id.'&pos='.$artikelid.'%&menge=1&cmd=manuell');
- }
- $this->app->Tpl->Add('MESSAGE','Achtung! Es wurden mehr geliefert als in der aktuellen Position bestellt worden sind!
-
");
- }
- }
- else{
- if(($menge > $menge_retoure) && $cmd !== 'manuell'){
- $this->app->Tpl->Add('MESSAGE', "Achtung! Es wurden mehr geliefert als in der aktuellen Position eingangen worden sind!
-
");
- }
- }
-
- $bilderfassen = $this->app->erp->RechteVorhanden('wareneingang','distrietikettenbilderfassen');
- $stichwoerter = $this->app->erp->getDateiTypen('artikel');
- foreach ($stichwoerter as $stichwort){
- $selected = '';
- $vorauswahl = $this->app->erp->Firmendaten('wareneingangbildtypvorauswahl');
- if ($stichwort['wert'] === $vorauswahl){
- $selected = 'selected';
- }
- $this->app->Tpl->Add('BILDTYPEN','Es wurde keine offene Bestellung mit diesem Artikel gefunden.
');
- }
- elseif((!empty($best)?count($best):0) > 1) {
- $this->app->Tpl->Add('INFO','Es wurden mehrere offene Bestellung mit diesem Artikel gefunden.
');
- }else{
- $vorlage = 'bestellung';
- $id = (int)$best[0]['bestellung'];
- $pos = $best[0]['pos'];
- $adresse = (int)$best[0]['adresse'];
- $projekt = (int)$best[0]['projekt'];
- $lagerplatz = (int)$best[0]['lager_platz'];
- $ismobile = $this->app->Secure->GetPOST('ismobile');
- $menge = round(
- $this->app->DB->Select(
- sprintf(
- 'SELECT menge - geliefert FROM bestellung_position WHERE id = %d LIMIT 1',
- $pos
- )
- ),
- 7
- );
- $this->app->User->SetParameter('wareneingang_from', 'wareneingang');
- if($this->app->erp->Firmendaten('wareneingang_gross')!='1') {
- $bearbeiter = $this->app->DB->real_escape_string($this->app->User->GetName());
-
- $sql = "INSERT INTO paketannahme (datum,adresse,vorlage,vorlageid,projekt,bearbeiter,status) VALUES
- (NOW(),$adresse,'$vorlage',$id,$projekt,'$bearbeiter','angenommen')";
- $this->app->DB->Insert($sql);
- $id = $this->app->DB->GetInsertID();
-
- $this->app->Location->execute('index.php?module=wareneingang&action=distrietiketten&backaction=paketannahme&id='.$id.'&pos='.$pos.'&menge='.$menge.($lagerplatz > 0?'&lager_platz='.$lagerplatz:'').(!empty($ismobile)?'&ismobile=1':''));
- }
- }
- }
- if($vorlage!='')
- {
- if($vorlage==='bestellung')
- {
- $vorlageid = $id;
- $adresse = $this->app->DB->Select("SELECT adresse FROM bestellung WHERE id='$id' LIMIT 1");
- $projekt = $this->app->DB->Select("SELECT projekt FROM bestellung WHERE id='$id' LIMIT 1");
- }
- else if ($vorlage==='adresse')
- {
- $adresse = $id;
- $vorlageid = $adresse;
- // standardprojekt von kunde
- $projekt = $this->app->DB->Select("SELECT projekt FROM adresse WHERE id='$id' AND geloescht=0 LIMIT 1");
- } else {
- $this->app->ExitXentral();
- }
-
- $bearbeiter = $this->app->DB->real_escape_string($this->app->User->GetName());
-
- $sql = "INSERT INTO paketannahme (datum,adresse,vorlage,vorlageid,projekt,bearbeiter,status) VALUES
- (NOW(),'$adresse','$vorlage','$vorlageid','$projekt','$bearbeiter','angenommen')";
- $this->app->DB->Insert($sql);
- $id = $this->app->DB->GetInsertID();
-
- if($this->app->erp->ModulVorhanden('schneller_wareneingang') &&
- $this->app->erp->RechteVorhanden('schneller_wareneingang','distriinhaltschnell')) {
- $lieferantennummer = $this->app->DB->Select("SELECT lieferantennummer FROM adresse WHERE id = '$adresse' LIMIT 1");
- if($lieferantennummer != '' && $lieferantennummer != '0')
- {
- $this->app->Location->execute('index.php?module=schneller_wareneingang&action=distriinhaltschnell&id='.$id);
- }
- }
- $this->app->Location->execute('index.php?module=wareneingang&action=distriinhalt&id='.$id);
- }
-
- $rechteproblem = array();
- if(!$this->app->erp->RechteVorhanden('wareneingang','distrietiketten')){
- $rechteproblem[] = 'distrietiketten';
- }
- if(!$this->app->erp->RechteVorhanden('wareneingang','distriabschluss')){
- $rechteproblem[] = 'distriabschluss';
- }
- if((!empty($rechteproblem)?count($rechteproblem):0) > 0){
- $this->app->Tpl->Set('INFO','Es werden im Menü nicht alle Icons angezeigt, da die nötigen Rechte nicht vorliegen für: Wareneingang > '.implode(', ', $rechteproblem).'
');
- }
-
-
- $this->app->YUI->TableSearch('SUCHE','paketannahme','show','','',basename(__FILE__), __CLASS__);
- $this->app->YUI->DatePicker('zeitvon');
- $this->app->YUI->DatePicker('zeitbis');
-
- $table = new EasyTable($this->app);
- $table->Query("SELECT DATE_FORMAT(datum,'%d.%m.%Y') as datum, name, belegnr as bestellung, id FROM bestellung WHERE status!='geliefert'");
- $table->DisplayNew('BESTELLUNGEN','