16/05/2018

Lista de facturas en TREE con los datos de pagos de A3ERP

Como ya sabemos, en TREE generamos facturas de compra que traspasamos firmadas a A3ERP para la gestión de la contabilidad, pagos e impuestos.

A veces, es necesario que los jefes de obra dispongan de información de los pagos realizados sin tener licencia de A3ERP (incluso sin tener el programa instalado) consultando esa información directamente en TREE.

Además el listado nos da información del importe de las facturas en A3ERP comparado con el importe de las facturas en TREE. Debería ser el mismo si no se modifica una factura traspasada en A3ERP.

Para ello, basta con añadir el siguiente listado en la lista de facturas de compra. Es necesario tener en cuenta que donde pone [DB_A3] se debe reemplazar por el nombre de la base de datos de A3ERP.


SELECT 
C.OBRA,C.COD_FRA,C.Fecha,C.SERIE,C.NUMERO,C.REFERENCIA
,C.COD_NEXUS Id_A3,YEAR(C.FECHA) Año
,MONTH(C.FECHA) Mes,C.TOTAL Total_TREE
,(SELECT TOTDOC FROM [DB_A3]..CABEFACC WHERE IDFACC=C.COD_NEXUS) Total_A3
,C.TOTAL-(SELECT TOTDOC FROM [DB_A3]..CABEFACC WHERE IDFACC=C.COD_NEXUS) Dif
,C.Proveedor,C.Nombre
,(SELECT SUM(ImporteCob) FROM [DB_A3]..CARTERA WHERE PROCEDE='FC' AND PROCEDEID=C.COD_NEXUS) ImpPagado
,NULLIF(
   CASE WHEN FECHA_EXP IS NULL
        THEN C.TOTAL 
        ELSE ((SELECT TOTDOC FROM [DB_A3]..CABEFACC WHERE IDFACC=C.COD_NEXUS)
             -(SELECT SUM(ImporteCob) from [DB_A3]..CARTERA WHERE PROCEDE='FC' AND PROCEDEID=C.COD_NEXUS))
        END 
,0) ImpPendientePago
,(SELECT MIN(FECHA) FROM  [DB_A3]..CARTERA WHERE PROCEDE='FC' AND PROCEDEID=C.COD_NEXUS AND PAGADO='F') Vencimiento
FROM T_OBRAS O
JOIN T_FRA C ON C.EMPRESA=O.EMPRESA AND C.OBRA=O.OBRA
{WFiltro}

De forma similar, para las facturas de venta tendremos el listado:


SELECT 
C.OBRA,C.COD_FRA,C.Fecha,C.SERIE,C.NUMERO,C.REFERENCIA
,C.COD_NEXUS Id_A3,YEAR(C.FECHA) Año
,MONTH(C.FECHA) Mes,C.TOTAL Total_TREE
,(SELECT TOTDOC FROM [DB_A3]..CABEFACV WHERE IDFACV=C.COD_NEXUS) Total_A3
,C.TOTAL-(SELECT TOTDOC FROM [DB_A3]..CABEFACV WHERE IDFACV=C.COD_NEXUS) Dif
,C.Cliente,C.Nombre
,(SELECT SUM(ImporteCob) FROM [DB_A3]..CARTERA WHERE PROCEDE='FV' AND PROCEDEID=C.COD_NEXUS) ImpCobrado
,NULLIF(
   CASE WHEN FECHA_EXP IS NULL
        THEN C.TOTAL 
        ELSE ((SELECT TOTDOC FROM [DB_A3]..CABEFACv WHERE IDFACV=C.COD_NEXUS)
             -(SELECT SUM(ImporteCob) from [DB_A3]..CARTERA WHERE PROCEDE='FV' AND PROCEDEID=C.COD_NEXUS))
        END 
,0) ImpPendienteCobro
,(SELECT MIN(FECHA) FROM  [DB_A3]..CARTERA WHERE PROCEDE='FC' AND PROCEDEID=C.COD_NEXUS AND PAGADO='F') Vencimiento
FROM T_OBRAS O
JOIN T_FRAV C ON C.EMPRESA=O.EMPRESA AND C.OBRA=O.OBRA
{WFiltro}