Skip to Content

Sustituto para reporte CFD luego de migrar a cfdi (MÉXICO)

Muy estimados todos, aquí les dejo este query que en general les servirá en caso de que como su servidor hayan migrado a cfdi y no hayan tenido la finura de generar el reporte de CFDS del mes de DICIEMBRE 2013 (posibilidad que desaparece con el hecho de activar CFDI) saludos !

Declare @Mes as nvarchar(2)

Declare @Ejercicio as nvarchar(4)

/* Cambiar las variables segun corresponda */

Set @Mes =’12’                      –Aquí el mes a generar

Set @Ejercicio =’2013′              –Aquí el año a generar

/*————————– Query para Facturas ———————————*/

SELECT

‘|’+t0.LicTradNum+’|’+t0.EDocPrefix+’|’+convert(varchar(50),t0.DocNum)+’|’+(convert(varchar(50),t1.ApprovYear)+convert(varchar(50),t1.ApprovNum))+’|’+CONVERT(VARCHAR(10), t0.docdate, 103)+’ ‘+

stuff(

(stuff(

(RIGHT(REPLICATE(‘0’,6) + CONVERT(varchar( 6 ) , t0.createts) ,6))

,3,0,’:’))

,6,0,’:’)

+’|’+ convert(varchar(50),(convert(numeric(10,2),round(t0.doctotal,2,1))))+’|’+CONVERT(varchar(50),(convert(numeric(10,2),round(t0.VatSum,2,1))))+’|’+t0.U_Cancelado+’|’+’I’+’||||’

FROM

OINV t0 inner join NNM4 t1 on t0.DocNum between t1.initialnum and t1.lastnum and t0.EDocPrefix = t1.Prefix

WHERE

year(t0.DocDate) = @Ejercicio and MONTH(t0.docdate) = @Mes

UNION ALL   /*—————– Para unir los dos querys————————–*/

/*—————————Query para Notas de crédito—————————*/

SELECT

‘|’+t0.LicTradNum+’|’+t0.EDocPrefix+’|’+convert(varchar(50),t0.DocNum)+’|’+(convert(varchar(50),t1.ApprovYear)+convert(varchar(50),t1.ApprovNum))+’|’+CONVERT(VARCHAR(10), t0.docdate, 103)+’ ‘+

stuff(

(stuff(

(RIGHT(REPLICATE(‘0’,6) + CONVERT(varchar( 6 ) , t0.createts) ,6))

,3,0,’:’))

,6,0,’:’)

+’|’+ convert(varchar(50),(convert(numeric(10,2),round(t0.doctotal,2,1))))+’|’+CONVERT(varchar(50),(convert(numeric(10,2),round(t0.VatSum,2,1))))+’|’+t0.U_Cancelado+’|’+’E’+’||||’

FROM

ORIN t0 inner join NNM4 t1 on t0.DocNum between t1.initialnum and t1.lastnum and t0.EDocPrefix = t1.Prefix

WHERE

year(t0.DocDate) =@Ejercicio and MONTH(t0.docdate) = @Mes

Ya solo indiquen el campo en en el que guardan el status de su documento electrónico en nuestro caso usamos U_Cancelado (campo de usuario), nosotros reporteamos solo los campos doctotal y vatsum porque no nos aplican otros pero de igual manera es sencillo añadir los demas en caso que ustedes hagan otras operaciones, saludos

2 Comments
You must be Logged on to comment or reply to a post.
  • Esta bien.. pero la solución es muy simple. Haces un respaldo de tu BD… aplicas un update al campo EdProcess de la Oadm y generas tu reporte… luego de eso borras el respaldo.

    De esa forma obtienes el reporte mensual y no alteras tu BD productiva.

    Sds!!