# Name: Retouren Export
# Description: Exportiert Retourenpositionen mit Retourengrund und Lieferant im gewaehlten Zeitraum.
# FileName: retouren_export
# UseDateFilter: true
# DateFilterInfo: r.dErstellt

SELECT
    CONVERT(varchar(10), r.dErstellt, 103) AS [Retourendatum],
    ISNULL(rp.cArtNr, '') AS [Artikelnummer],
    ISNULL(rp.cName, '') AS [Artikelname],
    ISNULL(grund.cName, '') AS [Retourengrund],
    ISNULL(lieferant.cFirma, '') AS [Lieferant],
    CAST(ISNULL(rp.fAnzahl, 0) AS decimal(18,2)) AS [Retourenmenge],
    ISNULL(r.cRetoureNr, '') AS [Retourennummer]
FROM dbo.tRMRetoure r
INNER JOIN dbo.tRMRetourePos rp
    ON rp.kRMRetoure = r.kRMRetoure
OUTER APPLY (
    SELECT TOP 1
        rgs.cName
    FROM dbo.tRMGrundSprache rgs
    WHERE rgs.kRMGrund = rp.kRMGrund
    ORDER BY
        CASE WHEN rgs.kSprache = 1 THEN 0 ELSE 1 END,
        rgs.kSprache
) grund
OUTER APPLY (
    SELECT TOP 1
        l.cFirma
    FROM dbo.tliefartikel la
    INNER JOIN dbo.tlieferant l
        ON l.kLieferant = la.tLieferant_kLieferant
    WHERE la.tArtikel_kArtikel = rp.kArtikel
    ORDER BY
        l.cFirma
) lieferant
WHERE r.dErstellt >= @DateFrom
  AND r.dErstellt < @DateTo
ORDER BY
    r.dErstellt,
    rp.cArtNr,
    grund.cName,
    lieferant.cFirma;
