request; header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 0'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS'); header('Access-Control-Allow-Headers: X-Debug, X-Requested-With, Content-Type, Accept, Origin, Authorization, Access-Token'); header('Access-Control-Expose-Headers: Authorization, Access-Token'); header('Content-Type: application/json'); if (isset($_POST['request']) && $_POST['request'] == 'create_requisition') { // var_dump($_POST);die; // $token = $_POST['token']; // $full_name = $_POST['full_name']; // $phone_number = $_POST['phone_number']; // $request = $_POST['request']; // $user_id = $_POST['user_id']; $data = $_POST; $complex = new Complex(); $complex->create_frame_requisition($data); echo json_encode(['status' => true, 'message' => 'Заявка создана'], JSON_UNESCAPED_UNICODE); exit; } if(isset($_POST['request']) && $_POST['request'] == 'create_import') { $user_id = 0; if(isset($_POST['user_id'])){ $user_id = (int)$_POST['user_id']; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } if (isset($_FILES['document'])) { $document = $_FILES['document']; } else { if (isset($_POST['import_url'])) { $content = file_get_contents($_POST['import_url']); $filename = basename($_POST['import_url']); $temp_name = tempnam(sys_get_temp_dir(), 'tmp-document'); file_put_contents($temp_name, $content); $document = [ 'name' => $filename, 'tmp_name' => $temp_name ]; } } if (!empty($document)) { $urls = $complex->createImport($document); echo json_encode($urls, JSON_UNESCAPED_UNICODE); exit; } echo json_encode(['status' => false, 'message' => 'Document required'], JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_house_import') { $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $import_id = (int)$data->import_id; $fields = (array)$data->fields; $result = $complex->updateImportHouse($fields, $import_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'start_house_import') { $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $import_id = (int)$data->import_id; $result = $complex->startImportHouse($import_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_house_import') { $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $import_id = (int)$data->import_id; $result = $complex->getImportHouse($import_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'download_house') { $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $house_id = (int)$data->house_id; $complex_name = $data->complex_name; // Генерируем Excel и сразу отдаем $complex->downloadHouse($house_id, $complex_name); } if ($request == 'get_house_import_status') { $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $import_id = (int)$data->import_id; $result = $complex->getImportHouseStatus($import_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'add_photos_to_complex') { $complex = new Complex(); $complex_id = $_POST['complex_id']; $input_photos = $_FILES['photos']; $photos = []; if (!empty($input_photos)) { foreach ($input_photos['name'] as $index => $value) { $photos[] = [ 'name' => $value, 'tmp_name' => $input_photos['tmp_name'][$index], 'type' => $input_photos['type'][$index], 'error' => $input_photos['error'][$index], 'size' => $input_photos['size'][$index], ]; } } $urls = $complex->addPhotoToComplex($photos, $complex_id); echo json_encode($urls, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'add_photos_to_house') { $complex = new Complex(); $house_id = $_POST['house_id']; $input_photos = $_FILES['photos']; $photos = []; if (!empty($input_photos)) { foreach ($input_photos['name'] as $index => $value) { $photos[] = [ 'name' => $value, 'tmp_name' => $input_photos['tmp_name'][$index], 'type' => $input_photos['type'][$index], 'error' => $input_photos['error'][$index], 'size' => $input_photos['size'][$index], ]; } } $urls = $complex->addPhotosToHouse($photos, $house_id); echo json_encode($urls, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'save_house_utp') { $complex = new Complex(); $house_id = $_POST['house_id']; $desc = $_POST['desc']; $id = isset($_POST['id']) ? $_POST['id'] : null; $title = $_POST['title']; $input_photo = isset($_FILES['photo']) ? $_FILES['photo'] : null; if (!empty($input_photo)) { $photo = [ 'name' => $input_photo['name'], 'tmp_name' => $input_photo['tmp_name'], 'type' => $input_photo['type'], 'error' => $input_photo['error'], 'size' => $input_photo['size'] ]; } else { $photo = null; } $urls = $complex->saveHouseUTP($house_id, $desc, $id, $title, $photo); echo json_encode($urls, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'save_house_decoration') { $complex = new Complex(); $house_id = $_POST['house_id']; $desc = $_POST['desc']; $id = isset($_POST['id']) ? $_POST['id'] : null; $decorationId = $_POST['decoration_id']; $input_photo = isset($_FILES['photo']) ? $_FILES['photo'] : null; $input_photo2 = isset($_FILES['photo2']) ? $_FILES['photo2'] : null; $input_photo3 = isset($_FILES['photo3']) ? $_FILES['photo3'] : null; $input_photo4 = isset($_FILES['photo4']) ? $_FILES['photo4'] : null; $input_photo5 = isset($_FILES['photo5']) ? $_FILES['photo5'] : null; if (!empty($input_photo)) { $photo = [ 'name' => $input_photo['name'], 'tmp_name' => $input_photo['tmp_name'], 'type' => $input_photo['type'], 'error' => $input_photo['error'], 'size' => $input_photo['size'] ]; } else { $photo = $_POST['photo']; } if (!empty($input_photo2)) { $photo2 = [ 'name' => $input_photo2['name'], 'tmp_name' => $input_photo2['tmp_name'], 'type' => $input_photo2['type'], 'error' => $input_photo2['error'], 'size' => $input_photo2['size'] ]; } else { $photo2 = $_POST['photo2']; } if (!empty($input_photo3)) { $photo3 = [ 'name' => $input_photo3['name'], 'tmp_name' => $input_photo3['tmp_name'], 'type' => $input_photo3['type'], 'error' => $input_photo3['error'], 'size' => $input_photo3['size'] ]; } else { $photo3 = $_POST['photo3']; } if (!empty($input_photo4)) { $photo4 = [ 'name' => $input_photo4['name'], 'tmp_name' => $input_photo4['tmp_name'], 'type' => $input_photo4['type'], 'error' => $input_photo4['error'], 'size' => $input_photo4['size'] ]; } else { $photo4 = $_POST['photo4']; } if (!empty($input_photo5)) { $photo5 = [ 'name' => $input_photo5['name'], 'tmp_name' => $input_photo5['tmp_name'], 'type' => $input_photo5['type'], 'error' => $input_photo5['error'], 'size' => $input_photo5['size'] ]; } else { $photo5 = $_POST['photo5']; } $urls = $complex->saveHouseDecoration($house_id, $desc, $id, $decorationId, $photo, $photo2, $photo3, $photo4, $photo5); echo json_encode($urls, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'add_plan_to_house') { $complex = new Complex(); $house_id = $_POST['house_id']; $position = $_POST['position']; $input_photos = $_FILES['photos']; $photos = []; if (!empty($input_photos)) { foreach ($input_photos['name'] as $index => $value) { $photos[] = [ 'name' => $value, 'tmp_name' => $input_photos['tmp_name'][$index], 'type' => $input_photos['type'][$index], 'error' => $input_photos['error'][$index], 'size' => $input_photos['size'][$index], ]; } } $urls = $complex->addPlanToHouse($house_id, $photos, $position); echo json_encode($urls, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_media_entrances') { $house_id = (int)$data->house_id; $includes = (array)$data->includes; $user_id = 0; $has_token = false; if (isset($data->token)) { $token = trim($data->token); $has_token = true; $complex = new Complex(); $accessData = $complex->get_frame_access($token); if (!empty($accessData['access']) && isset($accessData['agency_id'])) { $user_id = (int)$accessData['agency_id']; } else { http_response_code(403); echo json_encode([ 'error' => 'Access denied or invalid token', 'token' => $token ], JSON_UNESCAPED_UNICODE); exit; } }else if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->get_media_entrances($house_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'save_complex_action') { $complex = new Complex(); $complex_id = $_POST['complex_id']; $desc = $_POST['desc']; $id = isset($_POST['id']) ? $_POST['id'] : null; $name = $_POST['name']; $input_photo = isset($_FILES['image']) ? $_FILES['image'] : null; if (!empty($input_photo)) { $photo = [ 'name' => $input_photo['name'], 'tmp_name' => $input_photo['tmp_name'], 'type' => $input_photo['type'], 'error' => $input_photo['error'], 'size' => $input_photo['size'] ]; } else { $photo = null; } $response = $complex->saveComplexAction($name, $desc, $photo, '', $id, $complex_id); echo json_encode($response, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'add_floor_plan_to_house') { $complex = new Complex(); $house_id = $_POST['house_id']; $input_photo = $_FILES['photo']; if (!empty($input_photo)) { $photo = [ 'name' => $input_photo['name'], 'tmp_name' => $input_photo['tmp_name'], 'type' => $input_photo['type'], 'error' => $input_photo['error'], 'size' => $input_photo['size'] ]; $urls = $complex->addFloorPlanToHouse($house_id, $photo); echo json_encode($urls, JSON_UNESCAPED_UNICODE); exit; } echo json_encode(['status' => true], JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_house_plans') { $complex = new Complex(); $plan_ids = (array)$data->plan_ids; $result = $complex->deleteHousePlans($plan_ids); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_house_utp') { $complex = new Complex(); $id = (int)$data->id; $result = $complex->deleteHouseUTP($id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_house_decoration') { $complex = new Complex(); $id = (int)$data->id; $result = $complex->deleteHouseDecoration($id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_complex_action') { $complex = new Complex(); $id = (int)$data->id; $result = $complex->deletecComplesAction($id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_house_photo') { $complex = new Complex(); $photo_id = (int)$data->photo_id; $result = $complex->deleteHousePhoto($photo_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_complex_photo') { $complex = new Complex(); $photo_id = (int)$data->photo_id; $result = $complex->deleteComplexPhoto($photo_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'update_complex_photo') { $complex = new Complex(); $photo_id = $_POST['photo_id']; $input_photo = $_FILES['photo']; $photos = []; $result = []; if ($input_photo) { $photo = [ 'name' => $input_photo['name'], 'tmp_name' => $input_photo['tmp_name'], 'type' => $input_photo['type'], 'error' => $input_photo['error'], 'size' => $input_photo['size'], ]; $result = $complex->updateComplexPhoto($photo, $photo_id); } else { $result = ['status' => false, 'message' => 'Photo not found']; } echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'add_photos_to_room_plan') { $complex = new Complex(); $plan_id = $_POST['plan_id']; $position = $_POST['position']; $input_photos = $_FILES['photos']; $photos = []; if (!empty($input_photos)) { foreach ($input_photos['name'] as $index => $value) { $photos[] = [ 'name' => $value, 'tmp_name' => $input_photos['tmp_name'][$index], 'type' => $input_photos['type'][$index], 'error' => $input_photos['error'][$index], 'size' => $input_photos['size'][$index], ]; } } $urls = $complex->addPhotosToRoomPlan($photos, $plan_id, $position); echo json_encode($urls, JSON_UNESCAPED_UNICODE); exit; } if ($_POST['request'] == 'update_photo_floor_plan') { $complex = new Complex(); $floor_plan_id = $_POST['floor_plan_id']; $input_photo = $_FILES['photo']; if (!empty($input_photo)) { $photo = [ 'name' => $input_photo['name'], 'tmp_name' => $input_photo['tmp_name'], 'type' => $input_photo['type'], 'error' => $input_photo['error'], 'size' => $input_photo['size'], ]; } $complex->deletePhotoFloorPlan($floor_plan_id); $photo = $complex->addPhotoToFloorPlan($photo, $floor_plan_id); echo json_encode($photo, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_plan_photo_position') { $complex = new Complex(); $image_id = $data->image_id; $position = $data->position; $result = $complex->updatePlanPhotoPosition($image_id, $position); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_photo_from_room_plan') { $complex = new Complex(); $photo_id = (int)$data->photo_id; $result = $complex->deletePhotoFromRoomPlan($photo_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_house_plans') { $complex = new Complex(); $plan_ids = (array)$data->plan_ids; $fields = (array)$data->fields; $result = $complex->updateHousePlans($plan_ids, $fields); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_house_floor_plans') { $complex = new Complex(); $plan_ids = (array)$data->plan_ids; $floor_ids = (array)$data->floor_ids; $fields = (array)$data->fields; $use_bulk = (bool)$data->use_bulk; $result = $complex->updateHouseFloorPlans($plan_ids, $floor_ids, $fields, $use_bulk); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Типы комплексов if($request == 'get_types_complex') { $complex = new Complex(); $types = $complex->get_types_complex(); echo json_encode($types, JSON_UNESCAPED_UNICODE); exit; } //Страны if($request == 'get_country'){ $complex = new Complex(); $country = $complex -> get_country(); echo json_encode($country, JSON_UNESCAPED_UNICODE); exit; } //Регионы if($request == 'get_rf_regions') { $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $rf_regions = $complex->get_rf_regions(); echo json_encode($rf_regions, JSON_UNESCAPED_UNICODE); exit; } //Метро if($request == 'get_metro') { $region_id = $data->region_id; $complex = new Complex(); $metro_list = $complex->get_metro($region_id); echo json_encode($metro_list, JSON_UNESCAPED_UNICODE); exit; } //ЖК новостройки if($request == 'get_blocks'){ $complex = new Complex(); $result = $complex->get_blocks(); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Преобразование нового корпуса if($request == 'convert_corpus') { $complex = new Complex(); $corpus = $data->corpus; $deadline = $data->deadline; $corpus_id = $data->corpus_id; $corpus_floors = (int)$data->corpus_floors; $corpus_floors_ready = (int)$data->corpus_floors_ready; $corpus_fz_214 = (int)$data->corpus_fz_214; $corpus_status = $data->corpus_status; $result = $complex->corpus_convert($corpus, $deadline, $corpus_id, $corpus_floors, $corpus_floors_ready, $corpus_fz_214, $corpus_status); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Список застройщиков if($request == 'get_builders'){ $agency_id = null; if(isset($data->agency_id)){ $agency_id = (int)$data->agency_id; } $complex = new Complex(); $result = $complex->get_builder_list($agency_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Добавить застройщика if($request == 'add_builder'){ $name = $data->name; $phone = $data->phone; $link = $data->link; $complex = new Complex(); $result = $complex->addBuilder($name, $phone, $link); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Фото ЖК if($request == 'get_photos'){ $block_id = (int)$data->block_id; $complex = new Complex(); $result = $complex->getPhotos($block_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Типы оплат if($request == 'get_payment_types') { $complex = new Complex(); $types = $complex->get_payment_types(); echo json_encode($types, JSON_UNESCAPED_UNICODE); exit; } //Типы отделок if($request == 'get_deсoration_types') { $result = array(); $complex = new Complex(); $types = $complex->get_decarations(); if(isset($types['options'])){ $result = $types['options']; } echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Классы жилья if($request == 'get_housing_class') { $complex = new Complex(); $types = $complex->get_housing_class(); echo json_encode($types, JSON_UNESCAPED_UNICODE); exit; } //Отделка if($request == 'get_decorations'){ $complex = new Complex(); $decorations = $complex->get_decorations(); echo json_encode($decorations, JSON_UNESCAPED_UNICODE); exit; } if($request == 'get_payment_types_list'){ $complex = new Complex(); $paymentTypesList = $complex->get_payment_types_list(); echo json_encode($paymentTypesList, JSON_UNESCAPED_UNICODE); exit; } if($request == 'get_windows_placements'){ $complex = new Complex(); $windows_placements = $complex->get_windows_placements(); echo json_encode($windows_placements, JSON_UNESCAPED_UNICODE); exit; } //Типы домов if($request == 'get_house_types'){ $complex = new Complex(); $house_types = $complex->get_house_types(); echo json_encode($house_types, JSON_UNESCAPED_UNICODE); exit; } //Материалы домов if($request == 'get_house_material'){ $complex = new Complex(); $house_material = $complex->get_house_material(); echo json_encode($house_material, JSON_UNESCAPED_UNICODE); exit; } if($request == 'get_house_plans') { $house_id = (int)$data->house_id; $has_token = false; if (isset($data->token)) { $has_token = true; } $complex = new Complex(); $house_plans = $complex->get_house_plans($house_id, $has_token); echo json_encode($house_plans, JSON_UNESCAPED_UNICODE); exit; } if($request == 'get_entrances_floor_plans') { $user_id = 0; $has_token = false; if (isset($data->token)) { $token = trim($data->token); $has_token = true; $complex = new Complex(); $accessData = $complex->get_frame_access($token); if (!empty($accessData['access']) && isset($accessData['agency_id'])) { $user_id = (int)$accessData['agency_id']; } else { http_response_code(403); echo json_encode([ 'error' => 'Access denied or invalid token', 'token' => $token ], JSON_UNESCAPED_UNICODE); exit; } }else if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $house_id = (int)$data->house_id; $entrances = $complex->get_entrances_floor_plans($house_id, $has_token); echo json_encode($entrances, JSON_UNESCAPED_UNICODE); exit; } if($request == 'get_house_floors_plans') { $house_id = (int)$data->house_id; $complex = new Complex(); $house_floor_plans = $complex->get_house_floors_plans($house_id); echo json_encode($house_floor_plans, JSON_UNESCAPED_UNICODE); exit; } if($request == 'get_floor_plan') { $floor_plan_id = (int)$data->floor_plan_id; $complex = new Complex(); $floor_plan = $complex->get_floor_plan($floor_plan_id); echo json_encode($floor_plan, JSON_UNESCAPED_UNICODE); exit; } // FACADES if ($_POST['request'] == 'add_facade_to_house') { $complex = new Complex(); $house_id = $_POST['house_id']; $position = $_POST['position']; $hover_color = $_POST['hover_color']; $opacity = $_POST['opacity']; $input_photo = $_FILES['photo']; if (!empty($input_photo)) { $photo = [ 'name' => $input_photo['name'], 'tmp_name' => $input_photo['tmp_name'], 'type' => $input_photo['type'], 'error' => $input_photo['error'], 'size' => $input_photo['size'] ]; $urls = $complex->addFacadeToHouse($house_id, $photo, $position, $hover_color, $opacity); echo json_encode($urls, JSON_UNESCAPED_UNICODE); exit; } echo json_encode(['status' => false], JSON_UNESCAPED_UNICODE); exit; } if ($request == 'add_facade_figure') { $complex = new Complex(); $facade_id = (int)$data->facade_id; $points = (array)$data->points; $result = $complex->addFacadeFigure($facade_id, $points); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_facade_figure') { $complex = new Complex(); $figure_id = (int)$data->figure_id; $fields = (array)$data->fields; $result = $complex->updateFacadeFigure($figure_id, $fields); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_facade_figure') { $figure_id = (int)$data->figure_id; $complex = new Complex(); $result = $complex->deleteFacedeFigure($figure_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_house_facade') { $complex = new Complex(); $facade_id = $data->facade_id; $fields = (array)$data->fields; $result = $complex->updateHouseFacade($facade_id, $fields); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if($request == 'get_house_facades') { $house_id = (int)$data->house_id; $includes = (array)$data->includes; $complex = new Complex(); $facades = $complex->get_house_facades($house_id, $includes); echo json_encode($facades, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_house_facade') { $facade_id = (int)$data->facade_id; $complex = new Complex(); $result = $complex->deleteHouseFacede($facade_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } // END FACADES if ($request == 'update_rooms_plan_link') { $plan_id = (int)$data->plan_id; $room_ids = (array)$data->room_ids; $complex = new Complex(); $rooms = $complex->updateRoomsPlanLink($plan_id, $room_ids); echo json_encode($rooms, JSON_UNESCAPED_UNICODE); exit; } //Сохранение комплекса if($request == 'save_complex') { $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex_data = $data->complex; $linkBuilder = ''; $phoneBuilder = ''; if(isset($data->newBuilderPhone)) $phoneBuilder = $data->newBuilderPhone; if(isset($data->newBuilderLink)) $linkBuilder = $data->newBuilderLink; $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $complex->set_complex($complex_data); $photo = array(); if(isset($data->photo)){ $photo = json_decode($data->photo, true); } $result = $complex->save($linkBuilder, $phoneBuilder, $photo); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Сохранение дома if($request == 'add_edit_house'){ $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $house = $data->house; $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->add_edit_house($house); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Все дома комплекса if($request == 'get_houses'){ $complex_id = (int)$data->complex_id; $user_id = 0; $has_token = false; $filter = []; if(isset($data->filter)){ $filter = $data->filter; } if (isset($data->token)) { $token = trim($data->token); $has_token = true; $complex = new Complex(); $accessData = $complex->get_frame_access($token); if (!empty($accessData['access']) && isset($accessData['agency_id'])) { $user_id = (int)$accessData['agency_id']; } else { http_response_code(403); echo json_encode([ 'error' => 'Access denied or invalid token', 'token' => $token ], JSON_UNESCAPED_UNICODE); exit; } }else if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->get_houses($complex_id, $has_token, $filter); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_all_houses') { $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->get_all_houses(); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_complex_entrances') { $complex_id = (int)$data->complex_id; $includes = (array)$data->includes; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $partner_id = 0; if(isset($data->partner_id)){ $partner_id = (int)$data->partner_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->get_complex_entrances($complex_id, $includes, $partner_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'send_rooms_to_advert') { $house_id = (int)$data->house_id; $room_ids = (array)$data->room_ids; $type = (string)$data->type; $complex = new Complex(); $rooms = $complex->send_rooms_to_advert($house_id, $room_ids, $type); $result = $complex->get_house_entrances($house_id, ['rooms']); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'change_rooms_price') { $room_ids = (array)$data->room_ids; $type = (string)$data->actions_type; $by_square = (boolean)$data->by_square; $by_installment_price = (boolean)$data->by_installment_price; $value = (double)$data->actions_value; if ($by_installment_price) { $operation_type = 'installment_price'; } else { $operation_type = 'total_amount'; } $complex = new Complex(); if ($by_square) { $result = $complex->change_rooms_price_by_square($value, $room_ids, $type, $operation_type); } else { $result = $complex->change_rooms_price($value, $room_ids, $type, $operation_type); } echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_house_entrances') { $house_id = (int)$data->house_id; $includes = (array)$data->includes; $user_id = 0; $has_token = false; if (isset($data->token)) { $token = trim($data->token); $has_token = true; $complex = new Complex(); $accessData = $complex->get_frame_access($token); if (!empty($accessData['access']) && isset($accessData['agency_id'])) { $user_id = (int)$accessData['agency_id']; } else { http_response_code(403); echo json_encode([ 'error' => 'Access denied or invalid token', 'token' => $token ], JSON_UNESCAPED_UNICODE); exit; } }else if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $partner_id = 0; if(isset($data->partner_id)){ $partner_id = (int)$data->partner_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->get_house_entrances($house_id, $includes, $partner_id, $has_token); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'add_house_entrance') { $house_id = (int)$data->house_id; $fields = $data->fields; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->add_house_entrance($house_id, $fields); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'add_floor_plan_figure') { $floor_plan_id = (int)$data->floor_plan_id; $fields = $data->fields; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->add_floor_plan_figure($floor_plan_id, $fields); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_floor_plan_figure') { $figure_id = (int)$data->figure_id; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->delete_floor_plan_figure($figure_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_floor_plan') { $floor_plan_id = (int)$data->floor_plan_id; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->delete_floor_plan($floor_plan_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_floor_plan_figure') { $figure_id = (int)$data->figure_id; $fields = $data->fields; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->update_floor_plan_figure($figure_id, $fields); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_house') { $house_id = (int)$data->house_id; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->delete_house($house_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_house_entrance') { $entrance_id = (int)$data->entrance_id; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->delete_house_entrance($entrance_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_house_entrance') { $entrance_id = (int)$data->entrance_id; $fields = $data->fields; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->update_house_entrance($entrance_id, $fields); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'create_floor') { $entrance_id = (int)$data->entrance_id; $fields = $data->fields; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->create_floor($entrance_id, $fields); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_floor') { $floor_id = (int)$data->floor_id; $fields = $data->fields; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->update_floor($floor_id, $fields); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_floor') { $floor_id = (int)$data->floor_id; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->delete_floor($floor_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'delete_room') { $room_id = (int)$data->room_id; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->delete_room($room_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'copy_room') { $room_id = (int)$data->room_id; $floor_id = (int)$data->floor_id; $position = (int)$data->position; $copies_count = (int)$data->copies_count; $floors_with_position = (array)$data->floors_with_position; // echo(json_encode($floors_with_position));die; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = []; if ($floors_with_position) { foreach ($floors_with_position as $floor) { // $floor['id'] // $floor['position'] $copied_room = null; $result[$floor->id] = []; for ($i=0; $i < $copies_count; $i++) { $copied_room = $complex->copy_room($room_id, $floor->id, $copied_room ? $copied_room['position'] + 1 : $floor->position); $result[$floor->id][] = $copied_room; } } } else if($floor_id && $position) { $result = $complex->copy_room($room_id, $floor_id, $position); } echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'copy_floor') { $floor_id = (int)$data->floor_id; $position = (int)$data->position; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->copy_floor($floor_id, $position); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'copy_house') { $house_id = (int)$data->house_id; $complex_id = (int)$data->complex_id; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->copy_house($house_id,$complex_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //дом по id if($request == 'get_house_one'){ $house_id = (int)$data->house_id; $user_id = 0; if (isset($data->token)) { $token = trim($data->token); $complex = new Complex(); $accessData = $complex->get_frame_access($token); if (!empty($accessData['access']) && isset($accessData['agency_id'])) { $user_id = (int)$accessData['agency_id']; } else { http_response_code(403); echo json_encode([ 'error' => 'Access denied or invalid token', 'token' => $token ], JSON_UNESCAPED_UNICODE); exit; } }else if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->get_house_one($house_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == "get_filter_fields") { $house_id = $data->house_id; $complex_id = $data->complex_id; $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->get_filter_fields($house_id, $complex_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Периоды для фильтров if($request == 'get_periods') { $complex = new Complex(); $result = $complex->getUniquePeriods(); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Комплексы для фильтров if($request == 'get_complex'){ $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; // echo $user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->get_complexes(); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if($request == 'get_complex_status') { $complex_status = new ComplexStatus; $complex_status = $complex_status::getComplexStatus(); echo json_encode($complex_status, JSON_UNESCAPED_UNICODE); exit(); } // if ($request == 'get_room_types') { // echo json_encode(array( // [ // 'code' => 'apartment', // 'name' => 'Квартира', // ], // [ // 'code' => 'apartments', // 'name' => 'Апартаменты', // ], // [ // 'code' => 'parking_space', // 'name' => 'Машинаместо', // ], // [ // 'code' => 'office', // 'name' => 'Офис', // ], // [ // 'code' => 'storage_room', // 'name' => 'Кладовка', // ], // [ // 'code' => 'warehouse', // 'name' => 'Склад', // ], // [ // 'code' => 'retail_space', // 'name' => 'Торговое Помещение', // ], // [ // 'code' => 'commercial_space', // 'name' => 'Помещение свободного назначения', // ], // [ // 'code' => 'townhouse', // 'name' => 'Таунхаус', // ], // [ // 'code' => 'villa', // 'name' => 'Вилла', // ], // [ // 'code' => 'penthouse', // 'name' => 'Пентхаус', // ], // [ // 'code' => 'duplex', // 'name' => 'Дуплекс', // ], // [ // 'code' => 'cottage', // 'name' => 'Коттедж', // ], // ), JSON_UNESCAPED_UNICODE); // } if ($request == 'get_decoration_types') { $complex = new Complex(); $result = $complex->get_decoration_types(); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'save_room') { $user_id = 0; $user_id = (int)$data->user_id; $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->save_room($data->room); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'update_room') { $user_id = 0; $user_id = (int)$data->user_id; $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->update_room($data->room); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'save_document') { $user_id = 0; $user_id = (int)$data->user_id; $blank_id = (int)$data->blank_id; $req_id = (int)$data->req_id; $room = isset($data->apartment) ? json_decode($data->apartment) : null; $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->save_document($blank_id, $req_id,$room,$user_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_room_entrance') { $user_id = 0; $user_id = (int)$data->user_id; $partner_id = 0; if(isset($data->partner_id)){ $partner_id = (int)$data->partner_id; } $id = (int)$data->id; $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); $complex->set_user(); } $result = $complex->get_room_entrance($id, $partner_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_room_requisition') { $id = (int)$data->id; $complex = new Complex(); $result = $complex->get_room_requisition($id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_room_requisitions') { $id = (int)$data->complex_room_id; $complex = new Complex(); $result = $complex->get_room_requisitions($id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Вид комнат if($request == 'get_types_room'){ $complex = new Complex(); $result = $complex->get_types_room(); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if($request == 'get_complex_names') { $user_id = 0; $user_id = (int)$data->user_id; $use_empty_rooms = (bool)$data->use_empty_rooms; $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->getComplexNames($use_empty_rooms); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Поиск if($request == 'search') { $user_id = 0; if(isset($data->user_id)){ $user_id = (int)$data->user_id; // echo $user_id; } $use_empty_rooms = (bool)$data->use_empty_rooms; $page=1; if(isset($data->page)){ $page = $data->page; } if($page < 1) { $page = 1; } $filter = $data->filter; $complex = new Complex(); $complex->set_page($page); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->search($filter, $use_empty_rooms); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Объекты комплекса if($request == 'get_complex_one') { $user_id = 0; if (isset($data->token)) { $token = trim($data->token); $complex = new Complex(); $accessData = $complex->get_frame_access($token); if (!empty($accessData['access']) && isset($accessData['agency_id'])) { $user_id = (int)$accessData['agency_id']; } else { http_response_code(403); echo json_encode([ 'error' => 'Access denied or invalid token', 'token' => $token ], JSON_UNESCAPED_UNICODE); exit; } } else if (isset($data->user_id)) { $user_id = (int)$data->user_id; } $filter = array(); if(isset($data->filter)){ $filter = $data->filter; } $pageObj = 1; if(isset($data->page)){ $pageObj = (int)$data->page; } $object_list = true; if(isset($data->object_list)){ $object_list = $data->object_list; } $complex_id = (int)$data->complex_id; $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $complex->set_page_obj($pageObj); $complex->set_filter($filter); $result = $complex->get_complex_one($complex_id, true, $object_list); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Привязать объект if($request == 'add_object') { $complex_id = (int)$data->complex_id; $object_id = (int)$data->object_id; $complex = new Complex(); $result = $complex->complex_add_object($complex_id, $object_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Архивировать комплекс if($request == 'complex_archive') { $complex_id = (int)$data->complex_id; $archive = $data->archive; $complex = new Complex(); $result = $complex->complex_archive($complex_id, $archive); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //Удалить комплекс if($request == 'complex_delete') { $complex_id = (int)$data->complex_id; $complex = new Complex(); $result = $complex->complex_delete($complex_id); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //В рекламу if($request == 'complex_advert') { $complex_id = (int)$data->complex_id; $yes_no = (int)$data->yes_no; $complex = new Complex(); $result = $complex->complex_advert($complex_id, $yes_no); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //В рекламу по площадкам if($request == 'complex_advert_plases') { $days = 5000; if (isset($data->numDays) && $data->numDays > 0) { $days = $data->numDays; } if ($days > 5000) { $days = 5000; } $complex_id = (int)$data->complex_id; $yes_no = (int)$data->yes_no; $type = $data->type; $complex = new Complex(); $result = $complex->complex_advert_plases($complex_id, $yes_no, $type, $days); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } //создание заявки if($request == 'create_room_requisition') { $room_id = (int)$data->room_id; $user_id = 0; $requisition = $data->requisition; $partner_id = $data->partner_id; $employee_id = $data->employee_id; if(isset($data->user_id)){ $user_id = (int)$data->user_id; } $complex = new Complex(); if($user_id > 0){ $complex->set_user_id($user_id); } $result = $complex->createRequisition($room_id, $requisition, $partner_id, $employee_id); //$result = $complex->delete_room($room_id); //echo json_encode($data, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_room_figures') { $room_id = (int)$data->room_id; $complex = new Complex(); echo json_encode($complex->get_room_figures($room_id), JSON_UNESCAPED_UNICODE); exit; } if ($request == 'get_frame_colors') { $token = $data->token; $complex = new Complex(); echo json_encode($complex->get_frame_colors($token)); } if ($request == 'get_frame_access') { $token = $data->token; $complex = new Complex(); echo json_encode($complex->get_frame_access($token)); } if($request == 'get_installments') { $installments = new Installments(); echo json_encode($installments->getInstallments(), JSON_UNESCAPED_UNICODE); exit(); } if ($request == 'getInstallmentProgramsByHouseId') { $house_id = (int)$data->house_id; $installments = new Installments(); echo json_encode($installments->getByHouseId($house_id), JSON_UNESCAPED_UNICODE); exit; } if ($request == 'getInstallmentProgramsByComplexId') { $complex_id = (int)$data->complex_id; $installments = new Installments(); echo json_encode($installments->getByComplexId($complex_id), JSON_UNESCAPED_UNICODE); exit; } //Для iframe if ($request == 'get_complex_names_for_iframe') { $complex = new Complex(); // создаём один раз $user_id = 0; if (isset($data->token)) { $token = trim($data->token); $complex = new Complex(); $accessData = $complex->get_frame_access($token); if (!empty($accessData['access']) && isset($accessData['agency_id'])) { $user_id = (int)$accessData['agency_id']; } else { http_response_code(403); echo json_encode([ 'error' => 'Access denied or invalid token', 'token' => $token ], JSON_UNESCAPED_UNICODE); exit; } } $use_empty_rooms = !empty($data->use_empty_rooms); $page = max(!empty($data->page) ? (int)$data->page : 1, 1); if ($user_id > 0) { $complex->set_user_id($user_id); } $complex->set_page($page); $result = $complex->getComplexNamesForIframe($use_empty_rooms); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; } if ($request == 'search_for_iframe') { $user_id = 0; if (isset($data->token)) { $token = trim($data->token); $complex = new Complex(); $accessData = $complex->get_frame_access($token); if (!empty($accessData['access']) && isset($accessData['agency_id'])) { $user_id = (int)$accessData['agency_id']; } else { http_response_code(403); echo json_encode([ 'error' => 'Access denied or invalid token', 'token' => $token ], JSON_UNESCAPED_UNICODE); exit; } } else { $complex = new Complex(); // создаём без токена } $use_empty_rooms = !empty($data->use_empty_rooms); $page = max(!empty($data->page) ? (int)$data->page : 1, 1); $filter = is_array($data->filter) ? $data->filter : []; $complex->set_page($page); if ($user_id > 0) { $complex->set_user_id($user_id); } $result = $complex->searchForIframe($filter, $use_empty_rooms); echo json_encode($result, JSON_UNESCAPED_UNICODE); exit; }