- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por
Doug.
-
AutorPosts
-
5 de janeiro de 2010 às 8:36 pm #91847
Doug
ParticipantePessoal tenho um cursor que esta dentro de uma package body. Quando o programa é executado ele me gera um arquivo txt no formato de uma obrigacao fiscal(DMS-CAMPINAS).
O probema é que nao estpu conseguindo fazer com que ele traga as notas fiscais com aliquota de iss > 0
Segue o cursor.
CURSOR cRecebidos IS
SELECT a.ident_docto_fiscal,
‘R’ AS CABECALHO,
TRUNC(b.data_fiscal) AS DATA_PAGAMENTO,
TRUNC(a.data_emissao) AS DATA_EMISSAO,
c.cod_modelo AS MODELO_DOCTO,
a.serie_docfis, –‘ ‘ AS SERIE,
a.num_docfis AS NUM_DOCFIS,
a.cod_class_doc_fis AS class_doc_fis,
SUM(b.vlr_tot) AS VLR_BRUTO,
DECODE(SUM(b.vlr_BASE_ISS_1),
0,
SUM(b.vlr_SERVICO),
SUM(b.vlr_BASE_ISS_1)) AS VLR_SERVICO,
b.aliq_tributo_iss AS ALIQUOTA_ISS,
b.ident_cfo AS IDENT_CFO,
SUM(0.0) AS VLR_IMPOSTO,
lpad(nvl(d.insc_municipal, ‘0’), 11, ‘0’) AS INCRICAO_TOMADOR,decode(f.cod_estado,
‘EX’,
lpad(‘0’, 14, ‘0’),
lpad(DECODE(LENGTH(d.cpf_cgc), 14, d.cpf_cgc, ‘0’),
14,
‘0’)) AS CNPJ_TOMADOR,
— lpad(DECODE(LENGTH(d.cpf_cgc), 14, d.cpf_cgc, ‘0’), 14, ‘0’) AS CNPJ_TOMADOR,
decode(f.cod_estado,
‘EX’,
lpad(11, ‘0’),
lpad(DECODE(LENGTH(d.cpf_cgc), 11, d.cpf_cgc, ‘0’),
11,
‘0’)) AS CPF_TOMADOR,
— lpad(DECODE(LENGTH(d.cpf_cgc), 11, d.cpf_cgc, ‘0’), 11, ‘0’) AS CPF_TOMADOR,substr(d.razao_social, 1, 40) AS NOME_PRESTADOR,
d.endereco AS NOME_RUA,
NVL(REPLACE(ltrim(rtrim(d.num_endereco)), ‘.’, ”), ‘0’) AS NUM_RUA,
d.compl_endereco AS COMPLEMENTO,
d.bairro AS BAIRRO,
d.cidade AS CIDADE,
f.cod_estado AS UF,
d.cep AS CEP,
‘A’ AS NATUREZA_OP,
decode(f.cod_estado, ‘EX’, ‘9999’, a.cod_municipio) as cod_municipio,
i.cod_docto,
d.cod_fis_jur,
g.ident_servicofrom dwt_docto_fiscal a,
dwt_itens_serv b,
x2024_modelo_docto c,
x04_pessoa_fis_jur d,
estado f,
x2018_servicos g,
x2006_natureza_op h,
x2005_tipo_docto iwhere a.cod_empresa = pemp
and a.cod_estab = pCodEstab
and a.data_fiscal BETWEEN pDataIni AND pDataFIM
and a.ident_docto_fiscal = b.ident_docto_fiscal(+)
and a.ident_natureza_op = h.ident_natureza_op(+)
and a.ident_modelo = c.ident_modelo(+)
and d.ident_estado = f.ident_estado(+)
and b.ident_servico = g.ident_servico
and a.ident_fis_jur = d.ident_fis_jur
and a.ident_docto = i.ident_docto
and b.ident_docto = i.ident_docto
and a.cod_class_doc_fis in (‘2’, ‘3’)
and a.movto_e_s <> ‘9’
and b.aliq_tributo_iss >’0′ –ERROGROUP BY a.ident_docto_fiscal,
‘R’,
TRUNC(b.data_fiscal),
TRUNC(a.data_emissao),
a.serie_docfis, –‘
‘ ‘,
a.num_docfis,
a.cod_class_doc_fis,
lpad(nvl(d.insc_municipal, ‘0’), 11, ‘0’),
decode(f.cod_estado,
‘EX’,
lpad(‘0’, 14, ‘0’),
lpad(DECODE(LENGTH(d.cpf_cgc), 14, d.cpf_cgc, ‘0’),
14,
‘0’)),
— lpad(DECODE(LENGTH(d.cpf_cgc), 14, d.cpf_cgc, ‘0’), 14, ‘0’) ,
decode(f.cod_estado,
‘EX’,
lpad(11, ‘0’),
lpad(DECODE(LENGTH(d.cpf_cgc), 11, d.cpf_cgc, ‘0’),
11,
‘0’)),
— lpad(DECODE(LENGTH(d.cpf_cgc), 11, d.cpf_cgc, ‘0’), 11, ‘0’) ,
b.aliq_tributo_iss,
b.ident_cfo,
d.razao_social,
d.endereco,
NVL(REPLACE(ltrim(rtrim(d.num_endereco)), ‘.’, ”), ‘0’),
d.compl_endereco,
d.bairro,
d.cidade,
f.cod_estado,
d.cep,
‘A’,
decode(f.cod_estado, ‘EX’, ‘9999’, a.cod_municipio),
c.cod_modelo,
i.cod_docto,
d.cod_fis_jur,
g.ident_servico –21/12/2009union
SELECT a.ident_docto_fiscal,
‘R’ AS CABECALHO,
TRUNC(a.data_fiscal) AS DATA_PAGAMENTO,
TRUNC(a.data_emissao) AS DATA_EMISSAO,
a.serie_docfis, — ‘ ‘ AS SERIE, –**********************************
c.cod_modelo AS MODELO_DOCTO,
a.num_docfis AS NUM_DOCFIS,
a.cod_class_doc_fis AS class_doc_fis,
SUM(a.vlr_tot_nota) AS VLR_BRUTO,
–DECODE(SUM(NVL(a.vlr_BASE_ISS_1, 0)),0, SUM(NVL(a.vlr_tot_nota, 0)),SUM(NVL(a.vlr_BASE_ISS_1, 0))) AS VLR_SERVICO,
SUM(‘000000000000000’) AS VLR_SERVICO,
a.aliq_tributo_iss AS ALIQUOTA_ISS,
9999 AS IDENT_CFO,
SUM(0.0) AS VLR_IMPOSTO,
lpad(nvl(d.insc_municipal, ‘0’), 11, ‘0’) AS INCRICAO_TOMADOR,
decode(f.cod_estado,
‘EX’,
lpad(‘0’, 14, ‘0’),
lpad(DECODE(LENGTH(d.cpf_cgc), 14, d.cpf_cgc, ‘0’),
14,
‘0’)),
— lpad(DECODE(LENGTH(d.cpf_cgc), 14, d.cpf_cgc, ‘0’), 14, ‘0’) ,
decode(f.cod_estado,
‘EX’,
lpad(11, ‘0’),
lpad(DECODE(LENGTH(d.cpf_cgc), 11, d.cpf_cgc, ‘0’),
11,
‘0’)),
— lpad(DECODE(LENGTH(d.cpf_cgc), 11, d.cpf_cgc, ‘0’), 11, ‘0’) ,
substr(d.razao_social, 1, 40) AS NOME_PRESTADOR,
d.endereco AS NOME_RUA,
NVL(REPLACE(ltrim(rtrim(d.num_endereco)), ‘.’, ”), ‘0’) AS NUM_RUA,
d.compl_endereco AS COMPLEMENTO,
d.bairro AS BAIRRO,
d.cidade AS CIDADE,
f.cod_estado AS UF,
d.cep AS CEP,
‘A’ AS NATUREZA_OP,
decode(f.cod_estado, ‘EX’, ‘9999’, a.cod_municipio) as cod_municipio,
i.cod_docto,
d.cod_fis_jur,
g.ident_servicofrom dwt_docto_fiscal a,
x2024_modelo_docto c,
x04_pessoa_fis_jur d,
estado f,
x2006_natureza_op h,
x2005_tipo_docto i,
x2018_servicos gwhere a.cod_empresa = pemp
and a.cod_estab = pCodEstab
and a.data_fiscal BETWEEN pDataIni AND pDataFIM
and a.ident_natureza_op = h.ident_natureza_op(+)
and a.ident_modelo = c.ident_modelo(+)
and d.ident_estado = f.ident_estado(+)
and a.ident_fis_jur = d.ident_fis_jur
and a.ident_docto = i.ident_docto
and a.cod_class_doc_fis in (‘2’, ‘3’)
and a.movto_e_s <> ‘9’and not exists
(select 1
from dwt_itens_serv z
where z.ident_docto_fiscal = a.ident_docto_fiscal)GROUP BY a.ident_docto_fiscal,
TRUNC(a.data_fiscal),
TRUNC(a.data_emissao),
a.num_docfis,
a.serie_docfis, –***********************
a.cod_class_doc_fis,
lpad(nvl(d.insc_municipal, ‘0’), 11, ‘0’),
decode(f.cod_estado,
‘EX’,
lpad(‘0’, 14, ‘0’),
lpad(DECODE(LENGTH(d.cpf_cgc), 14, d.cpf_cgc, ‘0’),
14,
‘0’)),
— lpad(DECODE(LENGTH(d.cpf_cgc), 14, d.cpf_cgc, ‘0’), 14, ‘0’) ,
decode(f.cod_estado,
‘EX’,
lpad(11, ‘0’),
lpad(DECODE(LENGTH(d.cpf_cgc), 11, d.cpf_cgc, ‘0’),
11,
‘0’)),
— lpad(DECODE(LENGTH(d.cpf_cgc), 11, d.cpf_cgc, ‘0’), 11, ‘0’) ,
a.aliq_tributo_iss,
9999,
d.razao_social,
d.endereco,
NVL(REPLACE(ltrim(rtrim(d.num_endereco)), ‘.’, ”), ‘0’),
d.compl_endereco,
d.bairro,
d.cidade,
f.cod_estado,
d.cep,
decode(f.cod_estado, ‘EX’, ‘9999’, a.cod_municipio),
c.cod_modelo,
i.cod_docto,
d.cod_fis_jur,
g.ident_servico;O pior de tudo é que qdo executo o select em outra janela, ele me lista os dados desejados.
5 de janeiro de 2010 às 10:55 pm #91849fsitja
ParticipanteSe o cursor está listando os dados e a sua procedure que gera o arquivo não faz updates/inserts/deletes, então o problema provavelmente está no algoritmo que chama o UTL_FILE.
5 de janeiro de 2010 às 11:25 pm #91850Doug
ParticipanteBoa tarde.
Entao, conseguiresolver.Era um select que estava descartando a linha caso o valor do tributo fosse 0.
Obrigado…
-
AutorPosts
- Você deve fazer login para responder a este tópico.