x
1
declare
2
internalid integer;
3
begin
4
5
--DATAVENCIMENTO NULA
6
if datavencimento is null then
7
RAISE EXCEPTION 'datavencimento = %', datavencimento
8
USING HINT = 'Field datavencimento must be not null';
9
end if;
10
11
--SGLTIPOTITULO NULO
12
if sgltipotitulo is null then
13
RAISE EXCEPTION 'sgltipotitulo = %', sgltipotitulo
14
USING HINT = 'Field sgltipotitulo must be not null';
15
end if;
16
17
--VALORORIGINAL NULO
18
if valororiginal is null then
19
RAISE EXCEPTION 'valororiginal = %', valororiginal
20
USING HINT = 'Field valororiginal must be not null';
21
end if;
22
23
--VALORPAGOPARCIAL NULO
24
if valorpagoparcial is null then
25
RAISE EXCEPTION 'valorpagoparcial = %', valorpagoparcial
26
USING HINT = 'Field valorpagoparcial must be not null';
27
end if;
28
29
--VALORDESCONTO NULO
30
if valordesconto is null then
31
RAISE EXCEPTION 'valordesconto = %', valordesconto
32
USING HINT = 'Field valordesconto must be not null';
33
end if;
34
35
--VALORJUROS NULO
36
if valorjuros is null then
37
RAISE EXCEPTION 'valorjuros = %', valorjuros
38
USING HINT = 'Field valorjuros must be not null';
39
end if;
40
41
--LOOKUP CLIENTE
42
if idcliente is null and idcliente_externalid is not null then
43
idcliente = (SELECT parceiro.idparceiro FROM parceiro WHERE parceiro.codigoerp = PostFinanceiroTitulo.idcliente_externalid);
44
end if;
45
46
--CLIENTE NULO
47
if idcliente is null then
48
RAISE EXCEPTION 'idcliente = %', idcliente
49
USING HINT = 'Field idcliente must be not null';
50
end if;
51
52
--LOOKUP FILIAL
53
if idfiliallocal is null and idfiliallocal_externalid is not null then
54
idfiliallocal = (SELECT LOCAL.IDLOCAL FROM LOCAL WHERE LOCAL.codigoerp = PostFinanceiroTitulo.idfiliallocal_externalid);
55
end if;
56
57
--LOOKUP USUARIO
58
if idusuario is null and idusuario_externalid is not null then
59
idusuario = (SELECT usuario.idusuario FROM usuario WHERE usuario.codigoerp = PostFinanceiroTitulo.idusuario_externalid);
60
end if;
61
62
--CODIGOERP NULO
63
if externalid is null or externalid = '' then
64
RAISE EXCEPTION 'externalid = %', externalid
65
USING HINT = 'Field externalid must be not null';
66
end if;
67
68
--VALIDAÇÃO DE CODIGOERP JÁ EXISTENTE
69
IF (select distinct 1 FROM FINANCEIROTITULO WHERE CODIGOERP = PostFinanceiroTitulo.externalid) = 1
70
THEN RAISE EXCEPTION 'externalid = %', PostFinanceiroTitulo.externalid
71
USING HINT = 'The record (externalid = '|| PostFinanceiroTitulo.externalid ||') already exists, it was not possible to insert it.';
72
ELSE insert into financeirotitulo (idfinanceirotitulo, descricao, sgltipotitulo, numerodocumento, numeroparcela, datamovimento, datavencimento, datapagamento, idnpago, portador, valororiginal, valorpagoparcial, valordesconto, valorjuros, idusuario, idparceiro, idlocalfilial, observacao, codigoerp) values (nextval('seqpkfinanceirotitulo'),descricao, sgltipotitulo, numerodocumento, numeroparcela, TO_DATE(datamovimento,'YYYY-MM-DD'), TO_DATE(datavencimento,'YYYY-MM-DD'), TO_DATE(datapagamento,'YYYY-MM-DD'), idnpago, portador, valororiginal, valorpagoparcial, valordesconto, valorjuros, idusuario, idcliente, idfiliallocal, observacao, externalid) returning idfinanceirotitulo into internalid;
73
end if;
74
75
return query select internalid;
76
77
END;