PreorderstatusJournal & preorder flags -> ADBHausnummer flags sync

This commit is contained in:
Frank Schubert
2025-09-10 17:38:53 +02:00
parent 31eee76a05
commit 6dfc4a31c6
11 changed files with 486 additions and 65 deletions
+49 -21
View File
@@ -1087,6 +1087,9 @@ class PreorderController extends mfBaseController {
case "updateBilled":
$return = $this->updateBilledApi();
break;
case "saveStatusJournal":
$return = $this->saveStatusJournalApi();
break;
default:
$return = false;
}
@@ -1105,6 +1108,35 @@ class PreorderController extends mfBaseController {
}
}
protected function saveStatusJournalApi() {
$preorder_id = $this->request->preorder_id;
$text = $this->request->text;
if(!$preorder_id || !$text) {
return false;
}
$preorder = new Preorder($preorder_id);
if(!$preorder->id) {
return false;
}
$journal = PreorderstatusJournal::create([
"preorder_id" => $preorder_id,
"text" => $text,
]);
if(!$journal->save()) {
return false;
}
return [
"preorder_id" => $preorder_id,
"create" => (new DateTime("@".$journal->create))->setTimezone(new DateTimeZone("Europe/Vienna"))->format("Y-m-d H:i:s"),
"creator" => $journal->creator->name,
"text" => $journal->text,
];
}
protected function getLoggedEmail() {
$preorder_id = $this->request->pid;
$emaillog_id = $this->request->eid;
@@ -1328,25 +1360,24 @@ class PreorderController extends mfBaseController {
private function setStatusFlagApi() {
$preorder_id = $this->request->preorder_id;
$flag_id = $this->request->flag_id;
$code = $this->request->code;
$value = $this->request->value;
if(!$preorder_id || !$flag_id) {
if(!$preorder_id || !$code) {
return false;
}
$flag = new PreorderStatusflag($flag_id);
if(!$flag->id) {
$preorder = new Preorder($preorder_id);
if(!$preorder->id) return false;
$sflag = PreorderStatusflagModel::getFirst(["code" => $code]);
if(!$sflag) {
return false;
}
$sflag->preorder_id = $preorder->id;
if ($flag_id == 1) {
$preorder = new Preorder($preorder_id);
if(!$preorder->id) {
return false;
}
$attribute = "inhouse_cabling_supplied";
if ($code == 145) {
$attribute = "inhouse_cabling_supplied"; // = Starterpaket erhalten
$attribs = $preorder->attribute;
if(!$attribs) {
$attribs = [];
@@ -1361,24 +1392,21 @@ class PreorderController extends mfBaseController {
}
}
$flagvalue = PreorderStatusflagValueModel::getFirst(["preorder_id" => $preorder_id, "flag_id" => $flag_id]);
if(!$flagvalue) {
$flagvalue = PreorderStatusflagValueModel::create([
"preorder_id" => $preorder_id,
"flag_id" => $flag_id
]);
}
$flagvalue->value = ($value) ? 1 : 0;
$sflag->value->value = ($value) ? 1 : 0;
//var_dump($flagvalue);exit;
try {
if(!$flagvalue->save()) {
if(!$sflag->value->save()) {
return false;
}
} catch(Exception $e) {
$this->log->debug($e->getTraceAsString());
}
$this->log->debug("===== Setting Hausnummer Flag Value $code -> ".($value ? 1 : 0));
if($preorder->adb_hausnummer_id) {
$preorder->adb_hausnummer->setStatusflag($code, ($value ? 1 : 0));
}
return ["message" => "Statusflag saved successfully"];
}