Added Service PIN PDF+Email to Address
This commit is contained in:
@@ -182,6 +182,7 @@
|
||||
<table class="table table-striped table-hover">
|
||||
<tr>
|
||||
<th>Typ</th>
|
||||
<th></th>
|
||||
<th>Kundennummer</th>
|
||||
<th>FIBU Konten</th>
|
||||
<th>Firma</th>
|
||||
@@ -207,6 +208,7 @@
|
||||
<?php else: ?>
|
||||
<td></td>
|
||||
<?php endif; ?>
|
||||
<td><?=($address->billing_type == "sepa") ? " <i class='far fa-money-from-bracket text-success' title='Bankeinzug aktiviert'></i>" : ""?></td>
|
||||
<td>
|
||||
<a href="<?=self::getUrl("Address", "view", ["id" => $address->id, 's' => $pagination['start']])?>">
|
||||
<?=$address->customer_number?>
|
||||
@@ -215,7 +217,8 @@
|
||||
</td>
|
||||
<td>
|
||||
<?php if($address->fibu_account_number): ?>
|
||||
<span title="Verrechnungskonto"><?=$address->fibu_account_number?></span><?=($address->fibu_primary_account) ? " <i class='fas fa-check text-success' title='Primäres Verrechnungskonto'></i>" : ""?>
|
||||
<span title="Verrechnungskonto"><?=$address->fibu_account_number?></span>
|
||||
<?=($address->fibu_primary_account) ? " <i class='fas fa-check text-success' title='Primäres Verrechnungskonto'></i>" : ""?>
|
||||
<?php endif; ?>
|
||||
<?php if($address->fibu_supplier_number): ?>
|
||||
<br /><span title="Lieferantenkonto"><?=$address->fibu_supplier_number?></span>
|
||||
@@ -232,6 +235,7 @@
|
||||
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
|
||||
<a href="<?=self::getUrl("User", "Index", ["filter" => ["address_id" => $address->id]])?>" title="Benutzer anzeigen"><i class="fas fa-users"></i></a>
|
||||
<a href="<?=self::getUrl("Address", "view", ["id" => $address->id, 's' => $pagination['start']])?>"><i class="far fa-eyes" title="Anzeigen"></i></a>
|
||||
<a href="<?=self::getUrl("Address", "sendServicePin", ["id" => $address->id])?>" onclick="if(!confirm('Soll der Service-PIN an den Kunden gesendet werden?')) return false;"><i class="fas fa-paper-plane" title="Service PIN als PDF per Email an Kunde"></i></a>
|
||||
<a href="#" onclick="openCreateTicketModal('<?=$address->getCompanyOrName()?>', '<?=$address->customer_number?>', '<?=$address->street . ', ' . $address->zip . ' ' . $address->city?>', '<?=$address->phone?>', '<?=$address->email?>', '<?=$address->spin?>')" title="Störungs-Ticket erstellen" class="text-warning"><i class="fas fa-exclamation-triangle"></i></a>
|
||||
<a href="<?=self::getUrl("Address", "edit", ["id" => $address->id, 's' => $pagination['start']])?>"><i class="far fa-edit" title="Bearbeiten"></i></a>
|
||||
<a href="<?=self::getUrl("Address", "delete", ["id" => $address->id, 's' => $pagination['start']])?>" onclick="if(!confirm('Person/Firma wirklich löschen?')) return false;" class="text-danger" title="Löschen"><i class="fas fa-trash"></i></a>
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
$this->setReturnValue([
|
||||
'filename' => "xinon_Service_PIN_".$owner->customer_number.".pdf"
|
||||
]);
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Wichtige Kundeninformation - Service PIN</title>
|
||||
<meta charset="utf-8" />
|
||||
<link href="<?=$ressourcePathPrefix?>fontawesome/css/all.min.css" rel="stylesheet" type="text/css" />
|
||||
<!--<link href="<?=$ressourcePathPrefix?>assets/css/bootstrap.min.css" rel="stylesheet" type="text/css" />-->
|
||||
<link href="<?=$ressourcePathPrefix?>assets/css/print.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div style="border-top: 1pt solid #000">
|
||||
|
||||
</div>
|
||||
|
||||
<table style="width: 100%">
|
||||
<tr>
|
||||
<td style="width:50%">
|
||||
<img height="96px" src="<?=$ressourcePathPrefix?>assets/images/xinon-full.png" />
|
||||
</td>
|
||||
<td style="width:50%; text-align: right;">
|
||||
<table style="text-align: left; width:100%">
|
||||
<tr>
|
||||
<td style="text-align: right;">Ihre Kundennummer:</td>
|
||||
<td style="padding-left: 4pt;"><?=$owner->customer_number?></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
<div style="height:24pt;"></div>
|
||||
|
||||
<h3>Wichtige Kundeninformation</h3>
|
||||
|
||||
<div style="height:24pt;"></div>
|
||||
|
||||
<div>
|
||||
<?php if($owner->company): ?>
|
||||
<?=nl2br($owner->company)?><br />
|
||||
<?php endif; ?>
|
||||
<?php if($owner->getFullName()): ?>
|
||||
<?=$owner->getFullName()?><br />
|
||||
<?php endif; ?>
|
||||
<?=$owner->street?><br />
|
||||
<?=$owner->zip?> <?=$owner->city?>
|
||||
</div>
|
||||
|
||||
<div style="height:24pt;"></div>
|
||||
|
||||
<div>
|
||||
<p>Sehr geehrte Damen und Herren,</p>
|
||||
<p>wir freuen uns, dass Sie sich für ein Produkt von Xinon bzw. einem unserer Partner
|
||||
entschieden haben.</p>
|
||||
<p>Nachfolgend finden Sie Ihren persönlichen Service-PIN.</p>
|
||||
</div>
|
||||
|
||||
<div style="height:1.5pt;"></div>
|
||||
|
||||
<div style="background-color: #ccc;">
|
||||
<p style="padding-top: 4pt; padding-bottom: 5pt; padding-left: 4pt;"><strong>Ihr persönlicher Service-PIN lautet: <?=$owner->spin?></strong></p>
|
||||
</div>
|
||||
|
||||
<div style="height:1.5pt;"></div>
|
||||
|
||||
<div>
|
||||
<p>Gemäß der EU Datenschutzverordnung sind wir dazu verpflichtet, vor der Beauskunftung
|
||||
von persönlichen Daten eine Kundenidentifizierung vorzunehmen. Daher werden wir und
|
||||
unsere Partner Sie bei zukünftigen Kontaktaufnahmen (z.B. vergessenen Passwörtern,
|
||||
Rechnungsauskünfte, etc) nach Ihrem <strong>persönlichen Service-PIN</strong> fragen.</p>
|
||||
</div>
|
||||
|
||||
<div style="height:32pt;"></div>
|
||||
|
||||
<div>
|
||||
<p><strong>Sollten Sie noch Fragen haben erreichen Sie uns per Mail (office@xinon.at) oder
|
||||
telefonisch unter der Rufnummer <span style="white-space: nowrap">03115 40800.</span></strong></p>
|
||||
</div>
|
||||
|
||||
<div style="height:32pt;"></div>
|
||||
|
||||
<div>
|
||||
<p>Mit besten Grüßen,</p>
|
||||
|
||||
<p>Ihr XINON Team</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
21
Layout/default/Emailtemplates/customer/spin.php
Normal file
21
Layout/default/Emailtemplates/customer/spin.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
$this->setReturnValue([
|
||||
'subject' => "Ihr persönlicher XINON Service-Pin",
|
||||
'from_email' => "office@xinon.at",
|
||||
'from_email_name' => "XINON Kundenservice"
|
||||
]);
|
||||
?>
|
||||
Sehr geehrte Damen und Herren,
|
||||
|
||||
im Anhang finden Sie Ihren persönlichen Service-PIN.
|
||||
|
||||
Mit besten Grüßen,
|
||||
|
||||
Ihr XINON Team
|
||||
--
|
||||
XINON GmbH
|
||||
|
||||
p: +43 3115 40 800
|
||||
f: +43 3115 40 800 10
|
||||
a: Fladnitz im Raabtal 150, 8322 Studenzen, AUSTRIA
|
||||
w: www.xinon.at e: office@xinon.at
|
||||
@@ -233,7 +233,65 @@ class Address extends mfBaseModel {
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function sendSpinEmail() {
|
||||
$spin_pdf_template = "Emailtemplates/attachments/address_spin.pdf";
|
||||
$new_order_template = "Emailtemplates/customer/spin";
|
||||
|
||||
$pdf_vars = [
|
||||
'owner' => $this
|
||||
];
|
||||
|
||||
|
||||
/*if(TT_CUSTOM_ORDER_PDF_PER_NETOWNER) {
|
||||
$terms = $this->getTerminations();
|
||||
if(is_array($terms) && count($terms) && $terms[0]->id) {
|
||||
$netowner = $terms[0]->building->network->owner;
|
||||
} else {
|
||||
$netowner = new Address(TT_CUSTOM_ORDER_PDF_DEFAULT_OWNER_ID);
|
||||
}
|
||||
$pdf_vars['netowner'] = $netowner;
|
||||
}*/
|
||||
|
||||
// render service pin PDF
|
||||
$pdf = new PdfForm($spin_pdf_template, $pdf_vars);
|
||||
$pdfpath = $pdf->render();
|
||||
$tvalue = $pdf->getReturnedValues();
|
||||
$pdfname = $tvalue['filename'];
|
||||
|
||||
// send email to customer
|
||||
$tpl = new Layout();
|
||||
$tpl->setTemplate($new_order_template);
|
||||
|
||||
foreach($pdf_vars as $name => $val) {
|
||||
$tpl->set($name, $val);
|
||||
}
|
||||
|
||||
$body = $tpl->render();
|
||||
$values = $tpl->getReturnedValue();
|
||||
|
||||
$subject = $values['subject'];
|
||||
$from = $values['from_email'];
|
||||
$from_name = $values['from_email_name'];
|
||||
$to = $this->email;
|
||||
|
||||
if(!$subject || !$from || !$from_name || !$to) {
|
||||
$this->log->warn("Service PIN copy Email not sent. (subject: '$subject', from: '$from_name', from_email: '$from', to: '$to')");
|
||||
} else {
|
||||
$email = new Emailnotification();
|
||||
$email->setSubject($subject);
|
||||
$email->setBody($body);
|
||||
$email->setFrom($from, $from_name);
|
||||
$email->setTo($to);
|
||||
$email->setHeader("X-".MFAPPNAME."-Oid", $this->id);
|
||||
$email->addAttachment($pdfpath, null, $pdfname, "application/pdf");
|
||||
$email->send();
|
||||
$this->log->info(__CLASS__."::sendSpinEmail(): Sending SPIN for ".$this->getCompanyOrName()." (".$this->id.")");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getFullName() {
|
||||
// Assumes "Firma1 Firma2" or "firstname lastname" as readable form
|
||||
$name = "";
|
||||
|
||||
@@ -705,4 +705,31 @@ class AddressController extends mfBaseController {
|
||||
Helper::renderVue($this,"AddressTickets",
|
||||
"Tickets von Kunden: " . $address->getCompanyOrName() . '(' . $address->customer_number . ')', ["TICKETS" => $tickets]);
|
||||
}
|
||||
|
||||
protected function sendServicePinAction() {
|
||||
$address_id = $this->request->id;
|
||||
if(!is_numeric($address_id) || !$address_id) {
|
||||
$this->layout->setFlash("Adresse nicht gefunden!", "error");
|
||||
$this->redirect("Address");
|
||||
}
|
||||
|
||||
$address = new Address($address_id);
|
||||
if(!$address->id) {
|
||||
$this->layout->setFlash("Adresse nicht gefunden!", "error");
|
||||
$this->redirect("Address");
|
||||
}
|
||||
|
||||
if(!$address->customer_number || !$address->spin) {
|
||||
$this->layout->setFlash("Kunde hat keine Kundennummer oder keinen Service PIN!", "error");
|
||||
$this->redirect("Address");
|
||||
}
|
||||
|
||||
if($address->sendSpinEmail()) {
|
||||
$this->layout()->setFlash("Service PIN wurde erfolgreich versendet.", "success");
|
||||
} else {
|
||||
$this->layout()->setFlash("Fehler beim SPIN Versand!", "success");
|
||||
}
|
||||
|
||||
$this->redirect("Address");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user