/** * Delete current Estate and related records (LinkCounters, Counters, Records) * * @param int $id * @return \yii\web\Response * @throws ForbiddenHttpException * @throws NotFoundHttpException * @throws \Exception */ public function actionDelete($id) { $model = $this->findEstate($id); $linkCounters = LinkCounter::findAll(['estate_id' => $model->id]); foreach ($linkCounters as $linkCounter) { /** @var Counter $counter */ $counter = Counter::findOne($linkCounter->getCounterId()); Record::deleteAll(['counter_id' => $counter->id]); $counter->delete(); $linkCounter->delete(); } $model->delete(); Yii::$app->session->setFlash('success', Yii::t('app', 'FLASH_ESTATE_DELETED')); return $this->redirect(['index']); }
/** * Initialize function. Creating Counters&LinkCounters records * * @param int $id */ public function initializeEstate($id) { /** @var Estate $estate */ $estate = $this->findEstate($id); $communalList = ComService::findByCity($estate->city_id); // Get list of all ComServices in Estate's city /** @var ComService $communal */ foreach ($communalList as $communal) { /** @var Counter $counter */ $counter = new Counter($communal->type); // Create new counter with specified type $counter->save(); $model = new LinkCounter(); // Create full LinkCounter record $model->setComserviceId($communal->id); $model->setEstateId($estate->id); $model->setCounterId($counter->id); $model->save(); } }
/** * Getter currnet Counter * * @return Counter */ public function getCounter() { return Counter::findOne($this->counter_id); }