SELECT
DQ.DocumentType AS DocumentType,
P.ID AS DocID,
MAX(P.Firm_ID) AS Firm_ID,
MAX(F.VATIdentNumber) as VATIdentNumber,
MAX(P.VATDate$DATE) AS VATDate$DATE,
SUM(A.LocalTAmountWithoutVAT) as LocalAmount,
SUM(A.TAmountWithoutVAT) as Amount,
MAX(DQ.Code || '-' || CAST(P.OrdNumber AS VARCHAR(10)) || '/' || PE.Code) AS DocNumber,
DA.Code as DRCCode,
SUM(A.DRCQuantity) as DRCQuantity,
MAX(DA.Qunit) AS DRCUnit,
MAX(DA.Name) as DRCName,
MAX(DA.ID) as DRC_ID,
MAX(0) AS AcknowledgeDate$DATE
FROM
IssuedInvoices2 A
JOIN IssuedInvoices P ON P.ID=A.Parent_ID
JOIN Firms F on F.ID = P.Firm_ID
JOIN Periods PE ON PE.ID=P.Period_ID
JOIN DocQueues DQ ON DQ.ID=P.DocQueue_ID
LEFT JOIN DRCArticles DA ON DA.ID=A.DRCArticle_ID
WHERE
(A.RowType in (1,2,3,4,5))
and (P.TradeType = 1) and (P.IsReverseChargeDeclared='A')
and (A.VATMode = 1)
and (P.VATDate$Date >= {$DATE_FROM} and P.VATDate$Date < {$DATE_TO})
and P.VATDocument = 'A'
{ANDWHERE}
GROUP BY DQ.DocumentType, P.ID, DA.Code
union all
SELECT
DQ.DocumentType AS DocumentType,
P.ID AS DocID,
MAX(P.Firm_ID) AS Firm_ID,
MAX(F.VATIdentNumber) as VATIdentNumber,
MAX(P.VATDate$DATE) AS VATDate$DATE,
SUM(A.LocalTAmountWithoutVAT) as LocalAmount,
SUM(A.TAmountWithoutVAT) as Amount,
MAX(DQ.Code || '-' || CAST(P.OrdNumber AS VARCHAR(10)) || '/' || PE.Code) AS DocNumber,
DA.Code as DRCCode,
SUM(A.DRCQuantity) as DRCQuantity,
MAX(DA.Qunit) AS DRCUnit,
MAX(DA.Name) as DRCName,
MAX(DA.ID) as DRC_ID,
MAX(0) AS AcknowledgeDate$DATE
FROM
CashReceived2 A
JOIN CashReceived P ON P.ID=A.Parent_ID
JOIN Firms F on F.ID = P.Firm_ID
JOIN Periods PE ON PE.ID=P.Period_ID
JOIN DocQueues DQ ON DQ.ID=P.DocQueue_ID
LEFT JOIN DRCArticles DA ON DA.ID=A.DRCArticle_ID
WHERE
(A.RowType in (1,2,3,4,5))
and (P.TradeType = 1) and (P.IsReverseChargeDeclared='A')
and (A.VATMode = 1)
and (P.VATDate$Date >= {$DATE_FROM} and P.VATDate$Date < {$DATE_TO})
and P.VATDocument = 'A'
{ANDWHERE}
GROUP BY DQ.DocumentType, P.ID, DA.Code
union all
SELECT
DQ.DocumentType AS DocumentType,
P.ID AS DocID,
MAX(P.Firm_ID) AS Firm_ID,
MAX(F.VATIdentNumber) as VATIdentNumber,
MAX(P.VATDate$DATE) AS VATDate$DATE,
SUM(-1*A.LocalTAmountWithoutVAT) as LocalAmount,
SUM(-1*A.TAmountWithoutVAT) as Amount,
MAX(DQ.Code || '-' || CAST(P.OrdNumber AS VARCHAR(10)) || '/' || PE.Code) AS DocNumber,
DA.Code as DRCCode,
SUM(-1*A.DRCQuantity) as DRCQuantity,
MAX(DA.Qunit) AS DRCUnit,
MAX(DA.Name) as DRCName,
MAX(DA.ID) as DRC_ID,
MAX(COALESCE(CNA.DocDate$DATE,0,CNA.DocDate$DATE)) AS AcknowledgeDate$DATE
FROM
IssuedCreditNotes2 A
JOIN IssuedCreditNotes P ON P.ID=A.Parent_ID
JOIN Firms F on F.ID = P.Firm_ID
JOIN Periods PE ON PE.ID=P.Period_ID
JOIN DocQueues DQ ON DQ.ID=P.DocQueue_ID
LEFT JOIN DRCArticles DA ON DA.ID=A.DRCArticle_ID
LEFT join CreditNotesAcknowledges CNA ON CNA.CreditNote_ID = P.ID
WHERE
(A.RowType in (1,2,3,4,5))
and (P.TradeType = 1) and (P.IsReverseChargeDeclared='A')
and (A.VATMode = 1)
and ( (P.Acknowledge = 0 and (P.VATDate$Date >= {$DATE_FROM} and P.VATDate$Date < {$DATE_TO})) or
(P.Acknowledge = 2 and (CNA.DocDate$Date >= {$DATE_FROM} and CNA.DocDate$Date < {$DATE_TO})) )
and P.VATDocument = 'A'
{ANDWHERE}
GROUP BY DQ.DocumentType, P.ID, DA.Code
union all
SELECT
DQ.DocumentType AS DocumentType,
P.ID AS DocID,
MAX(P.Firm_ID) AS Firm_ID,
MAX(F.VATIdentNumber) as VATIdentNumber,
MAX(P.VATDate$DATE) AS VATDate$DATE,
SUM(-1*A.LocalTAmountWithoutVAT) as LocalAmount,
SUM(-1*A.TAmountWithoutVAT) as Amount,
MAX(DQ.Code || '-' || CAST(P.OrdNumber AS VARCHAR(10)) || '/' || PE.Code) AS DocNumber,
DA.Code as DRCCode,
SUM(-1*A.DRCQuantity) as DRCQuantity,
MAX(DA.Qunit) AS DRCUnit,
MAX(DA.Name) as DRCName,
MAX(DA.ID) as DRC_ID,
MAX(0) AS AcknowledgeDate$DATE
FROM
RefundedCashReceived2 A
JOIN RefundedCashReceived P ON P.ID=A.Parent_ID
JOIN Firms F on F.ID = P.Firm_ID
JOIN Periods PE ON PE.ID=P.Period_ID
JOIN DocQueues DQ ON DQ.ID=P.DocQueue_ID
LEFT JOIN DRCArticles DA ON DA.ID=A.DRCArticle_ID
WHERE
(A.RowType in (1,2,3,4,5))
and (P.TradeType = 1) and (P.IsReverseChargeDeclared='A')
and (A.VATMode = 1)
and (P.VATDate$Date >= {$DATE_FROM} and P.VATDate$Date < {$DATE_TO})
and P.VATDocument = 'A'
{ANDWHERE}
GROUP BY DQ.DocumentType, P.ID, DA.Code
ORDER BY 4,5,1,2