enhanced preorder filter; fixed fixing wrong oaid origin

This commit is contained in:
Frank Schubert
2023-09-15 10:36:20 +02:00
parent 9fdf910858
commit d8ab02ba7d
12 changed files with 60 additions and 603 deletions

View File

@@ -42,17 +42,26 @@ class Preorder extends mfBaseModel {
if($this->oaid) {
// If current OAID is from correct Origin then do nothing
$current_oaid = OpenAccessIdModel::getFirstOaid($this->oaid);
if(!$current_oaid) {
return true; // this is a thetool oaid, so do nothing
}
if($campaign->oaid_origin == $current_oaid->origin) {
// also check if wohneinheit has no oaid and set it
if(!$wohneinheit->oaid) {
$wohneinheit->oaid = $current_oaid->oaid;
$wohneinheit->save();
if($campaign->oaid_origin == "thetool") {
$current_oaid = OpenAccessIdModel::getFirstOaid($this->oaid);
if($current_oaid) {
$this->log->warning("OAID of Preorder ".$this->id." should be thetool, but is OFAA");
}
} elseif($campaign->oaid_origin == "ofaa") {
$current_oaid = OpenAccessIdModel::getFirstOaid($this->oaid);
if(!$current_oaid) {
$this->log->error("OAID of Preorder ".$this->id." not found in OpenAccessIds");
// assume it's from a different origin
} else {
if($campaign->oaid_origin == $current_oaid->origin) {
// also check if wohneinheit has no oaid and set it
if(!$wohneinheit->oaid) {
$wohneinheit->oaid = $current_oaid->oaid;
$wohneinheit->save();
}
return true;
}
}
return true;
}
}

View File

@@ -17,14 +17,47 @@ class PreorderController extends mfBaseController {
protected function indexAction() {
$this->layout()->setTemplate("Preorder/Index");
$rfilter = $this->request->filter;
iF(!is_array($rfilter)) {
$rfilter = [];
if($this->request->resetFilter) {
unset($_SESSION[MFAPPNAME.'-Preorder-filter']);
foreach($_SESSION as $key => $s) {
if(preg_match('/^'.MFAPPNAME.'-Preorder-filter-campaign-\d+$', $key)) {
unset($_SESSION[$key]);
}
}
}
$this->layout->set("filter", $rfilter);
$filter = $this->getPreparedFilter($rfilter);
$filter = [];
if(is_array($this->request->filter)) {
$filter = $this->request->filter;
if(isset($this->request->filter["preordercampaign_id"]) && $this->request->filter["preordercampaign_id"]) {
$filter_po_id = $filter["preordercampaign_id"];
if(count($this->request->filter) == 1 && isset($_SESSION[MFAPPNAME.'-Preorder-filter-campaign-'.$filter_po_id])) {
$filter = $_SESSION[MFAPPNAME.'-Preorder-filter-campaign-'.$filter_po_id];
} else {
$_SESSION[MFAPPNAME.'-Preorder-filter-campaign-'.$filter["preordercampaign_id"]] = $filter;
}
} else {
$_SESSION[MFAPPNAME.'-Preorder-filter'] = $filter;
}
} else {
if(array_key_exists(MFAPPNAME.'-Preorder-filter', $_SESSION) && count($_SESSION[MFAPPNAME.'-Preorder-filter'])) {
$filter = $_SESSION[MFAPPNAME.'-Preorder-filter'];
if(isset($filter['preordercampaign_id'])) {
$filter_po_id = $filter['preordercampaign_id'];
if(isset($_SESSION[MFAPPNAME.'-Preorder-filter-campaign-'.$filter_po_id])) {
//var_dump("blah");
$filter = $_SESSION[MFAPPNAME.'-Preorder-filter-campaign-'.$filter_po_id];
}
}
}
}
//var_dump($_SESSION, $filter);exit;
$this->layout->set("filter", $filter);
$filter = $this->getPreparedFilter($filter);
// pagination defaults
$pagination = [];
@@ -624,7 +657,7 @@ class PreorderController extends mfBaseController {
}
$qs = ['filter' => ['preordercampaign_id' => $preorder->preordercampaign_id, 'ucode' => $preorder->ucode]];
$qs = ['filter' => ['preordercampaign_id' => $preorder->preordercampaign_id]];
$qs = http_build_query($qs);
$this->layout()->setFlash("Vorbestellung erfolgreich gespeichert!", "success");