x
1
begin
2
-- VALIDACAO
3
-- EXTERNALID E INTERNALID NAO INFORMADOS
4
if coalesce(PutTipoSitPedidoProduto.externalid,'')='' and PutTipoSitPedidoProduto.internalid is null then
5
RAISE EXCEPTION 'externalid = % and internalid = %', PutTipoSitPedidoProduto.externalid, PutTipoSitPedidoProduto.internalid
6
USING HINT = 'Fields internalid and externalid must be not null';
7
end if;
8
9
--IDNATIVO FORA DO PADRAO
10
if idnativo not in (0,1,-99999) then
11
RAISE EXCEPTION 'idnativo = %', idnativo
12
USING HINT = 'Field must not be null or different from 1 or 0.';
13
end if;
14
15
--DESCRICAO NULA
16
if descricao is null then
17
RAISE EXCEPTION 'descricao = %', descricao
18
USING HINT = 'Field descricao must be not null';
19
end if;
20
21
-- LOOKUP
22
-- TIPO SITUACAO PEDIDO PRODUTO
23
IF PutTipoSitPedidoProduto.internalid IS NULL
24
THEN PutTipoSitPedidoProduto.internalid = (SELECT idtipositpedidoproduto FROM tipositpedidoproduto WHERE CODIGOERP = PutTipoSitPedidoProduto.externalid);
25
END IF;
26
27
-- UPDATE
28
update tipositpedidoproduto set
29
descricao = case when PutTipoSitPedidoProduto.descricao = 'NOVALUEWS' then tipositpedidoproduto.descricao else PutTipoSitPedidoProduto.descricao end,
30
idnativo = case when PutTipoSitPedidoProduto.idnativo = -99999 then tipositpedidoproduto.idnativo else PutTipoSitPedidoProduto.idnativo end,
31
codigoerp = case when PutTipoSitPedidoProduto.externalid = 'NOVALUEWS' then codigoerp else PutTipoSitPedidoProduto.externalid end
32
where idtipositpedidoproduto = internalid;
33
34
return query select internalid;
35
END;