Descrição: Select para consulta via banco de dados.
Atenção 1! Ao clicar sobre os documentos será realizado o download de uma cópia para sua máquina. O documento original não deve ser alterado sem prévia autorização do P.O
Atenção 2! Os documentos não devem ser disponibilizados para terceiros sem prévia autorização do P.O.
Documentos:
1. Verifica se possui parâmetro de TAC Agregado:
SELECT COUNT(T.EMPRESA) QTDE
FROM CGS_PARAMETROS_TAC
2. Se tiver parâmetro de TAC Agregado, o sistema busca os dados do Proprietário com base no código do veículo informado em tela, a data de emissão do docto em tela:
SELECT IDPROAUT
, CODINTFUNC CODIGOINTERNO
, DECODE(IDPROAUT,'S',CODIGOFORN,DECODE(CODINTPROAUTFRETE,NULL,CODINTFUNC ,CODINTPROAUTFRETE)) AS CODINT
, CODIGOFORN
, CODINTPROAUTFRETE
, CELULAR AS FONE
, C.ID_MOTORISTA
, B.RNTRC
FROM EXA015 A
, VWCGS_COLABORADORES B
, EXA015_HISTORICO C
WHERE C.ID_MOTORISTA = B.IDENTIFICADOR
AND C.MOTORISTA = B.CODINTFUNC
AND C.COD_VEICULO = A.COD_VEICULO
AND C.DT_VIGENCIAINI = (SELECT MAX(DT_VIGENCIAINI)
FROM EXA015_HISTORICO D
WHERE D.COD_VEICULO = A.COD_VEICULO
AND D.DT_CANCELAMENTO IS NULL
AND TRUNC(D.DT_VIGENCIAINI) <= TO_DATE('09/09/2019 00:00:00', 'DD/MM/YYYY HH24:MI:SS') /* PDATADOCUMENTO / )
AND A.COD_VEICULO = 2898 / P_CODIGOVEIC */
AND C.DT_CANCELAMENTO IS NULL
3. O sistema faz uma verificação se o ID_MOTORISTA é 'E' (externo) e o IDPROAUT é 'S' (prestador de serviços).
4. Se algum os campos citados no itm 3 não saciar a validação, o sistema busca os dados do proprietário, com base no funcionário encontrado no select anterior.
5. Se o ID_MOTORISTA for 'E', o sistema verifica seu IDPROAUT - tipo de funcionário - e usa o código interno do funcionário para procurá-lo conforme seu tipo e achar o RNTRC correspondente.
5.1. Se o IDPROAUT for 'S', o sistema procura seus dados na tabela BGM_FORNECEDOR, utilizando o codigo interno:
SELECT NRFORN AS CODIGO
, RSOCIALFORN AS PROPRIETARIO
, ENDERECOFORN AS ENDERECO
, '' AS NUM
, CEPFORN AS CEP
, NRINSCRICAOFORN AS CNPJ
, '' AS INSS
, INSCESTADUALFORN AS IE
, CIDADEFORN AS CIDADE
, CODIGOUF AS UF
, TELEFONEFORN AS FONE
, NRRNTRC AS RNTRC
, NRINSCRICAOFORN AS CNPJ_CPF
, BAIRROFORN AS BAIRRO
, TIPOCONTABCO AS TIPOCONTA
, CODBANCOFORN AS CODBANCO
, CODAGENCIAFORN AS CODAGENCIA
, CODCONTABCOFORN AS CODCONTA
FROM BGM_FORNECEDOR
WHERE CODIGOFORN = ?_CODINT
5.2. Se o IDPROAUT diferente de 'S', o sistema procura seus dados na tabela FLP_PROAUTONOMOS, utilizando o codigo interno:
SELECT A.CODPROAUT AS CODIGO
, A.NOMEPROAUT AS PROPRIETARIO
, A.ENDRUAPROAUT AS ENDERECO
, A.ENDNRPROAUT AS NUM
, A.ENDCEPPROAUT AS CEP
, A.ENDTELPROAUT AS FONE
, A.INSCRINSSPROAUT AS CNPJ
, A.INSCRINSSPROAUT AS INSS
, ' ' AS IE
, NVL(B.DESCMUNIC, A.ENDCIDADEPROAUT) AS CIDADE
, A.CODIGOUF AS UF
, A.RNTRCPROAUT AS RNTRC
, A.CPFPROAUT AS CNPJ_CPF
, A.ENDBAIRROPROAUT AS BAIRRO
, DECODE(A.TIPOCONTA,2,'P','C') AS TIPOCONTA
, A.CODBANCO AS CODBANCO
, A.CODAGENCIA AS CODAGENCIA
, A.CONTAPROAUT AS CODCONTA
FROM FLP_PROAUTONOMOS A,
DVS_MUNICIPIO B
WHERE CODINTPROAUT = 2149 /* P_CODINT */
AND A.CODMUNICPROAUT = B.CODMUNIC(+)
6. Se o ID_MOTORISTA for diferente de 'E', o sistema verifica seu CODIGOVEIC - código do veículo - e acha o RNTRC correspondente.:
SELECT '' '' AS CODIGO
, C.RSOCIALEMPRESA AS PROPRIETARIO
, B.ENDERECOFL AS ENDERECO
, B.NUMEROENDFL AS NUM
, B.CEPFL AS CEP
, ''J'' AS TPDOC
, C.INSCRICAOEMPRESA AS CNPJ
, '' '' AS INSS
, B.IESTADUALFL AS IE
, B.FONEFL AS FONE
, B.CIDADEFL AS CIDADE
, B.CODIGOUF AS UF
, B.REGISTRO_RNTRC AS RNTRC
, C.INSCRICAOEMPRESA AS CNPJ_CPF
, B.BAIRROFL AS BAIRRO
, '' '' AS TIPOCONTA
, '' '' AS CODBANCO
, '' '' AS CODAGENCIA
, '' '' AS CODCONTA
FROM FRT_CADVEICULOS A
, CTR_FILIAL B
, CTR_EMPAUTORIZADAS C
WHERE A.CODIGOEMPRESA = B.CODIGOEMPRESA
AND A.CODIGOFL = B.CODIGOFL
AND B.CODINTEMPAUT = C.CODINTEMPAUT
AND A.CODIGOVEIC = ?_CODIGOVEIC
7. Depois de buscar os dados do proprietário, o sistema verifica a tabela EXA014 (Complemento dos motoristas Agregados - abas Cadastro e Complemento), se o proprietário tem TAC Agregado.
SELECT COUNT(CODIGO||ID_MOTORISTA) QTDE
FROM EXA014
WHERE TAC_AGREGADO = 'S' /* P_TAC_AGREGADO / --parâmetro TAC Agregado
AND CODIGO = 2149 / P_MOTORISTA / --código interno do motorista
AND ID_MOTORISTA = 'E' / P_ID_MOTORISTA */ --ID_MOTORISTA (tipo do motorista)
8. Se achar resultado, gera CIOT.
Este artigo foi útil?
Que bom!
Obrigado pelo seu feedback
Desculpe! Não conseguimos ajudar você
Obrigado pelo seu feedback
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo