Fixed Showing Orders of users of same company

This commit is contained in:
Frank Schubert
2022-04-27 16:40:47 +02:00
parent 864aa03acc
commit d7192b0378
11 changed files with 422 additions and 52 deletions
+17 -1
View File
@@ -70,7 +70,23 @@ class Address extends mfBaseModel {
return $this->getFullName();
}
public function getUserIds($childs = true) {
$userIds = [];
foreach(UserModel::search(['address_id' => $this->id]) as $user) {
$userIds[] = $user->id;
}
if($childs) {
foreach(AddressModel::search(['parent_id' => $this->id]) as $child) {
foreach(UserModel::search(['address_id' => $child->id]) as $user) {
$userIds[] = $user->id;
}
}
}
$userIds = array_unique($userIds);
return $userIds;
}
public function loadAddresstypes() {
if(!$this->id) {
+4 -1
View File
@@ -148,7 +148,9 @@ class BuildingController extends mfBaseController {
$this->layout()->set("networksections", NetworksectionModel::getAll());
if($this->request->network_id) {
$this->layout()->set("request_network_id", $this->request->network_id);
}
}
protected function editAction() {
@@ -415,6 +417,7 @@ class BuildingController extends mfBaseController {
$u['city'] = $building->city;
$u['oan_id'] = $building->oan_id;
$u['code'] = $building->code;
$u['units'] = ($building->units) ? $building->units : 1;
$u['status'] = $building->status->name;
$unsorted[$building->street."-".$building->id] = $u;
}
@@ -42,7 +42,8 @@ class NetworkAddressController extends mfBaseController {
foreach(TT_NETWORK_ROLES as $rolestring) {
if(in_array($rolestring, $new_roles)) {
// check if role exists
if(NetworkAddressModel::search(['network_id' => $network, 'address_id' => $address_id, 'addresstype' => [$rolestring]])) {
$existing_role = NetworkAddressModel::search(['network_id' => $network_id, 'address_id' => $address_id, 'addresstype' => [$rolestring]]);
if($existing_role) {
continue; // role exists
} else {
$na = NetworkAddressModel::create(['network_id' => $network_id, 'address_id' => $address_id, 'type' => $rolestring]);
@@ -51,12 +52,11 @@ class NetworkAddressController extends mfBaseController {
// role does not exist, create it
} else {
// not in new_roles, delete (if exists)
$na = NetworkAddressModel::getFirst(['network_id' => $network, 'address_id' => $address_id, 'addresstype' => [$rolestring]]);
$na = NetworkAddressModel::getFirst(['network_id' => $network_id, 'address_id' => $address_id, 'addresstype' => [$rolestring]]);
if($na) {
$na->delete();
}
}
}
}
$this->redirect("Network", "Index", [],"view=roles&net=$network_id");
+8 -4
View File
@@ -36,7 +36,7 @@ class OrderController extends mfBaseController {
$this->layout->set("filter", $this->request->filter);
$filter = $this->getPreparedFilter($this->request->filter);
// pagination defaults
$pagination = [];
$pagination['start'] = 0;
@@ -83,10 +83,11 @@ class OrderController extends mfBaseController {
}
$this->layout()->set("mynetworks", $this->me->my_networks);
}
unset($filter['network_id']);
// get Orders in my networks
//var_dump($my_networks);exit;
$my_network_ids = [];
$orders = [];
//var_dump($this->me->my_networks);exit;
@@ -111,6 +112,8 @@ class OrderController extends mfBaseController {
}
}
$userIds = $this->me->getAddressOrParent()->getUserIds();
//var_dump($userIds);exit;
if(!array_key_exists("network_linked_status", $order_search)) {
$lonelyOrders = [];
unset($order_search["network_id"]);
@@ -121,7 +124,8 @@ class OrderController extends mfBaseController {
$lonelies = OrderModel::search($order_search);
}
} else {
$order_search['create_by'] = $this->me->id;
$order_search['create_by'] = $userIds;
//var_dump($order_search);exit;
$lonelies = OrderModel::search($order_search);
}
foreach($lonelies as $order) {
@@ -138,7 +142,7 @@ class OrderController extends mfBaseController {
$lonelies = OrderModel::search($order_search);
}
} else {
$order_search['create_by'] = $this->me->id;
$order_search['create_by'] = $userIds;
$lonelies = OrderModel::search($order_search);
}
foreach($lonelies as $order) {
+3 -1
View File
@@ -265,7 +265,9 @@ class OrderModel {
if(array_key_exists("create_by", $filter)) {
$create_by = $filter['create_by'];
if(is_numeric($create_by)) {
if(is_array($create_by)) {
$where .= " AND `Order`.create_by IN (".implode(",",$create_by).")";
} elseif(is_numeric($create_by)) {
$where .= " AND `Order`.create_by=$create_by";
}
}
+8 -3
View File
@@ -44,10 +44,15 @@ class PreorderController extends mfBaseController {
$this->layout()->set("networks", $this->me->my_networks);
}
$this->layout()->set("types", BuildingtypeModel::getAll());
$this->layout()->set("statuses", BuildingstatusModel::getAll());
if(!$this->request->preordercampaign_id) {
$this->layout()->setFlash("Keine Kampagne ausgewählt!", "warn");
}
$campaign_id = $this->request->preordercampaign_id;
$campaign = new Preordercampaign($campaign_id);
$this->layout()->set("campaign", $campaign);
$this->layout()->set("networksections", NetworksectionModel::getAll());
}
+24 -2
View File
@@ -179,8 +179,8 @@ class User extends mfBaseModel {
foreach($my_networks as $net) {
//var_dump($net);exit;
$address_id = $this->address_id;
if($this->getProperty("address")->parent_id) {
$address_id = $this->getProperty("address")->parent_id;
if($this->address->parent_id) {
$address_id = $this->address->parent_id;
}
$found = NetworkaddressModel::search(['network_id' => $net->id, "addresstype" => [$type], 'address_id' => $address_id]);
//var_dump($found);exit;
@@ -217,4 +217,26 @@ class User extends mfBaseModel {
return $my_networks;
}
public function getAddressOrParent() {
if(!$this->id) {
return null;
}
if(!$this->address->parent_id) {
return $this->address;
}
$parent = $this->address->parent;
$p = $parent;
while($p) {
if(!$p->parent_id) {
break;
}
$parent = $p->parent;
}
return $parent;
}
}