if (ForceRequest::isForcedRequest()) { /* Send only one POST request */ $wsName = ForceRequest::getWsName(); $dateFrom = ForceRequest::getDateFrom() . " " . ForceRequest::getTimeFrom(); $dateFrom = date::dateTimeFr2DateTimeBdd($dateFrom); $dateTo = ForceRequest::getDateTo() . " " . ForceRequest::getTimeTo(); $dateTo = date::dateTimeFr2DateTimeBdd($dateTo); doPostSynch($wsName, $dateFrom, $dateTo); } else { /* Send all POST requests in function of the scheduler permissions */ $wSOList = Scheduler::getWsNamePostList(); foreach ($wSOList as $wsName) { $dateFrom = $wSOInfosList[$CONF_LastrequestLbl . $wsName]; $dateFrom = DATE::timestamp2DateTimeBdd($dateFrom); $dateTo = Scheduler::getTimeOnInit(); $dateTo = DATE::timestamp2DateTimeBdd($dateTo); doPostSynch($wsName, $dateFrom, $dateTo); } } /* POST synchronisations */ function doPostSynch($wsName, $dateFrom, $dateTo) { global $dao, $postOSIReq, $CONF_LastrequestLbl, $isOkResponses, $nbChildrenProducts, $nbResponse200, $nbResponseError, $nbResponse409, $nbNoReference; /* Check if allow to get this request */ $isAllow = Scheduler::isAllowedToRequest($wsName); if (!ForceRequest::isForcedRequest() && !$isAllow) { return; } switch ($wsName) { /* * WSO-P005
public function action_edit() { $company = ORM::factory('service', $this->request->param('id', NULL)); if (!$company->loaded() or $company->user_id != $this->user->id) { $this->request->redirect('cabinet/company'); } $this->values = $company->as_array(); $work_category = ORM::factory('workcategory'); $cars = ORM::factory('car_brand')->get_cars_as_array(); $discounts = ORM::factory('discount')->get_all_as_array(); $org_types = ORM::factory('orgtype')->get_all_as_array(); $groups = ORM::factory('group')->get_groups_as_array(); $groups = array(0 => 'Выберите категорию') + $groups; $options_sub_group = array(); $type = 0; if ($_POST) { try { $extra_validation = Validation::factory($_POST); if (isset($_POST['sub_group_id'])) { $extra_validation->rule('sub_group_id', 'Model_Group::check_valid_group', array(':value')); $group_id = Arr::get($_POST, 'sub_group_id', NULL); } else { $extra_validation->rule('group_id', 'Model_Group::check_valid_group', array(':value')); $group_id = Arr::get($_POST, 'group_id', NULL); } $extra_validation->rule('city_name', 'not_empty')->rule('city_name', 'Model_Service::check_valid_city', array(':value')); $company->values($_POST, array('name', 'org_type', 'inn', 'director_name', 'contact_person', 'address', 'phone', 'code', 'fax', 'site', 'about', 'work_times', 'discount_id', 'coupon_text', 'ymap_lng', 'ymap_lat')); $company->user_id = $this->user->id; $company->group_id = $group_id; $company->city_id = ORM::factory('service')->get_id_city(Arr::get($_POST, 'city_name', NULL)); $company->metro_id = Arr::get($_POST, 'metro_id', NULL); $company->district_id = Arr::get($_POST, 'district_id', NULL); $company->active = 1; $company->date_create = DATE::formatted_time(); $company->date_edited = Date::formatted_time(); $company->save($extra_validation); $cars_input = Arr::get($_POST, 'model', array()); foreach ($cars_input as $c) { $company->add('cars', $c); } $works_input = Arr::get($_POST, 'work', array()); foreach ($works_input as $w) { $company->add('works', $w); } Logger::write(Logger::EDIT, 'Пользователь отредактировал данные компании ' . $company->name, $this->user); Message::set(Message::SUCCESS, 'Фирма успешно отредактирована!'); $this->request->redirect('cabinet/company'); } catch (ORM_Validation_Exception $e) { $errors = $e->errors('models'); if (isset($errors['_external'])) { foreach ($errors['_external'] as $key => $value) { $errors[$key] = $value; } unset($errors['_external']); } if ($_POST['group_id'] != 0) { $options_sub_group = ORM::factory('group')->get_sub_groups_for_one_group(Arr::get($_POST, 'group_id', NULL)); if (!empty($options_sub_group)) { $options_sub_group = array(0 => "Выберите подкатегорию") + $options_sub_group; } $type = ORM::factory('group')->get_type_group(Arr::get($_POST, 'group_id', NULL)); } $this->errors = $errors; $this->values = $_POST; $group_type = empty($this->values['group']) ? 0 : $this->values['group']; } } else { $this->values['city_name'] = $company->city->name; if ($company->group->parrent_id != 0) { $this->values['sub_group_id'] = $company->group->id; $par_group = ORM::factory('group', $company->group->parrent_id); $this->values['group_id'] = $par_group->id; $options_sub_group = ORM::factory('group')->get_sub_groups_for_one_group($par_group->id); if (!empty($options_sub_group)) { $options_sub_group = array(0 => "Выберите подкатегорию") + $options_sub_group; } } else { $this->values['group_id'] = $company->group->id; } $type = ORM::factory('group')->get_type_group($this->values['group_id']); foreach ($company->works->find_all() as $w) { $this->values['work'][$w->id] = $w->id; } foreach ($company->cars->find_all() as $c) { $this->values['model'][] = $c->id; } } $this->view = View::factory('frontend/cabinet/company/form')->set('company', $company)->set('url', 'cabinet/company/edit/' . $company->id)->set('groups', $groups)->set('type', $type)->set('options_sub_group', $options_sub_group)->set('org_types', $org_types)->set('work_category', $work_category)->set('auto_models', $cars)->set('city', ORM::factory('city'))->set('discounts', $discounts)->set('values', $this->values)->set('errors', $this->errors); $this->add_js('http://api-maps.yandex.ru/1.1/index.xml?key=' . $this->settings['YMaps_key'] . '&onerror=map_alert'); $this->template->title = 'Редактирование компании'; $this->template->bc['#'] = 'Редактирование компании'; $this->add_js('assets/js/script.js'); $this->template->content = $this->view; }