69 lines
1.6 KiB
PHP
69 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace backend\models;
|
|
|
|
use yii\base\Model;
|
|
use yii\web\UploadedFile;
|
|
use common\components\giro\GiroDETSTA;
|
|
use common\models\Ugiro;
|
|
|
|
class DestaUploadForm extends Model
|
|
{
|
|
/**
|
|
* @var UploadedFile
|
|
*/
|
|
public $destaFile;
|
|
|
|
public $koteg;
|
|
|
|
public function rules()
|
|
{
|
|
return [
|
|
[['destaFile'], 'file', 'skipOnEmpty' => 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;
|
|
$idKoteg = $this->koteg->id_ugiro;
|
|
if (!isset($koteg)){
|
|
$this->addError($attribute,"Nincs ilyen köteg! ( Datum: $datum, Sorszam: $number )");
|
|
}else{
|
|
if ( $koteg->status != Ugiro::$STATUS_SENT ){
|
|
$this->addError($attribute,"A köteg detsta fájl-ja már fel van töltve !( Köteg azonosító: $idKoteg )");
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
public function upload()
|
|
{
|
|
if ($this->validate()) {
|
|
$path = 'giro/valasz/' . $this->destaFile->baseName . '.' . $this->destaFile->extension;
|
|
$this->destaFile->saveAs( $path );
|
|
$this->koteg->desta_path = $path;
|
|
$this->koteg->status = Ugiro::$STATUS_RECIEVED;
|
|
$this->koteg->save(false);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
}
|