<?php

namespace App\Console\Commands;

use App\Console\Commands\Converters\SuumoLandConverter;
use App\Console\Commands\Converters\SuumoMansionConverter;
use App\Console\Commands\Uploads\SuumoUpload;
use App\DefaultData\SaveHouseData;
use App\DefaultData\SaveLandData;
use App\DefaultData\SaveMansionData;
use App\Models\Article;
use App\Models\MstAddressPortal;
use App\Models\MstCity;
use App\Models\MstPrefecture;
use App\Models\MstStationPortal;
use App\Models\MstStore;
use App\Models\MstTown;
use App\Models\PortalStatusArticle;
use App\Models\PortalSuumoPhoto;
use App\Models\PortalSuumoTrafficMap;
use App\Models\RelationLawrestriction;
use App\Models\RelationPortalFacility;
use App\Models\RelationPortalPhoto;
use App\Models\RelationVendorArticle;
use App\Models\UserInfo;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use voku\helper\HtmlDomParser;

class SetArticleToSuumo extends Command
{
    private $option;
    private $countError;
    private $canRecursive;
    private $textNumber;
    private $fullWidthNumber;
    private $suumoShop;

    const DIRECTORY = 'data/suumo';
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'batch:test {id?} {user?} {type?}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';

    protected $textJpToNumber = ["一" => "１", "二" => "２", '三' => "３" , '四' => "４", '五' => '５', '六' => '６', '七' => '７', '八' => '８', '九' => '９', '十' => '１０' ];
    protected $numberConverter = ["1" => "１", "2" => "２", '3' => "３" , '4' => "４", '5' => '５', '6' => '６', '7' => '７', '8' => '８', '9' => '９', '10' => '１０' ];

    protected $companyId;
    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->textNumber = ["", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"];
        $this->fullWidthNumber = ["", "１", "２", "３", "４", "５", "６", "７", "８", "９", "１０"];

        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        logSuumo("Start =============");
        // 登録対象の物件を取得
        $building_id = $this->argument('id');
        $this->user = $this->argument('user');
        $type = $this->argument('type');
        $company_id = $this->user->company_id;
        logSuumo("-- Data article: builing_id = $building_id, user_id = " . $this->user->id . ", company_id = $company_id, type = $type.");

        Auth::login($this->user);

        $this->countError = 0;
        $this->canRecursive = true;

        $article = Article::getDataById($building_id);
        $this->suumoShop = $this->getSuumoShop($article);
        logSuumo('-- SUUMO account store: article_shop = ' . $article->shop . ', user_store_id = ' . $this->user->store_id . ', suumo_id = ' . optional($this->suumoShop)->suumo_id . '.');

        // Suumoにアクセス
        $this->loginSuumo();

        //$ar = $this->getDataAddress(28, "兵庫県");
        //$this->loginSuumoContact();
        //dd('done');
        // 登録対象の物件を取得
        $articlePortal = $this->getSuumoPortalStatusArticle($building_id);
        $article->suumo_no = null;
        if(!empty($articlePortal)){
            $article->suumo_no = $articlePortal->portal_id;
        }
        logSuumo('-- articles.suumo_no = ' . $article->suumo_no . '.');

        if (!$this->checkStatusId($article->suumo_no)) {
            session()->flash('message_ok', 'レコードが削除されたため、SUUMOに入稿できませんでした');
            logSuumo('End: The record was deleted and could not be uploaded to SUUMO.');
            return false;
        }

        $portal_images = RelationPortalPhoto::getImgByArticleId($building_id, config('const.SUUMO'));
        logSuumo('-- [portal images] relation_portal_photos: building_id = ' . $building_id . ', type = ' . config('const.SUUMO'));

        $suumo_seller = PortalSuumoPhoto::getImgByArticleId(1, $building_id);
        logSuumo('-- [suumo seller] portal_suumo_photos: building_id = ' . $building_id . ', type = 1.');

        $suumo_traffic_map = PortalSuumoTrafficMap::getImgByArticleId($building_id)->first();
        logSuumo('-- [suumo traffic_map] portal_suumo_traffic_maps: building_id = ' . $building_id);

        $suumo_spec = PortalSuumoPhoto::getImgByArticleId(2, $building_id);
        logSuumo('-- [suumo spec] portal_suumo_photos: building_id = ' . $building_id . ', type = 2.');

        $suumo_construction = PortalSuumoPhoto::getImgByArticleId(3, $building_id);
        logSuumo('-- [suumo construction] portal_suumo_photos: building_id = ' . $building_id . ', type = 3.');

        if(!empty($suumo_traffic_map)){
            $suumo_traffic_map->file_path = json_decode($suumo_traffic_map->file_path);
        }

        $suumo_facility = RelationPortalFacility::getImgByArticleId($building_id, config('const.SUUMO'), 0);
        logSuumo('-- [suumo facility] relation_portal_facilities: building_id = ' . $building_id . ', type = ' . config('const.SUUMO'));

        if($article->property == 1 || $article->property == 2 || $article->property == 3) {
            // 土地
            $article = $this->moldingDataLand($article);
            logSuumo('-- Data land: ' . jsonEncodeJp($article));
            $this->saveLand($article);
        } elseif($article->property == 4 || $article->property == 5) {
            // 戸建
            $article = $this->moldingDataHouse($article);
            logSuumo('-- Data house: ' . jsonEncodeJp($article));
            $this->saveHouse($article);
        } elseif($article->property == null) {
            // マンション
            $mansion = Article::getParentMansion($article->mansion_id);
            $article = $this->moldingDataMansion($article, $mansion);
            logSuumo('-- Data mansion: ' . jsonEncodeJp($article));
            $this->saveMansion($article);
        }

        $article = Article::where('building_id', $article->building_id)->first();
        $articlePortal = $this->getSuumoPortalStatusArticle($building_id);
        logSuumo('-- portal_status_articles.portal_id = ' . optional($articlePortal)->portal_id);

        $article->suumo_no = null;
        if(!empty($articlePortal)){
            $article->suumo_no = $articlePortal->portal_id;
        }

        $this->getHistoryPost($article->suumo_no);

        if ($type == 2) {
            $this->uploadImage($article, $portal_images, $suumo_seller, $suumo_facility, $suumo_traffic_map, $suumo_spec, $suumo_construction);
        }
        logSuumo('End: Submitted to SUUMO.');
    }

    function getDataAddress($pre_id, $pre_name){
        // 物件登録画面へアクセス 土地1区画
        $url = "https://manager.suumo.jp/chukai/commonUtil/findShikugunList?todofukenCd=".$pre_id;

        // 土地1区画
        $POST_DATA = array(
            'TB' => 12,
            'BKTB' => 10,
            'hanKubun' => '1T',

        );

        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_HEADER, 0);
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $res = curl_exec($curl) or die('error ' . curl_error($curl)); // cURLセッションの実行

