Added checks in Product::deleteAction()
This commit is contained in:
@@ -158,8 +158,8 @@
|
||||
<td><?=$product->ivt_id?></td>
|
||||
<td style="text-align: left; letter-spacing: 4px; font-size: 1.1em;">
|
||||
<a href="<?=self::getUrl("Product", "edit", ["id" => $product->id])?>"><i class="far fa-edit" title="Produkt Bearbeiten"></i></a>
|
||||
<a href="<?=self::getUrl("Product", "copy", ["id" => $product->id])?>"><i class="far fa-clone" title="Kopie erstellen"></i></a>
|
||||
<a href="<?=self::getUrl("Product", "delete", ["id" => $product->id])?>" class="text-danger" onclick="if(!confirm('Berechtigungen wirklich löschen?')) return false;" title="Produkt Löschen"><i class="fas fa-trash"></i></a>
|
||||
<a href="<?=self::getUrl("Product", "copy", ["id" => $product->id])?>" onclick="if(!confirm('Wirklich Kopie erstellen?')) return false;"><i class="far fa-clone" title="Kopie erstellen"></i></a>
|
||||
<a href="<?=self::getUrl("Product", "delete", ["id" => $product->id])?>" class="text-danger" onclick="if(!confirm('Produkt wirklich löschen?')) return false;" title="Produkt Löschen"><i class="fas fa-trash"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@@ -100,7 +100,25 @@ class OrderProductModel
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static function count($filter) {
|
||||
$db = FronkDB::singleton();
|
||||
|
||||
$where = self::getSqlFilter($filter);
|
||||
$sql = "SELECT COUNT(*) as cnt FROM OrderProduct
|
||||
WHERE $where
|
||||
";
|
||||
|
||||
mfLoghandler::singleton()->debug($sql);
|
||||
|
||||
$res = $db->query($sql);
|
||||
if($db->num_rows($res)) {
|
||||
$data = $db->fetch_object($res);
|
||||
return $data->cnt;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static function search($filter)
|
||||
{
|
||||
$items = [];
|
||||
|
||||
@@ -544,6 +544,20 @@ class PreorderModel {
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("product_id", $filter)) {
|
||||
$product_id = $filter['product_id'];
|
||||
if(is_numeric($product_id)) {
|
||||
$where .= " AND tt_preorder.product_id=$product_id";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("setup_product_id", $filter)) {
|
||||
$setup_product_id = $filter['setup_product_id'];
|
||||
if(is_numeric($setup_product_id)) {
|
||||
$where .= " AND tt_preorder.setup_product_id=$setup_product_id";
|
||||
}
|
||||
}
|
||||
|
||||
if(array_key_exists("address_created", $filter)) {
|
||||
$address_created = $filter['address_created'];
|
||||
if($address_created === true) {
|
||||
@@ -610,6 +624,8 @@ class PreorderModel {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(array_key_exists("extref", $filter)) {
|
||||
$extref = FronkDB::singleton()->escape($filter['extref']);
|
||||
if($extref) {
|
||||
|
||||
@@ -312,8 +312,39 @@ class ProductController extends mfBaseController {
|
||||
$this->redirect("Product");
|
||||
}
|
||||
|
||||
// check if Product is unused
|
||||
// check if product is in use
|
||||
if(OrderProductModel::count(["product_id" => $product->id])) {
|
||||
$this->layout()->setFlash("Produkt kann nicht gelöscht werden, da es in Verwendung ist!", "error");
|
||||
$this->redirect("Product");
|
||||
}
|
||||
|
||||
if(ContractModel::count(["product_id" => $product->id])) {
|
||||
$this->layout()->setFlash("Produkt kann nicht gelöscht werden, da es in Verwendung ist!", "error");
|
||||
$this->redirect("Product");
|
||||
}
|
||||
|
||||
if(ContractqueueModel::count(["product_id" => $product->id])) {
|
||||
$this->layout()->setFlash("Produkt kann nicht gelöscht werden, da es in Verwendung ist!", "error");
|
||||
$this->redirect("Product");
|
||||
}
|
||||
|
||||
if(PreorderModel::count(["product_id" => $product->id]) || PreorderModel::count(["setup_product_id" => $product->id])) {
|
||||
$this->layout()->setFlash("Produkt kann nicht gelöscht werden, da es in Verwendung ist!", "error");
|
||||
$this->redirect("Product");
|
||||
}
|
||||
|
||||
// delete attributes
|
||||
foreach($product->attributes as $attrib) {
|
||||
$attrib->delete();
|
||||
}
|
||||
// delete networks
|
||||
foreach(ProductNetworkModel::search(['product_id' => $product->id]) as $pn) {
|
||||
$pn->delete();
|
||||
}
|
||||
|
||||
// delete product
|
||||
$product->delete();
|
||||
$this->layout()->setFlash("Produkt erfolgreich gelöscht", "success");
|
||||
$this->redirect("Product");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user