ProjectInformation.sql 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. IF OBJECT_ID ('dbo.ProjectInformation','V') IS NOT NULL DROP VIEW dbo.ProjectInformation
  2. GO
  3. CREATE VIEW dbo.ProjectInformation
  4. AS
  5. SELECT c.CompanyID,
  6. c.ContractID,
  7. pAdd.City,
  8. pAdd.State,
  9. temp.ContractCD as template,
  10. loc.LocationCD,
  11. loc.Descr as LocationName,
  12. bAExec.AcctCD as ProjectExecutiveCD,
  13. bAExec.AcctName as ProjectExecutiveName,
  14. execEmp.UserID as ProjectExecutiveID,
  15. bAest.AcctCD as ProjectEstimatorCD,
  16. bAest.AcctName as ProjectEstimatorName,
  17. bAprod.AcctCD as ProjectProducerCD,
  18. bAprod.AcctName as ProjectProducerName,
  19. crUser.FullName as ProjectCreatedByUser,
  20. lmUser.FullName as ProjectLastModifiedByUser,
  21. salesAcct.AccountCD as SalesAccountCD,
  22. salesAcct.Description as SalesAccountDescription,
  23. dbo.GetProjectOpenInvoices(c.CompanyID, c.ContractID) as wattersonUnpaidInvoicesAmount,
  24. sum(case when pag.GroupCD = 'WIP' then bud.CuryActualAmount else 0 end) as WIPActual,
  25. sum(case when bud.[TYPE] = 'I' then bud.CuryActualAmount else 0 end) as RevenueActual,
  26. sum(case when bud.[TYPE] = 'E' then bud.CuryActualAmount else 0 end) as TotalExpenses,
  27. sum(case when bud.[TYPE] = 'E' then bud.CuryRevisedAmount else 0 end) as RevisedBudgetedExpense,
  28. sum(case when bud.[TYPE] = 'I' then bud.CuryRevisedAmount else 0 end) as RevisedBudgetedIncome,
  29. sum(case when pag.GroupCD = 'UNRECREV' then bud.CuryActualAmount else 0 end) as UnrecrevActual,
  30. sum(case when bud.[TYPE] = 'I' then bud.ActualAmount else 0 end) as ActualIncomeSum,
  31. sum(case when pag.GroupCD = 'UNBILLREV' then bud.ActualAmount else 0 end) as UnBillRev
  32. FROM
  33. Contract c
  34. left join PMBudget bud on bud.CompanyID = c.CompanyID and bud.ProjectID = c.ContractID
  35. LEFT JOIN PMAddress pAdd on pAdd.CompanyID = c.CompanyID and c.SiteAddressID = pAdd.AddressID
  36. left join PMAccountGroup pag on pag.CompanyID = bud.CompanyID and pag.GroupID = bud.AccountGroupID
  37. left join Contract temp on c.CompanyID = temp.CompanyID and c.TemplateID = temp.ContractID
  38. LEFT JOIN Location loc on loc.CompanyID = c.CompanyID and c.LocationID = loc.LocationID
  39. LEFT JOIN Users crUser on crUser.CompanyID = c.CompanyID and crUser.pkid = c.CreatedByID
  40. LEFT JOIN Users lmUser on lmUser.CompanyID = c.CompanyID and lmUser.pkid = c.LastModifiedByID
  41. LEFT JOIN Account salesAcct on salesAcct.CompanyID = c.CompanyID and salesAcct.AccountID = c.DefaultSalesAccountID
  42. LEFT JOIN ContractKvExt execNote ON execNote.CompanyID = c.CompanyID AND execNote.RecordID = c.NoteID AND execNote.FieldName = 'AttributePROJECTEXE'
  43. LEFT JOIN BAccount bAExec ON bAExec.CompanyID = execNote.CompanyID AND bAExec.AcctCD = execNote.ValueString
  44. LEFT JOIN EPEmployee execEmp ON bAExec.CompanyID = execEmp.CompanyID AND bAExec.BAccountID = execEmp.BAccountID
  45. LEFT JOIN ContractKvExt prodNote ON prodNote.CompanyID = c.CompanyID AND prodNote.RecordID = c.NoteID AND prodNote.FieldName = 'AttributePRODUCER'
  46. LEFT JOIN BAccount bAprod ON bAprod.CompanyID = prodNote.CompanyID AND bAprod.AcctCD = prodNote.ValueString
  47. LEFT JOIN ContractKvExt estNote ON estNote.CompanyID = c.CompanyID AND estNote.RecordID = c.NoteID AND estNote.FieldName = 'AttributeESTIMATOR'
  48. LEFT JOIN BAccount bAest ON bAest.CompanyID = estNote.CompanyID AND bAest.AcctCD = estNote.ValueString
  49. group by c.CompanyID,
  50. c.ContractID,
  51. pAdd.City,
  52. pAdd.State,
  53. temp.ContractCD,
  54. loc.LocationCD,
  55. loc.Descr,
  56. bAExec.AcctCD,
  57. bAExec.AcctName,
  58. execEmp.UserID,
  59. bAest.AcctCD,
  60. bAest.AcctName,
  61. bAprod.AcctCD,
  62. bAprod.AcctName,
  63. crUser.FullName,
  64. lmUser.FullName,
  65. salesAcct.AccountCD,
  66. salesAcct.Description