updateInvoice method
Use this operation to update any of the writable fields of an existing estimate object. The request body must include all writable fields of the existing object as returned in a read response. Writable fields omitted from the request body are set to NULL. The ID of the object to update is specified in the request body.
Implementation
Future<Invoice> updateInvoice({
required Invoice invoice,
String? realmId,
String? authToken,
}) async {
authToken ??= authenticationService.getCachedToken()?.access_token;
realmId ??= authenticationService.getCachedRealmId();
Map<String, String> headers = {
"Authorization": "Bearer ${authToken ?? ""}",
'Content-Type': 'application/json; charset=UTF-8',
'Accept': 'application/json',
};
Map<String, String> params = {
"minorversion": minorVersion.toString()
};
Uri endpoint = Uri.https(
baseUrl, "/v3/company/$realmId/invoice", params);
//print (endpoint.toString());
var response = await
http.post(endpoint, body: jsonEncode(invoice.toJson()), headers: headers);
if (response.statusCode == 200) {
//print (jsonDecode(response.body));
return Invoice.fromJson(jsonDecode(response.body)["Invoice"]);
}
else {
throw InvoiceException(statusCode: response.statusCode, message: response.body);
}
}