/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Cargos::find();
     $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;
     }
     $query->andFilterWhere(['idcargo' => $this->idcargo, 'status' => $this->status]);
     $query->andFilterWhere(['like', 'descricao', $this->descricao]);
     return $dataProvider;
 }
 /**
  * Updates an existing ProcessoSeletivo model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $session = Yii::$app->session;
     if (!isset($session['sess_codusuario']) && !isset($session['sess_codcolaborador']) && !isset($session['sess_codunidade']) && !isset($session['sess_nomeusuario']) && !isset($session['sess_coddepartamento']) && !isset($session['sess_codcargo']) && !isset($session['sess_cargo']) && !isset($session['sess_setor']) && !isset($session['sess_unidade']) && !isset($session['sess_responsavelsetor'])) {
         return $this->redirect('http://portalsenac.am.senac.br');
     }
     //VERIFICA SE O COLABORADOR FAZ PARTE DO SETOR GRH E DO DEPARTAMENTO DE PROCESSO SELETIVO
     if ($session['sess_codunidade'] != 7 || $session['sess_coddepartamento'] != 82) {
         $this->layout = 'main-acesso-negado';
         return $this->render('/site/acesso_negado');
     } else {
         $model = $this->findModel($id);
     }
     //CARGOS
     $cargos = Cargos::find()->where(['status' => 1])->all();
     //Retrieve the stored checkboxes
     $model->permissions = \yii\helpers\ArrayHelper::getColumn($model->getCargosProcesso()->asArray()->all(), 'cargo_id');
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         Yii::$app->session->setFlash('success', '<strong>SUCESSO! </strong>O Processo Seletivo do edital <strong>' . $model->numeroEdital . '</strong> foi atualizado no site!</strong>');
         return $this->redirect(['index']);
     } else {
         return $this->render('update', ['model' => $model, 'cargos' => $cargos]);
     }
 }
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
//Route::get('/', 'WelcomeController@index');
Route::get('/', 'HomeController@index');
Route::get('prueba', function () {
    return view('prueba');
    $solo = [];
    dd($solo);
    $user = \App\Models\Cargos::all()->count('nombre');
    dd(json_encode($user));
    $json = ['robert' => 'de abreu'];
    $string = '

{
    "area": [
        {
            "area": "kothrud"
        },
        {
            "area": "katraj"
        }
    ]
}
 /**
  * Creates a new Curriculos model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $this->layout = 'main-curriculos';
     $model = new Curriculos();
     $curriculosEndereco = new CurriculosEndereco();
     $curriculosFormacao = new CurriculosFormacao();
     $modelsComplemento = [new CurriculosComplemento()];
     $modelsEmpregos = [new CurriculosEmpregos()];
     if (isset($_COOKIE['PHPSESSID']) && !empty($_COOKIE['PHPSESSID'])) {
         session_id($_COOKIE['PHPSESSID']);
     }
     session_start();
     //session numero de edital e do id do processo
     $session = Yii::$app->session;
     $model->edital = $session["numeroEdital"];
     $id = $session["id"];
     $model->data = date('Y-m-d H:i:s');
     //NÚMERO DE INSCRIÇÃO 'ANO CORRENTE + 000000 + ID DO CANDIDATO'
     $query_id = "SELECT max(id) as id FROM curriculos LIMIT 1";
     $last_id = Curriculos::findBySql($query_id)->all();
     foreach ($last_id as $value) {
         $incremento = $value['id'];
         $incremento++;
     }
     $model->numeroInscricao = date('Y') . '00000' . $incremento;
     $curriculosEndereco->curriculos_id = $incremento;
     $curriculosFormacao->curriculos_id = $incremento;
     //localizando somente os cargos que fazem parte do edital selecionado
     $cargos = Cargos::find()->innerJoinWith('cargosProcessos')->where(['processo_id' => $id])->AndWhere('cargo_id = idcargo')->all();
     //Caso não tenha puxado nenhum edital, será redirecionado para a página de processo seletivo
     if ($model->edital == NULL) {
         return $this->redirect('http://www.am.senac.br/trabsenac.php');
     }
     if ($model->load(Yii::$app->request->post()) && $curriculosEndereco->load(Yii::$app->request->post()) && $curriculosFormacao->load(Yii::$app->request->post()) && Model::validateMultiple([$model, $curriculosEndereco, $curriculosFormacao])) {
         //Calcular a idade do candidato
         $datetime1 = new \DateTime($model->datanascimento, new \DateTimeZone('UTC'));
         $datetime2 = new \DateTime();
         $diff = $datetime1->diff($datetime2);
         $model->idade = $diff->y;
         $model->save(false);
         // skip validation as model is already validated
         $curriculosEndereco->curriculos_id = $model->id;
         $curriculosFormacao->curriculos_id = $model->id;
         $curriculosEndereco->save(false);
         $curriculosFormacao->save(false);
         //ENVIA E-MAIL DA INSCRIÇÃO PARA O CANDIDATO
         Yii::$app->mailer->compose()->setFrom(['*****@*****.**' => 'Processo Seletivo - Senac AM'])->setTo($model->email)->setSubject('Inscrição para o Edital: ' . $model->edital)->setTextBody('Prezado Candidato, confirmamos o envio de seu currículo para concorrer a vaga de ' . $model->cargo . ' para o Edital ' . $model->edital . ' ')->setHtmlBody("Prezado Senhor(a), <strong>" . $model->nome . "</strong><br><br>" . "Recebemos a sua inscrição em nosso processo de seleção com sucesso para o Edital: <strong>" . $model->edital . " </strong>e pedimos que acompanhe em nosso site o resultado das próximas etapas.<br><br>" . "<strong><font color='red'><center>NÃO RESPONDA A ESSE E-MAIL!!!!</center></font></strong><br><br>" . "<strong>INFORMAÇÕES GERAIS</STRONG><br><br>" . "<strong>Número de Inscrição: </strong><font color='red'>" . $model->numeroInscricao . "</font><br><br>" . "<strong>Data do envio: </strong> " . $model->data . "<br>" . "<strong>Processo Seletivo: </strong> " . $model->edital . "<br>" . "<strong>Cargo: </strong> " . $model->cargo . "<br><br>")->send();
         //Inserir vários cursos complementares
         $modelsComplemento = Model::createMultiple(CurriculosComplemento::classname());
         Model::loadMultiple($modelsComplemento, Yii::$app->request->post());
         //Inserir vários emprgos anteriores
         $modelsEmpregos = Model::createMultiple(CurriculosEmpregos::classname());
         Model::loadMultiple($modelsEmpregos, Yii::$app->request->post());
         // validate all models
         $valid = $model->validate();
         $valid = Model::validateMultiple($modelsComplemento) && $valid;
         $valid2 = $model->validate();
         $valid_empregos = Model::validateMultiple($modelsEmpregos) && $valid2;
         if ($valid && $valid_empregos) {
             $transaction = \Yii::$app->db->beginTransaction();
             try {
                 if ($flag = $model->save(false)) {
                     foreach ($modelsComplemento as $modelComplemento) {
                         //cursos complementares
                         $modelComplemento->curriculos_id = $model->id;
                         if (!($flag = $modelComplemento->save(false))) {
                             $transaction->rollBack();
                             break;
                         }
                     }
                     foreach ($modelsEmpregos as $modelEmpregos) {
                         //empregos anteriores
                         $modelEmpregos->curriculos_id = $model->id;
                         if (!($flag = $modelEmpregos->save(false))) {
                             $transaction->rollBack();
                             break;
                         }
                     }
                 }
                 if ($flag) {
                     $transaction->commit();
                     return $this->redirect('http://www.am.senac.br/trabsenac_success.php');
                 }
             } catch (Exception $e) {
                 $transaction->rollBack();
             }
         }
         return $this->redirect('http://www.am.senac.br/trabsenac_success.php');
     } else {
         return $this->render('create', ['model' => $model, 'cargos' => $cargos, 'curriculosEndereco' => $curriculosEndereco, 'curriculosFormacao' => $curriculosFormacao, 'modelsComplemento' => empty($modelsComplemento) ? [new CurriculosComplemento()] : $modelsComplemento, 'modelsEmpregos' => empty($modelsEmpregos) ? [new CurriculosEmpregos()] : $modelsEmpregos]);
     }
 }
 /**
  * Finds the Cargos model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Cargos the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Cargos::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
//RESGATANDO AS INFORMAÇÕES DA ABERTURA DE VAGAS
$id = $model->id;
?>


<body>

  <div class="panel panel-primary">
  <!-- Default panel contents -->
  <div class="panel-heading">Cargos Disponíveis</div>

  <!-- List group -->
  <ul class="list-group">
    <?php 
$query_cargos = "SELECT descricao FROM cargos, cargos_processo WHERE processo_id = '" . $id . "' AND cargo_id = idcargo";
$cargo = Cargos::findBySql($query_cargos)->all();
foreach ($cargo as $cargos) {
    $Cargos = $cargos["descricao"];
    echo '<li class="list-group-item">' . $Cargos . '</li>';
}
?>
  </ul>
</div>

<div class="panel panel-primary">
  <!-- Default panel contents -->
  <div class="panel-heading">Documentos para Download</div>
  <div class="panel-body">
    <p><strong>LISTA DE EDITAIS</strong></p>
      <ul class="list-group">
      <li class='list-group-item'>
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getCargo()
 {
     return $this->hasOne(Cargos::className(), ['idcargo' => 'cargo_id']);
 }
 /**
  * Show the form for editing the specified resource.
  *
  * @param  int $id
  * @return Response
  */
 public function edit($id)
 {
     $usuario = User::find($id);
     $secretarias = Secretaria::all()->lists('descripcion', 'id');
     $subsecre = Sub_secretaria::all()->lists('descripcion', 'id');
     $perf = Perfiles::all()->lists('nombre', 'id');
     $cargos = Cargos::all()->lists('nombre', 'id');
     $coor = Coordinacion::all()->lists('nombre', 'id');
     return view('usuarios.editar_usuario', ['secre' => $secretarias, 'subsecre' => $subsecre, 'perfil' => $perf, 'cargos' => $cargos, 'coor' => $coor, 'usuario' => $usuario]);
 }