private function update_pur($v3key) { $workload = $this->_workload; if (empty($v3key->writedate) or $v3key->writedate == '0000-00-00') { return; } $v3val = $v3key->v3BidValue; $keyid = $v3val->keyid; list($bidno, $bidseq, $rebidno, $divno) = explode('-', $v3key->bidid); $subseq = intval($bidseq); $pm = PurMaster::findOne(['id' => $keyid, 'subseq' => $subseq]); if ($pm === null or $keyid == 0) { $pm = new PurMaster(); $idstart = str_replace('-', '', $v3key->writedate); $idstart . '0000'; $id = (new Query())->from('pur_master')->where("id > :idstart", [':idstart' => $idstart])->max('id', PurMaster::getDb()); if (empty($id)) { $id = $idstart; } $pm->id = $id + 1; $pm->subseq = $subseq; } $pm->attributes = ['notinum' => $v3key->notinum, 'constname' => $v3key->constnm, 'org' => $v3key->org, 'gesi_dt' => $v3val->noticedt, 'explain_dt' => $v3val->explaindt, 'ibchalgesi_dt' => $v3val->opendt, 'ibchalmagam_dt' => $v3val->closedt, 'ibchal_dt' => $v3val->constdt, 'chamgamagam_dt' => $v3val->registdt, 'write_dt' => $v3val->writedt, 'presum' => $v3key->presum, 'basic' => $v3key->basic, 'pct' => $v3key->pct, 'itemcode' => $v3key->purcode, 'location' => $v3key->location, 'state' => $v3key->state, 'register' => 'i2conv', 'islast' => 'Y', 'org_code' => $v3key->orgcode]; if (empty($pm->chamgamagam_dt) or $v3key->whereis === '01') { $pm->chamgamagam_dt = $pm->ibchalmagam_dt; } switch ($v3key->contract) { case '10': $pm->constract = '일반'; break; case '20': $pm->constract = '제한'; break; case '40': $pm->constract = '수의'; break; case '70': $pm->constract = '역경매'; break; case '80': $pm->constract = '실적'; break; default: $pm->constract = ''; } switch ($v3key->bidcls) { case '00': $pm->ibchalbangsik = '직찰'; break; case '01': $pm->ibchalbangsik = '전자입찰'; break; default: $pm->ibchalbangsik = ''; } $cmtopts = []; if (($v3key->ulevel & pow(2, 2)) > 0) { $cmtopts[] = '긴급'; } if (($v3key->ulevel & pow(2, 11)) > 0) { $cmtopts[] = '관내'; } $pm->commentoption = implode(',', $cmtopts); switch ($v3key->bidproc) { case 'B': $pm->dataprocess = 'GEN'; break; case 'C': $pm->dataprocess = 'CANCEL'; break; default: $pm->dataprocess = 'MOD'; } if (!ArrayHelper::isIn($v3key->bidproc, ['S', 'F']) && intval($rebidno) > 0) { $pm->isjeibchal = 'Y'; } switch ($v3key->whereis) { case '01': $pm->whereis = 'G2B'; break; case '08': $pm->whereis = 'EX'; break; case '03': $pm->whereis = 'KEPCO'; break; case '10': $pm->whereis = 'DPA'; break; case '96': $pm->whereis = 'KHNP'; break; case '52': $pm->whereis = 'KR'; break; default: $pm->whereis = 'ETC'; } $v3bidgoods = V3BidGoods::findAll(['bidid' => $v3key->bidid]); $pm->goods_cnt = count($v3bidgoods); $v3bidlocals = $v3key->v3BidLocals; $lockeywords = []; foreach ($v3bidlocals as $v3bidlocal) { $a = explode(' ', $v3bidlocal->name); $lockeywords[] = array_pop($a); } $pm->lockeyword = implode(',', $lockeywords); $pm->save(); $v3ctn = $v3key->v3BidContent; //---------------------------------------------- // pur_file_data //---------------------------------------------- $pfd = $pm->purFileData; if ($pfd === null) { $pfd = new PurFileData(['id' => $pm->id, 'subseq' => $pm->subseq]); } if ($v3ctn !== null) { $pfd->attributes = ['filedata1' => $v3ctn->upfile_bid, 'jungjungdata' => $v3ctn->important_bid, 'maincontents' => $v3ctn->content_bid, 'openbid_contents' => $v3ctn->content_suc]; } $pfd->urlinfo1 = $v3val->origin_lnk; $pfd->linkdata = $v3val->attchd_lnk; $pfd->save(); //---------------------------------------------- // pur_g2b_goods //---------------------------------------------- $v3goods = $v3key->v3BidGoods; foreach ($v3goods as $g) { $pgg = PurG2bGoods::findOne(['notinum' => $v3key->notinum, 'bunryu_no' => 1, 'sunbun_no' => $g->seq]); if ($pgg === null) { $pgg = new PurG2bGoods(['notinum' => $v3key->notinum, 'bunryu_no' => 1, 'sunbun_no' => $g->seq]); } $pgg->attributes = ['info_code' => 0, 'info_name' => '', 'g2b_code' => $g->gcode, 'g2b_myung' => $g->gname]; $pgg->save(); } //--------------------------------------------- // pur_res //--------------------------------------------- $v3res = $v3key->v3BidResult; if ($v3res !== null and ArrayHelper::isIn($v3key->bidproc, ['R', 'S', 'F'])) { $pres = PurRes::findOne(['id' => $pm->id, 'notinum' => $pm->notinum, 'bunryuno' => 1]); if ($pres === null) { $pres = new PurRes(['id' => $pm->id, 'notinum' => $pm->notinum, 'bunryuno' => 1]); } $pres->attributes = ['jeibchal_bunho' => intval($rebidno), 'rs_selected_num' => $v3res->selms, 'rs_gechal_ilsi' => $v3res->resdt, 'yega' => $v3res->yega, 'gichoamt' => $v3key->basic]; switch ($v3key->bidproc) { case 'R': $pres->process = 'REBID'; break; case 'F': $pres->process = 'YUCHAL'; break; default: $pres->process = 'DONE'; } $ms = explode('/', $v3val->multispare); if (isset($ms[0])) { $pres->rs_yega1 = $ms[0]; } if (isset($ms[1])) { $pres->rs_yega2 = $ms[1]; } if (isset($ms[2])) { $pres->rs_yega3 = $ms[2]; } if (isset($ms[3])) { $pres->rs_yega4 = $ms[3]; } if (isset($ms[4])) { $pres->rs_yega5 = $ms[4]; } if (isset($ms[5])) { $pres->rs_yega6 = $ms[5]; } if (isset($ms[6])) { $pres->rs_yega7 = $ms[6]; } if (isset($ms[7])) { $pres->rs_yega8 = $ms[7]; } if (isset($ms[8])) { $pres->rs_yega9 = $ms[8]; } if (isset($ms[9])) { $pres->rs_yega10 = $ms[9]; } if (isset($ms[10])) { $pres->rs_yega11 = $ms[10]; } if (isset($ms[11])) { $pres->rs_yega12 = $ms[11]; } if (isset($ms[12])) { $pres->rs_yega13 = $ms[12]; } if (isset($ms[13])) { $pres->rs_yega14 = $ms[13]; } if (isset($ms[14])) { $pres->rs_yega15 = $ms[14]; } switch ($v3key->bidproc) { case 'F': case 'S': $pm->sucprocess = 'Y'; break; case 'R': $pm->isjeibchal = 'Y'; break; } $pm->successamt = $v3res->success1; $pm->successname = $v3res->officenm1; $pres->save(); if ($v3key->bidproc === 'S') { $v3succoms = V3BidSuccom::findAll(['constdate' => $v3key->constdate, 'bidid' => $v3key->bidid]); PurResEnterprise::deleteAll(['id' => $pm->id]); $innum = count($v3succoms); $n = 1; Console::startProgress(0, $innum); foreach ($v3succoms as $s) { $pen = new PurResEnterprise(['id' => $pm->id, 'saupja_bunho' => $s->officeno, 'notinum' => $pm->notinum, 'sunwi' => $s->rank, 'upche_myung' => $s->officenm, 'depyoja' => $s->prenm, 'tuchal_gumek' => $s->success, 'tuchal_ryul' => $s->pct, 'bigo' => $s->etc, 'bunryuno' => 1]); $pen->save(); Console::updateProgress($n, $innum); $n++; } Console::endProgress(); } } if ($v3val->keyid != $pm->id) { $v3val->keyid = $pm->id; $v3val->save(); } }