diff --git a/www/lib/class.erpapi.php b/www/lib/class.erpapi.php index a34c54a0..07f9cf5a 100644 --- a/www/lib/class.erpapi.php +++ b/www/lib/class.erpapi.php @@ -7107,9 +7107,10 @@ title: 'Abschicken', $navarray['menu']['admin'][$menu]['sec'][] = array('Produktion','produktion','list'); - $navarray['menu']['admin'][++$menu]['first'] = array('Lager','lager','list'); + $navarray['menu']['admin'][++$menu]['first'] = array('Logistik','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('Versand','versandpakete','list'); $navarray['menu']['admin'][$menu]['sec'][] = array('Lagerverwaltung','lager','list'); if($this->ModulVorhanden('lagermobil')) { $navarray['menu']['admin'][$menu]['sec'][] = array('Mobile Lagerverwaltung','lagermobil','list'); @@ -14595,435 +14596,6 @@ function TrackingNummerAnpassen($projekt,$tracking) return $tracking; } -/**@deprecated */ -function PaketmarkeGo($parsetarget,$sid="",$zusatz="") -{ - $id = $this->app->Secure->GetGET("id"); - // entscheiden ob Intraship oder Easylog anhang Projekt einstellung - // wenn sid==versand dann steht die id in der vesandtabelle - if($sid=="versand") - { - $lieferschein = $this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id' LIMIT 1"); - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$lieferschein' LIMIT 1"); - } else { - // ansonsten ist es die id vom lieferschein - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$id' LIMIT 1"); - } - - $this->Paketmarke($parsetarget,$sid,$zusatz,"Go"); -} - -/**@deprecated */ -function PaketmarkeUPSEmbedded($parsetarget,$sid="",$zusatz="") -{ - $id = $this->app->Secure->GetGET("id"); - // entscheiden ob Intraship oder Easylog anhang Projekt einstellung - // wenn sid==versand dann steht die id in der vesandtabelle - if($sid=="versand") - { - $lieferschein = $this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id' LIMIT 1"); - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$lieferschein' LIMIT 1"); - } else { - // ansonsten ist es die id vom lieferschein - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$id' LIMIT 1"); - } - - //TODO pruefe ob i oder easylog -// $intraship_enabled = $this->app->DB->Select("SELECT intraship_enabled FROM projekt WHERE id='$projekt' LIMIT 1"); -// if($intraship_enabled=="1") -// $this->Paketmarke($parsetarget,$sid,$zusatz,"Intraship"); -// else - $this->Paketmarke($parsetarget,$sid,$zusatz,"UPS"); - -} - -/**@deprecated */ -function PaketmarkeDPDEmbedded($parsetarget,$sid="",$zusatz="") -{ - if($sid=="") - $sid= $this->app->Secure->GetGET("sid"); - - if($zusatz=="express") - $this->app->Tpl->Set('ZUSATZ',"Express"); - - if($zusatz=="export") - $this->app->Tpl->Set('ZUSATZ',"Export"); - - $id = $this->app->Secure->GetGET("id"); - $drucken = $this->app->Secure->GetPOST("drucken"); - $anders = $this->app->Secure->GetPOST("anders"); - $land = $this->app->Secure->GetGET("land"); - $tracking_again = $this->app->Secure->GetGET("tracking_again"); - - - $versandmit= $this->app->Secure->GetPOST("versandmit"); - $trackingsubmit= $this->app->Secure->GetPOST("trackingsubmit"); - $versandmitbutton = $this->app->Secure->GetPOST("versandmitbutton"); - $tracking= $this->app->Secure->GetPOST("tracking"); - $trackingsubmitcancel= $this->app->Secure->GetPOST("trackingsubmitcancel"); - - $versand = "dpd"; - - // mit trackingnummer - if($trackingsubmit!="" || $trackingsubmitcancel!="") - { - - if($sid=="versand") - { - // falche tracingnummer bei DPD da wir in der Funktion PaketmarkeDPDEmbedded sind - //if(strlen($tracking) < 14 || strlen($tracking) > 30) - if((strlen($tracking) < 5 || strlen($tracking) > 30) && $trackingsubmitcancel=="") - { - header("Location: index.php?module=versanderzeugen&action=frankieren&id=$id&land=$land&tracking_again=1"); - exit; - } - else - { - $tmplieferschein = $this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id' LIMIT 1"); - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$tmplieferschein' LIMIT 1"); - $tracking = $this->TrackingNummerAnpassen($projekt,$tracking); - $this->app->DB->Update("UPDATE versand SET versandunternehmen='$versand', tracking='$tracking',versendet_am=NOW(), - versendet_am_zeitstempel=NOW(), abgeschlossen='1',logdatei=NOW() WHERE id='$id' LIMIT 1"); - - - $this->VersandAbschluss($id); - $this->RunHook('versanderzeugen_frankieren_hook1', 1, $id); - //versand mail an kunden - $this->Versandmail($id); - - $weiterespaket=$this->app->Secure->GetPOST("weiterespaket"); - $lieferscheinkopie=$this->app->Secure->GetPOST("lieferscheinkopie"); - - if($weiterespaket=="1") - { - if($lieferscheinkopie=="1") $lieferscheinkopie=0; else $lieferscheinkopie=1; - //$this->app->erp->LogFile("Lieferscheinkopie $lieferscheinkopie"); - $all = $this->app->DB->SelectArr("SELECT * FROM versand WHERE id='$id' LIMIT 1"); - $this->app->DB->Insert("INSERT INTO versand (id,adresse,rechnung,lieferschein,versandart,projekt,bearbeiter,versender,versandunternehmen,firma, - keinetrackingmail,gelesen,paketmarkegedruckt,papieregedruckt,weitererlieferschein) - VALUES ('','{$all[0]['adresse']}','{$all[0]['rechnung']}','{$all[0]['lieferschein']}','{$all[0]['versandart']}','{$all[0]['projekt']}', - '{$all[0]['bearbeiter']}','{$all[0]['versender']}','{$all[0]['versandunternehmen']}', - '{$all[0]['firma']}','{$all[0]['keinetrackingmail']}','{$all[0]['gelesen']}',0,$lieferscheinkopie,1)"); - - $newid = $this->app->DB->GetInsertID(); - header("Location: index.php?module=versanderzeugen&action=einzel&id=$newid"); - } else { - - $obj = $this->app->erp->LoadModul('versanderzeugen'); - if(!empty($obj) && method_exists($obj,'CheckKommissionierungByLieferschein')) - { - $obj->CheckKommissionierungByLieferschein($this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id'")); - } - - header("Location: index.php?module=versanderzeugen&action=offene"); - } - } - exit; - } else { - //direkt aus dem Lieferschein - if($id > 0) - { - - $adresse = $this->app->DB->Select("SELECT adresse FROM lieferschein WHERE id='$id' LIMIT 1"); - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$id' LIMIT 1"); - $kg = $this->app->Secure->GetPOST("kg1"); - if($kg=="") { - $kg = $this->VersandartMindestgewicht($id); - } - - $tracking = $this->TrackingNummerAnpassen($projekt,$tracking); - - $this->app->DB->Update("INSERT INTO versand (id,versandunternehmen, tracking, - versendet_am,abgeschlossen,lieferschein, - freigegeben,firma,adresse,projekt,gewicht,paketmarkegedruckt,anzahlpakete) - VALUES ('','$versand','$tracking',NOW(),1,'$id',1,'".$this->app->User->GetFirma()."','$adresse','$projekt','$kg','1','1') "); - $auftrag = $this->app->DB->Select("SELECT auftragid FROM lieferschein WHERE id = '$id'"); - $shop = $this->app->DB->Select("SELECT shop FROM auftrag WHERE id = '$auftrag' LIMIT 1"); - $auftragabgleich=$this->app->DB->Select("SELECT auftragabgleich FROM shopexport WHERE id='$shop' LIMIT 1"); - - if($shop > 0 && $auftragabgleich=="1") - { - //$this->LogFile("Tracking gescannt"); - $this->app->remote->RemoteUpdateAuftrag($shop,$auftrag); - } - - header("Location: index.php?module=lieferschein&action=paketmarke&id=$id"); - exit; - } - } - } - - if($versandmitbutton!="") - { - - if($sid=="versand") - { - - $this->app->DB->Update("UPDATE versand SET versandunternehmen='$versandmit', - versendet_am=NOW(),versendet_am_zeitstempel=NOW(),abgeschlossen='1' WHERE id='$id' LIMIT 1"); - - $this->VersandAbschluss($id); - //versand mail an kunden - $this->Versandmail($id); - - $obj = $this->app->erp->LoadModul('versanderzeugen'); - if(!empty($obj) && method_exists($obj,'CheckKommissionierungByLieferschein')) - { - $obj->CheckKommissionierungByLieferschein($this->app->DB->Select("SELECT lieferschein FROM versand WHERE id=$id")); - } - - header("Location: index.php?module=versanderzeugen&action=offene"); - exit; - } - } - - if($sid=="versand") - { - // wenn paketmarke bereits gedruckt nur tracking scannen - $paketmarkegedruckt = $this->app->DB->Select("SELECT paketmarkegedruckt FROM versand WHERE id='$id' LIMIT 1"); - - if($paketmarkegedruckt>=1) - $tracking_again=1; - } - - - if($anders!="") - { - //header("Location: index.php?module=paketmarke&action=tracking"); - $this->app->Tpl->Add('TAB1', - "

- -
-

-

Methode:



-
Versandart:  
-

-
-

- "); - - - } - else if($drucken!="" || $tracking_again=="1") - { - if($tracking_again!="1") - { - $nachnahme = $this->app->Secure->GetPOST("nachnahme"); - $betrag= $this->app->Secure->GetPOST("betrag"); - $versichert = $this->app->Secure->GetPOST("versichert"); - $extraversichert = $this->app->Secure->GetPOST("extraversichert"); - $name= $this->app->Secure->GetPOST("name"); - $name2= $this->app->Secure->GetPOST("name2"); - $name3= $this->app->Secure->GetPOST("name3"); - $land= $this->app->Secure->GetPOST("land"); - $plz= $this->app->Secure->GetPOST("plz"); - $ort= $this->app->Secure->GetPOST("ort"); - $strasse = $this->app->Secure->GetPOST("strasse"); - $hausnummer= $this->app->Secure->GetPOST("hausnummer"); - - $lieferschein = $this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id' LIMIT 1"); - $rechnungsnummer = $this->app->DB->Select("SELECT rechnung FROM versand WHERE id='$id' LIMIT 1"); - $rechnungsnummer = "RE ".$this->app->DB->Select("SELECT belegnr FROM rechnung WHERE id='$rechnungsnummer' LIMIT 1"); - $kg = $this->app->Secure->GetPOST("kg1"); - $anzahl = $this->app->Secure->GetPOST("anzahl"); - if($kg=="") $kg=$this->VersandartMindestgewicht($lieferschein); - // speichern - $this->app->DB->Update("UPDATE versand SET gewicht='$kg',anzahlpakete='$anzahl',paketmarkegedruckt=1 WHERE id='$id' LIMIT 1"); - - if($nachnahme=="" && $versichert=="" && $extraversichert=="") - { - if($zusatz=="express") - $this->DPDPaketmarkeStandard($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,1,101,"express"); - else if($zusatz=="export") - $this->DPDPaketmarkeStandard($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,1,101,"export"); - else - $this->DPDPaketmarkeStandard($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg); - - } else if ($nachnahme=="1" && $versichert=="" && $extraversichert=="") - { - $this->DPDPaketmarkeNachnahme($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$betrag,$rechnungsnummer); - } - } - //insert into versand oder update - - - //insert into versand oder update - if($anzahl > 1) - { - if($zusatz=="express" || $zusatz=="export") { - $produkt_zusatz_nr=101; - $produkt_zusatz_id=1; - } - else { - $produkt_zusatz_nr=""; - $produkt_zusatz_id=""; - } - for($anzahli=2;$anzahli<=$anzahl; $anzahli++) - { - - $kg = $this->app->Secure->GetPOST("kg".$anzahli); - if($kg <=0) $kg = 2; - $this->DPDPaketmarkeStandard($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$produkt_zusatz_id,$produkt_zusatz_nr,$zusatz); //TODO 2kg - $this->app->DB->Insert("INSERT INTO versandpakete (id,versand,gewicht,nr,versender) VALUES ('','$id','$kg','$anzahli','".$this->app->User->GetName()."')"); - } - } - - if($tracking_again=="1") - { - $error_message_tracking = "
Fehlerhafte Trackingnummer!
"; - } - - if($sid=="versand") - { - $paketmarkedrucken = "";//""; - } - else $paketmarkedrucken=""; - - //header("Location: index.php?module=paketmarke&action=tracking"); - $this->app->Tpl->Add('TAB1', - "
$error_message_tracking
- -
-

