Stored Procedures [rdld].[GetFinanceDetailForDriverAccount]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@DriverIdint4
@AccountNumbervarchar(50)50
Permissions
TypeActionOwning Principal
GrantExecuteMssExec
SQL Script
/****** Object:  StoredProcedure [rdld].[GetFinanceDetailForDriverAccount]  ******/
-- =============================================
-- Author:     Jeff Spindler
-- Date: 11/22
-- Description:   Gets the finance info for a driver's account
-- =============================================
CREATE PROCEDURE [rdld].[GetFinanceDetailForDriverAccount]
  @DriverId      INT,
  @AccountNumber AS VARCHAR(50)
AS
BEGIN
   SET NOCOUNT ON;
   SET DEADLOCK_PRIORITY LOW;
   IF @AccountNumber = 'Statement'
   BEGIN
      SET @AccountNumber =
      (
          SELECT TOP 1 VendorID
          FROM SysUserLaborTypeMap
          INNER JOIN LaborType ON LaborType.PriKey = SysUserLaborTypeMap.LaborTypeFID AND LaborType.IsLongDistance = 1
          WHERE SysUserFID = @DriverId
          AND VendorID IS NOT NULL
          GROUP BY VendorID
          ORDER BY COUNT(*) DESC
      );
   END;

   SELECT    AccountNumber,
             TransactionDate,
             Description,
             SUM(Amount) AS Amount,
             OrderNumber
   FROM
   (
       SELECT GL00105.ACTNUMST AS AccountNumber,
              DATEADD(dd, 0, DATEDIFF(dd, 0, GL20000.TRXDATE)) AS TransactionDate,
              GL20000.REFRENCE AS Description,
              GL20000.CRDTAMNT - GL20000.DEBITAMT AS Amount,
              'N/A' AS OrderNumber
       FROM
            GL20000_Synonym as GL20000
            LEFT JOIN GL00105_Synonym as GL00105 ON GL00105.ACTINDX = GL20000.ACTINDX
       UNION ALL
       SELECT GL00105.ACTNUMST AS AccountNumber,
              DATEADD(dd, 0, DATEDIFF(dd, 0, GL30000.TRXDATE)) AS TransactionDate,
              GL30000.REFRENCE AS Description,
              GL30000.CRDTAMNT - GL30000.DEBITAMT AS Amount,
              'N/A' AS OrderNumber
       FROM
            GL30000_Synonym as GL30000
            LEFT JOIN GL00105_Synonym as GL00105 ON GL00105.ACTINDX = GL30000.ACTINDX
       UNION ALL
       SELECT VENDORID AS AccountNumber,
              DATEADD(dd, 0, DATEDIFF(dd, 0, PSTGDATE)) AS TransactionDate,
              TRXDSCRN AS Description,
              CASE
                  WHEN DOCTYPE IN(5, 6)
                  THEN -1
                  ELSE 1
              END * DOCAMNT AS Amount,
              'N/A' AS OrderNumber
       FROM
            PM20000_Synonym as PM20000
       WHERE   VCHRNMBR NOT LIKE 'RV%'
       UNION ALL
       SELECT VENDORID AS AccountNumber,
              DATEADD(dd, 0, DATEDIFF(dd, 0, PSTGDATE)) AS TransactionDate,
              CASE
                  WHEN DOCTYPE = 6
                  THEN 'STMT'
                  ELSE TRXDSCRN
              END AS Description,
              CASE
                  WHEN DOCTYPE IN(5, 6)
                  THEN -1
                  ELSE 1
              END * DOCAMNT AS Amount,
              'N/A' AS OrderNumber
       FROM
            PM30200_Synonym as PM30200
       WHERE   VCHRNMBR NOT LIKE 'RV%'
       UNION ALL
       SELECT CommissionedDetail.VendorID AS AccountNumber,
              DATEADD(dd, 0, DATEDIFF(dd, 0, CommissionedDetail.PostedDate)) AS TransactionDate,
              Orders.OrderNo AS Description,
              SUM(CommissionedDetail.Amount) AS Amount,
              Orders.OrderNo AS OrderNumber
       FROM
            CommissionedDetail
            INNER JOIN BillingMinorItem ON CommissionedDetail.BMinPriKey = BillingMinorItem.BMinPriKey
            INNER JOIN BillingMajorItem ON BillingMinorItem.BMajPriKey = BillingMajorItem.BMajPriKey
            INNER JOIN Orders ON BillingMajorItem.OrdPriKey = Orders.PriKey
       GROUP BY CommissionedDetail.VendorID,
                Orders.OrderNo,
                DATEADD(dd, 0, DATEDIFF(dd, 0, CommissionedDetail.PostedDate))
       UNION ALL
       SELECT dbo.CommissionedDetail.VendorID AS AccountNumber,
              DATEADD(dd, 0, DATEDIFF(dd, 0, dbo.CommissionedDetail.PostedDate)) AS TransactionDate,
              dbo.Orders.OrderNo AS Description,
              SUM(dbo.CommissionedDetail.Amount) AS Amount,
              dbo.Orders.OrderNo AS OrderNumber
       FROM
            dbo.CommissionedDetail
            INNER JOIN dbo.BillingMinorDist ON dbo.CommissionedDetail.BminDistPriKey = dbo.BillingMinorDist.BMinDistPriKey
            INNER JOIN dbo.BillingMinorItem ON dbo.BillingMinorDist.BMinPriKey = dbo.BillingMinorItem.BMinPriKey
            INNER JOIN dbo.BillingMajorItem ON dbo.BillingMinorItem.BMajPriKey = dbo.BillingMajorItem.BMajPriKey
            INNER JOIN dbo.Orders ON dbo.BillingMajorItem.OrdPriKey = dbo.Orders.PriKey
       GROUP BY dbo.CommissionedDetail.VendorID,
                dbo.Orders.OrderNo,
                DATEADD(dd, 0, DATEDIFF(dd, 0, dbo.CommissionedDetail.PostedDate))
   ) AS Tbl1
   WHERE AccountNumber = @AccountNumber
         AND TransactionDate > DATEADD(mm, -6, GETDATE())
         AND Amount <> 0
   GROUP BY AccountNumber,
            TransactionDate,
            Description,
            OrderNumber FOR XML RAW;

END;
GO
GRANT EXECUTE ON  [rdld].[GetFinanceDetailForDriverAccount] TO [MssExec]
GO
Uses