/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = ComunicadosContactos::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(['ccontactos_id' => $this->ccontactos_id, 'dependenciaid' => $this->dependenciaid]); $query->andFilterWhere(['like', 'nombre', $this->nombre])->andFilterWhere(['like', 'cargo', $this->cargo])->andFilterWhere(['like', 'telefono', $this->telefono])->andFilterWhere(['like', 'correo', $this->correo]); return $dataProvider; }
public function beforeDelete() { ComunicadosContactos::deleteAll('dependenciaid =' . $this->dependencia_id); return parent::beforeDelete(); // TODO: Change the autogenerated stub }
/** * Updates an existing Comunicado model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); $modelsContactos = $model->comunicadosContactos; $vista = \common\models\Refactor::TipoComunicadobyVista($model->tipocomunicado_id); if ($model->load(Yii::$app->request->post())) { // Lista todos los contactos $oldIDs = ArrayHelper::map($modelsContactos, 'ccontactos_id', 'ccontactos_id'); $modelsContactos = Model::createMultipleccontacto(ComunicadosContactos::classname(), $modelsContactos); Model::loadMultiple($modelsContactos, Yii::$app->request->post()); $deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsContactos, 'ccontactos_id', 'ccontactos_id'))); // validate all models $valid = $model->validate(); // Debido a que el campo dependenciaid no se captura ( y es un campo obligatorio) $valid = Model::validateMultiple($modelsContactos, ['nombre', 'cargo', 'telefono', 'correo']) && $valid; // Modificando los contactos if ($valid) { $transaction = \Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { if (!empty($deletedIDs)) { ComunicadosContactos::deleteAll(['ccontactos_id' => $deletedIDs]); } foreach ($modelsContactos as $modelContacto) { $modelContacto->dependenciaid = $model->dependencia_id; if (!($flag = $modelContacto->save(false))) { $transaction->rollBack(); break; } } } if ($flag) { $transaction->commit(); return $this->redirect([\common\models\Refactor::TipoComunicadobyVista($model->tipocomunicado_id), 'id' => $model->tipocomunicado_id]); } } catch (Exception $e) { $transaction->rollBack(); } } } else { if ($vista == 'gobierno-federal') { return $this->render('update-gob', ['model' => $model, 'modelsContactos' => empty($modelsContactos) ? [new ComunicadosContactos()] : $modelsContactos]); } elseif ($vista == 'embajadas') { return $this->render('update-embajada', ['model' => $model, 'modelsContactos' => empty($modelsContactos) ? [new ComunicadosContactos()] : $modelsContactos]); } elseif ($vista == 'gdf') { return $this->render('update-gdf', ['model' => $model, 'modelsContactos' => empty($modelsContactos) ? [new ComunicadosContactos()] : $modelsContactos]); } elseif ($vista == 'estatales') { return $this->render('update-estatales', ['model' => $model, 'modelsContactos' => empty($modelsContactos) ? [new ComunicadosContactos()] : $modelsContactos]); } elseif ($vista == 'partidos-politicos') { return $this->render('update-ppoliticos', ['model' => $model, 'modelsContactos' => empty($modelsContactos) ? [new ComunicadosContactos()] : $modelsContactos]); } elseif ($vista == 'delegaciones') { return $this->render('update-delegacion', ['model' => $model, 'modelsContactos' => empty($modelsContactos) ? [new ComunicadosContactos()] : $modelsContactos]); } } }