Problemática con importes en centros de coste

Hola buenas.

Al realizar la imputación a centros de coste en una dimensión, tenemos 3 opciones.
1.- Imputación directa a centro de coste.
2.- Imputación indirecta con una norma de reparto.
3.- Imputación indirecta con una norma de reparto manual.

Al realizar una consulta a la tabla JDT1 para obtener los datos para un informe por centro de coste, me encuentro que lo que guarda es el código de la norma de reparto (sea predefinida o manual).

Para obtener el importe repartido en norma de reparto tengo que ir a otra tabla OCR1 y calcular en base al % definido para cada centro de coste el importe repartido.

Para obtener el importe repartido en norma de reparto manual tengo que ir a otra tabla MDR1 y recabar el importe repartido a cada centro de coste.

SELECT T1.[TransId] as 'Asiento', T0.[RefDate] as 'Fecha', T0.[Account] as 'Cuenta', T0.[Debit] as 'Debe', T0.[Credit] as 'Haber', T0.[ProfitCode] as 'CeCo', T4.PrcCode as 'Ceco Aut', (T0.Debit*T4.PrcAmount)/100 as 'Importe Aut', T5.PrcCode as 'CeCo Man', T5.PrcAmount as 'Importe Man' FROM JDT1 T0  INNER JOIN OJDT T1 ON T0.[TransId] = T1.[TransId] left JOIN OOCR T2 ON T0.[ProfitCode] = T2.[OcrCode] left join OMDR T3 on T0.ProfitCode=T3.OcrCode left join OCR1 T4 on T2.[OcrCode]=T4.OcrCode left join MDR1 T5 on T3.[OcrCode]=T5.OcrCode WHERE T0.[Account] >='6%'

Resumido graficamente.

image

El problema lo tengo para sumarizar por centro de coste… ya que en el centro de coste del asiento aparece REP01 o M0000002 que asigna en los repartos manuales.

¿A alguien se le ocurre de que forma poder obtener estos importes en un solo informe o columna?

Pd: Me queda la vía del consultor… No hacer repartos e introducir líneas de asientos necesarias para que todo sea imputación directa.

1 me gusta

Hola meqs
Asi deberia quedar la consulta

SELECT T1.[TransId] as 'Asiento', T0.[RefDate] as 'Fecha', T0.[Account] as 'Cuenta', 
T0.[Debit] as 'Debe', T0.[Credit] as 'Haber', T0.[ProfitCode] as 'CeCo', 
ISNULL(T5.PrcCode,T4.PrcCode)  as 'Ceco Aut/Man', 
ISNULL(T5.PrcAmount,(T0.Debit*T4.PrcAmount)/100) as 'Importe Aut/Man' 
FROM JDT1 T0  
INNER JOIN OJDT T1 ON T0.[TransId] = T1.[TransId] 
left JOIN OOCR T2 ON T0.[ProfitCode] = T2.[OcrCode] 
left join OMDR T3 on T0.ProfitCode=T3.OcrCode 
left join OCR1 T4 on T2.[OcrCode]=T4.OcrCode 
left join MDR1 T5 on T3.[OcrCode]=T5.OcrCode 
WHERE T0.[Account] >='6%'

Saludos,
Andres Ramirez Jaramillo :colombia:

3 Me gusta

Hola buenas.

Parece que has dado con el quiz de la cuestión.

Voy a revisar los datos y te confirmo pero creo que la cosas pinta bien.

Muchas gracias

1 me gusta

Este tema se cerró automáticamente 6 días después del último post. No se permiten nuevas respuestas.