public function loadModel($id)
 {
     $model = Transacpractica::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, Yii::t('app', 'The requested page does not exist.'));
     }
     return $model;
 }
Пример #2
0
 public function Procesatransac($filetransac, $parametrolongitud)
 {
     $largolineas = array();
     $headers = array();
     // arreglo clave=>valor es = a idtransacheader=>transac
     $f = 0;
     // cantidad de filas (practicas) que se leen
     // handler para leer archivo txt
     $fileHandler = fopen($filetransac, 'r');
     // lazo de lectura de linea por linea del archivo
     while ($linea = fgets($fileHandler)) {
         $f++;
         $nrotransaccion = trim(substr($linea, 77, 15));
         // validar largo del registro   solo
         // para la primera fila
         if ($f == 1 && strlen($linea) != $parametrolongitud) {
             throw new Exception("Error en la longitud del registro");
         }
         // busco si ya se grabó la cabecera de la transaccion
         // array_search devuelve el identificador de la transaccion si la encuentra, o false si no la encuentra
         $idheader = array_search($nrotransaccion, $headers);
         if (!$idheader) {
             // si no se grabo la cabecera  para esa transaccion, entonces se graba
             $model = new Transacheader();
             $model->mutual = trim(substr($linea, 0, 5));
             // se podria parametrizar en una tabla
             $model->afiliado = trim(substr($linea, 5, 15));
             $model->digito = trim(substr($linea, 20, 2));
             $model->relacion = trim(substr($linea, 22, 2));
             $model->matricula = trim(substr($linea, 24, 15));
             $model->nrobono = trim(substr($linea, 39, 16));
             $model->prescripcion = trim(substr($linea, 61, 8));
             $model->presentacion = trim(substr($linea, 69, 8));
             $model->transac = $nrotransac = $nrotransaccion;
             $model->afiliva = trim(substr($linea, 92, 1));
             $model->plangaleno = trim(substr($linea, 93, 10));
             $model->realizacion = trim(substr($linea, 103, 8));
             $model->idl = trim(substr($linea, 111, 5));
             try {
                 $model->save();
                 $idheader = $model->idtransacheader;
                 // identificador  de la transaccion
                 $headers[$idheader] = $nrotransaccion;
             } catch (Exception $e) {
                 throw new Exception("Error en la grabación de la cabecera");
             }
         } else {
             $nrotransac = $nrotransaccion;
         }
         if ($nrotransaccion == $nrotransac) {
             // mientras sea el mismo numero de transac, graba las practicas
             $modelpractica = new Transacpractica();
             $modelpractica->codigo = trim(substr($linea, 55, 6));
             $modelpractica->idtransacheader = $idheader;
             try {
                 $modelpractica->save();
             } catch (Exception $e) {
                 throw new Exception("Error en la grabación de las practicas");
             }
         }
     }
     fclose($fileHandler);
     $this->cantpracticastransac = $f;
     // asignamos la cantidad de practicas
     $this->canttransac = count($headers);
     // asignamos la cantidad de transacciones
     return true;
 }