false, ], [['destaFile'], 'validateKoteg', ], ]; } public function attributeLabels(){ return [ "destaFile" => "Desta fájl" ]; } public function validateKoteg($attribute,$params){ if ( !$this->hasErrors()){ $content = file_get_contents($this->destaFile->tempName); $destaUzenet = GiroDETSTA::parse($content); $number = $destaUzenet->fej->csoportosUzenetSorszam->sorszam; $datum = $destaUzenet->fej->csoportosUzenetSorszam->osszeallitasDatuma; $koteg = Ugiro::find()->andWhere(['number' =>$number,'datum' => $datum ])->one(); $this->koteg = $koteg; if (!isset($koteg)){ $this->addError($attribute,"Nincs ilyen köteg! ( Datum: $datum, Sorszam: $number )"); } // else{ // if ( $koteg->status != Ugiro::$STATUS_SENT ){ // $idKoteg = $this->koteg->id_ugiro; // $this->addError($attribute,"A köteg detsta fájl-ja már fel van töltve !( Köteg azonosító: $idKoteg )"); // } // } } } // public function saveMessageDetsta($filename){ // $uzenetSzoveg = $this->readDetstaUzenet($filename); // $saver = new DetStaDBSave( // [ // 'giroDETSTA' => $this->detstatUzenet, // 'koteg' => $this->koteg, // 'idUser' =>\Yii::$app->user->id // ]); // $saver->run(); // } // public function readDetstaUzenet($filename){ // // $filename = \Yii::getAlias("@webroot") ."/" .$this->koteg->desta_path; // $content = file_get_contents($filename); // return GiroDETSTA::parse($content); // } public function upload() { if ($this->validate()) { $path = 'giro/valasz/' . $this->destaFile->baseName . '.' . $this->destaFile->extension; $this->destaFile->saveAs( $path ); set_time_limit ( 1200 ); // 20 perc $processor = new DetStatProcessor( [ 'koteg' => $this->koteg, 'path' => $path ] ); $processor->run (); Helper::flash("success", "Detsta fájl feldolgozva!"); return true; } else { return false; } } }