Guest User

Untitled

a guest
Jan 19th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.93 KB | None | 0 0
  1. "{!reductionOrderItemNumbersMap[orderItem.originalorderItemId]}"
  2.  
  3. <apex:page tabStyle="Order" controller="OrderProductController">
  4. <apex:form >
  5. <apex:pageBlock>
  6. <div>
  7. <apex:pageBlockTable id="orderTable" value="{!orderItems}" var="orderItem" styleClass="list" headerClass="headerRow">
  8. <apex:column >
  9. <apex:facet name="header">
  10. <b><u>{!$Label.ORDER_NUMBER}</u></b>
  11. </apex:facet>
  12. <apex:outputText value="{!orderItem.Order.OrderNumber}"/>
  13. </apex:column>
  14.  
  15. <apex:column >
  16. <apex:facet name="header" >
  17. <b><u>{!$Label.ORDER_PRODUCT_NUMBER}</u></b>
  18. </apex:facet>
  19. <apex:outputText value="{!reductionOrderItemNumbersMap}"/>
  20. </apex:column>
  21.  
  22. </apex:pageBlockTable>
  23. <div/>
  24. </apex:pageBlock>
  25. </apex:form>
  26. </apex:page>
  27.  
  28. public with sharing class OrderProductController {
  29. private Id orderId;
  30. private List<OrderItem> newOrderItems = new List<OrderItem>();
  31. private Order reductionOrder = null;
  32. private Map<Id, OrderItem> reductionOrigOrderItemsMap;
  33. public Map<Id, String> reductionOrderItemNumbersMap{get;set;}
  34.  
  35. public OrderProductController(Id orderId) {
  36. this.orderId = orderId;
  37.  
  38. getRO();
  39. getOrderItems();
  40. }
  41.  
  42. public Order getRO() {
  43. if(reductionOrder == null) {
  44. reductionOrigOrderItemsMap = new Map<Id, OrderItem>();
  45. reductionOrder = [SELECT ContractId, OrderNumber,Pricebook2Id,Contract.CurrencyIsoCode,
  46. (SELECT Id, Order.Id, Order.ContractId, Order.OrderNumber,
  47. OrderItemNumber,OriginalOrderItemId FROM OrderItems)
  48. FROM Order WHERE Id =: orderId];
  49.  
  50. for(OrderItem oi : reductionOrder.OrderItems) {
  51. reductionOrigOrderItemsMap.put(oi.OriginalOrderItemId, oi);
  52. System.debug('****reductionOrigOrderItemsMap'+reductionOrigOrderItemsMap);
  53.  
  54. }
  55. }
  56. return reductionOrder;
  57. }
  58.  
  59. public List<OrderItem> getOrderItems() {
  60. reductionOrder = getRO();
  61. reductionOrderItemNumbersMap = new Map<Id, String>();
  62. System.debug('###reductionOrder:'+reductionOrder);
  63. if((newOrderItems == null || newOrderItems.size() == 0) && reductionOrder != null) {
  64. newOrderItems = new List<OrderItem>();
  65. List<OrderItem> origOrderItems = new List<OrderItem>();
  66. Set<Id> origOrderItemIds = new Set<Id>();
  67. if(reductionOrigOrderItemsMap != null && reductionOrigOrderItemsMap.keySet().size() > 0) {
  68. origOrderItemIds = reductionOrigOrderItemsMap.keySet();
  69. }
  70. System.debug('###reductionOrigOrderItemsMap:'+reductionOrigOrderItemsMap);
  71. System.debug('###origOrderItemIds:'+origOrderItemIds);
  72.  
  73. origOrderItems = [SELECT Id, Order.Id, Order.ContractId, Order.OrderNumber, OrderItemNumber,sfbase__AvailableQuantity__c,sfbase__OrderItemEffectiveDate__c,
  74. PricebookEntry.Pricebook2Id, PricebookEntry.Product2Id
  75. FROM OrderItem
  76. WHERE sfbase__AvailableQuantity__c > 0
  77. AND Order.ContractId =: reductionOrder.ContractId
  78. AND (Order.StatusCode = 'A' OR Order.StatusCode = 'E')
  79. AND Id NOT IN : origOrderItemIds
  80. ORDER BY Order.OrderNumber, sfbase__OrderItemEffectiveDate__c];
  81. }
  82.  
  83. for(OrderItem oi : origOrderItems) {
  84. reductionOrderItemNumbersMap.put(sglOrderItem.Id,sglOrderItem.OrderItemNumber);
  85. Double qty = null;
  86. if(reductionOrigOrderItemsMap.get(oi.Id) != null) {
  87. qty = (-1) * reductionOrigOrderItemsMap.get(oi.Id).Quantity;
  88. } else {
  89. continue;
  90. }
  91.  
  92. OrderItem orderItem = new OrderItem(Id = oi.Id,
  93. OriginalOrderItemId = oi.Id,
  94. UnitPrice = oi.UnitPrice,
  95. sfbase__AvailableQuantity__c = oi.sfbase__AvailableQuantity__c,
  96. Quantity = qty);
  97.  
  98. orderItem.Order = oi.Order;
  99. newOrderItems.add(orderItem);
  100.  
  101. }
  102. System.debug('###reductionOrigOrderItemNumbersMap:'+reductionOrderItemNumbersMap);
  103. System.debug('###newOrderItems:'+newOrderItems);
  104. return newOrderItems;
  105. }
  106. }
Add Comment
Please, Sign In to add comment