-

Tracking-Nummer Scannen:



-
Tracking-Nummer:   -

-
- - - -
 Weitere Paketmarke für diese Lieferung erstellen.
 Zusätzlichen Lieferschein drucken.
-
-
-
-
- $paketmarkedrucken - -
-
-
-

- "); - - } else { - - if($sid=="rechnung") - $rechnung = $id; - else $rechnung =""; - - if($sid=="versand") - { - $tid = $this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id' LIMIT 1"); - $rechnung = $this->app->DB->Select("SELECT rechnung FROM versand WHERE id='$id' LIMIT 1"); - $sid = "lieferschein"; - } else { - $tid = $id; - } - - - if($sid=="rechnung" || $sid=="lieferschein" || $sid=="adresse") - { - $name = $this->app->DB->Select("SELECT name FROM $sid WHERE id='$tid' LIMIT 1"); - $name2 = $this->app->DB->Select("SELECT adresszusatz FROM $sid WHERE id='$tid' LIMIT 1"); - if($name2=="") - { - $name2 = $this->app->DB->Select("SELECT abteilung FROM $sid WHERE id='$tid' LIMIT 1"); - $abt=1; - } - $name3 = $this->app->DB->Select("SELECT ansprechpartner FROM $sid WHERE id='$tid' LIMIT 1"); - if($name3=="" && $abt!=1) - $name3 = $this->app->DB->Select("SELECT abteilung FROM $sid WHERE id='$tid' LIMIT 1"); - - //unterabteilung versuchen einzublenden - if($name2=="") { - $name2 = trim($this->app->DB->Select("SELECT unterabteilung FROM $sid WHERE id='$tid' LIMIT 1")); - } else if ($name3=="") { - $name3 = trim($this->app->DB->Select("SELECT unterabteilung FROM $sid WHERE id='$tid' LIMIT 1")); - } - - - - $ort = $this->app->DB->Select("SELECT ort FROM $sid WHERE id='$tid' LIMIT 1"); - $plz = $this->app->DB->Select("SELECT plz FROM $sid WHERE id='$tid' LIMIT 1"); - $land = $this->app->DB->Select("SELECT land FROM $sid WHERE id='$tid' LIMIT 1"); - $strasse = $this->app->DB->Select("SELECT strasse FROM $sid WHERE id='$tid' LIMIT 1"); - $hausnummer = $this->ExtractStreetnumber($strasse); - - $strasse = str_replace($hausnummer,"",$strasse); - $strasse = str_replace('.',"",$strasse); - - if($strasse=="") - { - $strasse = $hausnummer; - $hausnummer = ""; - } - - } - - // wenn rechnung im spiel entweder durch versand oder direkt rechnung - if($rechnung >0) - { - - $zahlungsweise = $this->app->DB->Select("SELECT zahlungsweise FROM rechnung WHERE id='$rechnung' LIMIT 1"); - $soll = $this->app->DB->Select("SELECT soll FROM rechnung WHERE id='$rechnung' LIMIT 1"); - $this->app->Tpl->Set('BETRAG',$soll); - - if($zahlungsweise=="nachnahme") - $this->app->Tpl->Set('NACHNAHME',"checked"); - - if($soll >= 500 && $soll <= 2500) - $this->app->Tpl->Set('VERSICHERT',"checked"); - - if($soll > 2500) - $this->app->Tpl->Set('EXTRAVERSICHERT',"checked"); - - } - $this->app->Tpl->Set('NAME',$name); - $this->app->Tpl->Set('NAME2',$name2); - $this->app->Tpl->Set('NAME3',$name3); - $this->app->Tpl->Set('ORT',$ort); - $this->app->Tpl->Set('PLZ',$plz); - $this->app->Tpl->Set('STRASSE',$strasse); - $this->app->Tpl->Set('HAUSNUMMER',$hausnummer); - $this->app->Tpl->Set('LAND',$land); - - $abholdatum_user = $this->app->User->GetParameter("paketmarke_abholdatum"); - $abholdatum_user = date('Y-m-d', strtotime($abholdatum_user)); - - $check_date = $this->app->DB->Select("SELECT date_format(now(),'%Y-%m-%d')"); - if($abholdatum_user >= $check_date) - $this->app->Tpl->Set('ABHOLDATUM',date('d.m.Y', strtotime($abholdatum_user))); - else - $this->app->Tpl->Set('ABHOLDATUM',date('d.m.Y', strtotime($check_date))); - -// $this->app->Tpl->Set('ABHOLDATUM',$this->app->DB->Select("SELECT date_format(now(),'%d.%m.%Y')")); - - - $anzahl = $this->app->Secure->GetGET("anzahl"); - - if($anzahl <= 0) $anzahl=1; - - $this->app->Tpl->Set('ANZAHL',$anzahl); - - $standardkg=$this->VersandartMindestgewicht($lieferschein); - $this->PaketmarkeGewichtForm($anzahl, $standardkg, $this->VersandartMindestgewicht()); - /* - if($anzahl==1) - { - $i=1; - $this->app->Tpl->Add('GEWICHT','Gewicht Paket: in kg'); - } - else { - for($i=1;$i<=$anzahl;$i++) - $this->app->Tpl->Add('GEWICHT','Gewicht Paket '.$i.': in kg'); - }*/ - - - if($tracking_again!="1") - $this->app->Tpl->Parse($parsetarget,"paketmarke_dpd.tpl"); - } -} - //@refactor versanddiestleister Modul function PaketmarkeGewichtForm($anzahl, $standardkg, $mindestgewicht = 0) { @@ -15063,60 +14635,6 @@ function PaketmarkeGewichtForm($anzahl, $standardkg, $mindestgewicht = 0) } } -/**@deprecated */ -function PaketmarkeDHLEmbedded($parsetarget,$sid="",$zusatz="") -{ - $id = $this->app->Secure->GetGET("id"); - // entscheiden ob Intraship oder Easylog anhang Projekt einstellung - // wenn sid==versand dann steht die id in der vesandtabelle - if($sid=="versand") - { - $lieferschein = $this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id' LIMIT 1"); - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$lieferschein' LIMIT 1"); - } else { - // ansonsten ist es die id vom lieferschein - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$id' LIMIT 1"); - } - - //TODO pruefe ob i oder easylog - $intraship_enabled = $this->app->DB->Select("SELECT intraship_enabled FROM projekt WHERE id='$projekt' LIMIT 1"); - if($intraship_enabled=="1") - $this->Paketmarke($parsetarget,$sid,$zusatz,"Intraship"); - else - $this->Paketmarke($parsetarget,$sid,$zusatz,"DHL"); - -} -//@refactor versanddiestleister Modul -function VersandartMindestgewicht($id=0) -{ - $gewicht = $this->LieferscheinNettoGewicht($id); - $versandart =""; $projekt=0; $intraship_weightinkg=0; - $gewicht /= $this->GewichtzuKgFaktor(); - -if($id > 0) -{ - $versandart = $this->app->DB->Select("SELECT versandart FROM lieferschein WHERE id='$id' LIMIT 1"); - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$id' LIMIT 1"); - $intraship_weightinkg = $this->app->DB->Select("SELECT intraship_weightinkg FROM projekt WHERE id='$projekt' LIMIT 1"); - $versandart = strtolower($versandart); - - $modul = $this->app->DB->SelectArr("SELECT id, modul FROM `versandarten` WHERE aktiv = 1 AND ausprojekt = 0 AND modul <> '' AND type = '".$this->app->DB->real_escape_string($versandart)."' AND geloescht = 0 AND (projekt = 0 OR projekt = '$projekt') ORDER by projekt = '$projekt' DESC LIMIT 1"); - if($modul && @is_file(dirname(__FILE__).'/versandarten/'.$modul[0]['modul'].'.php')) - { - $obj = $this->LoadVersandModul($modul[0]['modul'], $modul[0]['id']); - if($obj){ - if(method_exists($obj, 'VersandartMindestgewicht')) - $mindestgewicht = $obj->VersandartMindestgewicht(); - return $mindestgewicht > $gewicht ? $mindestgewicht : $gewicht; - } - } -} - - if(($versandart=="dhl" || $versandart=="versandunternehmen") && $intraship_weightinkg > 0 && $gewicht <=0) return $intraship_weightinkg; - else if ($gewicht > 0) return $gewicht; - else return 2; -} - //@refactor ApplicationCore function LoadVersandModul(string $modul, int $id): Versanddienstleister { @@ -15125,1019 +14643,6 @@ function LoadVersandModul(string $modul, int $id): Versanddienstleister return $versandarten->loadModule($modul, $id); } -//@refactor versanddiestleister Modul -function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL") -{ - if($sid=="") - $sid= $this->app->Secure->GetGET("sid"); - - if($zusatz=="express") - $this->app->Tpl->Set('ZUSATZ',"Express"); - - if($zusatz=="export") - $this->app->Tpl->Set('ZUSATZ',"Export"); - - $id = $this->app->Secure->GetGET("id"); - $drucken = $this->app->Secure->GetPOST("drucken"); - $anders = $this->app->Secure->GetPOST("anders"); - $land = $this->app->Secure->GetGET("land"); - $tracking_again = $this->app->Secure->GetGET("tracking_again"); - - $tablesid=$sid; - if($drucken && !$tracking_again) { - $this->app->User->SetParameter('versand_lasttracking', ''); - $this->app->User->SetParameter('versand_lasttracking_versand', ''); - $this->app->User->SetParameter('versand_lasttracking_lieferschein', ''); - } - - $versandmit= $this->app->Secure->GetPOST("versandmit"); - $trackingsubmit= $this->app->Secure->GetPOST("trackingsubmit"); - $versandmitbutton = $this->app->Secure->GetPOST("versandmitbutton"); - $tracking= trim($this->app->Secure->GetPOST("tracking")); - $trackingBefore = $tracking; - $trackingLink = $this->app->Secure->GetPOST("tracking_link"); - $trackingsubmitcancel= $this->app->Secure->GetPOST("trackingsubmitcancel"); - $retourenlabel = $this->app->Secure->GetPOST("retourenlabel"); - if($typ=="DHL" || $typ=="dhl") - $versand = "dhl"; - else if($typ=="Intraship") - $versand = "intraship"; - else $versand = $typ; - - //pruefe ob dpd im namen vorkommt - $tracking = str_replace(' ','',$tracking); - $tracking = str_replace('%','',$tracking); - - if($sid == "versand") - { - $this->app->Tpl->Set("TRACKINGMANUELL",'  '); - $projekt = $this->app->DB->Select("SELECT projekt FROM versand WHERE id='$id' LIMIT 1"); - }elseif($sid == "retoure") - { - $projekt = $this->app->DB->Select("SELECT projekt FROM retoure WHERE id='$id' LIMIT 1"); - }else{ - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$id' LIMIT 1"); - } - $intraship_weightinkg = $this->app->DB->Select("SELECT intraship_weightinkg FROM projekt WHERE id='$projekt' LIMIT 1"); - - - if($trackingsubmit!="" || $trackingsubmitcancel!="") - { - //TrackingReplace - $versandartenmodul = $this->app->DB->SelectArr("SELECT id, modul,bezeichnung, einstellungen_json FROM versandarten WHERE aktiv = 1 AND ausprojekt = 0 AND type = '".$this->app->DB->real_escape_string($typ)."' AND modul != '' AND (projekt = 0 OR projekt = '$projekt') ORDER BY projekt DESC LIMIT 1"); - - if($versandartenmodul && @is_file(dirname(__FILE__).'/versandarten/'.$versandartenmodul[0]['modul'].'.php')) - { - $obj = $this->LoadVersandModul($versandartenmodul[0]['modul'], $versandartenmodul[0]['id']); - if(!empty($obj) && method_exists($obj, 'TrackingReplace')) - { - $tracking = $obj->TrackingReplace($tracking); - } - } - - if($sid=="versand") - { - // falche tracingnummer bei DHL da wir in der Funktion PaketmarkeDHLEmbedded sind - if((strlen($tracking) < 12 || strlen($tracking) > 21) && $trackingsubmitcancel=="" && ($typ=="DHL" || $typ=="Intraship")) - { - header("Location: index.php?module=versanderzeugen&action=frankieren&id=$id&land=$land&tracking_again=1"); - exit; - } - else - { - /* $versandartenmodul = $this->app->DB->SelectArr("SELECT id, modul,bezeichnung FROM versandarten WHERE aktiv = 1 AND ausprojekt = 0 AND type = '".$this->app->DB->real_escape_string($typ)."' AND modul != '' AND (projekt = 0 OR projekt = '$projekt') ORDER BY projekt DESC LIMIT 1"); - if($versandartenmodul && @is_file(dirname(__FILE__).'/versandarten/'.$versandartenmodul[0]['modul'].'.php')) - { - $obj = $this->LoadVersandModul($versandartenmodul[0]['modul'], $versandartenmodul[0]['id']); - if(!empty($obj) && method_exists($obj, 'TrackingReplace')) - { - $tracking = $obj->TrackingReplace($tracking); - } - } -*/ - - $trackingUser = !empty($this->app->User) && method_exists($this->app->User,'GetParameter')? - $this->app->User->GetParameter('versand_lasttracking'):''; - - if(!empty($trackingUser) && in_array($trackingUser,[$trackingBefore,$tracking])) { - $this->app->User->SetParameter('versand_lasttracking',''); - $this->app->User->SetParameter('versand_lasttracking_link',''); - $this->app->User->SetParameter('versand_lasttracking_versand', ''); - $this->app->User->SetParameter('versand_lasttracking_lieferschein', ''); - } - - $this->app->DB->Update("UPDATE versand SET versandunternehmen='$versand', tracking='$tracking', - versendet_am=NOW(),versendet_am_zeitstempel=NOW(), abgeschlossen='1',logdatei=NOW() WHERE id='$id' LIMIT 1"); - if($lieferschein = $this->app->DB->Select("SELECT lieferschein FROM versand WHERE id = '$id' LIMIT 1")) { - $this->app->erp->LieferscheinProtokoll($lieferschein,'Verarbeitung im Versandzentrum'); - } - $rechnung = $this->app->DB->Select("SELECT rechnung FROM versand WHERE id = '$id' LIMIT 1"); - if($lieferschein && ($auftrag = $this->app->DB->Select("SELECT auftragid FROM lieferschein WHERE id = '$lieferschein'"))) { - $this->app->erp->AuftragProtokoll($auftrag,'Verarbeitung im Versandzentrum'); - - if(empty($rechnung)) { - $rechnung = $this->app->DB->Select( - sprintf( - "SELECT id FROM rechnung WHERE auftragid = %d AND status <> 'storniert' AND belegnr <> '' LIMIT 1", - $auftrag - ) - ); - if($rechnung) { - $this->app->DB->Update( - sprintf( - 'UPDATE versand SET rechnung = %d WHERE id = %d AND rechnung = 0', - $rechnung, $id - ) - ); - } - } - } - - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id = '$lieferschein' LIMIT 1"); - if($lieferschein) { - - $this->PDFArchivieren('lieferschein', $lieferschein, true); - } - $proformaPrinted = false; - $druckennachtracking = $this->app->erp->Projektdaten($projekt,'druckennachtracking'); - if($druckennachtracking - && !($proformarechnung = $this->app->DB->Select( - sprintf( - 'SELECT id FROM proformarechnung WHERE lieferschein = %d LIMIT 1', - $lieferschein - ) - ) - ) - ) { - /** @var Versanderzeugen $versandObj */ - $versandObj = $this->LoadModul('versanderzeugen'); - if($versandObj !== null && method_exists($versandObj, 'checkPrintCreateProformaInvoice')) { - $druckercode = $this->app->DB->Select("SELECT druckerlogistikstufe2 FROM projekt WHERE id='$projekt' LIMIT 1"); - - if($druckercode <=0) { - $druckercode = $this->app->erp->Firmendaten('standardversanddrucker'); // standard = 3 // 2 buchhaltung // 1 empfang - } - $userversanddrucker = $this->app->DB->Select("SELECT standardversanddrucker FROM user WHERE id='".$this->app->User->GetID()."'"); - if($userversanddrucker>0) { - $druckercode = $userversanddrucker; - } - $deliveryArr = $this->app->DB->SelectRow( - sprintf('SELECT land FROM lieferschein WHERE id = %d', $lieferschein) - ); - $country = $deliveryArr['land']; - $versandObj->checkPrintCreateProformaInvoice($lieferschein,$country,$projekt,$druckercode,true); - $proformaPrinted = $druckercode > 0; - } - } - if($rechnung) { - $this->PDFArchivieren('rechnung', $rechnung, true); - } - elseif($auftrag && $druckennachtracking - && $this->app->DB->Select( - sprintf( - "SELECT id FROM auftrag WHERE id = %d AND art <> 'lieferung'", - $auftrag - ) - ) - ) { - $rechnung = $this->WeiterfuehrenAuftragZuRechnung($auftrag); - $this->BelegFreigabe('rechnung', $rechnung); - $this->app->DB->Update( - sprintf( - 'UPDATE versand SET rechnung = %d WHERE id = %d LIMIT 1', - $rechnung, $id - ) - ); - $this->app->DB->Update( - sprintf( - "UPDATE rechnung SET schreibschutz = 1, status = 'versendet' WHERE id = %d", - $rechnung - ) - ); - $this->PDFArchivieren('rechnung', $rechnung, true); - } - - if($rechnung > 0 && $druckennachtracking - && $this->app->DB->Select("SELECT count(id) FROM versand WHERE lieferschein = '$lieferschein'") <= 1) { - $druckercode = $this->app->DB->Select("SELECT druckerlogistikstufe2 FROM projekt WHERE id='$projekt' LIMIT 1"); - - if($druckercode <=0) - $druckercode = $this->app->erp->Firmendaten("standardversanddrucker"); // standard = 3 // 2 buchhaltung // 1 empfang - - $userversanddrucker = $this->app->DB->Select("SELECT standardversanddrucker FROM user WHERE id='".$this->app->User->GetID()."'"); - if($userversanddrucker>0) - $druckercode = $userversanddrucker; - - $this->app->erp->BriefpapierHintergrundDisable($druckercode); - - $addressId = $this->app->DB->Select("SELECT `adresse` FROM `rechnung` WHERE `id` = '{$rechnung}' LIMIT 1"); - $printInvoice = $this->app->DB->Select("SELECT `rechnung_papier` FROM `adresse` WHERE `id` = '{$addressId}' LIMIT 1"); - $amountPrintedInvoices = $this->app->DB->Select("SELECT `rechnung_anzahlpapier` FROM `adresse` WHERE `id` = '{$addressId}' LIMIT 1"); - if($printInvoice === '1' && $amountPrintedInvoices > 0){ - if(class_exists('RechnungPDFCustom')) - { - $Brief = new RechnungPDFCustom($this->app,$projekt); - }else{ - $Brief = new RechnungPDF($this->app,$projekt); - } - $Brief->GetRechnung($rechnung); - $tmpfile = $Brief->displayTMP(); - - for($i = 1; $i <= $amountPrintedInvoices; $i++) { - $this->app->printer->Drucken($druckercode,$tmpfile); - } - } else { - $autodruckrechnungmenge = $this->app->erp->Projektdaten($projekt,"autodruckrechnungmenge"); - $autodruckrechnung= $this->app->erp->Projektdaten($projekt,"autodruckrechnung"); - - if($autodruckrechnungmenge < 0)$autodruckrechnungmenge = 1; - - if($autodruckrechnung > 0) - { - if(class_exists('RechnungPDFCustom')) - { - $Brief = new RechnungPDFCustom($this->app,$projekt); - }else{ - $Brief = new RechnungPDF($this->app,$projekt); - } - $Brief->GetRechnung($rechnung); - $tmpfile = $Brief->displayTMP(); - - for($i = 1; $i <= $autodruckrechnungmenge; $i++) { - $this->app->printer->Drucken($druckercode,$tmpfile); - } - } - } - - - // Print additional invoices for export - $exportdruckrechnung = $this->app->erp->Projektdaten($projekt,"exportdruckrechnung"); - if($exportdruckrechnung) - { - $exportland = $this->app->DB->Select("SELECT land FROM rechnung WHERE id = '$rechnung' LIMIT 1"); - $exportdruckrechnung = $this->app->erp->Export($exportland); - if($exportdruckrechnung) - { - $mengedruck = $this->app->erp->Projektdaten($projekt,"exportdruckrechnungmenge"); - for($mengedruck;$mengedruck > 0;$mengedruck--) - { - $this->app->printer->Drucken($druckercode,$tmpfile); - } - } - } - - unlink($tmpfile); - if($this->app->erp->Projektdaten($projekt,"automailrechnung")=="1") - { - // aber nur das erste mal also wenn es einen eintrag in der versand tabelle gibt - $rechnungbereitsversendet = $this->app->DB->Select("SELECT versendet FROM rechnung WHERE id = '$rechnung' LIMIT 1"); - if($rechnungbereitsversendet!="1") - { - $this->app->erp->Rechnungsmail($rechnung); - } - } - $this->BriefpapierHintergrundEnable(); - } - - if($druckennachtracking && $lieferschein && $this->Export($land) - && $this->Projektdaten($projekt, 'proformainvoice_amount') && $proformaRechnungId = $this->app->DB->Select( - sprintf( - "SELECT id FROM proformarechnung WHERE lieferschein = %d AND status <> 'storniert' LIMIT 1", - $lieferschein - )) - ) { - /** @var Versanderzeugen $objProforma */ - $objVersand = $this->LoadModul('versanderzeugen'); - if($objVersand && method_exists($objVersand,'checkPrintCreateProformaInvoice')){ - if(empty($druckercode)) { - $druckercode = $this->app->DB->Select("SELECT druckerlogistikstufe2 FROM projekt WHERE id='$projekt' LIMIT 1"); - - if($druckercode <= 0) { - $druckercode = $this->app->erp->Firmendaten('standardversanddrucker'); // standard = 3 // 2 buchhaltung // 1 empfang - } - $userversanddrucker = $this->app->DB->Select("SELECT standardversanddrucker FROM user WHERE id='" . $this->app->User->GetID() . "'"); - if($userversanddrucker > 0) { - $druckercode = $userversanddrucker; - } - } - $objVersand->checkPrintCreateProformaInvoice($lieferschein, $land, $projekt, $druckercode, empty($proformaPrinted)); - } - } - - if(!$this->app->erp->Firmendaten('versandmail_zwischenspeichern') || !$this->app->DB->Select("SELECT id FROM prozessstarter WHERE parameter = 'versandmailsundrueckmeldung' AND aktiv = 1")) - { - $this->VersandAbschluss($id); - $this->RunHook('versanderzeugen_frankieren_hook1', 1, $id); - //versand mail an kunden - $this->Versandmail($id); - }else{ - $this->app->DB->Update("UPDATE versand SET cronjob = 1 WHERE id = '$id' LIMIT 1"); - } - $weiterespaket=$this->app->Secure->GetPOST("weiterespaket"); - $lieferscheinkopie=$this->app->Secure->GetPOST("lieferscheinkopie"); - if($weiterespaket=="1") - { - if($lieferscheinkopie=="1") $lieferscheinkopie=0; else $lieferscheinkopie=1; - //$this->app->erp->LogFile("Lieferscheinkopie $lieferscheinkopie"); - $all = $this->app->DB->SelectArr("SELECT * FROM versand WHERE id='$id' LIMIT 1"); - $this->app->DB->Insert("INSERT INTO versand (id,adresse,rechnung,lieferschein,versandart,projekt,bearbeiter,versender,versandunternehmen,firma, - keinetrackingmail,gelesen,paketmarkegedruckt,papieregedruckt,weitererlieferschein) - VALUES ('','{$all[0]['adresse']}','{$all[0]['rechnung']}','{$all[0]['lieferschein']}','{$all[0]['versandart']}','{$all[0]['projekt']}', - '{$all[0]['bearbeiter']}','{$all[0]['versender']}','{$all[0]['versandunternehmen']}', - '{$all[0]['firma']}','{$all[0]['keinetrackingmail']}','{$all[0]['gelesen']}',0,$lieferscheinkopie,1)"); - - $newid = $this->app->DB->GetInsertID(); - - $obj = $this->app->erp->LoadModul('versanderzeugen'); - if(!empty($obj) && method_exists($obj,'CheckKommissionierungByLieferschein')) - { - $obj->CheckKommissionierungByLieferschein($all[0]['lieferschein']); - } - - header("Location: index.php?module=versanderzeugen&action=einzel&weiterespaket=1&id=$newid"); - } else { - $this->RunHook('paketmarke_abschluss', 1, $lieferschein); - - $obj = $this->app->erp->LoadModul('versanderzeugen'); - if(!empty($obj) && method_exists($obj,'CheckKommissionierungByLieferschein')) - { - $obj->CheckKommissionierungByLieferschein($lieferschein); - } - $url = 'index.php?module=versanderzeugen&action=offene'; - $this->RunHook('paketmarke_abschluss_url', 2, $lieferschein, $url); - header('Location: '.$url); - } - } - exit; - } elseif($sid == 'retoure') { - if($id > 0) - { - $adresse = $this->app->DB->Select("SELECT adresse FROM retoure WHERE id='$id' LIMIT 1"); - $projekt = $this->app->DB->Select("SELECT projekt FROM retoure WHERE id='$id' LIMIT 1"); - $kg = $this->app->Secure->GetPOST("kg1"); - if($kg=="") { - $kg = $this->VersandartMindestgewicht($id); - } - - $this->app->DB->Insert("INSERT INTO versand (id,versandunternehmen, tracking, - versendet_am,abgeschlossen,retoure, - freigegeben,firma,adresse,projekt,gewicht,paketmarkegedruckt,anzahlpakete) - VALUES ('','$versand','$tracking',NOW(),1,'$id',1,'".$this->app->User->GetFirma()."','$adresse','$projekt','$kg','1','1') "); - - $versandid = $this->app->DB->GetInsertID(); - if($this->app->DB->Select("SELECT automailversandbestaetigung FROM projekt WHERE id = '$projekt' LIMIT 1"))$this->Versandmail($versandid); - $this->RunHook('versanderzeugen_frankieren_hook1', 1, $versandid); - $lieferschein = $this->app->DB->Select("SELECT lieferscheinid FROM retoure WHERE id = '$id' LIMIT 1"); - $auftrag = $this->app->DB->Select("SELECT auftragid FROM lieferschein WHERE id = '$lieferschein'"); - $shop = $this->app->DB->Select("SELECT shop FROM auftrag WHERE id = '$auftrag' LIMIT 1"); - $auftragabgleich=$this->app->DB->Select("SELECT auftragabgleich FROM shopexport WHERE id='$shop' LIMIT 1"); - $this->app->erp->RetoureProtokoll($id,'Verarbeitung im Versandzentrum'); - if($auftrag)$this->app->erp->AuftragProtokoll($auftrag,'Verarbeitung im Versandzentrum'); - if($shop > 0 && $auftragabgleich=="1") - { - //$this->LogFile("Tracking gescannt"); - $this->app->remote->RemoteUpdateAuftrag($shop,$auftrag); - } - header("Location: index.php?module=retoure&action=paketmarke&id=$id"); - exit; - } - } else { - //direkt aus dem Lieferschein - if($id > 0) - { - $adresse = $this->app->DB->Select("SELECT adresse FROM lieferschein WHERE id='$id' LIMIT 1"); - $projekt = $this->app->DB->Select("SELECT projekt FROM lieferschein WHERE id='$id' LIMIT 1"); - $kg = $this->app->Secure->GetPOST("kg1"); - if($kg=="") { - $kg = $this->VersandartMindestgewicht($id); - } - $trackingUser = !empty($this->app->User) && method_exists($this->app->User,'GetParameter')? - $this->app->User->GetParameter('versand_lasttracking'):''; - - if(!empty($trackingUser) && in_array($trackingUser,[$trackingBefore,$tracking])) { - $this->app->User->SetParameter('versand_lasttracking',''); - $this->app->User->SetParameter('versand_lasttracking_link',''); - $this->app->User->SetParameter('versand_lasttracking_versand', ''); - $this->app->User->SetParameter('versand_lasttracking_lieferschein', ''); - } - - $this->app->DB->Insert("INSERT INTO versand (id,versandunternehmen, tracking, tracking_link, - versendet_am,abgeschlossen,lieferschein, - freigegeben,firma,adresse,projekt,gewicht,paketmarkegedruckt,anzahlpakete) - VALUES ('','$versand','$tracking', '{$trackingLink}',NOW(),1,'$id',1,'".$this->app->User->GetFirma()."','$adresse','$projekt','$kg','1','1') "); - - $versandid = $this->app->DB->GetInsertID(); - if($this->app->DB->Select("SELECT automailversandbestaetigung FROM projekt WHERE id = '$projekt' LIMIT 1"))$this->Versandmail($versandid); - $this->RunHook('versanderzeugen_frankieren_hook1', 1, $versandid); - $auftrag = $this->app->DB->Select("SELECT auftragid FROM lieferschein WHERE id = '$id'"); - $rechnung = $this->app->DB->Select( - sprintf('SELECT id FROM rechnung where auftragid = %d LIMIT 1', $auftrag) - ); - if($rechnung) { - $rechnung_projekt = $this->app->DB->Select( - sprintf( - 'SELECT projekt FROM rechnung WHERE id = %d', $rechnung - ) - ); - $rechnung_zahlweise = $this->app->DB->Select( - sprintf( - 'SELECT zahlweise FROM rechnung WHERE id = %d', $rechnung - ) - ); - } else { - $rechnung_projekt = $this->app->DB->Select( - sprintf( - 'SELECT projekt FROM auftrag WHERE id = %d', $auftrag - ) - ); - $rechnung_zahlweise = $this->app->DB->Select( - sprintf( - 'SELECT zahlweise FROM auftrag WHERE id = %d', $auftrag - ) - ); - } - $shop = $this->app->DB->Select("SELECT shop FROM auftrag WHERE id = '$auftrag' LIMIT 1"); - $auftragabgleich=$this->app->DB->Select("SELECT auftragabgleich FROM shopexport WHERE id='$shop' LIMIT 1"); - $this->app->erp->LieferscheinProtokoll($id,'Verarbeitung im Versandzentrum'); - if($auftrag)$this->app->erp->AuftragProtokoll($auftrag,'Verarbeitung im Versandzentrum'); - if($shop > 0 && $auftragabgleich=="1") - { - //$this->LogFile("Tracking gescannt"); - try { - $this->app->remote->RemoteUpdateAuftrag($shop, $auftrag); - }catch(Exception $e) - { - $this->AuftragProtokoll($auftag, 'Shoprückmeldung fehlgeschlagen'); - } - } - try { - $this->sendPaymentStatus($versandid, $rechnung_zahlweise, $auftrag, $projekt, $rechnung_projekt); - } - catch (Exception $e) { - - } - if($lieferschein) { - $this->PDFArchivieren('lieferschein', $lieferschein, true); - } - if($rechnung) { - $this->PDFArchivieren('rechnung', $rechnung, true); - } - header("Location: index.php?module=lieferschein&action=paketmarke&id=$id"); - exit; - } - } - } - - if($versandmitbutton!="") - { - - if($sid=="versand") - { - $this->app->DB->Update("UPDATE versand SET versandunternehmen='$versandmit', - versendet_am=NOW(),versendet_am_zeitstempel=NOW(),abgeschlossen='1' WHERE id='$id' LIMIT 1"); - - $this->VersandAbschluss($id); - //versand mail an kunden - $this->Versandmail($id); - $obj = $this->app->erp->LoadModul('versanderzeugen'); - if(!empty($obj) && method_exists($obj,'CheckKommissionierungByLieferschein')) - { - $obj->CheckKommissionierungByLieferschein($this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id'")); - } - - - header("Location: index.php?module=versanderzeugen&action=offene"); - exit; - } - } - - if($sid=="versand") - { - // wenn paketmarke bereits gedruckt nur tracking scannen - $paketmarkegedruckt = $this->app->DB->Select("SELECT paketmarkegedruckt FROM versand WHERE id='$id' LIMIT 1"); - - if($paketmarkegedruckt>=1) - $tracking_again=1; - } - - // wenn anders ausgewaehlt - if($anders!="") - { - - //header("Location: index.php?module=paketmarke&action=tracking"); - $this->app->Tpl->Add('TAB1', - "

- -
-

-

Methode:



-
Versandart:   -

-
-
- -
-
- -

-
-

- "); - - - } - else if($drucken!="" || $tracking_again=="1") - { - - - - if($tracking_again!="1") - { - $nachnahme = trim($this->app->Secure->GetPOST("nachnahme")); - $betrag= $this->app->Secure->GetPOST("betrag"); - $versichert = $this->app->Secure->GetPOST("versichert"); - $extraversichert = $this->app->Secure->GetPOST("extraversichert"); - $name= trim($this->app->Secure->GetPOST("name")); - $name2= trim($this->app->Secure->GetPOST("name2")); - $name3= trim($this->app->Secure->GetPOST("name3")); - $land= $this->app->Secure->GetPOST("land"); - $plz= trim($this->app->Secure->GetPOST("plz")); - $ort= trim($this->app->Secure->GetPOST("ort")); - $telefon= trim($this->app->Secure->GetPOST("telefon")); - $email= trim($this->app->Secure->GetPOST("email")); - $strasse = trim($this->app->Secure->GetPOST("strasse")); - $hausnummer= trim($this->app->Secure->GetPOST("hausnummer")); - $altersfreigabe = $this->app->Secure->GetPOST("altersfreigabe"); - - $lieferschein = $this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id' LIMIT 1"); - $rechnungsnummer = $this->app->DB->Select("SELECT rechnung FROM versand WHERE id='$id' LIMIT 1"); - $rechnungid = $rechnungsnummer; - $rechnungsnummer = "RE ".$this->app->DB->Select("SELECT belegnr FROM rechnung WHERE id='$rechnungsnummer' LIMIT 1"); - - $kg = $this->app->Secure->GetPOST("kg1"); - $anzahl = $this->app->Secure->GetPOST("anzahl"); - - if($kg=="") $kg=$this->VersandartMindestgewicht($lieferschein); - - $versandartenmodul = $this->app->DB->SelectArr("SELECT id, modul,bezeichnung, einstellungen_json FROM versandarten WHERE aktiv = 1 AND ausprojekt = 0 AND type = '".$this->app->DB->real_escape_string($typ)."' AND modul != '' AND (projekt = 0 OR projekt = '$projekt') ORDER BY projekt DESC LIMIT 1"); - if($versandartenmodul && @is_file(dirname(__FILE__).'/versandarten/'.$versandartenmodul[0]['modul'].'.php')) - { - $obj = $this->LoadVersandModul($versandartenmodul[0]['modul'], $versandartenmodul[0]['id']); - $this->app->Tpl->Set("ZUSATZ",$versandartenmodul[0]['bezeichnung']); - - if(!empty($obj) && method_exists($obj, 'Paketmarke')) - { - $error = $obj->Paketmarke($sid!=''?$sid:'lieferschein',$id); - }else $error[] = 'Versandmodul '.$typ.' fehlerhaft!'; - } - if(!isset($error) || !$error)$this->app->DB->Update("UPDATE versand SET gewicht='$kg',paketmarkegedruckt=1,anzahlpakete='$anzahl' WHERE id='$id' LIMIT 1"); - } - if(!$error) - { - //insert into versand oder update - if($anzahl > 1) - { - for($anzahli=2;$anzahli<=$anzahl; $anzahli++) - { - - $kg = $this->app->Secure->GetPOST("kg".$anzahli); - - if($kg <=0) $kg = $this->VersandartMindestgewicht($lieferschein); - - //$this->DPDPaketmarkeStandard($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$produkt_zusatz_id,$produkt_zusatz_nr,$zusatz); //TODO 2kg - switch($typ) - { - case "DHL": - $this->EasylogPaketmarkeStandard($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg); //TODO 1 - break; - case "Intraship": - $kg = (float)str_replace(',','.',$kg); - $this->IntrashipPaketmarkeStandard($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg); //TODO 1 - break; - case "UPS": - $this->UPSPaketmarke($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg); //TODO 1 - break; - case "FEDEX": - $this->FEDEXPaketmarke($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg); - break; - - } - $this->app->DB->Insert("INSERT INTO versandpakete (id,versand,gewicht,nr,versender) VALUES ('','$id','$kg','$anzahli','".$this->app->User->GetName()."')"); } - - } - - if($tracking_again=="1") - { - //$error_message_tracking = "
Bitte korrekte Trackingnummer erfassen!
"; - } - - if($sid==='versand') { - $paketmarkedrucken = '';//""; - } - else { - $paketmarkedrucken=''; - } - - $lastTrackingVersand = $this->app->User->GetParameter('versand_lasttracking_versand'); - $lastTrackingLieferschein = $this->app->User->GetParameter('versand_lasttracking_lieferschein'); - $tracking = $this->app->User->GetParameter('versand_lasttracking'); - $trackingLink = $this->app->User->GetParameter('versand_lasttracking_link'); - if(empty($tracking) && $sid === 'versand') { - $trackingRow = $this->app->DB->SelectRow( - sprintf( - 'SELECT tracking, tracking_link FROM versand WHERE id = %d', - $id - ) - ); - if(!empty($trackingRow)) { - $tracking = $trackingRow['tracking']; - $trackingLink = $trackingRow['tracking_link']; - } - } - if((!empty($lastTrackingVersand) && $sid === 'versand' && $id != $lastTrackingVersand) || - (!empty($lastTrackingLieferschein) && $sid !== 'versand' && $id != $lastTrackingLieferschein)) { - $this->app->User->SetParameter('versand_lasttracking', ''); - $this->app->User->SetParameter('versand_lasttracking_versand', ''); - $this->app->User->SetParameter('versand_lasttracking_lieferschein', ''); - } - $printagain = ''; - $versandRow = $this->app->DB->SelectRow(sprintf('SELECT * FROM versand WHERE id = %d', $id)); - - if($sid === 'versand' && $this->app->erp->RechteVorhanden('versanderzeugen','reprintlabel') - && !empty($versandRow['lastprinter']) && !empty($versandRow['lastspooler_id']) - ) { - $printable = $this->app->DB->Select( - sprintf( - 'SELECT id FROM drucker_spooler WHERE id = %d AND content <> \'\' LIMIT 1', - $versandRow['lastspooler_id'] - ) - ); - - $printagain = '  -
- * Die Paketmarke wird maximal 10 Tage vorgehalten.'; - } - $this->app->erp->RunHook("versanderzeugen_scan_dialog", 2, $lastTrackingLieferschein, $versandartenmodul[0]); - - //header("Location: index.php?module=paketmarke&action=tracking"); - $this->app->Tpl->Add('TAB1', - "
$error_message_tracking
- -
-

-

Tracking-Nummer Scannen:



-
Tracking-Nummer:    -

-
- - - -
 Weitere Paketmarke für diese Lieferung erstellen.
 Zusätzlichen Lieferschein drucken.
-
-
-
-
- $paketmarkedrucken -
$printagain
-
-
-

-
-

- "); - - } - } - if(!($drucken!="" || $tracking_again=="1") || $error) - { - if($error) - { - $this->app->Tpl->Add('ERROR','
'); - foreach($error as $er)$this->app->Tpl->Add('ERROR',$er.'
'); - $this->app->Tpl->Add('ERROR','
'); - - } - - if($sid=="rechnung") - $rechnung = $id; - else $rechnung =""; - - if($sid=="versand") - { - $tid = $this->app->DB->Select("SELECT lieferschein FROM versand WHERE id='$id' LIMIT 1"); - $rechnung = $this->app->DB->Select("SELECT rechnung FROM versand WHERE id='$id' LIMIT 1"); - $tablesid = "lieferschein"; - } elseif($sid == "retoure") - { - $lieferschein = $this->app->DB->Select("SELECT lieferscheinid FROM retoure WHERE id = '$id' LIMIT 1"); - $tid = $id; - if($lieferschein)$rechnung = $this->app->DB->Select("SELECT id FROM rechnung WHERE lieferschein = '$lieferschein' LIMIT 1"); - if($rechnung<=0) $rechnung = $this->app->DB->Select("SELECT rechnungid FROM lieferschein WHERE id='$lieferschein' LIMIT 1"); - } else { - $tid = $id; - if($sid == 'lieferschein')$rechnung = $this->app->DB->Select("SELECT id FROM rechnung WHERE lieferschein = '$tid' LIMIT 1"); - if($rechnung<=0) $rechnung = $this->app->DB->Select("SELECT rechnungid FROM lieferschein WHERE id='$tid' LIMIT 1"); - } - - if($rechnung){ - $artikel_positionen = $this->app->DB->SelectArr("SELECT * FROM rechnung_position WHERE rechnung='$rechnung'"); - } else { - //if($sid =="versand" && $tid > 0) - //{ - // $artikel_positionen = $this->app->DB->SelectArr("SELECT * FROM lieferschein_position WHERE lieferschein='$tid'"); - //} - //else { - $artikel_positionen = $this->app->DB->SelectArr("SELECT * FROM ".$tablesid."_position WHERE $tablesid='$tid'"); - //} - - } - $altersfreigabe = 0; - for($i=0;$i<(!empty($artikel_positionen)?count($artikel_positionen):0);$i++) - { - $artikelaltersfreigabe = (int)$this->app->DB->Select("SELECT altersfreigabe FROM artikel WHERE id = '".$artikel_positionen[$i]['artikel']."' LIMIT 1"); - if($artikelaltersfreigabe > $altersfreigabe)$altersfreigabe = $artikelaltersfreigabe; - } - - if($altersfreigabe) - { - if($sid == 'adresse') - { - $adresse = $tid; - }else{ - $adresse = $this->app->DB->Select("SELECT adresse FROM $tablesid WHERE id = '$tid' LIMIT 1"); - } - if(!$this->app->DB->Select("SELECT keinealtersabfrage FROM adresse WHERE id = '$adresse' LIMIT 1")) - $this->app->Tpl->Set('ALTERSFREIGABE',' checked '); - }else{ - $this->app->Tpl->Set('VORALTERSFREIGABE', ''); - } - - - if($tablesid=="rechnung" || $tablesid=="lieferschein" || $tablesid=="adresse" || $tablesid == "retoure") - { - $name = trim($this->app->DB->Select("SELECT name FROM $tablesid WHERE id='$tid' LIMIT 1")); - $name2 = trim($this->app->DB->Select("SELECT adresszusatz FROM $tablesid WHERE id='$tid' LIMIT 1")); - if($name2=="") - { - $name2 = trim($this->app->DB->Select("SELECT abteilung FROM $tablesid WHERE id='$tid' LIMIT 1")); - $abt=1; - } - $name3 = trim($this->app->DB->Select("SELECT ansprechpartner FROM $tablesid WHERE id='$tid' LIMIT 1")); - if($name3=="" && $abt!=1) - $name3 = trim($this->app->DB->Select("SELECT abteilung FROM $tablesid WHERE id='$tid' LIMIT 1")); - - //unterabteilung versuchen einzublenden - if($name2=="") { - $name2 = trim($this->app->DB->Select("SELECT unterabteilung FROM $tablesid WHERE id='$tid' LIMIT 1")); - } else if ($name3=="") { - $name3 = trim($this->app->DB->Select("SELECT unterabteilung FROM $tablesid WHERE id='$tid' LIMIT 1")); - } - - if($name3!="" && $name2=="") { $name2=$name3; $name3=""; } - - $ort = trim($this->app->DB->Select("SELECT ort FROM $tablesid WHERE id='$tid' LIMIT 1")); - $plz = trim($this->app->DB->Select("SELECT plz FROM $tablesid WHERE id='$tid' LIMIT 1")); - $land = trim($this->app->DB->Select("SELECT land FROM $tablesid WHERE id='$tid' LIMIT 1")); - $strasse = trim($this->app->DB->Select("SELECT strasse FROM $tablesid WHERE id='$tid' LIMIT 1")); - $strassekomplett = $strasse; - $hausnummer = trim($this->ExtractStreetnumber($strasse)); - - $strasse = trim(str_replace($hausnummer,"",$strasse)); - $strasse = str_replace('.',"",$strasse); - - if($strasse=="") - { - $strasse = trim($hausnummer); - $hausnummer = ""; - } - $telefon = trim($this->app->DB->Select("SELECT telefon FROM $tablesid WHERE id='$tid' LIMIT 1")); - $email = trim($this->app->DB->Select("SELECT email FROM $tablesid WHERE id='$tid' LIMIT 1")); - - if($sid == "retoure") - { - if($this->app->DB->Select("SELECT abweichendelieferadresse FROM retoure WHERE id = '$id' LIMIT 1")) - { - - $name = trim($this->app->DB->Select("SELECT liefername FROM $tablesid WHERE id='$tid' LIMIT 1")); - $name2 = trim($this->app->DB->Select("SELECT lieferadresszusatz FROM $tablesid WHERE id='$tid' LIMIT 1")); - if($name2=="") - { - $name2 = trim($this->app->DB->Select("SELECT lieferabteilung FROM $tablesid WHERE id='$tid' LIMIT 1")); - $abt=1; - } - $name3 = trim($this->app->DB->Select("SELECT lieferansprechpartner FROM $tablesid WHERE id='$tid' LIMIT 1")); - if($name3=="" && $abt!=1) - $name3 = trim($this->app->DB->Select("SELECT lieferabteilung FROM $tablesid WHERE id='$tid' LIMIT 1")); - - //unterabteilung versuchen einzublenden - if($name2=="") { - $name2 = trim($this->app->DB->Select("SELECT lieferunterabteilung FROM $tablesid WHERE id='$tid' LIMIT 1")); - } else if ($name3=="") { - $name3 = trim($this->app->DB->Select("SELECT lieferunterabteilung FROM $tablesid WHERE id='$tid' LIMIT 1")); - } - - if($name3!="" && $name2=="") { $name2=$name3; $name3=""; } - - $ort = trim($this->app->DB->Select("SELECT lieferort FROM $tablesid WHERE id='$tid' LIMIT 1")); - $plz = trim($this->app->DB->Select("SELECT lieferplz FROM $tablesid WHERE id='$tid' LIMIT 1")); - $land = trim($this->app->DB->Select("SELECT lieferland FROM $tablesid WHERE id='$tid' LIMIT 1")); - $strasse = trim($this->app->DB->Select("SELECT lieferstrasse FROM $tablesid WHERE id='$tid' LIMIT 1")); - $strassekomplett = $strasse; - $hausnummer = trim($this->ExtractStreetnumber($strasse)); - - $strasse = trim(str_replace($hausnummer,"",$strasse)); - $strasse = str_replace('.',"",$strasse); - - if($strasse=="") - { - $strasse = trim($hausnummer); - $hausnummer = ""; - } - - } - } - - } - - if($rechnung > 0) - { - $zahlungsweise = $this->app->DB->Select("SELECT zahlungsweise FROM rechnung WHERE id='$rechnung' LIMIT 1"); - $soll = $this->app->DB->Select("SELECT soll FROM rechnung WHERE id='$rechnung' LIMIT 1"); - } else { - $auftragtmp = $this->app->DB->Select("SELECT auftragid FROM lieferschein WHERE id='$tid'"); - $zahlungsweise = $this->app->DB->Select("SELECT zahlungsweise FROM auftrag WHERE id='$auftragtmp' LIMIT 1"); - $soll = $this->app->DB->Select("SELECT gesamtsumme FROM auftrag WHERE id='$auftragtmp' LIMIT 1"); - } - - - // wenn rechnung im spiel entweder durch versand oder direkt rechnung - if($soll>0) - { - $this->app->Tpl->Set('BETRAG',$soll); - - if($zahlungsweise=="nachnahme") - $this->app->Tpl->Set('NACHNAHME',"checked"); - - if($soll >= 500 && $soll <= 2500) - $this->app->Tpl->Set('VERSICHERT',"checked"); - - if($soll > 2500) - $this->app->Tpl->Set('EXTRAVERSICHERT',"checked"); - } - - $felder = array('name','name2','name3','ort','plz','strasse','hausnummer','land','telefon','email'); - foreach($felder as $feld) - { - $varname = $feld; - if($this->app->Secure->GetPOST($feld)!="") - { - $$varname = $this->app->Secure->GetPOST($feld); - } - } - - $this->app->Tpl->Set('NAME',str_replace('"','',$name)); - $this->app->Tpl->Set('NAME2',str_replace('"','',$name2)); - $this->app->Tpl->Set('NAME3',str_replace('"','',$name3)); - $this->app->Tpl->Set('ORT',str_replace('"','',$ort)); - $this->app->Tpl->Set('PLZ',str_replace('"','',$plz)); - $this->app->Tpl->Set('STRASSE',str_replace('"','',$strasse)); - $this->app->Tpl->Set('STRASSEKOMPLETT',$strassekomplett); - $this->app->Tpl->Set('HAUSNUMMER',$hausnummer); - $this->app->Tpl->Set('LAND',$land); - - //DSGVO - - if($this->Firmendaten("dsgvoversandunternehmen")!="1") - { - $this->app->Tpl->Set('TELEFON',$telefon); - $this->app->Tpl->Set('EMAIL',trim($email," \t\n\r\0\x0B\xc2\xa0")); - } - - $abholdatum_user = $this->app->User->GetParameter("paketmarke_abholdatum"); - $abholdatum_user = date('Y-m-d', strtotime($abholdatum_user)); - - - $check_date = $this->app->DB->Select("SELECT date_format(now(),'%Y-%m-%d')"); - if($abholdatum_user >= $check_date) - $this->app->Tpl->Set('ABHOLDATUM',date('d.m.Y', strtotime($abholdatum_user))); - else - $this->app->Tpl->Set('ABHOLDATUM',date('d.m.Y', strtotime($check_date))); - - $anzahl = $this->app->Secure->GetGET("anzahl"); - - if($anzahl <= 0) $anzahl=1; - - $this->app->Tpl->Set('ANZAHL',$anzahl); - - if($tablesid=="lieferschein") - $standardkg=$this->VersandartMindestgewicht($tid); - else - $standardkg=$this->VersandartMindestgewicht(); - - $this->PaketmarkeGewichtForm($anzahl, $standardkg, $this->VersandartMindestgewicht()); - /* - if($anzahl==1) - { - $i=1; - $this->app->Tpl->Add('GEWICHT','Gewicht Paket: in kg'); - } - else { - for($i=1;$i<=$anzahl;$i++) - $this->app->Tpl->Add('GEWICHT','Gewicht Paket '.$i.': in kg'); - }*/ - - if($tracking_again!="1") - { - - //$versandartenmodul = $this->app->DB->SelectArr("SELECT id, modul FROM versanddienstleister WHERE aktiv = 1 AND modul = '".$this->app->DB->real_escape_string($typ)."' AND (projekt = 0 OR projekt = '$projekt') ORDER BY projekt DESC LIMIT 1"); - $versandartenmodul = $this->app->DB->SelectArr("SELECT id, modul,bezeichnung FROM versandarten WHERE aktiv = 1 AND ausprojekt = 0 AND modul != '' AND type = '".$this->app->DB->real_escape_string($typ)."' AND modul != '' AND (projekt = 0 OR projekt = '$projekt') ORDER BY projekt DESC LIMIT 1"); - - if(!( - $this->app->DB->Select("SELECT id FROM versandarten WHERE aktiv = 1 AND ausprojekt = 1 AND type = '".$this->app->DB->real_escape_string($typ)."' AND (projekt = 0 OR projekt = '$projekt') ORDER BY projekt DESC LIMIT 1") - && ($typ == 'DHL' || $typ == 'dhl' || $typ == 'intraship' || $typ == 'Intraship' || $typ == 'UPS' || $typ == 'FEDEX' || $typ == 'Go'))) - { - if($versandartenmodul[0]['modul']=="") { - - if(!(($typ == 'DHL' || $typ == 'dhl' || $typ == 'intraship' || $typ == 'Intraship') && $this->app->DB->Select("SELECT id FROM versandarten WHERE aktiv = 1 AND ausprojekt = 1 AND (type like 'dhl' OR type like 'intraship') AND (projekt = 0 OR projekt = '$projekt') ORDER BY projekt DESC LIMIT 1"))) - { - $versandartenmodul[0]['modul'] ="sonstiges"; - $versandartenmodul[0]['bezeichnung'] ="Sonstiges
   Bitte weiter klicken und im Feld Trackingnummer Information für Versand eingeben z.B. Brief oder Spedition   

"; - } - } - } - if($versandartenmodul && @is_file(__DIR__.'/versandarten/'.$versandartenmodul[0]['modul'].'.php')) - { - $obj = $this->LoadVersandModul($versandartenmodul[0]['modul'], $versandartenmodul[0]['id']); - $this->app->Tpl->Set("ZUSATZ",$versandartenmodul[0]['bezeichnung']); - if(!empty($obj) && method_exists($obj, 'Paketmarke')) - { - $error = $obj->Paketmarke($sid!=''?$sid:'lieferschein',($sid=='versand'?$id:$tid), $parsetarget, $error); - }else $error[] = 'Versandmodul '.$typ.' fehlerhaft!'; - }else{ - if($typ == 'dhl' || $typ == 'DHL') - { - if($this->app->DB->Select("SELECT intraship_enabled FROM projekt WHERE id='$projekt' LIMIT 1"))$typ = 'intraship'; - } - switch($typ) - { - case "DHL": - case "dhl": - $this->app->Tpl->Parse($parsetarget,"paketmarke_dhl.tpl"); - break; - case "Intraship": - case "intraship": - if(!$this->app->DB->Select("SELECT intraship_retourenaccount FROM projekt WHERE id = '$projekt' LIMIT 1")) - { - $this->app->Tpl->Add('VORRETOURENLABEL', ''); - } - if($this->app->DB->Select("SELECT intraship_retourenlabel FROM projekt WHERE id = '$projekt' LIMIT 1"))$this->app->Tpl->Add('RETOURENLABEL',' checked="checked" '); - $this->app->Tpl->Parse($parsetarget,"paketmarke_intraship.tpl"); - break; - case "UPS": - $this->app->Tpl->Parse($parsetarget,"paketmarke_ups.tpl"); - break; - case "FEDEX": - $this->app->Tpl->Parse($parsetarget,"paketmarke_fedex.tpl"); - break; - case "Go": - $this->app->Tpl->Parse($parsetarget,"paketmarke_go.tpl"); - break; - } - } - } - } - if($this->app->Secure->GetGET('module') === 'versanderzeugen'){ - $obj = $this->app->erp->LoadModul('versanderzeugen'); - if(!empty($this->app->User) && method_exists($this->app->User,'GetParameter')){ - $defaultklaergrund = $this->app->User->GetParameter('versand_klaergrund'); - }else{ - $defaultklaergrund = ''; - } - //$fields = array('klaergrund' => array('bezeichnung' => '&nbps;','size'=>40,'autocomplete'=>'versand_klaergrund','defaultonempty'=>$defaultklaergrund)); - $vorlagen = $this->app->DB->SelectArr("SELECT DISTINCT problemcase FROM - delivery_problemcase WHERE problemcase != '' ORDER BY sort, problemcase"); - $klaeroptions = []; - if(!empty($vorlagen)){ - //$fields['vorlagen'] = array('type'=>'legend','bezeichnung'=>'Vorlagen'); - foreach($vorlagen as $k => $v) - { - $klaeroptions[] = $v['problemcase']; - //$fields['vorlage_'.$k] = array('type'=>'link','nodoublepoint'=>1,'bezeichnung' => '•','link'=>''.$v['problemcase'].''); - } - $fields = array('klaergrund' => array('type'=>'radiobutton','optionen'=>$klaeroptions)); - if(!empty($klaeroptions)){ - $this->app->YUI->AddSimpleForm('versand', $fields, - array('editbutton' => $this->app->Secure->GetGET('id'), 'nocreate' => true, 'edittext' => 'Klärfall anlegen', 'legend' => 'Grund', 'title' => 'Einstellungen', 'functionaftersave' => 'VersanderzeugenKlaerfallfunctionaftersave' - , 'addbuttonafter' => '$(\'input[name="drucken"]\').parent().find(\'input\').last()', 'onsave' => 'window.location.href=\'index.php?module=versanderzeugen&action=offene\''), $obj); - } - } - } -} - //@refactor versanddiestleister Modul function ExtractStreetnumber($street) { diff --git a/www/pages/paketmarke.php b/www/pages/paketmarke.php deleted file mode 100644 index e2003c41..00000000 --- a/www/pages/paketmarke.php +++ /dev/null @@ -1,56 +0,0 @@ - -app=$app; - if($intern) { - return; - } - - $this->app->ActionHandlerInit($this); - - $this->app->ActionHandler("create","PaketmarkeCreatePopup"); - $this->app->ActionHandler("tracking","PaketmarkeTracking"); - - $this->app->ActionHandlerListen($app); - - } - - function PaketmarkeTracking() - { - $this->app->erp->Headlines('Paketmarken Drucker'); - - $this->app->Tpl->Set('PAGE',"Tracking-Nummer: "); - //$this->app->BuildNavigation=false; - } - - function PaketmarkeCreatePopup() - { - $this->app->erp->Headlines('Paketmarken Drucker'); - $this->app->erp->PaketmarkeDHLEmbedded('PAGE','lieferschein'); - } -} -