Advertisement
takz

POC tracker Logic Check

Jun 27th, 2024
491
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 34.87 KB | None | 0 0
  1. SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  2. --DECLARE @Date datetime
  3. --SET @Date = '20230930'
  4.  
  5.  
  6.  
  7. if object_id('tempdb.dbo.#erctierqtr', 'U') is not null
  8. drop table #erctierqtr;
  9.  
  10.  
  11.  
  12. if object_id('tempdb.dbo.#Aaron', 'U') is not null
  13. drop table #Aaron;
  14.  
  15.      select
  16.             n.[fileID]
  17.      ,      f.[fileAccCode]
  18.      ,      m.[Client]
  19.      ,      n.ID
  20.      ,      n.[status]
  21.      ,      n.[TaxYear]
  22.      ,      n.FEDState
  23.      --,      n.[FiscalQuarter] [Quarter]
  24.      --,      cast(left(n.[ERCQualifiedType],1) as int) [Tier]
  25.      ,      n.[sentTo3E]
  26.      ,      n.[FeeCapType]
  27.      ,      n.GrossValue
  28.      ,      n.Value
  29.      ,  n.Type
  30.      ,      row_number() over(partition by m.[Client], n.[TaxYear],n.Type/*, n.[FiscalQuarter]*/ order by n.[sentTo3E] desc) [Rn]
  31.      into #erctierqtr
  32.      from
  33.            [MS_LIVE_Clone].[dbo].[udFiNumbers] n
  34.      join
  35.            [MS_LIVE_Clone].[config].[dbfile] f on f.[fileID] = n.[fileID]
  36.      join
  37.            [TE_3E_PROD_Clone].[dbo].[Matter] m on m.[MattIndex] = f.[fileAccCode]
  38.      where
  39.             --n.[ERCQualifiedType] is not null
  40.             f.fileDepartment = 'R&D/SALT'
  41.             and n.[Active] = 1
  42.             and n.sentTo3E is not null
  43.             --and n.[status] = 'S'
  44.             and cast(n.[sentTo3E] as date) <= @Date
  45.  
  46.  
  47.     SELECT *
  48.     ,CASE
  49.             WHEN    HasFedandState = 1 AND
  50.                     (MAX(CASE WHEN FEDState = 'FED' THEN Total END)OVER(Partition BY Number, year) IS NOT NULL AND MAX(CASE WHEN FEDState <> 'FED' THEN Total END)OVER(Partition BY Number, year) IS NOT NULL/* OR
  51.                     MAX(CASE WHEN FEDState <> 'FED' THEN FinalCredit END)OVER(Partition BY Number, year) IS NOT NULL AND MAX(CASE WHEN FEDState = 'FED' THEN FinalCredit END)OVER(Partition BY Number, year) IS NULL*/) THEN 1
  52.                     ELSE 0 END HasFedStateSplit
  53.         into #Aaron
  54.         FROM
  55.         (
  56.  
  57.     select
  58.     m.Number
  59.     , c.DisplayName
  60.     , pc.TriggerType
  61.     , pc.year
  62. --  , pc.quarter
  63.     ,CASE WHEN IsFederal = 1 THEN 'FED' ELSE pc.State END FEDState
  64.     ,CASE WHEN (MAX(IsFederal)OVER(Partition BY m.Number, pc.year) = 1 AND MAX(IsFederal)OVER(Partition BY m.Number, pc.year) = 0 )
  65.         THEN 1 ELSE 0 END HasFedandState
  66.     , pc.ControlGroup
  67.     , ph.FeeCapPct
  68.     , pc.OrigCredit
  69.     , pc.FinalCredit
  70.     , pc.ValueAssessment
  71.     , pc.Adjustments
  72.     , pc.Total
  73.     , m.MattStatus
  74.     , pc.TimeStamp
  75. --  , eq.Tier
  76.     ,m.NxStartDate
  77.     , m.NxEndDate
  78.     ,m.MattIndex
  79.     ,MAX(COALESCE(NULLIF(NULLIF(CASE WHEN eq.type = 'FN' THEN sentTo3E END,'19990131'),'19990101'),FNDate,ph.EffStart))sentTo3EFN
  80.     ,MAX(COALESCE(NULLIF(NULLIF(CASE WHEN eq.type = 'VA' THEN sentTo3E END,'19990131'),'19990101'),pc.VADAte,ph.EffStart))sentTo3EVA
  81.     ,SUM(pc.[RevenuePct]) RevenuePct
  82.    
  83.     from
  84.     (
  85.     SELECT m.MattIndex,m.Number,m.client, m.Description,m.MattStatus, m.EngSignedDate_CCC,DATEADD(d,0,DATEDIFF(d,0,TimeStamp)) NxStartDate,'99991231' NxEndDate
  86.     FROM
  87.         [TE_3E_PROD_Clone].[dbo].matter m
  88.     UNION ALL
  89.     SELECT m.MattIndex,m.Number,m.client, m.Description,m.MattStatus, m.EngSignedDate_CCC,DATEADD(d,0,DATEDIFF(d,0,TimeStamp)) NxStartDate,DATEADD(d,-1,DATEDIFF(d,0,AuditTimeStamp)) NxEndDate
  90.     FROM
  91.         [TE_3E_PROD_Clone].[dbo].matter_audit m
  92.     ) m
  93.     join [TE_3E_PROD_Clone].[dbo].PGDetHdr_CCC ph on ph.MatterLkUp = m.MattIndex
  94.     left join [TE_3E_PROD_Clone].[dbo].PGDetChild_CCC pc on pc.PGDetHdr = ph.PGDetHdr_CCCID
  95.     left join [TE_3E_PROD_Clone].[dbo].Client c on c.ClientIndex = m.Client
  96.     join [TE_3E_PROD_Clone].[dbo].MattDate MD ON MD.MatterLkUp = m.MattIndex
  97.     LEFT JOIN
  98.         #erctierqtr eq on eq.Client = m.Client and eq.taxYear = pc.Year and ((eq.FEDState = 'FED' AND pc.IsFederal = 1) OR eq.FEDState = pc.State COLLATE SQL_Latin1_General_CP1_CI_AS)  /*and eq.Quarter = pc.Quarter COLLATE SQL_Latin1_General_CP1_CI_AS*/  and rn=1
  99.     where
  100.     @Date Between m.NxStartDate and m.NxEndDate AND
  101.     @Date Between md.NxStartDate and md.NxEndDate AND
  102.     @Date Between ph.NxStartDate and ph.NxEndDate AND
  103.     md.PracticeGroup in ('110','120') AND
  104.     md.Arrangement IN ('CONT','FFFINAL') AND
  105.     m.MattStatus not in ('Cancel_NOEL', 'CANCELDUP','NO_EL','KO')
  106.     GROUP BY
  107.     m.Number
  108.     , c.DisplayName
  109.     , pc.TriggerType
  110.     , pc.year
  111.     ,CASE WHEN IsFederal = 1 THEN 'FED' ELSE pc.State END
  112. --  , pc.quarter
  113.     , pc.ControlGroup
  114.     , ph.FeeCapPct
  115.     , pc.OrigCredit
  116.     , pc.FinalCredit
  117.     , pc.ValueAssessment
  118.     , pc.Adjustments
  119.     , pc.Total
  120.     , m.MattStatus
  121.     , pc.TimeStamp
  122. --  , eq.Tier
  123.     ,m.NxStartDate
  124.     , m.NxEndDate
  125.     ,m.MattIndex
  126.     ,IsFederal
  127.     ) a
  128.  
  129.  
  130.  
  131.     if object_id('tempdb.dbo.#Aaron2', 'U') is not null
  132.  
  133.  
  134.  
  135. drop table #Aaron2;
  136.  
  137. DECLARE @Date2 datetime
  138. SET @Date2 = DATEAdd(d,-day(@Date),@Date)
  139.  
  140.     SELECT *
  141.     ,CASE
  142.             WHEN    HasFedandState = 1 AND
  143.                     (MAX(CASE WHEN FEDState = 'FED' THEN FinalCredit END)OVER(Partition BY Number, year) IS NOT NULL AND MAX(CASE WHEN FEDState <> 'FED' THEN FinalCredit END)OVER(Partition BY Number, year) IS NOT NULL /*OR
  144.                     MAX(CASE WHEN FEDState <> 'FED' THEN FinalCredit END)OVER(Partition BY Number, year) IS NOT NULL AND MAX(CASE WHEN FEDState = 'FED' THEN FinalCredit END)OVER(Partition BY Number, year) IS NULL*/) THEN 1
  145.                     ELSE 0 END HasFedStateSplit
  146.         into #Aaron2
  147.         FROM
  148.         (
  149.  
  150.     select
  151.     m.Number
  152.     , c.DisplayName
  153.     , pc.TriggerType
  154.     , pc.year
  155. --  , pc.quarter
  156.     ,CASE WHEN IsFederal = 1 THEN 'FED' ELSE pc.State END FEDState
  157.     ,CASE WHEN (MAX(IsFederal)OVER(Partition BY m.Number, pc.year) = 1 AND MAX(IsFederal)OVER(Partition BY m.Number, pc.year) = 0 )
  158.         THEN 1 ELSE 0 END HasFedandState
  159.     , pc.ControlGroup
  160.     , ph.FeeCapPct
  161.     , pc.OrigCredit
  162.     , pc.FinalCredit
  163.     , pc.ValueAssessment
  164.     , pc.Adjustments
  165.     , pc.Total
  166.     , m.MattStatus
  167.     , pc.TimeStamp
  168. --  , eq.Tier
  169.     ,m.NxStartDate
  170.     , m.NxEndDate
  171.     ,m.MattIndex
  172.     ,MAX(COALESCE(NULLIF(NULLIF(CASE WHEN eq.type = 'FN' THEN sentTo3E END,'19990131'),'19990101'),FNDate,ph.EffStart))sentTo3EFN
  173.     ,MAX(COALESCE(NULLIF(NULLIF(CASE WHEN eq.type = 'VA' THEN sentTo3E END,'19990131'),'19990101'),pc.VADAte,ph.EffStart))sentTo3EVA
  174.     ,SUM(pc.[RevenuePct]) RevenuePct
  175.     ,ms.Description Status
  176.     from
  177.     (
  178.     SELECT m.MattIndex,m.Number,m.client, m.Description,m.MattStatus, m.EngSignedDate_CCC,DATEADD(d,0,DATEDIFF(d,0,TimeStamp)) NxStartDate,'99991231' NxEndDate
  179.     FROM
  180.         [TE_3E_PROD_Clone].[dbo].matter m
  181.     UNION ALL
  182.     SELECT m.MattIndex,m.Number,m.client, m.Description,m.MattStatus, m.EngSignedDate_CCC,DATEADD(d,0,DATEDIFF(d,0,TimeStamp)) NxStartDate,DATEADD(d,-1,DATEDIFF(d,0,AuditTimeStamp)) NxEndDate
  183.     FROM
  184.         [TE_3E_PROD_Clone].[dbo].matter_audit m
  185.     ) m
  186.     JOIN
  187.     TE_3E_PROD_Clone..MattStatus ms on ms.code = m.MattStatus
  188.     join [TE_3E_PROD_Clone].[dbo].PGDetHdr_CCC ph on ph.MatterLkUp = m.MattIndex
  189.     left join [TE_3E_PROD_Clone].[dbo].PGDetChild_CCC pc on pc.PGDetHdr = ph.PGDetHdr_CCCID
  190.     left join [TE_3E_PROD_Clone].[dbo].Client c on c.ClientIndex = m.Client
  191.     join [TE_3E_PROD_Clone].[dbo].MattDate MD ON MD.MatterLkUp = m.MattIndex
  192.     LEFT JOIN
  193.         #erctierqtr eq on eq.Client = m.Client and eq.taxYear = pc.Year and ((eq.FEDState = 'FED' AND pc.IsFederal = 1) OR eq.FEDState = pc.State COLLATE SQL_Latin1_General_CP1_CI_AS)  /*and eq.Quarter = pc.Quarter COLLATE SQL_Latin1_General_CP1_CI_AS*/  and rn=1
  194.     where
  195.     @Date2 Between m.NxStartDate and m.NxEndDate AND
  196.     @Date2 Between md.NxStartDate and md.NxEndDate AND
  197.     @Date2 Between ph.NxStartDate and ph.NxEndDate AND
  198.     md.PracticeGroup in ('110','120') AND
  199.     md.Arrangement IN ('CONT','FFFINAL') AND
  200.     m.MattStatus not in ('Cancel_NOEL', 'CANCELDUP','NO_EL','KO')
  201.     GROUP BY
  202.     m.Number
  203.     , c.DisplayName
  204.     , pc.TriggerType
  205.     , pc.year
  206.     ,CASE WHEN IsFederal = 1 THEN 'FED' ELSE pc.State END
  207. --  , pc.quarter
  208.     , pc.ControlGroup
  209.     , ph.FeeCapPct
  210.     , pc.OrigCredit
  211.     , pc.FinalCredit
  212.     , pc.ValueAssessment
  213.     , pc.Adjustments
  214.     , pc.Total
  215.     , m.MattStatus
  216.     , pc.TimeStamp
  217. --  , eq.Tier
  218.     ,m.NxStartDate
  219.     , m.NxEndDate
  220.     ,m.MattIndex
  221.     ,IsFederal
  222.     ,ms.Description
  223.     ) a
  224.  
  225.  
  226.  
  227.  
  228. if object_id('tempdb.dbo.#T', 'U') is not null
  229. drop table #T;
  230. Select
  231. ROW_NUMBER()OVER(PARTITION BY f.clid ORDER BY f.filetype asc) rn,f.clid mmclid,mm.*
  232. INTO #T
  233. from
  234. MS_LIVE_Clone.config.dbfile f
  235. JOIN
  236. (
  237.     SELECT
  238.          clid 'KO_SD_Clid'
  239.          ,fileID
  240.         ,Max(CAST(CASE WHEN KDTID in (26,54) and KeyDateIntervalActionGUID IN  ('C6BAB9B2-921D-428E-88C7-D709B2671954','8E852CC2-E94F-4BCE-92BD-7F4451BE7B3B') and NULLIF(wb.Completed,'01/01/1999') IS NOT NULL THEN NULLIF(wb.Completed,'01/01/1999') END AS DATE))  [KOCompleted]
  241.         ,Max(CAST(CASE WHEN KDTID in (26,54) and  KeyDateIntervalActionGUID IN ('54795381-1386-481D-904D-FD351B64D503','FA36CE1A-3321-4299-BEF1-8214CFFA2E8A') AND MilestoneCode = 'IDR 'AND NULLIF(wb.Completed,'01/01/1999') IS NOT NULL THEN NULLIF(wb.Completed,'01/01/1999') END AS DATE)) [IDR]
  242.         ,Max(CAST(CASE WHEN KDTID in (26,54) and  KeyDateIntervalActionGUID IN ('83CECA52-47E1-4CFC-A0C5-1E00AB8940AC','AA39E571-5488-4632-BE9D-EB4E77FCF608')  AND NULLIF(wb.Completed,'01/01/1999') IS NOT NULL THEN NULLIF(wb.Completed,'01/01/1999') END AS DATE)) [SD]
  243.         ,Max(CAST(CASE WHEN KDTID in (26,54) and  KeyDateIntervalActionGUID IN ('80ACDF6B-106A-430E-BEE6-8C5393141764','5E9C07B4-6835-4C2A-ADED-BD579941AD70')  AND NULLIF(wb.Completed,'01/01/1999') IS NOT NULL THEN NULLIF(wb.Completed,'01/01/1999') END AS DATE)) [PLV]
  244.         --,CASE WHEN  MAX(KeyDateIntervalActionGUID) =  'e71a28c4-ef5e-4a19-894f-933a3bd26570' AND wb.Completed IS NOT NULL THEN Cast(wb.Completed AS DATE) END AS [SD]
  245.     FROM [MS_LIVE_Clone].[dbo].[udvwWorkPlanBase] WB
  246.     WHERE  KDIActive = '1' AND KDTID in (26,54) and wb.Completed<=@Date
  247.     Group by clid,fileID
  248. )MM ON mm.KO_SD_Clid = f.clid and f.fileDepartment = 'R&D/SALT' and f.fileID = mm.fileID
  249. where f.fileType in ('R&D','SALT')
  250. --SELECT * FROM #T
  251.  
  252. --SELECT *
  253. --FROM
  254. --Operations..StudyInfo_Finance
  255.  
  256. if object_id('tempdb.dbo.#RawDog', 'U') is not null
  257. drop table #RawDog;
  258.  
  259. SELECT a.*
  260. ,   'Year' + CAST(DENSE_RANK()OVER(Partition By [Matter #] Order by COALESCE(Year,9999)) as varchar(2)) YearP
  261. ,   ph.OrigWIP
  262. ,   CASE WHEN md.Arrangement LIKE 'FF%' THEN 'FF' ELSE CAST(LEFT(ph.FeeCapPct/100,4) as varchar(4)) END Arrangement
  263. ,   CASE WHEN md.Arrangement LIKE 'FF%' THEN ph.OrigWIP ELSE ph.AdjWIP END RevisedWIP
  264. ,(1.00-TotalPct) meh
  265. ,   CASE WHEN md.Arrangement LIKE 'FF%' THEN ph.OrigWIP ELSE ph.AdjWIP END * (1.00-TotalPct) RemainingWIP
  266. ,   md.Arrangement FeeType
  267. ,   ph.AdjWIP E3RevisedWIP
  268. ,   ph.AdjWIP - CASE WHEN md.Arrangement LIKE 'FF%' THEN ph.OrigWIP ELSE ph.AdjWIP END Variance
  269. INTO #RawDog
  270. FROM (
  271. SELECT
  272.     SI.[Matter Number]                          [Matter #]
  273. ,   SI.[Project ID]                             MattIndex
  274. ,   SI.[Client Name]                            [Client Name]
  275. ,   SI.[Project Name]                           [Years]
  276. ,   SI.[Engagement Signed Date]
  277. ,   (SELECT TOP 1 MattStatusDate FROM TE_3E_PROD_Clone..Matter M WHERE M.NUmber COLLATE SQL_Latin1_General_CP1_CI_AS = SI.[Matter Number] ) MattStatusDate
  278. ,   SI.ClosedDate
  279. ,   a.Year                                      [Year]
  280. ,   a.FEDState
  281. --, a.Quarter                                   [Quarter]
  282. --, CONCAT(SI.[Matter Number],CAST(a.Year as char(4)) COLLATE SQL_Latin1_General_CP1_CI_AS,CAST(a.Quarter as char(2)) COLLATE SQL_Latin1_General_CP1_CI_AS) [Conct]
  283. ,   a.ControlGroup                              [Control Group]
  284. --, COALESCE(a.Tier,4)                                      [Tier Designation]
  285. ,   a.TriggerType                               [Trigger Type]
  286. ,   SI.Staus                                    [Status]
  287. ,   a.Total                                     [Tier Credit]
  288. ,   a.Total*(a.FeeCapPct/100)                   [Tier WIP]
  289. ,   t.SD
  290. ,   CASE
  291.         WHEN t.SD <=@Date THEN 0.1
  292.         WHEN a.FinalCredit is not null then 0.1
  293.         WHEN t.PLV <=@Date then 0.1
  294.         WHEN a.ValueAssessment is not null then 0.1
  295.         WHEN t.IDR <=@Date then 0.1
  296.         WHEN t.KOCompleted <=@Date then 0.1
  297.         ELSE 0.00
  298.     END                                         [KOCompletePct]
  299. ,   CASE
  300.         WHEN t.SD <=@Date THEN                  CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  301.         WHEN a.FinalCredit is not null then     CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  302.         WHEN t.PLV <=@Date then                 CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  303.         WHEN a.ValueAssessment is not null then CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  304.         WHEN t.IDR <=@Date then                 CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  305.         WHEN t.KOCompleted <=@Date then         CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  306.         ELSE 'Not Completed'
  307.     END                                         [KOCompleteDate]
  308. ,   CASE
  309.         WHEN t.SD <=@Date THEN 0.2
  310.         WHEN a.FinalCredit is not null then 0.2
  311.         WHEN t.PLV <=@Date then 0.2
  312.         WHEN a.ValueAssessment is not null then 0.2
  313.         WHEN t.IDR <=@Date then 0.2
  314.         ELSE 0.00
  315.     END                                         [IDRCompletePct]
  316. ,   CASE
  317.         WHEN t.SD <=@Date THEN                  CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  318.         WHEN a.FinalCredit is not null then     CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  319.         WHEN t.PLV <=@Date then                 CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  320.         WHEN a.ValueAssessment is not null then CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  321.         WHEN t.IDR <=@Date then                 CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  322.         ELSE 'Not Completed'
  323.     END                                         [IDRCompleteDate]
  324. ,   CASE
  325.         WHEN t.SD <=@Date THEN 0.2
  326.         WHEN a.FinalCredit is not null then 0.2
  327.         WHEN t.PLV <=@Date then 0.2
  328.         WHEN a.ValueAssessment is not null then 0.2
  329.         ELSE 0.00
  330.     END                                         [VACompletePct]
  331. ,   CASE
  332.         WHEN t.SD <=@Date THEN                  CONVERT(CHAR(10),COALESCE(a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  333.         WHEN a.FinalCredit is not null then     CONVERT(CHAR(10),COALESCE(a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  334.         WHEN t.PLV <=@Date then                 CONVERT(CHAR(10),COALESCE(a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  335.         WHEN a.ValueAssessment is not null then CONVERT(CHAR(10),COALESCE(a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  336.         ELSE 'Not Completed'
  337.     END                                         [VACompleteDate]
  338. ,   CASE
  339.         WHEN t.SD <=@Date THEN 0.2
  340.         WHEN a.FinalCredit is not null then 0.2
  341.         WHEN t.PLV <=@Date then 0.2
  342.         ELSE 0.00
  343.     END                                         [PLVCompletePct]
  344. ,   CASE
  345.         WHEN t.SD <=@Date THEN                  CONVERT(CHAR(10),COALESCE(t.PLV,a.SentTo3EFN,t.SD),101)
  346.         WHEN a.FinalCredit is not null then     CONVERT(CHAR(10),COALESCE(t.PLV,a.SentTo3EFN,t.SD),101)
  347.         WHEN t.PLV <=@Date then                 CONVERT(CHAR(10),COALESCE(t.PLV,a.SentTo3EFN,t.SD),101)
  348.         ELSE 'Not Completed'
  349.     END                                         [PLVCompleteDate]
  350. ,   CASE WHEN a.FEDState = 'FED' THEN CASE
  351.      --   WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  352.         --WHEN a.FinalCredit is not null /*and a.HasFedStateSplit != 1*/ then 0.4
  353.         --WHEN t.SD <=@Date THEN 0.4
  354.         WHEN t.SD <=@Date THEN 0.4
  355.         WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  356.         WHEN a.FinalCredit is not null /*and a.HasFedStateSplit != 1*/ then 0.4
  357.         ELSE 0.00
  358.     END END                                     [Final#sSentPctFED]
  359.  
  360. --, CASE WHEN a.FEDState = 'FED' THEN CASE
  361. --      WHEN t.SD <=@Date THEN 0.4
  362. --      WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  363. --      WHEN a.FinalCredit is not null and a.HasFedStateSplit != 1 THEN 0.4
  364. --      ELSE 0.00
  365. --  END END                                     [Final#sSentPctFED]
  366. ,   CASE WHEN a.FEDState = 'FED' THEN CASE
  367.         WHEN t.SD <=@Date THEN CONVERT(CHAR(10),COALESCE(a.SentTo3EFN,t.SD),101)
  368.         WHEN a.FinalCredit is not null then CONVERT(CHAR(10),COALESCE(a.SentTo3EFN,t.SD),101)
  369.         ELSE 'Not Completed'
  370.     END END                                             [Final#sSentDateFED]
  371.  
  372.  
  373. ,   CASE WHEN a.FEDState != 'FED' THEN CASE
  374.         --WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  375.         --WHEN a.FinalCredit is not null /*and a.HasFedStateSplit != 1*/ then 0.4
  376.         --WHEN t.SD <=@Date THEN 0.4
  377.         WHEN t.SD <=@Date THEN 0.4
  378.         WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  379.         WHEN a.FinalCredit is not null /*and a.HasFedStateSplit != 1*/ then 0.4
  380.         ELSE 0.00
  381.     END END                                             [Final#sSentPctState]
  382.  
  383.  
  384. --, CASE WHEN a.FEDState != 'FED' THEN CASE
  385. --      WHEN t.SD <=@Date THEN 0.4
  386. --      WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  387. --      WHEN a.FinalCredit is not null and a.HasFedStateSplit != 1 THEN 0.4
  388. --      ELSE 0.00
  389. --  END END                                             [Final#sSentPctState]
  390.  
  391. ,   CASE WHEN a.FEDState != 'FED' THEN CASE
  392.         WHEN t.SD <=@Date THEN CONVERT(CHAR(10),COALESCE(a.SentTo3EFN,t.SD),101)
  393.         WHEN a.FinalCredit is not null then CONVERT(CHAR(10),COALESCE(a.SentTo3EFN,t.SD),101)
  394.         ELSE 'Not Completed'
  395.     END END                                             [Final#sSentDateState]
  396. ,   CASE
  397.         WHEN t.SD <=@Date THEN 0.1
  398.         ELSE 0.00
  399.     END                                         [ReportDeliveredPct]
  400. ,   CASE
  401.         WHEN t.SD <=@Date THEN CONVERT(CHAR(10),t.SD,101)
  402.         ELSE 'Not Completed'
  403.     END                                         [ReportDeliveredDate]
  404. ,   CASE
  405.         WHEN t.SD <=@Date THEN 1.0
  406.         WHEN a.FinalCredit is not null AND a.HasFedStateSplit = 1 then 0.7
  407.         WHEN a.FinalCredit is not null then 0.9
  408.         WHEN t.PLV <=@Date then 0.5
  409.     --  WHEN a.ValueAssessment is not null then 0.5
  410.         WHEN t.IDR <=@Date then 0.3
  411.         WHEN t.KOCompleted <=@Date then 0.1
  412.         ELSE 0.00
  413.     END                                         [TotalPct]
  414. ,   null                                        [Comments]
  415. ,   SI.[Project Manager]                        [PM]
  416. ,   SI.TD                                       [TD]
  417. ,   SI.BD1                                      [BD]
  418. ,   CASE
  419.         WHEN a.TriggerType in ('FN','FR','VA') THEN (a.Total*(a.FeeCapPct/100)) *
  420.             CASE
  421.                 WHEN t.SD <=@Date THEN 1.0
  422.                 WHEN a.FinalCredit is not null AND a.HasFedStateSplit = 1 then 0.7
  423.                 WHEN a.FinalCredit is not null then 0.9
  424.                 WHEN t.PLV <=@Date then 0.5
  425.             --  WHEN a.ValueAssessment is not null then 0.5
  426.                 WHEN t.IDR <=@Date then 0.3
  427.                 WHEN t.KOCompleted <=@Date then 0.1
  428.                 ELSE 0.00
  429.             END
  430.     END                                         [RevbasedonPct]
  431. ,LastStatusUpdateDate
  432. ,CASE WHEN a.HasFedStateSplit = 0 THEN 100 ELSE a.RevenuePct END RevenuePct
  433. ,a2.Status PrevStatus
  434. ,a.HasFedStateSplit
  435. ,a.HasFedandState
  436.  
  437. FROM
  438.     Operations..StudyInfo_Finance SI
  439. JOIN
  440.     #Aaron a on a.MattIndex = SI.[Project ID]
  441. LEFT JOIN
  442.     #Aaron2 a2 on a2.MattIndex = SI.[Project ID]
  443. LEFT JOIN
  444.     MS_LIVE_Clone.config.dbClient c on c.clextID = SI.[Client ID]
  445. LEFT JOIN
  446.     #T t on t.fileid = SI.[File ID]
  447. LEFT JOIN
  448.     (
  449.         SELECT
  450.         doc.clID
  451.         ,
  452.         doc.fileid                          
  453.         ,
  454.         Cast(MAX(docAuthored) AS DATE) AS LastStatusUpdateDate
  455.     FROM
  456.         MS_LIVE_Clone.config.dbDocument AS doc
  457.         JOIN
  458.         MS_LIVE_Clone.config.dbfile f ON f.fileID = doc.fileID AND f.clID = doc.clID
  459.     GROUP BY
  460.        doc.clID
  461.        ,doc.fileid
  462.     ) SU ON SU.fileid = SI.[File ID]
  463. WHERE
  464.     SI.[Project Class] IN ('R&D Services','SALT Services') and SI.[Fee Type] != 'Hourly'
  465.     and a.YEar is not null
  466.     --and si.[Matter Number] = '002035.0003'
  467.  
  468. GROUP BY
  469.     SI.[Matter Number]                         
  470. ,   SI.[Client Name]                           
  471. ,   SI.[Project Name]  
  472. ,   SI.[Engagement Signed Date]
  473. ,   SI.ClosedDate                  
  474. ,   a.Year 
  475. ,   a.FEDState                                 
  476. --, a.Quarter                                  
  477. --, CONCAT(SI.[Matter Number],CAST(a.Year as char(4)) COLLATE SQL_Latin1_General_CP1_CI_AS,CAST(a.Quarter as char(2)) COLLATE SQL_Latin1_General_CP1_CI_AS,a.ControlGroup  COLLATE SQL_Latin1_General_CP1_CI_AS)
  478. ,   a.ControlGroup                             
  479. --, COALESCE(a.Tier,4)                                     
  480. ,   a.TriggerType                              
  481. ,   SI.Staus                                   
  482. ,   a.Total                                    
  483. ,   a.Total*(a.FeeCapPct/100)  
  484. ,   t.SD
  485. ,   CASE
  486.         WHEN t.SD <=@Date THEN 0.1
  487.         WHEN a.FinalCredit is not null then 0.1
  488.         WHEN t.PLV <=@Date then 0.1
  489.         WHEN a.ValueAssessment is not null then 0.1
  490.         WHEN t.IDR <=@Date then 0.1
  491.         WHEN t.KOCompleted <=@Date then 0.1
  492.         ELSE 0.00
  493.     END                                        
  494. ,   CASE
  495.         WHEN t.SD <=@Date THEN                  CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  496.         WHEN a.FinalCredit is not null then     CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  497.         WHEN t.PLV <=@Date then                 CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  498.         WHEN a.ValueAssessment is not null then CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  499.         WHEN t.IDR <=@Date then                 CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  500.         WHEN t.KOCompleted <=@Date then         CONVERT(CHAR(10),COALESCE(t.KOCompleted,t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  501.         ELSE 'Not Completed'
  502.     END                                        
  503. ,   CASE
  504.         WHEN t.SD <=@Date THEN 0.2
  505.         WHEN a.FinalCredit is not null then 0.2
  506.         WHEN t.PLV <=@Date then 0.2
  507.         WHEN a.ValueAssessment is not null then 0.2
  508.         WHEN t.IDR <=@Date then 0.2
  509.         ELSE 0.00
  510.     END                                        
  511. ,   CASE
  512.         WHEN t.SD <=@Date THEN                  CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  513.         WHEN a.FinalCredit is not null then     CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  514.         WHEN t.PLV <=@Date then                 CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  515.         WHEN a.ValueAssessment is not null then CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  516.         WHEN t.IDR <=@Date then                 CONVERT(CHAR(10),COALESCE(t.IDR,a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  517.         ELSE 'Not Completed'
  518.     END                                        
  519. ,   CASE
  520.         WHEN t.SD <=@Date THEN 0.2
  521.         WHEN a.FinalCredit is not null then 0.2
  522.         WHEN t.PLV <=@Date then 0.2
  523.         WHEN a.ValueAssessment is not null then 0.2
  524.         ELSE 0.00
  525.     END                                        
  526. ,   CASE
  527.         WHEN t.SD <=@Date THEN                  CONVERT(CHAR(10),COALESCE(a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  528.         WHEN a.FinalCredit is not null then     CONVERT(CHAR(10),COALESCE(a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  529.         WHEN t.PLV <=@Date then                 CONVERT(CHAR(10),COALESCE(a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  530.         WHEN a.ValueAssessment is not null then CONVERT(CHAR(10),COALESCE(a.SentTo3EVA,t.PLV,a.SentTo3EFN,t.SD),101)
  531.         ELSE 'Not Completed'
  532.     END                                        
  533. ,   CASE
  534.         WHEN t.SD <=@Date THEN 0.2
  535.         WHEN a.FinalCredit is not null then 0.2
  536.         WHEN t.PLV <=@Date then 0.2
  537.         ELSE 0.00
  538.     END                                        
  539. ,   CASE
  540.         WHEN t.SD <=@Date THEN                  CONVERT(CHAR(10),COALESCE(t.PLV,a.SentTo3EFN,t.SD),101)
  541.         WHEN a.FinalCredit is not null then     CONVERT(CHAR(10),COALESCE(t.PLV,a.SentTo3EFN,t.SD),101)
  542.         WHEN t.PLV <=@Date then                 CONVERT(CHAR(10),COALESCE(t.PLV,a.SentTo3EFN,t.SD),101)
  543.         ELSE 'Not Completed'
  544.     END                                        
  545. ,   CASE WHEN a.FEDState = 'FED' THEN CASE
  546.         -- WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  547.         --WHEN a.FinalCredit is not null /*and a.HasFedStateSplit != 1*/ then 0.4
  548.         --WHEN t.SD <=@Date THEN 0.4
  549.         WHEN t.SD <=@Date THEN 0.4
  550.         WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  551.         WHEN a.FinalCredit is not null /*and a.HasFedStateSplit != 1*/ then 0.4
  552.         ELSE 0.00
  553.     END END                                    
  554. ,   CASE WHEN a.FEDState = 'FED' THEN CASE
  555.         WHEN t.SD <=@Date THEN CONVERT(CHAR(10),COALESCE(a.SentTo3EFN,t.SD),101)
  556.         WHEN a.FinalCredit is not null then CONVERT(CHAR(10),COALESCE(a.SentTo3EFN,t.SD),101)
  557.         ELSE 'Not Completed'
  558.     END END                                            
  559. ,   CASE WHEN a.FEDState != 'FED' THEN CASE
  560.      --   WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  561.         --WHEN a.FinalCredit is not null /*and a.HasFedStateSplit != 1*/ then 0.4
  562.         --WHEN t.SD <=@Date THEN 0.4
  563.         WHEN t.SD <=@Date THEN 0.4
  564.         WHEN a.FinalCredit is not null and a.HasFedStateSplit = 1 THEN 0.2
  565.         WHEN a.FinalCredit is not null /*and a.HasFedStateSplit != 1*/ then 0.4
  566.         ELSE 0.00
  567.     END END                                            
  568. ,   CASE WHEN a.FEDState != 'FED' THEN CASE
  569.         WHEN t.SD <=@Date THEN CONVERT(CHAR(10),COALESCE(a.SentTo3EFN,t.SD),101)
  570.         WHEN a.FinalCredit is not null then CONVERT(CHAR(10),COALESCE(a.SentTo3EFN,t.SD),101)
  571.         ELSE 'Not Completed'
  572.     END END                                        
  573. ,   CASE
  574.         WHEN t.SD <=@Date THEN 0.1
  575.         ELSE 0.00
  576.     END                                        
  577. ,   CASE
  578.         WHEN t.SD <=@Date THEN CONVERT(CHAR(10),t.SD,101)
  579.         ELSE 'Not Completed'
  580.     END                                        
  581. ,   CASE
  582.         WHEN t.SD <=@Date THEN 1.0
  583.         WHEN a.FinalCredit is not null AND a.HasFedStateSplit = 1 then 0.7
  584.         WHEN a.FinalCredit is not null then 0.9
  585.         WHEN t.PLV <=@Date then 0.5
  586.     --  WHEN a.ValueAssessment is not null then 0.5
  587.         WHEN t.IDR <=@Date then 0.3
  588.         WHEN t.KOCompleted <=@Date then 0.1
  589.         ELSE 0.00
  590.     END                                                                                
  591. ,   SI.[Project Manager]                       
  592. ,   SI.TD                                      
  593. ,   SI.BD1                                     
  594. ,   CASE
  595.         WHEN a.TriggerType in ('FN','FR','VA') THEN (a.Total*(a.FeeCapPct/100)) *
  596.             CASE
  597.                 WHEN t.SD <=@Date THEN 1.0
  598.                 WHEN a.FinalCredit is not null AND a.HasFedStateSplit = 1 then 0.7
  599.                 WHEN a.FinalCredit is not null then 0.9
  600.                 WHEN t.PLV <=@Date then 0.5
  601.             --  WHEN a.ValueAssessment is not null then 0.5
  602.                 WHEN t.IDR <=@Date then 0.3
  603.                 WHEN t.KOCompleted <=@Date then 0.1
  604.                 ELSE 0.00
  605.             END
  606.     END
  607.     ,SI.[Project ID]
  608.     ,LastStatusUpdateDate
  609.     ,CASE WHEN a.HasFedStateSplit = 0 THEN 100 ELSE a.RevenuePct END
  610.     ,a2.Status
  611.     ,a.HasFedStateSplit
  612.     ,a.HasFedandState
  613.     ) a
  614. LEFT JOIN
  615.     TE_3E_PROD_Clone..PGDetHdr_CCC ph on ph.MatterLkUp = a.MattIndex and ph.NxEndDate = '99991231' and ph.NxStartDate != '99991231'
  616. LEFT JOIN
  617.     TE_3E_PROD_Clone..MattDate MD on MD.MatterLkUp = a.MattIndex and MD.NxEndDate = '99991231' and MD.NxStartDate != '99991231'
  618.  
  619.     --Select * from #RawDog
  620.  
  621. if object_id('tempdb.dbo.#Pivot', 'U') is not null
  622.     drop table #Pivot;     
  623.  
  624. SELECT
  625.     [Matter #]
  626. ,   MattIndex
  627. ,   MattStatusDate
  628. ,   ClosedDate
  629. ,   [Client Name]
  630. ,   [Engagement Signed Date]
  631. ,   [TD]
  632. ,   [PM]
  633. ,   [BD]
  634. ,   Max([SD]) [SD]
  635. --, [FEDState]
  636. ,   Max([HasFedandState]) HasFedandState
  637. ,   Max([HasFedStateSplit]) [HasFedStateSplit]
  638. ,   STUFF((SELECT DISTINCT ',' + NULLIF(FEDState,'FED') FROM #RawDog I WHERE I.MattIndex = p.MattIndex FOR XML PATH('')),1,1,'') State
  639. ,   STUFF((SELECT DISTINCT ',' + CASE WHEN FEDState = 'FED' THEN 'FED' ELSE NULL END FROM #RawDog I WHERE I.MattIndex = p.MattIndex FOR XML PATH('')),1,1,'') FED
  640. ,   Years StudyYears
  641. ,   MAX(KOCompletePct) KOCompletePct
  642. ,   MAX(KOCompleteDate) KOCompleteDate
  643. ,   MAX(IDRCompletePct) IDRCompletePct
  644. ,   MAX(IDRCompleteDate) IDRCompleteDate
  645. ,   MAX(VACompletePct) VACompletePct
  646. ,   MAX(VACompleteDate) VACompleteDate
  647. ,   MAX(PLVCompletePct) PLVCompletePct
  648. ,   MAX(PLVCompleteDate) PLVCompleteDate
  649. ,   Case when MAX(Final#sSentPctFED) = 0.4 and MAX(Final#sSentPctState) = 0.4 then 0.2 else MAX(Final#sSentPctFED) end Final#sSentPctFED
  650. ,   MAX(Final#sSentDateFED) Final#sSentDateFED
  651. ,   Case when MAX(Final#sSentPctState) = 0.4 and MAX(Final#sSentPctFED) = 0.4 then 0.2 else MAX(Final#sSentPctState) end Final#sSentPctState
  652. ,   MAX(Final#sSentDateState) Final#sSentDateState
  653. ,   MAX(ReportDeliveredPct) ReportDeliveredPct
  654. ,   MAX(ReportDeliveredDate) ReportDeliveredDate
  655. ,   MAX(TotalPct)TotalPct
  656. ,   LastStatusUpdateDate
  657. ,   Comments
  658. ,   CASE WHEN SUM(Year2) is null then MAX(E3RevisedWIP) ELSE SUM(Year1) END Year1
  659. ,   SUM(Year2) Year2
  660. ,   SUM(Year3) Year3
  661. ,   SUM(Year4) Year4
  662. ,   SUM(Year5) Year5
  663. ,   SUM(CASE WHEN FEDState = 'FED' THEN (COALESCE(Year1,0) + COALESCE(Year2,0) + COALESCE(Year3,0) + COALESCE(Year4,0) + COALESCE(Year5,0))* TRY_CAST(Arrangement as decimal(12,2)) ELSE 0 END) FEDCredit
  664. ,   SUM(CASE WHEN FEDState != 'FED' THEN (COALESCE(Year1,0) + COALESCE(Year2,0) + COALESCE(Year3,0) + COALESCE(Year4,0) + COALESCE(Year5,0))* TRY_CAST(Arrangement as decimal(12,2)) ELSE 0 END) StateCredit
  665. ,   CASE WHEN SUM(CASE WHEN FEDState = 'FED' THEN RevenuePct ELSE 0 END)>1.0 AND MAX(HasFedStateSplit) = 0 THEN 1.0 WHEN SUM(CASE WHEN FEDState = 'FED' THEN RevenuePct ELSE 0 END)>1.0 AND MAX(HasFedStateSplit) = 1 THEN 0.5 ELSE SUM(CASE WHEN FEDState = 'FED' THEN RevenuePct ELSE 0 END) END FEDRevPerc
  666. ,   CASE WHEN SUM(CASE WHEN FEDState != 'FED' THEN RevenuePct ELSE 0 END)>1.0  AND MAX(HasFedStateSplit) = 0 THEN 1.0 WHEN SUM(CASE WHEN FEDState != 'FED' THEN RevenuePct ELSE 0 END)>1.0  AND MAX(HasFedStateSplit) = 1 THEN 0.5 ELSE SUM(CASE WHEN FEDState != 'FED' THEN RevenuePct ELSE 0 END) END StateRevPerc
  667. ,   OrigWIP
  668. ,   Arrangement
  669. ,   RevisedWIP
  670. ,   MAX(RemainingWIP) RemainingWIP
  671. ,   FeeType
  672. ,   E3RevisedWIP
  673. ,   Variance
  674. ,   Status
  675. ,   PrevStatus
  676. INTO #Pivot
  677.  
  678. FROM
  679. (
  680. SELECT *
  681. FROM
  682. #RawDog
  683. ) p
  684. PIVOT
  685. (SUM([Tier Credit]) FOR YearP IN ([Year1],[Year2],[Year3],[Year4],[Year5])
  686. ) as p
  687. GROUP BY
  688. [Matter #]
  689. ,   [Client Name]
  690. ,   [Engagement Signed Date]
  691. ,   [TD]
  692. ,   [PM]
  693. ,   [BD]
  694. ,   Years
  695. --, [SD]
  696. --, [FEDState]
  697. --, [HasFedStateSplit]
  698. --, KOCompletePct
  699. --, KOCompleteDate
  700. --, IDRCompletePct
  701. --, IDRCompleteDate
  702. --, VACompletePct
  703. --, VACompleteDate
  704. --, PLVCompletePct
  705. --, PLVCompleteDate
  706. --, Final#sSentPct
  707. --, Final#sSentDate
  708. --, ReportDeliveredPct
  709. --, ReportDeliveredDate
  710. --, TotalPct
  711. ,   Comments
  712. ,   OrigWIP
  713. ,   Arrangement
  714. ,   RevisedWIP
  715. --, RemainingWIP
  716. ,   FeeType
  717. ,   E3RevisedWIP
  718. ,   Variance
  719. ,   Status
  720. ,   p.MattIndex
  721. ,   MattStatusDate
  722. ,   ClosedDate
  723. ,   LastStatusUpdateDate
  724. ,   PrevStatus
  725.  
  726.  
  727.  
  728. if object_id('tempdb.dbo.#Invoice', 'U') is not null
  729.     drop table #Invoice;
  730.  
  731. SELECT Number
  732. ,   MattINdex
  733. ,   InvNumber
  734. ,   InvDate
  735. ,   PracticeGroupDesc
  736. ,   ArrangementDesc
  737. ,   COUNT(1) InvNbr
  738. ,   SUM(OrgFee) OrgAmt
  739. ,   SUM(AdjWIP) AdjWIP
  740. INTO #Invoice
  741. FROM
  742. TE_3E_PROD_Clone..InvMaster IM
  743. OUTER APPLY
  744. (SELECT TOP 1 md.*,pg.Description PracticeGroupDesc, A.Description ArrangementDesc
  745. FROM
  746. TE_3E_PROD_Clone..MattDate MD
  747. JOIN
  748. TE_3E_PROD_Clone..PracticeGroup PG on PG.Code = MD.PracticeGroup
  749. JOIN
  750. TE_3E_PROD_Clone..Arrangement A on A.Code = MD.Arrangement
  751. WHERE IM.LeadMatter = MD.MatterLkUp and @Date between MD.NxStartDate and MD.NxEndDate
  752. Order by MD.NxStartDate
  753. ) MD
  754. OUTER APPLY
  755. (SELECT TOP 1 *
  756. FROM
  757. TE_3E_PROD_Clone..PGDetHdr_CCC PH
  758. WHERE IM.LeadMatter = PH.MatterLkUp and @Date between PH.NxStartDate and PH.NxEndDate
  759. Order by PH.NxStartDate
  760. ) PH
  761. JOIN
  762. TE_3E_PROD_Clone..Matter M on M.MattIndex = IM.LeadMatter
  763. WHERE
  764. Arrangement IN ('CONT','FFFINAL','FFPHASE') and IM.PostDate<=@Date --and COALESCE(ReversedDate,@Date)>=@Date
  765. AND PracticeGroup in (110,120) --and m.Number = '008070.0009'
  766. GROUP BY
  767. Number
  768. ,   InvNumber
  769. ,   InvDate
  770. ,   PracticeGroupDesc
  771. ,   ArrangementDesc
  772. ,   MattINdex
  773. UNION ALL
  774. SELECT Number
  775. ,   MattINdex
  776. ,   InvNumber
  777. ,   ReversedDate InvDate
  778. ,   PracticeGroupDesc
  779. ,   ArrangementDesc
  780. ,   COUNT(1) InvNbr
  781. ,   -SUM(OrgFee) OrgAmt
  782. ,   SUM(AdjWIP) AdjWIP
  783. FROM
  784. TE_3E_PROD_Clone..InvMaster IM
  785. OUTER APPLY
  786. (SELECT TOP 1 md.*,pg.Description PracticeGroupDesc, A.Description ArrangementDesc
  787. FROM
  788. TE_3E_PROD_Clone..MattDate MD
  789. JOIN
  790. TE_3E_PROD_Clone..PracticeGroup PG on PG.Code = MD.PracticeGroup
  791. JOIN
  792. TE_3E_PROD_Clone..Arrangement A on A.Code = MD.Arrangement
  793. WHERE IM.LeadMatter = MD.MatterLkUp and @Date between MD.NxStartDate and MD.NxEndDate
  794. Order by MD.NxStartDate
  795. ) MD
  796. OUTER APPLY
  797. (SELECT TOP 1 *
  798. FROM
  799. TE_3E_PROD_Clone..PGDetHdr_CCC PH
  800. WHERE IM.LeadMatter = PH.MatterLkUp and @Date between PH.NxStartDate and PH.NxEndDate
  801. Order by PH.NxStartDate
  802. ) PH
  803. JOIN
  804. TE_3E_PROD_Clone..Matter M on M.MattIndex = IM.LeadMatter
  805. WHERE
  806. Arrangement IN ('CONT','FFFINAL','FFPHASE') and IM.ReversedDate<=@Date and IsReversed = 1
  807. AND PracticeGroup in (110,120) --and m.Number = '008070.0009'
  808. GROUP BY
  809. Number
  810. ,   InvNumber
  811. ,   ReversedDate
  812. ,   PracticeGroupDesc
  813. ,   ArrangementDesc
  814. ,   MattINdex
  815. UNION ALL
  816. SELECT
  817.     m.Number
  818.     ,   MattINdex
  819. ,   CRInvNumber
  820. ,   CRDate
  821. ,   PracticeGroupDesc
  822. ,   ArrangementDesc
  823. ,   COUNT(1) InvNbr
  824. ,   SUM(CrAmt) OrgAmt
  825. ,   SUM(AdjWIP) AdjWIP
  826. from
  827. (
  828.     SELECT
  829.         IM.InvIndex
  830.     ,   IM.InvNumber CRInvNumber
  831.     ,   IM.CrNoteNumber
  832.     ,   IM.InvDate CRDate
  833.     ,   IM.OrgAmt CrAmt
  834.     ,   CASE WHEN SUM(COALESCE(CN.Amount,-ARI.ARAmt,-IM.OrgAmt)) >0 then COALESCE(IMC.InvNumber,IMR.InvNumber,IMO.InvNumber,'Unal') ELSE MAX(CASE WHEN SUM(COALESCE(CN.Amount,-ARI.ARAmt,-IM.OrgAmt)) >0 then COALESCE(IMC.InvNumber,IMR.InvNumber,IMO.InvNumber,'Unal') end)OVER(PARTITION BY IM.InvNumber) end AppliedToInvNumber
  835.     ,   CASE WHEN SUM(COALESCE(CN.Amount,-ARI.ARAmt,-IM.OrgAmt))>0 then COALESCE(IMO.InvDate,IMR.InvDate,ARUN.InvDate,CN.CrDate) ELSE MAX(CASE WHEN SUM(COALESCE(CN.Amount,-ARI.ARAmt,-IM.OrgAmt))>0 then COALESCE(IMO.InvDate,IMR.InvDate,ARUN.InvDate,CN.CrDate) end)OVER(PARTITION BY IM.InvNumber) end AppliedToDate
  836.     ,   SUM(COALESCE(CN.Amount,-ARI.ARAmt,-IM.OrgAmt)) AppliedToAmt
  837.     ,   IM.LeadMatter
  838.     FROM
  839.         TE_3E_PROD_Clone..InvMaster IM
  840.     LEFT JOIN
  841.         TE_3E_PROD_Clone..ProfMaster PM on PM.InvMaster = IM.InvIndex
  842.     LEFT JOIN
  843.         TE_3E_PROD_Clone..CreditNote CN on CN.CreditNoteIndex = pm.CreditNoteIndex
  844.     LEFT JOIN
  845.         TE_3E_PROD_Clone..Invmaster IMC on IMC.InvIndex = cn.InvMaster--Applied to
  846.     LEFT JOIN
  847.         TE_3E_PROD_Clone..ARDetail AR on AR.AppInvMaster = IM.InvIndex and ARList = 'Bill' and cn.CreditNoteID is null
  848.     LEFT JOIN
  849.         TE_3E_PROD_Clone..ARDetail ARA on ARA.AppInvMaster = AR.AppInvMaster and ARA.ARList = 'Receipt' and cn.CreditNoteID is null
  850.     LEFT JOIN
  851.         TE_3E_PROD_Clone..ARDetail ARI ON ARA.RcptMaster = ARI.RcptMaster AND ARA.ARDetailID != ARI.ARDetailID and cn.CreditNoteID is null
  852.     LEFT JOIN
  853.         TE_3E_PROD_Clone..InvMaster IMR on IMR.InvIndex = ARI.AppInvMaster and cn.CreditNoteID is null
  854.     LEFT JOIN
  855.         TE_3E_PROD_Clone..ARDetail ARUN on ARUN.UnalType = ARI.UnalType and ARUN.Payor = ARI.Payor and ARUN.ARDetailID != ARI.ARDetailID
  856.                                     AND ARUN.ARAmt = -ARI.ARAmt
  857.     OUTER APPLY
  858.         (SELECT TOP 1 *
  859.         FROM
  860.         TE_3E_PROD_Clone..InvMaster IMO where IMO.InvNUmber = IM.InvNumber and IMO.InvIndex != IM.InvIndex and IMO.CrNoteNumber is null
  861.         ORDER BY CASE WHEN IM.IsReversed = IMO.IsReversed then 0 else 1 end
  862.         ) IMO
  863.  
  864.     WHERE
  865.         IM.OrgAmt<0 AND CRDate<=@Date
  866.         --and IM.InvNumber = '121172'
  867.     GROUP BY
  868.         IM.InvIndex
  869.     ,   IM.InvNumber
  870.     ,   IM.CrNoteNumber
  871.     ,   IM.InvDate
  872.     ,   IM.OrgAmt
  873.  
  874.     ,   COALESCE(IMC.InvNumber,IMR.InvNumber,IMO.InvNumber,'Unal')
  875.     ,   COALESCE(IMO.InvDate,IMR.InvDate,ARUN.InvDate,CN.CrDate)
  876.     ,   IM.LeadMatter
  877. ) a
  878. JOIN
  879. TE_3E_PROD_Clone..Matter m on m.MattIndex = a.LeadMatter
  880. JOIN
  881. TE_3E_PROD_Clone..Client c on c.clientindex = m.client
  882. OUTER APPLY
  883.     (SELECT TOP 1 md.*,pg.Description PracticeGroupDesc, A2.Description ArrangementDesc
  884.     FROM
  885.     TE_3E_PROD_Clone..MattDate MD
  886.     JOIN
  887.     TE_3E_PROD_Clone..PracticeGroup PG on PG.Code = MD.PracticeGroup
  888.     JOIN
  889.     TE_3E_PROD_Clone..Arrangement A2 on A2.Code = MD.Arrangement
  890.     WHERE a.LeadMatter = MD.MatterLkUp and @Date between MD.NxStartDate and MD.NxEndDate
  891.     Order by MD.NxStartDate
  892.     ) MD
  893. OUTER APPLY
  894.     (SELECT TOP 1 *
  895.     FROM
  896.     TE_3E_PROD_Clone..PGDetHdr_CCC PH
  897.     WHERE a.LeadMatter = PH.MatterLkUp and @Date between PH.NxStartDate and PH.NxEndDate
  898.     Order by PH.NxStartDate
  899.     ) PH
  900. WHERE
  901. Arrangement IN ('CONT','FFFINAL','FFPHASE') --and IM.PostDate<=@Date and COALESCE(ReversedDate,@Date)>=@Date
  902. AND PracticeGroup in (110,120)  --and m.Number = '008070.0009'
  903. group by
  904.     m.Number
  905. ,   CRInvNumber
  906. ,   CRDate
  907. ,   PracticeGroupDesc
  908. ,   ArrangementDesc
  909. ,   MattINdex
  910.  
  911.  
  912.  
  913.  
  914. SELECT P.*
  915. ,   CASE WHEN TotalPct<0.5 THEN 0 ELSE E3RevisedWIP*TotalPct END RecognizedWIP
  916. ,   I.OrgAmt TotalInvoiced
  917. ,   I.OrgAmtLastMonth
  918. ,   FEDCredit*TotalPct FEDRev
  919. ,   StateCredit*TotalPct StateRev
  920. ,   CASE
  921.         WHEN I.OrgAmt<(FEDCredit*TotalPct) AND TotalPct>=0.5 THEN FEDCredit*TotalPct-I.OrgAmt
  922.         ELSE 0
  923.     END AccruedFEDRevenue
  924. ,   CASE
  925.        
  926.         WHEN I.OrgAmt>=(FEDCredit*TotalPct) AND I.OrgAmt<(E3RevisedWIP*TotalPct) AND TotalPct>=0.5 THEN E3RevisedWIP*TotalPct-I.OrgAmt
  927.         ELSE 0
  928.     END AccruedSALTRevenue
  929. ,   CASE WHEN I.OrgAmt>=(E3RevisedWIP*TotalPct) AND TotalPct>=0.5 AND ISNULL(FEDCredit,0)*TotalPct>=0 THEN I.OrgAmt-(E3RevisedWIP*TotalPct)
  930.         ELSE 0
  931.     END DeferredFEDRevenue
  932. ,   CASE WHEN I.OrgAmt>=(E3RevisedWIP*TotalPct) AND TotalPct>=0.5 AND FEDCredit*TotalPct<=0 THEN I.OrgAmt-E3RevisedWIP*TotalPct
  933.         ELSE 0
  934.     END DeferredSALTRevenue
  935.  
  936.    
  937. FROM
  938. #Pivot p
  939. LEFT JOIN
  940. (SELECT MattIndex,SUM(OrgAmt) OrgAmt,SUM(CASE WHEN InvDate between DATEADD(d,-DAY(@Date),@Date)+1 AND @Date THEN OrgAmt ELSE 0 END) OrgAmtLastMonth
  941. FROM
  942. #Invoice GROUP BY MattIndex) I on I.MattIndex = p.MattIndex
  943. WHERE
  944. Status IN (@Status)
  945.  
  946. --Order by
  947. --p.[Matter #] Asc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement