Save Data
There exist various entities to save data to the Topal Server. All of those entities work the same way.
A save method is a simple http POST Request. Find some examples below:
|
Example Code
|
|
class Save
{
public static bool party(Party party, Manager manager)
{
var currentClient = manager.getCurrentClient();
ErrorState state = new ErrorState { passed = false };
if (party != null)
{
var partyContent = JsonConvert.SerializeObject(party);
var content = new StringContent(partyContent, Encoding.UTF8, "application/json");
string request = "clients/{0}/parties";
var response = manager.httpClient.PostAsync(string.Format(request, currentClient.id), content).Result;
if (response.StatusCode != HttpStatusCode.OK)
{
ResponseDetails details = new ResponseDetails(response);
}
state.passed = response.IsSuccessStatusCode;
}
return state.passed;
}
}
class Save:
@staticmethod
def party(manager, party):
_currentClient = manager.getCurrentClient()
try:
url = '{0}clients/{1}/parties'.format(manager.baseURL(), _currentClient['id'])
response = requests.post(url, data = json.dumps(party), headers = manager.headers())
except Exception as err:
print("Error: {0}".format(err))
print(response.headers)
response.raise_for_status()
if response.status_code == 200:
return response.json()
else:
return None
UNDER CONSTRUCTION
{
"id": -1,
"countryFID": 110,
"languageFID": 1,
"shortName": "Hunki",
"name": "Hunkeler",
"line1": null,
"line2": null,
"city": "RandomCity",
"address1": "RandomStreet 1",
"address2": null,
"addressBlock": null,
"email": "RandomParty@business.ch",
"remarks": null,
"telefax": null,
"telephone": "062 123 45 67",
"web": null,
"isPrivate": false,
"partyNum": -1,
"freePartyNum": "Hunki 21",
"isHaveDebtor": false,
"isHaveCreditor": false,
"countryCode": "CH",
"languageCode": "DE",
"zip": "8000",
"person": {
"partyFID": -1,
"personRoleFID": 1,
"firstName": "Cavin",
"middleName": "M",
"lastName": "Matters",
"email": "Cavin.Matters@business.ch",
"jobTitle": "Product Manager",
"mobile": "079 123 45 67",
"salutation": null,
"telephone": "062 123 45 67",
"title": "Dr.",
"titleSuffix": null,
"isMale": true
},
"debtor": null,
"creditor": null
}
class Save
{
public static bool payables_invoice(Invoice invoice, Manager manager)
{
var currentClient = manager.getCurrentClient();
var currentFiscalYear = manager.getCurrentFiscalYear();
ErrorState state = new ErrorState { passed = false };
if (invoice != null)
{
var invoiceContent = JsonConvert.SerializeObject(invoice);
var content = new StringContent(invoiceContent, Encoding.UTF8, "application/json");
string request = "clients/{0}/fiscalYears/{1}/payables/invoices";
var response = manager.httpClient.PostAsync(string.Format(request, currentClient.id, currentFiscalYear.id), content).Result;
if (response.StatusCode != HttpStatusCode.OK)
{
ResponseDetails details = new ResponseDetails(response);
}
state.passed = response.IsSuccessStatusCode;
}
return state.passed;
}
}
class Save:
# TODO Recheck
@staticmethod
def invoicePayables(manager, invoice):
_currentClient = manager.getCurrentClient()
_currentFiscalYear = manager.getCurrentFiscalYear()
try:
url = '{0}clients/{1}/fiscalYears/{2}/payables/invoices'.format(manager.baseURL(), _currentClient['id'], _currentFiscalYear['id'])
response = requests.post(url, data = json.dumps(invoice), headers = manager.headers())
except Exception as err:
print("Error: {0}".format(err))
print(response.headers)
response.raise_for_status()
if response.status_code == 200:
return response.json()
else:
return None
UNDER CONSTRUCTION
not available
class Save
{
public static bool receivables_invoice(Invoice invoice, Manager manager)
{
var currentClient = manager.getCurrentClient();
var currentFiscalYear = manager.getCurrentFiscalYear();
ErrorState state = new ErrorState { passed = false };
if (invoice != null)
{
var invoiceContent = JsonConvert.SerializeObject(invoice);
var content = new StringContent(invoiceContent, Encoding.UTF8, "application/json");
string request = "clients/{0}/fiscalYears/{1}/receivables/invoices";
var response = manager.httpClient.PostAsync(string.Format(request, currentClient.id, currentFiscalYear.id), content).Result;
if (response.StatusCode != HttpStatusCode.OK)
{
ResponseDetails details = new ResponseDetails(response);
}
state.passed = response.IsSuccessStatusCode;
}
return state.passed;
}
}
class Save:
# TODO Recheck
@staticmethod
def invoiceReceivables(manager, invoice):
_currentClient = manager.getCurrentClient()
_currentFiscalYear = manager.getCurrentFiscalYear()
try:
url = '{0}clients/{1}/fiscalYears/{2}/receivables/invoices'.format(manager.baseURL(), _currentClient['id'], _currentFiscalYear['id'])
response = requests.post(url, data = json.dumps(invoice), headers = manager.headers())
except Exception as err:
print("Error: {0}".format(err))
print(response.headers)
response.raise_for_status()
if response.status_code == 200:
return response.json()
else:
return None
UNDER CONSTRUCTION
not available
class Save
{
public static bool transaction(Transaction transaction, Manager manager)
{
var currentClient = manager.getCurrentClient();
var currentFiscalYear = manager.getCurrentFiscalYear();
ErrorState state = new ErrorState { passed = false };
if (transaction != null)
{
var transactionContent = JsonConvert.SerializeObject(transaction);
var _cont = new StringContent(transactionContent, Encoding.UTF8, "application/json");
string request = "clients/{0}/fiscalYears/{1}/transactions";
var response = manager.httpClient.PostAsync(string.Format(request, currentClient.id, currentFiscalYear.id), _cont).Result;
if (response.StatusCode != HttpStatusCode.OK)
{
ResponseDetails details = new ResponseDetails(response);
}
state.passed = response.IsSuccessStatusCode;
}
return state.passed;
}
}
class Save:
# TODO Recheck
@staticmethod
def transaction(manager, transaction):
_currentClient = manager.getCurrentClient()
_currentFiscalYear = manager.getCurrentFiscalYear()
try:
url = '{0}clients/{1}/fiscalYears/{2}/transactions'.format(manager.baseURL(), _currentClient['id'], _currentFiscalYear['id'])
response = requests.post(url, data = json.dumps(transaction), headers = manager.headers())
except Exception as err:
print("Error: {0}".format(err))
print(response.headers)
response.raise_for_status()
if response.status_code == 200:
return response.json()
else:
return None
UNDER CONSTRUCTION
not available
class Save
{
public static bool creditor(Creditor creditor, Party party, Manager manager) {
var currentClient = manager.getCurrentClient();
ErrorState state = new ErrorState { passed = false };
if ((creditor != null) & (party != null))
{
var creditorContent = JsonConvert.SerializeObject(creditor);
var _cont = new StringContent(creditorContent, Encoding.UTF8, "application/json");
string request = "clients/{0}/parties/{1}/creditor";
var response = manager.httpClient.PostAsync(string.Format(request, currentClient.id, party.id), _cont).Result;
if (response.StatusCode != HttpStatusCode.OK)
{
ResponseDetails details = new ResponseDetails(response);
}
state.passed = response.IsSuccessStatusCode;
}
return state.passed;
}
}
class Save:
UNDER CONSTRUCTION
{
"partyFID": 2497,
"accountFID": 77,
"payMethodFID": 26,
"payTermFID": 9,
"freeCode": "NC",
"isInactiv": false,
"noReminders": true,
"noRemindersFee": false,
"creditLine": 100000.0,
"maxReminderLevel": 0,
"person": {
"partyFID": -1,
"personRoleFID": 1,
"firstName": "Cavin",
"middleName": "M",
"lastName": "Matters",
"email": "Cavin.Matters@business.ch",
"jobTitle": "Product Manager",
"mobile": "079 123 45 67",
"salutation": null,
"telephone": "062 123 45 67",
"title": "Dr.",
"titleSuffix": null,
"isMale": true
},
"payMethods": [
{
"id": -1,
"partyFID": 2497,
"accountFID": 20,
"bankAccountFID": 4,
"bankFID": 27,
"payTypeFID": 6,
"accountNum": "400000.40",
"name": "manuall",
"payslipCode": null,
"personRoleFID": 2
}
]
}
class Save
{
public static bool debtor(Debtor debtor, Party party, Manager manager)
{
var currentClient = manager.getCurrentClient();
ErrorState state = new ErrorState { passed = false };
if ((debtor != null) & (party != null))
{
var serialized = JsonConvert.SerializeObject(debtor);
var content = new StringContent(serialized, Encoding.UTF8, "application/json");
string request = "clients/{0}/parties/{1}/debtor";
var response = manager.httpClient.PostAsync(string.Format(request, currentClient.id, party.id), content).Result;
if (response.StatusCode != HttpStatusCode.OK)
{
ResponseDetails details = new ResponseDetails(response);
}
state.passed = response.IsSuccessStatusCode;
}
return state.passed;
}
}
class Save:
UNDER CONSTRUCTION
not available