Informações Funcionais da Tarefa
1aº Identifica a pessoa proprietária do documento CPF informado no boleto.
SELECT
p.pessoal
FROM
pessoal p
INNER JOIN pessoaldocumentacao pd ON p.pessoal = pd.pessoal
WHERE
pd.numero = :documento
AND pd.pessoaldocumentacaotipo = :tipodocumento
2aº Com base na pessoa identificada "proprietária" do CPF, o sistema identifca se a mesma é "responsável financeira" de algum contrato ativo.
SELECT
contratops
FROM
contratops
WHERE
pessoal = :pessoal
AND (codigo LIKE 'PSF%' OR codigo LIKE 'PSC%')
ORDER BY
validadeinicio DESC
1bº Identifica o beneficiário ativo com base no CPF informado no boleto. Se houver mais que um beneficiário ativo com o mesmo CPF o sistema utiliza o beneficiário mais recente cadastrado.
SELECT
beneficiario
FROM
beneficiario b
INNER JOIN pessoal p ON b.pessoal = p.pessoal
INNER JOIN pessoaldocumentacao pd ON p.pessoal = pd.pessoal
WHERE
pd.numero = :documento
AND pd.pessoaldocumentacaotipo = :tipodocumento
AND b.dataexclusao IS NULL
ORDER BY
b.beneficiario DESC
2bº Com base no beneficiário identificando "proprietário" do CPF", o sistema identifica o contrato ao qual o beneficiário pertence.
SELECT
contratops
FROM
beneficiario b
WHERE
b.beneficiario = :idbeneficiario
3º Com base no contrato do responsável ou beneficiário identificando, o sistema identifica os e-mails cadastrados na aba Contato do Contrato e utiliza seus dois últimos e-mails mais recentes cadastrados para o envio do boleto.
SELECT
pi.email
FROM
contratops cp
JOIN contratopscontato cpc ON cp.contratops = cpc.contratops
JOIN pessoalinternet pi ON cpc.pessoalinternet = pi.pessoalinternet
WHERE
cp.contratops = :contratops
AND pi.principal = 1
ORDER BY
pi.email DESC;
4º Com base no contrato do responsável ou beneficiário identificando, o sistema identifica diretamente os e-mails cadastrados na pessoa e utiliza seus dois últimos e-mails mais recentes cadastrados para o envio do boleto.
SELECT
pi.email
FROM
contratops cp
INNER JOIN pessoal p ON cp.pessoal = p.pessoal
INNER JOIN pessoalinternet pi ON p.pessoal = pi.pessoal
WHERE
cp.contratops = :contratops
AND pi.principal = 1
ORDER BY
pi.email DESC
3º Com base no contrato do beneficiário identiticado, o sistema identifica os 5 e-mails mais recentes cadastrados na aba "Contato" do contrato e utiliza para o envio dos boleto somente os e-mails onde o tipo seja Financeiro ou Geral, dando prioridade para os e-mails do tipo Financeiro. Somente se não houver e-mail com o tipo Financeiro o sistema envia o boleto para os e-mails do tipo Geral.
SELECT
ei.e_mail,
cpc.emailtipo
FROM
contratops cp
LEFT JOIN contratopscontato cpc ON cp.contratops = cpc.contratops
LEFT JOIN entidadeinternet ei ON cpc.entidadeinternet = ei.entidadeinternet
WHERE
cp.contratops = :idcontratops
AND ei.principal = 1
ORDER BY
ei.dtcriacao DESC
1º Identifica os contratos ativos com base no CNPJ informado no boleto.
SELECT
distinct cpc.contratops
FROM
contratops cps
LEFT JOIN contratopscontato cpc ON cps.contratops = cpc.contratops
LEFT JOIN entidadeinternet ei ON cpc.entidadeinternet = ei.entidadeinternet
LEFT JOIN entidade e ON ei.entidade = e.entidade
WHERE
e.cnpj = :cnpj
AND cps.validadefim IS NULL
2º Para cada contrato identificado, o sistema identifica os 5 e-mails mais recentes cadastrados na aba "Contato" do contrato e utiliza para o envio dos boleto somente os e-mails onde o tipo seja Financeiro ou Geral, dando prioridade para os e-mails do tipo Financeiro. Somente se não houver e-mail com o tipo Financeiro o sistema envia o boleto para os e-mails do tipo Geral.
SELECT
ei.e_mail,
cpc.emailtipo
FROM
contratops cp
LEFT JOIN contratopscontato cpc ON cp.contratops = cpc.contratops
LEFT JOIN entidadeinternet ei ON cpc.entidadeinternet = ei.entidadeinternet
WHERE
cp.contratops = :idcontratops
AND ei.principal = 1
ORDER BY
ei.dtcriacao DESC