Changed permission checks in Order form items
This commit is contained in:
@@ -30,6 +30,61 @@ class Network extends mfBaseModel {
|
||||
return $addresses;
|
||||
}
|
||||
|
||||
public function getAddressesByType($type) {
|
||||
$addresses = [];
|
||||
|
||||
$addresstypes = NetworkAddressModel::search(['network_id' => $this->id, "type" => $type]);
|
||||
|
||||
|
||||
foreach($addresstypes as $at) {
|
||||
if($at->type == $type) {
|
||||
$addresses[$at->address_id] = $at->address;
|
||||
}
|
||||
}
|
||||
|
||||
// check for parent addresses
|
||||
foreach($addresses as $address) {
|
||||
if($address->parent_id && !array_key_exists($address->id, $addresses)) {
|
||||
$addresses[$address->parent_id] = new Address($address->parent_id);
|
||||
}
|
||||
}
|
||||
|
||||
// check for child addresses
|
||||
foreach($addresses as $address) {
|
||||
$childs = AddressModel::search(["parent_id" => $address->id]);
|
||||
foreach($childs as $child) {
|
||||
if(!array_key_exists($child->id, $addresses)) {
|
||||
$addresses[$child->id] = $child;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//var_dump($addresses);exit;
|
||||
return $addresses;
|
||||
}
|
||||
|
||||
public function getAddressUsersByAddresstype($type) {
|
||||
$addresses = $this->getAddressesByType($type);
|
||||
if(!$addresses) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$users = [];
|
||||
foreach($addresses as $address) {
|
||||
$tmp_users = UserModel::search(["address_id" => $address->id]);
|
||||
foreach($tmp_users as $u) {
|
||||
if(!array_key_exists($u->id, $users)) {
|
||||
$users[$u->id] = $u;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $users;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function loadAddresstypes() {
|
||||
if(!$this->id) {
|
||||
return false;
|
||||
|
||||
@@ -50,34 +50,23 @@ class OrderController extends mfBaseController {
|
||||
$this->layout()->set("products", ProductModel::getAll());
|
||||
$this->layout()->set("terminations", TerminationModel::getAll());
|
||||
} else {
|
||||
// get all addresses of my networks
|
||||
// get all salespartner addresses of my networks
|
||||
$network_ids = [];
|
||||
$addresses = [];
|
||||
|
||||
// get users from salespartner addresses of my networks
|
||||
$users = [];
|
||||
foreach($this->me->my_networks as $network) {
|
||||
$network_ids[] = $network->id;
|
||||
foreach(AddressModel::byNetwork($network->id, "salespartner") as $address) {
|
||||
if(!array_key_exists($address->id, $addresses)) {
|
||||
$addresses[] = $address;
|
||||
$tmp_users = $network->getAddressUsersByAddresstype("salespartner");
|
||||
foreach($tmp_users as $user) {
|
||||
if(!in_array($user->id, $users)) {
|
||||
$users[] = $user->id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$users = [];
|
||||
$user_ids = [];
|
||||
foreach($addresses as $address) {
|
||||
$address_id = $address->id;
|
||||
if($address->parent_id) {
|
||||
$address_id = $address->parent_id;
|
||||
}
|
||||
foreach(UserModel::search(['address_id' => $address_id]) as $user) {
|
||||
if(!array_key_exists($user->id, $users)) {
|
||||
$users[$user->id] = $user;
|
||||
$user_ids[] = $user->id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$addresses = AddressModel::search(['create_by' => $user_ids]);
|
||||
// get addresses from salespartner address' user ids
|
||||
$addresses = AddressModel::search(["create_by" => $users]);
|
||||
$this->layout()->set("addresses", $addresses);
|
||||
|
||||
// get terminations in my networks
|
||||
@@ -88,7 +77,7 @@ class OrderController extends mfBaseController {
|
||||
$products = [];
|
||||
foreach(ProductNetworkModel::search(["network_id" => $network_ids]) as $pn) {
|
||||
if(!array_key_exists($pn->product_id, $products))
|
||||
$products[$pn->product_id] = $pn->product;
|
||||
$products[$pn->product_id] = $pn->product;
|
||||
}
|
||||
$this->layout()->set("products", $products);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user