        $header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
        $response = substr($res, $header_size);
        $array = explode(',', $response);
        $data = [];
        for($i = 0; $i < count($array); $i++){
            if($i%2 == 0){
                ///////////////////////////
                curl_setopt($curl, CURLOPT_URL, "https://manager.suumo.jp/chukai/commonUtil/findChosonList?todofukenCd=".$pre_id."&shikugunCd=" . $array[$i]);
                curl_setopt($curl, CURLOPT_HEADER, 0);
                curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
                curl_setopt_array($curl, $this->option); // 共通オプションの設定
                $ress = curl_exec($curl) or die('error ' . curl_error($curl)); // cURLセッションの実行

                $header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
                $res = substr($ress, $header_size);
                $array_town = explode(',', $res);
                for($j = 0; $j < count($array_town); $j++){
                    if($j%2 == 0){
                        curl_setopt($curl, CURLOPT_URL, "https://manager.suumo.jp/chukai/commonUtil/findAzachoList?todofukenCd=".$pre_id."&shikugunCd=".$array[$i]."&ooazaCd=" . $array_town[$j]);
                        curl_setopt($curl, CURLOPT_HEADER, 0);
                        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "GET");
                        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
                        curl_setopt_array($curl, $this->option); // 共通オプションの設定
                        $resss = curl_exec($curl) or die('error ' . curl_error($curl)); // cURLセッションの実行

                        $header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
                        $res = substr($resss, $header_size);

                        $array_town_more = explode(',', $res);
                        for($k = 0; $k < count($array_town_more); $k++){
                            if($k%2 == 0){
                                $data = [
                                    "pref_id"   => $pre_id,
                                    "pref_name" => $pre_name,
                                    "area_id"   => $array[$i],
                                    "area_name" => $array[$i + 1],
                                    "town_id"   => $array_town[$j],
                                    "town_name" => $array_town[$j+1],
                                    "town_more_id"   => $array_town_more[$k],
                                    "town_more_name" => $array_town_more[$k+1],
                                    "type"  =>  2
                                ];
                                MstAddressPortal::create($data);
                            }
                        }
                    }
                }
            }
        }
        return $data;
    }

    function loginSuumo() {
        logSuumo("-- Login suumo: Start.");
        if ($this->countError >= 5) {
            $this->canRecursive = false;
            logSuumo("-- -- Can not recursive.");
            logSuumo("-- Login suumo: End.");
            return;
        }

        $cookie_path = './suumo_cookie.txt';
        touch($cookie_path);
        //$id = "t06889200001";
        //$pass = "zuka-32412019";
        $shop = $this->suumoShop ?: $this->getSuumoShop();
        $id = $shop->suumo_id;
        $pass = $shop->suumo_pw;
        logSuumo("-- -- Account: id = $id, pass = $pass.");

        // cURLセッションの共通オプション
        $this->option = [
            // CURLOPT_CUSTOMREQUEST => 'POST',
            CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0',
            CURLOPT_SSL_VERIFYPEER => FALSE,
            CURLOPT_SSL_VERIFYHOST => FALSE,
            CURLOPT_COOKIEJAR => $cookie_path,
            CURLOPT_COOKIEFILE => $cookie_path,
            // CURLOPT_FOLLOWLOCATION => TRUE,
            CURLOPT_HEADER=> TRUE,
        ];

        // ログイン処理
        $url = "https://manager.suumo.jp/chukai/login/login";
        $POST_DATA = array(
            'j_username' => $id,
            'j_password' => $pass,
            'path' => "",
            'old_id' => '',
            'id' => $id,
            'pass' => $pass,
        );
        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $res = curl_exec($curl); // cURLセッションの実行if
        if ($res === false) {
            $err = curl_error($curl);
            curl_close($curl);
            logSuumo("-- -- Login suumo failed: $err.");
            logSuumo("-- Login suumo: End.");
            die("error $err");
        }

        curl_close($curl);
        logSuumo('-- -- Login suumo success.');
        logSuumo("-- Login suumo: End.");
    }

    private function getSuumoShop($article = null)
    {
        $user = $this->user;
        $storeId = !empty($article) && !empty($article->shop) ? $article->shop : $user->store_id;
        $shop = MstStore::getDataByCode($user->company_id, $storeId);

        if (empty($shop) && $storeId != $user->store_id) {
            $shop = MstStore::getDataByCode($user->company_id, $user->store_id);
        }

        return $shop;
    }

    private function getSuumoPortalStatusArticle($buildingId)
    {
        return PortalStatusArticle::where('article_id', $buildingId)
            ->where('portal_type', 1)
            ->where('portal_user', optional($this->suumoShop)->suumo_id)
            ->orderBy('updated_at')
            ->first();
    }

    public static function limit($str, $length)
    {
        $result = Str::limit($str, $length, '');

        return $result;
    }

    function moldingDataLand($article) {
        // 1.基本情報
        // 物件名
        $article->bukkenNm1 = mb_substr($article->article_name, 0, 42);
        // 郵便番号
        $zip_info = $article->zip;
        $zip_list = explode('-', $zip_info);
        $article->yubinbango01 = $zip_list[0]??'';
        $article->yubinbango02 = $zip_list[1]??'';

        // 住所
        $article->todofukenCd = $article->address1;
        $article->shikugunCd = $article->address2;
        $article->ooazaCd = $article->address3;

        $pref_info = MstPrefecture::getName($article->address1);
        $city_info = MstCity::getName($article->address1, $article->address2);
        $town_info = MstTown::getName($article->address1, $article->address2, $article->address3);
        $article->todofukenNm = $pref_info->name??'';
        $article->shikugunNm = $city_info->name??'';
        $article->ooazaNm = $town_info->name??'';
        $article->netCatch = $article->suumo_copy;
        // 交通

        // 2.担当者情報
        // 担当者名
        $user_info = UserInfo::getDataById($article->hp_charge);
        $name_info = '';
        $name_info = $user_info->last_name??'';
        if($name_info != '') {
            $name_info .= ' ';
        }
        $name_info .= $user_info->first_name??'';
        $article->kishaEigyoMei = $name_info;
        // スタッフコメント
        $staffComment = str_replace(array("ﾂ", "ﾔ", "ｽ", "━","‐", "―", "－", "–", "ー", "-", "−", "ﾌ", "ｧ", "ﾐ", "ﾘ", "ｰ", "ﾏ", "ｰ", "ﾄ", "ｾ", "ﾌ", "ﾞ", "ﾝ", "ｲ", "ﾚ", "ﾌ", "ﾞ", "ﾝ", "ﾛ", "ｿ", "ﾝ", "ｾﾌﾞﾝｲﾚﾌﾞﾝ"), "", mb_substr($article->comment, 0, 100));
        $article->staffComment = $staffComment;
        // 社内メモ1
        $kishaComment1 = str_replace(array("ﾂ", "ﾔ", "ｽ", "━","‐", "―", "－", "–", "ー", "-", "−", "ﾌ", "ｧ", "ﾐ", "ﾘ", "ｰ", "ﾏ", "ｰ", "ﾄ", "ｾ", "ﾌ", "ﾞ", "ﾝ", "ｲ", "ﾚ", "ﾌ", "ﾞ", "ﾝ", "ﾛ", "ｿ", "ﾝ", "ｾﾌﾞﾝｲﾚﾌﾞﾝ"), "", mb_substr($article->memo1, 0, 20));
        $article->kishaComment1 = $kishaComment1;
        // 社内メモ2
        $kishaComment2 = str_replace(array("ﾂ", "ﾔ", "ｽ", "━","‐", "―", "－", "–", "ー", "-", "−", "ﾌ", "ｧ", "ﾐ", "ﾘ", "ｰ", "ﾏ", "ｰ", "ﾄ", "ｾ", "ﾌ", "ﾞ", "ﾝ", "ｲ", "ﾚ", "ﾌ", "ﾞ", "ﾝ", "ﾛ", "ｿ", "ﾝ", "ｾﾌﾞﾝｲﾚﾌﾞﾝ"), "", mb_substr($article->memo2, 0, 20));
        $article->kishaComment2 = $kishaComment2;

        // 3.価格
        // 町会費
        if($article->council != 0) {
            $article->chokaihiKbn = $article->council;
            if($article->council_presence == 0) {
                $article->chokaihiUmu = '1';
                $article->chokaihiRyo = '';
                $article->chokaihiRyoTaniKbn = '';
            } elseif($article->council_presence == 1) {
                $article->chokaihiUmu = '1';
                $article->chokaihiRyo = $article->council_cost;
                if($article->council_cost_unit != 0) {
                    $article->chokaihiRyoTaniKbn = $article->council_cost_unit;
                } else {
                    $article->chokaihiRyoTaniKbn = '';
                }
            } elseif($article->council_presence == 2) {
                $article->chokaihiUmu = '3';
                $article->chokaihiRyo = '';
                $article->chokaihiRyoTaniKbn = '';
            }
        } elseif($article->council == 0) {
            $article->chokaihiKbn = '0';
            $article->chokaihiUmu = '';
            $article->chokaihiRyo = '';
            $article->chokaihiRyoTaniKbn = '';
        }

        // 温泉
        if($article->spring != 0) {
            $article->onsenKenKbn = $article->council;
            if($article->spring_presence == 0) {
                $article->onsenKenRyoUmu = '1';
                $article->onsenKenRyo = '';
                $article->onsenKenRyoTaniKbn = '';
            } elseif($article->spring_presence == 1) {
                $article->onsenKenRyoUmu = '1';
                $article->onsenKenRyo = $article->spring_cost;
                if($article->spring_cost_unit != 0) {
                    $article->onsenKenRyoTaniKbn = $article->spring_cost_unit;
                } else {
                    $article->onsenKenRyoTaniKbn = '';
                }
            } elseif($article->spring_presence == 2) {
                $article->onsenKenRyoUmu = '3';
                $article->onsenKenRyo = '';
                $article->onsenKenRyoTaniKbn = '';
            }
        } elseif($article->spring == 0) {
            $article->onsenKenKbn = '0';
            $article->onsenKenRyoUmu = '';
            $article->onsenKenRyo = '';
            $article->onsenKenRyoTaniKbn = '';
        }

        // 4.土地建物情報
        // 土地権利
        if($article->land_right != 0) {
            $article->shikichiKenri = $article->land_right;
        } else {
            $article->shikichiKenri = '1';
        }
        // 土地面積
        $article->tochiMensekiKbn = $article->land_area;
        $land_area = $article->land_area_val??'0.0';
        $land_area_list = explode('.', $land_area);
        $article->tochiMensekiMinS = $land_area_list[0]??'';
        $article->tochiMensekiMinL = $land_area_list[1]??'';

        if($article->land_condition1 == 1) {
            $land_condition_area1_list = explode('.', $article->land_condition_area1);
            $article->keishaMensekiMinS = $land_condition_area1_list[0]??'';
            $article->keishaMensekiMinL = $land_condition_area1_list[1]??'';
            $article->keishaMensekiMinTaniKbn = $article->land_condition_unit1;
        } else {
            $article->keishaMensekiMinS = '';
            $article->keishaMensekiMinL = '';
            $article->keishaMensekiMinTaniKbn = 0;
        }

        if($article->land_condition2 == 1) {
            $land_condition_area2_list = explode('.', $article->land_condition_area2);
            $article->shikichiEnchoMinS = $land_condition_area2_list[0]??'';
            $article->shikichiEnchoMinL = $land_condition_area2_list[1]??'';
            $article->shikichiEnchoMinTaniKbn = $article->land_condition_unit2;
        } else {
            $article->shikichiEnchoMinS = '';
            $article->shikichiEnchoMinL = '';
            $article->shikichiEnchoMinTaniKbn = 0;
        }

        if($article->land_condition3 == 1) {
            $land_condition_area3_list = explode('.', $article->land_condition_area3);
            $article->koatsuMensekiMinS = $land_condition_area3_list[0]??'';
            $article->koatsuMensekiMinL = $land_condition_area3_list[1]??'';
        } else {
            $article->koatsuMensekiMinS = '';
            $article->koatsuMensekiMinL = '';
        }

        // 土地状況
        if($article->current_status == 1 || $article->current_status == 2) {
            $article->tochiJokyoKbn = $article->current_status;
            $article->zoseiKanryoYoteiNen = '';
            $article->zoseiKanryoYoteiTsuki = '';
        } elseif($article->current_status == 3) {
            $article->tochiJokyoKbn = 4;
            $article->zoseiKanryoYoteiNen = $article->comp_year;
            $article->zoseiKanryoYoteiTsuki = $article->comp_month;
        } else {
            $article->tochiJokyoKbn = '';
            $article->zoseiKanryoYoteiNen = '';
            $article->zoseiKanryoYoteiTsuki = '';
        }

        // 引き渡し
        if($article->land_delivery == 1) {
            $article->nyukyoJikiKbn = '1';
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiJunKbn = '0';
            $article->nyukyoJikiTsukiSu = '';
        } elseif($article->land_delivery == 2) {
            $article->nyukyoJikiKbn = '4';
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiJunKbn = '0';
            $article->nyukyoJikiTsukiSu = '';
        } elseif($article->land_delivery == 3) {
            $article->nyukyoJikiKbn = '2';
            $article->nyukyoJikiNen = $article->delivery_year;
            $article->nyukyoJikiTsuki = $article->delivery_month;
            $article->nyukyoJikiJunKbn = $article->land_delivery_time;
            $article->nyukyoJikiTsukiSu = '';
        } else {
            $article->nyukyoJikiKbn = '';
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiJunKbn = '0';
            $article->nyukyoJikiTsukiSu = '';
        }

        // 建築条件
        if($article->land_condition == 0) {
            $article->kenchikuJokenUmuKbn = 0;
            $article->tatemonoKakaku = '';
            $article->tatemonoMensekiS = '';
            $article->tatemonoMensekiL = '';
        } elseif($article->land_condition == 1) {
            $article->kenchikuJokenUmuKbn = 1;
            $article->tatemonoKakaku = $article->building_plan_place??'';
            $building_plan_place = $article->building_plan_area;
            $building_plan_place_list = explode('.', $building_plan_place);
            $article->tatemonoMensekiS = $building_plan_place_list[0]??'';
            $article->tatemonoMensekiL = $building_plan_place_list[1]??'';
        } elseif($article->land_condition == 2) {
            $article->kenchikuJokenUmuKbn = '';
            $article->tatemonoKakaku = '';
            $article->tatemonoMensekiS = '';
            $article->tatemonoMensekiL = '';
        }

        // 地目
        if($article->ground != 0 && $article->ground < 7) {
            $article->chimokuKbn = $article->ground;
            $article->chimokuSntComment = '';
        } elseif($article->ground == 7) {
            $article->chimokuKbn = 9;
            $article->chimokuSntComment = $article->ground_text;
        } else {
            $article->chimokuKbn = '';
            $article->chimokuSntComment = '';
        }

        // 建ぺい率
        $article->kenpeiritsu = (int)$article->building_rate;
        // 容積率
        $article->yosekiritsu = (int)$article->volume_rate;

        // 私道負担
        if($article->road_burden == 0) {
            $article->shidoFutanKbn = 1;
            $article->shidoFutanMensekiMinS1 = '';
            $article->shidoFutanMensekiMinL1 = '';
            $article->shidoFutanMensekiMinS2 = '';
            $article->shidoFutanMensekiMinL2 = '';
            $article->shidoFutanBunshiMinS = '';
            $article->shidoFutanBunshiMinL = '';
            $article->shidoFutanBunboMinS = '';
            $article->shidoFutanBunboMinL = '';
        } elseif($article->road_burden == 1) {
            $article->shidoFutanKbn = 2;
            $road_burden_area = $article->road_burden_area;
            $road_burden_area_list = explode('.', $road_burden_area);
            $article->shidoFutanMensekiMinS1 = $road_burden_area_list[0]??'';
            $article->shidoFutanMensekiMinL1 = $road_burden_area_list[1]??'';
            $article->shidoFutanMensekiMinS2 = '';
            $article->shidoFutanMensekiMinL2 = '';
            $article->shidoFutanBunshiMinS = '';
            $article->shidoFutanBunshiMinL = '';
            $article->shidoFutanBunboMinS = '';
            $article->shidoFutanBunboMinL = '';

        } elseif($article->road_burden == 2) {
            $article->shidoFutanKbn = 3;
            $road_burden_area = $article->road_burden_area;
            $road_burden_area_list = explode('.', $road_burden_area);
            $road_numerator = $article->road_numerator;
            $road_numerator_list = explode('.', $road_numerator);
            $road_denominator = $article->road_denominator;
            $road_denominator_list = explode('.', $road_denominator);
            $article->shidoFutanMensekiMinS1 = '';
            $article->shidoFutanMensekiMinL1 = '';
            $article->shidoFutanMensekiMinS2 = $road_burden_area_list[0]??'';
            $article->shidoFutanMensekiMinL2 = $road_burden_area_list[1]??'';
            $article->shidoFutanBunshiMinS = $road_numerator_list[0]??'';
            $article->shidoFutanBunshiMinL = $road_numerator_list[1]??'';
            $article->shidoFutanBunboMinS = $road_denominator_list[0]??'';
            $article->shidoFutanBunboMinL = $road_denominator_list[1]??'';
        } else {
            $article->shidoFutanKbn = '';
            $article->shidoFutanMensekiMinS1 = '';
            $article->shidoFutanMensekiMinL1 = '';
            $article->shidoFutanMensekiMinS2 = '';
            $article->shidoFutanMensekiMinL2 = '';
            $article->shidoFutanBunshiMinS = '';
            $article->shidoFutanBunshiMinL = '';
            $article->shidoFutanBunboMinS = '';
            $article->shidoFutanBunboMinL = '';
        }

        // 地役権
        if($article->easement == 1 || $article->easement == 0) {
            $article->chiekikenKbn = $article->easement;
            $article->chiekikenMensekiS = '';
            $article->chiekikenMensekiL = '';
        } else {
            $article->chiekikenKbn = $article->easement;
            $easement_area = $article->easement_area;
            $easement_area_list = explode('.', $easement_area);
            $article->chiekikenMensekiS = $easement_area_list[0]??'';
            $article->chiekikenMensekiL = $easement_area_list[1]??'';
        }
        // 道路向き
        if($article->land_direction1 == 0) {
            $article->doroMukiKbn1 = 0;
        } else {
            if($article->land_direction1 == 1) {
                $article->doroMukiKbn1 = 4;
            } elseif($article->land_direction1 == 2) {
                $article->doroMukiKbn1 = 5;
            } elseif($article->land_direction1 == 3) {
                $article->doroMukiKbn1 = 1;
            } elseif($article->land_direction1 == 4) {
                $article->doroMukiKbn1 = 6;
            } elseif($article->land_direction1 == 5) {
                $article->doroMukiKbn1 = 3;
            } elseif($article->land_direction1 == 6) {
                $article->doroMukiKbn1 = 8;
            } elseif($article->land_direction1 == 7) {
                $article->doroMukiKbn1 = 2;
            } elseif($article->land_direction1 == 8) {
                $article->doroMukiKbn1 = 7;
            }
            $road_width1 = $article->road_width1;
            $road_width1_list = explode('.', $road_width1);
            $frontage1 = $article->frontage1;
            $frontage1_list = explode('.', $frontage1);
            $article->doroWidth1S = $road_width1_list[0]??'';
            $article->doroWidth1L = $road_width1_list[1]??'';
            $article->setsudoWidth1S = $frontage1_list[0]??'';
            $article->setsudoWidth1L = $frontage1_list[1]??'';
        }

        if($article->land_direction2 == 0) {
            $article->doroMukiKbn2 = 0;
        } else {
            if($article->land_direction2 == 1) {
                $article->doroMukiKbn2 = 4;
            } elseif($article->land_direction2 == 2) {
                $article->doroMukiKbn2 = 5;
            } elseif($article->land_direction2 == 3) {
                $article->doroMukiKbn2 = 1;
            } elseif($article->land_direction2 == 4) {
                $article->doroMukiKbn2 = 6;
            } elseif($article->land_direction2 == 5) {
                $article->doroMukiKbn2 = 3;
            } elseif($article->land_direction2 == 6) {
                $article->doroMukiKbn2 = 8;
            } elseif($article->land_direction2 == 7) {
                $article->doroMukiKbn2 = 2;
            } elseif($article->land_direction2 == 8) {
                $article->doroMukiKbn2 = 7;
            }
            $road_width2 = $article->road_width2;
            $road_width2_list = explode('.', $road_width2);
            $frontage2 = $article->frontage2;
            $frontage2_list = explode('.', $frontage2);
            $article->doroWidth2S = $road_width2_list[0]??'';
            $article->doroWidth2L = $road_width2_list[1]??'';
            $article->setsudoWidth2S = $frontage2_list[0]??'';
            $article->setsudoWidth2L = $frontage2_list[1]??'';
        }

        if($article->land_direction3 == 0) {
            $article->doroMukiKbn3 = 0;
        } else {
            if($article->land_direction3 == 1) {
                $article->doroMukiKbn3 = 4;
            } elseif($article->land_direction3 == 2) {
                $article->doroMukiKbn3 = 5;
            } elseif($article->land_direction3 == 3) {
                $article->doroMukiKbn3 = 1;
            } elseif($article->land_direction3 == 4) {
                $article->doroMukiKbn3 = 6;
            } elseif($article->land_direction3 == 5) {
                $article->doroMukiKbn3 = 3;
            } elseif($article->land_direction3 == 6) {
                $article->doroMukiKbn3 = 8;
            } elseif($article->land_direction3 == 7) {
                $article->doroMukiKbn3 = 2;
            } elseif($article->land_direction3 == 8) {
                $article->doroMukiKbn3 = 7;
            }
            $road_width3 = $article->road_width3;
            $road_width3_list = explode('.', $road_width3);
            $frontage3 = $article->frontage3;
            $frontage3_list = explode('.', $frontage3);
            $article->doroWidth3S = $road_width3_list[0]??'1';
            $article->doroWidth3L = $road_width3_list[1]??'0';
            $article->setsudoWidth3S = $frontage3_list[0]??'1';
            $article->setsudoWidth3L = $frontage3_list[1]??'0';
        }

        // 上水道
        $article->setsubiJosuidoKbn = $article->water_supply;

        // 下水道
        $article->setsubiGesuidoKbn = $article->sewerage;

        // ガス
        $article->setsubiGasKbn = $article->gas;

        // 駐車場
        if($article->garage == 1) {
            $article->shakoKbn = 2;
        } elseif($article->garage == 0) {
            $article->shakoKbn = 0;
        }

        // セットパック
        if($article->set == 1) {
            $article->setbackKbn = $article->set;
            $article->setbackMensekiMinS = '';
            $article->setbackMensekiMinL = '';
        } elseif($article->set == 2 || $article->set == 3) {
            $article->setbackKbn = $article->set;
            $set_area = $article->set_area;
            $set_area_list = explode('.', $set_area);
            $article->setbackMensekiMinS = $set_area_list[0]??'';
            $article->setbackMensekiMinL = $set_area_list[1]??'';
        } else {
            $article->setbackKbn = '';
            $article->setbackMensekiMinS = '';
            $article->setbackMensekiMinL = '';
        }

        // 用途地域
        if($article->use_area == 1) {
            $article->yotochiikiCd01 = '01';
        } elseif($article->use_area == 2) {
            $article->yotochiikiCd01 = '04';
        } elseif($article->use_area == 3) {
            $article->yotochiikiCd01 = '06';
        } elseif($article->use_area == 4) {
            $article->yotochiikiCd01 = '08';
        } elseif($article->use_area == 5) {
            $article->yotochiikiCd01 = '09';
        } elseif($article->use_area == 6) {
            $article->yotochiikiCd01 = '10';
        } elseif($article->use_area == 7) {
            $article->yotochiikiCd01 = '11';
        } elseif($article->use_area == 8) {
            $article->yotochiikiCd01 = '12';
        } elseif($article->use_area == 10) {
            $article->yotochiikiCd01 = '02';
        } elseif($article->use_area == 11) {
            $article->yotochiikiCd01 = '03';
        } elseif($article->use_area == 12) {
            $article->yotochiikiCd01 = '05';
        } elseif($article->use_area == 13) {
            $article->yotochiikiCd01 = '07';
        } elseif($article->use_area == 14) {
            $article->yotochiikiCd01 = '16';
        } elseif($article->use_area == 99) {
            $article->yotochiikiCd01 = '13';
        } else {
            $article->yotochiikiCd01 = '00';
        }

        if($article->land_use == 1) {
            $article->yotochiikiCd02 = '01';
        } elseif($article->land_use == 2) {
            $article->yotochiikiCd02 = '04';
        } elseif($article->land_use == 3) {
            $article->yotochiikiCd02 = '06';
        } elseif($article->land_use == 4) {
            $article->yotochiikiCd02 = '08';
        } elseif($article->land_use == 5) {
            $article->yotochiikiCd02 = '09';
        } elseif($article->land_use == 6) {
            $article->yotochiikiCd02 = '10';
        } elseif($article->land_use == 7) {
            $article->yotochiikiCd02 = '11';
        } elseif($article->land_use == 8) {
            $article->yotochiikiCd02 = '12';
        } elseif($article->land_use == 10) {
            $article->yotochiikiCd02 = '02';
        } elseif($article->land_use == 11) {
            $article->yotochiikiCd02 = '03';
        } elseif($article->land_use == 12) {
            $article->yotochiikiCd02 = '05';
        } elseif($article->land_use == 13) {
            $article->yotochiikiCd02 = '07';
        } elseif($article->land_use == 14) {
            $article->yotochiikiCd02 = '16';
        } else {
            $article->yotochiikiCd02 = '00';
        }

        // 総区画数
        $article->soKosu = $article->section??'';

        // 5.会社情報
        if($article->company_manner == 1) {
            $article->torihikitaiyoKbn01 = '01';
        } elseif($article->company_manner == 2) {
            $article->torihikitaiyoKbn01 = '13';
        } elseif($article->company_manner == 3) {
            $article->torihikitaiyoKbn01 = '09';
        } elseif($article->company_manner == 4) {
            $article->torihikitaiyoKbn01 = '10';
        } elseif($article->company_manner == 5) {
            $article->torihikitaiyoKbn01 = '11';
        } elseif($article->company_manner == 6) {
            $article->torihikitaiyoKbn01 = '07';
        } elseif($article->company_manner == 7) {
            $article->torihikitaiyoKbn01 = '08';
        } elseif($article->company_manner == 8) {
            $article->torihikitaiyoKbn01 = '09';
        } else {
            $article->torihikitaiyoKbn01 = '';
        }

        // 6.制限事項
        $law_check = RelationLawrestriction::getDataByArticleId($article->building_id);
        foreach($law_check as $law) {
            if($law == 1) {
                $article->hriSgnHoBunkazai = 1;

            } elseif($law == 2) {
                $article->hriSgnHoKotohogo = 1;

            } elseif($law == 3) {
                $article->hriSgnHoKeikan = 1;

            } elseif($law == 4) {
                $article->hriSgnHoMisshuSgcSeibi = 1;

            } elseif($law == 5) {
                $article->hriSgnHoKoku = 1;

            } elseif($law == 6) {
                $article->hriSgnHoKasen = 1;

            } elseif($law == 7) {
                $article->hriSgnHoSabo = 1;

            } elseif($law == 8) {
                $article->hriSgnHoNochi = 1;

            } elseif($law == 9) {
                $article->hriSgnHoAnzenJorei = 1;

            } elseif($law == 10) {
                $article->hriSgnChiTakuzokisei = 1;

            } elseif($law == 11) {
                $article->hriSgnChiKyukeishachi = 1;

            } elseif($law == 12) {
                $article->hriSgnChiKodochiku = 1;

            } elseif($law == 13) {
                $article->hriSgnChiKodoriyo = 1;

            } elseif($law == 14) {
                $article->hriSgnChiChukosoJutaku = 1;

            } elseif($law == 15) {
                $article->hriSgnChiKosojutakuYudo = 1;

            } elseif($law == 16) {
                $article->hriSgnChiBoka = 1;

            } elseif($law == 17) {
                $article->hriSgnChiJunboka = 1;

            } elseif($law == 18) {
                $article->hriSgnChiFuchi = 1;

            } elseif($law == 19) {
                $article->hriSgnChiKeikan = 1;

            } elseif($law == 20) {
                $article->hriSgnChiJunKeikan = 1;

            } elseif($law == 21) {
                $article->hriSgnChiKanko = 1;

            } elseif($law == 22) {
                $article->hriSgnChiRekishi = 1;

            } elseif($law == 23) {
                $article->hriSgnChiDento = 1;

            } elseif($law == 24) {
                $article->hriSgnChiTokuteiGaiku = 1;

            } elseif($law == 25) {
                $article->hriSgnChiTokubetsuYoto = 1;

            } elseif($law == 26) {
                $article->hriSgnChiBunkyo = 1;

            } elseif($law == 27) {
                $article->hriSgnChiToshisaisei = 1;

            } elseif($law == 28) {
                $article->hriSgnChiTokubetsuRyokuchi = 1;

            } elseif($law == 29) {
                $article->hriSgnTateTakasaMax = 1;

            } elseif($law == 30) {
                $article->hriSgnTateTakasaMin = 1;

            } elseif($law == 31) {
                $article->hriSgnTateKenpeiMin = 1;

            } elseif($law == 32) {
                $article->hriSgnTateYosekiMin = 1;

            } elseif($law == 33) {
                $article->hriSgnTateSktMnsMax = 1;

            } elseif($law == 34) {
                $article->hriSgnTateSktMnsMin = 1;

            } elseif($law == 35) {
                $article->hriSgnTateMnsMax = 1;

            } elseif($law == 36) {
                $article->hriSgnTateMnsMin = 1;
            }
        }

        // その他制限事項
        $article->kckKjn43joTadashigakiKbn = $article->other_reason;
        $article->sgnJikoComment = $article->other_comment;

        // 7.投資用・事業用
        if($article->classfication ==1) {
            $article->jigKbn = 0;
            $article->jigComment = '';
        } else {
            $article->jigKbn = 1;
            if($article->use_method == 1) {
                $article->jigYotoKbn = '07';
                $article->jigComment = '';
            } elseif($article->use_method == 2) {
                $article->jigYotoKbn = '08';
                $article->jigComment = '';
            } elseif($article->use_method == 3) {
                $article->jigYotoKbn = '09';
                $article->jigComment = '';
            } elseif($article->use_method == 4) {
                $article->jigYotoKbn = '01';
                $article->jigComment = '';
            } elseif($article->use_method == 5) {
                $article->jigYotoKbn = '02';
                $article->jigComment = '';
            } elseif($article->use_method == 6) {
                $article->jigYotoKbn = '06';
                $article->jigComment = '';
            } elseif($article->use_method == 7) {
                $article->jigYotoKbn = '04';
                $article->jigComment = '';
            } elseif($article->use_method == 8) {
                $article->jigYotoKbn = '03';
                $article->jigComment = '';
            } elseif($article->use_method == 9) {
                $article->jigYotoKbn = '99';
                $article->jigComment = $article->use_method_text;
            }
        }

        // 10.イベント情報
        $dataEventCategory = [
            1 => 1,
            2 => 2,
            3 => 3,
            4 => 4,
            5 => 6,
            0 => 0
        ];

        $article->eventInfoKbn = $dataEventCategory[$article->event_category] ?? "";

        return $article;
    }

    function moldingDataHouse($article) {
        // 1.基本情報
        // 物件名
        $article->bukkenNm1 = mb_substr($article->name_portal, 0, 42);
        // 郵便番号
        $zip_info = $article->zip;
        $zip_list = explode('-', $zip_info);
        $article->yubinbango01 = $zip_list[0]??'';
        $article->yubinbango02 = $zip_list[1]??'';

        if ($article->property == 4) {
            $article->kotoriBukkenShuCd = "21";
        } else {
            $article->kotoriBukkenShuCd = "22";
        }

        $article->jushoMatsubi = str_limit($article->address4, 50, "");

        $idoSplit = explode(".", $article->lat);
        if (count($idoSplit) > 1) {
            $idoAffer = $idoSplit[1];
            $idoBefore = $idoSplit[0];
            $idoAffer = substr_replace($idoAffer, ".", 2, 0);
            $idoAffer = substr_replace($idoAffer, ".", 5, 0);
            $ido = $idoBefore . '.' . substr($idoAffer, 0, 9);
        }
        $keidoSplit = explode(".", $article->lng);
        if (count($keidoSplit) > 1) {
            $keidoAffer = $keidoSplit[1];
            $keidoBefore = $keidoSplit[0];
            $keidoAffer = substr_replace($keidoAffer, ".", 2, 0);
            $keidoAffer = substr_replace($keidoAffer, ".", 5, 0);
            $keido = $keidoBefore . '.' . substr($keidoAffer, 0, 9);
        }
        $article->ido = $ido ?? "";
        $article->keido = $keido ?? "";
        $article->denshaBusKb1 = 1;
        $article->denshaBusKb2 = 1;
        $article->denshaBusKb3 = 1;
        //$article->netCatch = $article->catchcopy;
        $article->netCatch = $article->suumo_copy;
        $article->eventScheduleKbn = $article->event_schedule;

        if ($article->main_traffic == 1 &&
            !empty($article->main_traffic_line) &&
            !empty($article->main_traffic_station) &&
            is_numeric($article->main_traffic_time)) {
            $article->ensenNm1 = self::limit($article->main_traffic_line, 30);
            $article->ensenCd1 = '0010';
            $article->ekiNm1 = self::limit($article->main_traffic_station, 40);
            $article->ekiCd1 = '07240';
            $article->kotsuKbn1 = 1;
            $article->tohoJikan1 = self::limit($article->main_traffic_time, 2);
        } elseif ($article->main_traffic == 2 &&
            !empty($article->main_traffic_bus_time) &&
            !empty($article->main_traffic_bus) &&
            is_numeric($article->main_traffic_bus_walk)) {
            $article->ensenNm1 = self::limit($article->main_traffic_line, 30);
            $article->ekiNm1 = self::limit($article->main_traffic_station, 40);
            $article->kotsuKbn1 = 2;
            $article->tohoJikan1 = self::limit($article->main_traffic_bus_walk, 2);
            $article->ensenCd1 = '0010';
            $article->ekiCd1 = '07240';
            $article->busJikan1 = self::limit($article->main_traffic_bus_time, 2);
            $article->busTei1 = self::limit($article->main_traffic_bus, 40);
            $article->teihoJikan1 = self::limit($article->main_traffic_bus_walk, 2);
        }

        if ($article->sub_traffic1 == 1 &&
            !empty($article->sub_traffic1_line) &&
            !empty($article->sub_traffic1_station) &&
            is_numeric($article->sub_traffic1_time)) {
            $article->ensenNm2 = self::limit($article->sub_traffic1_line, 30);
            $article->ensenCd2 = '0010';
            $article->ekiNm2 = self::limit($article->sub_traffic1_station, 40);
            $article->ekiCd2 = '07240';
            $article->kotsuKbn2 = 1;
            $article->tohoJikan2 = self::limit($article->sub_traffic1_time, 2);
        } elseif ($article->sub_traffic1 == 2 &&
            !empty($article->sub_traffic1_bus_time) &&
            !empty($article->sub_traffic1_bus) &&
            is_numeric($article->sub_traffic1_bus_walk)) {
            $article->ensenNm2 = self::limit($article->sub_traffic1_line, 30);
            $article->ekiNm2 = self::limit($article->sub_traffic1_station, 40);
            $article->kotsuKbn2 = 2;
            $article->tohoJikan2 = self::limit($article->sub_traffic1_bus_walk, 2);
            $article->ensenCd2 = '0010';
            $article->ekiCd2 = '07240';
            $article->busJikan2 = self::limit($article->sub_traffic1_bus_time, 2);
            $article->busTei2 = self::limit($article->sub_traffic1_bus, 40);
            $article->teihoJikan2 = self::limit($article->sub_traffic1_bus_walk, 2);
        }

        if ($article->sub_traffic2 == 1 &&
            !empty($article->sub_traffic2_line) &&
            !empty($article->sub_traffic2_station) &&
            is_numeric($article->sub_traffic2_time)) {
            $article->ensenNm3 = self::limit($article->sub_traffic2_line, 30);
            $article->ensenCd3 = '0010';
            $article->ekiNm3 = self::limit($article->sub_traffic2_station, 40);
            $article->ekiCd3 = '07240';
            $article->kotsuKbn3 = 1;
            $article->tohoJikan3 = self::limit($article->sub_traffic2_time, 2);
        } elseif ($article->sub_traffic2 == 2 &&
            !empty($article->sub_traffic2_bus_time) &&
            !empty($article->sub_traffic2_bus) &&
            is_numeric($article->sub_traffic2_bus_walk)) {
            $article->ensenNm3 = self::limit($article->sub_traffic2_line, 30);
            $article->ekiNm3 = self::limit($article->sub_traffic2_station, 40);
            $article->kotsuKbn3 = 2;
            $article->tohoJikan3 = self::limit($article->sub_traffic2_bus_walk, 2);
            $article->ensenCd3 = '0010';
            $article->ekiCd3 = '07240';
            $article->busJikan3 = self::limit($article->sub_traffic2_bus_time, 2);
            $article->busTei3 = self::limit($article->sub_traffic2_bus, 40);
            $article->teihoJikan3 = self::limit($article->sub_traffic2_bus_walk, 2);
        }

        if ($article->event_schedule == 3) {
            $eventDays = explode(',', $article->event_day);
            foreach ($eventDays as $index => $eventDay) {
                $article->{'eventDate1'.($index + 1)} = str_replace("-", "/", self::limit($eventDay, 10));
            }
        } else if ($article->event_schedule == 4) {
            $article->{'kikanEventKaishiDate1'} = str_replace("-", "/", self::limit($article->from_event, 10));
            $article->{'kikanEventShuryoDate1'} = str_replace("-", "/", self::limit($article->to_event, 10));
        }

        $dataEventCategory = [
            1 => 1,
            2 => 2,
            3 => 3,
            4 => 4,
            5 => 6,
            0 => 0
        ];

        $article->eventInfoKbn = $dataEventCategory[$article->event_category] ?? "";
        $article->netEventKaishiTimeH = $article->from_hour;
        $from_minute = $article->from_minute;
        if ($from_minute == 10) {
            $from_minute = "15";
        } else if ($from_minute == 20 || $from_minute == 30) {
            $from_minute = "30";
        } else if ($from_minute == 40 || $from_minute == 50) {
            $from_minute = "45";
        } else {
            $from_minute = "00";
        }
        $article->netEventKaishiTimeM = $from_minute;
        $article->netEventShuryoTimeH = $article->to_hour;
        $to_minute = $article->to_minute;
        if ($to_minute == 10) {
            $to_minute = "15";
        } else if ($to_minute == 20 || $to_minute == 30) {
            $to_minute = "30";
        } else if ($to_minute == 40 || $to_minute == 50) {
            $to_minute = "45";
        } else {
            $to_minute = "00";
        }
        $article->netEventShuryoTimeM = $to_minute;
        if($article->netEventShuryoTimeH == null){
            $article->netEventShuryoTimeM = "";
        }
        if($article->netEventKaishiTimeH == null){
            $article->netEventKaishiTimeM = "";
        }

        if ($article->occupied) {
            $article->tatemonoJokyoKbn = 2;
        } else {
            if ($article->property_sub == 1) {
                $article->tatemonoJokyoKbn = 1;
            } else {
                $article->tatemonoJokyoKbn = 3;
            }
        }

        // 住所
        $article->todofukenCd = $article->address1;
        $article->shikugunCd = $article->address2;
        $article->ooazaCd = $article->address3;

        $pref_info = MstPrefecture::getName($article->address1);
        $city_info = MstCity::getName($article->address1, $article->address2);
        $town_info = MstTown::getName($article->address1, $article->address2, $article->address3);
        $article->todofukenNm = $pref_info->name??'';
        $article->shikugunNm = $city_info->name??'';
        $article->ooazaNm = $town_info->name??'';
        // 交通

        // 2.担当者情報
        // 担当者名
        $user_info = UserInfo::getDataById($article->hp_charge);
        $name_info = '';
        $name_info = $user_info->last_name??'';
        if($name_info != '') {
            $name_info .= ' ';
        }
        $name_info .= $user_info->first_name??'';
        $article->kishaEigyoMei = str_limit($name_info, 20, "");
        // スタッフコメント
        $staffComment = str_replace(array("ﾂ", "ﾔ", "ｽ", "━","‐", "―", "－", "–", "ー", "-", "−", "ﾌ", "ｧ", "ﾐ", "ﾘ", "ｰ", "ﾏ", "ｰ", "ﾄ", "ｾ", "ﾌ", "ﾞ", "ﾝ", "ｲ", "ﾚ", "ﾌ", "ﾞ", "ﾝ", "ﾛ", "ｿ", "ﾝ", "ｾﾌﾞﾝｲﾚﾌﾞﾝ"), "", mb_substr($article->comment, 0, 100));
        //$article->staffComment = $staffComment;
        // 社内メモ1
        $kishaComment1 = str_replace(array("ﾂ", "ﾔ", "ｽ", "━","‐", "―", "－", "–", "ー", "-", "−", "ﾌ", "ｧ", "ﾐ", "ﾘ", "ｰ", "ﾏ", "ｰ", "ﾄ", "ｾ", "ﾌ", "ﾞ", "ﾝ", "ｲ", "ﾚ", "ﾌ", "ﾞ", "ﾝ", "ﾛ", "ｿ", "ﾝ", "ｾﾌﾞﾝｲﾚﾌﾞﾝ"), "", mb_substr($article->memo1, 0, 20));
        $article->kishaComment1 = "";
        // 社内メモ2
        $kishaComment2 = str_replace(array("ﾂ", "ﾔ", "ｽ", "━","‐", "―", "－", "–", "ー", "-", "−", "ﾌ", "ｧ", "ﾐ", "ﾘ", "ｰ", "ﾏ", "ｰ", "ﾄ", "ｾ", "ﾌ", "ﾞ", "ﾝ", "ｲ", "ﾚ", "ﾌ", "ﾞ", "ﾝ", "ﾛ", "ｿ", "ﾝ", "ｾﾌﾞﾝｲﾚﾌﾞﾝ"), "", mb_substr($article->memo2, 0, 20));
        $article->kishaComment2 = "";

        // 3.価格
        // 町会費
        if($article->council != 0) {
            $article->chokaihiKbn = $article->council;
            if($article->council_presence == 0) {
                $article->chokaihiUmu = '1';
                $article->chokaihiRyo = '';
                $article->chokaihiRyoTaniKbn = '';
            } elseif($article->council_presence == 1) {
                $article->chokaihiUmu = '1';
                $article->chokaihiRyo = str_limit($article->council_cost, 8, "");
                if($article->council_cost_unit != 0) {
                    $article->chokaihiRyoTaniKbn = $article->council_cost_unit;
                } else {
                    $article->chokaihiRyoTaniKbn = '';
                }
            } elseif($article->council_presence == 2) {
                $article->chokaihiUmu = '3';
                $article->chokaihiRyo = '';
                $article->chokaihiRyoTaniKbn = '';
            }
        } elseif($article->council == 0) {
            $article->chokaihiKbn = '0';
            $article->chokaihiUmu = '';
            $article->chokaihiRyo = '';
            $article->chokaihiRyoTaniKbn = '';
        }

        // 有線
        if($article->broadcasting == 0) {
            $article->yusenHiyoUmu = '0';
            $article->yusenShokiHiyoUmu = '';
            $article->yusenShokiHiyo = '';
        } elseif($article->broadcasting == 1) {
            $article->yusenHiyoUmu = '1';
            if($article->broadcasting_presence == 0) {
                $article->yusenShokiHiyoUmu = 1;
                $article->yusenShokiHiyo = '';
            } elseif($article->broadcasting_presence == 1) {
                $article->yusenShokiHiyoUmu = 2;
                $article->yusenShokiHiyo = $article->broadcasting_cost;
            } elseif($article->broadcasting_presence == 2) {
                $article->yusenShokiHiyoUmu = 3;
                $article->yusenShokiHiyo = '';
            }

            if($article->broadcasting_fixed_presence == 0) {
                $article->yusenTeigakuRyoUmu = 1;
                $article->yusenTeigakuRyo = '';
                $article->yusenTeigakuRyoTaniKbn = $article->broadcasting_fixed_cost_unit;
            } elseif($article->broadcasting_fixed_presence == 1) {
                $article->yusenTeigakuRyoUmu = 2;
                $article->yusenTeigakuRyo = mb_substr($article->broadcasting_fixed_cost, 0, 8);
                $article->yusenTeigakuRyoTaniKbn = $article->broadcasting_fixed_cost_unit;
            } elseif($article->broadcasting_fixed_presence == 2) {
                $article->yusenTeigakuRyoUmu = 3;
                $article->yusenTeigakuRyo = '';
                $article->yusenTeigakuRyoTaniKbn = $article->broadcasting_fixed_cost_unit;
            }

        } elseif($article->broadcasting == 2) {
            $article->yusenHiyoUmu = '0';
            $article->yusenShokiHiyoUmu = '';
            $article->yusenShokiHiyo = '';
        }

        // インターネット
        if($article->internet == 0) {
            $article->internetHiyoUmu = '0';
            $article->internetShokiHiyoUmu = '';
            $article->internetShokiHiyo = '';
        } elseif($article->internet == 1) {
            $article->internetHiyoUmu = '1';
            if($article->internet_presence == 0) {
                $article->internetShokiHiyoUmu = 1;
                $article->internetShokiHiyo = '';
            } elseif($article->internet_presence == 1) {
                $article->internetShokiHiyoUmu = 2;
                $article->internetShokiHiyo = $article->internet_cost;
            } elseif($article->internet_presence == 2) {
                $article->internetShokiHiyoUmu = 3;
                $article->internetShokiHiyo = '';
            }

            if($article->internet_fixed_presence == 0) {
                $article->internetTeigakuRyoUmu = 1;
                $article->internetTeigakuRyo = '';
                $article->internetTeigakuRyoTaniKbn = $article->internet_fixed_cost_unit;
            } elseif($article->internet_fixed_presence == 1) {
                $article->internetTeigakuRyoUmu = 2;
                $article->internetTeigakuRyo = mb_substr($article->internet_fixed_cost, 0, 8);
                $article->internetTeigakuRyoTaniKbn = $article->internet_fixed_cost_unit;
            } elseif($article->internet_fixed_presence == 2) {
                $article->internetTeigakuRyoUmu = 3;
                $article->internetTeigakuRyo = '';
                $article->internetTeigakuRyoTaniKbn = $article->internet_fixed_cost_unit;
            }

        } elseif($article->internet == 2) {
            $article->internetHiyoUmu = '0';
            $article->internetShokiHiyoUmu = '';
            $article->internetShokiHiyo = '';
        }

        // catv
        if($article->catv == 0) {
            $article->catvHiyoUmu = '0';
            $article->catvShokiHiyoUmu = '';
            $article->catvShokiHiyo = '';
        } elseif($article->catv == 1) {
            $article->catvHiyoUmu = '1';
            if($article->catv_presence == 0) {
                $article->catvShokiHiyoUmu = 1;
                $article->catvShokiHiyo = '';
            } elseif($article->catv_presence == 1) {
                $article->catvShokiHiyoUmu = 2;
                $article->catvShokiHiyo = $article->catv_cost;
            } elseif($article->catv_presence == 2) {
                $article->catvShokiHiyoUmu = 3;
                $article->catvShokiHiyo = '';
            }

            if($article->catv_fixed_presence == 0) {
                $article->catvTeigakuRyoUmu = 1;
                $article->catvTeigakuRyo = '';
                $article->catvTeigakuRyoTaniKbn = $article->catv_fixed_cost_unit;
            } elseif($article->catv_fixed_presence == 1) {
                $article->catvTeigakuRyoUmu = 2;
                $article->catvTeigakuRyo = mb_substr($article->catv_fixed_cost, 0, 8);
                $article->catvTeigakuRyoTaniKbn = $article->catv_fixed_cost_unit;
            } elseif($article->catv_fixed_presence == 2) {
                $article->catvTeigakuRyoUmu = 3;
                $article->catvTeigakuRyo = '';
                $article->catvTeigakuRyoTaniKbn = $article->catv_fixed_cost_unit;
            }

        } elseif($article->catv == 2) {
            $article->catvHiyoUmu = '0';
            $article->catvShokiHiyoUmu = '';
            $article->catvShokiHiyo = '';
        }

        // 温泉
        if($article->spring != 0) {
            $article->onsenKenKbn = $article->council;
            if($article->spring_presence == 0) {
                $article->onsenKenRyoUmu = '1';
                $article->onsenKenRyo = '';
                $article->onsenKenRyoTaniKbn = '';
            } elseif($article->spring_presence == 1) {
                $article->onsenKenRyoUmu = '1';
                $article->onsenKenRyo = mb_substr($article->spring_cost, 0, 8);
                if($article->spring_cost_unit != 0) {
                    $article->onsenKenRyoTaniKbn = $article->spring_cost_unit;
                } else {
                    $article->onsenKenRyoTaniKbn = '';
                }
            } elseif($article->spring_presence == 2) {
                $article->onsenKenRyoUmu = '3';
                $article->onsenKenRyo = '';
                $article->onsenKenRyoTaniKbn = '';
            }
        } elseif($article->spring == 0) {
            $article->onsenKenKbn = '0';
            $article->onsenKenRyoUmu = '';
            $article->onsenKenRyo = '';
            $article->onsenKenRyoTaniKbn = '';
        }

        // 4.土地建物情報
        // 土地権利
        if($article->land_right != 0) {
            $article->shikichiKenri = $article->land_right;
        } else {
            $article->shikichiKenri = '1';
        }
        if ($article->shikichiKenri != 0 && $article->shikichiKenri != 1) {
            $article->shakuchikenShosaiKbn = $article->leasehold_kind;
            $article->chidaiKbn = $article->land_rent == 0 ? "1" : "4";
            $article->chidaiMin = mb_substr($article->land_rent_val, 0, 8);
            $article->chidaiTaniKbn = $article->land_rent_unit;
            $article->shakuchiKikanKbn = $article->leasehold_period;
            $article->shakuchiKikanNen = mb_substr($article->leasehold_period_year, 0, 3);
            $article->shakuchiKikanTsuki = mb_substr($article->leasehold_period_month, 0, 2);
            $article->kenrikinUmu = $article->right_cost;
            $article->kenrikinMin = mb_substr($article->right_cost_val, 0, 6);
            $article->hoshokinUmu = $article->deposit_cost;
            $article->hoshokinShikikinMin = mb_substr($article->deposit_cost_val, 0 , 9);
            $article->shikikinUmu = $article->security_deposit_cost;
            $article->shikikinMin = mb_substr($article->security_deposit_cost_val, 0, 9);
            $article->tisSonotaKeiyakuJoko = $article->other_leasehold;
            if (
                $article->leasehold_kind == 3 ||
                $article->leasehold_kind == 4 ||
                $article->leasehold_kind == 7 ||
                $article->leasehold_kind == 8
            ) {
                if ($article->regular_leased_registration == 2) {
                    $article->tisSetteiToki = 3;
                } else if ($article->regular_leased_registration == 3) {
                    $article->tisSetteiToki = 2;
                } else {
                    $article->tisSetteiToki = $article->regular_leased_registration;
                }
                $article->tisChinryoKaiteijikiKbn = $article->regular_leased_season;
                $article->tisChinryoKaiteijiki = $article->regular_leased_season_nen;
                $article->tisChinryoKaiteigakuKbn = $article->regular_leased_cost;
                $article->tisJttKahiKbn = $article->regular_leased_transfer;
                if ($article->tisJttKahiKbn == 1) {
                    $article->tisJttShodakuYohiKbn = $article->regular_leased_transfer_method;
                    $article->tisJttShodakuryoKbn = $article->regular_leased_transfer_necessity;
                    $article->tisJttShodakunushiKbn = $article->regular_leased_transfer_consent;
                }
            }
        }
        // 土地面積
        $article->tochiMensekiKbn = $article->land_area;
        $land_area = $article->land_area_val??'0.0';
        $land_area_list = explode('.', $land_area);
        $article->tochiMensekiMinS = mb_substr($land_area_list[0]??'', 0, 6);
        $article->tochiMensekiMinL = mb_substr($land_area_list[1]??'', 0, 2);

        if($article->land_condition1 == 1) {
            $land_condition_area1_list = explode('.', $article->land_condition_area1);
            $article->keishaMensekiMinS = mb_substr($land_condition_area1_list[0]??'', 0, 4);
            $article->keishaMensekiMinL = mb_substr($land_condition_area1_list[1]??'', 0, 2);
            $article->keishaMensekiMinTaniKbn = $article->land_condition_unit1;
        } else {
            $article->keishaMensekiMinS = '';
            $article->keishaMensekiMinL = '';
            $article->keishaMensekiMinTaniKbn = 0;
        }

        if($article->land_condition2 == 2) {
            $land_condition_area2_list = explode('.', $article->land_condition_area2);
            $article->shikichiEnchoMinS = mb_substr($land_condition_area2_list[0]??'', 0, 3);
            $article->shikichiEnchoMinL = mb_substr($land_condition_area2_list[1]??'', 0, 2);
            $article->shikichiEnchoMinTaniKbn = $article->land_condition_unit2;
        } else {
            $article->shikichiEnchoMinS = '';
            $article->shikichiEnchoMinL = '';
            $article->shikichiEnchoMinTaniKbn = 0;
        }

        if($article->land_condition3 == 3) {
            $land_condition_area3_list = explode('.', $article->land_condition_area3);
            $article->koatsuMensekiMinS = mb_substr($land_condition_area3_list[0]??'', 0, 4);
            $article->koatsuMensekiMinL = mb_substr($land_condition_area3_list[1]??'', 0, 3);
        } else {
            $article->koatsuMensekiMinS = '';
            $article->koatsuMensekiMinL = '';
        }

        // 建ぺい率
        $article->kenpeiritsu = (int)$article->building_rate > 999 ? 999 : (int)$article->building_rate;
        // 容積率
        $article->yosekiritsu = (int)$article->volume_rate > 999 ? 999 : (int)$article->volume_rate;

        // 私道負担
        if($article->road_burden == 0) {
            $article->shidoFutanKbn = 1;
            $article->shidoFutanMensekiMinS1 = '';
            $article->shidoFutanMensekiMinL1 = '';
            $article->shidoFutanMensekiMinS2 = '';
            $article->shidoFutanMensekiMinL2 = '';
            $article->shidoFutanBunshiMinS = '';
            $article->shidoFutanBunshiMinL = '';
            $article->shidoFutanBunboMinS = '';
            $article->shidoFutanBunboMinL = '';
        } elseif($article->road_burden == 1) {
            $article->shidoFutanKbn = 2;
            $road_burden_area = $article->road_burden_area;
            $road_burden_area_list = explode('.', $road_burden_area);
            $article->shidoFutanMensekiMinS1 = mb_substr($road_burden_area_list[0]??'', 0, 4);
            $article->shidoFutanMensekiMinL1 = mb_substr($road_burden_area_list[1]??'', 0, 2);
            $article->shidoFutanMensekiMinS2 = '';
            $article->shidoFutanMensekiMinL2 = '';
            $article->shidoFutanBunshiMinS = '';
            $article->shidoFutanBunshiMinL = '';
            $article->shidoFutanBunboMinS = '';
            $article->shidoFutanBunboMinL = '';

        } elseif($article->road_burden == 2) {
            $article->shidoFutanKbn = 3;
            $road_burden_area = $article->road_burden_area;
            $road_burden_area_list = explode('.', $road_burden_area);
            $road_numerator = $article->road_numerator;
            $road_numerator_list = explode('.', $road_numerator);
            $road_denominator = $article->road_denominator;
            $road_denominator_list = explode('.', $road_denominator);
            $article->shidoFutanMensekiMinS1 = '';
            $article->shidoFutanMensekiMinL1 = '';
            $article->shidoFutanMensekiMinS2 = $road_burden_area_list[0]??'';
            $article->shidoFutanMensekiMinL2 = $road_burden_area_list[1]??'';
            $article->shidoFutanBunshiMinS = $road_numerator_list[0]??'';
            $article->shidoFutanBunshiMinL = $road_numerator_list[1]??'';
            $article->shidoFutanBunboMinS = $road_denominator_list[0]??'';
            $article->shidoFutanBunboMinL = $road_denominator_list[1]??'';
        } else {
            $article->shidoFutanKbn = '';
            $article->shidoFutanMensekiMinS1 = '';
            $article->shidoFutanMensekiMinL1 = '';
            $article->shidoFutanMensekiMinS2 = '';
            $article->shidoFutanMensekiMinL2 = '';
            $article->shidoFutanBunshiMinS = '';
            $article->shidoFutanBunshiMinL = '';
            $article->shidoFutanBunboMinS = '';
            $article->shidoFutanBunboMinL = '';
        }

        // 地役権
        if($article->easement == 1 || $article->easement == 0) {
            $article->chiekikenKbn = $article->easement;
            $article->chiekikenMensekiS = '';
            $article->chiekikenMensekiL = '';
        } else {
            $article->chiekikenKbn = $article->easement;
            $easement_area = $article->easement_area;
            $easement_area_list = explode('.', $easement_area);
            $article->chiekikenMensekiS = mb_substr($easement_area_list[0]??'', 0, 4);
            $article->chiekikenMensekiL = mb_substr($easement_area_list[1]??'', 0, 2);
        }
        // 道路向き
        if($article->land_direction1 == 0) {
            $article->doroMukiKbn1 = 0;
        } else {
            if($article->land_direction1 == 1) {
                $article->doroMukiKbn1 = 4;
            } elseif($article->land_direction1 == 2) {
                $article->doroMukiKbn1 = 5;
            } elseif($article->land_direction1 == 3) {
                $article->doroMukiKbn1 = 1;
            } elseif($article->land_direction1 == 4) {
                $article->doroMukiKbn1 = 6;
            } elseif($article->land_direction1 == 5) {
                $article->doroMukiKbn1 = 3;
            } elseif($article->land_direction1 == 6) {
                $article->doroMukiKbn1 = 8;
            } elseif($article->land_direction1 == 7) {
                $article->doroMukiKbn1 = 2;
            } elseif($article->land_direction1 == 8) {
                $article->doroMukiKbn1 = 7;
            }
            $road_width1 = $article->road_width1;
            $road_width1_list = explode('.', $road_width1);
            $frontage1 = $article->frontage1;
            $frontage1_list = explode('.', $frontage1);
            if (isset($road_width1_list[0]) && $road_width1_list[0] > 99) {
                $article->doroWidth1S = 99;
            } else {
                $article->doroWidth1S = $road_width1_list[0]??'';
            }
            if (isset($road_width1_list[1]) && $road_width1_list[1] > 9) {
                $article->doroWidth1L = 9;
            } else {
                $article->doroWidth1L = $road_width1_list[1]??'';
            }

            if (isset($frontage1_list[0]) && $frontage1_list[0] > 99) {
                $article->setsudoWidth1S = 99;
            } else {
                $article->setsudoWidth1S = $frontage1_list[0]??'';
            }
            if (isset($frontage1_list[1]) && $frontage1_list[1] > 9) {
                $article->setsudoWidth3L = 9;
            } else {
                $article->setsudoWidth3L = $frontage1_list[1]??'';
            }
        }

        if($article->land_direction2 == 0) {
            $article->doroMukiKbn2 = 0;
        } else {
            if($article->land_direction2 == 1) {
                $article->doroMukiKbn2 = 4;
            } elseif($article->land_direction2 == 2) {
                $article->doroMukiKbn2 = 5;
            } elseif($article->land_direction2 == 3) {
                $article->doroMukiKbn2 = 1;
            } elseif($article->land_direction2 == 4) {
                $article->doroMukiKbn2 = 6;
            } elseif($article->land_direction2 == 5) {
                $article->doroMukiKbn2 = 3;
            } elseif($article->land_direction2 == 6) {
                $article->doroMukiKbn2 = 8;
            } elseif($article->land_direction2 == 7) {
                $article->doroMukiKbn2 = 2;
            } elseif($article->land_direction2 == 8) {
                $article->doroMukiKbn2 = 7;
            }
            $road_width2 = $article->road_width2;
            $road_width2_list = explode('.', $road_width2);
            $frontage2 = $article->frontage2;
            $frontage2_list = explode('.', $frontage2);
            if (isset($road_width2_list[0]) && $road_width2_list[0] > 99) {
                $article->doroWidth2S = 99;
            } else {
                $article->doroWidth2S = $road_width2_list[0]??'';
            }
            if (isset($road_width2_list[1]) && $road_width2_list[1] > 9) {
                $article->doroWidth2L = 9;
            } else {
                $article->doroWidth2L = $road_width2_list[1]??'';
            }

            if (isset($frontage2_list[0]) && $frontage2_list[0] > 99) {
                $article->setsudoWidth2S = 99;
            } else {
                $article->setsudoWidth2S = $frontage2_list[0]??'';
            }
            if (isset($frontage2_list[1]) && $frontage2_list[1] > 9) {
                $article->setsudoWidth2L = 9;
            } else {
                $article->setsudoWidth2L = $frontage2_list[1]??'';
            }
        }

        if($article->land_direction3 == 0) {
            $article->doroMukiKbn3 = 0;
        } else {
            if($article->land_direction3 == 1) {
                $article->doroMukiKbn3 = 4;
            } elseif($article->land_direction3 == 2) {
                $article->doroMukiKbn3 = 5;
            } elseif($article->land_direction3 == 3) {
                $article->doroMukiKbn3 = 1;
            } elseif($article->land_direction3 == 4) {
                $article->doroMukiKbn3 = 6;
            } elseif($article->land_direction3 == 5) {
                $article->doroMukiKbn3 = 3;
            } elseif($article->land_direction3 == 6) {
                $article->doroMukiKbn3 = 8;
            } elseif($article->land_direction3 == 7) {
                $article->doroMukiKbn3 = 2;
            } elseif($article->land_direction3 == 8) {
                $article->doroMukiKbn3 = 7;
            }
            $road_width3 = $article->road_width3;
            $road_width3_list = explode('.', $road_width3);
            $frontage3 = $article->frontage3;
            $frontage3_list = explode('.', $frontage3);
            if (isset($road_width3_list[0]) && $road_width3_list[0] > 99) {
                $article->doroWidth3S = 99;
            } else {
                $article->doroWidth3S = $road_width3_list[0]??'1';
            }
            if (isset($road_width3_list[1]) && $road_width3_list[1] > 9) {
                $article->doroWidth3L = 9;
            } else {
                $article->doroWidth3L = $road_width3_list[1]??'0';
            }

            if (isset($frontage3_list[0]) && $frontage3_list[0] > 99) {
                $article->setsudoWidth3S = 99;
            } else {
                $article->setsudoWidth3S = $frontage3_list[0]??'1';
            }
            if (isset($frontage3_list[1]) && $frontage3_list[1] > 9) {
                $article->setsudoWidth3L = 9;
            } else {
                $article->setsudoWidth3L = $frontage3_list[1]??'0';
            }
        }

        // 上水道
        $article->setsubiJosuidoKbn = $article->water_supply;

        // 下水道
        $article->setsubiGesuidoKbn = $article->sewerage;

        // ガス
        $article->setsubiGasKbn = $article->gas;

        // 駐車場
        if($article->garage == 1) {
            $article->shakoKbn = 2;
        } elseif($article->garage == 0) {
            $article->shakoKbn = 0;
        }

        // セットパック
        if($article->set == 1) {
            $article->setbackKbn = $article->set;
            $article->setbackMensekiMinS = '';
            $article->setbackMensekiMinL = '';
        } elseif($article->set == 2 || $article->set == 3) {
            $article->setbackKbn = $article->set;
            $set_area = $article->set_area;
            $set_area_list = explode('.', $set_area);
            if (isset($set_area_list[0]) && $set_area_list[0] > 9999) {
                $article->setbackMensekiMinS = 9999;
            } else {
                $article->setbackMensekiMinS = $set_area_list[0]??'';
            }
            if (isset($set_area_list[1]) && $set_area_list[1] > 99) {
                $article->setbackMensekiMinL = 99;
            } else {
                $article->setbackMensekiMinL = $set_area_list[1]??'';
            }
        } else {
            $article->setbackKbn = "";
            $article->setbackMensekiMinS = '';
            $article->setbackMensekiMinL = '';
        }

        // 用途地域
        if($article->use_area == 1) {
            $article->yotochiikiCd01 = '01';
        } elseif($article->use_area == 2) {
            $article->yotochiikiCd01 = '04';
        } elseif($article->use_area == 3) {
            $article->yotochiikiCd01 = '06';
        } elseif($article->use_area == 4) {
            $article->yotochiikiCd01 = '08';
        } elseif($article->use_area == 5) {
            $article->yotochiikiCd01 = '09';
        } elseif($article->use_area == 6) {
            $article->yotochiikiCd01 = '10';
        } elseif($article->use_area == 7) {
            $article->yotochiikiCd01 = '11';
        } elseif($article->use_area == 8) {
            $article->yotochiikiCd01 = '12';
        } elseif($article->use_area == 10) {
            $article->yotochiikiCd01 = '02';
        } elseif($article->use_area == 11) {
            $article->yotochiikiCd01 = '03';
        } elseif($article->use_area == 12) {
            $article->yotochiikiCd01 = '05';
        } elseif($article->use_area == 13) {
            $article->yotochiikiCd01 = '07';
        } elseif($article->use_area == 14) {
            $article->yotochiikiCd01 = '16';
        } elseif ($article->use_area == 99) {
            $article->yotochiikiCd01 = '13';
        } else {
            $article->yotochiikiCd01 = '00';
        }

        switch ($article->city_plan) {
            case 2:
                $article->yotochiikiCd01 = 14;
                $article->kenchikuKyokaKbn = $article->city_plan_reason;
                break;
            case 4:
                $article->yotochiikiCd01 = 15;
                break;
        }

        if($article->land_use == 1) {
            $article->yotochiikiCd02 = '01';
        } elseif($article->land_use == 2) {
            $article->yotochiikiCd02 = '04';
        } elseif($article->land_use == 3) {
            $article->yotochiikiCd02 = '06';
        } elseif($article->land_use == 4) {
            $article->yotochiikiCd02 = '08';
        } elseif($article->land_use == 5) {
            $article->yotochiikiCd02 = '09';
        } elseif($article->land_use == 6) {
            $article->yotochiikiCd02 = '10';
        } elseif($article->land_use == 7) {
            $article->yotochiikiCd02 = '11';
        } elseif($article->land_use == 8) {
            $article->yotochiikiCd02 = '12';
        } elseif($article->land_use == 10) {
            $article->yotochiikiCd02 = '02';
        } elseif($article->land_use == 11) {
            $article->yotochiikiCd02 = '03';
        } elseif($article->land_use == 12) {
            $article->yotochiikiCd02 = '05';
        } elseif($article->land_use == 13) {
            $article->yotochiikiCd02 = '07';
        } elseif($article->land_use == 14) {
            $article->yotochiikiCd02 = '16';
        } else {
            $article->yotochiikiCd02 = '00';
        }

        // 建物面積
        $article->tatemonoMnsKbn = $article->total_area;
        $total_area = $article->total_area_val??'0.0';
        $total_area_list = explode('.', $total_area);
        $article->tatemonoMnsMinS = isset($total_area_list[0]) ? str_limit($total_area_list[0], 4, "") : '';
        $article->tatemonoMnsMinL = isset($total_area_list[1]) ? str_limit($total_area_list[1], 2, "") : '';

        $building_condition_area1 = $article->building_condition_area1??'0.0';
        $building_condition_area1_list = explode('.', $building_condition_area1);
        $article->uchiChikashitsuMinS = isset($building_condition_area1_list[0]) ? str_limit($building_condition_area1_list[0], 3, "") : '';
        $article->uchiChikashitsuMinL = isset($building_condition_area1_list[1]) ? str_limit($building_condition_area1_list[1], 2, "") : '';

        $building_condition_area2 = $article->building_condition_area2??'0.0';
        $building_condition_area2_list = explode('.', $building_condition_area2);
        $article->uchiShakoMinS = isset($building_condition_area2_list[0]) ? str_limit($building_condition_area2_list[0], 3, "") : '';
        $article->uchiShakoMinL = isset($building_condition_area2_list[1]) ? str_limit($building_condition_area2_list[1], 2, "") : '';

        $building_condition_area3 = $article->building_condition_area3??'0.0';
        $building_condition_area3_list = explode('.', $building_condition_area3);
        $article->uchiChikachuMinS = isset($building_condition_area3_list[0]) ? str_limit($building_condition_area3_list[0], 3, "") : '';
        $article->uchiChikachuMinL = isset($building_condition_area3_list[1]) ? str_limit($building_condition_area3_list[1], 3, "") : '';

        if($article->building_condition4 == 4) {
            if($article->building_condition_select != 9) {
                $article->uchiJigYotoKbn = $article->building_condition_select;
            } else {
                $article->uchiJigYotoKbn = '7';
            }
        } else {
            $article->uchiJigYotoKbn = '0';
        }

        $article->madoriMin = $article->floor_plan;
        if($article->floor_plan_type == 1) {
            $article->madoriMinType1Kbn = '03';
        } elseif($article->floor_plan_type == 2) {
            $article->madoriMinType1Kbn = '04';
        } elseif($article->floor_plan_type == 3) {
            $article->madoriMinType1Kbn = '01';
        } elseif($article->floor_plan_type == 4) {
            $article->madoriMinType1Kbn = '02';
        } elseif($article->floor_plan_type == 5) {
            $article->madoriMinType1Kbn = '02';
            $article->madoriMinType2Kbn = '1';
        } elseif($article->floor_plan_type == 6) {
            $article->madoriMinType1Kbn = '03';
            $article->madoriMinType2Kbn = '1';
        } elseif($article->floor_plan_type == 7) {
            $article->madoriMinType1Kbn = '05';
        } elseif($article->floor_plan_type == 8) {
            $article->madoriMinType1Kbn = '05';
            $article->madoriMinType2Kbn = '1';
        } elseif($article->floor_plan_type == 9) {
            $article->madoriMinType1Kbn = '04';
            $article->madoriMinType2Kbn = '1';
        } else {
            $article->madoriMinType1Kbn = '00';
        }

        $article->soKosu = $article->total_unit??'0';
        /*if ($article->age_year < 1965) {
            $article->kanseiJikiNen = 1965;
        } else {
            $article->kanseiJikiNen = $article->age_year;
        }*/
        $article->kanseiJikiNen = $article->age_year;
        $article->kanseiJikiTsuki = $article->age_month;
        $article->kanseiJikiTsukiSu = $article->completed_contract_month;

        // 入居予定
        if($article->move_in == 1) {
            $article->nyukyoJikiKbn = 1;
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiTsukiSu = '';
        } elseif($article->move_in == 2) {
            $article->nyukyoJikiKbn = 4;
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiTsukiSu = '';
        } elseif($article->move_in == 3) {
            $article->nyukyoJikiKbn = 2;
            if ($article->move_in_year < 1965) {
                $article->nyukyoJikiNen = 1965;
            } else {
                $article->nyukyoJikiNen = $article->move_in_year;
            }
            $article->nyukyoJikiTsuki = $article->move_in_month;
            $article->nyukyoJikiTsukiSu = '';
        } elseif($article->move_in == 4) {
            $article->nyukyoJikiKbn = 3;
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiTsukiSu = $article->move_in_contract_month;

        } elseif($article->move_in == 0) {
            $article->nyukyoJikiKbn = 0;
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiTsukiSu = '';
        }

        // 構造
        if($article->construction == 1) {
            $article->kozoKbn = '03';
        } elseif($article->construction == 2) {
            $article->kozoKbn = '09';
        } elseif($article->construction == 11) {
            $article->kozoKbn = '09';
        } elseif($article->construction == 10) {
            $article->kozoKbn = '09';
        } elseif($article->construction == 3) {
            $article->kozoKbn = '04';
        } elseif($article->construction == 4) {
            $article->kozoKbn = '01';
        } elseif($article->construction == 5) {
            $article->kozoKbn = '02';
        } elseif($article->construction == 6) {
            $article->kozoKbn = '06';
        } elseif($article->construction == 7) {
            $article->kozoKbn = '07';
        } elseif($article->construction == 8) {
            $article->kozoKbn = '05';
        } elseif($article->construction == 9) {
            $article->kozoKbn = '08';
        } else {
            $article->kozoKbn = '';
        }

        if ($article->kozoKbn == "09") {
            $dataConstruction = [
                2 => "ブロック造",
                11 => "RCB造",
                10 => "WRC造"
            ];
            $article->kozoSonotaComment = $dataConstruction[$article->construction] ?? "";
        }

        if($article->construction_sub == 1) {
            $article->kozoKbnIchibu = '03';
        } elseif($article->construction_sub == 2) {
            $article->kozoKbnIchibu = '09';
            $article->kozoSonotaCommentIchibu = 'ブロック造';
        } elseif($article->construction_sub == 11) {
            $article->kozoKbnIchibu = '09';
            $article->kozoSonotaCommentIchibu = 'RCB造';
        } elseif($article->construction_sub == 10) {
            $article->kozoKbnIchibu = '09';
            $article->kozoSonotaCommentIchibu = 'WRC造';
        } elseif($article->construction_sub == 3) {
            $article->kozoKbnIchibu = '04';
        } elseif($article->construction_sub == 4) {
            $article->kozoKbnIchibu = '01';
        } elseif($article->construction_sub == 5) {
            $article->kozoKbnIchibu = '02';
        } elseif($article->construction_sub == 6) {
            $article->kozoKbnIchibu = '06';
        } elseif($article->construction_sub == 7) {
            $article->kozoKbnIchibu = '07';
        } elseif($article->construction_sub == 8) {
            $article->kozoKbnIchibu = '05';
        } elseif($article->construction_sub == 9) {
            $article->kozoKbnIchibu = '08';
        } else {
            $article->kozoKbnIchibu = '10';
        }

        // 建物階建て
        $article->chijokaidate = $article->floor > 999 ? 999 : $article->floor;
        $article->chikakaidate = $article->underground > 9 ? 9 : $article->underground;

        // 駐車場
        if($article->parking == 1) {
            $article->shakoKbn = '5';
        } elseif($article->parking == 8) {
            $article->shakoKbn = '2';
        } elseif($article->parking == 9) {
            $article->shakoKbn = '1';
        } elseif($article->parking == 10) {
            $article->shakoKbn = '2';
        } elseif($article->parking == 11) {
            $article->shakoKbn = '3';
        } elseif($article->parking == 12) {
            $article->shakoKbn = '4';
        } else {
            $article->shakoKbn = '0';
        }

        // 建物確認番号
        $article->kenchikuKakuninNo = mb_substr($article->architecture_no, 0, 80);

        //リフォーム
        if($article->exterior == 1) {
            $article->gaisoUmu = $article->exterior;
            $article->gaisoNen = '';
            $article->gaisoTsuki = '';
        } elseif($article->exterior == 2) {
            $article->gaisoUmu = $article->exterior;
            if ($article->exterior_year < 1965) {
                $article->gaisoNen = 1965;
            } else {
                $article->gaisoNen = $article->exterior_year;
            }
            $article->gaisoTsuki = $article->exterior_month;
        } elseif($article->exterior == 3) {
            $article->gaisoUmu = $article->exterior;
            if ($article->exterior_year < 1965) {
                $article->gaisoNen = 1965;
            } else {
                $article->gaisoNen = $article->exterior_year;
            }
            $article->gaisoTsuki = $article->exterior_month;
        }

        if($article->interior == 1) {
            $article->naisoUmu = $article->interior;
            $article->naisoNen = '';
            $article->naisoTsuki = '';
        } elseif($article->interior == 2) {
            $article->naisoUmu = $article->interior;
            if ($article->exterior_year < 1965) {
                $article->naisoNen = 1965;
            } else {
                $article->naisoNen = $article->interior_year;
            }
            $article->naisoTsuki = $article->interior_month;
        } elseif($article->interior == 3) {
            $article->naisoUmu = $article->interior;
            if ($article->exterior_year < 1965) {
                $article->naisoNen = 1965;
            } else {
                $article->naisoNen = $article->interior_year;
            }
            $article->naisoTsuki = $article->interior_month;
        }

        // 5.会社情報
        if($article->company_manner == 1) {
            $article->torihikitaiyoKbn01 = '01';
        } elseif($article->company_manner == 2) {
            $article->torihikitaiyoKbn01 = '13';
        } elseif($article->company_manner == 3) {
            $article->torihikitaiyoKbn01 = '09';
        } elseif($article->company_manner == 4) {
            $article->torihikitaiyoKbn01 = '10';
        } elseif($article->company_manner == 5) {
            $article->torihikitaiyoKbn01 = '11';
        } elseif($article->company_manner == 6) {
            $article->torihikitaiyoKbn01 = '06';
        } elseif($article->company_manner == 7) {
            $article->torihikitaiyoKbn01 = '07';
        } elseif($article->company_manner == 8) {
            $article->torihikitaiyoKbn01 = '09';
        } elseif($article->company_manner == 9) {
            $article->torihikitaiyoKbn01 = '12';
        } else {
            $article->torihikitaiyoKbn01 = '00';
        }

        // 6.制限事項
        $law_check = RelationLawrestriction::getDataByArticleId($article->building_id);
        foreach($law_check as $law) {
            if($law == 1) {
                $article->hriSgnHoBunkazai = 1;

            } elseif($law == 2) {
                $article->hriSgnHoKotohogo = 1;

            } elseif($law == 3) {
                $article->hriSgnHoKeikan = 1;

            } elseif($law == 4) {
                $article->hriSgnHoMisshuSgcSeibi = 1;

            } elseif($law == 5) {
                $article->hriSgnHoKoku = 1;

            } elseif($law == 6) {
                $article->hriSgnHoKasen = 1;

            } elseif($law == 7) {
                $article->hriSgnHoSabo = 1;

            } elseif($law == 8) {
                $article->hriSgnHoNochi = 1;

            } elseif($law == 9) {
                $article->hriSgnHoAnzenJorei = 1;

            } elseif($law == 10) {
                $article->hriSgnChiTakuzokisei = 1;

            } elseif($law == 11) {
                $article->hriSgnChiKyukeishachi = 1;

            } elseif($law == 12) {
                $article->hriSgnChiKodochiku = 1;

            } elseif($law == 13) {
                $article->hriSgnChiKodoriyo = 1;

            } elseif($law == 14) {
                $article->hriSgnChiChukosoJutaku = 1;

            } elseif($law == 15) {
                $article->hriSgnChiKosojutakuYudo = 1;

            } elseif($law == 16) {
                $article->hriSgnChiBoka = 1;

            } elseif($law == 17) {
                $article->hriSgnChiJunboka = 1;

            } elseif($law == 18) {
                $article->hriSgnChiFuchi = 1;

            } elseif($law == 19) {
                $article->hriSgnChiKeikan = 1;

            } elseif($law == 20) {
                $article->hriSgnChiJunKeikan = 1;

            } elseif($law == 21) {
                $article->hriSgnChiKanko = 1;

            } elseif($law == 22) {
                $article->hriSgnChiRekishi = 1;

            } elseif($law == 23) {
                $article->hriSgnChiDento = 1;

            } elseif($law == 24) {
                $article->hriSgnChiTokuteiGaiku = 1;

            } elseif($law == 25) {
                $article->hriSgnChiTokubetsuYoto = 1;

            } elseif($law == 26) {
                $article->hriSgnChiBunkyo = 1;

            } elseif($law == 27) {
                $article->hriSgnChiToshisaisei = 1;

            } elseif($law == 28) {
                $article->hriSgnChiTokubetsuRyokuchi = 1;

            } elseif($law == 29) {
                $article->hriSgnTateTakasaMax = 1;

            } elseif($law == 30) {
                $article->hriSgnTateTakasaMin = 1;

            } elseif($law == 31) {
                $article->hriSgnTateKenpeiMin = 1;

            } elseif($law == 32) {
                $article->hriSgnTateYosekiMin = 1;

            } elseif($law == 33) {
                $article->hriSgnTateSktMnsMax = 1;

            } elseif($law == 34) {
                $article->hriSgnTateSktMnsMin = 1;

            } elseif($law == 35) {
                $article->hriSgnTateMnsMax = 1;

            } elseif($law == 36) {
                $article->hriSgnTateMnsMin = 1;
            }
        }

        // その他制限事項
        $article->kckKjn43joTadashigakiKbn = $article->other_reason;
        $article->sgnJikoComment = $article->other_comment;

        // 7.投資用・事業用
        if($article->classfication ==1) {
            $article->jigKbn = 0;
            $article->jigComment = '';
        } else {
            $article->jigKbn = $article->classfication - 1;
            $article->baibaiKbn = $article->trading_classfication == 1 ? "02" : "03";
            $article->jigyoHikiwatashiKbn = "0{$article->business_status}";
            if ($article->classfication == 2) {
                if($article->use_method == 1) {
                    $article->jigYotoKbn = '07';
                    $article->jigComment = '';
                } elseif($article->use_method == 2) {
                    $article->jigYotoKbn = '08';
                    $article->jigComment = '';
                } elseif($article->use_method == 3) {
                    $article->jigYotoKbn = '09';
                    $article->jigComment = '';
                } elseif($article->use_method == 4) {
                    $article->jigYotoKbn = '01';
                    $article->jigComment = '';
                } elseif($article->use_method == 5) {
                    $article->jigYotoKbn = '02';
                    $article->jigComment = '';
                } elseif($article->use_method == 6) {
                    $article->jigYotoKbn = '06';
                    $article->jigComment = '';
                } elseif($article->use_method == 7) {
                    $article->jigYotoKbn = '04';
                    $article->jigComment = '';
                } elseif($article->use_method == 8) {
                    $article->jigYotoKbn = '03';
                    $article->jigComment = '';
                } elseif($article->use_method == 9) {
                    $article->jigYotoKbn = '99';
                    $article->jigComment = $article->use_method_text;
                }
            } else {
                $article->jigToshiGenjoKbn = "0{$article->investment_status}";
                $article->jigToshiShunyu = $article->investment_performance;
                $article->jigToshiShunyuTaniKbn = $article->investment_performance_unit;

                $investment_interest = explode('.', $article->investment_interest);

                if (isset($investment_interest[0]) && $investment_interest[0] > 99) {
                    $article->jigToshiNenRimawariS = 99;
                } else {
                    $article->jigToshiNenRimawariS = $investment_interest[0] ?? "";
                }

                if (isset($investment_interest[1]) && $investment_interest[1] > 99) {
                    $article->jigToshiNenRimawariL = 99;
                } else {
                    $article->jigToshiNenRimawariL = $investment_interest[1] ?? "";
                }

            }
        }

        // 10.イベント情報


        return $article;

    }

    function moldingDataMansion($article, $mansion) {
        // 1.基本情報
        // 物件名
        $article->bukkenNm1 = mb_substr($article->article_name, 0, 42);
        // 郵便番号
        $zip_info = $article->zip;
        $zip_list = explode('-', $zip_info);
        $article->yubinbango01 = $zip_list[0]??'';
        $article->yubinbango02 = $zip_list[1]??'';

        // 住所
        $article->todofukenCd = $article->address1;
        $article->shikugunCd = $article->address2;
        $article->ooazaCd = $article->address3;

        $pref_info = MstPrefecture::getName($article->address1);
        $city_info = MstCity::getName($article->address1, $article->address2);
        $town_info = MstTown::getName($article->address1, $article->address2, $article->address3);
        $article->todofukenNm = $pref_info->name??'';
        $article->shikugunNm = $city_info->name??'';
        $article->ooazaNm = $town_info->name??'';
        $article->netCatch = $article->suumo_copy;
        // 交通
        if(in_array($article->land_right, [2, 3])) {
            $article->chidaiKbn = $article->land_rent == 0 ? "1" : "4";
            $article->chidaiMin = mb_substr($article->land_rent_val, 0, 8);
        }
        // 2.担当者情報
        // 担当者名
        $user_info = UserInfo::getDataById($article->hp_charge);
        $name_info = '';
        $name_info = $user_info->last_name??'';
        if($name_info != '') {
            $name_info .= ' ';
        }
        $name_info .= $user_info->first_name??'';
        $article->kishaEigyoMei = $name_info;
        // スタッフコメント
        $staffComment = str_replace(array("ﾂ", "ﾔ", "ｽ", "━","‐", "―", "－", "–", "ー", "-", "−", "ﾌ", "ｧ", "ﾐ", "ﾘ", "ｰ", "ﾏ", "ｰ", "ﾄ", "ｾ", "ﾌ", "ﾞ", "ﾝ", "ｲ", "ﾚ", "ﾌ", "ﾞ", "ﾝ", "ﾛ", "ｿ", "ﾝ", "ｾﾌﾞﾝｲﾚﾌﾞﾝ"), "", mb_substr($article->comment, 0, 100));
        //$article->staffComment = $staffComment;
        // 社内メモ1
        $kishaComment1 = str_replace(array("ﾂ", "ﾔ", "ｽ", "━","‐", "―", "－", "–", "ー", "-", "−", "ﾌ", "ｧ", "ﾐ", "ﾘ", "ｰ", "ﾏ", "ｰ", "ﾄ", "ｾ", "ﾌ", "ﾞ", "ﾝ", "ｲ", "ﾚ", "ﾌ", "ﾞ", "ﾝ", "ﾛ", "ｿ", "ﾝ", "ｾﾌﾞﾝｲﾚﾌﾞﾝ"), "", mb_substr($article->memo1, 0, 20));
        $article->kishaComment1 = $kishaComment1;
        // 社内メモ2
        $kishaComment2 = str_replace(array("ﾂ", "ﾔ", "ｽ", "━","‐", "―", "－", "–", "ー", "-", "−", "ﾌ", "ｧ", "ﾐ", "ﾘ", "ｰ", "ﾏ", "ｰ", "ﾄ", "ｾ", "ﾌ", "ﾞ", "ﾝ", "ｲ", "ﾚ", "ﾌ", "ﾞ", "ﾝ", "ﾛ", "ｿ", "ﾝ", "ｾﾌﾞﾝｲﾚﾌﾞﾝ"), "", mb_substr($article->memo2, 0, 20));
        $article->kishaComment2 = $kishaComment2;

        // 3.価格
        // 管理形態
        if($mansion->management_form != 0) {
            $article->kanriKeitai = SuumoMansionConverter::setManagementForm($mansion->management_form);
        } else {
            $article->kanriKeitai = 1;
        }

        logSuumo('-- -- Management Form - 管理形態：' . $article->kanriKeitai . '.');

        // 管理費
        if($article->management == 0) {
            $article->kanrihiUmu = $article->management;
            $article->kanrihiMin = '0';
            $article->kanrihiTaniKbn = '1';
        } else {
            $article->kanrihiUmu = $article->management;
            $article->kanrihiMin = $article->management_cost??'0';
            $article->kanrihiTaniKbn = $article->management_cost_unit;

        }
        // 修繕費
        if($article->repair == 0) {
            $article->sznTmtKinKbn = $article->repair;
            $article->sznTmtKinMin = '0';
            $article->sznTmtKinTaniKbn = '1';
        } else {
            $article->sznTmtKinKbn = $article->repair;
            $article->sznTmtKinMin = $article->repair_cost??'0';
            $article->sznTmtKinTaniKbn = $article->repair_cost_unit;

        }

        // 駐車場
        if($article->parking == 1) {
            $article->chushajoKbn = '5';
            $article->chushajoUmu = '';
            $article->bnjCsjKakakuMin1 = '';
            $article->bnjCsjKakakuMin2 = '';
            $article->bnjCsjKakakuMax = '';
            $article->bnjCsjKakakuHaniKbn = '0';
            $article->bnjCsjKanrihiUmu = '';
            $article->bnjCsjKanrihi = '';
            $article->bnjCsjKanrihiTaniKbn = '1';
            $article->bnjCsjSznTmtKinUmu = '';
            $article->bnjCsjSznTmtKin = '';
            $article->bnjCsjSznTmtKinTaniKbn = '1';
            $article->chushajoRyoKbn2 = '';
        } elseif($article->parking == 2) {
            $article->chushajoKbn = '1';
            $article->chushajoUmu = '1';
            $article->bnjCsjKakakuMin1 = '';
            $article->bnjCsjKakakuMin2 = '';
            $article->bnjCsjKakakuMax = '';
            $article->bnjCsjKakakuHaniKbn = '0';
            $article->bnjCsjKanrihiUmu = '';
            $article->bnjCsjKanrihi = '';
            $article->bnjCsjKanrihiTaniKbn = '1';
            $article->bnjCsjSznTmtKinUmu = '';
            $article->bnjCsjSznTmtKin = '';
            $article->bnjCsjSznTmtKinTaniKbn = '1';
            $article->chushajoRyoKbn2 = '';
        } elseif($article->parking == 3) {
            $article->chushajoKbn = '1';
            $article->chushajoUmu = '2';
            $article->bnjCsjKakakuMin1 = '';
            $article->bnjCsjKakakuMin2 = '';
            $article->bnjCsjKakakuMax = '';
            $article->bnjCsjKakakuHaniKbn = '0';
            $article->bnjCsjKanrihiUmu = '';
            $article->bnjCsjKanrihi = '';
            $article->bnjCsjKanrihiTaniKbn = '1';
            $article->bnjCsjSznTmtKinUmu = '';
            $article->bnjCsjSznTmtKin = '';
            $article->bnjCsjSznTmtKinTaniKbn = '1';
            $article->chushajoRyoKbn2 = '';
        } elseif($article->parking == 4) {
            $article->chushajoKbn = '2';
            $article->chushajoUmu= '';
            $article->bnjCsjKakakuMin1 = $article->parking_require_cost;
            $article->bnjCsjKakakuMin2 = '';
            $article->bnjCsjKakakuMax = '';
            $article->bnjCsjKakakuHaniKbn = '0';
            $article->bnjCsjKanrihiUmu = $article->parking_any_management;
            $article->bnjCsjKanrihi = $article->parking_any_management_cost;
            $article->bnjCsjKanrihiTaniKbn = $article->parking_any_management_unit;
            $article->bnjCsjSznTmtKinUmu = $article->parking_any_repair;
            $article->bnjCsjSznTmtKin = $article->parking_any_repair_cost;
            $article->bnjCsjSznTmtKinTaniKbn = $article->parking_any_repair_unit;
            $article->chushajoRyoKbn2 = '';
        } elseif($article->parking == 5) {
            $article->chushajoKbn = '3';
            $article->chushajoUmu= '';
            $article->bnjCsjKakakuMin1 = '';
            $article->bnjCsjKakakuMin2 = $article->parking_any_cost_from;
            if($article->parking_any_cost_range == 1) {
                $article->bnjCsjKakakuHaniKbn = '0';
            } elseif($article->parking_any_cost_range == 2) {
                $article->bnjCsjKakakuHaniKbn = '1';
            } else {
                $article->bnjCsjKakakuHaniKbn = '2';
            }
            $article->bnjCsjKanrihiUmu = $article->parking_any_management;
            $article->bnjCsjKanrihi = $article->parking_any_management_cost;
            $article->bnjCsjKanrihiTaniKbn = $article->parking_any_management_unit;
            $article->bnjCsjSznTmtKinUmu = $article->parking_any_repair;
            $article->bnjCsjSznTmtKin = $article->parking_any_repair_cost;
            $article->bnjCsjSznTmtKinTaniKbn = $article->parking_any_repair_unit;
            $article->bnjCsjKakakuMax = $article->parking_any_cost_to;
            $article->chushajoRyoKbn2 = '';
        } elseif($article->parking == 6) {
            $article->chushajoKbn = '4';
            $article->chushajoUmu= '';
            $article->bnjCsjKakakuMin1 = '';
            $article->bnjCsjKakakuMin2 = '';
            $article->bnjCsjKakakuMax = '';
            $article->bnjCsjKakakuHaniKbn = '0';
            $article->bnjCsjKanrihiUmu = '';
            $article->bnjCsjKanrihi = '';
            $article->bnjCsjKanrihiTaniKbn = '1';
            $article->bnjCsjSznTmtKinUmu = '';
            $article->bnjCsjSznTmtKin = '';
            $article->bnjCsjSznTmtKinTaniKbn = '1';
            $article->chushajoRyoKbn2 = $article->parking_designated;
        } elseif($article->parking == 0) {
            $article->chushajoKbn = '0';
            $article->chushajoUmu= '';
            $article->bnjCsjKakakuMin1 = '';
            $article->bnjCsjKakakuMin2 = '';
            $article->bnjCsjKakakuMax = '';
            $article->bnjCsjKakakuHaniKbn = '0';
            $article->bnjCsjKanrihiUmu = '';
            $article->bnjCsjKanrihi = '';
            $article->bnjCsjKanrihiTaniKbn = '1';
            $article->bnjCsjSznTmtKinUmu = '';
            $article->bnjCsjSznTmtKin = '';
            $article->bnjCsjSznTmtKinTaniKbn = '1';
            $article->chushajoRyoKbn2 = '';
        }

        // 町会費
        if($article->council != 0) {
            $article->chokaihiKbn = $article->council;
            if($article->council_presence == 0) {
                $article->chokaihiUmu = '1';
                $article->chokaihiRyo = '';
                $article->chokaihiRyoTaniKbn = '';
            } elseif($article->council_presence == 1) {
                $article->chokaihiUmu = '1';
                $article->chokaihiRyo = $article->council_cost;
                if($article->council_cost_unit != 0) {
                    $article->chokaihiRyoTaniKbn = $article->council_cost_unit;
                } else {
                    $article->chokaihiRyoTaniKbn = '';
                }
            } elseif($article->council_presence == 2) {
                $article->chokaihiUmu = '3';
                $article->chokaihiRyo = '';
                $article->chokaihiRyoTaniKbn = '';
            }
        } elseif($article->council == 0) {
            $article->chokaihiKbn = '0';
            $article->chokaihiUmu = '';
            $article->chokaihiRyo = '';
            $article->chokaihiRyoTaniKbn = '';
        }

        // 有線
        if($article->broadcasting == 0) {
            $article->yusenHiyoUmu = '0';
            $article->yusenShokiHiyoUmu = '';
            $article->yusenShokiHiyo = '';
        } elseif($article->broadcasting == 1) {
            $article->yusenHiyoUmu = '1';
            if($article->broadcasting_presence == 0) {
                $article->yusenShokiHiyoUmu = 1;
                $article->yusenShokiHiyo = '';
            } elseif($article->broadcasting_presence == 1) {
                $article->yusenShokiHiyoUmu = 2;
                $article->yusenShokiHiyo = $article->broadcasting_cost;
            } elseif($article->broadcasting_presence == 2) {
                $article->yusenShokiHiyoUmu = 3;
                $article->yusenShokiHiyo = '';
            }

            if($article->broadcasting_fixed_presence == 0) {
                $article->yusenTeigakuRyoUmu = 1;
                $article->yusenTeigakuRyo = '';
                $article->yusenTeigakuRyoTaniKbn = $article->broadcasting_fixed_cost_unit;
            } elseif($article->broadcasting_fixed_presence == 1) {
                $article->yusenTeigakuRyoUmu = 2;
                $article->yusenTeigakuRyo = $article->broadcasting_fixed_cost;
                $article->yusenTeigakuRyoTaniKbn = $article->broadcasting_fixed_cost_unit;
            } elseif($article->broadcasting_fixed_presence == 2) {
                $article->yusenTeigakuRyoUmu = 3;
                $article->yusenTeigakuRyo = '';
                $article->yusenTeigakuRyoTaniKbn = $article->broadcasting_fixed_cost_unit;
            }

        } elseif($article->broadcasting == 2) {
            $article->yusenHiyoUmu = '0';
            $article->yusenShokiHiyoUmu = '';
            $article->yusenShokiHiyo = '';
        }

        // インターネット
        if($article->internet == 0) {
            $article->internetHiyoUmu = '0';
            $article->internetShokiHiyoUmu = '';
            $article->internetShokiHiyo = '';
        } elseif($article->internet == 1) {
            $article->internetHiyoUmu = '1';
            if($article->internet_presence == 0) {
                $article->internetShokiHiyoUmu = 1;
                $article->internetShokiHiyo = '';
            } elseif($article->internet_presence == 1) {
                $article->internetShokiHiyoUmu = 2;
                $article->internetShokiHiyo = $article->internet_cost;
            } elseif($article->internet_presence == 2) {
                $article->internetShokiHiyoUmu = 3;
                $article->internetShokiHiyo = '';
            }

            if($article->internet_fixed_presence == 0) {
                $article->internetTeigakuRyoUmu = 1;
                $article->internetTeigakuRyo = '';
                $article->internetTeigakuRyoTaniKbn = $article->internet_fixed_cost_unit;
            } elseif($article->internet_fixed_presence == 1) {
                $article->internetTeigakuRyoUmu = 2;
                $article->internetTeigakuRyo = $article->internet_fixed_cost;
                $article->internetTeigakuRyoTaniKbn = $article->internet_fixed_cost_unit;
            } elseif($article->internet_fixed_presence == 2) {
                $article->internetTeigakuRyoUmu = 3;
                $article->internetTeigakuRyo = '';
                $article->internetTeigakuRyoTaniKbn = $article->internet_fixed_cost_unit;
            }

        } elseif($article->internet == 2) {
            $article->internetHiyoUmu = '0';
            $article->internetShokiHiyoUmu = '';
            $article->internetShokiHiyo = '';
        }

        // catv
        if($article->catv == 0) {
            $article->catvHiyoUmu = '0';
            $article->catvShokiHiyoUmu = '';
            $article->catvShokiHiyo = '';
        } elseif($article->catv == 1) {
            $article->catvHiyoUmu = '1';
            if($article->catv_presence == 0) {
                $article->catvShokiHiyoUmu = 1;
                $article->catvShokiHiyo = '';
            } elseif($article->catv_presence == 1) {
                $article->catvShokiHiyoUmu = 2;
                $article->catvShokiHiyo = $article->catv_cost;
            } elseif($article->catv_presence == 2) {
                $article->catvShokiHiyoUmu = 3;
                $article->catvShokiHiyo = '';
            }

            if($article->catv_fixed_presence == 0) {
                $article->catvTeigakuRyoUmu = 1;
                $article->catvTeigakuRyo = '';
                $article->catvTeigakuRyoTaniKbn = $article->catv_fixed_cost_unit;
            } elseif($article->catv_fixed_presence == 1) {
                $article->catvTeigakuRyoUmu = 2;
                $article->catvTeigakuRyo = $article->catv_fixed_cost;
                $article->catvTeigakuRyoTaniKbn = $article->catv_fixed_cost_unit;
            } elseif($article->catv_fixed_presence == 2) {
                $article->catvTeigakuRyoUmu = 3;
                $article->catvTeigakuRyo = '';
                $article->catvTeigakuRyoTaniKbn = $article->catv_fixed_cost_unit;
            }

        } elseif($article->catv == 2) {
            $article->catvHiyoUmu = '0';
            $article->catvShokiHiyoUmu = '';
            $article->catvShokiHiyo = '';
        }

        // 温泉
        if($article->spring != 0) {
            $article->onsenKenKbn = $article->council;
            if($article->spring_presence == 0) {
                $article->onsenKenRyoUmu = '1';
                $article->onsenKenRyo = '';
                $article->onsenKenRyoTaniKbn = '';
            } elseif($article->spring_presence == 1) {
                $article->onsenKenRyoUmu = '1';
                $article->onsenKenRyo = $article->spring_cost;
                if($article->spring_cost_unit != 0) {
                    $article->onsenKenRyoTaniKbn = $article->spring_cost_unit;
                } else {
                    $article->onsenKenRyoTaniKbn = '';
                }
            } elseif($article->spring_presence == 2) {
                $article->onsenKenRyoUmu = '3';
                $article->onsenKenRyo = '';
                $article->onsenKenRyoTaniKbn = '';
            }
        } elseif($article->spring == 0) {
            $article->onsenKenKbn = '0';
            $article->onsenKenRyoUmu = '';
            $article->onsenKenRyo = '';
            $article->onsenKenRyoTaniKbn = '';
        }

        // 4.土地建物情報
        // 土地権利
        if($mansion->land_right != 0) {
            $article->shikichiKenri = $mansion->land_right;
        } else {
            $article->shikichiKenri = '1';
        }

        // 用途地域
        if($mansion->use_area == 1) {
            $article->yotochiikiCd01 = '01';
        } elseif($mansion->use_area == 2) {
            $article->yotochiikiCd01 = '04';
        } elseif($mansion->use_area == 3) {
            $article->yotochiikiCd01 = '06';
        } elseif($mansion->use_area == 4) {
            $article->yotochiikiCd01 = '08';
        } elseif($mansion->use_area == 5) {
            $article->yotochiikiCd01 = '09';
        } elseif($mansion->use_area == 6) {
            $article->yotochiikiCd01 = '10';
        } elseif($mansion->use_area == 7) {
            $article->yotochiikiCd01 = '11';
        } elseif($mansion->use_area == 8) {
            $article->yotochiikiCd01 = '12';
        } elseif($mansion->use_area == 10) {
            $article->yotochiikiCd01 = '02';
        } elseif($mansion->use_area == 11) {
            $article->yotochiikiCd01 = '03';
        } elseif($mansion->use_area == 12) {
            $article->yotochiikiCd01 = '05';
        } elseif($mansion->use_area == 13) {
            $article->yotochiikiCd01 = '07';
        } elseif($mansion->use_area == 14) {
            $article->yotochiikiCd01 = '16';
        } else {
            $article->yotochiikiCd01 = '00';
        }

        if($mansion->land_use == 1) {
            $article->yotochiikiCd02 = '01';
        } elseif($mansion->land_use == 2) {
            $article->yotochiikiCd02 = '04';
        } elseif($mansion->land_use == 3) {
            $article->yotochiikiCd02 = '06';
        } elseif($mansion->land_use == 4) {
            $article->yotochiikiCd02 = '08';
        } elseif($mansion->land_use == 5) {
            $article->yotochiikiCd02 = '09';
        } elseif($mansion->land_use == 6) {
            $article->yotochiikiCd02 = '10';
        } elseif($mansion->land_use == 7) {
            $article->yotochiikiCd02 = '11';
        } elseif($mansion->land_use == 8) {
            $article->yotochiikiCd02 = '12';
        } elseif($mansion->land_use == 10) {
            $article->yotochiikiCd02 = '02';
        } elseif($mansion->land_use == 11) {
            $article->yotochiikiCd02 = '03';
        } elseif($mansion->land_use == 12) {
            $article->yotochiikiCd02 = '05';
        } elseif($mansion->land_use == 13) {
            $article->yotochiikiCd02 = '07';
        } elseif($mansion->land_use == 14) {
            $article->yotochiikiCd02 = '16';
        } else {
            $article->yotochiikiCd02 = '00';
        }

        // 構造
        if($mansion->construction == 1) {
            $article->kozoKbn = '03';
        } elseif($mansion->construction == 3) {
            $article->kozoKbn = '04';
        } elseif($mansion->construction == 4) {
            $article->kozoKbn = '01';
        } elseif($mansion->construction == 5) {
            $article->kozoKbn = '02';
        } elseif($mansion->construction == 6) {
            $article->kozoKbn = '06';
        } elseif($mansion->construction == 7) {
            $article->kozoKbn = '07';
        } elseif($mansion->construction == 8) {
            $article->kozoKbn = '05';
        } elseif($mansion->construction == 9) {
            $article->kozoKbn = '08';
        } else {
            $article->kozoKbn = '';
        }

        if($mansion->construction_sub == 1) {
            $article->kozoKbnIchibu = '03';
        } elseif($mansion->construction_sub == 3) {
            $article->kozoKbnIchibu = '04';
        } elseif($mansion->construction_sub == 4) {
            $article->kozoKbnIchibu = '01';
        } elseif($mansion->construction_sub == 5) {
            $article->kozoKbnIchibu = '02';
        } elseif($mansion->construction_sub == 6) {
            $article->kozoKbnIchibu = '06';
        } elseif($mansion->construction_sub == 7) {
            $article->kozoKbnIchibu = '07';
        } elseif($mansion->construction_sub == 8) {
            $article->kozoKbnIchibu = '05';
        } elseif($article->construction_sub == 9) {
            $article->kozoKbnIchibu = '08';
        } else {
            $article->kozoKbnIchibu = '10';
        }

        // 施工会社
        $article->sekoKaishaNm = $mansion->construction_company;

        // 建物階建て
        $article->chijokaidate = $article->floor;
        $article->chikakaidate = $article->underground;

        // 所在階
        $article->shozaiKaiComment = $article->whereabouts;

        // 部屋番号
        $article->heyaNo = $article->room_num;

        // 専有面積
        $article->senyumensekiKbn = $article->total_area;
        $total_area = $article->total_area_val??'0.0';
        $total_area_list = explode('.', $total_area);
        $article->senyumensekiMinS = $total_area_list[0]??'';
        $article->senyumensekiMinL = $total_area_list[1]??'';

        // 間取り
        $article->madoriMin = $article->floor_plan;
        if($article->floor_plan_type == 1) {
            $article->madoriMinType1Kbn = '03';
        } elseif($article->floor_plan_type == 2) {
            $article->madoriMinType1Kbn = '04';
        } elseif($article->floor_plan_type == 3) {
            $article->madoriMinType1Kbn = '01';
        } elseif($article->floor_plan_type == 4) {
            $article->madoriMinType1Kbn = '02';
        } elseif($article->floor_plan_type == 7) {
            $article->madoriMinType1Kbn = '05';
        } else {
            $article->madoriMinType1Kbn = '00';
        }

        // バルコニー
        $article->balUmu = $article->balcony_area;
        $balcony_area = $article->balcony_area_val??'0.0';
        $balcony_area_list = explode('.', $balcony_area);
        $article->balMensekiMinS = $balcony_area_list[0]??'';
        $article->balMensekiMinL = $balcony_area_list[1]??'';

        // ルーフバルコニー
        $loof_balcony_area = $article->loof_balcony_area_val??'0.0';
        $loof_balcony_area_list = explode('.', $loof_balcony_area);
        $article->roofBalMensekiMinS = $loof_balcony_area_list[0]??'';
        $article->roofBalMensekiMinL = $loof_balcony_area_list[1]??'';
        $article->roofBalRyoMin = $article->loof_balcony_area_cost??'';
        $article->roofBalRyoTaniKbn = $article->loof_balcony_area_unit;

        // 専用庭
        $garden_area = $article->garden_area_val??'0.0';
        $garden_area_list = explode('.', $garden_area);
        $article->senyoNiwaMensekiMinS = $garden_area_list[0]??'';
        $article->senyoNiwaMensekiMinL = $garden_area_list[1]??'';
        $article->senyoNiwaRyoMin = $article->garden_area_cost??'';
        $article->senyoNiwaRyoTaniKbn = $article->garden_area_unit;

        // テラス
        $terrace_area = $article->terrace_area_val??'0.0';
        $terrace_area_list = explode('.', $terrace_area);
        $article->terraceMensekiMinS = $terrace_area_list[0]??'';
        $article->terraceMensekiMinL = $terrace_area_list[1]??'';
        $article->terraceRyoMin = $article->terrace_area_cost??'';
        $article->terraceRyoTaniKbn = $article->terrace_area_unit;

        // 総戸数
        $article->soKosu = $mansion->total_unit??'';

        // 入居予定
        if($article->move_in == 1) {
            $article->nyukyoJikiKbn = '1';
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiTsukiSu = '';
        } elseif($article->move_in == 2) {
            $article->nyukyoJikiKbn = '4';
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiTsukiSu = '';
        } elseif($article->move_in == 3) {
            $article->nyukyoJikiKbn = '2';
            $article->nyukyoJikiNen = $article->move_in_year;
            $article->nyukyoJikiTsuki = $article->move_in_month;
            $article->nyukyoJikiTsukiSu = '';
        }  elseif($article->move_in == 4) {
            $article->nyukyoJikiKbn = '3';
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiTsukiSu = $article->move_in_contract_month;
        } else {
            $article->nyukyoJikiKbn = '';
            $article->nyukyoJikiNen = '';
            $article->nyukyoJikiTsuki = '';
            $article->nyukyoJikiTsukiSu = '';
        }

        //リフォーム
        if($article->exterior == 1) {
            $article->gaisoUmu = $article->exterior;
            $article->gaisoNen = '';
            $article->gaisoTsuki = '';
        } elseif($article->exterior == 2) {
            $article->gaisoUmu = $article->exterior;
            $article->gaisoNen = $article->exterior_year;
            $article->gaisoTsuki = $article->exterior_month;
        } elseif($article->exterior == 3) {
            $article->gaisoUmu = $article->exterior;
            $article->gaisoNen = $article->exterior_year;
            $article->gaisoTsuki = $article->exterior_month;
        }

        if($article->interior == 1) {
            $article->naisoUmu = $article->interior;
            $article->naisoNen = '';
            $article->naisoTsuki = '';
        } elseif($article->interior == 2) {
            $article->naisoUmu = $article->interior;
            $article->naisoNen = $article->interior_year;
            $article->naisoTsuki = $article->interior_month;
        } elseif($article->interior == 3) {
            $article->naisoUmu = $article->interior;
            $article->naisoNen = $article->interior_year;
            $article->naisoTsuki = $article->interior_month;
        }

        // 5.会社情報
        if($article->company_manner == 1) {
            $article->torihikitaiyoKbn01 = '01';
        } elseif($article->company_manner == 2) {
            $article->torihikitaiyoKbn01 = '13';
        } elseif($article->company_manner == 3) {
            $article->torihikitaiyoKbn01 = '09';
        } elseif($article->company_manner == 4) {
            $article->torihikitaiyoKbn01 = '10';
        } elseif($article->company_manner == 5) {
            $article->torihikitaiyoKbn01 = '11';
        } elseif($article->company_manner == 6) {
            $article->torihikitaiyoKbn01 = '07';
        } elseif($article->company_manner == 7) {
            $article->torihikitaiyoKbn01 = '08';
        } elseif($article->company_manner == 8) {
            $article->torihikitaiyoKbn01 = '09';
        } else {
            $article->torihikitaiyoKbn01 = '';
        }

        // 6.制限事項
        $law_check = RelationLawrestriction::getDataByArticleId($article->building_id);
        foreach($law_check as $law) {
            if($law == 1) {
                $article->hriSgnHoBunkazai = 1;

            } elseif($law == 2) {
                $article->hriSgnHoKotohogo = 1;

            } elseif($law == 3) {
                $article->hriSgnHoKeikan = 1;

            } elseif($law == 4) {
                $article->hriSgnHoMisshuSgcSeibi = 1;

            } elseif($law == 5) {
                $article->hriSgnHoKoku = 1;

            } elseif($law == 6) {
                $article->hriSgnHoKasen = 1;

            } elseif($law == 7) {
                $article->hriSgnHoSabo = 1;

            } elseif($law == 8) {
                $article->hriSgnHoNochi = 1;

            } elseif($law == 9) {
                $article->hriSgnHoAnzenJorei = 1;

            } elseif($law == 10) {
                $article->hriSgnChiTakuzokisei = 1;

            } elseif($law == 11) {
                $article->hriSgnChiKyukeishachi = 1;

            } elseif($law == 12) {
                $article->hriSgnChiKodochiku = 1;

            } elseif($law == 13) {
                $article->hriSgnChiKodoriyo = 1;

            } elseif($law == 14) {
                $article->hriSgnChiChukosoJutaku = 1;

            } elseif($law == 15) {
                $article->hriSgnChiKosojutakuYudo = 1;

            } elseif($law == 16) {
                $article->hriSgnChiBoka = 1;

            } elseif($law == 17) {
                $article->hriSgnChiJunboka = 1;

            } elseif($law == 18) {
                $article->hriSgnChiFuchi = 1;

            } elseif($law == 19) {
                $article->hriSgnChiKeikan = 1;

            } elseif($law == 20) {
                $article->hriSgnChiJunKeikan = 1;

            } elseif($law == 21) {
                $article->hriSgnChiKanko = 1;

            } elseif($law == 22) {
                $article->hriSgnChiRekishi = 1;

            } elseif($law == 23) {
                $article->hriSgnChiDento = 1;

            } elseif($law == 24) {
                $article->hriSgnChiTokuteiGaiku = 1;

            } elseif($law == 25) {
                $article->hriSgnChiTokubetsuYoto = 1;

            } elseif($law == 26) {
                $article->hriSgnChiBunkyo = 1;

            } elseif($law == 27) {
                $article->hriSgnChiToshisaisei = 1;

            } elseif($law == 28) {
                $article->hriSgnChiTokubetsuRyokuchi = 1;

            } elseif($law == 29) {
                $article->hriSgnTateTakasaMax = 1;

            } elseif($law == 30) {
                $article->hriSgnTateTakasaMin = 1;

            } elseif($law == 31) {
                $article->hriSgnTateKenpeiMin = 1;

            } elseif($law == 32) {
                $article->hriSgnTateYosekiMin = 1;

            } elseif($law == 33) {
                $article->hriSgnTateSktMnsMax = 1;

            } elseif($law == 34) {
                $article->hriSgnTateSktMnsMin = 1;

            } elseif($law == 35) {
                $article->hriSgnTateMnsMax = 1;

            } elseif($law == 36) {
                $article->hriSgnTateMnsMin = 1;
            }
        }

        // その他制限事項
        $article->kckKjn43joTadashigakiKbn = $article->other_reason;
        $article->sgnJikoComment = $article->other_comment;

        // 7.投資用・事業用
        if($article->classfication ==1) {
            $article->jigKbn = 0;
            $article->jigComment = '';
        } else {
            $article->jigKbn = 1;
            if($article->use_method == 1) {
                $article->jigYotoKbn = '07';
                $article->jigComment = '';
            } elseif($article->use_method == 2) {
                $article->jigYotoKbn = '08';
                $article->jigComment = '';
            } elseif($article->use_method == 3) {
                $article->jigYotoKbn = '09';
                $article->jigComment = '';
            } elseif($article->use_method == 4) {
                $article->jigYotoKbn = '01';
                $article->jigComment = '';
            } elseif($article->use_method == 5) {
                $article->jigYotoKbn = '02';
                $article->jigComment = '';
            } elseif($article->use_method == 6) {
                $article->jigYotoKbn = '06';
                $article->jigComment = '';
            } elseif($article->use_method == 7) {
                $article->jigYotoKbn = '04';
                $article->jigComment = '';
            } elseif($article->use_method == 8) {
                $article->jigYotoKbn = '03';
                $article->jigComment = '';
            } elseif($article->use_method == 9) {
                $article->jigYotoKbn = '99';
                $article->jigComment = $article->use_method_text;
            }
        }

        // 10.イベント情報


        return $article;

    }

    function saveLand($article) {
        logSuumo('-- Save land: Start.');
        $shop = $this->suumoShop ?: $this->getSuumoShop($article);
        // 物件登録画面へアクセス 土地1区画
        $url = "https://manager.suumo.jp/chukai/tn01Xx0104.do";

        // 土地1区画
        $POST_DATA = array(
            'TB' => 12,
            'BKTB' => 10,
            'hanKubun' => '1T',

        );
        if($article->suumo_no != null) {
            $POST_DATA['bukkenCd'] = $article->suumo_no;
        }
        logSuumo("-- -- Data ($url): " . jsonEncodeJp($POST_DATA));

        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $res = curl_exec($curl); // cURLセッションの実行
        if ($res === false) {
            $err = curl_error($curl);
            curl_close($curl);
            logSuumo("-- -- Error ($url): $err.");
            die("error $err");
        }

        curl_close($curl);
        $formPattern = '/<form name="tn01Xx0104ActionForm" id="mainForm" .*?>(.*?)<\/form><form name="bukkenIdoKeidoCache">/s';
        preg_match($formPattern, $res, $formMatches);

        if (count($formMatches) < 2) {
            $this->countError++;
            if ($this->canRecursive) {
                logSuumo('-- -- [match1] Re-login suumo -> re-save land.');
                $this->loginSuumo();
                return $this->saveLand($article);
            } else {
                if ($article->suumo_no != null) {
                    PortalStatusArticle::where('portal_id', $article->suumo_no)->delete();
                    logSuumo('-- -- [match1] Remove portal status article (portal_id = ' . $article->suumo_no . ') -> re-save land.');
                    return $this->saveLand($article);
                }
                logSuumo("-- -- [match1] Error formMatches.");
                $this->showLogErr();
                return $this->log($res);
            }
        }

        $hiddenInputPattern = '/<input type="hidden" name="(?<name>.*?)" value="(?<value>.*?)".*?>/';
        preg_match_all($hiddenInputPattern, $formMatches[0], $inputMatches,PREG_SET_ORDER);

        if (count($inputMatches) < 2) {
            $this->countError++;
            if ($this->canRecursive) {
                logSuumo('-- -- [match2] Re-login suumo -> re-save land.');
                $this->loginSuumo();
                return $this->saveLand($article);
            } else {
                logSuumo("-- -- [match2] Error inputMatches.");
                $this->showLogErr();
                return $this->log($res);
            }
        }

        $hiddenInputs = collect($inputMatches)
            ->pluck('value', 'name')
            ->toArray();

        $save_land_data = new SaveLandData();
        $defaultData = $save_land_data->getDefault($article);

        $articleData = SuumoLandConverter::convert($article);
        if ($article->reservation == 1) {
            $defaultData['eventActionKbn'] = 3;
        }

        $POST_DATA = array_merge($defaultData, $hiddenInputs, $articleData);

        $this->mergeAddress($article, $POST_DATA);

        $this->mergeStation($article, $POST_DATA);

        if($article->suumo_no != null) {
            $this->setDefaultValue($POST_DATA, $article);
        }
        $url = "https://manager.suumo.jp/chukai/tn01Xx0104/update1T";
        logSuumo("-- -- Data land ($url): " . jsonEncodeJp($POST_DATA));

        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_REFERER, 'https://manager.suumo.jp/chukai/tn01Xx0104.do');
        curl_setopt($curl, CURLOPT_HTTPHEADER, ['Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'Accept-Language: ja,en-US;q=0.9,en;q=0.8', 'Cache-Control: max-age=0', 'Connection: keep-alive', 'Host: manager.suumo.jp', 'Origin: https://manager.suumo.jp', 'Sec-Fetch-Mode: navigate', 'Sec-Fetch-Site: same-origin', 'Sec-Fetch-User: ?1', 'Upgrade-Insecure-Requests: 1']);
        curl_setopt($curl, CURLINFO_HEADER_OUT, TRUE);
        curl_setopt($curl, CURLOPT_MAXREDIRS,10);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($curl, CURLOPT_AUTOREFERER,TRUE);//リダイレクトの際にヘッダのRefererを自動的に追加させる
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $res = curl_exec($curl); // cURLセッションの実行
        if( $res === FALSE ) {
            // エラー文字列を出力する
            $err = curl_error($curl);
            curl_close($curl);
            logSuumo("-- -- Save land failed: $err.");
            logSuumo("-- Save land: End.");
            die("error $err");
        }

        curl_close($curl);
        $pattern = '/<span class="tar b">物件CD：(.*?)<\/span>/s';
        preg_match($pattern, $res, $match1);
        if ($this->hasError($res)){
            $errorPattern = $this->showSessionLogs($res);
            logSuumo("-- -- Save land failed: Error pattern ($errorPattern).");
        }else {
            $save_data = [
                'article_id'    =>  $article->building_id,
                'portal_id'     =>  $match1[1],
                'portal_user'   =>  $shop->suumo_id,
                'portal_type'   =>  1
            ];
            if($article->suumo_no == null){
                PortalStatusArticle::insert($save_data);
            }else{
                PortalStatusArticle::where('portal_id', $article->suumo_no)->update(['portal_id' => $match1[1]]);
            }
            session()->flash('message_ok', 'SUUMO に入稿されました。');
            logSuumo('-- -- Save land success: portal_status_articles.portal_id = ' . data_get($match1, 1) . '.');
        }

        $this->log($res);
        logSuumo("-- Save land: End.");
    }


    public function hasError($response){
        $dom = HtmlDomParser::str_get_html($response);
        $errors = $dom->findOne('div[class="mt10 pt10 ph10 bdTitleRed"]')->findMulti('dl[class="mt5 pb5"]');
        $hasErr = false;
        foreach ($errors as $error){
            $title = $error->findOne('span[class="fgGray n"]')->innerText();
            if (str_contains($title, '※以下の項目を入力・変更しないと、登録ができません。')){
                $hasErr = true;
            }
        }
        return $hasErr;
    }

    public function showSessionLogs($response): string
    {
        $dom = HtmlDomParser::str_get_html($response);
        $errors = $dom->findOne('div[class="mt10 pt10 ph10 bdTitleRed"]')->findMulti('dl[class="mt5 pb5"]');
        $errorText = '';
        $i = 1;
        foreach ($errors as $error){
            $title = $error->findOne('span[class="fgGray n"]')->innerText();
            if (str_contains($title, '※以下の項目を入力・変更しないと、登録ができません。')){
                $aHtml = $error->findMulti("a");
                foreach ($aHtml as $a){
                    $errorText .= '<br>' . $i . '. ' . $a->innerText();
                    $i ++ ;
                }
            }
        }
        session()->flash('message_modal', '<strong>入稿できませんでした。物件詳細ページを見直してください。</strong>' . $errorText);
        return $errorText;
    }

    function requestWithData($url, $data, $isPost = false)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
        if ($isPost) {
            curl_setopt($curl, CURLOPT_POST, $isPost);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
        }
        curl_setopt_array($curl, $this->option);
        $response = curl_exec($curl) or die('error ' . curl_error($curl));
        return $response;
    }

    function saveHouse($article) {
        logSuumo('-- Save house: Start.');
        $shop = $this->suumoShop ?: $this->getSuumoShop($article);
        // 物件登録画面へアクセス 戸建1戸
        $url = "https://manager.suumo.jp/chukai/tn01Xx0104.do";
        // 戸建1戸
        $POST_DATA = array(
            'TB' => 11,
            'BKTB' => 10,
            'hanKubun' => '1K',
        );

        if($article->suumo_no != null) {
            $POST_DATA['bukkenCd'] = $article->suumo_no;
        }
        logSuumo("-- -- Data ($url): " . jsonEncodeJp($POST_DATA));

        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $res = curl_exec($curl); // cURLセッションの実行
        if ($res === false) {
            $err = curl_error($curl);
            curl_close($curl);
            logSuumo("-- -- Error ($url): $err.");
            logSuumo('-- Save house: End.');
            die("error $err");
        }

        curl_close($curl);
        // cURLセッション実行結果の解析
        $pattern = '/<form name="tn01Xx0104ActionForm" id="mainForm" method="post" action="\/chukai\/tn01Xx0104\/" enctype="multipart\/form-data">(.*?) <\/form><form name="bukkenIdoKeidoCache">/s';
        preg_match($pattern, $res, $match1);
        $pattern = '/<input type="hidden" name="(.*?)" value="(.*?)".*?>/';

        if (count($match1) < 2) {
            $this->countError++;
            if ($this->canRecursive) {
                logSuumo('-- -- [match1] Re-login suumo -> re-save house.');
                $this->loginSuumo();
                return $this->saveHouse($article);
            } else {
                if ($article->suumo_no != null) {
                    PortalStatusArticle::where('portal_id', $article->suumo_no)->delete();
                    logSuumo('-- -- [match1] Remove portal status article (portal_id = ' . $article->suumo_no . ') -> re-save house.');
                    return $this->saveHouse($article);
                }
                logSuumo("-- -- [match1] Error formMatches.");
                logSuumo('-- Save house: End.');
                $this->showLogErr();
                return $this->log($res);
            }
        }

        preg_match_all($pattern, $match1[1], $match2);

        if (count($match2) < 2) {
            $this->countError++;
            if ($this->canRecursive) {
                logSuumo('-- -- [match2] Re-login suumo -> re-save house.');
                $this->loginSuumo();
                return $this->saveHouse($article);
            } else {
                logSuumo("-- -- [match2] Error inputMatches.");
                logSuumo('-- Save house: End.');
                $this->showLogErr();
                return $this->log($res);
            }
        }

        $save_hour = new SaveHouseData();
        $POST_DATA = $save_hour->getDefault($article, $match2);

        if ($article->reservation == 1) {
            $POST_DATA['eventActionKbn'] = 3;
        }
        if($POST_DATA['torihikitaiyoKbn01'] == 12){
            $vendor = RelationVendorArticle::getVendorDataByRainsNo($article->building_id)->first();
            if($vendor->vendor_tel1 !=''){
                $tel = explode('-', $vendor->vendor_tel1);

                if(count($tel) < 2){
                    $tel = explode("‐", $vendor->vendor_tel1);
                }
                $POST_DATA['motoGyoshaTelShigai'] = $tel[0];
                if(count($tel) == 3){
                    $POST_DATA['motoGyoshaTelShinai'] = $tel[1];
                }
                if(count($tel) == 3){
                    $POST_DATA['motoGyoshaTelNo'] = $tel[2];
                }
            }
            $POST_DATA['motoGyoshaNm'] = $vendor->name;
            $POST_DATA['motoGyoshaTantoNm'] = $vendor->charge;

        }

        $this->mergeAddress($article, $POST_DATA);

        $this->mergeStation($article, $POST_DATA);

        if($article->suumo_no != null) {
            $this->setDefaultValue($POST_DATA, $article);
        }
        //dd($POST_DATA);
        $url = "https://manager.suumo.jp/chukai/tn01Xx0104/update1K";
        logSuumo("-- -- Data house ($url): " . jsonEncodeJp($POST_DATA));

        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_REFERER, 'https://manager.suumo.jp/chukai/tn01Xx0104.do');
        curl_setopt($curl, CURLOPT_HTTPHEADER, ['Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'Accept-Language: ja,en-US;q=0.9,en;q=0.8', 'Cache-Control: max-age=0', 'Connection: keep-alive', 'Host: manager.suumo.jp', 'Origin: https://manager.suumo.jp', 'Sec-Fetch-Mode: navigate', 'Sec-Fetch-Site: same-origin', 'Sec-Fetch-User: ?1', 'Upgrade-Insecure-Requests: 1']);
        curl_setopt($curl, CURLINFO_HEADER_OUT, TRUE);
        curl_setopt($curl, CURLOPT_MAXREDIRS,10);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($curl, CURLOPT_AUTOREFERER,TRUE);//リダイレクトの際にヘッダのRefererを自動的に追加させる
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $res = curl_exec($curl); // cURLセッションの実行

        if( $res === FALSE ) {
            // エラー文字列を出力する
            $err = curl_error($curl);
            curl_close($curl);
            logSuumo("-- -- Save house failed: $err.");
            logSuumo('-- Save house: End.');
            die("error $err");
        }

        curl_close($curl);
        $this->log($res);

        $pattern = '/<span class="tar b">物件CD：(.*?)<\/span>/s';
        preg_match($pattern, $res, $match1);
        if ($this->hasError($res)){
            $errorPattern = $this->showSessionLogs($res);
            logSuumo("-- -- Save house failed: Error pattern ($errorPattern).");
        }else {
            $save_data = [
                'article_id'    =>  $article->building_id,
                'portal_id'     =>  $match1[1],
                'portal_user'   =>  $shop->suumo_id,
                'portal_type'   =>  1
            ];
            if($article->suumo_no == null){
                PortalStatusArticle::insert($save_data);
            }else{
                PortalStatusArticle::where('portal_id', $article->suumo_no)->update(['portal_id' => $match1[1]]);
            }
            session()->flash('message_ok', 'SUUMO に入稿されました。');
            logSuumo('-- -- Save house success: portal_status_articles.portal_id = ' . data_get($match1, 1) . '.');
        }

        $this->log($res);
        logSuumo('-- Save house: End.');
    }

    function saveMansion($article) {
        logSuumo('-- Save mansion: Start.');
        $shop = $this->suumoShop ?: $this->getSuumoShop($article);
        // 物件登録画面へアクセス マンション1戸
        $url = "https://manager.suumo.jp/chukai/tn01Xx0104.do";

        // マンション
        $POST_DATA = array(
            'TB' => 13,
            'BKTB' => 10,
            'hanKubun' => '1M',
        );

        if($article->suumo_no != null) {
            $POST_DATA['bukkenCd'] = $article->suumo_no;
        }
        logSuumo("-- -- Data ($url): " . jsonEncodeJp($POST_DATA));

        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $res = curl_exec($curl); // cURLセッションの実行
        if ($res === false) {
            $err = curl_error($curl);
            curl_close($curl);
            logSuumo("-- -- Save mansion failed: $err.");
            logSuumo("-- Save mansion: End.");
            die("error $err");
        }

        curl_close($curl);
        $formPattern = '/<form name="tn01Xx0104ActionForm" id="mainForm" .*?>(.*?)<\/form><form name="bukkenIdoKeidoCache">/s';
        preg_match($formPattern, $res, $formMatches);

        if (count($formMatches) < 2) {
            $this->countError++;
            if ($this->canRecursive) {
                logSuumo('-- -- [match1] Re-login suumo -> re-save mansion.');
                $this->loginSuumo();
                return $this->saveMansion($article);
            } else {
                if ($article->suumo_no != null) {
                    PortalStatusArticle::where('portal_id', $article->suumo_no)->delete();
                    logSuumo('-- -- [match1] Remove portal status article (portal_id = ' . $article->suumo_no . ') -> re-save mansion.');
                    return $this->saveMansion($article);
                }
                logSuumo("-- -- [match1] Error formMatches.");
                logSuumo("-- Save mansion: End.");
                $this->showLogErr();
                return $this->log($res);
            }
        }

        $hiddenInputPattern = '/<input type="hidden" name="(?<name>.*?)" value="(?<value>.*?)".*?>/';
        preg_match_all($hiddenInputPattern, $formMatches[0], $inputMatches,PREG_SET_ORDER);

        if (count($inputMatches) < 2) {
            $this->countError++;
            if ($this->canRecursive) {
                logSuumo('-- -- [match2] Re-login suumo -> re-save mansion.');
                $this->loginSuumo();
                return $this->saveMansion($article);
            } else {
                logSuumo("-- -- [match2] Error inputMatches.");
                logSuumo("-- Save mansion: End.");
                $this->showLogErr();
                return $this->log($res);
            }
        }

        $hiddenInputs = collect($inputMatches)
            ->pluck('value', 'name')
            ->toArray();

        $mansion_data = new SaveMansionData();
        $defaultData = $mansion_data->getDefault($article);

        $articleData = SuumoMansionConverter::convert($article);
        if($article->reservation == 1){
            $defaultData['eventActionKbn'] = 3;
        }

        $POST_DATA = array_merge($defaultData, $hiddenInputs, $articleData);

        if($POST_DATA['torihikitaiyoKbn01'] == 12){
            $vendor = RelationVendorArticle::getVendorDataByRainsNo($article->building_id)->first();
            if($vendor->vendor_tel1 !=''){
                $tel = explode('-', $vendor->vendor_tel1);
                if(count($tel) < 2){
                    $tel = explode("‐", $vendor->vendor_tel1);
                }
                $POST_DATA['motoGyoshaTelShigai'] = $tel[0];
                if(count($tel) == 3){
                    $POST_DATA['motoGyoshaTelShinai'] = $tel[1];
                }
                if(count($tel) == 3){
                    $POST_DATA['motoGyoshaTelNo'] = $tel[2];
                }
            }
            $POST_DATA['motoGyoshaNm'] = $vendor->name;
            $POST_DATA['motoGyoshaTantoNm'] = $vendor->charge;

        }

        $mansion = Article::getParentMansion($article->mansion_id);
        $this->mergeAddress($mansion, $POST_DATA);

        $this->mergeStation($mansion, $POST_DATA);

        if($article->suumo_no != null) {
            $this->setDefaultValue($POST_DATA, $article);
        }

        $url = "https://manager.suumo.jp/chukai/tn01Xx0104/update1M";
        logSuumo("-- -- Data mansion ($url): " . jsonEncodeJp($POST_DATA));

        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_REFERER, 'https://manager.suumo.jp/chukai/tn01Xx0104.do');
        curl_setopt($curl, CURLOPT_HTTPHEADER, ['Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'Accept-Language: ja,en-US;q=0.9,en;q=0.8', 'Cache-Control: max-age=0', 'Connection: keep-alive', 'Host: manager.suumo.jp', 'Origin: https://manager.suumo.jp', 'Sec-Fetch-Mode: navigate', 'Sec-Fetch-Site: same-origin', 'Sec-Fetch-User: ?1', 'Upgrade-Insecure-Requests: 1']);
        curl_setopt($curl, CURLINFO_HEADER_OUT, TRUE);
        curl_setopt($curl, CURLOPT_MAXREDIRS,10);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($curl, CURLOPT_AUTOREFERER,TRUE);//リダイレクトの際にヘッダのRefererを自動的に追加させる
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $res = curl_exec($curl); // cURLセッションの実行
        if ($res === false) {
            $err = curl_error($curl);
            curl_close($curl);
            logSuumo("-- -- Save mansion failed: $err.");
            logSuumo("-- Save mansion: End.");
            die("error $err");
        }

        curl_close($curl);
        $pattern = '/<span class="tar b">物件CD：(.*?)<\/span>/s';
        preg_match($pattern, $res, $match1);

        if ($this->hasError($res)){
            $errorPattern = $this->showSessionLogs($res);
            logSuumo("-- -- Save mansion failed: Error pattern ($errorPattern).");
        }else {
            $save_data = [
                'article_id'    =>  $article->building_id,
                'portal_id'     =>  $match1[1],
                'portal_user'   =>  $shop->suumo_id,
                'portal_type'   =>  1
            ];
            if($article->suumo_no == null){
                PortalStatusArticle::insert($save_data);
            }else{
                PortalStatusArticle::where('portal_id', $article->suumo_no)->update(['portal_id' => $match1[1]]);
            }
            session()->flash('message_ok', 'SUUMO に入稿されました。');
            logSuumo('-- -- Save mansion success: portal_status_articles.portal_id = ' . data_get($match1, 1) . '.');
        }

        logSuumo("-- Save mansion: End.");
    }

    function log($data)
    {
        Storage::disk('public')->put('suumo_response.html', $data);
    }

    function uploadImage($article, $portal_images, $suumo_seller, $suumo_facility, $suumo_traffic_map, $suumo_spec, $suumo_construction)
    {
        logSuumo('-- Update image: Start.');
        $upload = new SuumoUpload($this->option, $article, $portal_images, $suumo_seller, $suumo_facility, $suumo_traffic_map, $suumo_spec, $suumo_construction);

        $i = 5;
        while (!$upload->upload() && $i > 0) {
            $this->loginSuumo();
            $i --;
        }

        $upload->uploadStep2();
        $upload->uploadStep3();
        logSuumo('-- Update image: End.');
    }
    private function mergeStation($article, &$POST_DATA){
        if (!empty($article->main_traffic_line)) {
            $line = $this->getStationPortal($article->main_traffic_line, $article->main_traffic_station);
            $POST_DATA['ensenCd1'] = $line->line_id ?? '';
            $POST_DATA['ekiCd1'] = $line->station_id ?? '';
//            $searchLine = collect();
//            $lines = MstStationPortal::where('type', 2)->get();
//            foreach ($lines as $line) {
//                $lineName = str_replace("京都", "", $line->line_name);
//                $lineName = str_replace("JR", "ＪＲ", $lineName);
//                $mainTrafficLine = str_replace("", "", $article->main_traffic_line);
//                $mainTrafficLine = str_replace("JR", "ＪＲ", $mainTrafficLine);
//                $line->search = startCompare($lineName, $mainTrafficLine);
//                if ($line->search === false) {
//                    continue;
//                }
//                $searchLine->push($line);
//            }
//            $searchLine = $searchLine->sortByDesc(function ($line) {
//                return $line->search;
//            });
//            $article->main_traffic_station = str_replace("JR", "ＪＲ", $article->main_traffic_station);
//            foreach ($searchLine as $line) {
//                $flagSuccess = false;
//                if ($line->station_name == $article->main_traffic_station) {
//                    $POST_DATA['ensenCd1'] = $line->line_id;
//                    $POST_DATA['ekiCd1'] = $line->station_id;
//                    $flagSuccess = true;
//                    break;
//                }
//                if ($flagSuccess) {
//                    break;
//                }
//            }
        }

        if (!empty($article->sub_traffic1_line)) {
            $line = $this->getStationPortal($article->sub_traffic1_line, $article->sub_traffic1_station);
            $POST_DATA['ensenCd2'] = $line->line_id ?? '';
            $POST_DATA['ekiCd2'] = $line->station_id ?? '';

//            $searchLine = collect();
//            foreach ($lines as $line) {
//                $lineName = str_replace("京都", "", $line->line_name);
//                $lineName = str_replace("JR", "ＪＲ", $lineName);
//                $mainTrafficLine = str_replace("", "", $article->sub_traffic1_line);
//                $mainTrafficLine = str_replace("JR", "ＪＲ", $mainTrafficLine);
//                $line->search = startCompare($lineName, $mainTrafficLine);
//                if ($line->search === false) {
//                    continue;
//                }
//                $searchLine->push($line);
//            }
//            $searchLine = $searchLine->sortByDesc(function ($line) {
//                return $line->search;
//            });
//            $article->sub_traffic1_station = str_replace("JR", "ＪＲ", $article->sub_traffic1_station);
//            foreach ($searchLine as $line) {
//                $flagSuccess = false;
//                if ($line->station_name == $article->sub_traffic1_station) {
//                    $POST_DATA['ensenCd2'] = $line->line_id;
//                    $POST_DATA['ekiCd2'] = $line->station_id;
//                    $flagSuccess = true;
//                    break;
//                }
//                if ($flagSuccess) {
//                    break;
//                }
//            }
        }
        if (!empty($article->sub_traffic2_line)) {
            $line = $this->getStationPortal($article->sub_traffic2_line, $article->sub_traffic2_station);
            $POST_DATA['ensenCd3'] = $line->line_id ?? '';
            $POST_DATA['ekiCd3'] = $line->station_id ?? '';

//            $searchLine = collect();
//            foreach ($lines as $line) {
//                $lineName = str_replace("京都", "", $line->line_name);
//                $lineName = str_replace("JR", "ＪＲ", $lineName);
//                $mainTrafficLine = str_replace("", "", $article->sub_traffic2_line);
//                $mainTrafficLine = str_replace("JR", "ＪＲ", $mainTrafficLine);
//                $line->search = startCompare($lineName, $mainTrafficLine);
//                if ($line->search === false) {
//                    continue;
//                }
//                $searchLine->push($line);
//            }
//            $searchLine = $searchLine->sortByDesc(function ($line) {
//                return $line->search;
//            });
//            $article->sub_traffic2_station = str_replace("JR", "ＪＲ", $article->sub_traffic2_station);
//            foreach ($searchLine as $line) {
//                $flagSuccess = false;
//                if ($line->station_name == $article->sub_traffic2_station) {
//                    $POST_DATA['ensenCd3'] = $line->line_id;
//                    $POST_DATA['ekiCd3'] = $line->station_id;
//                    $flagSuccess = true;
//                    break;
//                }
//                if ($flagSuccess) {
//                    break;
//                }
//            }
        }
    }
    private function mergeAddress($article, &$POST_DATA)
    {
        $ar_conver_adr1 = [
            14  =>  14,
            11  =>  26,
            12  =>  25,
            28  =>  28
        ];
        $city = $article->city;
        $town = $article->town;
        $pref = $article->pref;
        $address4 = $article->address4;
        if ($article->isRoom){
            $mansion = $article->getMansion();
            $city = $mansion->city;
            $town = $mansion->town;
            $pref = $mansion->pref;
            $address4 = $mansion->address4;
        }
        $prefSuumo = MstAddressPortal::where('type', 2)->where('pref_name', $pref->name)->first();
        $num = $prefSuumo->pref_id ?? '';
        $POST_DATA["todofukenCd"] = $num;

        $POST_DATA["shikugunNm"] = $city->name;
        $addresses = MstAddressPortal::where('type', 2)->where('pref_id', $num)->where('area_name', $city->name);
        if($addresses->count() == 0){
            $addresses = [];
        }else{
            $addresses = $addresses->get();
        }

        $POST_DATA["todofukenNm"] = $addresses[0]->pref_name;
        $POST_DATA["shikugunCd"] = $addresses[0]->area_id;

        $dataCity = $this->mergeCity($addresses, $city, $town, $POST_DATA);
        if (is_null($dataCity)) return;

        $this->mergeTown($dataCity, $town, $POST_DATA, $address4);
    }

    private function mergeTown($cityInSuumo, $town, &$POST_DATA, $address4) {
        $townName = $town->name;
        $townsInSuumo = $this->getMatchedTownsInSuumo($cityInSuumo['city'], $townName);
        if (! empty($cityInSuumo["more_text"])) {
            $townName = explode($cityInSuumo["more_text"], $townName);
            $townName = $townName[1] ?? $townName;
        }
        foreach ($townsInSuumo as $townSuumo) {
            if (strpos($townName, $townSuumo->town_name) !== false) {
                $POST_DATA["ooazaCd"] = $townSuumo->town_id;
                $POST_DATA["ooazaNm"] = $townSuumo->town_name;
                $POST_DATA["azaCd"] = "000";
                $POST_DATA["azaNm"] = "";
                $townMoreId = $this->getMatchedTownMoreId($townSuumo, $townName, $address4);
                if(strpos($townName, '丁目')){
                    $POST_DATA['jushoMatsubi'] = $address4;
                    $POST_DATA['azaCd'] = $townMoreId ?? $this->formatAzaCd($this->getChomeNumber($townName));
                    $POST_DATA['azaNm'] = $townMoreId !== null ? $townSuumo->town_more_name : $this->getChomeNumber($townName);
                    if ($townMoreId !== null) break;
                }else{
                    if($address4 != ''){
                        $replaceArr  = ['−' => '' , '　' => '', ' ' => '' ];
                        $address4 = strtr($address4, $replaceArr);

                        if(strpos($address4, '丁目')){
                            $explodesAdrr4 = explode('丁目', $address4);
                            $POST_DATA['jushoMatsubi'] = $explodesAdrr4[1] ?? '';
                            $POST_DATA['azaCd'] = $townMoreId ?? $this->formatAzaCd($this->getChomeNumber($address4));
                            $POST_DATA['azaNm'] = $townMoreId !== null ? $townSuumo->town_more_name : $this->getChomeNumber($address4);
                            if ($townMoreId !== null) break;
                        }
                    }
                }
            }
        }
//        return;
//        $numberInTown = $this->getNumberInAddress($townName);
//        $haveTextNumberInTown = $numberInTown >= 0;
//
//        if ($haveTextNumberInTown) {
//            if ($numberInTown == 10) {
//                $POST_DATA["azaCd"] = "010";
//            } else {
//                $POST_DATA["azaCd"] = ("00" . $numberInTown);
//            }
//            $textNumber = $this->textNumber[$numberInTown];
//            $townName = explode($textNumber, $townName);
//            $townName = $townName[0] ?? $townName;
//
//            foreach ($townsInSuumo as $townSuumo) {
//                if ($townSuumo->town_name == $townName) {
//                    $POST_DATA["ooazaCd"] = $townSuumo->town_id;
//                    $POST_DATA["ooazaNm"] = $townSuumo->town_name;
//                    return;
//                }
//            }
//        }
    }

    private function getMatchedTownsInSuumo($cities, $townName)
    {
        $townsInSuumo = [];

        foreach ($cities as $city) {
            if ($townName === $city->town_name) {
                return [$city];
            }

            if (strpos($townName, $city->town_name) !== false) {
                $townsInSuumo[] = $city;
            }
        }

        usort($townsInSuumo, function ($a, $b) {
            return strlen($b->town_name) <=> strlen($a->town_name);
        });

        return $townsInSuumo;
    }

    private function getMatchedTownMoreId($townSuumo, $townName, $address4)
    {
        $chomeNumber = $this->getChomeNumber($townName);
        if ($chomeNumber === null) {
            $chomeNumber = $this->getChomeNumber($address4);
        }

        if ($chomeNumber === null) {
            return null;
        }

        $suumoChomeNumber = $this->getChomeNumber($townSuumo->town_more_name, true);
        if ($suumoChomeNumber === null) {
            return null;
        }

        return ((int) $chomeNumber === (int) $suumoChomeNumber) ? $townSuumo->town_more_id : null;
    }

    private function getChomeNumber($address, $allowPlainNumber = false)
    {
        $address = str_replace(['　', ' '], '', (string) $address);
        if (strpos($address, '丁目') !== false) {
            $address = explode('丁目', $address)[0];
        } elseif (!$allowPlainNumber) {
            return null;
        }

        $address = mb_convert_kana($address, 'n');

        if (preg_match('/\d+$/', $address, $matches)) {
            return (int) $matches[0];
        }

        if (!preg_match('/([一二三四五六七八九]?十[一二三四五六七八九]?|[一二三四五六七八九])$/u', $address, $matches)) {
            return null;
        }

        $number = $matches[1];
        if (strpos($number, '十') !== false) {
            $parts = explode('十', $number);
            $tens = ($parts[0] === '') ? 1 : array_search($parts[0], $this->textNumber);
            $ones = ($parts[1] === '') ? 0 : array_search($parts[1], $this->textNumber);

            return ((int) $tens * 10) + (int) $ones;
        }

        return array_search($number, $this->textNumber);
    }

    private function formatAzaCd($number)
    {
        if ($number === null || $number === '') {
            return '000';
        }

        return str_pad((int) $number, 3, '0', STR_PAD_LEFT);
    }

    private function mergeCity($addresses, $city, $town, &$POST_DATA) {
        if($POST_DATA['todofukenCd'] == 14){
            foreach ($addresses as $area){
                if($area->area_id == $city->code){
                    $cityInSuumo = $area;
                    break;
                }
            }

        }else{
            foreach ($addresses as $area){
                if($area->area_name == $city->name){
                    $cityInSuumo = $area;
                    break;
                }
            }
        }

        $isSameName = ($cityInSuumo->area_name ?? '') == $city->name;
        if ($isSameName) {
            $POST_DATA["shikugunCd"] = $cityInSuumo->area_id ?? '';
            return [
                "city" => $addresses,
                "more_text" => ""
            ];
        }
        foreach ($addresses as $citySuumo) {
            $dataDetect = $this->detectCurrentCityWithTown($citySuumo->area_name, $city->name, $town->name);
            if ($dataDetect === false) continue;

            $isCorrectCity = $dataDetect["position"] !== false;
            if ($isCorrectCity) {
                $POST_DATA["shikugunCd"] = $citySuumo->area_id;
                return [
                    "city" => $citySuumo,
                    "more_text" => $dataDetect["more_text"]
                ];
            }
        }

        return null;
    }

    private function detectCurrentCityWithTown($citySuumoName, $cityMicName, $townName) {
        $moreTextInCity = explode($cityMicName, $citySuumoName);
        if (count($moreTextInCity) <= 0 || ($moreTextInCity[0] == '' && $moreTextInCity[1] == '')) {
            return false;
        }

        $moreTextInCity = $moreTextInCity[1];
        return [
            "position" => strpos($townName, $moreTextInCity),
            "more_text" => $moreTextInCity
        ];
    }

    private function getNumberInAddress($address) {
        foreach ($this->textNumber as $index => $text) {
            if ($index == 0) continue;

            $indexTextInAddress = strpos($address, $text);
            if ($indexTextInAddress === false || $indexTextInAddress === 0) {
                continue;
            }

            return $index;
        }

        return -1;
    }
    private function getHistoryPost($bukkencd) {
        logSuumo('-- Get history post: Start.');
        $url = "https://manager.suumo.jp/chukai/tn03Xx0501/";

        $POST_DATA = array(
            'TB' => 12,
            'BKTB' => 10,
            'hanKubun' => '1T',
            'bukkencd'  =>  $bukkencd
        );

        logSuumo('-- -- Data: ' . jsonEncodeJp($POST_DATA));

        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_REFERER, 'https://manager.suumo.jp/chukai/tn02Xx0104.do');
        curl_setopt($curl, CURLOPT_HTTPHEADER, ['Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3', 'Accept-Language: ja,en-US;q=0.9,en;q=0.8', 'Cache-Control: max-age=0', 'Connection: keep-alive', 'Host: manager.suumo.jp', 'Origin: https://manager.suumo.jp', 'Sec-Fetch-Mode: navigate', 'Sec-Fetch-Site: same-origin', 'Sec-Fetch-User: ?1', 'Upgrade-Insecure-Requests: 1']);
        curl_setopt($curl, CURLINFO_HEADER_OUT, TRUE);
        curl_setopt($curl, CURLOPT_MAXREDIRS,10);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt($curl, CURLOPT_AUTOREFERER,TRUE);//リダイレクトの際にヘッダのRefererを自動的に追加させる
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $res = curl_exec($curl); // cURLセッションの実行
        if ($res === false) {
            $err = curl_error($curl);
            curl_close($curl);
            logSuumo("-- -- Get history post failed: $err.");
            logSuumo('-- Get history post: End.');
            die("error $err");
        }

        curl_close($curl);
        $noPattern = '/<td class="bdCell w110">(.+?)<\/td>/s';
        preg_match($noPattern, $res, $noMatches);
        if(count($noMatches)> 1){
            $day_updated = strtotime($noMatches[1]);
            $second = time() - $day_updated;
            if($second < 10){
                session()->flash('message_ok', 'SUUMO に入稿されました。');
                logSuumo('-- -- Get history post success.');
            }else{
                //$this->log($res);
                //session()->flash('message_modal', '入稿できませんでした。物件詳細ページを見直してください。');
                logSuumo('-- -- Get history post failed: Please review the property details page.');
            }
        } else {
            logSuumo('-- -- Get history post failed: Error no match from pattern.');
        }

        logSuumo('-- Get history post: End.');
    }
    private function getArticleSuumo($bukken_no) {
        logSuumo("-- Get article suumo (suumo_no = $bukken_no): Start.");
        $data = array(
            'TB' => 11,
            'BKTB' => 10,
            'hanKubun' => '1K',
            'bukkenCd'  =>  $bukken_no
        );

        $url = "https://manager.suumo.jp/chukai/tn01Xx0104.do";
        logSuumo("-- -- Data ($url): " . jsonEncodeJp($data));

        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); // POST変数をセット
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $response = curl_exec($curl); // cURLセッションの実行
        if ($response === false) {
            $err = curl_error($curl);
            curl_close($curl);
            logSuumo("-- -- Get article suumo failed: $err.");
            logSuumo("-- Get article suumo: End.");
            die("error $err");
        }

        curl_close($curl);
        //$response = mb_convert_encoding($response, "UTF-8", "EUC-JP");

        $input = $this->parseDataInMainForm($response, 'input');
        $radio = $this->parseDataInMainForm($response, 'radio');
        if(isset($radio['tochiJokyoKbn'])){
            $pattern = '/<input.*type="radio".*? name="tochiJokyoKbn" value="(?<value>.*?)" checked/i';
            preg_match_all($pattern, $response, $matches, PREG_SET_ORDER);
            $radio['tochiJokyoKbn'] = $matches[0][1];
        }

        $textarea = $this->parseDataInMainForm($response, 'textarea');
        $new_area = [];
        foreach ($textarea as $key => $area){
            $new_area[$key] = trim($area);
        }
        $textarea = $new_area;
        $select = $this->parseDataInMainForm($response, 'select');
        logSuumo("-- Get article suumo (suumo_no = $bukken_no): End.");

        return array_merge($input, $radio, $textarea, $select);
    }

    private function parseDataInMainForm($response, $type)
    {
        $formPattern = '/<form.*?id="mainForm".*?>(.*?)<\/form>/s';
        preg_match($formPattern, $response, $formMatches);

        if(count($formMatches) < 2) return [];
        switch ($type) {
            case 'input':
                $pattern = '/<input.*?type="text".*?name="(?<name>.*?)".*?value="(?<value>.*?)".*?>/';
                preg_match_all($pattern, $formMatches[0], $matches, PREG_SET_ORDER);
                break;
            case 'radio':
                /*$pattern = '/<input.*?name="(?<name>.*?)".*?value="(?<value>.*?)".*?checked="checked".*?>/';*/
                $pattern = '/<input\b(?=[^>]*name="(?<name>.*?)")[^>]*\bvalue="(?<value>.*?)" checked="checked"/i';

                preg_match_all($pattern, $formMatches[0], $matches, PREG_SET_ORDER);
                break;
            case 'textarea':
                $pattern = '/<textarea.*?name="(?<name>.*?)".*?>(?<value>.*?)<\/textarea>/s';
                preg_match_all($pattern, $formMatches[0], $matches, PREG_SET_ORDER);
                break;
            case 'select':
                $matches = $this->parseSelectInMainForm($formMatches);
                break;
        }

        if (!isset($matches)) return [];

        return collect($matches)
            ->pluck('value', 'name')
            ->toArray();
    }

    private function parseSelectInMainForm($formMatches)
    {
        $patternSelecte = '/<select.*?name="(?<name>.*?)".*?>([\S\s]*?)<\/select>/';

        preg_match_all($patternSelecte, $formMatches[0], $selectMatches, PREG_SET_ORDER);
        $patternOption = '/<option.*?value="(?<value>.*?)".*?selected.*?>/';
        $patternOption_no = '/<option value="(?<value>[^>]*?)" selected="selected">/';

        foreach ($selectMatches as $key => $value) {

            preg_match_all($patternOption, $value[0], $optionMatches, PREG_SET_ORDER);

            if (isset($optionMatches[0])) {
                preg_match_all('/option/i', $optionMatches[0][0], $check_op);
            }
            if(isset($check_op) && count($check_op[0]) > 1){
                preg_match_all($patternOption_no, $value[0], $optionMatches, PREG_SET_ORDER);
            }

            if($value['name'] == 'konyuSupport01Gaiyocd'){
                preg_match_all('/<option.*?value="(?<value>[^>]*?)".*?selected="selected".*?>/U', $value[0], $optionMatches, PREG_SET_ORDER);
            }

            if (isset($optionMatches[0])) {
                $selectMatches[$key]['value'] =  $optionMatches[0]['value'];
            } else {
                unset($selectMatches[$key]);
            }

        }
        return $selectMatches;
    }
    private function setDefaultValue(&$POST_DATA, $article) {

        if(in_array($article->property, [1,2,3])) {
            $fields = ['mdaJyusyoDispFlg', 'chizuProtFlg', 'senTakuHenSyu', 'staffComment', 'kishaTantoNm', 'kishaBukkenCd', 'kishaComment1', 'kishaComment2', 'hpLinkNm1', 'hpLinkUrl1', 'hpLinkNm2', 'hpLinkUrl2', 'hpLinkNm3', 'hpLinkUrl3', 'hpLinkNm4', 'hpLinkUrl4', 'hpLinkNm5', 'hpLinkUrl5', 'chokaihiKbn', 'onsenKenKbn', 'mensekiTsuboFlg', 'tochiJokyoKbn', 'torihikitaiyoComment01', 'hoshiMarkKbn', 'cmMaBknPictList[6].pictDispSeq', 'cmMaBknPictList[7].pictDispSeq', 'cmMaBknPictList[8].pictDispSeq', 'cmMaBknPictList[21].pictDispSeq', 'cmMaBknPictList[44].pictDispSeq', 'cmMaBknPictList[48].pictDispSeq', 'eventActionKbn', 'kkbPicComment', 'btobGazoPtn', 'btobMainCatch', 'btobSubCatch1', 'btobSubCatch2', 'btobSubCatch3', 'btobSubCatch4', 'btobSubCatch5', 'btobComment', 'netKomaKeisaiShijiFlg', 'netRptKeisaiShijiFlg', 'raijoYoyakuFlg', 'jishaHpKeisaiShijiFlg', 'ospKeisaiShijiFlg', 'ikcKeisaiShijiFlg', 'cmKeisaiShijiFlg', 'sprKeisaiShijiFlg', 'kkbKeisaiShijiFlg', 'ttsKeisaiShijiFlg', 'decorationKeisaiShijiFlg', 'panoramaKeisaiShijiFlg', 'honshiKbn', 'nextHonshiKbn', 'resortFlg'];
            /*for($i = 0; $i < 52; $i++){
                $fields[] = 'cmMaBknPictList['.$i.'].checkFlg';
            }*/
        } elseif(in_array($article->property, [4,5])) {
            $fields = ['mdaJyusyoDispFlg', 'chizuProtFlg', 'senTakuHenSyu', 'kishaEigyoMei', 'staffComment', 'kishaTantoNm', 'kishaBukkenCd', 'kishaComment1', 'kishaComment2', 'hpLinkNm1', 'hpLinkUrl1', 'hpLinkNm2', 'hpLinkUrl2', 'hpLinkNm3', 'hpLinkUrl3', 'hpLinkNm4', 'hpLinkUrl4', 'hpLinkNm5', 'hpLinkUrl5', 'chokaihiKbn', 'yusenHiyoUmu', 'internetHiyoUmu', 'catvHiyoUmu', 'chokaihiUmu', 'chokaihiRyo', 'chokaihiRyoTaniKbn', 'mensekiTsuboFlg', 'kohoKbn', 'sekoKaishaKbn1', 'sekoKaishaNm', 'sekoKaishaKbn2', 'hoshiMarkKbn', 'torihikitaiyoComment01', 'cmMaBknPictList[0].pictDispSeq', 'cmMaBknPictList[4].pictDispSeq', 'eventActionKbn', 'kkbPicComment', 'btobGazoPtn', 'btobMainCatch', 'btobSubCatch1', 'btobSubCatch2', 'btobSubCatch3', 'btobSubCatch4', 'btobSubCatch5', 'btobComment', 'netKomaKeisaiShijiFlg', 'netRptKeisaiShijiFlg', 'raijoYoyakuFlg', 'jishaHpKeisaiShijiFlg', 'ospKeisaiShijiFlg', 'ikcKeisaiShijiFlg', 'cmKeisaiShijiFlg', 'sprKeisaiShijiFlg', 'kkbKeisaiShijiFlg', 'ttsKeisaiShijiFlg', 'decorationKeisaiShijiFlg', 'panoramaKeisaiShijiFlg', 'honshiKbn', 'nextHonshiKbn', 'resortFlg'];
            /*for($i = 0; $i < 163; $i++){
                $fields[] = 'cmMaBknPictList['.$i.'].checkFlg';
            }*/
        } else {
            $fields = ['mdaJyusyoDispFlg', 'chizuProtFlg', 'senTakuHenSyu', 'staffComment', 'kishaTantoNm', 'kishaBukkenCd', 'kishaComment1', 'kishaComment2', 'hpLinkNm1', 'hpLinkUrl1', 'hpLinkNm2', 'hpLinkUrl2', 'hpLinkNm3', 'hpLinkUrl3', 'hpLinkNm4', 'hpLinkUrl4', 'hpLinkNm5', 'hpLinkUrl5', 'chokaihiKbn', 'yusenHiyoUmu', 'internetHiyoUmu', 'catvHiyoUmu', 'chidaiKbn', 'sekoKaishaKbn2', 'eventActionKbn', 'kkbPicComment', 'btobGazoPtn', 'btobMainCatch', 'btobSubCatch1', 'btobSubCatch2', 'btobSubCatch3', 'btobSubCatch4', 'btobSubCatch5', 'btobComment', 'netKomaKeisaiShijiFlg', 'netRptKeisaiShijiFlg', 'raijoYoyakuFlg', 'jishaHpKeisaiShijiFlg', 'ospKeisaiShijiFlg', 'ikcKeisaiShijiFlg', 'cmKeisaiShijiFlg', 'sprKeisaiShijiFlg', 'kkbKeisaiShijiFlg', 'ttsKeisaiShijiFlg', 'decorationKeisaiShijiFlg', 'panoramaKeisaiShijiFlg', 'honshiKbn', 'nextHonshiKbn', 'resortFlg'];
            /*for($i = 0; $i < 154; $i++){
                $fields[] = 'cmMaBknPictList['.$i.'].checkFlg';
            }*/
            /*for($i = 18; $i < 149; $i++){
                $fields[] = 'cmMaBknPictList['.$i.'].pictDispSeq';
            }*/
        }
        for($i = 0; $i < 162; $i++) {
            $fields[] = 'cmMaBknPictList['.$i.'].pictDispSeq';
            $fields[] = 'cmMaBknPictList['.$i.'].checkFlg';
        }

        $data = $this->getArticleSuumo($POST_DATA['bukkenCd']);

        $do_not_overwrite = [
            'konyuSupport01Gaiyocd',
            'konyuSupport01Shosai',
            'konyuSupport01RyoUmuflg',
            'konyuSupport01Kikan',
            'konyuSupport01Chuui',
            'konyuSupport01RyoHosoku'
        ];
        if($article->isLand){
            $do_not_overwrite[] = 'chokaihiKbn';
            $do_not_overwrite[] = 'tochiJokyoKbn';
            $do_not_overwrite[] = 'chokaihiUmu';
            $do_not_overwrite[] = 'chokaihiRyo';
            $do_not_overwrite[] = 'chokaihiRyoTaniKbn';
            $do_not_overwrite[] = 'onsenKenKbn';
            $do_not_overwrite[] = 'onsenKenRyoUmu';
            $do_not_overwrite[] = 'onsenKenRyo';
            $do_not_overwrite[] = 'onsenKenRyoTaniKbn';
            $do_not_overwrite[] = 'onsenKenKaonUmu';
            $do_not_overwrite[] = 'onsenKenKasuiUmu';
            $do_not_overwrite[] = 'onsenKenHakobiyuUmu';
            $do_not_overwrite[] = 'onsenKenJunkanUmu';
            $do_not_overwrite[] = 'onsenKenRokaUmu';
        }
        if($article->isHome){
            $do_not_overwrite[] = 'chokaihiKbn';
            $do_not_overwrite[] = 'yusenHiyoUmu';
            $do_not_overwrite[] = 'internetHiyoUmu';
            $do_not_overwrite[] = 'catvHiyoUmu';
            $do_not_overwrite[] = 'onsenKenKbn';
            $do_not_overwrite[] = 'chokaihiRyo';
            $do_not_overwrite[] = 'yusenShokiHiyoUmu';
            $do_not_overwrite[] = 'yusenShokiHiyo';
            $do_not_overwrite[] = 'yusenTeigakuRyoUmu';
            $do_not_overwrite[] = 'yusenTeigakuRyo';
            $do_not_overwrite[] = 'internetShokiHiyoUmu';
            $do_not_overwrite[] = 'internetShokiHiyo';
            $do_not_overwrite[] = 'internetTeigakuRyo';
            $do_not_overwrite[] = 'catvShokiHiyoUmu';
            $do_not_overwrite[] = 'catvShokiHiyo';
            $do_not_overwrite[] = 'catvTeigakuRyoUmu';
            $do_not_overwrite[] = 'catvTeigakuRyo';
            $do_not_overwrite[] = 'onsenKenRyoUmu';
            $do_not_overwrite[] = 'onsenKenRyo';
            $do_not_overwrite[] = 'chokaihiRyoTaniKbn';
            $do_not_overwrite[] = 'yusenTeigakuRyoTaniKbn';
            $do_not_overwrite[] = 'catvTeigakuRyoTaniKbn';
            $do_not_overwrite[] = 'onsenKenKasuiUmu';
            $do_not_overwrite[] = 'onsenKenKaonUmu';
            $do_not_overwrite[] = 'onsenKenHakobiyuUmu';
            $do_not_overwrite[] = 'onsenKenJunkanUmu';
            $do_not_overwrite[] = 'onsenKenRokaUmu';
            $do_not_overwrite[] = 'internetTeigakuRyoUmu';

            if($article->land_not != 1){
                $do_not_overwrite[] = 'kckKjn43joTadashigakiKbn';
            } else{
                if($article->tatemonoJokyoKbn == 3){
                    $POST_DATA['kckKjn43joTadashigakiKbn'] = 'f';
                }else{
                    $do_not_overwrite[] = 'kckKjn43joTadashigakiKbn';
                }
            }
        }
        if($article->isRoom){
            $do_not_overwrite[] = 'chokaihiKbn';
            $do_not_overwrite[] = 'yusenHiyoUmu';
            $do_not_overwrite[] = 'internetHiyoUmu';
            $do_not_overwrite[] = 'catvHiyoUmu';
            $do_not_overwrite[] = 'onsenKenKbn';
            $do_not_overwrite[] = 'mensekiTsuboFlg';
            $do_not_overwrite[] = 'torihikitaiyoComment01';
            $do_not_overwrite[] = 'hoshiMarkKbn';
            $do_not_overwrite[] = 'chokaihiUmu';
            $do_not_overwrite[] = 'chokaihiRyo';
            $do_not_overwrite[] = 'chokaihiRyoTaniKbn';
            $do_not_overwrite[] = 'internetShokiHiyoUmu';
            $do_not_overwrite[] = 'internetShokiHiyo';
            $do_not_overwrite[] = 'internetTeigakuRyoUmu';
            $do_not_overwrite[] = 'internetTeigakuRyo';
            $do_not_overwrite[] = 'internetTeigakuRyoTaniKbn';
            $do_not_overwrite[] = 'catvShokiHiyoUmu';
            $do_not_overwrite[] = 'catvShokiHiyo';
            $do_not_overwrite[] = 'catvTeigakuRyoUmu';
            $do_not_overwrite[] = 'catvTeigakuRyoTaniKbn';
            $do_not_overwrite[] = 'catvTeigakuRyo';
            $do_not_overwrite[] = 'onsenKenKbn';
            $do_not_overwrite[] = 'onsenKenRyoUmu';
            $do_not_overwrite[] = 'onsenKenRyo';
            $do_not_overwrite[] = 'onsenKenRyoTaniKbn';
            $do_not_overwrite[] = 'onsenKenKaonUmu';
            $do_not_overwrite[] = 'onsenKenKasuiUmu';
            $do_not_overwrite[] = 'onsenKenHakobiyuUmu';
            $do_not_overwrite[] = 'onsenKenJunkanUmu';
            $do_not_overwrite[] = 'onsenKenRokaUmu';
            $do_not_overwrite[] = 'yusenShokiHiyoUmu';
            $do_not_overwrite[] = 'yusenShokiHiyo';
            $do_not_overwrite[] = 'yusenTeigakuRyoUmu';
            $do_not_overwrite[] = 'yusenTeigakuRyo';
            $do_not_overwrite[] = 'yusenTeigakuRyoTaniKbn';
        }

        $fields = array_merge($fields, $do_not_overwrite);

        foreach ($fields as $field) {

            $POST_DATA[$field] = htmlspecialchars_decode($data[$field] ?? '');

            if($field == 'eventActionKbn' && $article->reservation == 1){
                $POST_DATA['eventActionKbn'] = 3
                ;
            }
            if(isset($data['chidaiKbn']) && $field == 'chidaiKbn' && $data[$field] == 3){
                $POST_DATA[$field] = 3;
            }

            if($field == 'tochiJokyoKbn'){
                if(isset($data['tochiJokyoKbn']) && $data[$field] == 3){
                    $POST_DATA[$field] = 3;
                }else{
                    $POST_DATA[$field] = $article->tochiJokyoKbn;
                }
            }
            if(isset($data['kckKjn43joTadashigakiKbn']) && $field == 'kckKjn43joTadashigakiKbn'){
                if(in_array($data['kckKjn43joTadashigakiKbn'],['a', 'b', 'c'])){
                    $POST_DATA['tatemonoJokyoKbn'] = 3;
                }
                if(in_array($data['kckKjn43joTadashigakiKbn'],['d', 'e'])){
                    $POST_DATA['tatemonoJokyoKbn'] = 2;
                }
                if($article->land_not == 1){
                    $POST_DATA['tatemonoJokyoKbn'] = 3;
                    $POST_DATA['kckKjn43joTadashigakiKbn'] = 'f';
                }
            }
        }

        //dd($POST_DATA);
    }
    function loginSuumoContact() {
        logSuumo("Login Suumo Info");
        $cookie_path = './suumo_contact_cookie.txt';
        touch($cookie_path);
        $id = "106889200002";
        $pass = "Takara_3241";
        $user = Auth::user();

        // cURLセッションの共通オプション
        $this->option_contact = [
            // CURLOPT_CUSTOMREQUEST => 'POST',
            CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0',
            CURLOPT_SSL_VERIFYPEER => FALSE,
            CURLOPT_SSL_VERIFYHOST => FALSE,
            CURLOPT_COOKIEJAR => $cookie_path,
            CURLOPT_COOKIEFILE => $cookie_path,
            CURLOPT_HEADER  => TRUE,
        ];

        // ログイン処理
        $url = "https://jds.suumo.jp/jds/CJ000AU001/login";
        $POST_DATA = array(
            'j_username' => $id,
            'j_password' => $pass
        );
        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt_array($curl, $this->option_contact); // 共通オプションの設定
        $res = curl_exec($curl) or die('error ' . curl_error($curl)); // cURLセッションの実行

        $this->getContact();
    }
    function getContact(){
        // 物件登録画面へアクセス 土地1区画
        $url = "https://jds.suumo.jp/jds/CJ003LI001/";
        $POST_DATA = [
            "kikanSTuki"    =>  0,
            "kikanSNiti"    =>  0,
            "kikanETuki"    =>  0,
            "kikanENiti"    =>  0,
            "fwKoumoku"     =>  '',
            "fwMoji"        =>  '',
            "kensakuFlg"    =>  1
        ];
        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($POST_DATA)); // POST変数をセット
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
        curl_setopt_array($curl, $this->option_contact); // 共通オプションの設定
        $res = curl_exec($curl) or die('error ' . curl_error($curl)); // cURLセッションの実行
        $this->log($res);

        $header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
        $response = substr($res, $header_size);

        $array = explode(',', $response);
        $data = [];

        return $data;
    }
    private function checkStatusId($bukken_no): bool
    {
        logSuumo('-- Check status: Start.');
        $data = array(
            'TB' => 11,
            'BKTB' => 10,
            'hanKubun' => '1K',
            'bukkenCd'  =>  $bukken_no
        );
        logSuumo('-- -- Data: ' . jsonEncodeJp($data));

        $url = "https://manager.suumo.jp/chukai/tn01Xx0104.do";
        $curl = curl_init(); // cURLセッションの初期化
        curl_setopt($curl, CURLOPT_URL, $url); // 取得するURLを指定
        curl_setopt($curl, CURLOPT_POST, TRUE);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); // POST変数をセット
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); // 実行結果を文字列で返す。
        curl_setopt_array($curl, $this->option); // 共通オプションの設定
        $response = curl_exec($curl); // cURLセッションの実行
        if ($response === false) {
            logSuumo('-- -- Check status failed: ' . curl_error($curl) . '.');
            logSuumo('-- Check status: End.');
            curl_close($curl);
            return false;
        }

        curl_close($curl);
        $this->log($response);
        $formPattern = '/<font size = \'4\'>(.*?)<\/font>/';
        preg_match_all($formPattern, $response, $formMatches);

        if(isset($formMatches[1][0]) && $formMatches[1][0] == '閲覧権限がないため、画面を表示できません'){
            logSuumo('-- -- Check status failed: 閲覧権限がないため、画面を表示できません.');
            logSuumo('-- Check status: End.');
            return false;
        }

        logSuumo('-- -- Check status success.');
        logSuumo('-- Check status: End.');
        return true;
    }

    private function showLogErr(){
        session()->flash('message_modal', '入稿できませんでした。物件詳細ページを見直してください。');
    }

    private function getStationPortal($line_name, $station_name){
        return MstStationPortal::findByNickName($line_name, $station_name, 2);
    }

    private function mergeFeature($article,  &$POST_DATA){
        foreach ($article->features as $feature){
            if (isset($feature->suumo_id) && $feature->suumo_id != ''){
                $POST_DATA['cmMaBknPictList['.$feature->suumo_id.'].checkFlg'] = "1";
                $POST_DATA['cmMaBknPictList['.$feature->suumo_id.'].pictDispSeq'] = "1";
            }
        }
    }
}
