Party

In the following you will find a few basic POST operations related to a party.
 
Example Code
 
POST a party
POST a party with Topal. A POST request is also used for updating an existing party.
 
External references to methods used in examples
#Code reference - GET.party_by_name
#Code reference - DELETE.party
    
    [TestMethod]
    public void REST_Party_create()
    {
        state = new ErrorState { passed = false };
        Party party = GET.party_by_name("Hunkeler", manager);

        if (party != null)
        {
            state.passed = DELETE.party("Hunkeler", manager);
            Assert.AreEqual(true, state.passed, state.message);
        }
        party = Create.party(manager);
        state.passed = POST.party(party, manager);
        Assert.AreEqual(true, state.passed, state.message);
    }

    class POST
    {
        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
}
    
  
 
POST a creditor
POST a creditor with Topal. A POST request is also used for updating an existing creditor.
 
External references to methods used in examples
#Code reference - GET.party_by_name
#Code reference - DELETE.party
#Code reference - Create.creditor
    

        [TestMethod]
        public void REST_Party_creditor_POST()
        {
            ErrorState state = new ErrorState();
            Party party = GET.party_by_name("Hunkeler", manager);

            if (party == null)
            {
                party = Create.party(manager);
                state.passed = POST.party(party, manager);
                party = GET.party_by_name("Hunkeler", manager);
            }
            Assert.AreEqual(true, state.passed, state.message);

            if (party.isHaveCreditor)
            {
                state.passed = DELETE.creditor(party, manager);
                Assert.AreEqual(true, state.passed, state.message);
            }

            Creditor creditor = Create.creditor(party.id, manager);
            state.passed = POST.creditor(creditor, party, manager);
            Assert.AreEqual(true, state.passed, state.message);
        }

    class POST
    {
        public static bool creditor(Creditor creditor, Party party, Manager manager)
        {
            ErrorState state = new ErrorState { passed = false };
            
            if ((creditor != null) & (party != null))
            {
                var serialized = JsonConvert.SerializeObject(creditor);
                var content = new StringContent(serialized, Encoding.UTF8, "application/json");

                string request = "clients/{0}/parties/{1}/creditor";
                string url = string.Format(request, manager.getCurrentClient().id, party.id);
                var response = manager.httpClient.PostAsync(url, content).Result;

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    ResponseDetails details = new ResponseDetails(response);
                }
                state.passed = response.IsSuccessStatusCode;
            }
            return state.passed;
        }
    }
    
  
Save creditor
    
class Save:

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

    
  
 
POST debtor
POST a debtor with Topal. A POST request is also used for updating an existing debtor.
 
External references to methods used in examples
#Code reference - GET.party_by_name
#Code reference - DELETE.party
#Code reference - Create.debtor
    
    [TestMethod]
    public void REST_Party_debtor_POST()
    {
        ErrorState state = new ErrorState();
        Party party = GET.party_by_name("Hunkeler", manager);

        if (party == null)
        {
            party = Create.party(manager);
            state.passed = POST.party(party, manager);
            party = GET.party_by_name("Hunkeler", manager);
            Assert.AreEqual(true, state.passed, state.message);
        }

        if (party.isHaveDebtor)
        {
            state.passed = DELETE.debtor(party, manager);
            Assert.AreEqual(true, state.passed, state.message);
        }

        Debtor debtor = Create.debtor(party.id, manager);
        state.passed = POST.debtor(debtor, party, manager);
        Assert.AreEqual(true, state.passed, state.message);
    }

    class POST
    {
        public static bool debtor(Debtor debtor, Party party, Manager manager)
        {
            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";
                string url = string.Format(request, manager.getCurrentClient().id, party.id);
                var response = manager.httpClient.PostAsync(url, content).Result;

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    ResponseDetails details = new ResponseDetails(response);
                }
                state.passed = response.IsSuccessStatusCode;
            }
            return state.passed;
        }
    }
    
  
Save debtor
    
class Save:

    
  
JSON representation of a save debtor
    
    not available