Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AS
FUNCTION F_DES_DIAGNOSTICO
(
p_nCodDiagnostico IN DIAGNOSTICO.COD_DIAGNOSTICO%TYPE,
p_nDato
IN NUMBER
)
RETURN CHAR IS
p_cDescripcion
p_cDes_Resumida
p_cDesTip
p_cCodGrupoDiagnostico
p_cNivel
BEGIN
SELECT
INTO
o, p_cNivel
FROM
WHERE
DIAGNOSTICO.DESCRIPCION%type;
DIAGNOSTICO.DES_RESUMIDA%type;
DIAGNOSTICO.DES_TIP%type;
DIAGNOSTICO.COD_GRUPO_DIAGNOSTICO%type;
DIAGNOSTICO.NIVEL%type;
IF p_nDato = 1 THEN
RETURN p_cDescripcion;
END IF;
IF p_nDato = 2 THEN
RETURN p_cDes_Resumida;
END IF;
IF p_nDato = 3 THEN
RETURN p_cDesTip;
END IF;
IF p_nDato = 4 THEN
RETURN p_cCodGrupoDiagnostico;
END IF;
IF p_nDato = 5 THEN
RETURN p_cNivel;
END IF;
END F_DES_DIAGNOSTICO;
FUNCTION F_PARAMETRO_USUARIO
(
p_nCodParametro PARAMETRO.COD_PARAMETRO%TYPE,
p_cDescripcion PARAMETRO.DESCRIPCION%TYPE
)
RETURN NUMERIC
IS
li_count NUMBER;
BEGIN
li_count :=0 ;
SELECT COUNT(*) INTO li_count FROM PARAMETRO
WHERE COD_PARAMETRO = p_nCodParametro and UPPER(DESCRIPCION) LIKE '%
'|| UPPER(p_cDescripcion)||'%';
OUT DOCUMENTO.COD_DESTINO%TYPE,
OUT DOCUMENTO.COD_SUB_DESTINO%TYPE,
OUT INTEGER
nCodSeguimientoDoc
IENTO_DOC%TYPE;
nNroSecuenciaSeguimiento
cia_Seguimiento%TYPE;
nDivisoria
TYPE;
cCodDestino
o%TYPE;
cCodSubDestino
stino%TYPE;
SEGUIMIENTO_DOCUMENTARIO_DEST.COD_SEGUIM
SEGUIMIENTO_DOCUMENTARIO_DEST.Nro_Secuen
SEGUIMIENTO_DOCUMENTARIO_DEST.Divisoria%
SEGUIMIENTO_DOCUMENTARIO_DEST.Cod_Destin
SEGUIMIENTO_DOCUMENTARIO_DEST.Cod_Sub_De
BEGIN
p_nRetorno := 1;
BEGIN
SELECT COD_SEGUIMIENTO_DOC,
NRO_SECUENCIA_SEGUIMIENTO,
DIVISORIA,
COD_DESTINO,
COD_SUB_DESTINO
INTO
nCodSeguimientoDoc,
nNroSecuenciaSeguimiento,
nDivisoria,
cCodDestino,
cCodSubDestino
FROM SEGUIMIENTO_DOCUMENTARIO_DEST
WHERE ( TIPO_ENTIDAD_SALUD
=
AND ( COD_ENTIDAD_SALUD
=
AND ( COD_SEGUIMIENTO_DOC
=
AND ( NRO_SECUENCIA_SEGUIMIENTO =
AND ( STATUS_REGISTRO
=
p_nTipoEntidadSalud
)
p_nCodEntidadSalud
)
p_nCodSeguimientoDoc
)
p_nNroSecuenciaSeguimiento)
'V'
);
p_cCodUsuarioUpdate
p_cCodDestino
p_cCodSubDestino
p_cObservaciones
) IS
ll_item
p_nCodCliente
p_cTipoAfiliado
ls_y
ls_vip
ls_x
p_nCodSeguimientoDoc
%TYPE;
p_cCodDestinoSiguiente
p_dToday
p_cMsgError
p_nNumError
DOCUMENTO.COD_USUARIO_UPDATE%TYPE,
DOCUMENTO_MOVIMIENTO.COD_DESTINO%TYPE,
DOCUMENTO_MOVIMIENTO.COD_SUB_DESTINO%TYPE,
DOCUMENTO_MOVIMIENTO.OBSERVACIONES%TYPE
NUMBER;
AFILIADO_PRODUCTO.COD_CLIENTE%TYPE;
DOCUMENTO.TIPO_AFILIADO%TYPE;
VARCHAR2(5);
VARCHAR2(1);
VARCHAR2(10);
TABLA_SEGUIMIENTO_DOCUMENTARIO.COD_SEGUIMIENTO_DOC
DOCUMENTO.COD_DESTINO_SIGUIENTE%TYPE;
DATE;
VARCHAR(5000);
NUMBER;
BEGIN
ll_item := 0;
SELECT
o FROM DOCUMENTO
WHERE
AND
AND
AND
=
=
=
=
p_nTipoEntidadSalud
p_nCodEntidadSalud
p_nAnoDocumento
p_nNroDocumento;
p_nNumError := -2;
END IF;
--select SP_REF_SIGUIENTE_DESTINO(1,4,37,2) into ls_destino_siguient
e from dual ;
IF p_cCodDestinoSiguiente = NULL THEN
p_cMsgError := 'Atencin, No se ha encontrado ningun registro de s
eguimiento para las caracteristicas de este documento... Sirvase Coordinar con e
l area de sistemas, llevando una copia de la informacion de la pnatalla. Presion
e cualquier tecla para terminar...!!!';
p_nNumError := -2;
END IF;
SELECT SYSDATE INTO p_dToday from dual;
UPDATE DOCUMENTO SET
COD_DESTINO_SIGUIENTE
COD_SUB_DESTINO_SIGUIENTE
STATUS_CONTROL_DOC
COD_USUARIO_UPDATE
FEC_UPDATE
WHERE TIPO_ENTIDAD_SALUD
AND COD_ENTIDAD_SALUD
AND ANO_DOCUMENTO
AND NRO_DOCUMENTO
=
=
=
=
=
=
=
=
=
p_cCodDestinoSiguiente,
p_cCodSubDestinoSiguiente,
71,
p_cCodUsuarioUpdate,
p_dToday
p_nTipoEntidadSalud
p_nCodEntidadSalud
p_nAnoDocumento
p_nNroDocumento;
TIPO_ENTIDAD_SALUD
COD_ENTIDAD_SALUD
ANO_DOCUMENTO
NRO_DOCUMENTO
=
=
=
=
p_nTipoEntidadSalud
p_nCodEntidadSalud
p_nAnoDocumento
p_nNroDocumento;
END IF;
END SP_OF_SIGUIENTE_DESTINO;
PROCEDURE SP_CALCULO_AUDITORIA(
D%TYPE,
p_nTipoEntidad IN DOCUMENTO.TIPO_ENTIDAD_SALU
p_nCodEntidad IN DOCUMENTO.COD_ENTIDAD_SALUD
%TYPE,
p_nAnoDoc
IN DOCUMENTO.ANO_DOCUMENTO%TYP
P_nNroDoc
IN DOCUMENTO.NRO_DOCUMENTO%TYP
p_Usuario
p_nNumError
p_cMsgError
IN VARCHAR2,
OUT NUMBER,
OUT VARCHAR2) IS
E,
E,
nCount
cGetParametro
dToday
nRows
nRetorno
cFormaReclamo
cCodStatusDoc
cCodProducto
cInd_Fact_Glo
nCod_Proveedor
nImp_Pagar_Afiliado
cTexto
nRet_Envio
nNumError
cMsgError
NUMBER;
VARCHAR2(20);
DATE;
NUMBER;
NUMBER;
DOCUMENTO.FORMA_RECLAMO%TYPE;
DOCUMENTO.COD_STATUS_DOCUMENTO%TYPE;
DOCUMENTO.COD_PRODUCTO%TYPE;
DOCUMENTO.ind_factura_global%TYPE;
DOCUMENTO.COD_PROVEEDOR%TYPE;
DOCUMENTO.IMP_PAGAR_AFILIADO%tYPE;
VARCHAR2(20);
NUMBER;
NUMBER := 0;
VARCHAR2(20000) := '';
BEGIN
p_nNumError := 0;
p_cMsgError := '';
BEGIN
PR_RS_CALCULAR.SP_GET_VALIDA_OBLIGACION(p_nTipoEntidad,
p_nCodEntidad,
p_nAnoDoc,
P_nNroDoc,
nNumError,
cMsgError);
IF nNumError < 0 THEN
p_nNumError := nNumError;
p_cMsgError := cMsgError;
RETURN;
END IF;
END;
nCount := 0;
SELECT F_GET_PARAMETRO(422, 1) INTO cGetParametro FROM DUAL;
IF cGetParametro = 'S' AND nCount = 0 THEN
BEGIN
UPDATE pre_liquidacion
SET cod_status_pre_liquidacion = 'A' -- Anulado
WHERE tipo_entidad_salud = p_nTipoEntidad
AND
AND
AND
AND
AND
cod_entidad_salud = p_nCodEntidad
ano_documento = p_nAnoDoc
nro_documento = P_nNroDoc
nro_correlativo_liq > 1
cod_status_pre_liquidacion = 'V'; -- Vigente
EXCEPTION
WHEN OTHERS THEN
p_nNumError := -2;
p_cMsgError := p_cMsgError || ' ' || SQLERRM;
END;
END IF;
count(1)
nRows
PRE_LIQUIDACION_PROCEDIMIENTO, PRE_LIQUIDACION
PRE_LIQUIDACION.TIPO_ENTIDAD_SALUD =
PRE_LIQUIDACION_PROCEDIMIENTO.TIPO_ENTIDAD_SALUD
PRE_LIQUIDACION.COD_ENTIDAD_SALUD =
PRE_LIQUIDACION_PROCEDIMIENTO.COD_ENTIDAD_SALUD
PRE_LIQUIDACION.ANO_DOCUMENTO =
PRE_LIQUIDACION_PROCEDIMIENTO.ANO_DOCUMENTO
PRE_LIQUIDACION.NRO_DOCUMENTO =
PRE_LIQUIDACION_PROCEDIMIENTO.NRO_DOCUMENTO
PRE_LIQUIDACION.NRO_CORRELATIVO_LIQ =
PRE_LIQUIDACION_PROCEDIMIENTO.NRO_CORRELATIVO_LIQ
PRE_LIQUIDACION_PROCEDIMIENTO.NRO_CORRELATIVO_LIQ > 1
PRE_LIQUIDACION.TIPO_ENTIDAD_SALUD = p_nTipoEntidad
PRE_LIQUIDACION.COD_ENTIDAD_SALUD = p_nCodEntidad
PRE_LIQUIDACION.ANO_DOCUMENTO = p_nAnoDoc
PRE_LIQUIDACION.NRO_DOCUMENTO = P_nNroDoc
PRE_LIQUIDACION.COD_STATUS_PRE_LIQUIDACION = 'V';
and
AND
and
and
and
and
END IF;
IF nRows > 0 THEN
BEGIN
usp_calculo_indiv(p_nTipoEntidad,
p_nCodEntidad,
p_nAnoDoc,
P_nNroDoc,
dToday,
nRetorno);
EXCEPTION
WHEN OTHERS THEN
p_nNumError := -1;
p_cMsgError := SQLCODE || ' ' || SQLERRM;
NULL;
END;
ELSE
p_nNumError := -2;
RETURN;
END IF;
IF nRetorno > 0 OR SQLCODE <> 0 THEN
IF SQLCODE <> 0 THEN
p_cMsgError := 'Error en Proceso de Calculo' || 'Error' || SQLERRM;
UPDATE documento
SET cod_status_documento = '2', ind_auditoria = 0
WHERE tipo_entidad_salud = p_nTipoEntidad
AND cod_entidad_salud = p_nCodEntidad
AND ano_documento = p_nAnoDoc
AND nro_documento = P_nNroDoc;
ELSE
SELECT forma_reclamo
INTO cFormaReclamo
FROM documento
WHERE tipo_entidad_salud = p_nTipoEntidad
AND cod_entidad_salud = p_nCodEntidad
AND ano_documento = p_nAnoDoc
AND nro_documento = P_nNroDoc;
IF cFormaReclamo = 'C' THEN
cTexto := 'CRDITO';
ELSE
cTexto := 'REEMBOLSO';
END IF;
UPDATE documento
SET ind_auditoria = 0
WHERE tipo_entidad_salud = p_nTipoEntidad
AND cod_entidad_salud = p_nCodEntidad
AND ano_documento = p_nAnoDoc
AND nro_documento = P_nNroDoc;
p_cMsgError := 'Clculo de Documento ENVIAR DOCUMENTO AL AREA DE DEVOLUCIO
NES; ' ||
cTexto;
p_nNumError := 0;
END IF;
ELSE
If SQLCODE <> 0 THEN
UPDATE documento
SET cod_status_documento = '2', ind_auditoria = 0
WHERE tipo_entidad_salud = p_nTipoEntidad
AND cod_entidad_salud = p_nCodEntidad
AND ano_documento = p_nAnoDoc
AND nro_documento = P_nNroDoc;
p_cMsgError := 'Error en Proceso de Calculo' || SQLERRM;
p_nNumError := -2;
RETURN;
ELSE
BEGIN
SP_VALIDA_CALCULO(p_nTipoEntidad,
p_nCodEntidad,
p_nAnoDoc,
P_nNroDoc,
nNumError,
cMsgError);
IF nNumError < 0 THEN
UPDATE
SET
WHERE
AND
AND
AND
documento
cod_status_documento = '2', ind_auditoria = 0
tipo_entidad_salud = p_nTipoEntidad
cod_entidad_salud = p_nCodEntidad
ano_documento = p_nAnoDoc
nro_documento = P_nNroDoc;
forma_reclamo, ind_factura_global
cFormaReclamo, cInd_Fact_Glo
documento
tipo_entidad_salud = p_nTipoEntidad
cod_entidad_salud = p_nCodEntidad
ano_documento = p_nAnoDoc
nro_documento = P_nNroDoc;
END IF;
SELECT
INTO
FROM
WHERE
AND
AND
AND
cod_proveedor, imp_pagar_afiliado
nCod_Proveedor, nImp_Pagar_Afiliado
documento
tipo_entidad_salud = p_nTipoEntidad
cod_entidad_salud = p_nCodEntidad
ano_documento = p_nAnoDoc
nro_documento = P_nNroDoc;
END PR_RS_CALCULAR;