Resource: Property, Field : CoListAgentMlsId
Description
CoListingMlsId has the required permission from the list agents office.
Error Messages
1) ERROR, the 'co-listing agent' is active, has the required access permission, but has a non-member login ID.
2) ERROR, the 'user' has the required access permissions but the user office does not match the listing agent office or the main office.
3) ERROR, the 'user' has administrative access permissions but the user AOR does not match the listing agent AOR or the co-listing agent AOR.
4) ERROR, the 'user' has agent or assistant access permissions but the user is not the listing agent.
Fields referenced within this rule
CoListAgentMlsId
ListAgentKeyNumeric
ListOfficeKeyNumeric
Syntax with comments and error messages
//[ErrMsg1^ERROR, the 'co-listing agent' is active, has the required access permission, but has a non-member login ID.|LogicBlk1^TRUE|LogicBlk2^TRUE|LogicBlk3^TRUE|LogicBlk4^FALSE]
//[ErrMsg2^ERROR, the 'user' has the required access permissions but the user office does not match the listing agent office or the main office.|LogicBlk1^TRUE|LogicBlk2^TRUE|LogicBlk5^TRUE|LogicBlk6^FALSE]
//[ErrMsg3^ERROR, the 'user' has administrative access permissions but the user AOR does not match the listing agent AOR or the co-listing agent AOR.|LogicBlk1^TRUE|LogicBlk2^TRUE|LogicBlk7^TRUE|LogicBlk8^FALSE]
//[ErrMsg4^ERROR, the 'user' has agent or assistant access permissions but the user is not the listing agent.|LogicBlk1^TRUE|LogicBlk2^TRUE|LogicBlk9^TRUE|LogicBlk10^FALSE]
// If entry is not empty and has changed...
IIF((/*[LogicBlk1]*/(.ENTRY. != .EMPTY.).AND.(.ENTRY. != .OLDVALUE.)),
// If the Co-Listing Agent has an ID and is active...
(/*[LogicBlk2]*/IIF((ROSTER("COLA","MemberKeyNumeric") != .EMPTY.),ROSTER("COLA","MemberStatus").IN.('A'),.FALSE.)).AND.
// the co-listing agent has the required permission and is a member and...
((/*[LogicBlk3]*/ROSTER("COLA","MemberMlsSecurityClass").IN.('PA','OA','OG','OD','PH','TP','ON','AP')).AND.(/*[LogicBlk4]*/UPPER(CHAR(ROSTER("COLA","MemberLoginID"))) != 'NONMEMBER').AND.
// the user has the required permission and is a member of the list agent's office and...
((/*[LogicBlk5]*/.USERCLASS..IN.('OM','HB','DB','OA')).AND.(/*[LogicBlk6]*/(ROSTER("UserData","OfficeKeyNumeric") = ListOfficeKeyNumeric).OR.
// the listing office is same as the user office or...
(ROSTER("LO","MainOfficeKeyNumeric") = ROSTER("UserOffice","MainOfficeKeyNumeric")))).OR.
// Administrative permission and...
((/*[LogicBlk7]*/.USERCLASS..IN.('BANGN','BANGM')).AND.
// if no co-list agent MLS ID defined,
(/*[LogicBlk8]*/IIF(.ENTRY. = .EMPTY.,
// then are user AOR and listing agent AOR the same?
(UPPER(CHAR(ROSTER("UserData","MemberAOR"))) = UPPER(CHAR(ROSTER("LA","MemberAOR")))),
// Else, then are user AOR and listing agent AOR the same or are user AOR and co-listing agent AOR the same?
(UPPER(CHAR(ROSTER("UserData","MemberAOR"))) = UPPER(CHAR(ROSTER("LA","MemberAOR")))).OR.(UPPER(CHAR(ROSTER("UserData","MemberAOR"))) = UPPER(CHAR(ROSTER("COLA","MemberAOR"))))))).OR.
// user has agent or assistant permission and list agent key match the user key or...
((/*[LogicBlk9]*/.USERCLASS..IN.('AG','HA','AS')).AND.(/*[LogicBlk10]*/ListAgentKeyNumeric = ROSTER("UserData","MemberKeyNumeric"))).OR.
// Administrative bypass or value has not changed...
(.USERCLASS..IN.('BANGG','BANGQ','BANGP'))),
// Else ACCEPT entry.
.TRUE.)
Syntax only
IIF(((.ENTRY. != .EMPTY.).AND.(.ENTRY. != .OLDVALUE.)),(IIF((ROSTER("COLA","MemberKeyNumeric") != .EMPTY.),ROSTER("COLA","MemberStatus").IN.('A'),.FALSE.)).AND.((ROSTER("COLA","MemberMlsSecurityClass").IN.('PA','OA','OG','OD','PH','TP','ON','AP')).AND.(UPPER(CHAR(ROSTER("COLA","MemberLoginID"))) != 'NONMEMBER').AND.((.USERCLASS..IN.('OM','HB','DB','OA')).AND.((ROSTER("UserData","OfficeKeyNumeric") = ListOfficeKeyNumeric).OR.(ROSTER("LO","MainOfficeKeyNumeric") = ROSTER("UserOffice","MainOfficeKeyNumeric")))).OR.((.USERCLASS..IN.('BANGN','BANGM')).AND.(IIF(.ENTRY. = .EMPTY.,(UPPER(CHAR(ROSTER("UserData","MemberAOR"))) = UPPER(CHAR(ROSTER("LA","MemberAOR")))),(UPPER(CHAR(ROSTER("UserData","MemberAOR"))) = UPPER(CHAR(ROSTER("LA","MemberAOR")))).OR.(UPPER(CHAR(ROSTER("UserData","MemberAOR"))) = UPPER(CHAR(ROSTER("COLA","MemberAOR"))))))).OR.((.USERCLASS..IN.('AG','HA','AS')).AND.(ListAgentKeyNumeric = ROSTER("UserData","MemberKeyNumeric"))).OR.(.USERCLASS..IN.('BANGG','BANGQ','BANGP'))),.TRUE.)
Rule Unique ID
95bea7a5-35da-4832-b538-be3bfdd8328b
Rule Number
43