andrebertoletti
11/6/2019 - 1:40 PM

Santander Mais Vezes

drop table systur.smv_servicos_log;
drop table systur.smv_servicos;
 
drop sequence systur.smv_servicos_log_sq01;
 
create sequence systur.smv_servicos_log_sq01 minvalue 1 maxvalue 9999999999 start with 1 increment by 1 nocache;
 
create table smv_servicos
            ( cd_servico        number   (3)
            , id_ambiente       varchar2 (1)   not null
            , ds_servico        varchar2 (400) not null
            , ds_url            varchar2 (800) not null
            , ds_username       varchar2  (50)
            , ds_password       varchar2  (50)
            , 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; 
 
alter table systur.smv_servicos add constraint smv_servicos_pk primary key (cd_servico, id_ambiente) using index tablespace syst_index_05;
 
comment on table systur.smv_servicos is 'Tabela com os serviços do Santander Mais Vezes.';
 
comment on column systur.smv_servicos.cd_servico     is 'Código do serviço';
comment on column systur.smv_servicos.id_ambiente    is 'Id do Ambiente';
comment on column systur.smv_servicos.ds_servico     is 'Nome do serviço';
comment on column systur.smv_servicos.ds_url         is 'URL do serviço';
comment on column systur.smv_servicos.ds_username    is 'Usuário informado pelo Santander.';
comment on column systur.smv_servicos.ds_password    is 'Senha informada pelo Santander.';
comment on column systur.smv_servicos.dt_atualizacao is 'Data de atualização';
comment on column systur.smv_servicos.nm_usuario     is 'Nome do usuário que fez a alteração';
comment on column systur.smv_servicos.cd_pessoa_mnt  is 'Código pessoa do usuário que fez a alteração';
comment on column systur.smv_servicos.ip_usuario     is 'IP do usuário que fez a alteração';
 
create table smv_servicos_log
            ( cd_execucao           number   (10)  not null
            , cd_servico            number   (3)
            , cd_proposta           number   (10)
            , cd_proposta_santander number   (10)
            , cd_proposta_externa   number   (10)
            , id_ambiente           varchar2 (1)   not null
            , ds_envio              clob           not null
            , ds_retorno            clob           not null
            , ds_erro               varchar2(4000)
            , ds_arquivo            blob
            , 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; 
 
alter table systur.smv_servicos_log add constraint smv_servicos_log_pk primary key (cd_execucao,cd_servico) using index tablespace syst_index_05;
 
alter table systur.smv_servicos_log add constraint smv_servicos_log_fk01 foreign key (cd_proposta) references systur.ven_transacao_proposta (cd_proposta); 
alter table systur.smv_servicos_log add constraint smv_servicos_log_fk02 foreign key (cd_servico,id_ambiente) references systur.smv_servicos (cd_servico,id_ambiente); 
 
comment on table systur.smv_servicos_log is 'Tabela com os logs dos serviços do Santander Mais Vezes.';
 
comment on column systur.smv_servicos_log.cd_execucao           is 'Número gerado pela sequence smv_servicos_log_sq01';
comment on column systur.smv_servicos_log.cd_proposta           is 'Código da Proposta'; 
comment on column systur.smv_servicos_log.cd_proposta_santander is 'Código da Proposta gerado no Santander.'; 
comment on column systur.smv_servicos_log.cd_proposta_santander is 'Código da Proposta externa gerado no Santander.'; 
comment on column systur.smv_servicos_log.cd_servico            is 'Código do Serviço';
comment on column systur.smv_servicos_log.ds_envio              is 'Json de envio';
comment on column systur.smv_servicos_log.ds_retorno            is 'Json de retorno';
comment on column systur.smv_servicos_log.ds_erro               is 'Descrição do erro';
comment on column systur.smv_servicos_log.ds_arquivo            is 'Boleto gerado pelo Santander.';
comment on column systur.smv_servicos_log.dt_atualizacao        is 'Data de atualização';
comment on column systur.smv_servicos_log.nm_usuario            is 'Nome do usuário que fez a alteração';
comment on column systur.smv_servicos_log.cd_pessoa_mnt         is 'Código pessoa do usuário que fez a alteração';
comment on column systur.smv_servicos_log.ip_usuario            is 'IP do usuário que fez a alteração';
 
 
insert into systur.smv_servicos values (1,'H','Token','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/uaa/hml/auth/token',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (2,'H','Integration Code','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/api/hml/tab/code/?',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (3,'H','Objeto Financiado','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/api/hml/domains/store/?/financed-objects/',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (4,'H','Subsegmento','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/api/hml/tab/subsegment/?',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (5,'H','Identificação/Pré-Análise','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/api/hml/identification/assets/',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (6,'H','Simulação','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/api/hml/simulation/assets/',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (7,'H','Captura','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/api/hml/capture/assets/proposal/',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (8,'H','Status','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/api/hml/status/proposal/?',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (9,'H','Cancelamento','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/api/pro/cancel/proposal/',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (10,'H','Consulta de CEP','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/api/hml/address/zipcode/?/address',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');
insert into systur.smv_servicos values (11,'H','Boleto','http://apihom.services.cvc.com.br/SantanderMaisVezesHml/apicdchml/api/bens-documento/download-boleto-integra',null,null,sysdate,'MTZCPD230',6772910,'1.1.1.1');

/
create or replace trigger systur.smv_servicos_log_usu
  before insert or update on systur.smv_servicos_log for each row
declare
  vcd_pessoa_mnt smv_servicos_log.cd_pessoa_mnt%type := nvl(upper(trim(wsgsec.get_cd_pessoa_user)),0);
  vip_usuario    smv_servicos_log.ip_usuario%type := sys_context('userenv','ip_address');
  vnm_usuario    smv_servicos_log.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;
/
 
create or replace trigger systur.smv_servicos_usu
  before insert or update on systur.smv_servicos for each row
declare
  vcd_pessoa_mnt smv_servicos.cd_pessoa_mnt%type := nvl(upper(trim(wsgsec.get_cd_pessoa_user)),0);
  vip_usuario    smv_servicos.ip_usuario%type := sys_context('userenv','ip_address');
  vnm_usuario    smv_servicos.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;
/