예제 #1
0
 /**
  * Creates a new Infracciones model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Infracciones();
     if ($model->load(Yii::$app->request->post())) {
         $model->fecha = $model->hora;
         $ic = $model->concepto;
         if ($ic->es_multa) {
             $model->multa_unidad = $ic->multa_unidad;
             if ($ic->multa_reincidencia) {
                 $model->multa_fec_reinc = $this->calculaFecReinc($model->fecha, $ic);
                 $model->multa_monto = $this->calculaReinc($model, $ic, true);
             } else {
                 $model->multa_fec_reinc = $model->fecha;
                 $model->multa_monto = $ic->multa_precio;
             }
             $model->multa_pers_monto = $ic->multa_personas_precio;
             $model->multa_pers_total = $model->multa_pers_cant > 0 ? $model->multa_pers_cant * $ic->multa_personas_precio : 0;
             $model->multa_total = $model->multa_monto + $model->multa_pers_total;
             $model->fecha_verif = null;
             $model->verificado = true;
         } else {
             $model->multa_unidad = null;
             $model->multa_fec_reinc = $model->fecha;
             $model->multa_monto = 0;
             $model->multa_pers_monto = 0;
             $model->multa_pers_total = 0;
             $model->multa_total = 0;
             if ($ic->dias_verif <= 0) {
                 $model->fecha_verif = null;
                 $model->verificado = true;
             } else {
                 $model->fecha_verif = date('Y-m-d', strtotime('+' . $ic->dias_verif . ' days', strtotime($model->fecha)));
                 $model->verificado = false;
             }
         }
         $model->foto = UploadedFile::getInstance($model, 'foto');
         if ($model->validate() && $model->save()) {
             // evalua si se debe o no grabar el archivo
             if ($model->foto instanceof UploadedFile) {
                 $dirFotos = 'images/multas/';
                 $archOrig = $model->foto->baseName . '.' . $model->foto->extension;
                 $archResize = $model->id . '.' . $model->foto->extension;
                 $model->foto->saveAs($dirFotos . $archOrig);
                 $this->resizeFoto($dirFotos, $archOrig, $dirFotos, $archResize);
                 // sobreescribo el campo foto con el string de la foto toqueteada
                 $model->foto = $archResize;
                 $model->update();
                 //se elimina el archivo uploaded
                 unlink($dirFotos . $archOrig);
             }
             return $this->redirect(['view', 'id' => $model->id]);
         }
     }
     return $this->render('create', ['model' => $model]);
 }