SELECT
T0.DocEntry,
(ISNULL((SELECT TOP 1 T4.NfmName FROM ONFM T4 WHERE T4.AbsEntry = T0.Model),'') + ' / ' + ISNULL(T0.SeriesStr,'') + ' / ' + CAST(T0.Serial AS VARCHAR) ) as 'Documento',
T1.LineNum,
T1.ItemCode,
T3.ItemName,
T0.DocDate,
T0.CardCode,
T0.CardName,
T1.Quantity,
CASE WHEN MAX(T0.DiscSum) > 0 then
((SUM(T1.[TotalSumSy]) + SUM(T1.[VatSum]) + SUM(T1.DistribSum)) - ((SUM(T1.[TotalSumSy]) / (max(T0.DocTotal)+max(T0.DiscSum))) * max(T0.DiscSum)) )
/ SUM(T1.Quantity)
ELSE
(SUM(T1.[TotalSumSy]) + SUM(T1.[VatSum]) + SUM(T1.DistribSum) )
/ SUM(T1.Quantity)
END AS ValorTotal,
(SELECT SUM(T8.BaseSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'ICM%') AS BaseICMS,
(SELECT MAX(T8.TaxRate) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'ICM%') AS AliqICMS,
(SELECT SUM(T8.TaxSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'ICM%') AS ValorICMS,
(SELECT SUM(T8.BaseSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'PTA%') AS BasePTA,
(SELECT MAX(T8.TaxRate) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'PTA%') AS AliqPTA,
(SELECT SUM(T8.TaxSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'PTA%') AS ValorPTA,
(SELECT SUM(T8.BaseSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'PPB%') AS BasePPB,
(SELECT MAX(T8.TaxRate) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'PPB%') AS AliqPPB,
(SELECT SUM(T8.TaxSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'PPB%') AS ValorPPB,
(SELECT SUM(T8.BaseSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'IPI%') AS BaseIPI,
(SELECT MAX(T8.TaxRate) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'IPI%') AS AliqIPI,
(SELECT SUM(T8.TaxSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'IPI%') AS ValorIPI,
(SELECT SUM(T8.BaseSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'PIS%') AS BasePIS,
(SELECT MAX(T8.TaxRate) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'PIS%') AS AliqPIS,
(SELECT SUM(T8.TaxSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'PIS%') AS ValorPIS,
(SELECT SUM(T8.BaseSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'COF%') AS BaseCOF,
(SELECT MAX(T8.TaxRate) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'COF%') AS AliqCOF,
(SELECT SUM(T8.TaxSum) / SUM(T1.Quantity) FROM INV4 T8 WHERE T8.DocEntry = T0.DocEntry AND T8.LineNum = T1.LineNum AND T8.StaCode LIKE 'COF%') AS ValorCOF
FROM OINV T0
INNER JOIN INV1 T1 ON (T1.DocEntry = T0.DocEntry)
INNER JOIN OITM T3 ON (T3.Itemcode = T1.Itemcode)
LEFT JOIN ONFM T2 ON T2.AbsEntry = T0.Model
WHERE
ISNULL(T2.NfmCode,'') NOT IN ('Outra', 'Nada', 'Fora', 'FAT', '') -- nao entra notas sem modelo definido
AND T0.DocEntry NOT IN (SELECT T4.BaseEntry FROM ORIN T3 INNER JOIN RIN1 T4 ON T3.DocEntry = T4.DocEntry WHERE T4.BaseEntry IS NOT NULL AND T3.SeqCode = 1) -- Não entra nota cancelada (SAP 8.82)
AND T0.CANCELED = 'N' -- Não entra nota cancelada (SAP 9)
AND T0.DocDate BETWEEN '20140101' AND '20141212'
GROUP BY
T0.DocEntry,
T1.LineNum,
T0.SeqCode,
T0.DocDate,
T0.CardCode,
T0.CardName,
T1.CFOPCode,
T0.Model,
T0.SeriesStr,
T0.Serial,
T2.NfmCode,
T1.ItemCode,
T3.ItemName,
T1.Quantity
ORDER BY T0.DocEntry, T1.LineNum