Tratamiento de retenciones en B1

Así me imaginé, es un poco rebuscada la solución, y como dicen la burra no era arisca, la hicieron, así que me las tuve que ingeniar.

Ese reporte lo aplicas a través de un query? es la misma variable para las retenciones de ISR que para las de IVA? Que pasa cuando en lugar de pagar haces nota de crédito (o cancelas la factura proveedor)?

Esas y mas cuestiones te las debe hacer tu contador.

Saludos

Si, será a través de un Query, aun está en proceso, no le he dedicado mucho tiempo, sobre las notas de crédito tengo pensado hacer un “Union All” para convertir en negativos sus importes y se resten del total.

Sobre si es el mismo campo para las retenciones de ISR y para las de IVA, te comento que se tiene que hacer uso de la tabla PCH5, en ella se guarda el desglose de las retenciones, por medio del código de las mismas puedes deducir los importes que le corresponde a cada tipo de retención.

Cuando tenga un buen avance o bien el query definitivo, con gusto lo comparto.

Saludos estimado @Luikb.

Yo hice este pequeño código con tablas pivote que te pueda servir, revísalo, si en algo te puede servir
(No lo seguí usando porque había un dato que me jalaba operaciones muy viejas, por un numero de operación o Numero de transacción o algo así y no quise molestar a los de sistemas :sweat_smile:

Te das cuenta cuando la factura es muy antigua

SELECT 
P.[Codigo],
P.[Nombre],
P.[RFC],
P.[Documento],
P.[FechaFact],
P.[FechaPago],
P.[TotalDocto],
P.[Pagado],
Round((Pagado/TotalDocto),4) as Porcentaje,
ROUND(Max-IVATotal,2) as Importe,
round(ROUND(Max-IVATotal,2)*Round((Pagado/TotalDocto),8),2) as ImportePagado,
round(P.[IVATotal]*Round((Pagado/TotalDocto),8),2) as [IVAAcr],
round(P.[Base Retenciones]*Round((Pagado/TotalDocto),8),2)as[BaseRet],
round([1I]*Round((Pagado/TotalDocto),8),2) as [ISRRetHono],
round([1V]*Round((Pagado/TotalDocto),8),2) as [IVARetHono],
round([2I]*Round((Pagado/TotalDocto),8),2) as [ISRRetArre],
round([2V]*Round((Pagado/TotalDocto),8),2) as [IVARetArre],
round([FV]*Round((Pagado/TotalDocto),8),2) as [IVARetFletes],
round([5V]*Round((Pagado/TotalDocto),8),2) as [RetCedular]

FROM(
SELECT 

T2.[DocNum]'Documento', 
T0.[DocDate]'FechaPago', 
T2.[DocDate]'FechaFact',
T2.[CardCode]'Codigo', 
T2.[CardName]'Nombre', 
T2.[BaseAmnt]'Base Retenciones', 
T2.[VatSum] AS 'IVATotal', 
T2.[Max1099] as 'Max',
T2.[DocTotal]'TotalDocto', 
T1.[SumApplied]'Pagado',
T3.[WTCode]'Ret', 
T3.[WTAmnt]'Monto', 
T4.[LicTradNum]'RFC'

FROM OVPM T0  
INNER JOIN VPM2 T1 ON T0.[DocNum] = T1.[DocNum] 
INNER JOIN OPCH T2 ON T1.[DocEntry] = T2.[DocEntry] 
left JOIN PCH5 T3 ON T2.[DocEntry] = T3.[AbsEntry] 
LEFT JOIN OCRD T4 ON T4.[CardCode] = T2.[CardCode]

WHERE 
T0.[DocDate] >= [%0] AND T0.[DocDate] <= [%1] 
 and t0.Canceled = 'N' ) P

PIVOT (
   SUM(Monto) 
         FOR [Ret] IN ([1V],[1I],[2V],[2I],[5V],[FV])
                  
)P

order by FechaPago, Codigo
2 Me gusta

Si lo modificas me compartes el código a ver que le podemos ver. @Gera_Mendez

Este query lo hice pensando en una declaración que se llama DIOT aquí en México y en las retenciones.

Saludos

1 me gusta

Oh, valla tarea me haz dejado, maravilloso query, muy avanzado para mi que soy aspirante a Licenciado en Administración, :joy::joy::joy::joy: Ups… ¡Pero viene de un contador! :open_mouth::open_mouth::open_mouth::sweat_smile:

Lo adecuaré a mis códigos de Retención, te comento cualquier modificación que a primera vista no será necesaria.

Justo en esta semana estaba pensando en aprender a usar “Pivot”, tu query me ha caído del cielo para practicar.

Mil gracias estimado, te debo una.

Le falta al query, pero me funcionó, solo debia revisar bien antes de procesar la información.

A ver que opinian

@Ares17000 y @JAMS y @meqs

Saludos

1 me gusta

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