WIP Contract Form

This commit is contained in:
Frank Schubert
2022-06-09 17:05:34 +02:00
parent b2e72c35b0
commit 121312cdc3
11 changed files with 382 additions and 115 deletions
+36
View File
@@ -220,6 +220,8 @@ class ProductController extends mfBaseController {
case "getProduct":
$return = $this->getProductApi();
break;
case "findProduct":
$return = $this->findProductApi();
default:
$return = false;
}
@@ -259,4 +261,38 @@ class ProductController extends mfBaseController {
return ["product" => $product->data, "form_id" => $form_id];
}
private function findProductApi() {
$search = trim($this->request->q);
$autocomplete = $this->request->autocomplete;
$products = [];
if(is_numeric($search)) {
$pnumbers = ProductModel::search(["id" => $search]);
if($pnumbers) {
$products = array_merge($products, $pnumbers);
}
}
$products = array_merge($products, ProductModel::search(["nameLike" => $search]));
if(!is_array($products) && !count($products)) {
return false;
}
$results = [];
// return bootstrap-autocomplete format
foreach($products as $product) {
$result = ['value' => $product->id, 'text' => str_replace("'", "\\'", str_replace(["\n", "\r"], " ",$product->name))];
$results[] = $result;
if(count($results) > 15) {
$results[] = ['value' => 0, 'text' => "&nbsp;&nbsp;--> &nbsp;&nbsp;Mehr Suchergebnisse vorhanden. Bitte Suchbegriff genauer definieren &nbsp;&nbsp;<--"];
break;
}
}
$this->returnJson($results);
}
}
+9 -2
View File
@@ -121,6 +121,13 @@ class ProductModel {
$db = FronkDB::singleton();
//var_dump($filter);exit;
if(array_key_exists("id", $filter)) {
$id = $db->escape($filter['id']);
if($id) {
$where .= " AND Product.`id` like '%$id%'";
}
}
if(array_key_exists("productgroup_id", $filter)) {
$productgroup_id = $filter['productgroup_id'];
if(is_numeric($productgroup_id)) {
@@ -138,14 +145,14 @@ class ProductModel {
if(array_key_exists("name", $filter)) {
$name = $db->escape($filter['name']);
if($name) {
$where .= " AND `name` like '$name'";
$where .= " AND Product.`name` like '$name'";
}
}
if(array_key_exists("nameLike", $filter)) {
$name = $db->escape($filter['nameLike']);
if($name) {
$where .= " AND `name` like '%$name%'";
$where .= " AND Product.`name` like '%$name%'";
}
}