Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.atlassian.jira.component.ComponentAccessor;
- import com.atlassian.jira.issue.Issue;
- import com.atlassian.jira.issue.CustomFieldManager;
- import com.atlassian.jira.issue.IssueManager;
- import com.atlassian.jira.issue.fields.CustomField;
- import com.atlassian.jira.issue.fields.FieldManager;
- import org.apache.commons.lang.WordUtils;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.DocumentBuilder;
- import org.xml.sax.InputSource;
- import org.w3c.dom.Document;
- import org.apache.commons.io.IOUtils;
- import org.apache.commons.lang.StringUtils;
- import com.atlassian.jira.bc.issue.IssueService;
- import com.atlassian.jira.issue.IssueInputParameters;
- import com.atlassian.crowd.embedded.api.User;
- import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
- import com.atlassian.jira.issue.util.IssueChangeHolder
- import com.atlassian.jira.issue.ModifiedValue
- IssueManager issueManager = ComponentAccessor.getIssueManager();
- //Issue issue = issueManager.getIssueByKeyIgnoreCase("CC-48771")
- CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
- CustomField transIdField = customFieldManager.getCustomFieldObjectByName("Refund Transaction ID (NMI Only)");
- //return issue.getIssueTypeId().getClass()
- for(int i=51000; i<51300; i++){
- Issue issue = issueManager.getIssueByKeyIgnoreCase("CC-" + i);
- if(issue){
- if(issue.getIssueTypeId()=='10600' && issue.getCustomFieldValue(transIdField) != null){
- CustomField refundedField = customFieldManager.getCustomFieldObjectByName("Amount Refunded");
- CustomField nmiRefundTotal = customFieldManager.getCustomFieldObject("customfield_13004")
- CustomField nmiRefundInfo = customFieldManager.getCustomFieldObject("customfield_13005")
- String nmiInfo = "";
- Double total = 0;
- Double nmiTotal = 0;
- //loop through all transaction IDs here
- String transId = (String)issue.getCustomFieldValue(transIdField);
- transId = transId?.trim()
- def refunded = (String)issue.getCustomFieldValue(refundedField);
- String condition;
- //log.error("Custy name: " + customerName);
- log.error("Transaction ID: " + transId);
- //String refNum = (String)issue.getCustomFieldValue(refNumField);
- //log.error("Reference #: " + refNum);
- if(transId!=null ){ // && 'NMI' in cfValues['Payment Method']*.value
- List<String> transactions = Arrays.asList(transId.split("\\s*,\\s*"));
- log.error("transactions: " + transactions)
- for (String transaction : transactions){
- def urlString = "https://secure.nmi.com/api/query.php"
- def queryString = "username=JIRA&password=Salesteamjira1&transaction_id=" + transaction
- log.error("queryString: " + queryString)
- def url = new URL(urlString)
- def connection = url.openConnection()
- connection.setRequestMethod("GET")
- connection.doOutput = true
- def writer = new OutputStreamWriter(connection.outputStream)
- writer.write(queryString)
- writer.flush()
- writer.close()
- connection.connect()
- def response = connection.content.text
- //log.error(response)
- nmiInfo += "Processor ID: " + StringUtils.substringBetween(response, "<processor_id>", "</processor_id>") + "\n";
- nmiInfo += "Transaction ID: " + StringUtils.substringBetween(response, "<transaction_id>", "</transaction_id>") + "\n";
- nmiInfo += "Agent: " + StringUtils.substringBetween(response, "<merchant_defined_field id=\"1\">", "</merchant_defined_field>") + "\n";
- nmiInfo += "Item: " + StringUtils.substringBetween(response, "<merchant_defined_field id=\"2\">", "</merchant_defined_field>") + "\n";
- nmiInfo += "First Name: " + StringUtils.substringBetween(response, "<first_name>", "</first_name>") + "\n";
- nmiInfo += "Last Name: " + StringUtils.substringBetween(response, "<last_name>", "</last_name>") + "\n";
- nmiInfo += "Email: " + StringUtils.substringBetween(response, "<email>", "</email>") + "\n";
- nmiInfo += "Phone: " + StringUtils.substringBetween(response, "<phone>", "</phone>") + "\n";
- nmiInfo += "Customer ID: " + StringUtils.substringBetween(response, "<customerid>", "</customerid>") + "\n";
- nmiInfo += "Amount: " + StringUtils.substringBetween(response, "<amount>", "</amount>") + "\n";
- nmiInfo += "Action Type: " + StringUtils.substringBetween(response, "<action_type>", "</action_type>") + "\n";
- nmiInfo += "Date: " + StringUtils.substringBetween(response, "<date>", "</date>") + "\n";
- nmiInfo += "Response Text: " + StringUtils.substringBetween(response, "<response_text>", "</response_text>") + "\n";
- nmiInfo += "Success: " + StringUtils.substringBetween(response, "<success>", "</success>") + "\n";
- nmiInfo += "Condition: " + StringUtils.substringBetween(response, "<condition>", "</condition>") + "\n";
- nmiInfo += "Authorization Code: " + StringUtils.substringBetween(response, "<authorization_code>", "</authorization_code>") + "\n";
- nmiInfo += "\n"
- condition = StringUtils.substringBetween(response, "<condition>", "</condition>");
- log.error("nmiInfo: " + nmiInfo)
- if(StringUtils.substringBetween(response, "<amount>", "</amount>")!=null){
- if(condition=="canceled"){
- nmiTotal += StringUtils.substringBetween(response, "<amount>", "</amount>").toDouble() * -1;
- }else{
- nmiTotal += StringUtils.substringBetween(response, "<amount>", "</amount>").toDouble();
- }
- }
- log.error("nmiTotal: " + nmiTotal)
- }
- }
- IssueChangeHolder changeHolder = new DefaultIssueChangeHolder();
- issue.setCustomFieldValue(nmiRefundTotal, nmiTotal)
- nmiRefundTotal.updateValue(null, issue, new ModifiedValue(null, nmiTotal), changeHolder )
- IssueChangeHolder changeHolder2 = new DefaultIssueChangeHolder();
- issue.setCustomFieldValue(nmiRefundInfo, nmiInfo)
- nmiRefundInfo.updateValue(null, issue, new ModifiedValue(null, nmiInfo), changeHolder2)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement