diff --git a/backend/controllers/TicketInstallmentRequestController.php b/backend/controllers/TicketInstallmentRequestController.php index 2712810..6352b33 100644 --- a/backend/controllers/TicketInstallmentRequestController.php +++ b/backend/controllers/TicketInstallmentRequestController.php @@ -112,7 +112,7 @@ class TicketInstallmentRequestController extends Controller { $model = new GiroKotegForm(); - if ($model->load(Yii::$app->request->post()) ) { + if ($model->load(Yii::$app->request->post()) && $model->validate() ) { $model->createKoteg(); return $this->redirect(['ugiro/view', 'id' => $model->koteg->id_ugiro]); } diff --git a/backend/models/GiroKotegForm.php b/backend/models/GiroKotegForm.php index 0e103e6..09fc287 100644 --- a/backend/models/GiroKotegForm.php +++ b/backend/models/GiroKotegForm.php @@ -31,13 +31,45 @@ class GiroKotegForm extends Model{ public $koteg; public $success; + public $timestamp_teljesites_datum; + public $teljesitesi_datum; + public function rules(){ return [ - [['action'], 'safe'] + [['action'], 'safe'] , + [[ 'teljesitesi_datum', ], 'required'], + [[ 'teljesitesi_datum', ], 'date', 'format' =>Yii::$app->formatter->dateFormat , 'timestampAttribute' => 'timestamp_teljesites_datum' ,'timestampAttributeFormat' => 'yyyy-MM-dd' ,'timeZone' => 'UTC' ], + ['teljesitesi_datum', "validateRequestCount"], + ['teljesitesi_datum', "validateMaxPlusDay"], + ]; } + public function validateRequestCount($a,$p){ + $this->readRequests(); + if ( count( $this->requests ) == 0 ){ + $this->addError("teljesitesi_datum", "Megbízások száma 0!" ); + } + } + + /* + * A teljesítési dátum max 8 nappal lehet a létrehozás dátumán túl + * */ + public function validateMaxPlusDay(){ + $date = new \DateTime('now'); + $date->add(new \DateInterval('P8D')); + $date->setTime(0,0,0); + + $td = new \DateTime(); + $td->setTimestamp( strtotime( $this->timestamp_teljesites_datum ) ); + $date->setTime(0,0,0); + + if ( $td > $date){ + $this->addError( "teljesitesi_datum", "Érvénytelen terhelési dátum. A terhelési dátum max +8 nap lehet"); + } + + } public function createKoteg(){ $this->readRequests(); @@ -98,6 +130,7 @@ class GiroKotegForm extends Model{ $this->koteg->id_user = \Yii::$app->user->id; $this->koteg->datum = date('Ymd'); + $this->koteg->terhelesi_datum = $this->teljesitesi_datum; $lastNumber = $this->loadLastNumber($this->koteg->datum); $nextNumber = $lastNumber+1; @@ -120,7 +153,8 @@ class GiroKotegForm extends Model{ } public function generateFileContent(){ - $this->content = GiroBeszed::createFileContent($this->koteg->number, $this->koteg->datum, $this->requests); + $terhelesi_datum =\Yii::$app->formatter->asDate($this->timestamp_teljesites_datum, 'php:Ymd'); + $this->content = GiroBeszed::createFileContent($this->koteg->number, $this->koteg->datum, $this->requests,$terhelesi_datum); } public function saveFile( ) { diff --git a/backend/views/ticket-installment-request/index_download_giro.php b/backend/views/ticket-installment-request/index_download_giro.php index 765cdff..fa3b01a 100644 --- a/backend/views/ticket-installment-request/index_download_giro.php +++ b/backend/views/ticket-installment-request/index_download_giro.php @@ -7,6 +7,8 @@ use yii\base\Widget; use kartik\widgets\ActiveForm; use backend\assets\PendingRequestAsset; use yii\helpers\Url; +use kartik\widgets\DateTimePicker; +use kartik\widgets\DatePicker; /* @var $this yii\web\View */ /* @var $searchModel backend\models\TicketInstallmentRequestSearch */ @@ -23,22 +25,33 @@ PendingRequestAsset::register($this);