public function getPracticas() { // Busco si existen las practicas $criteria = new CDbCriteria(); $criteria->compare('idcarga', $this->idcarga); if ($this->idcarga > 0) { $models = Practicacarga::model('practicacarga' . str_replace('/', '', Parametro::model()->getParametro('PERIODOCARGA', 'CARGA')->valoralfanumerico))->findall($criteria); } else { $models = array(); } // Agrego los modelos que faltan para completar la cantidad // Maxima de prácticas $pr = count($models) + 1; for ($pr; $pr <= Carga::MAX_PRACTICAS_BOLETA; $pr++) { $model_practica_carga = new Practicacarga(); array_push($models, $model_practica_carga); } return $models; }
public function grabartransaccion($nrotransac, $header, $codigocarga, $model) { $tran = Yii::app()->db->beginTransaction(); // cargar los campos en el modelo de carga $model->distrito = 1; // Por ahora distrito IX $model->idcargatipo = 1; // Facturación $model->periodofacturacion = "03/2015"; // Cable $model->idpacientetipo = 1; // ambulatorio // ver que fecha hay que grabar, esto es para probar // la fecha del header tiene formato mysql, // hay que pasarlo a formato argentino porque el // modelo carga lo valida de esta forma dd/mm/yyyy $model->fechaprestacion = $this->fecha_arg($header->prescripcion); $model->nroafiliado = $header->afiliado; try { // grabar carga if ($model->save()) { // grabar practicas foreach ($codigocarga as $codigo) { if ($codigo > 0) { $model_practica = new Practicacarga(); // buscar el registro practica segun el codigo if ($registropractica = Practica::model()->findByAttributes(array('codigo' => $codigo))) { $idpractica = $registropractica->idpractica; } else { throw new Exception("Prácticas inexistentes. Transacción no capturada"); } $model_practica->idpractica = $idpractica; $model_practica->idcarga = $model->idcarga; $model_practica->precio = 0; // Grabo 0 por ahora if (!$model_practica->save()) { throw new Exception(CHtml::errorSummary($model_practica)); } } } $tran->commit(); } else { throw new Exception(CHtml::errorSummary($model)); } } catch (Exception $e) { $tran->rollback(); throw new Exception($e->getMessage()); } }