/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return Cargamasiva the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Cargamasiva::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function actioncargamasiva() { $model = new Cargamasiva(); $construir_archivo = array(); $todosErrores = array(); if (isset($_POST['Cargamasiva'])) { $model->attributes = $_POST['Cargamasiva']; $construir_archivo = array(); if ($model->validate()) { $model->archivo = CUploadedFile::getInstance($model, 'archivo'); $model->archivo->saveAs(Yii::app()->basePath . '/../assets/archivo.' . $model->archivo->extensionName); $fila = -1; $usuario_procesados = 0; $usuario_noprocesados = 0; $file = file(Yii::app()->basePath . '/../assets/archivo.' . $model->archivo->extensionName); $lineas = count($file); $lineas--; //$si = true; if (($gestor = fopen(Yii::app()->basePath . '/../assets/archivo.' . $model->archivo->extensionName, "r")) !== FALSE) { while (($datos = fgetcsv($gestor, 1000, ";")) !== FALSE) { $numero = count($datos); if ($numero != 0) { if ($fila != -1) { $transaction = Yii::app()->db->beginTransaction(); try { $ente = new EntesOrganos(); $usuario = new Usuarios('cargamasiva'); $ente->codigo_onapre = utf8_encode(trim($datos[0])) != '' ? utf8_encode(trim($datos[0])) : ''; $ente->nombre = utf8_encode(trim($datos[1])); $ente->tipo = "O"; $ente->creado_por = "snc"; $ente->rif = utf8_encode(trim($datos[2])); if ($ente->save()) { $usuario->usuario = strtolower(utf8_encode(trim($datos[5]))); $usuario->correo = strtolower(utf8_encode(trim($datos[5]))); $usuario->nombre = strtoupper(utf8_encode(trim($datos[3]))); $usuario->cedula = utf8_encode(trim($datos[4])); $usuario->cargo = utf8_encode(trim($datos[6])) != '' ? strtoupper(utf8_encode(trim($datos[6]))) : ''; $usuario->contrasena = md5(rand(0, 100)); $usuario->creado_el = date("Y-m-d"); $usuario->llave_activacion = md5(rand(0, 100)); $usuario->actualizado_el = date("Y-m-d"); $usuario->rol = 'organo'; $usuario->ente_organo_id = $ente->ente_organo_id; if ($usuario->save()) { $transaction->commit(); $usuario_procesados++; //$this->enviarCorreoRecuperacion($usuario->usuario, '1234567'); Yii::app()->user->setFlash('success', "{$usuario_procesados} usuario(s) procesado(s) del archivo con número de lineas {$lineas} !"); } else { /*print_r(Chtml::errorSummary($usuario)); Yii::app()->end();*/ throw new Exception(Chtml::errorSummary($usuario), 1); //$transaction->rollBack(); //Yii::app()->user->setFlash('error', "Ocurrio un error al momento de crear el usuario!"); } } else { //print_r(Chtml::errorSummary($ente)); // Yii::app()->end(); throw new Exception(Chtml::errorSummary($ente), 1); //$transaction->rollBack(); //Yii::app()->user->setFlash('error', "Ocurrio un error al momento de crear el organo!"); } } catch (Exception $e) { $transaction->rollBack(); $usuario_noprocesados++; $construir_archivo[$fila] = $file[$fila + 1]; $todosErrores[$fila] = $e->getMessage(); $si = false; //Yii::app()->user->setFlash('error', $e->getMessage()); Yii::app()->user->setFlash('error', "{$usuario_noprocesados} usuario(s) NO procesado(s) del archivo con número de lineas {$lineas}"); } } } $fila++; } fclose($gestor); } //$this->redirect(array('planificacion/descargar','id'=>$model->id, 'title'=>$model->title)); //$this->redirect(array('planificacion/errores')); //print_r($construir_archivo); //$this->redirect('planificacion/descargar'); //$file = 'assets/archivo.csv'; //echo $file; //return Yii::app()->getRequest()->sendFile('archivo.csv',@file_get_contents($file),'application/vnd.ms-excel'); } } $this->render('cargamasiva', array('model' => $model, 'errores' => $construir_archivo, 'todosErrores' => $todosErrores)); }