Order/Form: Changed owner and billingaddress to autocomplete instead of

select
This commit is contained in:
Frank Schubert
2022-01-25 22:39:57 +01:00
parent fec01ee1bc
commit 517174de4c
9 changed files with 385 additions and 115 deletions

View File

@@ -312,20 +312,20 @@ class OrderController extends mfBaseController {
// validate owner
$owner = false;
if(!$r->owner_id) {
/*if(!$r->owner_id) {
$this->layout()->setFlash("Bitte Vertragsinhaber auswählen oder eintragen.", "error");
$this->layout()->set("order", $r);
return $this->add();
}
}*/
if(is_numeric($r->owner_id)) {
if(is_numeric($r->owner_id) && $r->owner_id > 0) {
$owner = new Address($r->owner_id);
if(!$owner->id) {
$this->layout()->setFlash("Ungültiger Vertragsinhaber.", "error");
$this->layout()->set("order", $r);
return $this->add();
}
} elseif($r->owner_id == "new") {
} else {
if(!$r->owner_company && !($r->owner_firstname && $r->owner_lastname)) {
$this->layout()->setFlash("Fehler in Vertragsinhaber: Firmenname oder Vor- und Nachname benötigt.");
$this->layout()->set("order", $r);
@@ -339,11 +339,11 @@ class OrderController extends mfBaseController {
return $this->add();
}
}
} else {
}/* else {
$this->layout()->setFlash("Ungültiger Vertragsinhaber.");
$this->layout()->set("order", $r);
return $this->add();
}
}*/
// validate billindaddress
@@ -357,26 +357,34 @@ class OrderController extends mfBaseController {
$this->layout()->set("order", $r);
return $this->add();
}
} elseif($r->billingaddress_id == "new") {
if(!$r->billing_company && !($r->billingr_firstname && $r->billing_lastname)) {
$this->layout()->setFlash("Fehler in Rechnungsqmpfänger: Firmenname oder Vor- und Nachname benötigt.");
$this->layout()->set("order", $r);
return $this->add();
}
foreach(["street", "zip", "city", "phone", "email"] as $required) {
if(!$r->{"owner_$required"}) {
$this->layout()->setFlash("Fehler in Rechnungsempfänger: Bitte alle benötigten Felder ausfüllen.");
$this->layout()->set("order", $r);
return $this->add();
}
}
} else {
$this->layout()->setFlash("Ungültiger Rechnungsempfänger.");
}
}
// if any required part of new billingaddress is set
$billingaddress_new = false;
if(!$r->billingaddress_id
&& ($r->billing_company || $r->billing_firstname || $r->billing_lastname
|| $r->billing_street || $r->billing_zip || $r->billing_city || $r->billing_phone || $r->billing_email)
) {
$billingaddress_new = true;
if(!$r->billing_company && !($r->billing_firstname && $r->billing_lastname)) {
$this->layout()->setFlash("Fehler in Rechnungsqmpfänger: Firmenname oder Vor- und Nachname benötigt.");
$this->layout()->set("order", $r);
return $this->add();
}
}
foreach(["street", "zip", "city", "phone", "email"] as $required) {
if(!$r->{"billing_$required"}) {
$this->layout()->setFlash("Fehler in Rechnungsempfänger: Bitte alle benötigten Felder ausfüllen.");
$this->layout()->set("order", $r);
return $this->add();
}
}
} /*else {
$this->layout()->setFlash("Ungültiger Rechnungsempfänger.");
$this->layout()->set("order", $r);
return $this->add();
}*/
// validate sepa
if(!$r->billing_type) {
@@ -499,7 +507,7 @@ class OrderController extends mfBaseController {
}
// save owner and billingaddress if new
if($r->owner_id == "new") {
if(!$r->owner_id) {
$owner_id = $owner->save();
if(!$owner_id) {
$this->layout()->setFlash("Fehler beim Speichern des Inhabers", "error");
@@ -508,13 +516,17 @@ class OrderController extends mfBaseController {
$order->owner_id = $owner_id;
$order->save();
}
if($r->billingaddress_id == "new") {
if($billingaddress_new) {
$billingaddress_id = $billingaddress->save();
if(!$billingaddress_id) {
$this->layout()->setFlash("Fehler beim Speichern des Rechnungsempfängers", "error");
$this->redirect("Order", "edit", ['id' => $new_id]);
}
$owner->billingaddress_id = $billingaddress_id;
// create addresstype (billing)
$at = AddresstypeModel::create(['address_id' => $billingaddress_id, 'type' => "billing"]);
$at->save();
$order->billingaddress_id = $billingaddress_id;
$order->save();
}