Party Management
A Party has a unique id, which is unique troughout the whole client.
Example Code
-
Read creditor or debtor details of a Party
REST_PartyByName_Load()
#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);
}
UNDER CONSTRUCTION
UNDER CONSTRUCTION
{
"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.party()
Save.party()
#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;
}
}
UNDER CONSTRUCTION
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
}
#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;
}
}
UNDER CONSTRUCTION
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": 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
}
]
}