Comissão de Venda

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
rakano
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Ter, 17 Abr 2012 5:55 pm

Boa Tarde...


Estou fazendo um relatório de apuração de vendas, onde a comissão do vendedor e pago de acordo com a liquidez dos pedidos, exemplo:

A data do faturamento do pedido e de 01/02 a 28/02
A data de pagamento dos titulos e de 01/03 a 31/03

a questão e que as vezes existem cheques devolvidos nesse segundo periodo, como faço para esses titulos que forma devolvidos possam aparecer no relatorio. Desde já grato pela anteção.


Selecionar tudo

SELECT
 PCNFSAID.numped             AS Pedido,
 PCNFSAID.numnota            AS Nota,
 PCPREST.numtransvenda       AS Nvenda,
 PCNFSAID.numtransvenda      AS Nvenda1,
 PCPREST.duplic              AS Duplicata,
 PCPREST.prest               AS Prestação,
 PCPREST.dtpag               AS Data_do_Pagamento,
 PCPREST.dtemissao           AS Data_de_Emissao, 
 PCPREST.codcob              AS Codcob,
 pcprest.codusur             AS Cod_RCA,
 pcprest.vpago               AS Valor_Pago,       
 pcprest.codfilial           AS Cod_Filial,
 PCUSUARI.percent2           AS Percent2,
 PCPEDC.VLTOTAL              AS Valor_Total,
 PCPEDC.VLCUSTOFIN           AS Valor_Custo_Financeiro,
 PCCLIENT.CODCLI             AS Cod_Cliente,
 PCCLIENT.CLIENTE            AS Cliente,
 PCUSUARI.NOME               AS Nome,
 PCUSUARI.CODUSUR            AS Codusur2,

:DTINI AS Liquidez_Data_Inicio, :DTFIM AS Liquidez_Data_Fim,
:DTFINI AS Faturamento_Data_Inicial, :DTFFIM AS Faturamento_Data_Final,


trunc(((((PCPEDC.VLCUSTOFIN / PCPEDC.VLTOTAL) - 1) * 100) * -1), 2)  lucro,
trunc((PCPREST.VPAGO * trunc(((((PCPEDC.VLCUSTOFIN / PCPEDC.VLTOTAL) - 1) * 100) * -1), 2) / 100), 2) vllucro,
TRUNC(((trunc((PCPREST.VPAGO * trunc(((((PCPEDC.VLCUSTOFIN / PCPEDC.VLTOTAL) - 1) * 100) * -1), 2) / 100), 2) *
PCUSUARI.PERCENT2) / 100), 2) Vl_Comissao_do_RCA
 
FROM PCNFSAID, PCPREST, PCPEDC, PCCLIENT, PCUSUARI

WHERE  PCPREST.CODFILIAL in (:CODFILIAL)
  AND PCPREST.DTPAG >= :DTINI
  AND PCPREST.DTPAG <= :DTFIM
  AND PCPEDC.DATA >= :DTFINI
  AND PCPEDC.DATA <= :DTFFIM
  AND PCUSUARI.CODUSUR IN(:RCA)
  AND PCNFSAID.numtransvenda = pcprest.numtransvenda
  AND PCPEDC.numped = PCNFSAID.numped
  AND PCPREST.CODCLI = PCCLIENT.CODCLI
  AND PCPEDC.CODUSUR = PCUSUARI.CODUSUR
  AND pcprest.codcob NOT in ('DESD', 'CANC','BNF', 'DEVP', 'DEVT', 'CHI', 'JUR', 'PERD', 'DBFU', 'DEBM', 'DEBV', 'TR', 'CRED')
  
order by 
  PCPREST.codusur, PCPREST.dtpag
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Bom dia...

Acredito que a cláusula está justamente excluindo esses titulos :

Selecionar tudo

  AND pcprest.codcob NOT in ('DESD', 'CANC','BNF', 'DEVP', 'DEVT', 'CHI', 'JUR', 'PERD', 'DBFU', 'DEBM', 'DEBV', 'TR', 'CRED')
Algum desses códigos deve ser esses "devoldidos", basta saber qual é e retirar da restrição.
rakano
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Ter, 17 Abr 2012 5:55 pm

Noctifero escreveu:Bom dia...

Acredito que a cláusula está justamente excluindo esses titulos :

