Added Filter to Order/Index
This commit is contained in:
@@ -17,31 +17,101 @@ class OrderController extends mfBaseController {
|
||||
protected function indexAction() {
|
||||
$this->layout()->setTemplate("Order/Index");
|
||||
//$this->layout()->set("orders", OrderModel::getAll());
|
||||
$filter = [];
|
||||
|
||||
$this->layout->set("filter", $this->request->filter);
|
||||
if($this->request->filter) {
|
||||
$filter = $this->getPreparedFilter($this->request->filter);
|
||||
}
|
||||
$my_networks = [];
|
||||
|
||||
if($this->me->is("Admin")) {
|
||||
$this->layout()->set("orders", OrderModel::getAll());
|
||||
$my_networks = NetworkModel::getAll();
|
||||
$this->layout()->set("mynetworks", $my_networks);
|
||||
|
||||
if(!count($filter)) {
|
||||
$this->layout()->set("orders", OrderModel::getAll());
|
||||
return true;
|
||||
}
|
||||
|
||||
if($filter['network_id']) {
|
||||
//$this->layout()->set("orders", OrderModel::search(['network_id' => $filter['network_id']]));
|
||||
$my_networks[] = new Network($filter['network_id']);
|
||||
}
|
||||
} else {
|
||||
$orders = [];
|
||||
//var_dump($this->me->my_networks);exit;
|
||||
foreach($this->me->my_networks as $network) {
|
||||
foreach(OrderModel::byNetwork($network->id) as $order) {
|
||||
if(!array_key_exists($order->id, $orders)) {
|
||||
$orders[$order->id] = $order;
|
||||
$my_networks = $this->me->myNetworks("salespartner");
|
||||
if(array_key_exists("network_id", $filter)) {
|
||||
$use_filter_network = false;
|
||||
|
||||
foreach($my_networks as $mn) {
|
||||
if($mn->id == $filter['network_id']) {
|
||||
$use_filter_network = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if($use_filter_network) {
|
||||
$my_networks = [];
|
||||
$my_networks[] = new Network($filter['network_id']);
|
||||
}
|
||||
|
||||
}
|
||||
$this->layout()->set("mynetworks", $this->me->my_networks);
|
||||
}
|
||||
unset($filter['network_id']);
|
||||
|
||||
// get Orders in my networks
|
||||
|
||||
$orders = [];
|
||||
//var_dump($this->me->my_networks);exit;
|
||||
foreach($my_networks as $network) {
|
||||
$order_search = [
|
||||
'network_id' => $network->id
|
||||
];
|
||||
|
||||
if(is_array($filter) && count($filter)) {
|
||||
foreach($filter as $name => $value) {
|
||||
$order_search[$name] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
foreach(OrderModel::search($order_search) as $order) {
|
||||
if(!array_key_exists($order->id, $orders)) {
|
||||
$orders[$order->id] = $order;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!count($filter)) {
|
||||
foreach(OrderModel::search(['create_by' => $this->me->id]) as $order) {
|
||||
if(!array_key_exists($order->id, $orders)) {
|
||||
$orders[$order->id] = $order;
|
||||
}
|
||||
}
|
||||
|
||||
$this->layout()->set("orders", $orders);
|
||||
}
|
||||
|
||||
$this->layout()->set("orders", $orders);
|
||||
|
||||
}
|
||||
|
||||
private function getPreparedFilter($filter) {
|
||||
$new_filter = [];
|
||||
|
||||
if(is_numeric($filter['networksection_id']) && $filter['networksection_id']) {
|
||||
$section = new Networksection($filter['networksection_id']);
|
||||
if($section->id) {
|
||||
$filter['network_id'] = $section->network_id;
|
||||
}
|
||||
}
|
||||
|
||||
foreach($filter as $name => $value) {
|
||||
$new_filter[$name] = $value;
|
||||
}
|
||||
|
||||
return $new_filter;
|
||||
}
|
||||
|
||||
|
||||
protected function addAction() {
|
||||
// TODO: filter by network permissions
|
||||
$this->layout()->setTemplate("Order/Form");
|
||||
|
||||
Reference in New Issue
Block a user