Ejemplo n.º 1
0
 public function actionCreate()
 {
     $model = new Car();
     $file = new File();
     $model->create_at = date('Y-m-d');
     if (isset($_POST['Car']) && isset($_POST['File'])) {
         $model->attributes = $_POST['Car'];
         $file->attributes = $_POST['File'];
         $model->validate();
         if ($model->getErrors() == null) {
             $model->date_registration = Tools::dateToSave($model->date_registration);
             $file->file = CUploadedFile::getInstance($file, 'file');
             if ($file->file != null) {
                 $filename = time() . '.' . $file->file->getExtensionName();
                 $file->file->saveAs(Yii::app()->params['pathUpload'] . $filename);
                 $model->pic = $filename;
             } else {
                 $model->pic = 'noimage.jpg';
             }
             $model->save();
             $this->redirect(array('view', 'id' => $model->car_id));
         }
     }
     $this->render('create', array('model' => $model, 'file' => $file));
 }
Ejemplo n.º 2
0
 /**
  * Update car from self list
  * @param $id
  * @return Response
  */
 public function selfUpdate($id)
 {
     $user = Auth::user();
     $car = $user->cars()->find($id);
     if (!$car) {
         return $this->respondNotFound('Car not found');
     }
     if (Input::get('number') != $car->number) {
         $validator = Car::validate(Input::all());
         if ($validator->fails()) {
             return $this->respondInsufficientPrivileges($validator->messages()->all());
         }
     }
     $number = Input::get('number');
     if ($number[2] == 'Z' && $number[3] == 'Z') {
         return $this->respondInsufficientPrivileges('Wrong number. There is no ZZ');
     }
     $region = substr($number, 0, 2);
     if (is_numeric($number[0]) && (int) Input::get('vehicle_type') != 3) {
         switch ((int) $region) {
             case $region == 0:
                 return $this->respondInsufficientPrivileges('Недопустимый код региона');
             case $region >= 73 && $region <= 84:
                 return $this->respondInsufficientPrivileges('Недопустимый код региона');
             case $region >= 86 && $region <= 89:
                 return $this->respondInsufficientPrivileges('Недопустимый код региона');
             case $region >= 91 && $region <= 98:
                 return $this->respondInsufficientPrivileges('Недопустимый код региона');
         }
     }
     if (is_numeric($number[0]) && strlen($number) > 6) {
         $zerosCount = 3;
         // amount of zeros
         // check if all numbers are zeros
         $zeros = array_diff(array_slice(str_split($number), 4), array_fill(0, $zerosCount, 0));
         if (empty($zeros)) {
             return $this->respondInsufficientPrivileges("Номер не может быть с {$zerosCount} нулями");
         }
     } elseif (strlen($number) > 6) {
         $zerosCount = 6;
         $zeros = array_diff(array_slice(str_split($number), 1), array_fill(0, $zerosCount, 0));
         if (empty($zeros)) {
             return $this->respondInsufficientPrivileges("Номер не может быть с {$zerosCount} нулями");
         }
     }
     // if seria in number are in AA, PA, РМ, YP. Which is not allowed.
     if (Car::checkSeria($number)) {
         return $this->respondInsufficientPrivileges('Номера с сериями АА, РА, РМ и YP добавляются в профиль пользователя службой поддержки только при подтверждении факта владения или пользования данной машиной. Обратитесь в техподдержку.');
     }
     $car->fill(Input::all());
     if ($car->save()) {
         $imgs = Image::findMany(Input::get('img'))->map(function ($image) use($car) {
             if (!$car->images()->find($image->id)) {
                 $car->images()->save($image);
                 return $image->id;
             }
             if ($car->images()->find($image->id)) {
                 return $image->id;
             }
         });
         if (!$imgs->isEmpty()) {
             $car->images()->whereNotIn('id', $imgs->toArray())->delete();
         } else {
             $car->images()->delete();
         }
         return $this->respond($this->collectionTransformer->transformCar($car));
     }
     return $this->respondServerError();
 }