/** * Возвращает список должностей диллера * @param $params -- набор параметров поиска диллера * @return array -- список должностей */ public static function getPostsByDealer($params) { $dealer = \Dealers::findFirst($params); $stafflists = \Stafflist::find("stafflist_group=" . $dealer->stafflist_group_id); $posts = array(); foreach ($stafflists as $stafflist) { $posts[] = $stafflist->Posts; } return $posts; }
public function saveAction() { $errors = array(); $id = $this->request->get("id"); if ($this->request->isPost()) { $title = $this->request->get("title"); $address = $this->request->get("address"); $parent_id = $this->request->get("parent_id"); $parent_id = $parent_id ? $parent_id : NULL; $status = $this->request->get("status"); $city_id = $this->request->get("city_id"); $stafflist_group_id = $this->request->get("stafflist_group_id"); $inspectors = $this->request->get("inspectors"); $user = $this->session->get('user'); $brandsForm = $this->request->get("brands"); $activities = $this->request->get("activities"); $brandsForm = is_array($brandsForm) ? $brandsForm : array(); $activitiesForm = is_array($activities) ? $activities : array(); $dealer = $id ? \Dealers::findFirst($id) : new \Dealers(); $calculationBrands = BrandsService::getCalculationResult($user->BrandsMethodists, $dealer->DealersBrands, $brandsForm); $calculationActivities = ActivitiesService::getCalculationResult($user->ActivitiesMethodists, $dealer->DealersActivities, $activitiesForm); $dealer->DealersBrands->delete(); // delete all brands from dealer $dealer->DealersActivities->delete(); // delete all activities from dealer $dealer->DealersControllers->delete(); // delete all inspectors from dealer $dealer->title = $title; $dealer->address = $address; $dealer->parent_id = $parent_id; $dealer->status = $status; $dealer->city_id = $city_id; $dealer->stafflist_group_id = $stafflist_group_id; if ($id = !$dealer->save()) { foreach ($dealer->getMessages() as $msg) { $errors[] = $msg->getMessage(); } } else { $dealerBrands = array(); $dealerActivities = array(); $dealersControllers = array(); foreach ($calculationBrands as $brand) { $dealerBrand = new \DealersBrands(); $dealerBrand->brand_id = $brand->id; $dealerBrand->dealer_id = $id; $dealerBrands[] = $dealerBrand; } $dealer->DealersBrands = $dealerBrands; foreach ($calculationActivities as $activity) { $dealerActivity = new \DealersActivities(); $dealerActivity->activity_id = $activity->id; $dealerActivity->dealer_id = $id; $dealerActivities[] = $dealerActivity; } $dealer->DealersActivities = $dealerActivities; foreach ($inspectors as $userId) { $dealerInspector = new \DealersControllers(); $dealerInspector->dealer_id = $dealer->id; $dealerInspector->user_id = $userId; $dealersControllers[] = $dealerInspector; } $dealer->DealersControllers = $dealersControllers; if (!$dealer->save()) { } } if ($errors === array()) { // redirect to dealer edit $this->response->redirect('/methodist/dealer/edit/' . $dealer->id . "?saved=true"); } } else { $errors[] = "Немає данних для збереження"; } $this->view->errors = $errors; $this->view->back = $id ? '/methodist/dealer/edit/' . $id : '/methodist/dealer/add'; }