public function actionCalendario()
 {
     $dataProvider = new CActiveDataProvider('Citas');
     $sumaIngresos = 0;
     if (isset($_POST['SeguimientoComercial'])) {
         $ncita = $_POST['SeguimientoComercial']['cita_id'];
         $lacita = Citas::model()->findByPk($ncita);
         $lacita->estado = $_POST['SeguimientoComercial']['tipo'];
         $lacita->fecha_accion = date("Y-m-d H:i:s");
         $lacita->omitir_seguimiento = $_POST['aplica'];
         $lacita->comentario_cierre = $_POST['SeguimientoComercial']['observaciones'];
         $lacita->usuario_estado_id = Yii::app()->user->usuarioId;
         $lacita->update();
         if ($_POST['aplica'] == "No") {
             $model = new SeguimientoComercial();
             if ($_POST['SeguimientoComercial']['fecha_accion'] != "") {
                 $model->fecha_accion = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['SeguimientoComercial']['fecha_accion']);
             } else {
                 $model->fecha_accion = date("Y-m-d");
             }
             $model->tema_id = $_POST['SeguimientoComercial']['tema_id'];
             $model->id_personal = Yii::app()->user->usuarioId;
             $model->responsable_id = $_POST['SeguimientoComercial']['responsable_id'];
             $model->observaciones = $_POST['SeguimientoComercial']['observaciones'];
             $model->cita_id = $_POST['SeguimientoComercial']['cita_id'];
             $model->fecha_registro = date("Y-m-d");
             $model->tipo = "Cita";
             //Fecha de registro
             $model->paciente_id = $lacita->paciente_id;
             $model->n_identificacion = $lacita->paciente->n_identificacion;
             $model->estado = "Abierto";
             $model->save();
         }
         //Actualizar estado de Detalle de Contrato
         if ($lacita->contrato_id != NULL and $lacita->estado == "Completada") {
             //Buscar Detalle
             $detalleContrato = ContratoDetalle::model()->find("contrato_id = {$lacita->contrato_id} and linea_servicio_id = {$lacita->linea_servicio_id} and (estado = 'Programada' or estado = 'Activo')");
             $elSaldoContrato = Contratos::model()->findByPk($lacita->contrato_id);
             //Saldo de Contrato
             $saldoContrato = $elSaldoContrato->saldo;
             //$paraActualizar = ContratoDetalle::model()->findByPk($detalle_contrato->id);
             if ($detalleContrato->cantidad > $detalleContrato->realizadas) {
                 if ($detalleContrato->cantidad > $detalleContrato->realizadas + 1) {
                     $detalleContrato->realizadas = $detalleContrato->realizadas + 1;
                     $detalleContrato->estado = "Activo";
                 } else {
                     $detalleContrato->realizadas = $detalleContrato->realizadas + 1;
                     $detalleContrato->estado = "Completada";
                 }
             }
             $detalleContrato->update();
             //Ingresar a Detalle de tratamientos realizados
             $contratoTratamientos = new ContratosTratamientoRealizados();
             $contratoTratamientos->contrato_id = $lacita->contrato_id;
             $contratoTratamientos->cita_id = $lacita->id;
             $contratoTratamientos->linea_servicio_id = $lacita->linea_servicio_id;
             $contratoTratamientos->sesion = $detalleContrato->realizadas;
             $contratoTratamientos->save();
             //Verificar si es una cuenta por cobrar
             $losIngresos = Ingresos::model()->findAll("contrato_id = {$lacita->contrato_id} and estado = 'Activo'");
             $sumaIngresos = 0;
             if ($losIngresos) {
                 foreach ($losIngresos as $los_ingresos) {
                     $sumaIngresos = $sumaIngresos + $los_ingresos->valor;
                 }
             }
             if (isset($lacita->contrato_id)) {
                 //Actualizar Saldo a favor de contrato
                 $los_contratos = Contratos::model()->findByPk($lacita->contrato_id);
                 $tratamiento_condescuentoTodos = 0;
                 $tratamiendo_sindescuentoTodos = 0;
                 $tratamientosRealizadosTodos = ContratosTratamientoRealizados::model()->findAll("contrato_id = {$los_contratos->id}");
                 foreach ($tratamientosRealizadosTodos as $tratamientos_realizadosTodos) {
                     $preciosTratamiento = ContratoDetalle::model()->find("contrato_id = {$tratamientos_realizadosTodos->contrato_id} and linea_servicio_id = {$tratamientos_realizadosTodos->linea_servicio_id}");
                     $tratamiento_condescuentoTodos = $tratamiento_condescuentoTodos + $preciosTratamiento->vu_desc;
                     $tratamiendo_sindescuentoTodos = $tratamiendo_sindescuentoTodos + $preciosTratamiento->vu;
                 }
                 //Saldo a favor
                 if ($los_contratos->saldo == 0) {
                     if ($los_contratos->estado == "Liquidado") {
                         $saldo_favorTodos = 0;
                     } else {
                         $saldo_favorTodos = $los_contratos->total - $los_contratos->saldo - $tratamiento_condescuentoTodos;
                     }
                 } else {
                     if ($los_contratos->saldo == $los_contratos->total) {
                         if ($los_contratos->descuento == "Si") {
                             $saldo_favorTodos = $tratamiento_condescuentoTodos * -1;
                         } else {
                             $saldo_favorTodos = $tratamiendo_sindescuentoTodos * -1;
                         }
                     } else {
                         if ($los_contratos->descuento == "Si") {
                             $saldo_favorTodos = $los_contratos->total - $los_contratos->saldo - $tratamiento_condescuentoTodos;
                         } else {
                             $saldo_favorTodos = $los_contratos->total - $los_contratos->saldo - $tratamiendo_sindescuentoTodos;
                         }
                     }
                 }
                 $los_contratos->saldo_favor = $saldo_favorTodos;
                 $los_contratos->update();
                 //Yii::app()->user->setFlash('warning',"Saldo a Favor Actualizado.");
                 //Fin de actualizar saldo a favor
             }
             //Suma de tratamientos realizados
             $saldo_tratamientos = 0;
             $tratamientosRealizados = ContratoDetalle::model()->findAll("contrato_id = {$lacita->contrato_id}");
             foreach ($tratamientosRealizados as $tratamientos_realizados) {
                 $saldo_tratamientos = $saldo_tratamientos + $tratamientos_realizados->vu * $tratamientos_realizados->realizadas;
             }
             if ($sumaIngresos < $saldo_tratamientos) {
                 //Buscar Paciente en Cuentas XC
                 $pacienteXC = CuentasXc::model()->find("paciente_id = {$lacita->paciente_id}");
                 if ($pacienteXC) {
                     $cuentasXC_detalle = CuentasXcDetalle::model()->find("contrato_id = {$lacita->contrato_id}");
                     if ($cuentasXC_detalle) {
                         if ($saldoContrato == 0) {
                             $cuentasXC_detalle->saldo = 0;
                         } else {
                             $cuentasXC_detalle->saldo = $saldo_tratamientos - $sumaIngresos;
                         }
                         $cuentasXC_detalle->update();
                         $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$lacita->paciente_id}");
                         $total_detalles = 0;
                         foreach ($sumadetalles as $suma_detalles) {
                             $total_detalles = $total_detalles + $suma_detalles->saldo;
                         }
                         $pacienteXC->saldo = $total_detalles;
                         $pacienteXC->update();
                     } else {
                         //Detalle de CxC
                         $cuentasXC_detalle = new CuentasXcDetalle();
                         $cuentasXC_detalle->cuentas_xc_id = $pacienteXC->id;
                         $cuentasXC_detalle->paciente_id = $lacita->paciente_id;
                         $cuentasXC_detalle->n_identificacion = $lacita->n_identificacion;
                         $cuentasXC_detalle->cita_id = $lacita->id;
                         $cuentasXC_detalle->contrato_id = $lacita->contrato_id;
                         //$cuentasXC_detalle->saldo = $detalleContrato->vu;
                         if ($saldoContrato == 0) {
                             $cuentasXC_detalle->saldo = 0;
                         } else {
                             $cuentasXC_detalle->saldo = $saldo_tratamientos - $sumaIngresos;
                         }
                         $cuentasXC_detalle->save();
                         $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$lacita->paciente_id}");
                         $total_detalles = 0;
                         foreach ($sumadetalles as $suma_detalles) {
                             $total_detalles = $total_detalles + $suma_detalles->saldo;
                         }
                         $pacienteXC->saldo = $total_detalles;
                         $pacienteXC->update();
                     }
                     //Actualizamos saldo de cuenta
                     // $sumadecuentas = 0;
                     // $lascuentasxc = CuentasXcDetalle::model()->findAll("paciente_id = $lacita->paciente_id");
                     // foreach ($lascuentasxc as $lascuentas_xc) {
                     // 	$sumadecuentas = $sumadecuentas + $lascuentas_xc->saldo;
                     // }
                     // if ($saldoContrato == 0)
                     // {
                     // 	$pacienteXC->saldo = 0;
                     // }
                     // else
                     // {
                     // 	$pacienteXC->saldo = $sumadecuentas;
                     // }
                     // $pacienteXC->update();
                 } else {
                     $cuentasXC = new CuentasXc();
                     $cuentasXC->paciente_id = $lacita->paciente_id;
                     $cuentasXC->n_identificacion = $lacita->n_identificacion;
                     if ($saldoContrato == 0) {
                         $cuentasXC->saldo = 0;
                     } else {
                         $cuentasXC->saldo = $saldo_tratamientos - $sumaIngresos;
                     }
                     $cuentasXC->save();
                     //Detalle de CxC
                     $cuentasXC_detalle = new CuentasXcDetalle();
                     $cuentasXC_detalle->cuentas_xc_id = $cuentasXC->id;
                     $cuentasXC_detalle->paciente_id = $lacita->paciente_id;
                     $cuentasXC_detalle->n_identificacion = $lacita->n_identificacion;
                     $cuentasXC_detalle->cita_id = $lacita->id;
                     $cuentasXC_detalle->contrato_id = $lacita->contrato_id;
                     if ($saldoContrato == 0) {
                         $cuentasXC_detalle->saldo = 0;
                     } else {
                         $cuentasXC_detalle->saldo = $saldo_tratamientos - $sumaIngresos;
                     }
                     $cuentasXC_detalle->save();
                 }
             }
             //Ver que sea cosmetologa
             $this->actionPagoCosmetologa($lacita->id, $sumaIngresos);
         } else {
             if ($lacita->estado == "Completada") {
                 //Tratamientos sin contrato
                 $pacienteXC = CuentasXc::model()->find("paciente_id = {$lacita->paciente_id}");
                 if ($pacienteXC) {
                     $cuentasXC_detalle = new CuentasXcDetalle();
                     $cuentasXC_detalle->cuentas_xc_id = $pacienteXC->id;
                     $cuentasXC_detalle->paciente_id = $lacita->paciente_id;
                     $cuentasXC_detalle->n_identificacion = $lacita->n_identificacion;
                     $cuentasXC_detalle->cita_id = $lacita->id;
                     $cuentasXC_detalle->linea_servicio_id = $lacita->linea_servicio_id;
                     $cuentasXC_detalle->saldo = $lacita->lineaServicio->precio;
                     $cuentasXC_detalle->save();
                     $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$lacita->paciente_id}");
                     $total_detalles = 0;
                     foreach ($sumadetalles as $suma_detalles) {
                         $total_detalles = $total_detalles + $suma_detalles->saldo;
                     }
                     $pacienteXC->saldo = $total_detalles;
                     $pacienteXC->update();
                 } else {
                     $cuentasXC = new CuentasXc();
                     $cuentasXC->paciente_id = $lacita->paciente_id;
                     $cuentasXC->n_identificacion = $lacita->n_identificacion;
                     $cuentasXC->saldo = $lacita->lineaServicio->precio;
                     $cuentasXC->save();
                     $cuentasXC_detalle = new CuentasXcDetalle();
                     $cuentasXC_detalle->cuentas_xc_id = $cuentasXC->id;
                     $cuentasXC_detalle->paciente_id = $lacita->paciente_id;
                     $cuentasXC_detalle->n_identificacion = $lacita->n_identificacion;
                     $cuentasXC_detalle->cita_id = $lacita->id;
                     $cuentasXC_detalle->linea_servicio_id = $lacita->linea_servicio_id;
                     $cuentasXC_detalle->saldo = $lacita->lineaServicio->precio;
                     $cuentasXC_detalle->save();
                 }
                 //Buscar Citas en Pago a Cosmetologas
                 //$hayCitasenPago = PagoCosmetologas::model()->findAll("cita_id = $lacita->id");
                 //if (!$hayCitasenPago) {
                 //Pago a Cosmetologa
                 $pagoCosmetologa = new PagoCosmetologas();
                 $pagoCosmetologa->n_identificacion = $lacita->paciente->n_identificacion;
                 $pagoCosmetologa->paciente_id = $lacita->paciente_id;
                 $pagoCosmetologa->linea_servicio_id = $lacita->linea_servicio_id;
                 $pagoCosmetologa->aprobo_id = Yii::app()->user->usuarioId;
                 $pagoCosmetologa->vendedor_id = $lacita->personal_id;
                 $pagoCosmetologa->cita_id = $lacita->id;
                 $pagoCosmetologa->valor_tratamiento = $lacita->lineaServicio->precio;
                 $pagoCosmetologa->misma_persona = "No";
                 $pagoCosmetologa->valor_comision = 0;
                 $pagoCosmetologa->porcentaje = 0;
                 $pagoCosmetologa->estado = "Activo";
                 $pagoCosmetologa->descarga = "No";
                 $pagoCosmetologa->fecha = date("Y-m-d H:i:s");
                 $pagoCosmetologa->fecha_sola = date("Y-m-d");
                 $pagoCosmetologa->sesion = "1/1";
                 $pagoCosmetologa->personal_id = $lacita->personal_id;
                 $pagoCosmetologa->saldo = $lacita->lineaServicio->precio * -1;
                 $pagoCosmetologa->total_pago = $lacita->lineaServicio->precio_pago;
                 $pagoCosmetologa->save();
                 //}
             } else {
                 if (($lacita->estado == "Fallida" or $lacita->estado == "Cancelada") and $lacita->contrato_id != NULL) {
                     //Buscar Detalle
                     $detalleContrato = ContratoDetalle::model()->find("contrato_id = {$lacita->contrato_id} and linea_servicio_id = {$lacita->linea_servicio_id} and (estado = 'Programada' or estado = 'Activo')");
                     //Saldo de Contrato
                     $detalleContrato->estado = "Activo";
                     $detalleContrato->update();
                 }
             }
         }
         //Mensajes
         if ($lacita->estado == "Completada" and $lacita->omitir_seguimiento == "Si") {
             Yii::app()->user->setFlash('success', "La cita se ha completado.");
         } else {
             if ($lacita->estado == "Completada") {
                 Yii::app()->user->setFlash('success', "La cita se ha completado y el seguimiento se ha guardado.");
             }
         }
         if ($lacita->estado == "Cancelada") {
             Yii::app()->user->setFlash('error', "La cita se ha cancelado y el seguimiento se ha guardado.");
         }
         if ($lacita->estado == "Vencida") {
             Yii::app()->user->setFlash('warning', "La cita se ha Vencido y el seguimiento se ha guardado.");
         }
         //Redireccionar
         if (isset($_GET['irCita'])) {
             $this->redirect(array('view', 'id' => $lacita->id));
         } else {
             $this->render('calendario', array('dataProvider' => $dataProvider));
         }
     } else {
         //Redireccionar
         if (isset($_GET['irCita'])) {
             $this->redirect(array('view', 'id' => $lacita->id));
         } else {
             $this->render('calendario', array('dataProvider' => $dataProvider));
         }
     }
 }
