diff --git a/README.md b/README.md index 86acc126..e8ce9094 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Add this dependency and repository to your POM.xml com.xero xero-java-sdk - 1.0.0 + 1.0.1 diff --git a/pom.xml b/pom.xml index dfbd0974..a5a0b691 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.xero xero-java-sdk jar - 1.0.0 + 1.0.1 Xero-Java SDK http://maven.apache.org diff --git a/src/main/java/com/xero/api/JsonConfig.java b/src/main/java/com/xero/api/JsonConfig.java index 5ea77a70..816c0ea2 100644 --- a/src/main/java/com/xero/api/JsonConfig.java +++ b/src/main/java/com/xero/api/JsonConfig.java @@ -114,7 +114,7 @@ public String getAccessTokenUrl() { @Override public String getUserAgent() { - return USER_AGENT + " [Xero-Java-1.0.0]"; + return USER_AGENT + " " + CONSUMER_KEY + " [Xero-Java-1.0.1]"; } @Override diff --git a/src/main/java/com/xero/api/XeroClient.java b/src/main/java/com/xero/api/XeroClient.java index 77f3e2dd..4f6c9aba 100644 --- a/src/main/java/com/xero/api/XeroClient.java +++ b/src/main/java/com/xero/api/XeroClient.java @@ -684,6 +684,16 @@ public List createCreditNotes(List objects) throws IOExc array.getCreditNote().addAll(objects); return put("CreditNote", objFactory.createCreditNotes(array)).getCreditNotes().getCreditNote(); } + + + public List createCreditNotes(List objects, String unitdp) throws IOException { + Map params = new HashMap<>(); + addToMapIfNotNull(params, "unitdp", unitdp); + + ArrayOfCreditNote array = new ArrayOfCreditNote(); + array.getCreditNote().addAll(objects); + return put("CreditNote", objFactory.createCreditNotes(array),params).getCreditNotes().getCreditNote(); + } public List updateCreditNote(List objects) throws IOException { ArrayOfCreditNote array = new ArrayOfCreditNote(); @@ -1410,7 +1420,16 @@ public List createReceipts(List objects) throws IOException { array.getReceipt().addAll(objects); return put("Receipts", objFactory.createReceipts(array)).getReceipts().getReceipt(); } + + public List createReceipts(List objects, String unitdp) throws IOException { + Map params = new HashMap<>(); + addToMapIfNotNull(params, "unitdp", unitdp); + ArrayOfReceipt array = new ArrayOfReceipt(); + array.getReceipt().addAll(objects); + return put("Receipts", objFactory.createReceipts(array),params).getReceipts().getReceipt(); + } + public List updateReceipt(List objects) throws IOException { ArrayOfReceipt array = new ArrayOfReceipt(); array.getReceipt().addAll(objects); diff --git a/src/main/java/com/xero/example/RequestResourceServlet.java b/src/main/java/com/xero/example/RequestResourceServlet.java index 2afbdc24..8db96ad0 100755 --- a/src/main/java/com/xero/example/RequestResourceServlet.java +++ b/src/main/java/com/xero/example/RequestResourceServlet.java @@ -2,7 +2,6 @@ import java.io.ByteArrayInputStream; import java.io.File; -import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -389,6 +388,36 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) /* CREDIT NOTE */ try { + + List newCreditNote = client.createCreditNotes(SampleData.loadCreditNote().getCreditNote()); + messages.add("Create a new CreditNote ID : " + newCreditNote.get(0).getCreditNoteID() ); + + List newCreditNote4dp = client.createCreditNotes(SampleData.loadCreditNote4dp().getCreditNote(),"4"); + messages.add("Create a new CreditNote ID 4dp: " + newCreditNote4dp.get(0).getCreditNoteID() ); + + + List CreditNoteWhere = client.getCreditNotes(null,"Status==\"DRAFT\"",null); + if(CreditNoteWhere.size() > 0) { + messages.add("Get a CreditNote with WHERE clause - ID: " + CreditNoteWhere.get(0).getCreditNoteID()); + } + + List CreditNotePage = client.getCreditNotes(null,"Status==\"DRAFT\"",null,"1"); + if(CreditNotePage.size() > 0) { + messages.add("Get a CreditNote with PAGE=1 clause - ID: " + CreditNoteWhere.get(0).getCreditNoteID()); + } + + List CreditNoteList = client.getCreditNotes(); + int num = SampleData.findRandomNum(CreditNoteList.size()); + messages.add("Get a random CreditNote - ID : " + CreditNoteList.get(num).getCreditNoteID()); + + CreditNote CreditNoteOne = client.getCreditNote(CreditNoteList.get(num).getCreditNoteID()); + messages.add("Get a single CreditNote - ID : " + CreditNoteOne.getCreditNoteID()); + + newCreditNote.get(0).setReference("My updated Credit Note"); + List updateCreditNote = client.updateCreditNote(newCreditNote); + messages.add("Update CreditNote - ID: " + updateCreditNote.get(0).getCreditNoteID() + " - Reference: " + updateCreditNote.get(0).getReference()); + + List CreditNoteListForPdf = client.getCreditNotes(); // GET PDF of CREDIT NOTE @@ -417,29 +446,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response) String saveFilePath = dirPath + File.separator + fileName; messages.add("Get a PDF copy of CreditNote - save it here: " + saveFilePath); - List newCreditNote = client.createCreditNotes(SampleData.loadCreditNote().getCreditNote()); - messages.add("Create a new CreditNote ID : " + newCreditNote.get(0).getCreditNoteID() ); - - List CreditNoteWhere = client.getCreditNotes(null,"Status==\"DRAFT\"",null); - if(CreditNoteWhere.size() > 0) { - messages.add("Get a CreditNote with WHERE clause - ID: " + CreditNoteWhere.get(0).getCreditNoteID()); - } - List CreditNotePage = client.getCreditNotes(null,"Status==\"DRAFT\"",null,"1"); - if(CreditNotePage.size() > 0) { - messages.add("Get a CreditNote with PAGE=1 clause - ID: " + CreditNoteWhere.get(0).getCreditNoteID()); - } - - List CreditNoteList = client.getCreditNotes(); - int num = SampleData.findRandomNum(CreditNoteList.size()); - messages.add("Get a random CreditNote - ID : " + CreditNoteList.get(num).getCreditNoteID()); - - CreditNote CreditNoteOne = client.getCreditNote(CreditNoteList.get(num).getCreditNoteID()); - messages.add("Get a single CreditNote - ID : " + CreditNoteOne.getCreditNoteID()); - - newCreditNote.get(0).setReference("My updated Credit Note"); - List updateCreditNote = client.updateCreditNote(newCreditNote); - messages.add("Update CreditNote - ID: " + updateCreditNote.get(0).getCreditNoteID() + " - Reference: " + updateCreditNote.get(0).getReference()); } catch (XeroApiException e) { System.out.println(e.getResponseCode()); diff --git a/src/main/java/com/xero/example/SampleData.java b/src/main/java/com/xero/example/SampleData.java index ea69698b..1a8102fa 100755 --- a/src/main/java/com/xero/example/SampleData.java +++ b/src/main/java/com/xero/example/SampleData.java @@ -132,6 +132,22 @@ public static ArrayOfCreditNote loadCreditNote() throws IOException { array.getCreditNote().add(cn); return array; } + + public static ArrayOfCreditNote loadCreditNote4dp() throws IOException { + ArrayOfCreditNote array = new ArrayOfCreditNote(); + + CreditNote cn = new CreditNote(); + cn.setType(CreditNoteType.ACCPAYCREDIT); + cn.setDate(loadDate()); + cn.setLineAmountTypes(LineAmountType.INCLUSIVE); + cn.setLineItems(loadLineItem4dp()); + cn.setContact(loadSingleContact()); + array.getCreditNote().add(cn); + return array; + } + + + // EMPLOYEE public static ArrayOfEmployee loadEmployee() { @@ -623,6 +639,39 @@ private static ArrayOfLineItem loadLineItem() throws IOException{ return array; } + private static ArrayOfLineItem loadLineItem4dp() throws IOException{ + List accountDirectCosts = client.getAccounts(null,"Type==\"DIRECTCOSTS\"",null); + + ArrayOfLineItem array = new ArrayOfLineItem(); + LineItem line = new LineItem(); + line.setDescription("Yearly Bank Account Fee"); + line.setQuantity(new BigDecimal("1.00")); + line.setUnitAmount(new BigDecimal("20.0344")); + line.setLineAmount(new BigDecimal("20.0344")); + line.setAccountCode(accountDirectCosts.get(0).getCode()); + + + List TrackingCategoryList = client.getTrackingCategories(); + if (TrackingCategoryList.size() > 0) { + int num10 = SampleData.findRandomNum(TrackingCategoryList.size()); + + ArrayOfTrackingCategory trackingCategories = new ArrayOfTrackingCategory(); + TrackingCategory trackingCategory = new TrackingCategory(); + + trackingCategory.setTrackingCategoryID(TrackingCategoryList.get(num10).getTrackingCategoryID()); + trackingCategory.setName(TrackingCategoryList.get(num10).getName()); + trackingCategory.setOption(TrackingCategoryList.get(num10).getOptions().getOption().get(0).getName()); + + trackingCategories.getTrackingCategory().add(trackingCategory); + + line.setTracking(trackingCategories); + + } + + array.getLineItem().add(line); + return array; + } + private static ArrayOfLineItem loadLineItemForOverpayment() throws IOException{ List accountDebtors = client.getAccounts(null,"SystemAccount==\"DEBTORS\"",null);