Workflow de Fornecedor
create or replace trigger systur.fnc_solicitacao_usu
before insert or update on systur.fnc_solicitacao for each row
declare
vcd_pessoa_mnt fnc_solicitacao.cd_pessoa_mnt%type := nvl(upper(trim(wsgsec.get_cd_pessoa_user)),0);
vip_usuario fnc_solicitacao.ip_usuario%type := sys_context('userenv','ip_address');
vnm_usuario fnc_solicitacao.nm_usuario%type := nvl(upper(trim(wsgsec.get_user)),user);
begin
if owa.num_cgi_vars > 0 then
vip_usuario := owa_util.get_cgi_env('remote_addr');
end if;
case
when inserting then
:new.dt_atualizacao := nvl(:new.dt_atualizacao,sysdate);
:new.cd_pessoa_mnt := nvl(:new.cd_pessoa_mnt,vcd_pessoa_mnt);
:new.ip_usuario := nvl(:new.ip_usuario,vip_usuario);
:new.nm_usuario := nvl(:new.nm_usuario,vnm_usuario);
when updating then
if not updating('dt_atualizacao') then
:new.dt_atualizacao := sysdate;
end if;
if not updating('cd_pessoa_mnt') then
:new.cd_pessoa_mnt := vcd_pessoa_mnt;
end if;
if not updating('ip_usuario') then
:new.ip_usuario := vip_usuario;
end if;
if not updating('nm_usuario') then
:new.nm_usuario := vnm_usuario;
end if;
else
null;
end case;
end;
/
drop table systur.fnc_solicitacao_contato;
drop table systur.fnc_solicitacao;
drop sequence systur.fnc_solicitacao_sq01;
create sequence systur.fnc_solicitacao_sq01 minvalue 1 maxvalue 9999999999 start with 1 increment by 1 nocache;
create table systur.fnc_solicitacao
( cd_solicitacao number (10) default systur.fnc_solicitacao_sq01.nextval
, cd_pessoa number (10) not null
, id_status char (1) default 'A'
, cd_cnpj number (14)
, nm_fantasia varchar2 (40)
, nm_razao_social varchar2 (40)
, id_nacional char (1)
, cd_cep number (8)
, nr_endereco number (6)
, ds_complemento varchar2 (40)
, nr_inscricao_estadual varchar2 (15)
, nr_inscricao_municipal varchar2 (15)
, cd_banco number (4)
, cd_agencia number (4)
, cd_conta_corrente varchar2 (25)
, dv_conta_corrente char (1)
, tp_conta_corrente char (1)
, id_retencao_impostos char (1) default 'N'
, cd_pessoa_fornecedor number (10)
, dt_atualizacao date not null
, nm_usuario varchar2 (30) not null
, cd_pessoa_mnt number (8) not null
, ip_usuario varchar2 (50) ) tablespace syst_dados_05;
comment on table systur.fnc_solicitacao is 'Informações de solicitação de fornecedor.';
comment on column systur.fnc_solicitacao.cd_solicitacao is 'Cod. da solicitação';
comment on column systur.fnc_solicitacao.cd_pessoa is 'Cod. da pessoa que realizou a solicitação';
comment on column systur.fnc_solicitacao.id_status is 'Status da solicitação (Aberto,Fechado,Cancelado)';
comment on column systur.fnc_solicitacao.cd_cnpj is 'CNPJ informado para a busca de fornecedor';
comment on column systur.fnc_solicitacao.nm_fantasia is 'Nome Fantasia';
comment on column systur.fnc_solicitacao.nm_razao_social is 'Nome Razão Social';
comment on column systur.fnc_solicitacao.id_nacional is 'Indica se fornecedor é nacional';
comment on column systur.fnc_solicitacao.cd_cep is 'CEP do fornecedor';
comment on column systur.fnc_solicitacao.nr_endereco is 'Número do endereço';
comment on column systur.fnc_solicitacao.ds_complemento is 'Complemento do endereço';
comment on column systur.fnc_solicitacao.nr_inscricao_estadual is 'Número da inscricao estadual';
comment on column systur.fnc_solicitacao.nr_inscricao_municipal is 'Número da inscricao municipal';
comment on column systur.fnc_solicitacao.cd_banco is 'Código do Banco';
comment on column systur.fnc_solicitacao.cd_agencia is 'Código da Agência';
comment on column systur.fnc_solicitacao.cd_conta_corrente is 'Conta Corrente';
comment on column systur.fnc_solicitacao.tp_conta_corrente is 'Tipo de Conta';
comment on column systur.fnc_solicitacao.dv_conta_corrente is 'Dígito da Conta';
comment on column systur.fnc_solicitacao.id_retencao_impostos is 'Indica se retém impostos';
comment on column systur.fnc_solicitacao.cd_pessoa_fornecedor is 'Cd_pessoa gerado após a importação';
comment on column systur.fnc_solicitacao.dt_atualizacao is 'Data Atualizacão';
comment on column systur.fnc_solicitacao.nm_usuario is 'Nome Usuario';
comment on column systur.fnc_solicitacao.cd_pessoa_mnt is 'Codigo da pessoa que fez a ultima atualizacão';
comment on column systur.fnc_solicitacao.ip_usuario is 'IP Usuario';
alter table systur.fnc_solicitacao add constraint fnc_solicitacao_pk primary key (cd_solicitacao) using index tablespace syst_index_05;
alter table systur.fnc_solicitacao add constraint fnc_solicitacao_fk01 foreign key (cd_pessoa) references systur.gen_pessoa (cd_pessoa);
alter table systur.fnc_solicitacao add constraint fnc_solicitacao_fk02 foreign key (cd_pessoa_fornecedor) references systur.gen_pes_fornecedor (cd_pessoa);
create index systur.fnc_solicitacao_fk01 on systur.fnc_solicitacao (cd_pessoa) tablespace syst_index_05;
create index systur.fnc_solicitacao_fk02 on systur.fnc_solicitacao (cd_pessoa_fornecedor) tablespace syst_index_05;
alter table systur.fnc_solicitacao add constraint fnc_solicitacao_ck01 check (id_status in ('A','C','F'));
alter table systur.fnc_solicitacao add constraint fnc_solicitacao_ck02 check (id_nacional in ('S','N'));
alter table systur.fnc_solicitacao add constraint fnc_solicitacao_ck03 check (id_retencao_impostos in ('S','N'));
create table systur.fnc_solicitacao_contato
( cd_solicitacao number (10) not null
, nm_contato varchar2 (40)
, id_telefone char (1)
, cd_email varchar2 (256)
, nr_ddi number (4)
, nr_ddd number (4)
, nr_telefone number (30)
, nr_ramal number (4) ) tablespace syst_dados_05;
comment on table systur.fnc_solicitacao_contato is 'Contatos associados à solicitacao.';
comment on column systur.fnc_solicitacao_contato.cd_solicitacao is 'Codigo da solicitacao.';
comment on column systur.fnc_solicitacao_contato.nm_contato is 'Nome do contato.';
comment on column systur.fnc_solicitacao_contato.id_telefone is 'Identificador do Telefone (Telefone/Fax/Celular).';
comment on column systur.fnc_solicitacao_contato.cd_email is 'Email do contato.';
comment on column systur.fnc_solicitacao_contato.nr_ddi is 'Numero do DDI.';
comment on column systur.fnc_solicitacao_contato.nr_ddd is 'Numero do DDD.';
comment on column systur.fnc_solicitacao_contato.nr_telefone is 'Numero do Telefone.';
comment on column systur.fnc_solicitacao_contato.nr_ramal is 'Numero do Ramal.';
alter table systur.fnc_solicitacao_contato add constraint fnc_solicitacao_contato_fk01 foreign key (cd_solicitacao) references systur.fnc_solicitacao (cd_solicitacao);
create index systur.fnc_solicitacao_contato_fk01 on systur.fnc_solicitacao_contato (cd_solicitacao) tablespace syst_index_05;