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));
         }
     }
 }
 /**
  * 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));
 }
Exemplo n.º 3
0
?>
	</div>
	<div class="span1"></div>
</div>

<br>
<br>
<br>
<!-- Detalle de sesiones -->


<?php 
//Variables de calculo de tratamientos
$tratamiendo_sindescuento = 0;
$tratamiento_condescuento = 0;
$tratamientosRealizados = ContratosTratamientoRealizados::model()->findAll("contrato_id = {$model->id}");
if ($tratamientosRealizados) {
    ?>

<h4 class="text-center">Detalle de Tratamientos Realizados</h4>
<table class="table table-striped">
	<tr>
		<th><small>Sesión</small></th>
		<th><small>Linea de Servicio</small></th>
		<th><small>Fecha y Hora</small></th>
		<th><small>Valor con Descuento</small></th>
		<th><small>Valor sin Descuento</small></th>
		<th><small>Realizado por</small></th>
	</tr>
	<?php 
    foreach ($tratamientosRealizados as $tratamientos_realizados) {
 public function actionLiquidar()
 {
     $idContrato = $_GET['id'];
     $datosContrato = Contratos::model()->findByPk($idContrato);
     $datosContrato->comentario_liquidado = $_POST['Contratos']['comentario_liquidado'];
     if ($datosContrato->comentario_liquidado == "") {
         Yii::app()->user->setFlash('error', "No se liquido el contrato. No se coloco comentario de liquidación.");
         $this->redirect(array('view', 'id' => $datosContrato->id));
     }
     //Detalle de contrato
     $total_tratamiento = 0;
     $total_tratamientos_realizados = 0;
     $total_vu = 0;
     $total_vu_descuento = 0;
     $total_vu_suma = 0;
     $total_vu_descuento_suma = 0;
     $sumaIngresos = 0;
     $total_cxc = 0;
     $total_nota_credito = 0;
     $saldo_favor = 0;
     $tipo_accion = "";
     $tratamiendo_sindescuento = 0;
     $tratamiento_condescuento = 0;
     //Saldo a Favor*****************
     $tratamientosRealizados = ContratosTratamientoRealizados::model()->findAll("contrato_id = {$datosContrato->id}");
     if ($tratamientosRealizados) {
         foreach ($tratamientosRealizados as $tratamientos_realizados) {
             $preciosTratamiento = ContratoDetalle::model()->find("contrato_id = {$tratamientos_realizados->contrato_id} and linea_servicio_id = {$tratamientos_realizados->linea_servicio_id}");
             $tratamiendo_sindescuento = $tratamiendo_sindescuento + $preciosTratamiento->vu;
             $tratamiento_condescuento = $tratamiento_condescuento + $preciosTratamiento->vu_desc;
         }
     }
     if ($datosContrato->saldo == $datosContrato->total) {
         if ($datosContrato->descuento == "Si") {
             $saldo_favor = $tratamiento_condescuento * -1;
         } else {
             $saldo_favor = $tratamiendo_sindescuento * -1;
         }
     } else {
         if ($datosContrato->descuento == "Si") {
             $saldo_favor = $datosContrato->total - $datosContrato->saldo - $tratamiento_condescuento;
         } else {
             $saldo_favor = $datosContrato->total - $datosContrato->saldo - $tratamiendo_sindescuento;
         }
     }
     //$saldo_favor = ($datosContrato->total - $datosContrato->saldo)-$tratamiento_condescuento;
     //Suma de ingresos
     $detalleIngresos = Ingresos::model()->findAll("contrato_id = {$idContrato} and estado = 'Activo'");
     if ($detalleIngresos) {
         foreach ($detalleIngresos as $detalle_ingreso) {
             $sumaIngresos = $sumaIngresos + $detalle_ingreso->valor;
         }
     }
     $datosContratoDetalle = ContratoDetalle::model()->findAll("contrato_id = {$idContrato}");
     foreach ($datosContratoDetalle as $datos_Contrato_Detalle) {
         $total_tratamiento = $total_tratamiento + $datos_Contrato_Detalle->cantidad;
         $total_tratamientos_realizados = $total_tratamientos_realizados + $datos_Contrato_Detalle->realizadas;
         $total_vu = $total_vu + $datos_Contrato_Detalle->vu;
         $total_vu_descuento = $total_vu_descuento + $datos_Contrato_Detalle->vu_desc;
         $total_vu_suma = $total_vu_suma + $datos_Contrato_Detalle->vu * $datos_Contrato_Detalle->realizadas;
         $total_vu_descuento_suma = $total_vu_descuento_suma + $datos_Contrato_Detalle->vu_desc * $datos_Contrato_Detalle->realizadas;
     }
     //$saldo_favor = $total_vu_suma;
     //se esta liquidando un contrato inclumplido = Valores sin descuento
     if ($datosContrato->descuento == "No") {
         if ($datosContrato->saldo == 0) {
             //$saldo_favor = $sumaIngresos - $total_vu_descuento;
             $saldo_favor = $sumaIngresos - $total_vu_suma;
         }
         if ($total_tratamientos_realizados <= $total_tratamiento) {
             $saldo_favor = $sumaIngresos - $total_vu_suma;
         }
     }
     //---->>>***** Aca es donde se depositara a la caja personal
     if ($saldo_favor > 0) {
         //Ingreso a caja Personal
         $PacienteCaja = Paciente::model()->findByPk($datosContrato->paciente_id);
         $PacienteCaja->saldo = $PacienteCaja->saldo + $saldo_favor;
         if ($PacienteCaja->update()) {
             $movimientosCaja = new PacienteMovimientos();
             $movimientosCaja->paciente_id = $PacienteCaja->id;
             //$movimientosCaja->valor = $PacienteCaja->saldo;
             $movimientosCaja->valor = $saldo_favor;
             $movimientosCaja->tipo = "Ingreso";
             $movimientosCaja->sub_tipo = "Nota de Crédito";
             $movimientosCaja->contrato_id = $datosContrato->id;
             $movimientosCaja->descripcion = "Ingreso a caja de paciente con nota de crédito por liquidación de contrato N°. " . $datosContrato->id;
             $movimientosCaja->usuario_id = Yii::app()->user->usuarioId;
             $movimientosCaja->fecha = date("Y-m-d H:i:s");
             //$movimientosCaja->save();
             if ($movimientosCaja->save()) {
                 $notadeCredito = new NotaCredito();
                 $notadeCredito->paciente_id = $datosContrato->paciente_id;
                 $notadeCredito->n_identificacion = $datosContrato->n_identificacion;
                 $notadeCredito->contrato_id = $datosContrato->id;
                 $notadeCredito->valor = $saldo_favor;
                 $notadeCredito->fecha = date("Y-m-d");
                 $notadeCredito->fecha_hora = date("Y-m-d H:i:s");
                 $notadeCredito->personal_id = Yii::app()->user->usuarioId;
                 $notadeCredito->save();
                 //Buscar Centro de Costo
                 $centrodecosto = CentroCosto::model()->find("nombre = 'Nota Credito'");
                 $nuevoIngreso = new Ingresos();
                 $nuevoIngreso->paciente_id = $datosContrato->paciente_id;
                 $nuevoIngreso->n_identificacion = $datosContrato->n_identificacion;
                 //$nuevoIngreso->contrato_id = $datosContrato->id;
                 $nuevoIngreso->valor = $saldo_favor;
                 $nuevoIngreso->descripcion = "Ingreso a caja de paciente por Nota de Crédito N° " . $notadeCredito->id;
                 $nuevoIngreso->centro_costo_id = $centrodecosto->id;
                 $nuevoIngreso->forma_pago = "Nota de Crédito";
                 $nuevoIngreso->fecha_sola = date("Y-m-d");
                 $nuevoIngreso->fecha = date("Y-m-d H:i:s");
                 $nuevoIngreso->personal_id = Yii::app()->user->usuarioId;
                 $nuevoIngreso->estado = "Activo";
                 $nuevoIngreso->vendedor_id = Yii::app()->user->usuarioId;
                 $nuevoIngreso->personal_seguimiento = Yii::app()->user->usuarioId;
                 $nuevoIngreso->save();
                 $datosContrato->estado = "Liquidado";
                 $datosContrato->update();
                 foreach ($datosContratoDetalle as $datos_contrato_detalle) {
                     $datos_contrato_detalle->estado = "Liquidado";
                     $datos_contrato_detalle->update();
                 }
                 $this->redirect(array('view', 'id' => $datosContrato->id));
             }
         }
     }
     if ($saldo_favor < 0) {
         if ($datosContrato->saldo == 0) {
             // $datosContrato->estado = "Liquidado";
             // $datosContrato->update();
             // foreach ($datosContratoDetalle as $datos_contrato_detalle)
             // {
             // 		$datos_contrato_detalle->estado = "Liquidado";
             // 		$datos_contrato_detalle->update();
             // }
             // $this->redirect(array('view','id'=>$datosContrato->id));
         }
         //Comentado
         // if ($datosContrato->saldo > 0) //No ha pagado contrato, los tratamientos van sin descuento
         // {
         // 	$datosContrato->estado = "Liquidado";
         // 	$datosContrato->update();
         // 	foreach ($datosContratoDetalle as $datos_contrato_detalle)
         // 	{
         // 			$datos_contrato_detalle->estado = "Liquidado";
         // 			$datos_contrato_detalle->update();
         // 	}
         // 	$this->redirect(array('view','id'=>$datosContrato->id));
         // }
         //Buscar si hay cuenta por cobrar madre
         $laCuenta = CuentasXc::model()->find("paciente_id = {$datosContrato->paciente_id}");
         if ($laCuenta) {
             $laCuentaExiste = CuentasXcDetalle::model()->find("contrato_id = {$datosContrato->id}");
             if ($laCuentaExiste) {
                 $laCuentaExiste->saldo = $saldo_favor * -1;
                 $laCuentaExiste->update();
                 $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$datosContrato->paciente_id}");
                 $total_detalles = 0;
                 foreach ($sumadetalles as $suma_detalles) {
                     $total_detalles = $total_detalles + $suma_detalles->saldo;
                 }
                 $cuentaPrincipal = CuentasXc::model()->find("paciente_id = {$datosContrato->paciente_id}");
                 $cuentaPrincipal->saldo = $total_detalles;
                 $cuentaPrincipal->update();
             } else {
                 $detallesCuenta = new CuentasXcDetalle();
                 $detallesCuenta->cuentas_xc_id = $laCuenta->id;
                 $detallesCuenta->paciente_id = $datosContrato->paciente_id;
                 $detallesCuenta->n_identificacion = $datosContrato->n_identificacion;
                 $detallesCuenta->contrato_id = $datosContrato->id;
                 $detallesCuenta->saldo = $saldo_favor * -1;
                 $detallesCuenta->save();
                 $sumadetalles = CuentasXcDetalle::model()->findAll("paciente_id = {$datosContrato->paciente_id}");
                 $total_detalles = 0;
                 foreach ($sumadetalles as $suma_detalles) {
                     $total_detalles = $total_detalles + $suma_detalles->saldo;
                 }
                 $laCuenta->saldo = $total_detalles;
                 $laCuenta->update();
             }
         } else {
             $nuevaCuenta = new CuentasXc();
             $nuevaCuenta->paciente_id = $datosContrato->paciente_id;
             $nuevaCuenta->n_identificacion = $datosContrato->n_identificacion;
             $nuevaCuenta->saldo = $saldo_favor * -1;
             $nuevaCuenta->save();
             $detallesCuenta = new CuentasXcDetalle();
             $detallesCuenta->cuentas_xc_id = $nuevaCuenta->id;
             $detallesCuenta->paciente_id = $nuevaCuenta->paciente_id;
             $detallesCuenta->n_identificacion = $nuevaCuenta->n_identificacion;
             $detallesCuenta->contrato_id = $datosContrato->id;
             $detallesCuenta->saldo = $nuevaCuenta->saldo;
             $detallesCuenta->save();
         }
         //if ($datosContrato->saldo > 0) //No ha pagado contrato, los tratamientos van sin descuento
         //{
         $datosContrato->estado = "Liquidado";
         $datosContrato->update();
         foreach ($datosContratoDetalle as $datos_contrato_detalle) {
             $datos_contrato_detalle->estado = "Liquidado";
             $datos_contrato_detalle->update();
         }
         $this->redirect(array('view', 'id' => $datosContrato->id));
         //}
     }
     if ($saldo_favor == 0) {
         # code...
     }
     Yii::app()->user->setFlash('error', $saldo_favor);
     //Contrato Pagado
     if ($datosContrato->saldo == 0) {
         //Verificar si todos los tratamientos ya estan realizados
     }
 }