Resource: Property, Field : ExpirationDate
Description
ExpirationDate must be after the listing contract date and a valid date.
Error Messages
1) ERROR, status has changed to active and the expiration date cannot be before the listing contract date.
2) ERROR, status has changed to active and the expiration date cannot be more than 913 days in the future.
3) ERROR, status has changed to active and the expiration date cannot be in the past.
4) ERROR, status not has changed to active and the expiration date cannot be before the listing contract date.
5) ERROR, status not has changed to active and the expiration date cannot be cannot be more than 913 days in the future.
6) ERROR, status not has changed to active and the expiration date cannot be cannot be altered unless it is changed to a future date or the user has a managerial permission level.
Fields referenced within this rule
ExpirationDate
ListingContractDate
StandardStatus
Syntax with comments and error messages
//[ErrMsg1^ERROR, status has changed to active and the expiration date cannot be before the listing contract date.|LogicBlk1^FALSE|LogicBlk2^FALSE|LogicBlk3^TRUE|LogicBlk4^TRUE|LogicBlk5^FALSE]
//[ErrMsg2^ERROR, status has changed to active and the expiration date cannot be more than 913 days in the future.|LogicBlk1^FALSE|LogicBlk2^FALSE|LogicBlk3^TRUE|LogicBlk4^TRUE|LogicBlk6^FALSE]
//[ErrMsg3^ERROR, status has changed to active and the expiration date cannot be in the past.|LogicBlk1^FALSE|LogicBlk2^FALSE|LogicBlk3^TRUE|LogicBlk4^TRUE|LogicBlk7^FALSE]
//[ErrMsg4^ERROR, status not has changed to active and the expiration date cannot be before the listing contract date.|LogicBlk1^FALSE|LogicBlk2^FALSE|LogicBlk3^TRUE|LogicBlk8^TRUE|LogicBlk9^FALSE]
//[ErrMsg5^ERROR, status not has changed to active and the expiration date cannot be cannot be more than 913 days in the future.|LogicBlk1^FALSE|LogicBlk2^FALSE|LogicBlk3^TRUE|LogicBlk8^TRUE|LogicBlk10^FALSE]
//[ErrMsg6^ERROR, status not has changed to active and the expiration date cannot be cannot be altered unless it is changed to a future date or the user has a managerial permission level.|LogicBlk1^FALSE|LogicBlk2^FALSE|LogicBlk3^TRUE|LogicBlk8^TRUE|LogicBlk11^FALSE]
// Grandfather logic block - line below or...
(/*[LogicBlk1]*/(.ENTRY. = .OLDVALUE.).AND..NOT.(((LASTStandardStatus = .EMPTY.).OR.(LASTStandardStatus = 'I')).AND.(StandardStatus.IN.('A','P')))).OR.
// Administrator bypass or...
(/*[LogicBlk2]*/.USERCLASS..IN.('BANGG','BANGP','BANGM','BANGN','BANGQ')).OR.
// If the entry is not empty....
IIF((/*[LogicBlk3]*/.ENTRY. != .EMPTY.),
// status has changed to 'active' and...
((/*[LogicBlk4]*/((LASTStandardStatus = .EMPTY.).OR.(LASTStandardStatus.IN.('I'))).AND.(StandardStatus.IN.('A'))).AND.
// expiration date is after the listing contract date and the expiration date is less than 913 days in the future and the expiration date is not in the past or...
(/*[LogicBlk5]*/.ENTRY. >= ListingContractDate).AND.(/*[LogicBlk6]*/FLOAT(DAYS(.ENTRY.,.TODAY.)) < FLOAT(913)).AND.(/*[LogicBlk7]*/.ENTRY. >= .TODAY.)).OR.
// status has not changed to 'active' and...
((/*[LogicBlk8]*/.NOT.(((LASTStandardStatus = .EMPTY.).OR.(LASTStandardStatus.IN.('I'))).AND.(StandardStatus.IN.('A')))).AND.
// the expiration date is not in the past and the expiration date is less than 913 days in the future and the user has the correct permission access or the expiration date is today or in the future.
(/*[LogicBlk9]*/.ENTRY. >= ListingContractDate).AND.(/*[LogicBlk10]*/FLOAT(DAYS(.ENTRY.,.TODAY.)) < FLOAT(913)).AND.(/*[LogicBlk11]*/(.USERCLASS..IN.('OM','HM','HB','DB')).OR.(.ENTRY. >= DATEONLY(.OLDVALUE.)))),
// Else accept the value.
.TRUE.)
Syntax only
((.ENTRY. = .OLDVALUE.).AND..NOT.(((LASTStandardStatus = .EMPTY.).OR.(LASTStandardStatus = 'I')).AND.(StandardStatus.IN.('A','P')))).OR.(.USERCLASS..IN.('BANGG','BANGP','BANGM','BANGN','BANGQ')).OR.IIF((.ENTRY. != .EMPTY.),((((LASTStandardStatus = .EMPTY.).OR.(LASTStandardStatus.IN.('I'))).AND.(StandardStatus.IN.('A'))).AND.(.ENTRY. >= ListingContractDate).AND.(FLOAT(DAYS(.ENTRY.,.TODAY.)) < FLOAT(913)).AND.(.ENTRY. >= .TODAY.)).OR.((.NOT.(((LASTStandardStatus = .EMPTY.).OR.(LASTStandardStatus.IN.('I'))).AND.(StandardStatus.IN.('A')))).AND.(.ENTRY. >= ListingContractDate).AND.(FLOAT(DAYS(.ENTRY.,.TODAY.)) < FLOAT(913)).AND.((.USERCLASS..IN.('OM','HM','HB','DB')).OR.(.ENTRY. >= DATEONLY(.OLDVALUE.)))),.TRUE.)
Rule Unique ID
0f1444a2-044b-4e13-a668-f78ec318ee52
Rule Number
81