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:
 
 
Save party
Save Party
    
    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;
        }
    }
    
  
Save Party
    
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
    
  
Save Party
    
    UNDER CONSTRUCTION
    
  
JSON representation of a save party
    
{
	"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
}
    
  
 
Save payable invoice
Save Payable invoice
    
    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;
        }
    }
    
  
Save Payable invoice
    
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
    
  
Save Payable invoice
    
    UNDER CONSTRUCTION
    
  
JSON representation of a payable invoice
    
    not available
    
  
 
Save receivable invoice
Save Receivable invoice
    
    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;
        }
    }
    
  
Save Receivable invoice
    
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
    
  
Save Receivable invoice
    
    UNDER CONSTRUCTION
    
  
JSON representation of a payable invoice
    
    not available
    
  
 
Save transaction
Save transaction
    
    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;
        }
    }
    
  
Save transaction
    
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
    
  
Save transaction
    
    UNDER CONSTRUCTION
    
  
JSON representation of a transaction
    
    not available
    
  
 
Save creditor
Save creditor
    
    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;
        }
    }
    
  
Save creditor
    
class Save:

    
  
Save creditor
    
    UNDER CONSTRUCTION
    
  
JSON representation of a save creditor
    

{
	"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
		}
	]
}

    
  
 
Save debtor
Save debtor
    
    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;
        }
    }
    
  
Save debtor
    
class Save:

    
  
Save debtor
    
    UNDER CONSTRUCTION
    
  
JSON representation of a save debtor
    
    not available