Advertisement
Guest User

Untitled

a guest
May 15th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.03 KB | None | 0 0
  1. import com.atlassian.jira.component.ComponentAccessor;
  2. import com.atlassian.jira.issue.Issue;
  3. import com.atlassian.jira.issue.CustomFieldManager;
  4. import com.atlassian.jira.issue.IssueManager;
  5. import com.atlassian.jira.issue.fields.CustomField;
  6. import com.atlassian.jira.issue.fields.FieldManager;
  7. import org.apache.commons.lang.WordUtils;
  8. import javax.xml.parsers.DocumentBuilderFactory;
  9. import javax.xml.parsers.DocumentBuilder;
  10. import org.xml.sax.InputSource;
  11. import org.w3c.dom.Document;
  12. import org.apache.commons.io.IOUtils;
  13. import org.apache.commons.lang.StringUtils;
  14. import com.atlassian.jira.bc.issue.IssueService;
  15. import com.atlassian.jira.issue.IssueInputParameters;
  16. import com.atlassian.crowd.embedded.api.User;
  17. import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
  18. import com.atlassian.jira.issue.util.IssueChangeHolder
  19. import com.atlassian.jira.issue.ModifiedValue
  20.  
  21. IssueManager issueManager = ComponentAccessor.getIssueManager();
  22. //Issue issue = issueManager.getIssueByKeyIgnoreCase("CC-48771")
  23. CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
  24. CustomField transIdField = customFieldManager.getCustomFieldObjectByName("Refund Transaction ID (NMI Only)");
  25. //return issue.getIssueTypeId().getClass()
  26.  
  27.  
  28. for(int i=51000; i<51300; i++){
  29. Issue issue = issueManager.getIssueByKeyIgnoreCase("CC-" + i);
  30.  
  31. if(issue){
  32. if(issue.getIssueTypeId()=='10600' && issue.getCustomFieldValue(transIdField) != null){
  33.  
  34. CustomField refundedField = customFieldManager.getCustomFieldObjectByName("Amount Refunded");
  35. CustomField nmiRefundTotal = customFieldManager.getCustomFieldObject("customfield_13004")
  36. CustomField nmiRefundInfo = customFieldManager.getCustomFieldObject("customfield_13005")
  37.  
  38. String nmiInfo = "";
  39. Double total = 0;
  40. Double nmiTotal = 0;
  41.  
  42. //loop through all transaction IDs here
  43. String transId = (String)issue.getCustomFieldValue(transIdField);
  44. transId = transId?.trim()
  45. def refunded = (String)issue.getCustomFieldValue(refundedField);
  46. String condition;
  47.  
  48. //log.error("Custy name: " + customerName);
  49. log.error("Transaction ID: " + transId);
  50.  
  51. //String refNum = (String)issue.getCustomFieldValue(refNumField);
  52. //log.error("Reference #: " + refNum);
  53.  
  54. if(transId!=null ){ // && 'NMI' in cfValues['Payment Method']*.value
  55. List<String> transactions = Arrays.asList(transId.split("\\s*,\\s*"));
  56. log.error("transactions: " + transactions)
  57.  
  58. for (String transaction : transactions){
  59. def urlString = "https://secure.nmi.com/api/query.php"
  60. def queryString = "username=JIRA&password=Salesteamjira1&transaction_id=" + transaction
  61. log.error("queryString: " + queryString)
  62.  
  63. def url = new URL(urlString)
  64. def connection = url.openConnection()
  65. connection.setRequestMethod("GET")
  66. connection.doOutput = true
  67.  
  68. def writer = new OutputStreamWriter(connection.outputStream)
  69. writer.write(queryString)
  70. writer.flush()
  71. writer.close()
  72. connection.connect()
  73.  
  74. def response = connection.content.text
  75. //log.error(response)
  76. nmiInfo += "Processor ID: " + StringUtils.substringBetween(response, "<processor_id>", "</processor_id>") + "\n";
  77. nmiInfo += "Transaction ID: " + StringUtils.substringBetween(response, "<transaction_id>", "</transaction_id>") + "\n";
  78. nmiInfo += "Agent: " + StringUtils.substringBetween(response, "<merchant_defined_field id=\"1\">", "</merchant_defined_field>") + "\n";
  79. nmiInfo += "Item: " + StringUtils.substringBetween(response, "<merchant_defined_field id=\"2\">", "</merchant_defined_field>") + "\n";
  80. nmiInfo += "First Name: " + StringUtils.substringBetween(response, "<first_name>", "</first_name>") + "\n";
  81. nmiInfo += "Last Name: " + StringUtils.substringBetween(response, "<last_name>", "</last_name>") + "\n";
  82. nmiInfo += "Email: " + StringUtils.substringBetween(response, "<email>", "</email>") + "\n";
  83. nmiInfo += "Phone: " + StringUtils.substringBetween(response, "<phone>", "</phone>") + "\n";
  84. nmiInfo += "Customer ID: " + StringUtils.substringBetween(response, "<customerid>", "</customerid>") + "\n";
  85. nmiInfo += "Amount: " + StringUtils.substringBetween(response, "<amount>", "</amount>") + "\n";
  86. nmiInfo += "Action Type: " + StringUtils.substringBetween(response, "<action_type>", "</action_type>") + "\n";
  87. nmiInfo += "Date: " + StringUtils.substringBetween(response, "<date>", "</date>") + "\n";
  88. nmiInfo += "Response Text: " + StringUtils.substringBetween(response, "<response_text>", "</response_text>") + "\n";
  89. nmiInfo += "Success: " + StringUtils.substringBetween(response, "<success>", "</success>") + "\n";
  90. nmiInfo += "Condition: " + StringUtils.substringBetween(response, "<condition>", "</condition>") + "\n";
  91. nmiInfo += "Authorization Code: " + StringUtils.substringBetween(response, "<authorization_code>", "</authorization_code>") + "\n";
  92.  
  93. nmiInfo += "\n"
  94. condition = StringUtils.substringBetween(response, "<condition>", "</condition>");
  95.  
  96. log.error("nmiInfo: " + nmiInfo)
  97. if(StringUtils.substringBetween(response, "<amount>", "</amount>")!=null){
  98. if(condition=="canceled"){
  99. nmiTotal += StringUtils.substringBetween(response, "<amount>", "</amount>").toDouble() * -1;
  100. }else{
  101. nmiTotal += StringUtils.substringBetween(response, "<amount>", "</amount>").toDouble();
  102. }
  103. }
  104. log.error("nmiTotal: " + nmiTotal)
  105. }
  106. }
  107.  
  108. IssueChangeHolder changeHolder = new DefaultIssueChangeHolder();
  109. issue.setCustomFieldValue(nmiRefundTotal, nmiTotal)
  110. nmiRefundTotal.updateValue(null, issue, new ModifiedValue(null, nmiTotal), changeHolder )
  111.  
  112. IssueChangeHolder changeHolder2 = new DefaultIssueChangeHolder();
  113. issue.setCustomFieldValue(nmiRefundInfo, nmiInfo)
  114. nmiRefundInfo.updateValue(null, issue, new ModifiedValue(null, nmiInfo), changeHolder2)
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122. }
  123.  
  124. }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement