SPIN PDF can now have custom netowner data

This commit is contained in:
Frank Schubert
2023-01-18 17:50:47 +01:00
parent 3fe324d762
commit 079ab6fbe9
22 changed files with 534 additions and 96 deletions

View File

@@ -93,6 +93,68 @@ class Order extends mfBaseModel {
}
}
public function sendSpinEmail() {
$owner = $this->getProperty("owner");
$spin_pdf_template = "Emailtemplates/attachments/new_order_spin.pdf";
$new_order_template = "Emailtemplates/customer/new_order";
$pdf_vars = [
'order' => $this,
'owner' => $owner
];
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
// TODO template rendern auslagern nach Emailtempate klasse
$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 = $owner->email;
if(!$subject || !$from || !$from_name || !$to) {
$this->log->warn("Service PIN Email not sent. (subject: '$subject', from: '$from', from_email: '$from_email', 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 new SPIN for ".$owner->getCompanyOrName()." (".$owner->id.")");
}
return true;
}
public function sendIntBillinfoEmail() {
// TODO template rendern auslagern nach Emailtempate klasse
$tpl = new Layout();
@@ -119,7 +181,7 @@ class Order extends mfBaseModel {
$email->setBody($body);
$email->setFrom($from, $from_name);
$email->setTo($to);
$email->setHeader("X-xinon-oid", $this->id);
$email->setHeader("X-".MFAPPNAME."-oid", $this->id);
$email->send();
return true;
@@ -158,7 +220,7 @@ class Order extends mfBaseModel {
$email->setBody($body);
$email->setFrom($from, $from_name);
$email->setTo($to);
$email->setHeader("X-Xinon-Oid", $this->id);
$email->setHeader("X-".MFAPPNAME."-Oid", $this->id);
$email->send();
return true;
@@ -213,8 +275,8 @@ class Order extends mfBaseModel {
$email->setBody($body);
$email->setFrom($from, $from_name);
$email->setTo($to);
$email->setHeader("X-Xinon-Oid", $this->id);
$email->setHeader("X-Xinon-OFid", $file->id);
$email->setHeader("X-".MFAPPNAME."-Oid", $this->id);
$email->setHeader("X-".MFAPPNAME."-OFid", $file->id);
$email->addAttachment($filepath, null, $file->file->filename, $mimetype);
$email->send();
$this->log->info(__CLASS__."::save(): Sending Order Fileupload Email to '$to'");