/**
  * rules para validar si el mes fue agrgado
  * @param int $mes
  */
 function com_mes($mes)
 {
     $existe = AccionCentralizadaDesbloqueoMes::find()->where(['id_ejecucion' => $this->id_ejecucion])->andWhere(['mes' => $this->mes])->One();
     if ($existe != null) {
         $this->addError($mes, "Error, Ya Se Agregó Este Mes");
     }
 }
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = AccionCentralizadaDesbloqueoMes::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $query->andFilterWhere(['id' => $this->id, 'id_ejecucion' => $this->id_ejecucion, 'mes' => $this->mes]);
     return $dataProvider;
 }
 /**
  * Creates a new AccionCentralizadaVariableEjecucion model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate($id, $id_localizacion)
 {
     $desbloqueo = "";
     $total_cargado = 0;
     $model = new AccionCentralizadaVariableEjecucion();
     $model_programacion = AccionCentralizadaVariableProgramacion::find()->where(['id_localizacion' => $id_localizacion])->All();
     $total = $model_programacion[0]['enero'] + $model_programacion[0]['febrero'] + $model_programacion[0]['marzo'] + $model_programacion[0]['abril'] + $model_programacion[0]['mayo'] + $model_programacion[0]['junio'] + $model_programacion[0]['julio'] + $model_programacion[0]['agosto'] + $model_programacion[0]['septiembre'] + $model_programacion[0]['octubre'] + $model_programacion[0]['noviembre'] + $model_programacion[0]['diciembre'];
     $model_inicial = AccionCentralizadaVariableEjecucion::find()->where(['id_programacion' => $model_programacion[0]['id']])->asArray()->One();
     $model->id_programacion = $model_programacion[0]['id'];
     $model->id_usuario = Yii::$app->user->getId();
     $hoy = getdate();
     $fecha = $hoy['year'] . "/" . $hoy['mon'] . "/" . $hoy['mday'] . " " . $hoy['hours'] . ":" . $hoy['minutes'] . ":" . $hoy['seconds'];
     $model->fecha = $fecha;
     $desbloqueo[0] = 0;
     //verificar campos bloqueado
     if ($model_inicial == NULL) {
         //primera vez que carga, deberia habilitarse solamente enero
         $desbloqueo[0] = 1;
     } else {
         //verificar mes pendiente con la fecha o ultima carga realizada y fecha
         if ($model_inicial['diciembre'] == NULL && ($hoy['mon'] == 12 && $hoy['mday'] >= 5 || $hoy['mon'] > 12)) {
             $desbloqueo[0] = 12;
         }
         if ($model_inicial['noviembre'] == NULL && ($hoy['mon'] == 11 && $hoy['mday'] >= 5 || $hoy['mon'] > 11)) {
             $desbloqueo[0] = 11;
         }
         if ($model_inicial['octubre'] == NULL && ($hoy['mon'] == 10 && $hoy['mday'] >= 5 || $hoy['mon'] > 10)) {
             $desbloqueo[0] = 10;
         }
         if ($model_inicial['septiembre'] == NULL && ($hoy['mon'] == 9 && $hoy['mday'] >= 5 || $hoy['mon'] > 9)) {
             $desbloqueo[0] = 9;
         }
         if ($model_inicial['agosto'] == NULL && ($hoy['mon'] == 8 && $hoy['mday'] >= 5 || $hoy['mon'] > 8)) {
             $desbloqueo[0] = 8;
         }
         if ($model_inicial['julio'] == NULL && ($hoy['mon'] == 7 && $hoy['mday'] >= 5 || $hoy['mon'] > 7)) {
             $desbloqueo[0] = 7;
         }
         if ($model_inicial['junio'] == NULL && ($hoy['mon'] == 6 && $hoy['mday'] >= 5 || $hoy['mon'] > 6)) {
             $desbloqueo[0] = 6;
         }
         if ($model_inicial['mayo'] == NULL && ($hoy['mon'] == 5 && $hoy['mday'] >= 5 || $hoy['mon'] > 5)) {
             $desbloqueo[0] = 5;
         }
         if ($model_inicial['abril'] == NULL && ($hoy['mon'] == 4 && $hoy['mday'] >= 5 || $hoy['mon'] > 4)) {
             $desbloqueo[0] = 4;
         }
         if ($model_inicial['marzo'] == NULL && ($hoy['mon'] == 3 && $hoy['mday'] >= 5 || $hoy['mon'] > 3)) {
             $desbloqueo[0] = 3;
         }
         if ($model_inicial['febrero'] == NULL && ($hoy['mon'] == 2 && $hoy['mday'] >= 5 || $hoy['mon'] > 2)) {
             $desbloqueo[0] = 2;
         }
         //verificamos si desde el backend se le dio permiso para habilitar campos
         $permisos_espe = AccionCentralizadaDesbloqueoMes::find()->where(['id_ejecucion' => $model_inicial['id']])->asArray()->All();
         if ($permisos_espe != "") {
             foreach ($permisos_espe as $key) {
                 // se cargan los meses que se le dio permiso de carga
                 $desbloqueo[$key['mes']] = '1';
             }
         }
         $model = $this->findModel($model_inicial['id']);
         $total_cargado = $model->enero + $model->febrero + $model->marzo + $model->abril + $model->mayo + $model->junio + $model->julio + $model->agosto + $model->septiembre + $model->octubre + $model->noviembre + $model->diciembre;
     }
     //fin else modelo con datos
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['create', 'id' => $id, 'id_localizacion' => $id_localizacion]);
     } else {
         return $this->render('create', ['model' => $model, 'model_programacion' => $model_programacion, 'total' => $total, 'desbloqueo' => $desbloqueo, 'total_cargado' => $total_cargado]);
     }
 }
 /**
  * Finds the AccionCentralizadaDesbloqueoMes model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return AccionCentralizadaDesbloqueoMes the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = AccionCentralizadaDesbloqueoMes::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }