/**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new NotaCredito();
     // Uncomment the following line if AJAX validation is needed
     // $this->performAjaxValidation($model);
     if (isset($_POST['NotaCredito'])) {
         $model->attributes = $_POST['NotaCredito'];
         if ($model->save()) {
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $this->render('create', array('model' => $model));
 }
 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
     }
 }
 public function actionLiquidar()
 {
     $idContrato = $_GET['id'];
     $datosContrato = Contratos::model()->findByPk($idContrato);
     //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 = "";
     //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;
     }
     //se esta liquidando un contrato inclumplido = Valores sin descuento
     if ($total_tratamientos_realizados <= $total_tratamiento) {
         $saldo_favor = $sumaIngresos - $total_vu_suma;
     }
     if ($saldo_favor > 0) {
         $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;
         if ($notadeCredito->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) {
         }
         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));
         }
     }
     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
     }
 }