Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 11 Próxima »

01. DADOS GERAIS


Produto:

TOTVS CRM Automação da Força de Vendas

Linha de Produto:

Linha TOTVS CRM SFA

Módulo:Venda
Função:Calcular comissão online
Ticket:
Requisito/Story/Issue:

02. ESCOPO FUNCIONAL

A aplicação deverá permitir a visualização do percentual de comissão do usuário para o produto no momento da venda.

03. ESCOPO TÉCNICO


Deverão ser criados os seguintes parâmetros para atender a comissão no winthor, todos os parâmetros deverão estar disponíveis na opção 18 do tools.

Chave= sim3g.pedido.comissao.usaPcTabComisao;

Descrição= Parâmetro que indica se o cliente usa a tabela PcTabComiss.

Valor= 0

Observação: Parâmetro que indica se o cliente usa a tabela PcTabComiss.

Modulo = Venda;

Contexto = Pedido;

Ambiente= Todos;


Chave= sim3g.pedido.comissao. UsaPcComissaoUsur;

Descrição= Parâmetro que indica se o cliente usa a tabela UsaPcComissaoUsur.

Valor= 0

Observação: Parâmetro que indica se o cliente usa a tabela UsaPcComissaoUsur.

Modulo = Venda;

Contexto = Pedido;

Ambiente= Todos;


Chave= sim3g.pedido.comissao. UsaPCComissaoPlPag;

Descrição= Parâmetro que indica se o cliente usa a tabela UsaPCComissaoPlPag.

Valor= 0

Observação: Parâmetro que indica se o cliente usa a tabela UsaPCComissaoPlPag.

Modulo = Venda;

Contexto = Pedido;

Ambiente= Todos;


Chave= sim3g.pedido.comissao. UsaPCComissaoRegiao;

Descrição= Parâmetro que indica se o cliente usa a tabela UsaPCComissaoRegiao.

Valor= 0

Observação: Parâmetro que indica se o cliente usa a tabela UsaPCComissaoRegiao.

Modulo = Venda;

Contexto = Pedido;

Ambiente= Todos;


Chave= sim3g.pedido.comissao. UsaPCComissaoFilial;

Descrição= Parâmetro que indica se o cliente usa a tabela UsaPCComissaoFilial.

Valor= 0

Observação: Parâmetro que indica se o cliente usa a tabela UsaPCComissaoFilial.

Modulo = Venda;

Contexto = Pedido;

Ambiente= Todos;


Deverá ser criado a opção “HABILITAR_COMISSAO_ONLINE” na página “Configuração-> Configuração Pedido -> Geral” com as seguintes opções:


Campo= HABILITAR_COMISSAO_ONLINE;

Situação= Booleano (por padrão inativo);

Label = standard.pedidoconfig.comissao.calculo.online com valor padrão =’ Calcular Comissão’;

Descrição= Habilita o cálculo de comissão online.


Quando o campo “HABILITAR_COMISSAO_ONLINE” estiver ativo o botão “Calcular Comissão”

deverá ser exibido menu superior do pedido conforme imagem abaixo:

No momento em que o usuário estiver realizando o pedido, o mesmo poderá realizar o cálculo da comissão de forma online para obter o % de comissão que o produto está gerando.

A cor do botão deverá vir previamente amarela, marcando que a comissão deverá ser calculada. Ao finalizar o processo de calculo de comissões, a cor do botão deverá ser atualizada para verde.

Consulta:

DECLARE
     p_codcomissao        number;
     p_rotinacomissao    varchar2;
     p_LetraComiss         varchar2;
     p_mensagem           varchar2;

BEGIN
     EXEC FUNCOESVENDAS.DEFINIR_COMISSAO_ITEM_VENDIDO(:p_NumRegiao, :p_perluc, :p_perdesc, :p_UsaPcTabComiss, :p_UsaPcComissaoUsur, :p_UsaPCComissaoPlPag, :p_UsaPCComissaoRegiao, :p_UsaPCComissaoFilial, :p_usacomissaoporrca, : p_OrdemAvaliacaoComissaoRCA, :p_usacomissaoporcliente, :p_USACOMISSAOPORLINHAPROD, :p_comissaorcatipovenda, :p_tipovend, :p_percent, :p_percent2, :p_codprod, :p_pcomint1, :P_PCOMEXT1, :P_PCOMREP1, :p_codlinhaprod, :p_tipocomissao, :p_codepto, :p_codsec, :p_classeproduto, :p_tipovenda, :p_codplpag, :p_data, :p_codfilial, :p_codusur, :p_considerarcomissaozero, :p_tipoavaliacaocomissao, :p_percomcli, :p_codcli, :p_coddesconto, :p_codcomissao, :p_rotinacomissao, :p_codauxiliar, :p_pcomint1_emb, :P_PCOMEXT1_emb, :P_PCOMREP1_emb, :p_utilizavendaporembalagem, :p_tabela, :p_venda, :p_numcasasdecvenda);
    dbms_output.put_line(p_codcomissao,p_rotinacomissao,p_LetraComiss,p_mensagem)
END;

Documentação de apoio para a chamada via java:
https://docs.oracle.com/cd/A84870_01/doc/java.816/a81354/samapp2.htm


Mapeamento dos campos que serão enviados:

    :p_NumRegiao=tabelapreco.codigoerp (codigoerp da tabela de preço selecionada NO cabeçalho),
    :p_perluc=(precovenda - precocusto)/precocusto*100,
    :p_perdesc=pedidoproduto.percentualdesconto,
    :p_UsaPcTabComiss=parametro.valor do parâmetro sim3g.pedido.comissao.usaPcTabComisao,
    :p_UsaPcComissaoUsur=parametro.valor do parâmetro sim3g.pedido.comissao. UsaPcComissaoUsur,
    :p_UsaPCComissaoPlPag= parametro.valor do parâmetro sim3g.pedido.comissao. UsaPCComissaoPlPag,
    :p_UsaPCComissaoRegiao=parametro.valor do parâmetro sim3g.pedido.comissao. UsaPCComissaoRegiao,
    :p_UsaPCComissaoFilial=parametro.valor do parâmetro sim3g.pedido.comissao. UsaPCComissaoFilial,
    :p_usacomissaoporrca=(SELECT usacomissaoporrca FROM PCCONSUM p),
    :P_ORDEMAVALIACAOCOMISSAORCA=(SELECT ordemavaliacaocomissaorca FROM PCCONSUM p),
    :P_USACOMISSAOPORCLIENTE=(SELECT usacomissaoporcliente FROM PCCONSUM p),
    :P_USACOMISSAOPORLINHAPROD=(SELECT usacomissaoporlinhaprod FROM PCCONSUM p),
    :P_COMISSAORCATIPOVENDA=(SELECT comissaorcatipovenda FROM PCCONSUM p),
    :P_TIPOVEND=(SELECT tipovend FROM pcusuari WHERE codusur = (SELECT codigoerp FROM usuario WHERE idusuario = :Profissional_selecionado_no_Pedido))
    :P_PERCENT=(SELECT PERCENT FROM pcusuari WHERE codusur = (SELECT codigoerp FROM usuario WHERE idusuario = :Profissional_selecionado_no_Pedido))
    :P_PERCENT2=(SELECT PERCENT2 FROM pcusuari WHERE codusur = (SELECT codigoerp FROM usuario WHERE idusuario = :Profissional_selecionado_no_Pedido))
    :P_CODPROD = (SELECT codigoerp FROM produto WHERE produto= :PRODUTO_INSERIDO_NO_CARRINHO), --codigoerp do produto
    :P_PCOMINT1=(SELECT pcomint1 FROM pcprodut WHERE codprod=(SELECT codigoerp FROM produto WHERE produto= :PRODUTO_INSERIDO_NO_CARRINHO)),
    :P_PCOMEXT1=(SELECT pcomext1 FROM pcprodut WHERE codprod=(SELECT codigoerp FROM produto WHERE produto= :PRODUTO_INSERIDO_NO_CARRINHO)),
    :P_PCOMREP1=(SELECT pcomrep1 FROM pcprodut WHERE codprod=(SELECT codigoerp FROM produto WHERE produto= :PRODUTO_INSERIDO_NO_CARRINHO)),
    :p_codlinhaprod=(SELECT codlinhaprod FROM pcprodut WHERE codprod=(SELECT codigoerp FROM produto WHERE produto= :PRODUTO_INSERIDO_NO_CARRINHO)),
    :p_tipocomissao=(SELECT tipocomissao FROM pcprodut WHERE codprod=(SELECT codigoerp FROM produto WHERE produto= :PRODUTO_INSERIDO_NO_CARRINHO)),
    :p_codepto=    (SELECT codepto FROM pcprodut WHERE codprod=(SELECT codigoerp FROM produto WHERE produto= :PRODUTO_INSERIDO_NO_CARRINHO)),
    :p_codsec=(SELECT p_codsec FROM pcprodut WHERE codprod=(SELECT codigoerp FROM produto WHERE produto= :PRODUTO_INSERIDO_NO_CARRINHO)),
    :p_classeproduto=(SELECT p_classeproduto FROM pcprodut WHERE codprod=(SELECT codigoerp FROM produto WHERE produto= :PRODUTO_INSERIDO_NO_CARRINHO)),
    :p_tipovenda= (SELECT tipovenda FROM pcplpag WHERE codplpag=:CONDICAOPAGAMENTO_SELECINADA_NO_PEDIDO),
    :p_codplpag= (SELECT codigoerp FROM condicaopagamento WHERE idcondicaopagamento=:CONDICAOPAGAMENTO_SELECINADA_NO_PEDIDO),
    :p_data=(SELECT datapedido FROM pedido WHERE idpedido=:pedido_selecionado),
    :p_codfilial=(SELECT numeromatricula FROM LOCAL WHERE idlocal = (FILIAL_SELECIONADA_NO_PEDIDO),
    :p_codusur=(SELECT CODIGOERP FROM USUARIO WHERE IDUSUARIO=:PROFISSIONAL_SELECIONADO_NO_PEDIDO),
    :p_considerarcomissaozero=(SELECT considerarcomissaozero FROM pcfilial WHERE codigo= (SELECT numeromatricula FROM LOCAL WHERE idlocal = (FILIAL_SELECIONADA_NO_PEDIDO)),                                     
    :p_tipoavaliacaocomissao=(SELECT tipoavaliacaocomissao FROM pcfilial WHERE codigo= (SELECT numeromatricula FROM LOCAL WHERE idlocal = (FILIAL_SELECIONADA_NO_PEDIDO)),
    :p_percomcli=(SELECT percomcli FROM pcclient WHERE codcli = (SELECT codigoerp FROM parceiro WHERE idparceiro=:CLIENTE_SELECIONADO_PEDIDO)),
    :p_codcli=(SELECT codcli FROM pcclient WHERE codcli = (SELECT codigoerp FROM parceiro WHERE idparceiro=:CLIENTE_SELECIONADO_PEDIDO)),
    :p_coddesconto=(SELECT CODIGOERP FROM DESCONTO WHERE iddesconto = desconto_aolicado_automaticamente_no_item),
    :p_codauxiliar= (SELECT codigobarra FROM produtoembalagem WHERE idproduto =:PRODUTO_SELECONADO AND idembalagem=:Emabalagem_seleconada),
    :p_pcomint1_emb= NULL,                                                   
    :P_PCOMEXT1_emb=NULL,
    :P_PCOMREP1_emb=NULL,                                                  
    :p_utilizavendaporembalagem = parametro.valor do parâmetro sim3g.pedido.embalagem.utilizavendaporembalagem,
    :p_tabela=pedidoproduto.precooriginal do produto seleconado,
    :p_venda=pedidoproduto.precovenda do produtoselecionado,
    :p_numcasasdecvenda= (SELECT numcasasdecvenda FROM pcconsum)

Os valores de retorno deverão ser inseridos nos seguintes campos:

Perc_comissao:

             ANDROID_CARD_PERCENTUAL_COMISSAO

             ANDROID_CARRINHO_PERCENTUAL_COMISSAO

             ANDROID_NEGOCIACAO_PERCENTUAL_COMISSAO

             WEB_GRID_PERCENTUAL_COMISSAO


Vlr_comissao:

             ANDROID_CARD_VALOR_COMISSAO

             ANDROID_CARRINHO_VALOR_COMISSAO

             ANDROID_NEGOCIACAO_PERCENTUAL_COMISSAO

             WEB_GRID_VALOR_COMISSAO

Os valores e percentuais de comissão deverão ser persistidos nos campos pedidoproduto.valorcomissao e pedidoproduto.percentualcomissao, respectivamente.


No resumo do pedido, a comissão deverá ser implementada nos campos:

VALOR_COMISSAO = SUM(item."Vlr_comissao")


Sempre que o botão “HABILITAR_COMISSAO_ONLINE” estiver ativo ao trocar a quantidade, preço de venda, % Desconto, R$ Desconto no item, a função de comissão deverá ser marcada para reprocessamento de forma obrigatória (cor amarela do botão de cálculo). O mesmo ocorre ao inserir um novo produto no carrinho após a execução da comissão para os itens anteriores. O mesmo comportamento ocorre atualmente para a simulação de impostos online.




  • Sem rótulos