Selecionar tudo

  AND pcprest.codcob NOT in ('DESD', 'CANC','BNF', 'DEVP', 'DEVT', 'CHI', 'JUR', 'PERD', 'DBFU', 'DEBM', 'DEBV', 'TR', 'CRED')
Algum desses códigos deve ser esses "devoldidos", basta saber qual é e retirar da restrição.
Vlw pela atenção ...

essa linha ai com esses cod... realmente não deve aparecer, tem três códigos que gostaria que mostrasse que o CHDV(CHEQUE DEVOLVIDO PRIMEIRA VEZ), CHDV1(CHEQUE DEVOLVIDO SEGUNDA VEZ) e ESTR (ESTORNO).
Ou seja tudo que foi devolvido dentro de um período que esteja com esses códigos seja mostrado
nesta condição:

Selecionar tudo

:DTINI AS Liquidez_Data_Inicio, :DTFIM AS Liquidez_Data_Fim
,
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Agora fiquei confuso se você resolveu o problema ou se apareceu outro.
rakano
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Ter, 17 Abr 2012 5:55 pm

rss... não e o mesmo ainda...preciso que os códigos acima, seja visualizada no período determinado.

exemplo: como esse relatório e de apuração de vendas, caso a cobrança CHDV, CHDV1 ou ESTR aparecer no período de liquidez determinado mostre no relatório.

*Ou seja se o vendedor tiver um cheque devolvido referente aquela venda ou algum estorno ele não recebera a comissão daquele mês. Mas se o titulo for compensado dentro do período de liquidez ele recebera a comissão.
DanielNN
Moderador
Moderador
Mensagens: 641
Registrado em: Seg, 03 Set 2007 3:26 pm
Localização: Fortaleza - CE
att,

Daniel N.N.

Ainda estou confuso.
"a questão e que as vezes existem cheques devolvidos nesse segundo periodo".
você quer que os titulos com o código "CHDV, CHDV1 ou ESTR" apareça em sua query com o filtro

Selecionar tudo

  AND PCPEDC.DATA >= :DTFINI
  AND PCPEDC.DATA <= :DTFFIM
É isso?
Quando essas devoluções ocorrem, com esses códigos, é preenchido na "pcprest.codcob"?
A data referente a essa devolução fica na PCPEDC.DATA???
As restrições(joins com outras tabelas) para essa situação são as mesmas???

Se sim para todas, não estou enxergando o problema.
rakano
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Ter, 17 Abr 2012 5:55 pm

:? Desculpem :? , as faltas de melhores explicações ainda sou novo com banco de dados as vezes não sei expressar o que preciso, segue abaixo algumas explicações.

--------------------------------------------------------------------------------------------------------------------------------------

É isso?

Quando essas devoluções ocorrem, com esses códigos, é preenchido na "pcprest.codcob"?
Sim. O codcob (Código de cobrança) e mudado para CHDV, CHDV1 e ESTR

A data referente a essa devolução fica na PCPEDC.DATA???
Não a PCPEDC.DATA e a data do pedido de venda, títulos e na PCPREST.

As restrições(joins com outras tabelas) para essa situação são as mesmas???

Sim porque existem outros vários tipos de codcob
('DESD', 'CANC','BNF', 'DEVP', 'DEVT', 'CHI', 'JUR', 'PERD', 'DBFU', 'DEBM', 'DEBV', 'TR', 'CRED')
DESD = DESDOBRAMENTO
CANC = CANCELADO
BNF = NF BONIFICADA
DEVP = DEVOLUÇÃO PARCIAL
DEVT = DEVOLUÇÃO TOTAL
CHI = CHEQUE IRREGULAR
JUR = JUROS
PERD = PERDA
DBFU = DEBITO FUNCIONARIO
DEBM = DEBITO MOTORISTA
DEBV = DEBIDO VENDEDOR (RCA)
TR = TROCO
CRED = CREDITO DE CLIENTE

- Tirando essas codcob citadas acima, o relatório mostra tudo que recebi em dinheiro que a codcob D, tudo que recebi e CART que a codcob cartão, CHV tudo que recebi em cheque avista, CHP tudo que recebi em cheque predatado.
- O que quero fazer e colocar também um filtro onde se o dentro do período de liquidez os titulo que estiverem com o codcob CHV,CHV1 e ESTR, sejam visualizados. E posteriormente usar essa informação do titulo devolvido por falta de pagamento para deduzir na comissão do vendedor.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes