Skip to content

Commit 1aaedab

Browse files
committed
update same to include RecurringTransaction Create and Delete
1 parent 75bc164 commit 1aaedab

File tree

5 files changed

+159
-3
lines changed

5 files changed

+159
-3
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
.idea/*
2-
target/*
2+
target/*
3+
/CRUD-SampleApp-Java.iml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.intuit.developer.sampleapp.crud.entities.recurringtransaction;
2+
3+
4+
import com.intuit.developer.sampleapp.crud.helper.InvoiceHelper;
5+
import com.intuit.developer.sampleapp.crud.helper.RecurringTransactionHelper;
6+
import com.intuit.developer.sampleapp.crud.qbo.DataServiceFactory;
7+
import com.intuit.ipp.data.*;
8+
import com.intuit.ipp.data.Error;
9+
import com.intuit.ipp.exception.FMSException;
10+
import com.intuit.ipp.services.DataService;
11+
import com.intuit.ipp.util.Logger;
12+
import java.util.List;
13+
14+
public class RecurringTransactionCreate {
15+
16+
private static final org.slf4j.Logger LOG = Logger.getLogger();
17+
18+
public static void main(String[] args) {
19+
try {
20+
createRecurringTxn();
21+
} catch (Exception e) {
22+
LOG.error("Error during CRUD", e.getCause());
23+
}
24+
}
25+
26+
public static void createRecurringTxn() throws Exception {
27+
try {
28+
DataService service = DataServiceFactory.getDataService();
29+
30+
Invoice invoice = InvoiceHelper.getInvoiceFields(service);
31+
RecurringInfo recurringInfo = RecurringTransactionHelper.getRecurringTransactionFields(service);
32+
33+
invoice.setRecurringInfo(recurringInfo);
34+
RecurringTransaction recurringTransaction = new RecurringTransaction();
35+
36+
//takes the JaxBElement = use Object factory to set the desired recurring txn
37+
recurringTransaction.setIntuitObject(new ObjectFactory().createInvoice(invoice));
38+
39+
RecurringTransaction rt = service.add(recurringTransaction);
40+
Invoice theTransaction = (Invoice) rt.getIntuitObject().getValue();
41+
LOG.info("Recurring Invoice " + theTransaction.getId() +
42+
" created for customer: " + theTransaction.getCustomerRef().getName());
43+
} catch (FMSException e) {
44+
List<Error> list = e.getErrorList();
45+
list.forEach(error -> LOG.error("Error while calling entity add:: " + error.getMessage()));
46+
} catch (Exception e) {
47+
LOG.error("" + e.getMessage());
48+
LOG.error("" + e.getStackTrace());
49+
}
50+
}
51+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.intuit.developer.sampleapp.crud.entities.recurringtransaction;
2+
3+
4+
import com.intuit.developer.sampleapp.crud.helper.InvoiceHelper;
5+
import com.intuit.developer.sampleapp.crud.helper.RecurringTransactionHelper;
6+
import com.intuit.developer.sampleapp.crud.qbo.DataServiceFactory;
7+
import com.intuit.ipp.data.Error;
8+
import com.intuit.ipp.data.*;
9+
import com.intuit.ipp.exception.FMSException;
10+
import com.intuit.ipp.services.DataService;
11+
import com.intuit.ipp.util.Logger;
12+
13+
import java.util.List;
14+
15+
public class RecurringTransactionDelete {
16+
17+
private static final org.slf4j.Logger LOG = Logger.getLogger();
18+
19+
public static void main(String[] args) {
20+
try {
21+
deleteRecurringTxn();
22+
} catch (Exception e) {
23+
LOG.error("Error during CRUD", e.getCause());
24+
}
25+
}
26+
27+
public static void deleteRecurringTxn() throws Exception {
28+
try {
29+
DataService service = DataServiceFactory.getDataService();
30+
Invoice invoice = InvoiceHelper.getInvoiceFields(service);
31+
RecurringInfo recurringInfo = RecurringTransactionHelper.getRecurringTransactionFields(service);
32+
33+
invoice.setRecurringInfo(recurringInfo);
34+
RecurringTransaction recurringTransaction = new RecurringTransaction();
35+
36+
//takes the JaxBElement = use Object factory to set the desired recurring txn
37+
recurringTransaction.setIntuitObject(new ObjectFactory().createInvoice(invoice));
38+
RecurringTransaction rt = service.add(recurringTransaction);
39+
40+
//Use the line below if you dont know which entity it is
41+
//IntuitEntity intuitEntity = rt.getIntuitObject().getValue();
42+
43+
//grab inner entity and cast it to the it's entity type to work with it.
44+
Invoice theTransaction = (Invoice) rt.getIntuitObject().getValue();
45+
LOG.info("Recurring Invoice " + theTransaction.getId() +
46+
" created for customer: " + theTransaction.getCustomerRef().getName());
47+
48+
RecurringTransaction deletedRT = service.delete(rt);
49+
50+
51+
Invoice deletedTxn = (Invoice) deletedRT.getIntuitObject().getValue();
52+
53+
LOG.info("Recurring Txn deleted : " + deletedTxn.getId() + ". Entity status ::: " + deletedRT.getStatus());
54+
} catch (FMSException e) {
55+
List<Error> list = e.getErrorList();
56+
list.forEach(error -> LOG.error("Error while calling entity add:: " + error.getMessage()));
57+
} catch (Exception e) {
58+
LOG.error("" + e.getMessage());
59+
LOG.error("" + e.getStackTrace());
60+
}
61+
}
62+
}

src/main/java/com/intuit/developer/sampleapp/crud/entities/recurringtransaction/RecurringTransactionQuery.java

-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public static void main(String[] args) {
2727

2828
public static void queryRecurringTxn() throws Exception {
2929

30-
//
3130
try {
3231
DataService service = DataServiceFactory.getDataService();
3332
String sql = "select * from RecurringTransaction";
@@ -42,7 +41,6 @@ public static void queryRecurringTxn() throws Exception {
4241
IntuitEntity intuitEntity = txn.getIntuitObject().getValue();
4342
LOG.info("Recurring txn type: " + intuitEntity.getClass().getName());
4443
LOG.info("Recurring txn ID: " + intuitEntity.getId());
45-
4644
}
4745

4846

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.intuit.developer.sampleapp.crud.helper;
2+
3+
import com.intuit.ipp.core.IEntity;
4+
import com.intuit.ipp.data.*;
5+
import com.intuit.ipp.exception.FMSException;
6+
import com.intuit.ipp.services.DataService;
7+
import com.intuit.ipp.util.DateUtils;
8+
import org.apache.commons.lang.RandomStringUtils;
9+
10+
import javax.xml.bind.JAXBElement;
11+
import javax.xml.namespace.QName;
12+
import java.math.BigDecimal;
13+
import java.text.ParseException;
14+
import java.time.LocalTime;
15+
import java.util.ArrayList;
16+
import java.util.Calendar;
17+
import java.util.Date;
18+
import java.util.List;
19+
20+
public class RecurringTransactionHelper {
21+
22+
private RecurringTransactionHelper() {
23+
24+
}
25+
26+
public static RecurringInfo getRecurringTransactionFields(DataService service) throws FMSException, ParseException {
27+
RecurringInfo recurringInfo = new RecurringInfo();
28+
recurringInfo.setRecurType("Automated");
29+
recurringInfo.setName(RandomStringUtils.randomAlphabetic(6));
30+
recurringInfo.setActive(true);
31+
32+
33+
RecurringScheduleInfo scheduleInfo = new RecurringScheduleInfo();
34+
scheduleInfo.setStartDate(Calendar.getInstance().getTime());
35+
scheduleInfo.setMaxOccurrences(10);
36+
scheduleInfo.setIntervalType("Monthly");
37+
scheduleInfo.setNumInterval(1);
38+
scheduleInfo.setDayOfMonth(1);
39+
scheduleInfo.setDaysBefore(2);
40+
41+
recurringInfo.setScheduleInfo(scheduleInfo);
42+
return recurringInfo;
43+
}
44+
}

0 commit comments

Comments
 (0)