Advertisement
airton-junior

VisualForce

Apr 5th, 2023
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.08 KB | None | 0 0
  1. //Arquivo da página. Nome: ResumoOportunidades
  2. <apex:page controller="ResumoOportunidade" lightningStylesheets="true">
  3. <head>
  4. <style>
  5. th{
  6. background-color: lightblue;
  7. font-weight: bold;
  8. text-align: center;
  9. padding: 3px;
  10. }
  11. td{
  12. padding: 3px;
  13. }
  14. </style>
  15. </head>
  16. <div style="text-align: center;">
  17. <p style="font-weight: bold; font-size: 14pt;">Opportunity Summary</p>
  18.  
  19. <table border="1" style="width: 100%; border: 1px black solid; border-collapse: collapse">
  20. <tr>
  21. <th></th>
  22. <th>Open</th>
  23. <th>Won</th>
  24. <th>Lost</th>
  25. <th>Total</th>
  26. </tr>
  27. <tr>
  28. <td style="font-weight: bold; background-color: lightsalmon"># (%)</td>
  29. <td>{!openCount} ({!openCountPercent}%)</td>
  30. <td>{!wonCount} ({!wonCountPercent}%)</td>
  31. <td><span style="color: red;">{!lostCount} ({!lostCountPercent}%)</span></td>
  32. <td>{!totalCount} ({!totalCountPercent}%)</td>
  33. </tr>
  34. <tr>
  35. <td style="font-weight: bold; background-color: lightsalmon">$$ (%)</td>
  36. <td>{!openAmount} ({!openAmountPercent}%)</td>
  37. <td>{!wonAmount} ({!wonAmountPercent}%)</td>
  38. <td><span style="color: red;">{!lostAmount} ({!lostAmountPercent}%)</span></td>
  39. <td>{!totalAmount} ({!totalAmountPercent}%)</td>
  40. </tr>
  41. </table>
  42. </div>
  43. </apex:page>
  44.  
  45. //Arquivo do controller. //ResumoOportunidade
  46.  
  47. public with sharing class ResumoOportunidade {
  48. public static Decimal openCount {get;set;}
  49. public static Decimal wonCount {get;set;}
  50. public static Decimal lostCount {get;set;}
  51. public static Decimal totalCount {get;set;}
  52.  
  53. public static Decimal openCountPercent {get;set;}
  54. public static Decimal wonCountPercent {get;set;}
  55. public static Decimal lostCountPercent {get;set;}
  56. public static Decimal totalCountPercent {get;set;}
  57.  
  58. public static Decimal openAmount {get;set;}
  59. public static Decimal wonAmount {get;set;}
  60. public static Decimal lostAmount {get;set;}
  61. public static Decimal totalAmount {get;set;}
  62.  
  63. public static Decimal openAmountPercent {get;set;}
  64. public static Decimal wonAmountPercent {get;set;}
  65. public static Decimal lostAmountPercent {get;set;}
  66. public static Decimal totalAmountPercent {get;set;}
  67.  
  68. public ResumoOportunidade(){
  69. String aId = ApexPages.currentPage().getParameters().get('id');
  70. List<Opportunity> openList = [SELECT Id FROM Opportunity WHERE AccountId = :aId AND isClosed=false];
  71. openCount = openList.size();
  72.  
  73. List<Opportunity> wonList = [SELECT Id FROM Opportunity WHERE AccountId = :aId AND isWon = true];
  74. wonCount = wonList.size();
  75.  
  76. List<Opportunity> lostList = [SELECT Id FROM Opportunity WHERE AccountId = :aId AND isClosed = true AND isWon = false];
  77. lostCount = lostList.size();
  78.  
  79. List<Opportunity> totalList = [SELECT Id FROM Opportunity WHERE AccountId = :aId];
  80. totalCount = totalList.size();
  81.  
  82.  
  83.  
  84. List<AggregateResult> openListAmount = [SELECT sum(amount) oAmount FROM Opportunity WHERE AccountId = :aId AND isClosed = false];
  85. openAmount = (Decimal)openListAmount[0].get('oAmount');
  86. openAmount = openAmount==null?0:openAmount.setScale(2);
  87.  
  88. List<AggregateResult> wonListAmount = [SELECT sum(amount) wAmount FROM Opportunity WHERE AccountId = :aId AND isWon = true];
  89. wonAmount = (Decimal)wonListAmount[0].get('wAmount');
  90. wonAmount = wonAmount==null?0:wonAmount.setScale(2);
  91.  
  92.  
  93. List<AggregateResult> lostListAmount = [SELECT sum(amount) lAmount FROM Opportunity WHERE AccountId = :aId AND isClosed = true AND isWon = false];
  94. lostAmount = (Decimal)lostListAmount[0].get('lAmount');
  95. lostAmount = lostAmount==null?0:lostAmount.setScale(2);
  96.  
  97.  
  98. List<AggregateResult> totalListAmount = [SELECT sum(amount) tAmount FROM Opportunity WHERE AccountId = :aId];
  99. totalAmount = (Decimal)totalListAmount[0].get('tAmount');
  100. totalAmount = totalAmount==null?0:totalAmount.setScale(2);
  101.  
  102.  
  103.  
  104. openAmountPercent = ((openAmount/totalAmount)*100).setScale(2);
  105. openAmountPercent = totalAmount==0?0:openAmountPercent;
  106.  
  107. wonAmountPercent = ((wonAmount/totalAmount)*100).setScale(2);
  108. wonAmountPercent = totalAmount==0?0:wonAmountPercent;
  109.  
  110. lostAmountPercent = ((lostAmount/totalAmount)*100).setScale(2);
  111. lostAmountPercent = totalAmount==0?0:lostAmountPercent;
  112.  
  113. totalAmountPercent = ((totalAmount/totalAmount)*100).setScale(2);
  114. totalAmountPercent = totalAmount==0?0:totalAmountPercent;
  115.  
  116.  
  117.  
  118.  
  119.  
  120. openCountPercent = ((openCount/totalCount)*100).setScale(2);
  121. wonCountPercent = ((wonCount/totalCount)*100).setScale(2);
  122. lostCountPercent = ((lostCount/totalCount)*100).setScale(2);
  123. totalCountPercent = ((totalCount/totalCount)*100).setScale(2);
  124.  
  125. }
  126.  
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement