public function actionIngresoCajaPaciente($idOrigen) { //Buscar Paciente Origen $pacienteOrigen = Paciente::model()->findByPk($idOrigen); //Ingreso a Caja de Paciente $pacienteDestino = Paciente::model()->findByPk($_POST['paciente']); $pacienteDestino->saldo = $pacienteDestino->saldo + $_POST['valor']; if ($pacienteDestino->update()) { //Registro en caja $movimientoDeposito = new PacienteMovimientos(); $movimientoDeposito->paciente_id = $pacienteDestino->id; $movimientoDeposito->valor = $_POST['valor']; $movimientoDeposito->tipo = "Ingreso"; $movimientoDeposito->sub_tipo = "Tranferencia de Paciente"; $movimientoDeposito->comentario = $_POST['comentario']; $movimientoDeposito->descripcion = "El Paciente No. " . $pacienteOrigen->id . " Nombre: " . $pacienteOrigen->nombreCompleto . ". Realizo un traslado de su caja a este paciente"; $movimientoDeposito->usuario_id = Yii::app()->user->usuarioId; $movimientoDeposito->fecha = date("Y-m-d H:i:s"); $movimientoDeposito->save(); //Retiro a Caja de Paciente $pacienteOrigen->saldo = $pacienteOrigen->saldo - $_POST['valor']; if ($pacienteOrigen->update()) { //Registro en caja $movimientoDepositoOrigen = new PacienteMovimientos(); $movimientoDepositoOrigen->paciente_id = $pacienteOrigen->id; $movimientoDepositoOrigen->valor = $_POST['valor']; $movimientoDepositoOrigen->tipo = "Egreso"; $movimientoDepositoOrigen->sub_tipo = "Tranferencia a Paciente"; $movimientoDepositoOrigen->comentario = $_POST['comentario']; $movimientoDepositoOrigen->descripcion = "Transferencia a paciente No. " . $pacienteDestino->id . " Nombre: " . $pacienteDestino->nombreCompleto . "."; $movimientoDepositoOrigen->usuario_id = Yii::app()->user->usuarioId; $movimientoDepositoOrigen->fecha = date("Y-m-d H:i:s"); $movimientoDepositoOrigen->save(); //Ingreso $nuevoIngreso = new Ingresos(); $nuevoIngreso->paciente_id = $pacienteOrigen->id; $nuevoIngreso->n_identificacion = $pacienteOrigen->n_identificacion; //$nuevoIngreso->contrato_id = $datosContrato->id; $nuevoIngreso->valor = $_POST['valor']; $nuevoIngreso->descripcion = "Transferencia a caja de paciente " . $pacienteDestino->nombreCompleto; $nuevoIngreso->centro_costo_id = 98; $nuevoIngreso->forma_pago = "Transferencia a Paciente"; $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(); } } $this->render('view', array('model' => $pacienteDestino)); }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new PacienteMovimientos(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['PacienteMovimientos'])) { $model->attributes = $_POST['PacienteMovimientos']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->id)); } } $this->render('create', array('model' => $model)); }
public function actionAnular() { $id = $_GET['id']; if ($_POST['clave'] == "super") { //Proceso de anulación $elIngreso = Ingresos::model()->findByPk($id); $ingresoActual = $elIngreso->valor; $elIngreso->valor = $elIngreso->valor - $elIngreso->valor * 2; $elIngreso->estado = "Anulado"; $elIngreso->observacion_anular = $_POST['observacion_anular']; $iddepaciente = $elIngreso->paciente_id; if ($elIngreso->save()) { if ($elIngreso->contrato_id != NULL) { //Actualizar Saldo de contrato $datoContrato = Contratos::model()->findByPk($elIngreso->contrato_id); $datoContrato->saldo = $datoContrato->saldo + $ingresoActual; $datoContrato->save(); } else { //Buscar Caja Personal de Paciente $cajaPersonal = Paciente::model()->findByPk($iddepaciente); $cajaPersonal->saldo = $cajaPersonal->saldo - $ingresoActual; $cajaPersonal->update(); //Movimientos $movimientosCaja = new PacienteMovimientos(); $movimientosCaja->paciente_id = $iddepaciente; $movimientosCaja->valor = $ingresoActual * -1; $movimientosCaja->tipo = "Anulado"; $movimientosCaja->ingreso_id = $id; $movimientosCaja->sub_tipo = "Ingreso sin Contrato Anulado"; $movimientosCaja->descripcion = "Se anula ingreso a caja personal"; $movimientosCaja->usuario_id = Yii::app()->user->usuarioId; $movimientosCaja->fecha = date("Y-m-d H:i:s"); $movimientosCaja->save(); } //Actualizar caja si es efectivo if ($elIngreso->forma_pago == "Efectivo") { $datoCaja = CajaEfectivo::model()->findByPk($elIngreso->personal_id); $datoCaja->total = $datoCaja->total - $ingresoActual; $datoCaja->save(); $datoCajaDetalle = CajaEfectivoDetalle::model()->find("ingreso_id = {$elIngreso->id}"); $datoCajaDetalle->tipo = "Ingreso Anulado"; $datoCajaDetalle->monto = $datoCajaDetalle->monto * -1; $datoCajaDetalle->update(); } Yii::app()->user->setFlash('success', "Se ha realizado con éxito la anulación"); $this->redirect(array('view', 'id' => $id)); } } else { Yii::app()->user->setFlash('error', "Usted no esta autorizado para realizar esta anulación"); $this->redirect(array('view', 'id' => $id)); } }
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 } }