| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- IF OBJECT_ID ('dbo.ManagerTransactionNeeded','V') IS NOT NULL DROP VIEW dbo.ManagerTransactionNeeded
- GO
- CREATE VIEW dbo.ManagerTransactionNeeded
- AS
- /* ───────── existing CTEs (unchanged) ───────── */
- WITH CurrentCodeAmounts AS (
- SELECT t.CompanyID,
- t.ProjectID,
- SUM(t.BillableQty) AS BillableQty
- FROM PMTran t
- JOIN InventoryItem i
- ON i.CompanyID = t.CompanyID
- AND i.InventoryID = t.InventoryID
- WHERE i.InventoryCD = 'L023'
- GROUP BY t.CompanyID, t.ProjectID
- ),
- RateTable AS ( -- one row per $‑range
- SELECT 1 AS ref, 0 AS MinAmt, 1000 AS MaxAmt, 1.0 AS Qty, 90 AS Rate UNION ALL
- SELECT 2, 1001, 2500, 1.5, 90 UNION ALL
- SELECT 3, 2501, 5000, 4.5, 90 UNION ALL
- SELECT 4, 5001, 7500, 4.5, 90 UNION ALL
- SELECT 5, 7501, 10000, 7.5, 90 UNION ALL
- SELECT 6, 10001, 25000, 9.0, 90 UNION ALL
- SELECT 7, 25001, 50000, 10.5, 90 UNION ALL
- SELECT 8, 50001, 99999999999, 10.5, 90
- ),
- CurrentRevisedAmounts AS (
- SELECT b.CompanyID,
- b.ProjectID,
- SUM(b.CuryRevisedAmount) AS RevisedAmount
- FROM PMBudget b
- join PMAccountGroup a on b.companyid = a.CompanyID and b.AccountGroupID = a.GroupID
- where a.GroupCD = 'REVENUE'
- GROUP BY b.CompanyID, b.ProjectID
- ),
- /* ───────── new CTEs ───────── */
- TargetQty AS (
- SELECT cra.CompanyID,
- cra.ProjectID,
- cra.RevisedAmount,
- rt.MinAmt,
- rt.MaxAmt,
- rt.Qty AS TargetQty,
- rt.Rate
- FROM CurrentRevisedAmounts cra
- JOIN RateTable rt
- ON cra.RevisedAmount BETWEEN rt.MinAmt AND rt.MaxAmt
- ),
- QtyAdjustment AS (
- SELECT tq.CompanyID,
- tq.ProjectID,
- tq.RevisedAmount,
- tq.MinAmt,
- tq.MaxAmt,
- COALESCE(ca.BillableQty,0) AS CurrentBillableQty,
- tq.TargetQty,
- tq.Rate,
- CAST(tq.TargetQty - COALESCE(ca.BillableQty,0) AS DECIMAL(18,2)) AS DeltaQty
- FROM TargetQty tq
- LEFT JOIN CurrentCodeAmounts ca
- ON ca.CompanyID = tq.CompanyID
- AND ca.ProjectID = tq.ProjectID
- )
- /* ───────── final output ───────── */
- SELECT c.CompanyID,
- c.ContractID,
- c.ContractCD,
- qa.RevisedAmount AS RevisedAmount, -- total revised amount
- qa.MinAmt, qa.MaxAmt, -- bracket limits
- qa.CurrentBillableQty,
- qa.CurrentBillableQty * qa.Rate AS CurrentValue, -- $ at rate
- qa.TargetQty,
- qa.TargetQty * qa.Rate AS TargetValue,
- qa.DeltaQty,
- qa.DeltaQty * qa.Rate AS DeltaValue -- what to add/credit
- FROM QtyAdjustment qa
- JOIN Contract c
- ON c.CompanyID = qa.CompanyID
- AND c.ContractID = qa.ProjectID
|