on 12-26-2013 7:18 PM
Que tal expertos, tengo el siguiente problema en mi empresa calculamos las comisiones dependiendo el tipo de producto, el reporte que tengo es el siguiente:
SELECT distinct
T0.DocNum 'Factura',
T0.DocStatus 'Estatus',
T0.DocDate 'Fecha',
T0.CardCode 'Cliente',
T0.CardName 'Nombre',
T0.DocCur 'Moneda',
T0.DocTotal 'Total Factura',
T0.PaidToDate 'Total Pagado',
T0.DocTotal* .0047697 'Comision Total',
(T0.DocTotal* .0047697) * .25 'Comision Vendedor',
(T0.DocTotal* .0047697) * 0.375 'Comision Magaly',
(T0.DocTotal* .0047697) * 0.375 'Comision Juan Carlos',
T1.SlpName 'Vendedor',
T2.PymntGroup 'Cond. Pago',
T0.DocTotalSy 'Total USD',
T3.DocNum 'No.Doc. Pago',
T3.CashSum 'Efectivo',
T3.CreditSum 'T.Crédito',
T3.CheckSum 'Cheque',
T3.TrsfrSum 'Transf',
T0.DocTotal 'Total Pago',
T3.DocDate 'Fecha Pago'
FROM OINV T0
INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode
INNER JOIN OCTG T2 ON T0.GroupNum = T2.GroupNum
INNER JOIN ORCT T3 ON T0.[ReceiptNum] = T3.DocNum
INNER JOIN NNM1 T4 ON T3.Series = T4.Series
INNER JOIN RCT2 T5 ON T3.DocEntry = T5.DocNum
WHERE T3.DocDate >= '[%0]' and T3.DocDate <= '[%1]' and T1.slpname = '[%2]'
AND T3.Canceled = 'N'
ORDER BY T0.DocNum
El cual calcula las comisiones por igual sin importar si hay un articulo con diferente comision por ejemplo:
Factura 1: contiene dos productos diferentes uno calculado con el .0047697 y otro que tiene q ser calculado con el .0065
como hacer para que dependiendo el producto me calcule la comisión?? Saludos a todos
Ademas tendrás otro tipo de complicaciones como por ejemplo:
1. Que sucede si la factura fue pagada en forma parcial
2. No estas considerando las reconciliaciones manuales
3. Que sucede si una parte fue pagada y otra parta fue creditada por nota de credito
Seria bueno que lo tomaras en consideración
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Muchas gracias por sus respuestas, les explico un poco este reporte solo saca el total de facturas pagadas totalmente en determinado tiempo por ejemplo yo elijo ver las facturas pagadas que están del 26/12/13 solamente y de ahí saco las comisiones, lo único que me hace falta es la manera de detectar los dos tipos de producto unos que no contienen I.Q.F y las que si lo contienen. Les agradezco su atención
Hola Humberto
no entiendo muy bien que tiene que hacer el informe, dime qué tienes que hacer si una factura de venta tiene dos productos con comisiones diferentes. ¿Tienes que incluir el total de la factura en dos informes y pagar dos veces la comisión?
Dime si el caso que nos ocupa el siguiente:
- tenemos una factura con importe 100.
- en la factura hay un artículo que comisiona el 10%.
- en la factura hay un artículo que comisiona el 20%.
- cobramos la factura por el total.
- cuando genere el informe de comisiones esta factura tiene que aparecer dos veces: una por 10 y otra 20.
¿Es este el funcionamiento correcto?
¿Cómo sabes si el artículo tiene que aplicar comisión? ¿Por una propiedad? ¿Por un campo de usuario? ¿Por qué está dentro de un rango de códigos?
Si es por una propiedad tienes que incluir las tablas INV1 y OITM en tu consulta; igual te ocurrirá si es por un campo de usuario.
Un saludo
Agustín Marcos Cividanes
Muchas gracias Agustín por tu atención, en realidad funciona de la siguiente manera:
Tengo una factura con dos artículos de comisiones diferentes las cuales quiero ver reflejado en un total de comisión a como lo tengo actualmente solo me saca una comisión general independiente al articulo que este en la factura
Hola
después de leer tu comentario creo que con esta modificación será suficiente:
FROM OINV T0 INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode INNER JOIN OCTG T2 ON T0.GroupNum = T2.GroupNum INNER JOIN ORCT T3 ON T0.[ReceiptNum] = T3.DocNum INNER JOIN NNM1 T4 ON T3.Series = T4.Series INNER JOIN RCT2 T5 ON T3.DocEntry = T5.DocNum INNER JOIN INV1 T6 ON T0.DocEntry = T6.DocEntry and T6.ItemCode in ('ARTICULO1', 'ARTICULO2')
Un saludo
Agustín Marcos Cividanes
Hola
esta consulta no procesa las líneas de la factura, por lo tanto nunca vas a poder aplicar el cálculo que indicas.
Si las comisiones van a nivel de producto tendrás que incorporar una condición más:
inner join inv1 T6 on T6.docentry = T0.docentry
Otro cambio que tendrás que hacer será coger el total de la línea (con o sin impuestos) y con los descuentos aplicados y multiplicarlo por la comisión del producto. En la cláusula SELECT tendrás que añadir T6.linetotal o T6.price en función de tus necesidades. Para ello puedes hacerlo con un CASE groupnum WHEN valor THEN comision1 ELSE comision2.
Un saludo
Agustín Marcos Cividanes
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.