Enabled soft-delete for preorders

This commit is contained in:
Frank Schubert
2022-10-12 13:35:06 +02:00
parent 1cccb79610
commit 609ac5ac4a
5 changed files with 56 additions and 5 deletions

View File

@@ -138,7 +138,7 @@
<td><?=date('d.m.Y H:i', $preorder->edit)?></td>
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
<a href="<?=self::getUrl("Preorder", "edit", ["id" => $preorder->id])?>"><i class="far fa-edit" title="Vorbestellkampagne Bearbeiten"></i></a>
<a href="<?=self::getUrl("Preorder", "delete", ["id" => $preorder->id])?>" class="text-danger" onclick="if(!confirm('Vorbestellung wirklich löschen?')) return false;" title="Vorbestellung Löschen"><i class="fas fa-trash"></i></a>
<a href="<?=self::getUrl("Preorder", "delete", ["id" => $preorder->id, "filter" => $filter])?>" class="text-danger" onclick="if(!confirm('Vorbestellung wirklich löschen?')) return false;" title="Vorbestellung Löschen"><i class="fas fa-trash"></i></a>
</td>
</tr>
<?php endforeach; ?>

View File

@@ -98,7 +98,7 @@
<td><?=$camp->network->name?></td>
<td><?=$camp->name?></td>
<td><?=$camp->area?></td>
<td><a href="<?=self::getUrl("Preorder", "Index", ["filter" => ["preordercampaign_id" => $camp->id]])?>"><?=count($camp->preorders)?></a></td>
<td><a href="<?=self::getUrl("Preorder", "Index", ["filter" => ["preordercampaign_id" => $camp->id]])?>"><?=count($camp->active_preorders)?></a></td>
<td><?=date('d.m.Y',$camp->from)?></td>
<td><?=date('d.m.Y',$camp->to)?></td>
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">

View File

@@ -49,7 +49,7 @@ class PreorderController extends mfBaseController {
$this->layout()->set("campaign", $campaign);
}
}
//var_dump($campaign_filter);exit;
//var_dump($filter);exit;
$preorders = PreorderModel::search($filter);
$this->layout()->set("preorders", $preorders);
}
@@ -60,10 +60,13 @@ class PreorderController extends mfBaseController {
if(array_key_exists("show_deleted", $filter)) {
if($filter['show_deleted'] == "show") {
$new_filter['deleted'] = null;
}
if($filter['show_deleted'] == "only") {
} elseif($filter['show_deleted'] == "only") {
$new_filter['deleted'] = 1;
} else {
$new_filter['deleted'] = 0;
}
} else {
$new_filter['deleted'] = 0;
}
if(is_array($filter) && count($filter)) {
@@ -326,4 +329,33 @@ class PreorderController extends mfBaseController {
}
public function deleteAction() {
$qs = "";
if(is_array($this->request->filter) && count($this->request->filter)) {
$qs = ['filter' => $this->request->filter];
$qs = http_build_query($qs);
}
$id = $this->request->id;
if(!is_numeric($id) || $id < 1) {
$this->layout()->setFlash("Vorbestellung nicht gefunden!", "error");
$this->redirect("Preorder", "Index", $qs);
}
$preorder = new Preorder($id);
if(!$preorder->id) {
$this->layout()->setFlash("Vorbestellung nicht gefunden!", "error");
$this->redirect("Preorder", "Index", $qs);
}
$preorder->deleted = date('U');
$preorder->deleted_by = $this->me->id;
$preorder->save();
$this->layout()->setFlash("Vorbestellung erfolgreich gelöscht!", "success");
$this->redirect("Preorder", "Index", $qs);
}
}

View File

@@ -125,6 +125,17 @@ class PreorderModel {
$where = "1=1 ";
//var_dump($filter);exit;
if(array_key_exists("deleted", $filter)) {
$deleted = $filter['deleted'];
if(is_numeric($deleted)) {
$where .= " AND deleted=$deleted";
}
if($deleted === null) {
$where .= " AND deleted IS NULL";
}
}
if(array_key_exists("preordercampaign_id", $filter)) {
$preordercampaign_id = $filter['preordercampaign_id'];
if(is_numeric($preordercampaign_id)) {
@@ -185,6 +196,8 @@ class PreorderModel {
}
//var_dump($filter, $where);exit;
return $where;
}

View File

@@ -3,6 +3,7 @@
class Preordercampaign extends mfBaseModel {
private $network;
private $preorders;
private $active_preorders;
private $types;
private $setup_products;
private $salesclusters;
@@ -74,6 +75,11 @@ class Preordercampaign extends mfBaseModel {
return $this->preorders;
}
if($name == "active_preorders") {
$this->active_preorders = PreorderModel::search(['preordercampaign_id' => $this->id, 'deleted' => 0]);
return $this->active_preorders;
}
if($name == "types") {
$types = PreordercampaignTypeModel::search(['preordercampaign_id' => $this->id]);
foreach($types as $type) {