Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE FUNCTION trg_conta_contabil_cliente() RETURNS trigger AS $BODY$
- declare
- --Versao[1.1.02]
- w_ccont_sint integer;
- w_natsaldo varchar(3);
- w_ccont_cli varchar(9);
- w_mensagem varchar(32000);
- BEGIN
- if TG_OP = 'INSERT' then
- --Pega a conta sintetica de cliente
- select pc.ccont_num ,cc.cd_nat_saldo
- into w_ccont_sint ,w_natsaldo
- from parametro_contabil pc
- left join conta_contabil cc on cc.ccont_num = pc.ccont_num
- where pc.cd_tipo_cta = 'CLIENTE';
- if w_ccont_sint is not null then
- select w_ccont_sint || lpad( cast( NEW.cli_num as text ), 5, '0' ) into w_ccont_cli;
- BEGIN
- insert into conta_contabil
- ( ccont_num
- , cod_conta
- , ds_conta
- , ds_conta_abrev
- , cd_sit
- , cd_nivel
- , cd_anali_sinte
- , cd_exige_ccusto
- , pai_ccont_num
- , dt_saldo_fim
- , vl_saldo_fim
- , cd_ordem
- , cd_perm_alt
- , cd_nat_saldo
- , us_cad
- , dt_cad
- , us_alt
- , dt_alt
- , emp_num
- )
- values ( to_number( w_ccont_cli, '99999999999999999999' )
- , w_ccont_cli
- , NEW.nome
- , retirar_acentuacao( NEW.nome ) || ' ' + retirar_acentuacao( NEW.nome_fantasia )
- , COALESCE( NEW.cd_sit, 'A' )
- , 5
- , 'A'
- , 'N'
- , w_ccont_sint, current_date
- , 0
- , to_number( substr( w_ccont_cli, 1, 1 ), '9' )
- , 'N'
- , w_natsaldo
- , NEW.us_cad
- , NEW.dt_cad
- , NEW.us_alt
- , NEW.dt_alt
- , NEW.atende_emp_num
- );
- exception
- when unique_violation then
- null;
- end;
- NEW.ccont_num := w_ccont_cli;
- end if;
- --
- end if;
- return NEW;
- end
- $BODY$
- LANGUAGE 'plpgsql';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement