-- Emissão de Fatura - Formulário
-- Fatura
SELECT	tf.id_titulo_financeiro,
	se.nome AS nome_empresa,
	tf.numero_titulo,
	p.id_pessoa,
	p.nome AS nome_pessoa,
	p.codigo,
	p.natureza,
	fat.denominacao AS tipo_faturamento,
	ep.logradouro,
	ep.complemento,
	ep.numero,
	ep.cep,
	ep.bairro,
	ep.telefone,
	m.nome AS nome_municipio,
	CASE WHEN (p.natureza = 1) THEN
		SUBSTRING(LPAD(TRANSLATE(p.cnpj_cpf, '.-', ''), 11, '0'), 1, 3) || '.' || SUBSTRING(LPAD(TRANSLATE(p.cnpj_cpf, '.-', ''), 11, '0'), 4, 3) || '.' ||
		SUBSTRING(LPAD(TRANSLATE(p.cnpj_cpf, '.-', ''), 11, '0'), 7, 3) || '-' || SUBSTRING(LPAD(TRANSLATE(p.cnpj_cpf, '.-', ''), 11, '0'), 10)
	WHEN (p.natureza = 2) THEN
		SUBSTRING(LPAD(TRANSLATE(p.cnpj_cpf, '.-/', ''), 14, '0'), 1, 2) || '.' || SUBSTRING(LPAD(TRANSLATE(p.cnpj_cpf, '.-/', ''), 14, '0'), 3, 3) || '.' || SUBSTRING(LPAD(TRANSLATE(p.cnpj_cpf, '.-/', ''), 14, '0'), 6, 3) || '/' ||
		SUBSTRING(LPAD(TRANSLATE(p.cnpj_cpf, '.-/', ''), 14, '0'), 9, 4) || '-' || SUBSTRING(LPAD(TRANSLATE(p.cnpj_cpf, '.-/', ''), 14, '0'), 13) END AS cnpj_cpf,
	p.inscricao_estadual,
	tf.data_emissao,
	tf.data_vencimento,
	tf.valor_principal,
	(tf.acrescimo_financeiro) AS acrescimo,
	(tf.juros_cobranca + tf.multa_cobranca) AS juro_multa,
	(tf.desconto_cobranca + tf.retencao_tributaria + tf.valor_taxa_administracao + tf.tarifa_transacao + tf.desconto_financeiro) AS desconto,
	(tf.valor_principal + (tf.juros_cobranca + tf.multa_cobranca + tf.acrescimo_financeiro) - (tf.desconto_cobranca + tf.retencao_tributaria + tf.valor_taxa_administracao + tf.tarifa_transacao + tf.desconto_financeiro)) AS valor_liquido,
	tf.data_liquidacao,
	tf.valor_liquidado,
	tf.situacao,
	solv.titulo AS titulo_situacao,
	mu.nome AS municipio_empresa,
	uf.sigla AS uf_empresa,
	pes.natureza AS natureza_empresa,
	CASE WHEN (pes.natureza = 1) THEN
		SUBSTRING(LPAD(TRANSLATE(pes.cnpj_cpf, '.-', ''), 11, '0'), 1, 3) || '.' || SUBSTRING(LPAD(TRANSLATE(pes.cnpj_cpf, '.-', ''), 11, '0'), 4, 3) || '.' ||
		SUBSTRING(LPAD(TRANSLATE(pes.cnpj_cpf, '.-', ''), 11, '0'), 7, 3) || '-' || SUBSTRING(LPAD(TRANSLATE(pes.cnpj_cpf, '.-', ''), 11, '0'), 10)
	WHEN (pes.natureza = 2) THEN
		SUBSTRING(LPAD(TRANSLATE(pes.cnpj_cpf, '.-/', ''), 14, '0'), 1, 2) || '.' || SUBSTRING(LPAD(TRANSLATE(pes.cnpj_cpf, '.-/', ''), 14, '0'), 3, 3) || '.' || SUBSTRING(LPAD(TRANSLATE(pes.cnpj_cpf, '.-/', ''), 14, '0'), 6, 3) || '/' ||
		SUBSTRING(LPAD(TRANSLATE(pes.cnpj_cpf, '.-/', ''), 14, '0'), 9, 4) || '-' || SUBSTRING(LPAD(TRANSLATE(pes.cnpj_cpf, '.-/', ''), 14, '0'), 13) END AS cnpj_empresa,
	pes.inscricao_estadual AS ie_empresa,
	epe.logradouro AS logradouro_empresa,
	epe.complemento AS complemento_empresa,
	epe.numero AS numero_empresa,
	epe.cep AS cep_empresa,
	epe.bairro AS bairro_empresa,
	epe.telefone AS telefone_empresa,
	su.nome AS usuario_lancamento,
	b.nome AS banco,
	cf.agencia AS agencia_cobranca,
	cf.numero_conta AS conta_cobranca,
	pes.opcional_1 AS rodape_1,
	pes.opcional_2 AS rodape_2
FROM	titulo_financeiro AS tf
	INNER JOIN tipo_cobranca AS tc ON (tc.id_tipo_cobranca = tf.id_tipo_cobranca)
	INNER JOIN pessoa AS p ON (p.id_pessoa = tf.id_credor_devedor)
	INNER JOIN sis_empresa AS se ON (se.id_empresa = tf.id_empresa)
	INNER JOIN sis_opcao_lista_valor AS solv ON (solv.id = tf.situacao AND solv.id_lista_valor = 'CEDBEA3BCD98445F98C29C5DAC4B809D')
	INNER JOIN pessoa AS pes ON (pes.id_pessoa = (SELECT f_obtem_parametro_inteiro('sistema.id_pessoa_empresa', tf.id_empresa, 0, 'S')))
	INNER JOIN municipio AS mu ON (mu.id_municipio = pes.id_municipio)
	INNER JOIN uf ON (uf.id_uf = mu.id_uf)
	LEFT JOIN conta_financeira AS cf ON (cf.id_conta_financeira = tc.id_conta_financeira)
	LEFT JOIN banco AS b ON (b.id_banco = cf.id_banco)
	LEFT OUTER JOIN endereco_pessoa AS ep ON (ep.id_pessoa = p.id_pessoa AND ep.id_tipo_endereco = 1)
	LEFT OUTER JOIN municipio AS m ON (m.id_municipio = ep.id_municipio)
	LEFT OUTER JOIN sis_usuario AS su ON (su.id_usuario = tf.id_usuario_lancamento)
	LEFT OUTER JOIN endereco_pessoa AS epe ON (epe.id_pessoa = pes.id_pessoa AND epe.id_tipo_endereco = 1)
	LEFT OUTER JOIN cliente AS c ON (c.id_cliente = tf.id_credor_devedor)
	LEFT OUTER JOIN tipo_faturamento AS fat ON (fat.id_tipo_faturamento = c.id_tipo_faturamento)
WHERE	tf.id_titulo_financeiro = :Id