Skip to content

Commit dfbecba

Browse files
committed
Complete supplier invoice api
1 parent 7a4d532 commit dfbecba

File tree

11 files changed

+370
-4
lines changed

11 files changed

+370
-4
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
## Change Log
2+
### Version 1.8.2 (2023-05-09)
3+
- Complete supplier invoice API
24
### Version 1.8.1 (2022-02-23)
35
- Fix client invoice payment
46
### Version 1.8.0 (2021-04-06)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ This plugin adds [Dolibarr](https://www.dolibarr.org/) support to Play! Framewor
1313

1414
```
1515
require:
16-
- dolibarr -> dolibarr 1.8.1
16+
- dolibarr -> dolibarr 1.8.2
1717
1818
repositories:
1919
- sismicsNexusRaw:
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package helpers.api.dolibarr.model;
2+
3+
/**
4+
* @author jtremeaux
5+
*/
6+
public class PaymentTerm {
7+
public static final Integer AFTER_30_DAYS = 2;
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package helpers.api.dolibarr.model;
2+
3+
/**
4+
* @author jtremeaux
5+
*/
6+
public class ProductType {
7+
public static final Integer SERVICE = 1;
8+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package helpers.api.dolibarr.model.clientInvoice;
2+
3+
/**
4+
* @author jtremeaux
5+
*/
6+
public class ClientInvoiceValidateModel {
7+
public Integer idwarehouse;
8+
public Integer notrigger;
9+
}
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
package helpers.api.dolibarr.model.supplierInvoice;
2+
3+
import java.math.BigDecimal;
4+
5+
/**
6+
* @author jtremeaux
7+
*/
8+
public class SupplierInvoiceLineModel {
9+
public String ref;
10+
public String product_ref;
11+
public String ref_supplier;
12+
public String product_desc;
13+
public BigDecimal pu_ht;
14+
public BigDecimal subprice;
15+
public BigDecimal pu_ttc;
16+
public Long fk_facture_fourn;
17+
public String label;
18+
public String description;
19+
public String date_start;
20+
public String date_end;
21+
public String situation_percent;
22+
public Long fk_prev_id;
23+
public String vat_src_code;
24+
public BigDecimal tva_tx;
25+
public BigDecimal localtax1_tx;
26+
public BigDecimal localtax2_tx;
27+
public BigDecimal qty;
28+
public BigDecimal remise_percent;
29+
public BigDecimal total_ht;
30+
public BigDecimal total_ttc;
31+
public BigDecimal total_tva;
32+
public BigDecimal total_localtax1;
33+
public BigDecimal total_localtax2;
34+
public Long fk_product;
35+
public Integer product_type;
36+
public String product_label;
37+
public String info_bits;
38+
public Long fk_remise_except;
39+
public Long fk_parent_line;
40+
public String special_code;
41+
public String rang;
42+
public String localtax1_type;
43+
public Long localtax2_type;
44+
public BigDecimal multicurrency_subprice;
45+
public BigDecimal multicurrency_total_ht;
46+
public BigDecimal multicurrency_total_tva;
47+
public BigDecimal multicurrency_total_ttc;
48+
public Long id;
49+
public Long fk_unit;
50+
public String date_debut_prevue;
51+
public String date_debut_reel;
52+
public String date_fin_prevue;
53+
public String date_fin_reel;
54+
public String weight;
55+
public String weight_units;
56+
public String width;
57+
public String width_units;
58+
public String height;
59+
public String height_units;
60+
public String length;
61+
public String length_units;
62+
public String surface;
63+
public String surface_units;
64+
public String volume;
65+
public String volume_units;
66+
public String multilangs;
67+
public String desc;
68+
public String product;
69+
public String product_barcode;
70+
public Long fk_product_type;
71+
public String duree;
72+
public String entity;
73+
public String import_key;
74+
public String contacts_ids;
75+
public String linked_objects;
76+
public String linkedObjectsIds;
77+
public String canvas;
78+
public String origin;
79+
public String origin_id;
80+
public String ref_ext;
81+
public String statut;
82+
public String status;
83+
public String state_id;
84+
public String region_id;
85+
public String demand_reason_id;
86+
public String transport_mode_id;
87+
public String last_main_doc;
88+
public Long fk_bank;
89+
public Long fk_account;
90+
public String lines;
91+
public String date_creation;
92+
public String date_validation;
93+
public String date_modification;
94+
public String date_cloture;
95+
public String user_author;
96+
public String user_creation;
97+
public String user_creation_id;
98+
public String user_valid;
99+
public String user_validation;
100+
public String user_validation_id;
101+
public String user_closing_id;
102+
public String user_modification;
103+
public String user_modification_id;
104+
public String specimen;
105+
public String libelle;
106+
public String code_ventilation;
107+
public Long fk_accounting_account;
108+
109+
public SupplierInvoiceLineModel() {
110+
}
111+
112+
public SupplierInvoiceLineModel(Integer product_type, BigDecimal pu_ht, BigDecimal tva_tx, BigDecimal qty, String description) {
113+
this.product_type = product_type;
114+
this.pu_ht = pu_ht;
115+
this.tva_tx = tva_tx;
116+
this.qty = qty;
117+
this.description = description;
118+
}
119+
}
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
package helpers.api.dolibarr.model.supplierInvoice;
2+
3+
import org.joda.time.DateTime;
4+
import org.joda.time.DateTimeZone;
5+
import org.joda.time.format.DateTimeFormat;
6+
import org.joda.time.format.DateTimeFormatter;
7+
8+
import java.math.BigDecimal;
9+
import java.util.ArrayList;
10+
import java.util.Date;
11+
import java.util.List;
12+
13+
/**
14+
* @author jtremeaux
15+
*/
16+
public class SupplierInvoiceModel {
17+
public String ref;
18+
public String ref_supplier;
19+
public String label;
20+
public Integer socid;
21+
public Long type;
22+
public Long statut;
23+
public Long status;
24+
public String close_code;
25+
public String close_note;
26+
public String paye;
27+
public String datec;
28+
public String tms;
29+
public String date;
30+
public String date_echeance;
31+
public String amount;
32+
public String remise;
33+
public String tva;
34+
public String localtax1;
35+
public String localtax2;
36+
public BigDecimal total_ht;
37+
public BigDecimal total_tva;
38+
public String total_localtax1;
39+
public String total_localtax2;
40+
public BigDecimal total_ttc;
41+
public String note_private;
42+
public String note_public;
43+
public String propalid;
44+
public Integer cond_reglement_id;
45+
public String cond_reglement_code;
46+
public String cond_reglement_label;
47+
public String cond_reglement_doc;
48+
public Integer fk_account;
49+
public Integer mode_reglement_id;
50+
public String mode_reglement_code;
51+
public Long transport_mode_id;
52+
// "extraparams": [],
53+
public List<SupplierInvoiceLineModel> lines = new ArrayList<>();
54+
public String fournisseur;
55+
public String fk_multicurrency;
56+
public String multicurrency_code;
57+
public BigDecimal multicurrency_tx;
58+
public BigDecimal multicurrency_total_ht;
59+
public BigDecimal multicurrency_total_tva;
60+
public BigDecimal multicurrency_total_ttc;
61+
public Long fk_facture_source;
62+
public String fac_rec;
63+
public String totalpaid;
64+
public String totaldeposits;
65+
public String totalcreditnotes;
66+
public String sumpayed;
67+
public String sumpayed_multicurrency;
68+
public String sumdeposit;
69+
public String sumdeposit_multicurrency;
70+
public String sumcreditnote;
71+
public String sumcreditnote_multicurrency;
72+
public String remaintopay;
73+
public Long id;
74+
public Long entity;
75+
public String import_key;
76+
// public String array_options": [],
77+
public String array_languages;
78+
public String contacts_ids;
79+
public String linked_objects;
80+
public String linkedObjectsIds;
81+
public String canvas;
82+
public String fk_project;
83+
public String contact_id;
84+
public String user;
85+
public String origin;
86+
public String origin_id;
87+
public String ref_ext;
88+
public String country_id;
89+
public String country_code;
90+
public String state_id;
91+
public String region_id;
92+
public String demand_reason_id;
93+
public String shipping_method_id;
94+
public String model_pdf;
95+
public String last_main_doc;
96+
public String fk_bank;
97+
public String name;
98+
public String lastname;
99+
public String firstname;
100+
public String civility_id;
101+
public String date_creation;
102+
public String date_validation;
103+
public String date_modification;
104+
public String date_cloture;
105+
public String user_author;
106+
public String user_creation;
107+
public String user_creation_id;
108+
public String user_valid;
109+
public String user_validation;
110+
public String user_validation_id;
111+
public String user_closing_id;
112+
public String user_modification;
113+
public String user_modification_id;
114+
public Long specimen;
115+
public Long fk_incoterms;
116+
public String label_incoterms;
117+
public String location_incoterms;
118+
public String fk_soc;
119+
public Long datep;
120+
public String libelle;
121+
public Long paid;
122+
public Long fk_statut;
123+
public Long fk_user_author;
124+
public Long fk_user_valid;
125+
public String fk_fac_rec_source;
126+
public String socnom;
127+
128+
public static final String DATE_SHORT_FORMAT = "yyyy-MM-dd";
129+
130+
public static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern(DATE_SHORT_FORMAT);
131+
132+
public SupplierInvoiceModel() {
133+
}
134+
135+
public SupplierInvoiceModel(String ref_supplier, Integer socid, Date date, Date dateEcheance, Integer cond_reglement_id, Integer mode_reglement_id, Integer fk_account) {
136+
this.ref = "auto";
137+
this.ref_supplier = ref_supplier;
138+
this.socid = socid;
139+
this.date = DATE_TIME_FORMATTER.print(new DateTime(date).withZone(DateTimeZone.UTC));
140+
this.date_echeance = DATE_TIME_FORMATTER.print(new DateTime(dateEcheance).withZone(DateTimeZone.UTC));
141+
this.cond_reglement_id = cond_reglement_id;
142+
this.mode_reglement_id = mode_reglement_id;
143+
this.fk_account = fk_account;
144+
}
145+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package helpers.api.dolibarr.model.supplierInvoice;
2+
3+
/**
4+
* @author jtremeaux
5+
*/
6+
public class SupplierInvoiceValidateModel {
7+
public Integer idwarehouse;
8+
public Integer notrigger;
9+
}

app/helpers/api/dolibarr/service/ClientInvoiceService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import helpers.api.dolibarr.DolibarrClient;
77
import helpers.api.dolibarr.model.clientInvoice.ClientInvoiceModel;
88
import helpers.api.dolibarr.model.clientInvoice.ClientInvoicePaymentModel;
9-
import helpers.api.dolibarr.model.clientInvoice.InvoiceValidateModel;
9+
import helpers.api.dolibarr.model.clientInvoice.ClientInvoiceValidateModel;
1010
import org.apache.commons.io.IOUtils;
1111

1212
import java.io.InputStreamReader;
@@ -72,7 +72,7 @@ public Integer createClientInvoice(ClientInvoiceModel clientInvoiceModel) {
7272
* @param invoiceId The invoice ID
7373
* @param invoiceValidateModel The invoice validation model
7474
*/
75-
public String validateInvoice(Integer invoiceId, InvoiceValidateModel invoiceValidateModel) {
75+
public String validateInvoice(Integer invoiceId, ClientInvoiceValidateModel invoiceValidateModel) {
7676
HttpRequest request = dolibarrClient.authRequest(HttpRequest.newBuilder()
7777
.uri(URI.create(dolibarrClient.getUrl("/invoices/" + invoiceId + "/validate"))))
7878
.header("Content-Type", "application/json")

0 commit comments

Comments
 (0)