x
1
declare
2
idparceiro_ integer;
3
sgltipopessoa_ varchar(10);
4
internalid integer;
5
idcidade_ integer;
6
idunidadefederativa integer;
7
curdate date;
8
begin
9
if idnativo is null then
10
RAISE EXCEPTION 'idnativo = %', idnativo
11
USING HINT = 'Field idnativo must be not null';
12
end if;
13
14
select into idparceiro_, sgltipopessoa_
15
idparceiro,sgltipopessoa from parceiro where idparceiro = idcliente ;
16
IF NOT FOUND THEN
17
RAISE EXCEPTION 'idcliente = %', idcliente
18
USING HINT = 'There is no idcliente in cliente';
19
end if;
20
21
if PostClienteLocal.idcidade is not null then
22
select into idcidade_,idunidadefederativa
23
c.idcidade,c.idunidadefederativa from cidade c where c.idcidade = PostClienteLocal.idcidade ;
24
IF NOT FOUND THEN
25
RAISE EXCEPTION 'idcidade = %', idcidade
26
USING HINT = 'There is no idcidade in cidade';
27
end if;
28
end if;
29
30
if PostClienteLocal.idcidade is null and PostClienteLocal.idcidade_externalid is not null then
31
select into idcidade_,idunidadefederativa
32
c.idcidade,c.idunidadefederativa from cidade c where c.codigoerp = PostClienteLocal.idcidade_externalid ;
33
IF NOT FOUND THEN
34
RAISE EXCEPTION 'idcidade = %', idcidade
35
USING HINT = 'There is no idcidade in cidade';
36
end if;
37
end if;
38
39
curdate := 'now';
40
41
insert into local (idlocal,idnsuframa,idnipi,idnativo,idnrequerdataentrega,idnrequernumeropedidocliente,numeromatricula,bairro,cnpj,documentoidentificacao,cep,inscricaoestadual,descricao,inscricaomunicipal,logradouro,numerologradouro,complemento,dataultimaatualizacao,datacadastro,idnexportadoerp,idcidade,idunidadefederativafiscal,codigoerp) values (nextval('seqpklocal'),0,0,idnativo,0,0,numeromatricula,bairro,cgc,rg,cep,inscricaoestadual,descricao,inscricaomunicipal,logradouro,numerologradouro,complemento,curdate,curdate,1,idcidade_,idunidadefederativa,externalid) returning idlocal into internalid;
42
43
insert into localidentificacao (idlocalidentificacao,idlocal,documentoidentificacao,idtipoidentificacao,idnexportadoerp,codigoerp) values (nextval('seqpklocalidentificacao'),internalid,cgc,(select idtipoidentificacao from tipoidentificacao where sigla = CASE WHEN sgltipopessoa_ = 'PJ' THEN 'cnpj' ELSE 'cpf' END),1,externalid) ;
44
45
insert into parceirolocal (idparceirolocal,idparceiro,idlocal,idnexportadoerp,codigoerp) values (nextval('seqpkparceirolocal'),idparceiro_,internalid,1,externalid) ;
46
47
insert into localfilial (idlocalfilial,idlocal,idfilial,idnpadrao,codigoerp) values (nextval('seqpklocalfilial'),internalid,idfiliallocal,1,externalid) ;
48
49
insert into localtipolocal (idlocaltipolocal,idlocal,idtipolocal,idnativo,idnpadrao,idnexportadoerp,codigoerp) values (nextval('seqpklocaltipolocal'),internalid,idtipolocal,idnativo,1,1,externalid) ;
50
51
return query select internalid;
52
END;