'ВебОценщик', 'subtitle'=> '', 'status'=> 'success', 'msg'=> [], 'tabs'=> '', 'content'=> '', 'destination' => '', ); function dpm($data) { return '
'.print_r($data, true).'
'; } function msg($op, $msg_text = '') { static $msg = array(); if($op == 'get') { return $msg; } else { if(is_array($msg_text)) { $msg[] = dpm([$op => $msg_text]); } else { $msg[] = dpm([$op => $msg_text]); } } } $breadcrumb_array_svg = ' '.PHP_EOL; if(isset($_POST)) { //TODO выполняем запрос по API на добавления заказа на отчет об оценке. //$comment = mysql_real_escape_string($_POST['comment']); //$cabinetId = mysql_real_escape_string($_POST['cabinet_id']); //$showSame = mysql_real_escape_string($_POST['showSame']); //$showSame = mysql_real_escape_string($_POST['showSame']); //$showEmptyLinks = mysql_real_escape_string($_POST['showEmptyLinks']); //msg('POST', $_POST); $post = clearInputData($_POST); // Выполнение метода в зависимости от нажатой кнопки. добавление объекта, закрузка документов и пр. if(!empty($post['form_id'])){ $form = WebAppRaiserForm::getForm($post['form_id']); $status = $form->validate(); $form->submit($status, $page, $WebAppRaiserAPI); //msg('STATUS', $status); } } // Отображаем шапку страницы require($_SERVER['DOCUMENT_ROOT']."/templates/new-header.php"); // Список валидных кодов операций $valid_ops = array( 'index' => 'Отчет об оценке', 'msg_list' => 'Список сообщений', 'msg_get' => 'Прочитать сообщение', //'order_list' => 'Список заказов', 'order_post' => 'Отправкв заказа', 'order_info' => 'Получение информации о заказе', 'order_docs' => 'Дополнительные документы к заказу', 'order_report' => 'Получение отчета об оценке', 'order_txt' => 'Отправка текстового сообщения к заказу', 'order_del' => 'Удалить заказ', 'banks'=> 'Список банков', 'obj_checkinfo'=> 'Проверка наличия информации для проведения расчета стоимости', 'obj_calculate'=> 'Расчет стоимости объекта', 'person_checkinfo'=> 'Получение списка проверок физического лица', 'person_verify' => 'Запрос проверки физического лица', 'person_getverif' => 'Получение информации о проверке физ лица', 'person_report' => 'Получение отчета о проверке физ лица' ); // Список табов страницы $valid_tabs = array( 'index'=> array( 'title'=> 'Заказ на оценку', 'active'=> ['index', 'order_list', 'order_post', 'order_info', 'order_docs', 'order_report', 'order_txt'], ), /*'msg_list'=> array( 'title'=> 'История', 'active'=> ['msg_list', 'msg_get'], ), // */ /*'banks'=> array( 'title'=> 'Банки', 'active'=> ['banks'], ), // */ /*'obj_checkinfo'=> array( 'title'=> 'Расчет стоимости', 'active'=> ['obj_checkinfo', 'obj_calculate'], ), // */ ); $get=clearInputData($_GET); if(empty($get['op'])) $get['op'] = 'index'; if(isset($get['status'])) $page['status'] = $get['status']; if(isset($get['msg'])) $page['msg'][] = strip_tags($get['msg']); // Рендеринг табов foreach($valid_tabs as $tab_key => $tab_item){ $active_class = ''; if(in_array($get['op'], $tab_item['active'])) $active_class = ' active'; $page['tabs'] .= sprintf('%s'.PHP_EOL, $get['id'], $tab_key, $active_class, $tab_item['title']); } if(isset($get) && isset($get['id']) && $get['id'] != 0) { // Выборка сведений об объекте. // отображать разную информацию в завсимости от параметра $_GET['op'] $obj = WebAppRaiserObject::getObject($get['id']); $object = $obj->get('object'); $warObjectData = WebAppRaiserOrder::load($get['id'], $WebAppRaiserAPI); //msg('ObjectData', [$obj, $warObjectData]); $page['breadcrumbs']['/my-objects.php'] = 'Объекты'; //$page['breadcrumbs']['/object.php?id='.$get['id']] = 'Объект '.$get['id']; $page['breadcrumbs']['/war-object-report.php?op=index&id='.$get['id']] = 'Заказы ВебОценщик по объекту '.$get['id']; if($WebAppRaiserAPI->war_expired){ $page['status'] = 'error'; $page['msg'][] = 'Ваш токен для доступа к API просрочен.'; $page['content'] .= '

Ваш токен просрочен. Обновите его в настройках:

'; $page['content'] .= '

Обновить настройки

'; } elseif(empty($WebAppRaiserAPI->get('war_id'))){ $page['status'] = 'error'; $page['msg'][] = 'Вы не подключены к API.'; $page['content'] .= '
'; $page['content'] .= '

Вход по секретному ключу

'; $page['content'] .= '

Вы не можете работать с API ВебОценщик. Если Вам известен логин и секретный ключ для подключения к API, то введите эти данные в настройках:

'; $page['content'] .= '

Обновить настройки

'; $page['content'] .= '
'; $page['content'] .= '

Вход по пинкоду

'; $page['content'] .= '

Если Вам известен логин и пинкод для подключения общего доступа к API, то введите эти данные в этой форме:

'; $pincode_form = WebAppRaiserForm::getForm('api_pincode_form'); $page['content'] .= $pincode_form->render(['uid'=>$user->id, 'destination' => 'war-object-report.php?op=index&id='.$get['id']]); $page['content'] .= '
'; } else { // выполняем операции только если задан правильно код операции if(isset($get['op']) && isset($valid_ops[$get['op']])) { //TODO переключаемся по кодам операций switch($get['op']){ case 'index': $page['subtitle'] = 'Отчет об оценке'; if(empty($warObjectData)){ // Если нет заказа, то создаем и показываем форму подачи заказа $fields = array( 'woid' => 0, 'object_id'=> $get['id'], 'address'=> $object['adres'], 'contractCost' => $object['stoim'], //'customerName' => $object['sobstv'], //'customerPhone'=> $object['phone'], 'managerEmail'=> $WebAppRaiserAPI->get('war_username'), 'cadNum' => $object['cadastral_number'], //Кадастровый номер объекта 'objectType' => WebAppRaiserObject::getAPIType($object['type']), 'buildingStage' => 'BUILT', 'floor'=> $object['etazh'], //Этаж расположения объекта 'totalFloors' => $object['etazh_iz'], //Количество этажей в доме 'square' => $object['ploshad'], //Площадь объекта 'decorationType' => 'GOOD', 'buildYear' => $object['build_year'], //Год постройки дома 'wallMaterial' => WebAppRaiserObject::getAPIMaterial($object['house_material']), 'latitude' => $object['latitude'], 'longitude' => $object['longitude'], 'estimateValue' => $object['stoim'], 'сontactName' => trim($user->first_name.' '.$user->last_name), 'сontactPhone' => $user->phone, 'сontactEmail' => $user->email, 'images' => $obj->getFotos('create_order_form'), 'destination' => 'war-object-report.php?op=index&id='.$get['id'], //'appraisalCompanyId' => $WebAppRaiser->get('appraisalCompanyId'), ); $form = WebAppRaiserForm::getForm('order_create_form'); $page['content'] .= $form->render($fields); $page['content'] .= WebAppRaiserForm::getForm('cost_analice_form')->render($fields, true); } else { // Если есть заказ на оценку, то показываем информацию о заказе $page['content'] .= '

Новый заказ

'; foreach($warObjectData as $obj){ $page['content'] .= $obj->render(); } } break; case 'msg_list': $page['subtitle'] = 'Список сообщений'; $page['breadcrumbs']['/war-object-report.php?op=msg_list&id='.$get['id'].'&order_id='.$get['order_id']] = 'Сообщения по заказу '.$get['order_id']; $WebAppRaiserAPI->сhatMessages($get['order_id']); WebAppRaiserOrder::updateMessages($WebAppRaiserAPI); $page['content'] .= '
'; $page['content'] .= '

Сообщения в чате

'; $page['content'] .= WebAppRaiserOrder::msgTable($get['id'], $get['order_id'], true); $page['content'] .= '

Написать в чат

'; $page['content'] .= '
'; $page['content'] .= '

История изменений

'; $page['content'] .= WebAppRaiserOrder::msgTable($get['id'], $get['order_id'], false); $page['content'] .= '
'; $fields = array( 'object_id'=> $get['id'], 'order_id'=> $get['order_id'], 'destination' => 'war-object-report.php?op=msg_list&id='.$get['id'].'&order_id='.$get['order_id'], ); $page['content'] .= WebAppRaiserForm::getForm('message_chat_form')->render($fields, true); //msg('ObjectData', $warObjectData); //msg('USER', $user); break; case 'msg_get': $page['subtitle'] = 'Прочитать сообщение'; break; case 'order_post': $page['subtitle'] = 'Отправка заказа'; $page['breadcrumbs']['/war-object-report.php?op=order_post&id='.$get['id']] = 'Создать заказ'; $fields = array( 'woid' => 0, 'object_id'=> $get['id'], 'address'=> $object['adres'], 'contractCost' => $object['stoim'], //'customerName' => $object['sobstv'], //'customerPhone'=> $object['phone'], 'managerEmail'=> $WebAppRaiserAPI->get('war_username'), 'cadNum' => $object['cadastral_number'], //Кадастровый номер объекта 'objectType' => WebAppRaiserObject::getAPIType($object['type']), 'buildingStage' => 'BUILT', 'floor'=> $object['etazh'], //Этаж расположения объекта 'totalFloors' => $object['etazh_iz'], //Количество этажей в доме 'square' => $object['ploshad'], //Площадь объекта 'decorationType' => 'GOOD', 'buildYear' => $object['build_year'], //Год постройки дома 'wallMaterial' => WebAppRaiserObject::getAPIMaterial($object['house_material']), 'latitude' => $object['latitude'], 'longitude' => $object['longitude'], 'estimateValue' => $object['stoim'], 'сontactName' => trim($user->first_name.' '.$user->last_name), 'сontactPhone' => $user->phone, 'сontactEmail' => $user->email, 'images' => $obj->getFotos('create_order_form'), 'destination' => 'war-object-report.php?op=index&id='.$get['id'], //'appraisalCompanyId' => $WebAppRaiser->get('appraisalCompanyId'), ); $form = WebAppRaiserForm::getForm('order_create_form'); $page['content'] .= $form->render($fields); $page['content'] .= WebAppRaiserForm::getForm('cost_analice_form')->render($fields, true); break; case 'order_info': $page['subtitle'] = 'Получение информации о заказе'; break; case 'order_docs': $page['subtitle'] = 'Дополнительные документы к заказу'; $page['breadcrumbs']['/war-object-report.php?op=order_docs&id='.$get['id'].'&order_id='.$get['order_id']] = 'Документы к заказу '.$get['order_id']; $page['content'] .= '

Добавить документы

'; $page['content'] .= WebAppRaiserDocs::renderDocsTable(WebAppRaiserDocs::getDocs($get['order_id'])); $fields = array( 'object_id'=> $get['id'], 'order_id'=> $get['order_id'], 'destination' => 'war-object-report.php?op=order_docs&id='.$get['id'].'&order_id='.$get['order_id'], ); $page['content'] .= WebAppRaiserForm::getForm('order_docs_form')->render($fields, true); break; case 'order_report': $page['subtitle'] = 'Получение отчета об оценке'; $page['breadcrumbs']['/war-object-report.php?op=order_report&id='.$get['id'].'&order_id='.$get['order_id']] = 'Скачать отчет к заказу '.$get['order_id']; $page['content'] .= '

Скачать отчет об оценке

'; $page['content'] .= '

Скачать набор документов в формате ZIP.

'; $fields = array( 'object_id'=> $get['id'], 'order_id'=> $get['order_id'], 'destination' => 'war-object-report.php?op=order_report&id='.$get['id'].'&order_id='.$get['order_id'], ); $page['content'] .= WebAppRaiserForm::getForm('order_getreport_form')->render($fields); break; case 'order_txt': $page['subtitle'] = 'Отправка текстового сообщения к заказу'; $page['content'] .= '

В процессе разработки.

'; $page['content'] .= '

Это форма для отправки текстового сообщения. Данная опция является излишней, так как форма сообщения будет открываться в модальном виде.

'; break; case 'order_del': $page['subtitle'] = 'Удаление заказа'; $page['breadcrumbs']['/war-object-report.php?op=order_del&id='.$get['id'].'&order_id='.$get['order_id']] = 'Удалить заказ '.$get['order_id']; $fields = array( 'object_id'=> $get['id'], 'order_id'=> $get['order_id'], ); $page['content'] .= '

Внимание!!!

'; $page['content'] .= '

Заказ на оценку будет удален в системе ВебОценщик.

'; $page['content'] .= WebAppRaiserForm::getForm('order_delete_form')->render($fields); break; /*case 'banks': $page['subtitle'] = 'Список банков'; $banks = $WebAppRaiserAPI->loadBanks(); $page['msg'][] = $dpm($banks); break; // */ case 'obj_checkinfo': $page['subtitle'] = 'Проверка наличия информации для проведения расчета стоимости'; break; case 'obj_calculate': $page['subtitle'] = 'Расчет стоимости объекта'; break; case 'person_checkinfo': $page['subtitle'] = 'Получение списка проверок физического лица'; break; case 'person_verify': $page['subtitle'] = 'Запрос проверки физического лица'; break; case 'person_getverif': $page['subtitle'] = 'Получение информации о проверке физ лица'; break; case 'person_report': $page['subtitle'] = 'Получение отчета о проверке физ лица'; break; } } else { $page['status'] = 'error'; $page['msg'][] = 'Не найден код операции'; $page['subtitile'] = 'Операция не найдена'; } } } else { $page['status'] = 'error'; $page['message'] = 'Не найден ИД объкта!'; } $breadcrumbs = ''; if(!empty($page['breadcrumbs']) && is_array($page['breadcrumbs'])){ //$bread_keys = array_keys($page['breadcrumbs']); $count_keys = count($page['breadcrumbs']); foreach($page['breadcrumbs'] as $key => $bc){ $count_keys = $count_keys - 1; $x = explode('|', $bc); $breadcrumbs .= ''.$x[0]; if($count_keys > 0){ $breadcrumbs .= $breadcrumb_array_svg; } $breadcrumbs .= PHP_EOL.''.PHP_EOL; } } ?>

'; if($page['status'] == 'error') echo '
'.implode('
', $page['msg']).'
'; else echo '
'.implode('
', $page['msg']).'
'; print '
'; } ?>

Объект: ()