Ejemplo n.º 2
0
$Gnotas = HistorialNotasEnfermeria::model()->count("paciente_id = {$model->paciente_id}");
$Glaboratorio = HistorialLaboratorio::model()->count("paciente_id = {$model->paciente_id}");
$Gsistemas = HistorialRevisionSistema::model()->count("paciente_id = {$model->paciente_id}");
$Gtabla = HistorialTablaMedidas::model()->count("paciente_id = {$model->paciente_id}");
$Gplan = HistorialPlanTratamiento::model()->count("paciente_id = {$model->paciente_id}");
$GevolucionEnfermeria = HistorialEvaluacionEnfermeria::model()->count("paciente_id = {$model->paciente_id}");
$Gdiagnostico = HistorialDiagnostico::model()->count("paciente_id = {$model->paciente_id}");
$GplanMedicina = HistorialMedicinaBiologica::model()->count("paciente_id = {$model->paciente_id}");
$Gfotos = PacienteFotografias::model()->count("paciente_id = {$model->paciente_id}");
$Gresultados = PacienteResultadosLab::model()->count("paciente_id = {$model->paciente_id}");
?>

<?php 
$elSaldo = 0;
//Verificar si hay cuentas por cobrar
$DetalleCxC = CuentasXcDetalle::model()->find("cita_id = {$model->id} and contrato_id is NULL");
if ($DetalleCxC and $DetalleCxC->saldo > 0) {
    $elSaldo = $DetalleCxC->saldo;
    ?>
	<div class = "row">
		<div class="span12 text-center">
			<h4>Esta cita posee saldo pendiente de cancelar por un valor de: <span class="text-error">$ <?php 
    echo number_format($DetalleCxC->saldo, 2);
    ?>
</span> 
			<a href="index.php?r=ingresos/create&idPaciente=<?php 
    echo $model->paciente_id;
    ?>
&idCita=<?php 
    echo $model->id;
    ?>
Ejemplo n.º 3
0
$this->widget('zii.widgets.CDetailView', array('data' => $model, 'attributes' => array(array('name' => 'Nombre', 'value' => $model->paciente->nombreCompleto, ''), 'n_identificacion', array('name' => 'saldo', 'value' => '$ ' . number_format($model->saldo, 2)))));
?>

<div class="row">
	<div class="span2"></div>
	<div class="span8">
		<h2 class="text-center">Detalle de Cuentas por Cobrar</h2>
		<table class="table table-striped">
			<tr>
				<th>Contrato</th>
				<th>Linea de Servicio</th>
				<th>Saldo</th>
				<th></th>
			</tr>
			<?php 
$lasCuentas = CuentasXcDetalle::model()->findAll("cuentas_xc_id = {$model->id} and saldo > 0");
?>
			<?php 
foreach ($lasCuentas as $las_cuentas) {
    ?>
					<tr>
						<td><?php 
    echo $las_cuentas->contrato_id;
    ?>
</td>
						<?php 
    if ($las_cuentas->linea_servicio_id == null) {
        ?>
							<td><?php 
        echo "";
        ?>
Ejemplo n.º 4
0
    } else {
        echo $form->dropDownList($model, 'contrato_id', CHtml::listData(Contratos::model()->findAll("paciente_id = {$elPaciente} and estado = 'Activo' order by 'id'"), 'id', 'id'), array('class' => 'input-normal', 'empty' => '(Seleccionar)'));
        $losValoresVendedor = 0;
    }
    ?>
				<?php 
    echo $form->error($model, 'contrato_id');
    ?>
				<!-- Ver Contrato -->
				<!-- <a href="#verContrato" class="btn btn-small btn-info" role="button" data-toggle="modal"><i class="icon-cog icon-white"></i> Ver Contrato</a> -->

			</div>
		</div>
		<div class="span3">
			<?php 
    $cuentaXC = CuentasXcDetalle::model()->find("contrato_id = {$idContrato}");
    if ($cuentaXC) {
        echo "<label>Saldo Tratamientos Realizados:</label>";
        echo "<h5 class='text-error'>\$ " . number_format($cuentaXC->saldo, 2) . "</h5>";
    }
    ?>
		</div>
		<div class="span6">
			<div class="span5">
				<label>Total de Contrato</label>
				<?php 
    if (isset($_GET['idContrato'])) {
        ?>
						<div class="input-prepend">
  							<span class="add-on">$</span>
							<input type="text" id="elTotal" readOnly="readOnly" class="input-normal" value="<?php 
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Ingresos();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['Ingresos'])) {
         $elPaciente = Paciente::model()->findByPk($_GET['idPaciente']);
         $model->attributes = $_POST['Ingresos'];
         $model->forma_pago = $_POST['Ingresos']['forma_pago'];
         $model->descripcion = $_POST['Ingresos']['descripcion'];
         $model->vendedor_id = $_POST['Ingresos']['vendedor_id'];
         $model->paciente_id = $_GET['idPaciente'];
         $model->cita_id = $_POST["cita_id"];
         $model->contrato_id = $_POST['Ingresos']["contrato_id"];
         $model->n_identificacion = $elPaciente->n_identificacion;
         $model->fecha = date("Y-m-d H:i:s");
         $model->fecha_sola = date("Y-m-d");
         $model->estado = "Activo";
         if ($_POST['Ingresos']['personal_seguimiento'] == "") {
             //$model->personal_seguimiento = 26; antes de Monteria
             $model->personal_seguimiento = 1;
         } else {
             $model->personal_seguimiento = $_POST['Ingresos']['personal_seguimiento'];
         }
         $model->personal_id = Yii::app()->user->usuarioId;
         if ($model->save()) {
             if ($model->contrato_id == NULL) {
                 //Ingresos sin Contrato (Cajas de Pacientes)
                 $elPaciente->saldo = $elPaciente->saldo + $model->valor;
                 $elPaciente->update();
                 //Movimientos
                 $movimientosCaja = new PacienteMovimientos();
                 $movimientosCaja->paciente_id = $model->paciente_id;
                 $movimientosCaja->valor = $model->valor;
                 $movimientosCaja->tipo = "Ingreso";
                 $movimientosCaja->ingreso_id = $model->id;
                 $movimientosCaja->sub_tipo = "Ingreso sin Contrato";
                 $movimientosCaja->descripcion = "Ingreso a caja de paciente directamente en su perfil";
                 $movimientosCaja->usuario_id = Yii::app()->user->usuarioId;
                 $movimientosCaja->fecha = date("Y-m-d H:i:s");
                 $movimientosCaja->save();
             }
             if ($model->contrato_id != NULL) {
                 //Actualizar Saldo a favor de contrato
                 $los_contratos = Contratos::model()->findByPk($model->contrato_id);
                 $tratamiento_condescuentoTodos = 0;
                 $tratamiendo_sindescuentoTodos = 0;
                 $tratamientosRealizadosTodos = ContratosTratamientoRealizados::model()->findAll("contrato_id = {$los_contratos->id}");
                 foreach ($tratamientosRealizadosTodos as $tratamientos_realizadosTodos) {
                     $preciosTratamiento = ContratoDetalle::model()->find("contrato_id = {$tratamientos_realizadosTodos->contrato_id} and linea_servicio_id = {$tratamientos_realizadosTodos->linea_servicio_id}");
                     $tratamiento_condescuentoTodos = $tratamiento_condescuentoTodos + $preciosTratamiento->vu_desc;
                     $tratamiendo_sindescuentoTodos = $tratamiendo_sindescuentoTodos + $preciosTratamiento->vu;
                 }
                 //Saldo a favor
                 if ($los_contratos->saldo == 0) {
                     if ($los_contratos->estado == "Liquidado") {
                         $saldo_favorTodos = 0;
                     } else {
                         $saldo_favorTodos = $los_contratos->total - $model->saldo - $tratamiento_condescuentoTodos;
                     }
                 } else {
                     if ($los_contratos->saldo == $los_contratos->total) {
                         if ($los_contratos->descuento == "Si") {
                             $saldo_favorTodos = $tratamiento_condescuentoTodos * -1;
                         } else {
                             $saldo_favorTodos = $tratamiendo_sindescuentoTodos * -1;
                         }
                     } else {
                         if ($los_contratos->descuento == "Si") {
                             $saldo_favorTodos = $los_contratos->total - $los_contratos->saldo - $tratamiento_condescuentoTodos;
                         } else {
                             $saldo_favorTodos = $los_contratos->total - $los_contratos->saldo - $tratamiendo_sindescuentoTodos;
                         }
                     }
                 }
                 $los_contratos->saldo_favor = $saldo_favorTodos;
                 $los_contratos->update();
             }
             //Fin de actualizar saldo a favor
             if ($model->contrato_id != NULL) {
                 $elContrato = Contratos::model()->findByPk($model->contrato_id);
                 if (isset($_GET['tipo'])) {
                     $elContrato->observaciones_liquidacion = $model->descripcion;
                     $elContrato->estado = "Liquidado";
                 }
                 $elContrato->saldo = $elContrato->saldo - $model->valor;
                 $elContrato->save();
                 //Actualizar cuenta por cobrar
                 $lacuentaXC = CuentasXc::model()->find("paciente_id = {$elPaciente->id}");
                 if ($lacuentaXC) {
                     //Verificar si saldo es menor que cero
                     $nuevoSaldo = $lacuentaXC->saldo - $model->valor;
                     if ($nuevoSaldo <= 0) {
                         $lacuentaXC->saldo = 0;
                     } else {
                         $lacuentaXC->saldo = $nuevoSaldo;
                     }
                     //$lacuentaXC->update();
                     //Cuenta por cobrrar detalle
                     //$cuentaXC_detalle = CuentasXcDetalle::model()->find("paciente_id = $elPaciente->id");
                     $cuentaXC_detalle = CuentasXcDetalle::model()->find("contrato_id = {$model->contrato_id}");
                     if ($cuentaXC_detalle) {
                         $nuevoSaldoDetalle = $cuentaXC_detalle->saldo - $model->valor;
                         if ($nuevoSaldoDetalle <= 0) {
                             $cuentaXC_detalle->saldo = 0;
                         } else {
                             $cuentaXC_detalle->saldo = $nuevoSaldoDetalle;
                         }
                         $cuentaXC_detalle->update();
                         $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$elPaciente->id}");
                         $total_detalles = 0;
                         foreach ($sumadetalles as $suma_detalles) {
                             $total_detalles = $total_detalles + $suma_detalles->saldo;
                         }
                         $lacuentaXC->saldo = $total_detalles;
                         $lacuentaXC->update();
                     }
                 }
                 //Si saldo de contrato = 0
                 $saldoContrato = Contratos::model()->findByPk($model->contrato_id);
                 if ($saldoContrato) {
                     if ($saldoContrato->saldo > 0) {
                         //Actualizar pago a Asistenciales
                         $pagoAsistenciales = PagoCosmetologas::model()->findAll("contrato_id = {$model->contrato_id}");
                         if ($pagoAsistenciales) {
                             foreach ($pagoAsistenciales as $pago_asistenciales) {
                                 $pago_asistenciales->saldo = $pago_asistenciales->saldo + $model->valor;
                                 $pago_asistenciales->update();
                             }
                         }
                     } else {
                         if ($saldoContrato->saldo == 0 and $saldoContrato->estado = "Liquidado") {
                             $pagoAsistenciales = PagoCosmetologas::model()->findAll("contrato_id = {$model->contrato_id}");
                             if ($pagoAsistenciales) {
                                 foreach ($pagoAsistenciales as $pago_asistenciales) {
                                     $pago_asistenciales->saldo = 0;
                                     $pago_asistenciales->update();
                                 }
                             }
                         } else {
                             //Actualizar pago a Asistenciales
                             $sumaIngresos = 0;
                             $total_vu_descuento_suma = 0;
                             $detalleIngresos = Ingresos::model()->findAll("contrato_id = {$model->contrato_id} and estado = 'Activo'");
                             foreach ($detalleIngresos as $detalle_ingreso) {
                                 $sumaIngresos = $sumaIngresos + $detalle_ingreso->valor;
                             }
                             //Detalle de contratos
                             $datosContratoDetalle = ContratoDetalle::model()->findAll("contrato_id = {$model->contrato_id}");
                             foreach ($datosContratoDetalle as $datos_Contrato_Detalle) {
                                 $total_vu_descuento_suma = $total_vu_descuento_suma + $datos_Contrato_Detalle->vu_desc * $datos_Contrato_Detalle->realizadas;
                             }
                             $pagoAsistenciales = PagoCosmetologas::model()->findAll("contrato_id = {$model->contrato_id}");
                             if ($pagoAsistenciales) {
                                 foreach ($pagoAsistenciales as $pago_asistenciales) {
                                     $pago_asistenciales->saldo = $sumaIngresos - $total_vu_descuento_suma;
                                     $pago_asistenciales->update();
                                 }
                             }
                         }
                     }
                 }
             }
             //Verificar si es liquidacion de procedimiento sin contrato
             if ($model->cita_id != NULL) {
                 $lacuentaXC = CuentasXc::model()->find("paciente_id = {$elPaciente->id}");
                 if ($lacuentaXC) {
                     //Verificar si saldo es menor que cero
                     $nuevoSaldo = $lacuentaXC->saldo - $model->valor;
                     if ($nuevoSaldo <= 0) {
                         $lacuentaXC->saldo = 0;
                     } else {
                         $lacuentaXC->saldo = $nuevoSaldo;
                     }
                     //$lacuentaXC->update();
                     //Cuenta por cobrrar detalle
                     $cuentaXC_detalle = CuentasXcDetalle::model()->find("cita_id = {$model->cita_id}");
                     $nuevoSaldoDetalle = $cuentaXC_detalle->saldo - $model->valor;
                     if ($nuevoSaldoDetalle <= 0) {
                         $cuentaXC_detalle->saldo = 0;
                     } else {
                         $cuentaXC_detalle->saldo = $nuevoSaldoDetalle;
                     }
                     $cuentaXC_detalle->update();
                     $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$elPaciente->id}");
                     $total_detalles = 0;
                     foreach ($sumadetalles as $suma_detalles) {
                         $total_detalles = $total_detalles + $suma_detalles->saldo;
                     }
                     $lacuentaXC->saldo = $total_detalles;
                     $lacuentaXC->update();
                 }
                 $pagoAsistenciales = PagoCosmetologas::model()->findAll("cita_id = {$model->cita_id}");
                 if ($pagoAsistenciales) {
                     foreach ($pagoAsistenciales as $pago_asistenciales) {
                         $pago_asistenciales->saldo = 0;
                         $pago_asistenciales->update();
                     }
                 }
             }
             if ($model->forma_pago == "Cheque") {
                 //Los detalles de la Compra
                 for ($i = 0; $i <= $_POST['variable']; $i++) {
                     if (isset($_POST['numero_' . $i])) {
                         $detalleC = new IngresosCheques();
                         $detalleC->ingresos_id = $model->id;
                         $detalleC->numero = $_POST['numero_' . $i];
                         $detalleC->entidad = $_POST['entidad_' . $i];
                         $detalleC->valor = $_POST['valor_' . $i];
                         $detalleC->f_cobro = Yii::app()->dateformatter->format("yyyy-MM-dd", $_POST['fecha_cobro_' . $i]);
                         $detalleC->save();
                     }
                 }
             }
             if ($model->forma_pago == "Efectivo") {
                 $laCaja = CajaEfectivo::model()->findByPk($model->personal_id);
                 if ($laCaja === null) {
                     //Nueva Caja
                     $nuevaCaja = new CajaEfectivo();
                     $nuevaCaja->personal_id = $model->personal_id;
                     $nuevaCaja->total = $model->valor;
                     $nuevaCaja->save();
                     //Registrar Ingreso en el detalle de caja
                     $nuevaCajaDetalle = new CajaEfectivoDetalle();
                     $nuevaCajaDetalle->caja_efectivo_id = $nuevaCaja->personal_id;
                     $nuevaCajaDetalle->monto = $model->valor;
                     $nuevaCajaDetalle->tipo = "Ingreso";
                     $nuevaCajaDetalle->ingreso_id = $model->id;
                     $nuevaCajaDetalle->fecha = date("Y-m-d HH:ii:ss");
                     $nuevaCajaDetalle->save();
                 } else {
                     //Actualizar Caja
                     $laCaja->total = $laCaja->total + $model->valor;
                     $laCaja->save();
                     //Registrar Ingreso en el detalle de caja
                     $nuevaCajaDetalle = new CajaEfectivoDetalle();
                     $nuevaCajaDetalle->caja_efectivo_id = $model->personal_id;
                     $nuevaCajaDetalle->monto = $model->valor;
                     $nuevaCajaDetalle->tipo = "Ingreso";
                     $nuevaCajaDetalle->ingreso_id = $model->id;
                     $nuevaCajaDetalle->fecha = date("Y-m-d H:i:s");
                     $nuevaCajaDetalle->save();
                 }
             }
             if ($model->forma_pago == "Caja Personal") {
                 // $movimientoDeposito 				= new PacienteMovimientos;
                 // $movimientoDeposito->paciente_id	= $pacienteOrigen->id;
                 // $movimientoDeposito->valor 			= $model->valor;
                 // $movimientoDeposito->tipo			= "Egreso";
                 // $movimientoDeposito->sub_tipo 		= "Ingreso a Contrato";
                 // $movimientoDeposito->descripcion	= "Se realizo ingreso a contrato No. ".$model->contrato_id.".";
                 // $movimientoDeposito->ingreso_id 	= $model->id;
                 // $movimientoDeposito->contrato_id	= $model->contrato_id;
                 // $movimientoDeposito->usuario_id		= Yii::app()->user->usuarioId;
                 // $movimientoDeposito->fecha 			= date("Y-m-d H:i:s");
                 // $movimientoDeposito->save();
             }
             //Para envio de correos
             $this->actionEnvioCorreoIngreso($model->id);
             if ($model->contrato_id != NULL) {
                 $this->redirect(array('view', 'id' => $model->id));
             } else {
                 $this->redirect(array('view', 'id' => $model->id));
             }
             //$this->actionImprimirIngresos($model->id);
         }
     }
     $this->render('create', array('model' => $model));
 }
 /**
  * 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 CuentasXcDetalle the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = CuentasXcDetalle::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
 public function actionVincular()
 {
     if (isset($_GET['confirmado'])) {
         //Vincular Ingreso a Contrato
         $elContrato = Contratos::model()->findByPk($_GET['idContrato']);
         $elIngreso = Ingresos::model()->findByPk($_GET['idIngreso']);
         $elIngreso->contrato_id = $elContrato->id;
         $elIngreso->update();
         $elContrato->saldo = $elContrato->saldo - $elIngreso->valor;
         $elContrato->update();
         //Actualizar en todos lados
         if ($elIngreso->contrato_id != NULL) {
             // $elContrato = Contratos::model()->findByPk($elIngreso->contrato_id);
             // $elContrato->saldo = $elContrato->saldo - $elIngreso->valor;
             // $elContrato->save();
             //Actualizar cuenta por cobrar
             $lacuentaXC = CuentasXc::model()->find("paciente_id = {$elContrato->paciente_id}");
             if ($lacuentaXC) {
                 //Verificar si saldo es menor que cero
                 $nuevoSaldo = $lacuentaXC->saldo - $elIngreso->valor;
                 if ($nuevoSaldo <= 0) {
                     $lacuentaXC->saldo = 0;
                 } else {
                     $lacuentaXC->saldo = $nuevoSaldo;
                 }
                 //$lacuentaXC->update();
                 //Cuenta por cobrrar detalle
                 //$cuentaXC_detalle = CuentasXcDetalle::model()->find("paciente_id = $elPaciente->id");
                 $cuentaXC_detalle = CuentasXcDetalle::model()->find("contrato_id = {$elIngreso->contrato_id}");
                 if ($cuentaXC_detalle) {
                     $nuevoSaldoDetalle = $cuentaXC_detalle->saldo - $elIngreso->valor;
                     if ($nuevoSaldoDetalle <= 0) {
                         $cuentaXC_detalle->saldo = 0;
                     } else {
                         $cuentaXC_detalle->saldo = $nuevoSaldoDetalle;
                     }
                     $cuentaXC_detalle->update();
                     $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$elContrato->paciente_id}");
                     $total_detalles = 0;
                     foreach ($sumadetalles as $suma_detalles) {
                         $total_detalles = $total_detalles + $suma_detalles->saldo;
                     }
                     $lacuentaXC->saldo = $total_detalles;
                     $lacuentaXC->update();
                 }
             }
             //Si saldo de contrato = 0
             $saldoContrato = Contratos::model()->findByPk($elIngreso->contrato_id);
             if ($saldoContrato) {
                 if ($saldoContrato->saldo > 0) {
                     //Actualizar pago a Asistenciales
                     $pagoAsistenciales = PagoCosmetologas::model()->findAll("contrato_id = {$elIngreso->contrato_id}");
                     if ($pagoAsistenciales) {
                         foreach ($pagoAsistenciales as $pago_asistenciales) {
                             $pago_asistenciales->saldo = $pago_asistenciales->saldo + $elIngreso->valor;
                             $pago_asistenciales->update();
                         }
                     }
                 } else {
                     if ($saldoContrato->saldo == 0 and $saldoContrato->estado = "Liquidado") {
                         $pagoAsistenciales = PagoCosmetologas::model()->findAll("contrato_id = {$elIngreso->contrato_id}");
                         if ($pagoAsistenciales) {
                             foreach ($pagoAsistenciales as $pago_asistenciales) {
                                 $pago_asistenciales->saldo = 0;
                                 $pago_asistenciales->update();
                             }
                         }
                     } else {
                         //Actualizar pago a Asistenciales
                         $sumaIngresos = 0;
                         $total_vu_descuento_suma = 0;
                         $detalleIngresos = Ingresos::model()->findAll("contrato_id = {$elIngreso->contrato_id} and estado = 'Activo'");
                         foreach ($detalleIngresos as $detalle_ingreso) {
                             $sumaIngresos = $sumaIngresos + $detalle_ingreso->valor;
                         }
                         //Detalle de contratos
                         $datosContratoDetalle = ContratoDetalle::model()->findAll("contrato_id = {$elIngreso->contrato_id}");
                         foreach ($datosContratoDetalle as $datos_Contrato_Detalle) {
                             $total_vu_descuento_suma = $total_vu_descuento_suma + $datos_Contrato_Detalle->vu_desc * $datos_Contrato_Detalle->realizadas;
                         }
                         $pagoAsistenciales = PagoCosmetologas::model()->findAll("contrato_id = {$elIngreso->contrato_id}");
                         if ($pagoAsistenciales) {
                             foreach ($pagoAsistenciales as $pago_asistenciales) {
                                 $pago_asistenciales->saldo = $sumaIngresos - $total_vu_descuento_suma;
                                 $pago_asistenciales->update();
                             }
                         }
                     }
                 }
             }
         }
         Yii::app()->user->setFlash('success', "Se ha vinculado.");
         $this->redirect(array('view', 'id' => $_GET['idContrato']));
     } else {
         $this->render('vincular', array());
     }
 }