private function registerImpl() { if (!$this->validate()) { return false; } $fiz_lico = new FizLico(['familiya' => $this->familiya, 'imya' => $this->imya, 'otchestvo' => $this->otchestvo, 'email' => $this->email, 'formattedTelefon' => $this->telefon]); $polzovatel = new Polzovatel(['login' => $this->login, 'parol' => $this->parol, 'aktiven' => true, 'roliAsArray' => $this->roli]); $polzovatel->generateKlyuchAutentifikacii(); $polzovatel->generateKodPodtverzhdeniyaEmail(); list($organizaciya, $organizaciya_to_delete) = DirectoryHelper::getFromCombo(Organizaciya::className(), $this->rabotaOrgId, $this->rabotaOrgNazvanie, ['vedomstvo' => $this->rabotaOrgVedomstvo, 'adres_adresnyj_objekt' => $this->rabotaOrgAdres]); $rabota_fiz_lica = new RabotaFizLica(['formattedTelefon' => $this->rabotaTelefon]); list($dolzhnost, $dolzhnost_to_delete) = DirectoryHelper::getFromCombo(Dolzhnost::className(), $this->rabotaDolzhnostId, $this->rabotaDolzhnostNazvanie, null); $dolzhnost_fiz_lica_na_rabote = new DolzhnostFizLicaNaRabote(['etapObrazovaniyaAsEnum' => $this->rabotaEtapObrazovaniya]); $message = Yii::$app->mailer->compose('kadry/registraciya.php', ['model' => $this, 'polzovatel' => $polzovatel])->setTo($fiz_lico->email); if (!$message->send()) { $this->addError('email', 'Не удалось отправить E-Mail.'); return false; } $transaction = Yii::$app->db->beginTransaction(); try { $fiz_lico->save(false); $polzovatel->link('fizLicoRel', $fiz_lico); $polzovatel->save(false); if ($organizaciya) { $organizaciya->save(false); } $rabota_fiz_lica->fizLico = $fiz_lico->id; $rabota_fiz_lica->link('organizaciyaRel', $organizaciya); $rabota_fiz_lica->save(false); if ($dolzhnost) { $dolzhnost->save(false); } $dolzhnost_fiz_lica_na_rabote->dolzhnost = $dolzhnost->id; $dolzhnost_fiz_lica_na_rabote->link('rabotaFizLicaRel', $rabota_fiz_lica); $dolzhnost_fiz_lica_na_rabote->save(false); if ($organizaciya_to_delete) { $organizaciya_to_delete->delete(); } if ($dolzhnost_to_delete) { $dolzhnost_to_delete->delete(); } $transaction->commit(); } catch (\Exception $e) { $transaction->rollBack(); throw $e; } return true; }
public function getDolzhnostRel() { return $this->hasOne(Dolzhnost::className(), ['id' => 'rabota_dolzhnost'])->inverseOf('zayavlenieNaAttestaciyuRel'); }
/** * @return FizLico */ private function saveByudzhetZapisEntities() { $fiz_lico = FizLico::findOne($this->fizLico); $fiz_lico->pedStazh = $this->pedStazh; $fiz_lico->save(false); $rabota_fiz_lica_conf = ['fiz_lico' => $this->fizLico]; $rabota_fiz_lica = RabotaFizLica::find()->where($rabota_fiz_lica_conf)->orderBy('id')->one() ?: new RabotaFizLica($rabota_fiz_lica_conf); $rabota_fiz_lica->save(false); $dolzhnost_fiz_lica_na_rabote_conf = ['rabota_fiz_lica' => $rabota_fiz_lica->id]; $dolzhnost_fiz_lica_na_rabote = DolzhnostFizLicaNaRabote::find()->where($dolzhnost_fiz_lica_na_rabote_conf)->orderBy('id')->one() ?: new DolzhnostFizLicaNaRabote($dolzhnost_fiz_lica_na_rabote_conf); list($dolzhnost, $dolzhnost_to_delete) = DirectoryHelper::getFromCombo(Dolzhnost::className(), $this->dolzhnostId, $this->dolzhnostNazvanie, $dolzhnost_fiz_lica_na_rabote->dolzhnost); if ($dolzhnost) { $dolzhnost->save(false); } $dolzhnost_fiz_lica_na_rabote->link('dolzhnostRel', $dolzhnost); $dolzhnost_fiz_lica_na_rabote->save(false); // if ($dolzhnost_to_delete) // $dolzhnost_to_delete->delete(); $stazh_v_dolzhnosti_conf = ['fiz_lico' => $this->fizLico, 'dolzhnost' => $dolzhnost->id]; $stazh_v_dolzhnosti = StazhFizLica::findOne($stazh_v_dolzhnosti_conf) ?: new StazhFizLica($stazh_v_dolzhnosti_conf); $stazh_v_dolzhnosti->stazh = $this->stazhVDolzhnosti; $stazh_v_dolzhnosti->save(false); // todo refactor $attestaciya_fiz_lica = $fiz_lico->attestaciyaFizLicaRel; if (!$attestaciya_fiz_lica) { $attestaciya_fiz_lica = new AttestaciyaFizLica(['fiz_lico' => $this->fizLico]); $attestaciya_fiz_lica->save(false); $tekuschaya_attestaciya_fiz_lica = new TekuschayaAttestaciyaFizLica(['fiz_lico' => $this->fizLico, 'attestaciya_fiz_lica' => $attestaciya_fiz_lica->id]); $tekuschaya_attestaciya_fiz_lica->save(false); } $attestaciya_fiz_lica->kategoriya = $this->kategoriya; $attestaciya_fiz_lica->save(false); $obrazovanie_fiz_lica_conf = ['fiz_lico' => $this->fizLico]; $obrazovanie_fiz_lica = ObrazovanieFizLica::find()->where($obrazovanie_fiz_lica_conf)->orderBy('id')->one() ?: new ObrazovanieFizLica($obrazovanie_fiz_lica_conf); $obrazovanie_fiz_lica->dokumentObObrazovaniiTip = $this->obrDocTip; $obrazovanie_fiz_lica->dokumentObObrazovaniiSeriya = $this->obrDocSeriya; $obrazovanie_fiz_lica->dokumentObObrazovaniiNomer = $this->obrDocNomer; $obrazovanie_fiz_lica->dokumentObObrazovaniiDataAsDate = DeprecatedDatePicker::toDatetime($this->obrDocData); list($organizaciya, $organizaciya_to_delete) = DirectoryHelper::getFromCombo(Organizaciya::className(), $this->obrOrgId, $this->obrOrgNazvanie, $obrazovanie_fiz_lica->organizaciya, ['etapyObrazovaniya' => '{vp}']); if ($organizaciya) { $organizaciya->save(false); } list($kvalifikaciya, $kvalifikaciya_to_delete) = DirectoryHelper::getFromCombo(Kvalifikaciya::className(), $this->obrKvalifikaciyaId, $this->obrKvalifikaciyaNazvanie, $obrazovanie_fiz_lica->kvalifikaciya); if ($kvalifikaciya) { $kvalifikaciya->save(false); } $obrazovanie_fiz_lica->link('organizaciyaRel', $organizaciya); $obrazovanie_fiz_lica->link('kvalifikaciyaRel', $kvalifikaciya); $obrazovanie_fiz_lica->save(false); if ($organizaciya_to_delete) { $organizaciya_to_delete->delete(); } if ($kvalifikaciya_to_delete) { $kvalifikaciya_to_delete->delete(); } return [$fiz_lico, $dolzhnost_fiz_lica_na_rabote]; }
public function getDolzhnostRel() { return $this->hasOne(Dolzhnost::className(), ['id' => 'dolzhnost'])->inverseOf('dolzhnostiFizLicNaRabotahRel'); }
public function getDolzhnostUchitelRel() { return $this->hasOne(Dolzhnost::className(), ['id' => 'dolzhnost_uchitel'])->inverseOf('znachenieIdentifikatoraDolzhnostiUchitelRel'); }