Party Management

A Party has a unique id, which is unique troughout the whole client. 
 
Example Code
 
Find a Party
 
Example Code in this section
REST_Parties_Load()
REST_PartyByName_Load()

External references to methods used in examples
#Code reference - Load.parties
#Code reference - Load.party_by_name

    
        public void REST_Parties_load()
        {
            var currentClient = manager.getCurrentClient();
            var currentFiscalYear = manager.getCurrentFiscalYear();
            state = new ErrorState();

            // Load parties
            var parties = Load.parties(manager);
         }

        public void REST_Party_by_name_load()
        {

            var currentClient = manager.getCurrentClient();
            var currentFiscalYear = manager.getCurrentFiscalYear();
            state = new ErrorState();

            Party party = Load.party_by_name("THE SWATCH GROUP SA", manager);
         }
    
  
Create payables invoice
    
    UNDER CONSTRUCTION
    
  
Create payables invoice
    
    UNDER CONSTRUCTION
    
  
JSON representation of a party
    
{
	"id": 12,
	"countryFID": 110,
	"languageFID": 1,
	"shortName": "SwaBie",
	"name": "THE SWATCH GROUP SA",
	"line1": "",
	"line2": "",
	"city": "Biel/Bienne",
	"address1": "Faubourg du Lac 6",
	"address2": "",
	"addressBlock": "",
	"email": "",
	"remarks": "",
	"telefax": "",
	"telephone": "",
	"web": "",
	"isPrivate": false,
	"partyNum": 1030,
	"freePartyNum": "",
	"isHaveDebtor": false,
	"isHaveCreditor": true,
	"countryCode": "CH",
	"languageCode": "DE",
	"zip": "2502",
	"person": {
		"partyFID": 12,
		"personRoleFID": 1,
		"firstName": "",
		"middleName": "",
		"lastName": "",
		"email": "",
		"jobTitle": "",
		"mobile": "",
		"salutation": "",
		"telephone": "",
		"title": "",
		"titleSuffix": "",
		"isMale": false
	},
	"debtor": {
		"partyFID": 12,
		"accountFID": -1,
		"payMethodFID": -1,
		"payTermFID": -1,
		"freeCode": "",
		"isInactiv": false,
		"noReminders": false,
		"noRemindersFee": false,
		"creditLine": 0.0,
		"maxReminderLevel": 0,
		"person": {
			"partyFID": 12,
			"personRoleFID": -1,
			"firstName": "",
			"middleName": "",
			"lastName": "",
			"email": "",
			"jobTitle": "",
			"mobile": "",
			"salutation": "",
			"telephone": "",
			"title": "",
			"titleSuffix": "",
			"isMale": false
		},
		"payMethods": []
	},
	"creditor": {
		"partyFID": 12,
		"accountFID": 102,
		"payMethodFID": 13,
		"payTermFID": 9,
		"freeCode": "",
		"ourCustomerNum": "",
		"isInactiv": false,
		"creditLine": 0.0,
		"person": {
			"partyFID": 12,
			"personRoleFID": 3,
			"firstName": "",
			"middleName": "",
			"lastName": "",
			"email": "",
			"jobTitle": "",
			"mobile": "",
			"salutation": "",
			"telephone": "",
			"title": "",
			"titleSuffix": "",
			"isMale": false
		},
		"payMethods": [
			{
				"id": 13,
				"partyFID": 12,
				"accountFID": 46,
				"bankAccountFID": 1,
				"bankFID": -1,
				"payTypeFID": 1,
				"accountNum": "010465708",
				"name": "ESR-CHF",
				"payslipCode": "010465708200085",
				"personRoleFID": 3
			}
		]
	}
}
    
  
 
Create a Party
Example Code in this section
REST_Parties_create()
Create.party()
Save.party()

External references to methods used in examples
#Code reference - Load.party_by_name
#Code reference - Create.party
#Code reference - Save.party
#Code reference - Load.language_by_code
#Code reference - Load_country_by_code

    
        [TestMethod]
        public void REST_Parties_create()
        {
            state = new ErrorState();

            Party party = Load.party_by_name("Hunkeler", manager);

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

    class Create
    {
        public static Party party(Manager manager)
        {

            Party party = new Party();
            Language language = Load.language_by_code("DE", manager);
            Country country = Load.country_by_code("CH", manager);

            party.name = "Hunkeler";
            party.shortName = "Hunki";
            party.freePartyNum = "Hunki 21";
            party.address1 = "RandomStreet 1";
            party.city = "RandomCity";
            party.zip = "8000";
            party.email = "RandomParty@business.ch";
            party.telephone = "062 123 45 67";
            party.languageCode = language.code;
            party.languageFID = language.id;
            party.countryCode = country.code;
            party.countryFID = country.id;
            party.person = Create.person();

            return party;
        }
    }

    class Save
    {
        public static bool party(Party party, Manager manager)
        {
            var currentClient = manager.getCurrentClient();
            ErrorState state = new ErrorState();

            state.passed = false;
            if (party != null)
            {
                var serialized = JsonConvert.SerializeObject(party);
                var content = new StringContent(serialized, 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;
        }
    }
    
  
Create parties
    
    UNDER CONSTRUCTION
    
  
Load parties
    
    UNDER CONSTRUCTION
    
  
JSON representation of a 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
}
    
  
 
Create a Party with debtor (creditor)
Example Code in this section
REST_Parties_debtorr_create()

External references to methods used in examples
#Code reference - Load.party_by_name
#Code reference - Create.party
#Code reference - Save.party
#Code reference - Create.debtor // TODO
#Code reference - Save.debtor

    
        [TestMethod]
        public void REST_Parties_debtor_create()
        {
            ErrorState state = new ErrorState();

            Party party = Load.party_by_name("Hunkeler", manager);

            if (party == null) {
                party = Create.party(manager);
                state.passed = Save.party(party, manager);
                party = Load.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 = Save.debtor(debtor, party, manager);
            Assert.AreEqual(true, state.passed, state.message);
        }

    class Create
    {
        public static Debtor debtor(int partyID, Manager manager)
        {

            Debtor debtor = new Debtor();

            debtor.isInactiv = false;
            debtor.creditLine = 100000m;
            debtor.freeCode = "NC";
            debtor.noReminders = true;
            debtor.payTermFID = Load.payterm_by_code("30T", manager).id; // 30 Tage netto id = 9; 
            debtor.payMethodFID = -1;
            debtor.accountFID = Load.account_id_by_account_code("3300", manager); // 77;

            debtor.payMethods.Add(Create.debtor_paymethod(partyID, manager));
            debtor.person = Create.person();

            return debtor;
        }
    }

    class Save 
    {
        public static bool debtor(Debtor debtor, Party party, Manager manager)
        {
            var currentClient = manager.getCurrentClient();
            ErrorState state = new ErrorState();

            state.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;
        }
    }
    
  
Load parties
    
    UNDER CONSTRUCTION
    
  
Load parties
    
    UNDER CONSTRUCTION
    
  
JSON representation of a debtor
    
{
	"partyFID": 2497,
	"accountFID": 77,
	"payMethodFID": 26,
	"payTermFID": 9,
	"freeCode": "NC",
	"isInactiv": false,
	"noReminders": true,
	"noRemindersFee": false,
	"creditLine": 100000.0,
	"maxReminderLevel": 0,
	"person": {
		"partyFID": 2497,
		"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
		}
	]
}
    
  
 
Read creditor or debtor details of a Party