text 剧本ComissãoCampeã
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 剧本ComissãoCampeã相关的知识,希望对你有一定的参考价值。
declare
v_cd_extrato gen_cota_extrato.cd_extrato%type;
procedure prc_ajuste_manual_grava(p_cd_extrato in cxa_extrato_diario.cd_extrato%type,
p_cd_pessoa_filial in cxa_extrato_diario.cd_pessoa_filial%type,
p_vl_movimento in varchar2,
p_id_movimento in varchar2,
p_ds_observacao in cxa_extrato_diario.ds_observacao%type,
p_cd_lancamento in cxa_extrato_diario.cd_lancamento%type default null,
p_pc_representante in cxa_extrato_diario.pc_representante%type default null,
p_vl_movimento_m in varchar2 default '0',
p_cd_cota in cxa_extrato_diario.cd_cota%type default 2,
p_ds_documento in cxa_extrato_diario.ds_documento%type default null,
p_cd_lancamento_origem in cxa_extrato_diario.cd_lancamento_origem_repasse%type default null,
p_cd_extrato_combo in varchar2 default null) is
-- Tables
v_table_extrato_diario pkg_gen_extrato_comissao_util.table_extrato_diario;
v_table_extrato_diario_alt pkg_gen_extrato_comissao_util.table_extrato_diario_alt;
-- Records
v_record_comissao pkg_gen_extrato_comissao_util.record_comissao;
-- Variáveis
v_ds_mensagem varchar2(1000);
vCdExtrato cxa_extrato_diario.cd_extrato%type;
v_vl_movimento_m cxa_extrato_diario.vl_movimento%type;
v_filial_parceira boolean default false;
arr_string_dados owa_util.vc_arr;
-- Exceptions
e_erro exception;
v_id_master_franqueado gen_pes_cvc.id_master_franqueado%type;
v_cd_pessoa_master_franqueado gen_pes_cvc.cd_pessoa_master_franqueado%type;
begin
if owa.num_cgi_vars > 0 then
if not wsgsec.security_check(p_package_name => owa_util.get_procedure) then
return;
end if;
end if;
v_table_extrato_diario.delete;
if p_id_movimento = 'D'
then
v_table_extrato_diario(1).vl_movimento := - (replace(replace(p_vl_movimento,'.',''),',','.'));
else
v_table_extrato_diario(1).vl_movimento := replace(replace(p_vl_movimento,'.',''),',','.');
end if;
v_vl_movimento_m := to_number(replace(replace(p_vl_movimento_m,'.',''),',','.'));
-- Recupera os dados de comissão do lançamento
v_record_comissao := pkg_gen_extrato_comissao_util.fun_record_comissao(p_cd_lancamento => p_cd_lancamento);
--Verifica se é Filial Parceira
v_filial_parceira := pkg_fin_vendas_parceiro.validaFilialParceira( p_codigo => p_cd_pessoa_filial,
p_tipo => pkg_fin_vendas_parceiro.CODIGO_PESSOA_FILIAL );
if v_table_extrato_diario(1).vl_movimento <> 0 then
v_table_extrato_diario(1).cd_extrato := p_cd_extrato;
v_table_extrato_diario(1).cd_movimento := null;
v_table_extrato_diario(1).id_movimento := 11; -- AJUSTE MANUAL
v_table_extrato_diario(1).cd_pessoa_filial := p_cd_pessoa_filial;
v_table_extrato_diario(1).cd_pessoa_vendedor := null;
v_table_extrato_diario(1).cd_pessoa_intermediario := null;
if p_cd_extrato_combo is not null then
arr_string_dados := fun_split(p_cd_extrato_combo,';');
v_table_extrato_diario(1).dt_movimento := to_date(arr_string_dados(2), 'dd/MM/rrrr');
else
v_table_extrato_diario(1).dt_movimento := sysdate;
end if;
if v_filial_parceira then
v_table_extrato_diario(1).cd_lancamento := p_cd_lancamento;
else
v_table_extrato_diario(1).cd_lancamento := null;
end if;
v_table_extrato_diario(1).vl_lancamento := 0;
v_table_extrato_diario(1).vl_taxa := 0;
v_table_extrato_diario(1).vl_bloqueado := 0;
v_table_extrato_diario(1).vl_deposito := 0;
v_table_extrato_diario(1).vl_desconto := 0;
v_table_extrato_diario(1).vl_abatimento := 0;
v_table_extrato_diario(1).pc_representante := 0;
v_table_extrato_diario(1).pc_intermediario := 0;
v_table_extrato_diario(1).vl_representante_calculado := 0;
v_table_extrato_diario(1).vl_intermediario_calculado := 0;
v_table_extrato_diario(1).vl_representante_retido := 0;
v_table_extrato_diario(1).vl_intermediario_retido := 0;
v_table_extrato_diario(1).dt_atualizacao := sysdate;
v_table_extrato_diario(1).cd_pessoa_mnt := pkg_global.pkg_cd_pessoa;
v_table_extrato_diario(1).nm_usuario := pkg_global.pkg_nm_usuario;
v_table_extrato_diario(1).ip_usuario := pkg_global.pkg_ip_usuario;
v_table_extrato_diario(1).ds_documento := p_ds_documento;
v_table_extrato_diario(1).cd_lancamento_origem_repasse := p_cd_lancamento_origem;
v_table_extrato_diario(1).ds_observacao := p_ds_observacao;
v_table_extrato_diario(1).cd_cota := p_cd_cota;
pkg_gen_extrato_comissao.prc_grava_movimento(p_table_extrato_diario => v_table_extrato_diario);
end if;
if p_cd_lancamento is not null and p_cd_cota = 2 and
p_id_movimento = 'D' and
((v_table_extrato_diario(1).vl_movimento <> 0) or
(v_vl_movimento_m <> 0)) then
if p_pc_representante > v_record_comissao.pc_representante then
v_ds_mensagem := 'Problemas na gravação da comissão !';
raise e_erro;
end if;
v_table_extrato_diario_alt.delete;
v_table_extrato_diario_alt(1).cd_lancamento := p_cd_lancamento;
v_table_extrato_diario_alt(1).sq_lancamento := null;
v_table_extrato_diario_alt(1).dt_lancamento := sysdate;
v_table_extrato_diario_alt(1).pc_representante_inicial := v_record_comissao.pc_representante;
v_table_extrato_diario_alt(1).pc_representante_final := p_pc_representante;
v_table_extrato_diario_alt(1).vl_representante_inicial := v_record_comissao.vl_representante;
v_table_extrato_diario_alt(1).vl_representante_final := v_table_extrato_diario_alt(1).vl_representante_inicial - abs(v_table_extrato_diario(1).vl_movimento);
v_table_extrato_diario_alt(1).vl_rep_master_franq_inicial := v_record_comissao.vl_repasse_master;
v_table_extrato_diario_alt(1).vl_rep_master_franq_final := abs(v_record_comissao.vl_repasse_master - abs(v_vl_movimento_m));
v_table_extrato_diario_alt(1).dt_atualizacao := sysdate;
v_table_extrato_diario_alt(1).cd_pessoa_mnt := pkg_global.pkg_cd_pessoa;
v_table_extrato_diario_alt(1).nm_usuario := pkg_global.pkg_nm_usuario;
v_table_extrato_diario_alt(1).ip_usuario := pkg_global.pkg_ip_usuario;
pkg_gen_extrato_comissao.prc_grava_alteracao(
p_table_extrato_diario_alt => v_table_extrato_diario_alt);
end if;
--se houver ajustes para o master franqueado
if v_vl_movimento_m <> 0 and p_cd_cota = 2 then
begin
select id_master_franqueado,
cd_pessoa_master_franqueado
into v_id_master_franqueado,
v_cd_pessoa_master_franqueado
from gen_pes_cvc
where cd_pessoa = p_cd_pessoa_filial;
if nvl(v_id_master_franqueado, 'N') = 'S' then
v_cd_pessoa_master_franqueado := p_cd_pessoa_filial;
end if;
exception
when others then
v_cd_pessoa_master_franqueado := null;
end;
-- Recupera número do extrato em aberto
vCdExtrato := pkg_gen_extrato_comissao_util.fun_cd_extrato(p_cd_pessoa => v_cd_pessoa_master_franqueado,
p_cd_cota => 3);
--se existir extrato aberto e não for filial própria
if vCdExtrato is not null and
pkg_gen_extrato_comissao_util.fun_id_filial_propria(p_cd_pessoa_filial => v_cd_pessoa_master_franqueado) = 'N' then
--insere ajuste do master
prc_ajuste_manual_grava(p_cd_extrato => vCdExtrato,
p_cd_pessoa_filial => v_cd_pessoa_master_franqueado,
p_vl_movimento => p_vl_movimento_m,
p_id_movimento => p_id_movimento,
p_ds_observacao => p_ds_observacao,
p_cd_lancamento => p_cd_lancamento,
p_pc_representante => p_pc_representante,
p_cd_cota => 3,
p_ds_documento => p_cd_lancamento,
p_cd_lancamento_origem => p_cd_lancamento,
p_cd_extrato_combo => p_cd_extrato_combo
);
elsif vCdExtrato is null then
htp.script('alert("Não existe extrato aberto para o Master Franqueado");');
else
htp.script('alert("O Master Franqueado é filial própria. Não é permitido ajuste manual");');
end if;
end if;
exception
when e_erro then
rollback;
dbms_output.put_line(v_ds_mensagem);
when others then
rollback;
dbms_output.put_line(sqlerrm);
end prc_ajuste_manual_grava;
begin
dbms_output.put_line('Começo');
for reg in ( select (select cd_pessoa from gen_pes_cvc where cd_filial_cvc = a.filial ) cd_pessoa
, a.filial
, a.valor
, a.descricao
from comissao_campea@desenv a ) loop
dbms_output.put_line(reg.cd_pessoa);
v_cd_extrato := pkg_gen_extrato_comissao_util.fun_cd_extrato(p_cd_pessoa => reg.cd_pessoa, p_cd_cota => 2);
prc_ajuste_manual_grava
( p_cd_extrato => v_cd_extrato
, p_cd_pessoa_filial => reg.cd_pessoa
, p_vl_movimento => reg.valor
, p_id_movimento => 'C'
, p_ds_observacao => reg.descricao );
commit;
end loop;
end;
以上是关于text 剧本ComissãoCampeã的主要内容,如果未能解决你的问题,请参考以下文章