From 29f63d41a78b55f4dc72e5d9da73509fdd6110d2 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Tue, 30 Nov 2021 20:31:58 +0100 Subject: [PATCH] not generating new SPIN when changing owner in Order --- application/Order/OrderController.php | 22 +++++++++------------- lib/mvcfronk/mfBase/mfBaseModel.php | 9 ++++++++- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/application/Order/OrderController.php b/application/Order/OrderController.php index bc9aad1c6..04675be46 100644 --- a/application/Order/OrderController.php +++ b/application/Order/OrderController.php @@ -466,7 +466,7 @@ class OrderController extends mfBaseController { } if(!$order->finish_date) { - // first same finishing order + // first time finishing order $send_to_bill_email = true; } @@ -609,7 +609,11 @@ class OrderController extends mfBaseController { } } - if(!$owner->spin) { + // generate and send Service PIN + // only if owner_id wasn't changed + $this->log->debug("test"); + if(!$owner->spin && (!property_exists($order->_old_data, "owner_id") || $order->owner_id == $order->_old_data->owner_id)) { + $this->log->debug(__CLASS__."::save(): creating new SPIN for ".$owner->getCompanyOrName()." (".$owner->id.")"); $spin = $owner->generateServicePin(); if($spin && !AddressModel::search(['spin' => $spin])) { $owner->spin = $spin; @@ -621,18 +625,7 @@ class OrderController extends mfBaseController { $tvalue = $pdf->getReturnedValues(); $pdfname = $tvalue['filename']; - /*$pdf = new Layout(); - $pdf->setTemplate("Emailtemplates/attachments/new_order.pdf"); - $pdf->set("ressourcePathPrefix", BASEDIR."/public/"); - $pdf->set("owner", $owner); - $pdf->set("order", $order);*/ - - - - //var_dump($pdfpath);exit; - // send email to customer - // TODO template rendern auslagern nach Emailtempate klasse $tpl = new Layout(); $tpl->setTemplate("Emailtemplates/customer/new_order"); @@ -658,11 +651,14 @@ class OrderController extends mfBaseController { $email->setHeader("X-Xinon-Pid", $product->id); $email->addAttachment($pdfpath, null, $pdfname, "application/pdf"); $email->send(); + $this->log->info(__CLASS__."::save(): Sending new SPIN for ".$owner->getCompanyOrName()." (".$owner->id.")"); } } } + } else { + $this->log->debug(__CLASS__."::save(): NOT creating new SPIN for ".$owner->getCompanyOrName()." (".$owner->id."): SPIN exists or owner of Order was changed"); } } } diff --git a/lib/mvcfronk/mfBase/mfBaseModel.php b/lib/mvcfronk/mfBase/mfBaseModel.php index 7ae495b67..71e4dee2f 100644 --- a/lib/mvcfronk/mfBase/mfBaseModel.php +++ b/lib/mvcfronk/mfBase/mfBaseModel.php @@ -15,6 +15,7 @@ if(!defined("FRONKDB")) { class mfBaseModel { public $id; public $data; + public $_old_data; private $create; private $edit; private $worker; @@ -35,6 +36,7 @@ class mfBaseModel { $this->log=mfLoghandler::singleton(); $this->table=get_class($this); $this->data = new stdClass(); + $this->_old_data = new stdClass(); if(defined("MFMODEL_USEFIELDPREFIX") && MFMODEL_USEFIELDPREFIX==true) { $this->prefixfields=true; @@ -67,7 +69,7 @@ class mfBaseModel { || $field=="edit") continue; $this->data->$field=$value; } - + $this->id=$row->id; $this->create=$row->create; $this->edit=$row->edit; @@ -76,6 +78,11 @@ class mfBaseModel { $this->id=$row->$prop; } + $this->_old_data = clone($this->data); + $this->_old_data->id = $this->id; + $this->_old_data->create = $this->create; + $this->_old_data->edit = $this->edit; + $this->mode = "update"; if(method_exists($this, "afterLoad")) {