fork download
  1. private static void generateSerialNumber( Map<Id,GRN__c> grnLineList,Map<Id,List<Order_Line__c>> orderLineList,List<Item_Line__c> newItemLineList){
  2.  
  3. Map<Id,Integer> exsistingOrdLineMap = new Map<Id,Integer>();
  4. Map<Id,Integer> ordLineCntMap = new Map<Id,Integer>();
  5. Map<Id,String> lastestSerialOrderOnProc = new Map<Id,String>();
  6. Map<Id,String> lastestItemSerialOnProc = new Map<Id,String>();
  7.  
  8. Map<Id,String> lastestOrdItemSerialProc = new Map<Id,String>();
  9.  
  10. Map<Id,Map<String,Integer>> lastItemSrlPrcOrdCnt = new Map<Id,Map<String,Integer>>();
  11.  
  12.  
  13. /*for(Id key : procGRNLatestData.keySet()){
  14.  
  15. List<String> splitString = procGRNLatestData.get(key).split('-',3);
  16. lastestSerialOrderOnProc.put(key,splitString[1]);
  17. lastestItemSerialOnProc.put(key,splitString[2]);
  18. List<String> splitString2 = procGRNLatestData.get(key).split('-',2);
  19. lastestOrdItemSerialProc.put(key,splitString2[1]);
  20. }*/
  21. for(Item_Line__c item :newItemLineList){
  22. if(serialNumberMap.containsKey(item.Procurement_Line__c)){
  23. Boolean recdQtGtReqQT = serialNumberMap.get(item.Procurement_Line__c).Purchase_Order_Line__r.Total_received_quantity__c > serialNumberMap.get(item.Procurement_Line__c).Procurement_Line__r.Quantity_Required__c ? true: false;
  24.  
  25. Integer ltstSrlNum = serialNumberMap.containsKey(item.Procurement_Line__c) && serialNumberMap.get(item.Procurement_Line__c).Serial_Number__c !=null ? Integer.ValueOf(serialNumberMap.get(item.Procurement_Line__c).Serial_Number__c.split('-',3)[2]) :0;
  26. String ltstOrdLineNum = serialNumberMap.containsKey(item.Procurement_Line__c) && serialNumberMap.get(item.Procurement_Line__c).Serial_Number__c !=null ? serialNumberMap.get(item.Procurement_Line__c).Serial_Number__c.split('-',3)[1] :null;
  27.  
  28. if(ltstOrdLineNum !=null){
  29. Integer existingNumber = lastItemSrlPrcOrdCnt.containsKey(item.Procurement_Line__c) && lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c) !=null && lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c).ContainsKey(ltstOrdLineNum) ?lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c).get(ltstOrdLineNum):0;
  30. Integer newNumb = ltstSrlNum+existingNumber;
  31. Map<String, Order_Line__c> innerOrdrLineMap = ordlineData.get(item.Procurement_Line__c);
  32. List<Order_Line__c> ordeLineList = new List<Order_Line__c>(innerOrdrLineMap.Values());
  33. List<String> innerKeyList = new List<String>(innerOrdrLineMap.KeySet());
  34. Integer IndexValue = innerKeyList.indexOf(ltstOrdLineNum);
  35. // Boolean isTrue = serialNumberMap.get(item.Procurement_Line__c).Procurement_Line__r.Quantity_Required__c >= newNumb ?true : false;
  36. Boolean isTrue = innerOrdrLineMap.get(ltstOrdLineNum).Quantity__c >= newNumb ? true: false;
  37. if(isTrue){
  38. if (!lastItemSrlPrcOrdCnt.containsKey(item.Procurement_Line__c)){
  39. lastItemSrlPrcOrdCnt.put(item.Procurement_Line__c, new Map<String, Integer>{ordeLineList[IndexValue].Name=> newNumb});
  40. item.Serial_Number__c = ordeLineList[IndexValue].Order__r.Name+'-'+ordeLineList[IndexValue].Name+'-'+ String.valueOf(newNumb).leftPad(7,'0');
  41. system.debug('Inner Number'+newNumb);
  42. }else{
  43. // system.debug('inside null');
  44. Map<String, Integer> innerMap = lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c);
  45. if (innerMap.containsKey(ordeLineList[IndexValue].Name)) {
  46. Integer newVal = innerMap.get(ordeLineList[IndexValue].Name) +1; //newNumb;
  47. innerMap.put(ordeLineList[IndexValue].Name, newVal);
  48. item.Serial_Number__c = ordeLineList[IndexValue].Order__r.Name+'-'+ordeLineList[IndexValue].Name+'-'+ String.valueOf(newVal).leftPad(7,'0');
  49. } else {
  50. innerMap.put(ordeLineList[IndexValue].Name, newNumb);
  51. item.Serial_Number__c = ordeLineList[IndexValue].Order__r.Name+'-'+ordeLineList[IndexValue].Name+'-'+ String.valueOf(newNumb).leftPad(7,'0');
  52. }
  53.  
  54. }
  55. }else{
  56. Integer newSrNum = 1;
  57. Integer Index = IndexValue;
  58. Index++;
  59.  
  60. //List<Order_Line__c> innerKeyList = new List<Order_Line__c>(innerOrdrLineMap.Values());
  61. if (!lastItemSrlPrcOrdCnt.containsKey(item.Procurement_Line__c)) {
  62. lastItemSrlPrcOrdCnt.put(item.Procurement_Line__c, new Map<String, Integer>{ordeLineList[Index].Name=> newSrNum});
  63. item.Serial_Number__c = ordeLineList[Index].Order__r.Name+'-'+ordeLineList[Index].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  64. }else{
  65. system.debug('inside order Line null');
  66. Map<String, Integer> innerMap = lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c);
  67. if (innerMap.containsKey(ordeLineList[Index].Name)) {
  68. Integer currentCount = innerMap.get(ordeLineList[Index].Name);
  69. if (currentCount >= ordeLineList[Index].Quantity__c) {
  70. Index++;
  71. if (ordeLineList.size() > Index) {
  72. // Integer newVal = innerMap.get(innerKeyList[Index].Name) + newSrNum;
  73. innerMap.put(ordeLineList[Index].Name, newSrNum);
  74. item.Serial_Number__c = ordeLineList[Index].Order__r.Name+'-'+ordeLineList[Index].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  75. }
  76. }else{
  77. Integer newVal = innerMap.get(ordeLineList[Index].Name) + newSrNum;
  78. innerMap.put(ordeLineList[Index].Name, newVal);
  79. item.Serial_Number__c = ordeLineList[Index].Order__r.Name+'-'+ordeLineList[Index].Name+'-'+ String.valueOf(newVal).leftPad(7,'0');
  80. innerMap.put(ordeLineList[Index].Name, newVal);
  81. }
  82. }else {
  83. innerMap.put(ordeLineList[Index].Name, newSrNum);
  84. item.Serial_Number__c = ordeLineList[Index].Order__r.Name+'-'+ordeLineList[Index].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  85. }
  86. }
  87. }
  88. /*Integer newSrNum =1;
  89. if(ordeLineList.size()>1 ){
  90. IndexValue++;
  91. Map<String, Integer> innerMap = lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c);
  92. if(!innerMap.containsKey(ordeLineList[IndexValue].Name)){
  93. system.debug('Index Value'+IndexValue);
  94. item.Serial_Number__c = ordeLineList[IndexValue].Order__r.Name+'-'+ordeLineList[IndexValue].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  95. lastItemSrlPrcOrdCnt.put(item.Procurement_Line__c, new Map<String,Integer>{ordeLineList[IndexValue].Name=> newSrNum});
  96. }
  97. }else{
  98. if (!lastItemSrlPrcOrdCnt.containsKey(item.Procurement_Line__c)){
  99. lastItemSrlPrcOrdCnt.put(item.Procurement_Line__c, new Map<String, Integer>{ordeLineList[IndexValue].Name=> newNumb});
  100. item.Serial_Number__c = ordeLineList[IndexValue].Order__r.Name+'-'+ordeLineList[IndexValue].Name+'-'+ String.valueOf(newNumb).leftPad(7,'0');
  101. system.debug('Inner Number'+newNumb);
  102. }else{
  103. // system.debug('inside null');
  104. Map<String, Integer> innerMap = lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c);
  105. if (innerMap.containsKey(ordeLineList[IndexValue].Name)) {
  106. Integer newVal = innerMap.get(ordeLineList[IndexValue].Name) +1; //newNumb;
  107. innerMap.put(ordeLineList[IndexValue].Name, newVal);
  108. item.Serial_Number__c = ordeLineList[IndexValue].Order__r.Name+'-'+ordeLineList[IndexValue].Name+'-'+ String.valueOf(newVal).leftPad(7,'0');
  109. } else {
  110. innerMap.put(ordeLineList[IndexValue].Name, newNumb);
  111. item.Serial_Number__c = ordeLineList[IndexValue].Order__r.Name+'-'+ordeLineList[IndexValue].Name+'-'+ String.valueOf(newNumb).leftPad(7,'0');
  112. }
  113. }
  114.  
  115. }*/
  116.  
  117. }else{
  118. Integer newSrNum = 1;
  119. Integer Index = 0;
  120. Map<String, Order_Line__c> innerOrdrLineMap = ordlineData.get(item.Procurement_Line__c);
  121. List<Order_Line__c> innerKeyList = new List<Order_Line__c>(innerOrdrLineMap.Values());
  122. if (!lastItemSrlPrcOrdCnt.containsKey(item.Procurement_Line__c)) {
  123. lastItemSrlPrcOrdCnt.put(item.Procurement_Line__c, new Map<String, Integer>{innerKeyList[Index].Name=> newSrNum});
  124. item.Serial_Number__c = innerKeyList[0].Order__r.Name+'-'+innerKeyList[0].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  125. }else{
  126. // system.debug('inside order Line null');
  127. Map<String, Integer> innerMap = lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c);
  128. if (innerMap.containsKey(innerKeyList[Index].Name)) {
  129. Integer currentCount = innerMap.get(innerKeyList[Index].Name);
  130. if (currentCount >= innerKeyList[Index].Quantity__c) {
  131. Index++;
  132. if (innerKeyList.size() > Index) {
  133. // Integer newVal = innerMap.get(innerKeyList[Index].Name) + newSrNum;
  134. innerMap.put(innerKeyList[Index].Name, newSrNum);
  135. item.Serial_Number__c = innerKeyList[Index].Order__r.Name+'-'+innerKeyList[Index].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  136. }
  137. }else{
  138. Integer newVal = innerMap.get(innerKeyList[Index].Name) + newSrNum;
  139. innerMap.put(innerKeyList[Index].Name, newVal);
  140. item.Serial_Number__c = innerKeyList[Index].Order__r.Name+'-'+innerKeyList[Index].Name+'-'+ String.valueOf(newVal).leftPad(7,'0');
  141. innerMap.put(innerKeyList[Index].Name, newVal);
  142. }
  143. }else{
  144. innerMap.put(innerKeyList[Index].Name, newSrNum);
  145. item.Serial_Number__c = innerKeyList[Index].Order__r.Name+'-'+innerKeyList[Index].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  146. }
  147. }
  148. }
  149. }else{
  150. // Integer ltstSrlNum = serialNumberMap.containsKey(item.Procurement_Line__c) && serialNumberMap.get(item.Procurement_Line__c).Serial_Number__c !=null ? Integer.ValueOf(serialNumberMap.get(item.Procurement_Line__c).Serial_Number__c.split('-',3)[2]) :0;
  151. // String ltstOrdLineNum = serialNumberMap.containsKey(item.Procurement_Line__c) && serialNumberMap.get(item.Procurement_Line__c).Serial_Number__c !=null ? serialNumberMap.get(item.Procurement_Line__c).Serial_Number__c.split('-',3)[1] :null;
  152.  
  153. //Integer existingNumber = lastItemSrlPrcOrdCnt.containsKey(item.Procurement_Line__c) && lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c) !=null ?lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c).get(ltstOrdLineNum):0;
  154. // Integer newNumb = ltstSrlNum+existingNumber;
  155.  
  156. Integer newSrNum = 1;
  157. Integer Index = 0;
  158. Map<String, Order_Line__c> innerOrdrLineMap = ordlineData.get(item.Procurement_Line__c);
  159. List<Order_Line__c> innerKeyList = new List<Order_Line__c>(innerOrdrLineMap.Values());
  160. if (!lastItemSrlPrcOrdCnt.containsKey(item.Procurement_Line__c)) {
  161. lastItemSrlPrcOrdCnt.put(item.Procurement_Line__c, new Map<String, Integer>{innerKeyList[Index].Name=> newSrNum});
  162. item.Serial_Number__c = innerKeyList[Index].Order__r.Name+'-'+innerKeyList[Index].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  163. }else{
  164. system.debug('inside order Line null');
  165. Map<String, Integer> innerMap = lastItemSrlPrcOrdCnt.get(item.Procurement_Line__c);
  166. if (innerMap.containsKey(innerKeyList[Index].Name)) {
  167. Integer currentCount = innerMap.get(innerKeyList[Index].Name);
  168. if (currentCount >= innerKeyList[Index].Quantity__c) {
  169. Index++;
  170. if (innerKeyList.size() > Index) {
  171. // Integer newVal = innerMap.get(innerKeyList[Index].Name) + newSrNum;
  172. innerMap.put(innerKeyList[Index].Name, newSrNum);
  173. item.Serial_Number__c = innerKeyList[Index].Order__r.Name+'-'+innerKeyList[Index].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  174. }
  175. }else{
  176. Integer newVal = innerMap.get(innerKeyList[Index].Name) + newSrNum;
  177. innerMap.put(innerKeyList[Index].Name, newVal);
  178. item.Serial_Number__c = innerKeyList[Index].Order__r.Name+'-'+innerKeyList[Index].Name+'-'+ String.valueOf(newVal).leftPad(7,'0');
  179. innerMap.put(innerKeyList[Index].Name, newVal);
  180. }
  181. }else {
  182. innerMap.put(innerKeyList[Index].Name, newSrNum);
  183. item.Serial_Number__c = innerKeyList[Index].Order__r.Name+'-'+innerKeyList[Index].Name+'-'+ String.valueOf(newSrNum).leftPad(7,'0');
  184. }
  185. }
  186. }
  187. }
  188. }
Success #stdin #stdout #stderr 0.04s 12704KB
stdin
Standard input is empty
stdout
Object: nil error: did not understand #static
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #static (SysExcept.st:1448)
UndefinedObject>>executeStatements (prog:1)
Object: nil error: did not understand #<
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #< (SysExcept.st:1448)
UndefinedObject>>executeStatements (prog:1)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:38)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:38)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:61)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:61)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:92)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:98)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:98)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:122)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:122)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:160)
Object: nil error: did not understand #associationAt:ifAbsent:
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #associationAt:ifAbsent: (SysExcept.st:1448)
DeferredVariableBinding>>resolvePathFrom: (DeferBinding.st:115)
DeferredVariableBinding>>value (DeferBinding.st:69)
UndefinedObject>>executeStatements (prog:160)
stderr
./prog:3: expected expression
./prog:25: expected expression
./prog:26: expected expression
./prog:28: expected expression
./prog:29: expected expression
./prog:38: expected expression
./prog:61: expected expression
./prog:92: parse error, expected ')'
./prog:98: expected expression
./prog:122: expected expression
./prog:150: expected expression
./prog:151: expected expression
./prog:153: expected expression
./prog:160: expected expression