Pessoal,
Uma funcionalidade que já vi muita gente reclamando é que o AX calcula o pagamento da comissão, no entanto, não atrela aos recebimentos, ou nem tem um relatório que faz este controle.
Surgiu a necessidade de fazer isso aqui onde estou trabalhando, o esquema aqui é simples, tem sempre um único imposto para determinada situação, então eu já coloco o percentual da comissão menos os impostos na definição do grupo e fica tudo bem, mas ai pra vocês que tiverem casos mais complexos, é só ajustar.
Fiz em SQL porque fiz um relatório no report server, pro meu caso funcionou legal e espero que ajude vocês!
SELECT CS.TRANSDATE , SUM(CS.SETTLEAMOUNTCUR) AS SETTLEAMOUNTMST , CT.INVOICE , C.NAME AS CNAME , CMT.AMOUNTMST AS AMOUNTMST , DT.NAME , CT.AMOUNTCUR AS INVOICEAMOUNT, ISNULL(PC.NUMOFPAYMENT, 1) AS NUMOFPAYMENT , CIT.NAME AS ITEMNAME FROM CUSTSETTLEMENT CS INNER JOIN CUSTTRANS CT ON CT.DATAAREAID = CS.DATAAREAID AND CT.RECID = CS.TRANSRECID AND CT.ACCOUNTNUM = CS.ACCOUNTNUM INNER JOIN CUSTTABLE C ON C.ACCOUNTNUM = CT.ACCOUNTNUM INNER JOIN COMMISSIONTRANS CMT ON CMT.INVOICEID = CT.INVOICE INNER JOIN EMPLTABLE ET ON ET.EMPLID = CMT.EMPLID INNER JOIN DIRPARTYTABLE DT ON DT.PARTYID = ET.PARTYID INNER JOIN CUSTINVOICEJOUR CIJ ON CIJ.INVOICEID = CT.INVOICE LEFT OUTER JOIN PAYMSCHED PC ON PC.NAME = CIJ.PAYMENTSCHED INNER JOIN CUSTINVOICETRANS CIT ON CIT.INVOICEID = CIJ.INVOICEID AND CIT.NUMBERSEQUENCEGROUP = CIJ.NUMBERSEQUENCEGROUP WHERE CIJ.INVOICEAMOUNT > 0 AND CS.DATAAREAID = 'DAT' -- trocar para a sua empresa! (Obrigado Peterson!) GROUP BY CS.TRANSDATE , CT.INVOICE , C.NAME , CMT.AMOUNTMST , DT.NAME , CT.AMOUNTCUR , PC.NUMOFPAYMENT , CIT.NAME |
Vale observar, que eu pego todas as comissões que o valor são maiores do que 0, ou seja, não estou levando em consideração os cancelamentos, que devem sim ser tratados ou então você pagará comissões a vendas canceladas.
[]s
Pichler
4 Responses
Peterson
11|Dec|2010 1Falta colocar o DATAAREAID da CUSTSETTLEMENT no WHERE….
Ricardo Pichler
11|Dec|2010 2hehehe, isso mesmo, é que como só trampo com uma na base de prod, nem me preocupei, mas bem lembrado! Obrigado
Anderson Joyle
14|Apr|2011 3Pichler,
Poderiamos tratar as notas canceladas usando os campo “RefusedNote” e “ReturnItemNum” na CustInvoiceJour
I am not sure above query it will add AND CT.TRANSTYPE = '8' in Query
27|Aug|2014 4I am not sure above query it will add AND CT.TRANSTYPE = ‘8’ in Query
INNER JOIN CUSTTRANS CT
ON CT.DATAAREAID = CS.DATAAREAID
AND CT.RECID = CS.TRANSRECID
AND CT.ACCOUNTNUM = CS.ACCOUNTNUM
AND CT.TRANSTYPE = ‘8’ –Customer
INNER JOIN CUSTINVOICEJOUR CIJ
ON CIJ.INVOICEID = CT.INVOICE
Leave a reply
Search
Tags / Categorias
RSS
Arquivo
Blogroll