Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION trg_conta_contabil_cliente() RETURNS trigger AS $BODY$
  2. declare
  3.   --Versao[1.1.02]
  4.   w_ccont_sint integer;
  5.   w_natsaldo   varchar(3);
  6.   w_ccont_cli  varchar(9);
  7.   w_mensagem   varchar(32000);
  8. BEGIN
  9.   if TG_OP = 'INSERT' then
  10.     --Pega a conta sintetica de cliente
  11.     select pc.ccont_num ,cc.cd_nat_saldo
  12.       into w_ccont_sint ,w_natsaldo
  13.       from parametro_contabil pc
  14.       left join conta_contabil cc on cc.ccont_num = pc.ccont_num
  15.      where pc.cd_tipo_cta = 'CLIENTE';
  16.  
  17.     if w_ccont_sint is not null then
  18.  
  19.       select w_ccont_sint || lpad( cast( NEW.cli_num as text ), 5, '0' ) into w_ccont_cli;
  20.  
  21.       BEGIN
  22.          insert into conta_contabil
  23.                     ( ccont_num
  24.                     , cod_conta
  25.                     , ds_conta
  26.                     , ds_conta_abrev
  27.                     , cd_sit
  28.                     , cd_nivel
  29.                     , cd_anali_sinte
  30.                     , cd_exige_ccusto
  31.                     , pai_ccont_num
  32.                     , dt_saldo_fim
  33.                     , vl_saldo_fim
  34.                     , cd_ordem
  35.                     , cd_perm_alt
  36.                     , cd_nat_saldo
  37.                     , us_cad
  38.                     , dt_cad
  39.                     , us_alt
  40.                     , dt_alt
  41.                     , emp_num
  42.                     )
  43.              values ( to_number( w_ccont_cli, '99999999999999999999' )
  44.                     , w_ccont_cli
  45.                     , NEW.nome
  46.                     , retirar_acentuacao( NEW.nome ) || ' ' + retirar_acentuacao( NEW.nome_fantasia )
  47.                     , COALESCE( NEW.cd_sit, 'A' )
  48.                     , 5
  49.                     , 'A'
  50.                     , 'N'
  51.                     , w_ccont_sint, current_date
  52.                     , 0
  53.                     , to_number( substr( w_ccont_cli, 1, 1 ), '9' )
  54.                     , 'N'
  55.                     , w_natsaldo
  56.                     , NEW.us_cad
  57.                     , NEW.dt_cad
  58.                     , NEW.us_alt
  59.                     , NEW.dt_alt
  60.                     , NEW.atende_emp_num
  61.                     );
  62.        exception
  63.          when unique_violation then
  64.            null;
  65.       end;
  66.  
  67.       NEW.ccont_num := w_ccont_cli;
  68.  
  69.     end if;
  70.   --
  71.   end if;
  72.  
  73.   return NEW;
  74. end
  75. $BODY$
  76.  LANGUAGE 'plpgsql';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement