andrebertoletti
9/26/2017 - 4:40 PM

Fornecedor

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;