Basic Sendcloud integration with Shipment rework

This commit is contained in:
Andreas Palm
2022-10-26 23:46:38 +02:00
parent 2b5d01b52a
commit cd93d643f8
24 changed files with 1358 additions and 1390 deletions
+213 -413
View File
@@ -20463,33 +20463,11 @@ if($id > 0)
}
//@refactor ApplicationCore
function LoadVersandModul($modul, $id)
function LoadVersandModul(string $modul, int $id): Versanddienstleister
{
if(empty($modul) ||
strpos($modul,'..') !== false ||
!@is_file(__DIR__.'/versandarten/'.$modul.'.php')
)
{
return;
}
$class_name = 'Versandart_'.$modul;
$class_name_custom = 'Versandart_'.$modul.'Custom';
if(!class_exists($class_name))
{
if(@is_file(__DIR__.'/versandarten/'.$modul.'_custom.php'))
{
include_once(__DIR__.'/versandarten/'.$modul.'_custom.php');
}else{
include_once(__DIR__.'/versandarten/'.$modul.'.php');
}
}
if(class_exists($class_name_custom))
{
return new $class_name_custom($this->app, $id);
}elseif(class_exists($class_name))
{
return new $class_name($this->app, $id);
}
/** @var Versandarten $versandarten */
$versandarten = $this->app->loadModule('versandarten');
return $versandarten->loadModule($modul, $id);
}
//@refactor versanddiestleister Modul
@@ -20562,131 +20540,131 @@ function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL")
}
}
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"))
if($sid=="versand")
{
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'))
// falche tracingnummer bei DHL da wir in der Funktion PaketmarkeDHLEmbedded sind
if((strlen($tracking) < 12 || strlen($tracking) > 21) && $trackingsubmitcancel=="" && ($typ=="DHL" || $typ=="Intraship"))
{
$obj = $this->LoadVersandModul($versandartenmodul[0]['modul'], $versandartenmodul[0]['id']);
if(!empty($obj) && method_exists($obj, 'TrackingReplace'))
{
$tracking = $obj->TrackingReplace($tracking);
}
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'):'';
$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', '');
}
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');
$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(
if(empty($rechnung)) {
$rechnung = $this->app->DB->Select(
sprintf(
'UPDATE versand SET rechnung = %d WHERE id = %d AND rechnung = 0',
$rechnung, $id
"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) {
$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
$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");
)
) {
/** @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
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;
}
$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)
}
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
)
);
$country = $deliveryArr['land'];
$versandObj->checkPrintCreateProformaInvoice($lieferschein,$country,$projekt,$druckercode,true);
$proformaPrinted = $druckercode > 0;
$this->app->DB->Update(
sprintf(
"UPDATE rechnung SET schreibschutz = 1, status = 'versendet' WHERE id = %d",
$rechnung
)
);
$this->PDFArchivieren('rechnung', $rechnung, true);
}
}
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($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
@@ -20695,32 +20673,12 @@ function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL")
if($userversanddrucker>0)
$druckercode = $userversanddrucker;
$this->app->erp->BriefpapierHintergrundDisable($druckercode);
$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)
{
$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);
@@ -20730,88 +20688,108 @@ function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL")
$Brief->GetRechnung($rechnung);
$tmpfile = $Brief->displayTMP();
for($i = 1; $i <= $autodruckrechnungmenge; $i++) {
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);
// Print additional invoices for export
$exportdruckrechnung = $this->app->erp->Projektdaten($projekt,"exportdruckrechnung");
if($exportdruckrechnung)
{
$mengedruck = $this->app->erp->Projektdaten($projekt,"exportdruckrechnungmenge");
for($mengedruck;$mengedruck > 0;$mengedruck--)
$exportland = $this->app->DB->Select("SELECT land FROM rechnung WHERE id = '$rechnung' LIMIT 1");
$exportdruckrechnung = $this->app->erp->Export($exportland);
if($exportdruckrechnung)
{
$this->app->printer->Drucken($druckercode,$tmpfile);
$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")
unlink($tmpfile);
if($this->app->erp->Projektdaten($projekt,"automailrechnung")=="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;
// 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);
}
}
$objVersand->checkPrintCreateProformaInvoice($lieferschein, $land, $projekt, $druckercode, empty($proformaPrinted));
$this->BriefpapierHintergrundEnable();
}
}
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)");
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();
@@ -20849,7 +20827,7 @@ function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL")
$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') ");
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);
@@ -20878,23 +20856,6 @@ function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL")
if($kg=="") {
$kg = $this->VersandartMindestgewicht($id);
}
/*
//Brauchen wir nicht
$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($versand)."' 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'))
{
$class_name = 'Versandart_'.$versandartenmodul[0]['modul'];
if(!class_exists($class_name))include_once(dirname(__FILE__).'/versandarten/'.$versandartenmodul[0]['modul'].'.php');
if(class_exists($class_name))
{
$obj = new $class_name($this->app, $versandartenmodul[0]['id']);
if(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'):'';
@@ -20905,9 +20866,9 @@ function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL")
$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)
$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();
@@ -20928,8 +20889,7 @@ function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL")
'SELECT zahlweise FROM rechnung WHERE id = %d', $rechnung
)
);
}
else{
} else {
$rechnung_projekt = $this->app->DB->Select(
sprintf(
'SELECT projekt FROM auftrag WHERE id = %d', $auftrag
@@ -21064,176 +21024,17 @@ function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL")
if($kg=="") $kg=$this->VersandartMindestgewicht($lieferschein);
//$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, 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'))
$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'))
{
$error = $obj->Paketmarke($sid!=''?$sid:'lieferschein',$id);
}else $error[] = 'Versandmodul '.$typ.' fehlerhaft!';
}else{
switch($typ)
{
case "DHL":
if($nachnahme=="" && $versichert=="" && $extraversichert=="")
{
$this->EasylogPaketmarkeStandard($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg);
} else if ($nachnahme=="1" && $versichert=="" && $extraversichert=="")
{
$this->EasylogPaketmarkeNachnahme($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$betrag,$rechnungsnummer);
} else if ($versichert=="1" && $extraversichert=="" && $nachnahme=="")
{
$this->EasylogPaketmarke2500($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg);
} else if ($versichert=="1" && $extraversichert=="" && $nachnahme=="1")
{
$this->EasylogPaketmarkeNachnahme2500($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$betrag,$rechnungsnummer);
} else if ($versichert=="" && $extraversichert=="1" && $nachnahme=="1")
{
$this->EasylogPaketmarkeNachnahme25000($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$betrag,$rechnungsnummer);
} else if ($extraversichert=="1" && $versichert=="" && $nachnahme=="")
{
$this->EasylogPaketmarke25000($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg);
}
break;
case "Intraship":
$kg = (float)str_replace(',','.',$kg);
$obj = $this->LoadVersandModul($versandartenmodul[0]['modul'], $versandartenmodul[0]['id']);
$this->app->Tpl->Set("ZUSATZ",$versandartenmodul[0]['bezeichnung']);
$abholdatum = $this->app->Secure->GetPOST("abholdatum");
$retourenlabel= $this->app->Secure->GetPOST("retourenlabel");
if($retourenlabel)
{
$this->app->Tpl->Set('RETOURENLABEL', ' checked="checked" ');
$zusaetzlich['retourenlabel'] = 1;
}
if($abholdatum){
$this->app->Tpl->Set('ABHOLDATUM',$abholdatum);
$zusaetzlich['abholdatum'] = date('Y-m-d', strtotime($abholdatum));
$this->app->User->SetParameter("paketmarke_abholdatum",$zusaetzlich['abholdatum']);
}
if($altersfreigabe)$zusaetzlich['altersfreigabe'] = 1;
if($nachnahme=="1")
$error = $this->IntrashipPaketmarkeNachnahme($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$betrag,$rechnungsnummer,$zusaetzlich);
else
$error = $this->IntrashipPaketmarkeStandard($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,"",$rechnungsnummer,$zusaetzlich);
break;
case "UPS":
$error = $this->UPSPaketmarke($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$betrag,$rechnungsnummer);
break;
case "FEDEX":
$error = $this->FEDEXPaketmarke($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$betrag,$rechnungsnummer);
break;
case 'Go':
if($name && $strasse && $plz && $ort && (($hausnummer && (!$land || $land == 'DE') || ($land && $land != 'DE'))))
{
$kg = $this->app->Secure->GetPOST("kg");
if($kg=="") $kg=$this->VersandartMindestgewicht($lieferschein);
$kg = str_replace(',','.',$kg);
$frei = $this->app->Secure->GetPOST("frei")==1?1:0;
$auftragid = $this->app->DB->Select("SELECT auftragid FROM lieferschein where id = ".(int)$lieferschein." limit 1");
if($frei){
$this->app->Tpl->Set('FREI',' checked="checked" ');
$zusaetzlich['frei'] = 1;
}
$selbstabholung = $this->app->Secure->GetPOST("selbstabholung");
if($selbstabholung){
$this->app->Tpl->Set('SELBSTABHOLUNG',' checked="checked" ');
$zusaetzlich['selbstabholung'] = 1;
}
$landesvorwahl = $this->app->Secure->GetPOST("landesvorwahl");
if($landesvorwahl){
$this->app->Tpl->Set('LANDESVORWAHL',$landesvorwahl);
$zusaetzlich['landesvorwahl'] = $landesvorwahl;
}
$ortsvorwahl = $this->app->Secure->GetPOST("ortsvorwahl");
if($ortsvorwahl){
$this->app->Tpl->Set('ORTSVORWAHL',$ortsvorwahl);
$zusaetzlich['ortsvorwahl'] = $ortsvorwahl;
}
if($telefon)
{
$this->app->Tpl->Set('TELEFON',$telefon);
$zusaetzlich['telefon'] = $telefon;
}
if($email)
{
$this->app->Tpl->Set('EMAIL',trim($email));
$zusaetzlich['email'] = trim($email);
}
$selbstanlieferung = $this->app->Secure->GetPOST("selbstanlieferung");
if($selbstanlieferung){
$this->app->Tpl->Set('SELBSTANLIEFERUNG',' checked="checked" ');
$zusaetzlich['selbstanlieferung'] = 1;
}
$abholdatum = $this->app->Secure->GetPOST("abholdatum");
if($abholdatum){
$this->app->Tpl->Set('ABHOLDATUM',$abholdatum);
$zusaetzlich['abholdatum'] = $abholdatum;
$this->app->User->SetParameter("paketmarke_abholdatum",$zusaetzlich['abholdatum']);
}
$zustelldatum = $this->app->Secure->GetPOST("zustelldatum");
if(!$zustelldatum)
{
//$zustelldatum = $this->app->DB->Select("SELECT lieferdatum FROM rechnung where id = ".(int)$rechnungid." and lieferdatum > now() limit 1");
$zustelldatum = $this->app->DB->Select("SELECT lieferdatum FROM auftrag where id = ".(int)$auftragid." limit 1");
}
if($zustelldatum){
$this->app->Tpl->Set('ZUSTELLDATUM',$zustelldatum);
$zusaetzlich['zustelldatum'] = $zustelldatum;
}
if(!$abholdatum)
{
//$abholdatum = $this->app->DB->Select("SELECT tatsaechlicheslieferdatum FROM rechnung where id = ".(int)$rechnungid." and tatsaechlicheslieferdatum > now() limit 1");
$abholdatum = $this->app->DB->Select("SELECT date_format(now(),'%d.%m.%Y')");
/*if(!$abholdatum)
{
$projekt = $this->app->DB->Select("SELECT projekt FROM auftrag WHERE id='$auftragid' LIMIT 1");
$differenztage = $this->Projektdaten($projekt,"differenz_auslieferung_tage");
if($differenztage<0) $differenztage=2;
$abholdatum = $this->app->DB->Select("SELECT DATE_SUB(lieferdatum, INTERVAL $differenztage DAY) from auftrag WHERE id='$auftragid' and DATE_SUB(lieferdatum, INTERVAL $differenztage DAY) > now() LIMIT 1");
}*/
if($abholdatum)
{
$this->app->Tpl->Set('ABHOLDATUM',$abholdatum);
$zusaetzlich['abholdatum'] = $abholdatum;
$this->app->User->SetParameter("paketmarke_abholdatum",$zusaetzlich['abholdatum']);
}
}
$Zustellhinweise = $this->app->Secure->GetPOST("Zustellhinweise");
if($Zustellhinweise){
$this->app->Tpl->Set('ZUSTELLHINWEISE',$Zustellhinweise);
$zusaetzlich['Zustellhinweise'] = $Zustellhinweise;
}
$Abholhinweise = $this->app->Secure->GetPOST("Abholhinweise");
if($Abholhinweise){
$this->app->Tpl->Set('ABHOLHINWEISE',$Abholhinweise);
$zusaetzlich['Abholhinweise'] = $Abholhinweise;
}
if($anzahl)$zusaetzlich['menge'] = $anzahl;
$inhalt = $this->app->Secure->GetPOST("inhalt");
if($inhalt){
$this->app->Tpl->Set('INHALT',$inhalt);
$zusaetzlich['inhalt'] = $inhalt;
}
if(isset($nachnahme))$zusaetzlich['nachnahme'] = $nachnahme;
$this->GoPaketmarke($id,$name,$name2,$name3,$strasse,$hausnummer,$plz,$ort,$land,$kg,$betrag,$rechnungsnummer, $zusaetzlich);
} else header("Location: index.php?module=lieferschein&action=paketmarke&id=$id");
break;
}
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)
@@ -21266,8 +21067,7 @@ function Paketmarke($parsetarget,$sid="",$zusatz="",$typ="DHL")
break;
}
$this->app->DB->Insert("INSERT INTO versandpakete (id,versand,gewicht,nr,versender) VALUES ('','$id','$kg','$anzahli','".$this->app->User->GetName()."')");
}
$this->app->DB->Insert("INSERT INTO versandpakete (id,versand,gewicht,nr,versender) VALUES ('','$id','$kg','$anzahli','".$this->app->User->GetName()."')"); }
}