-
Notifications
You must be signed in to change notification settings - Fork 3
/
lib-address.crm
80 lines (72 loc) · 2.5 KB
/
lib-address.crm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#setLanguageLevel 3;
/*
* Helpermethods for working with Addresses in SuperOffice CRM and Service.
*/
Map validAddressTypes;
validAddressTypes.insert("PostalAddress1", "");
validAddressTypes.insert("PostalAddress2", "");
validAddressTypes.insert("PostalAddress3", "");
validAddressTypes.insert("PostalCity", "");
validAddressTypes.insert("PostalCounty", "");
validAddressTypes.insert("PostalState", "");
validAddressTypes.insert("PostalZipcode", "");
validAddressTypes.insert("StreetAddress1", "");
validAddressTypes.insert("StreetAddress2", "");
validAddressTypes.insert("StreetAddress3", "");
validAddressTypes.insert("StreetCity", "");
validAddressTypes.insert("StreetCounty", "");
validAddressTypes.insert("StreetState", "");
validAddressTypes.insert("StreetZipcode", "");
//validAddressTypes.insert("ContactStreetAddress", "");
//validAddressTypes.insert("ContactPostalAddress", "");
//validAddressTypes.insert("PersonPostalAddress", "");
//validAddressTypes.insert("PersonStreetAddress", "");
//Get the addresses of a contact as values in a map.
Map getContactAddresses(NSContactEntity contact)
{
NSAddress contactAddress = contact.GetAddress();
NSLocalizedField[][] fields = contactAddress.GetLocalizedAddress();
Map addr;
for (Integer i=0; i < fields.length(); i++)
{
for (Integer j=0; j<fields[i].length(); j++)
{
addr.insert(fields[i][j].GetName(), fields[i][j].GetValue());
}
}
return addr;
}
NSContactEntity setContactAddresses(NSContactEntity contact, Map addresses)
{
//For troubleshooting - detect illegal addresstypes.
for (addresses.first(); !addresses.eof(); addresses.next())
if (!validAddressTypes.exists(addresses.getKey()))
exitWithMessage("Illegal address type: " + addresses.getKey());
NSAddress contactAddress = contact.GetAddress();
NSLocalizedField[][] fields = contactAddress.GetLocalizedAddress();
for (Integer i = 0; i < fields.length(); i++)
{
for (Integer j = 0; j < fields[i].length(); j++)
{
if (addresses.exists(fields[i][j].GetName()))
{
fields[i][j].SetValue(addresses.get(fields[i][j].GetName()));
}
}
}
contactAddress.SetLocalizedAddress(fields);
contact.SetAddress(contactAddress);
return contact;
}
//Converts the NSLocalizedField multiarray to a Map.
Map getAddresses(NSLocalizedField[][] fields) {
Map addr;
for (Integer i=0; i < fields.length(); i++)
{
for (Integer j=0; j<fields[i].length(); j++)
{
addr.insert(fields[i][j].GetName(), fields[i][j].GetValue());
}
}
return addr;
}