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)); }
?> </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 } }