FUNCIÓN |
3000 |
||||||||||||||||
PERMISO |
ERP.Fiscal.Diot.Ver |
||||||||||||||||
ARGUMENTOS |
'arg(0) = Mes 'arg(1) = Año 'arg(2) = IDEmpresa |
||||||||||||||||
CONSULTA |
SELECT ISNULL(dbo.Clientes.TipoTercero, '04') AS TipoTercero, Resumen.TipoOperacion, dbo.Clientes.RFC, dbo.Clientes.IDFiscal, CASE WHEN TipoTercero = '05' THEN NombreCliente ELSE '' END AS NombreExtranjero, dbo.Clientes.Residencia, dbo.Clientes.Nacionalidad, ROUND(SUM(Resumen.Actos16),0) AS Actos16, 0 AS Actos15, 0 AS IVANoAcreditable16, ROUND(SUM(Resumen.Actos11),0) AS Actos11, 0 AS Actos10, 0 AS IVANoAcreditable10, 0 AS ActosImportacion16, 0 AS IVANoAcreditableImportacion16, 0 AS ActosImportacion11, 0 AS IVANoAcreditableImportacion11, 0 AS ImportacionExento, ROUND(SUM(Resumen.ImporteCeroIVA),0) AS ActosCero, ROUND(SUM(Resumen.ImporteExentoIVA),0) AS ActosExento, ROUND(SUM(Resumen.RetencionIVA),0) AS IVARetenido, 0 AS DevolucionesCompras, ROUND(SUM(Resumen.TotalFactura),0) AS TotalFactura, ROUND(SUM(Resumen.ImportePagado),0) AS ImportePagado, ROUND(SUM(Resumen.SubTotal),0) AS SubTotal, ROUND(SUM(Resumen.IVA),0) AS TotalIVA, ROUND(SUM(Resumen.IVAPagado),0) AS IVAPagado, dbo.Clientes.NombreCliente, dbo.Clientes.IDCliente FROM (SELECT AdeudadoT.IDCliente, PagadoT.IDDocumento, CASE WHEN ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1) > 1 THEN 1 ELSE ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1) END * ISNULL(AdeudadoT.TotalFactura, 0) AS ImportePagado, AdeudadoT.SubTotal, AdeudadoT.IVA, AdeudadoT.TotalFactura, (CASE WHEN (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) > 1 THEN 1 ELSE (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) END) AS Factor, (CASE WHEN (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) > 1 THEN 1 ELSE (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) END) * ISNULL(AdeudadoT.IVA, 0) AS IVAPagado, AdeudadoT.TipoOperacion, (CASE WHEN (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) > 1 THEN 1 ELSE (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) END) * ISNULL(AdeudadoT.Actos16, 0) AS Actos16, (CASE WHEN (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) > 1 THEN 1 ELSE (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) END) * ISNULL(AdeudadoT.Actos11, 0) AS Actos11, (CASE WHEN (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) > 1 THEN 1 ELSE (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) END) * ISNULL(AdeudadoT.RetencionIVA, 0) AS RetencionIVA, (CASE WHEN (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) > 1 THEN 1 ELSE (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) END) * ISNULL(AdeudadoT.ImporteExentoIVA, 0) AS ImporteExentoIVA, (CASE WHEN (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) > 1 THEN 1 ELSE (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) END) * ISNULL(AdeudadoT.ImporteCeroIVA, 0) AS ImporteCeroIVA FROM (SELECT dbo.Relaciones.IDDocumento, SUM(dbo.CHEQUES.Importe) AS ImportePagado FROM dbo.Relaciones INNER JOIN dbo.CHEQUES ON dbo.Relaciones.IDCheque = dbo.CHEQUES.IDCheque WHERE (dbo.CHEQUES.Estado = 1) AND (MONTH(dbo.CHEQUES.FechaCobrado) = @A) AND (YEAR(dbo.CHEQUES.FechaCobrado) = @B) GROUP BY dbo.Relaciones.IDDocumento) AS PagadoT INNER JOIN (SELECT dbo.Documentos.IDDocumento, CASE WHEN ClassIETU LIKE '%Arrendamiento%' THEN '06' WHEN ClassIETU LIKE '%Honorarios%' THEN '03' ELSE '85' END AS TipoOperacion, SUM(dbo.DocumentosDetalle.SubTotal) AS SubTotal, SUM(dbo.DocumentosDetalle.IVA) AS IVA, SUM(dbo.DocumentosDetalle.TotalFactura) AS TotalFactura, dbo.Documentos.IDCliente, SUM(CASE WHEN TasaIVA = .16 THEN SubTotal ELSE 0 END) AS Actos16, SUM(CASE WHEN TasaIVA = .11 THEN SubTotal ELSE 0 END) AS Actos11, SUM(dbo.DocumentosDetalle.RetencionIVA) AS RetencionIVA, SUM(dbo.DocumentosDetalle.ImporteExentoIVA) AS ImporteExentoIVA, SUM(dbo.DocumentosDetalle.ImporteCeroIVA) AS ImporteCeroIVA FROM dbo.Documentos INNER JOIN dbo.DocumentosDetalle ON dbo.Documentos.IDDocumento = dbo.DocumentosDetalle.IDDocumento WHERE (dbo.DocumentosDetalle.ClassIETU < '2000') AND (dbo.DocumentosDetalle.TipoComprobante = 100) GROUP BY dbo.Documentos.IDDocumento, dbo.Documentos.IDCliente, CASE WHEN ClassIETU LIKE '%Arrendamiento%' THEN '06' WHEN ClassIETU LIKE '%Honorarios%' THEN '03' ELSE '85' END) AS AdeudadoT ON PagadoT.IDDocumento = AdeudadoT.IDDocumento) AS Resumen INNER JOIN dbo.Clientes ON Resumen.IDCliente = dbo.Clientes.IDCliente GROUP BY ISNULL(dbo.Clientes.TipoTercero, '04'), Resumen.TipoOperacion, dbo.Clientes.RFC, dbo.Clientes.IDFiscal, CASE WHEN TipoTercero = '05' THEN NombreCliente ELSE '' END, dbo.Clientes.Residencia, dbo.Clientes.Nacionalidad, dbo.Clientes.NombreCliente, dbo.Clientes.IDCliente |
||||||||||||||||
EXPLICACION Y CONSIDERACIONES |
SE OBTIENE UN FACTOR = ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)
ESTE FACTOR INDICA QUE PROPORCION SE HA PAGADO DE IVA, O DE RETENCIONES O DE LA FACTURA EN SI
SI EL FACTOR ES MAYOR A 1 ENTONCES TOMA SIEMPRE EL MAXICO FACTOR = 1 (CASE WHEN (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) > 1 THEN 1 ELSE (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) END) AS Factor
SE PONE MAXIMO UNO PUES SI EXISTE PAGOS AGRUPADOS ES DECIR UN CHEQUE QUE PAGUE VARIOS DOCUMENTOS ENTONCES EN OBIVIEDAD EL DOCUMENTO SERA MENOR AL IMPORTE DEL CHEQUE, POR LO TANTO SE TENDRA UN ESQUEMA COMO EL QUE SIGUE
|
||||||||||||||||
FUNCIÓN |
5000 |
PERMISO |
ERP.Fiscal.IVAAcreditable.Ver |
ARGUMENTOS |
'arg(0) = Mes 'arg(1) = Año 'arg(2) = IDEmpresa |
CONSULTA |
SELECT REPLACE((SELECT isnull(Factura,'') AS [data()] FROM DocumentosDetalle as FacturasX WHERE FacturasX.IDDocumento = Resumen.IDDocumento FOR XML PATH('')), ' ', ',') AS Facturas, REPLACE((SELECT isnull(NumeroCheque,'') AS [data()] FROM dbo.Relaciones INNER JOIN dbo.CHEQUES ON dbo.Relaciones.IDCheque = dbo.CHEQUES.IDCheque WHERE (dbo.Relaciones.IDDocumento = Resumen.IDDocumento) AND (dbo.CHEQUES.Estado = 1) FOR XML PATH('')), ' ', ',') as Cheques, REPLACE((SELECT isnull(Cheques.PolNum,'') AS [data()] FROM dbo.Relaciones INNER JOIN dbo.CHEQUES ON dbo.Relaciones.IDCheque = dbo.CHEQUES.IDCheque WHERE (dbo.Relaciones.IDDocumento = Resumen.IDDocumento) AND (dbo.CHEQUES.Estado = 1) FOR XML PATH('')), ' ', ',') as Pólizas, ISNULL(dbo.Clientes.TipoTercero, '04') AS TipoTercero, Resumen.TipoOperacion, dbo.Clientes.RFC, dbo.Clientes.IDFiscal, CASE WHEN TipoTercero = '05' THEN NombreCliente ELSE '' END AS NombreExtranjero, dbo.Clientes.Residencia, dbo.Clientes.Nacionalidad, SUM(Resumen.Actos16) AS Actos16, 0 AS Actos15, 0 AS IVANoAcreditable16, SUM(Resumen.Actos11) AS Actos11, 0 AS Actos10, 0 AS IVANoAcreditable10, 0 AS ActosImportacion16, 0 AS IVANoAcreditableImportacion16, 0 AS ActosImportacion11, 0 AS IVANoAcreditableImportacion11, 0 AS ImportacionExento, SUM(Resumen.ImporteCeroIVA) AS ActosCero, SUM(Resumen.ImporteExentoIVA) AS ActosExento, SUM(Resumen.RetencionIVA) AS IVARetenido, 0 AS DevolucionesCompras, SUM(Resumen.TotalFactura) AS TotalFactura, SUM(Resumen.ImportePagado) AS ImportePagado, SUM(Resumen.SubTotal) AS SubTotal, SUM(Resumen.IVA) AS TotalIVA, SUM(Resumen.IVAPagado) AS IVAPagado, dbo.Clientes.NombreCliente, dbo.Clientes.IDCliente, Resumen.IDDocumento FROM (SELECT AdeudadoT.IDCliente, PagadoT.IDDocumento, PagadoT.ImportePagado, AdeudadoT.SubTotal, AdeudadoT.IVA, AdeudadoT.TotalFactura, (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) AS Factor, (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) * ISNULL(AdeudadoT.IVA, 0) AS IVAPagado, AdeudadoT.TipoOperacion, (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) * ISNULL(AdeudadoT.Actos16, 0) AS Actos16, (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) * ISNULL(AdeudadoT.Actos11, 0) AS Actos11, (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) * ISNULL(AdeudadoT.RetencionIVA, 0) AS RetencionIVA, (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) * ISNULL(AdeudadoT.ImporteExentoIVA, 0) AS ImporteExentoIVA, (ISNULL(PagadoT.ImportePagado, 0) / ISNULL(AdeudadoT.TotalFactura, 1)) * ISNULL(AdeudadoT.ImporteCeroIVA, 0) AS ImporteCeroIVA FROM (SELECT dbo.Relaciones.IDDocumento, SUM(dbo.CHEQUES.Importe) AS ImportePagado FROM dbo.Relaciones INNER JOIN dbo.CHEQUES ON dbo.Relaciones.IDCheque = dbo.CHEQUES.IDCheque WHERE (dbo.CHEQUES.Estado = 1) AND (MONTH(dbo.CHEQUES.FechaCobrado) = @A) AND (YEAR(dbo.CHEQUES.FechaCobrado) = @B) GROUP BY dbo.Relaciones.IDDocumento) AS PagadoT INNER JOIN (SELECT dbo.Documentos.IDDocumento, CASE WHEN ClassIETU LIKE '%Arrendamiento%' THEN '06' WHEN ClassIETU LIKE '%Honorarios%' THEN '03' ELSE '85' END AS TipoOperacion, SUM(dbo.DocumentosDetalle.SubTotal) AS SubTotal, SUM(dbo.DocumentosDetalle.IVA) AS IVA, SUM(dbo.DocumentosDetalle.TotalFactura) AS TotalFactura, dbo.Documentos.IDCliente, SUM(CASE WHEN TasaIVA = .16 THEN SubTotal ELSE 0 END) AS Actos16, SUM(CASE WHEN TasaIVA = .11 THEN SubTotal ELSE 0 END) AS Actos11, SUM(dbo.DocumentosDetalle.RetencionIVA) AS RetencionIVA, SUM(dbo.DocumentosDetalle.ImporteExentoIVA) AS ImporteExentoIVA, SUM(dbo.DocumentosDetalle.ImporteCeroIVA) AS ImporteCeroIVA FROM dbo.Documentos INNER JOIN dbo.DocumentosDetalle ON dbo.Documentos.IDDocumento = dbo.DocumentosDetalle.IDDocumento WHERE (dbo.DocumentosDetalle.ClassIETU < '2000') AND (dbo.DocumentosDetalle.TipoComprobante = 100) GROUP BY dbo.Documentos.IDDocumento, dbo.Documentos.IDCliente, CASE WHEN ClassIETU LIKE '%Arrendamiento%' THEN '06' WHEN ClassIETU LIKE '%Honorarios%' THEN '03' ELSE '85' END) AS AdeudadoT ON PagadoT.IDDocumento = AdeudadoT.IDDocumento) AS Resumen INNER JOIN dbo.Clientes ON Resumen.IDCliente = dbo.Clientes.IDCliente GROUP BY ISNULL(dbo.Clientes.TipoTercero, '04'), Resumen.TipoOperacion, dbo.Clientes.RFC, dbo.Clientes.IDFiscal, CASE WHEN TipoTercero = '05' THEN NombreCliente ELSE '' END, dbo.Clientes.Residencia, dbo.Clientes.Nacionalidad, dbo.Clientes.NombreCliente, dbo.Clientes.IDCliente, Resumen.IDDocumento |