Example #1
0
 /**
  * JSON => DB
  */
 public function actionImport()
 {
     error_reporting(E_ALL & ~E_NOTICE);
     // Get data
     $data = json_decode(file_get_contents(\yii::getAlias('@frontend') . '/data/data.json'));
     // Deputies
     Deputy::deleteAll();
     foreach ($data->deputies as $deputyData) {
         // Data
         $deputyData->partyName = $deputyData->party;
         $deputyData->facebook = $deputyData->facebook ?: null;
         $deputyData->phones = $deputyData->phones ? implode(',', $deputyData->phones) : null;
         $deputyData->dateAuthorityStart = date('Y-m-d', $deputyData->dateAuthorityStart);
         $deputyData->dateAuthorityStop = $deputyData->dateAuthorityStop ? date('Y-m-d', $deputyData->dateAuthorityStop) : null;
         $deputyData->districtId = $deputyData->district->id ?: null;
         $deputy = new Deputy();
         $deputy->setAttributes((array) $deputyData, false);
         $deputy->save();
         // Votes
         DeputyLaw::deleteAll(['deputyId' => $deputy->id]);
         foreach ($deputyData->laws as $deputyLawId => $deputyLawVote) {
             if ($deputyLawId === 'відвідуваність') {
                 continue;
             }
             $deputyLaw = new DeputyLaw();
             $deputyLaw->setAttributes(['deputyId' => $deputy->id, 'lawId' => $deputyLawId, 'vote' => $deputyLawVote], false);
             $deputyLaw->save();
         }
     }
     // Laws
     Law::deleteAll();
     foreach ($data->laws as $lawData) {
         $law = new Law();
         $law->setAttributes((array) $lawData, false);
         $law->dateVoting = $lawData->date ? date('Y-m-d H:i:s', $lawData->date) : null;
         $law->save();
     }
     // Law tags
     LawTag::deleteAll();
     foreach ($data->lawTags as $lawTagData) {
         $lawTag = new LawTag();
         $lawTag->setAttributes((array) $lawTagData, false);
         $lawTag->save();
     }
     // Parites
     Party::deleteAll();
     foreach ($data->parties as $partyData) {
         $party = new Party();
         $party->setAttributes((array) $partyData, false);
         $party->save();
     }
 }