--DROP VIEW public.view_ctb_gerencial_nfe; CREATE OR REPLACE VIEW public.view_ctb_gerencial_nfe AS SELECT filial_nota, nota, serie, data_emissao, cfop1, valor_produto, valor_icms_subst, valor_frete, valor_seguro, valor_ipi, valor_desp_aces, valor_desconto, valor_base_icms, valor_icms, tipo, entrada_saida, nfe_chave_acesso, protocolo, data, hora, cliente, valor_pis, valor_cofins, base_pis, base_cofins, venda, valor_iss, valor_total_liquido, almoxarifado, tributo, nr_extrato, nr_sat, cst_pis, cst_cofins, base_csll, valor_csll, classificacao_fiscal, produto FROM ( SELECT nfs_nota_fiscal.filial_nota as filial_nota, nfs_nota_fiscal.nota as nota, nfs_nota_fiscal.serie as serie, nfs_nota_fiscal.data_emissao as data_emissao, nfs_nota_item.cfop as cfop1, nfs_nota_item.prc_total as valor_produto, nfs_nota_item.vlr_icms_subst as valor_icms_subst, nfs_nota_item.vlr_frete as valor_frete, nfs_nota_item.vlr_seguro as valor_seguro, nfs_nota_item.valor_ipi as valor_ipi, nfs_nota_item.vlr_desp_aces as valor_desp_aces, nfs_nota_item.vlr_rateio_desc_header as valor_desconto, nfs_nota_item.base_icms as valor_base_icms, nfs_nota_item.valor_icms as valor_icms, CASE TRIM(nfs_nota_fiscal_eletronica.situacao) WHEN 'I' THEN 'INUTILIZADA' WHEN 'C' THEN 'CANCELADA' WHEN 'D' THEN 'DENEGADA' WHEN 'E' THEN 'EMITIDA' ELSE 'NAO EMITIDA' END AS tipo, nfs_op_fiscal.entrada_saida as entrada_saida, nfs_nota_fiscal_eletronica.nfe_chave_acesso as nfe_chave_acesso, CASE WHEN TRIM(nfs_nota_fiscal_eletronica.inutiliza_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.inutiliza_protocolo WHEN TRIM(nfs_nota_fiscal_eletronica.cancelamento_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.cancelamento_protocolo ELSE nfs_nota_fiscal_eletronica.envio_protocolo END AS protocolo, CASE WHEN TRIM(nfs_nota_fiscal_eletronica.inutiliza_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.inutiliza_data WHEN TRIM(nfs_nota_fiscal_eletronica.cancelamento_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.cancelamento_data ELSE nfs_nota_fiscal_eletronica.envio_data END AS data, CASE WHEN TRIM(nfs_nota_fiscal_eletronica.inutiliza_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.inutiliza_hora WHEN TRIM(nfs_nota_fiscal_eletronica.cancelamento_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.cancelamento_hora ELSE nfs_nota_fiscal_eletronica.envio_hora END AS hora, nfs_nota_fiscal.cliente as cliente, nfs_nota_item.valor_pis as valor_pis, nfs_nota_item.valor_cofins as valor_cofins, nfs_nota_item.base_pis as base_pis, nfs_nota_item.base_cofins as base_cofins, nfs_op_fiscal.venda as venda, 0 as valor_iss, (nfs_nota_item.vlr_liq_rateio_desc_header + nfs_nota_item.vlr_icms_subst + nfs_nota_item.vlr_frete + nfs_nota_item.vlr_seguro + nfs_nota_item.valor_ipi + nfs_nota_item.vlr_desp_aces ) as valor_total_liquido, nfs_nota_fiscal.almoxarifado, nfs_nota_item.tributo, CASE WHEN (nfs_nota_fiscal.serie = 'CFE' AND substr(replace(nfe_chave_acesso,'CFe','')::text,32,6) != '') THEN substr(replace(nfe_chave_acesso,'CFe','')::text,32,6)::INTEGER ELSE 0 END::text as nr_extrato, CASE WHEN (nfs_nota_fiscal.serie = 'CFE' AND substr(replace(nfe_chave_acesso,'CFe','')::text, 23,9) != '') THEN substr(replace(nfe_chave_acesso,'CFe','')::text, 23,9)::INTEGER ELSE 0 END::text as nr_sat, nfs_nota_item.cst_pis, nfs_nota_item.cst_cofins, nfs_nota_item.base_csll, nfs_nota_item.valor_csll, nfs_nota_item.classificacao_fiscal, nfs_nota_item.produto as produto FROM nfs_nota_fiscal INNER JOIN nfs_nota_item ON nfs_nota_fiscal.filial_nota = nfs_nota_item.filial_nota AND nfs_nota_fiscal.nota = nfs_nota_item.nota AND nfs_nota_fiscal.serie = nfs_nota_item.serie LEFT JOIN nfs_op_fiscal ON nfs_op_fiscal.cfop = nfs_nota_fiscal.cfop LEFT JOIN nfs_nota_fiscal_eletronica ON nfs_nota_fiscal_eletronica.nfs_filial = nfs_nota_fiscal.filial_nota AND nfs_nota_fiscal_eletronica.nfs_nota = nfs_nota_fiscal.nota AND nfs_nota_fiscal_eletronica.nfs_serie = nfs_nota_fiscal.serie UNION ALL SELECT nfs_nota_fiscal.filial_nota as filial_nota, nfs_nota_fiscal.nota as nota, nfs_nota_fiscal.serie as serie, nfs_nota_fiscal.data_emissao as data_emissao, nfs_nota_servico_catering.cfop as cfop1, nfs_nota_servico_catering.prc_total as valor_produto, nfs_nota_servico_catering.vlr_icms_subst as valor_icms_subst, nfs_nota_servico_catering.vlr_frete as valor_frete, nfs_nota_servico_catering.vlr_seguro as valor_seguro, nfs_nota_servico_catering.valor_ipi as valor_ipi, nfs_nota_servico_catering.vlr_desp_aces as valor_desp_aces, nfs_nota_servico_catering.vlr_rateio_desc_header as valor_desconto, nfs_nota_servico_catering.base_icms as valor_base_icms, nfs_nota_servico_catering.valor_icms as valor_icms, CASE TRIM(nfs_nota_fiscal_eletronica.situacao) WHEN 'I' THEN 'INUTILIZADA' WHEN 'C' THEN 'CANCELADA' WHEN 'D' THEN 'DENEGADA' WHEN 'E' THEN 'EMITIDA' ELSE 'NAO EMITIDA' END AS tipo, nfs_op_fiscal.entrada_saida as entrada_saida, nfs_nota_fiscal_eletronica.nfe_chave_acesso as nfe_chave_acesso, CASE WHEN TRIM(nfs_nota_fiscal_eletronica.inutiliza_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.inutiliza_protocolo WHEN TRIM(nfs_nota_fiscal_eletronica.cancelamento_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.cancelamento_protocolo ELSE nfs_nota_fiscal_eletronica.envio_protocolo END AS protocolo, CASE WHEN TRIM(nfs_nota_fiscal_eletronica.inutiliza_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.inutiliza_data WHEN TRIM(nfs_nota_fiscal_eletronica.cancelamento_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.cancelamento_data ELSE nfs_nota_fiscal_eletronica.envio_data END AS data, CASE WHEN TRIM(nfs_nota_fiscal_eletronica.inutiliza_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.inutiliza_hora WHEN TRIM(nfs_nota_fiscal_eletronica.cancelamento_protocolo) <> '' THEN nfs_nota_fiscal_eletronica.cancelamento_hora ELSE nfs_nota_fiscal_eletronica.envio_hora END AS hora, nfs_nota_fiscal.cliente as cliente, nfs_nota_servico_catering.valor_pis as valor_pis, nfs_nota_servico_catering.valor_cofins as valor_cofins, nfs_nota_servico_catering.base_pis as base_pis, nfs_nota_servico_catering.base_cofins as base_cofins, nfs_op_fiscal.venda as venda, 0 as valor_iss, (nfs_nota_servico_catering.vlr_liq_rateio_desc_header + nfs_nota_servico_catering.vlr_icms_subst + nfs_nota_servico_catering.vlr_frete + nfs_nota_servico_catering.vlr_seguro + nfs_nota_servico_catering.valor_ipi + nfs_nota_servico_catering.vlr_desp_aces ) as valor_total_liquido, nfs_nota_fiscal.almoxarifado, nfs_nota_servico_catering.tributo, CASE WHEN (nfs_nota_fiscal.serie = 'CFE' AND substr(replace(nfe_chave_acesso,'CFe','')::text,32,6) != '') THEN substr(replace(nfe_chave_acesso,'CFe','')::text,32,6)::INTEGER ELSE 0 END::text as nr_extrato, CASE WHEN (nfs_nota_fiscal.serie = 'CFE' AND substr(replace(nfe_chave_acesso,'CFe','')::text, 23,9) != '') THEN substr(replace(nfe_chave_acesso,'CFe','')::text, 23,9)::INTEGER ELSE 0 END::text as nr_sat, nfs_nota_servico_catering.cst_pis, nfs_nota_servico_catering.cst_cofins, nfs_nota_servico_catering.base_csll, nfs_nota_servico_catering.valor_csll, nfs_nota_servico_catering.classificacao_fiscal, nfs_nota_servico_catering.servico as produto FROM nfs_nota_fiscal INNER JOIN nfs_nota_servico_catering ON nfs_nota_fiscal.filial_nota = nfs_nota_servico_catering.filial_nota AND nfs_nota_fiscal.nota = nfs_nota_servico_catering.nota AND nfs_nota_fiscal.serie = nfs_nota_servico_catering.serie LEFT JOIN nfs_op_fiscal ON nfs_op_fiscal.cfop = nfs_nota_fiscal.cfop LEFT JOIN nfs_nota_fiscal_eletronica ON nfs_nota_fiscal_eletronica.nfs_filial = nfs_nota_fiscal.filial_nota AND nfs_nota_fiscal_eletronica.nfs_nota = nfs_nota_fiscal.nota AND nfs_nota_fiscal_eletronica.nfs_serie = nfs_nota_fiscal.serie UNION ALL SELECT nfs_nota_fiscal.filial_nota as filial_nota, nfs_nota_fiscal.nota as nota, nfs_nota_fiscal.serie as serie, nfs_nota_fiscal.data_emissao as data_emissao, '1' as cfop1, nfs_nota_servico.prc_total as valor_produto, 0::numeric as valor_icms_subst, 0::numeric as valor_frete, 0::numeric as valor_seguro, 0::numeric as valor_ipi, 0::numeric as valor_desp_aces, 0::numeric as valor_desconto, 0::numeric as valor_base_icms, 0::numeric as valor_icms, CASE TRIM(nfs_nota_fiscal.cancelada) WHEN 'S' THEN 'CANCELADA' ELSE 'EMITIDA' END AS tipo, nfs_op_fiscal.entrada_saida as entrada_saida, '' as nfe_chave_acesso, '' AS protocolo, nfs_nota_fiscal.data_emissao AS data, nfs_nota_fiscal.hora_emissao AS hora, nfs_nota_fiscal.cliente as cliente, nfs_nota_servico.valor_pis as valor_pis, nfs_nota_servico.valor_cofins as valor_cofins, nfs_nota_servico.base_pis as base_pis, nfs_nota_servico.base_cofins as base_cofins, nfs_op_fiscal.venda as venda, valor_iss, nfs_nota_servico.prc_total as valor_total_liquido, nfs_nota_fiscal.almoxarifado, 999 as tributo, '' as nr_extrato, '' as nr_sat, nfs_nota_servico.cst_pis, nfs_nota_servico.cst_cofins, 0.00 as base_csll, 0.00 as valor_csll, '' as classificacao_fiscal, nfs_nota_servico.produto as produto FROM nfs_nota_fiscal INNER JOIN nfs_nota_servico ON nfs_nota_fiscal.filial_nota = nfs_nota_servico.filial_nota AND nfs_nota_fiscal.nota = nfs_nota_servico.nota AND nfs_nota_fiscal.serie = nfs_nota_servico.serie LEFT JOIN nfs_op_fiscal ON nfs_op_fiscal.cfop = 1 ) as notas_fiscais ORDER BY notas_fiscais.filial_nota, notas_fiscais.nota, notas_fiscais.serie; ALTER TABLE public.view_ctb_gerencial_nfe OWNER TO postgres; COMMENT ON VIEW public.view_ctb_gerencial_nfe IS 'View para o relatorio de gerencial NFE';