Resource: Property, Field : EstimatedCloseDate
Description
EstimatedCloseDate must be after the listing contract date and a valid date.
Error Messages
1) ERROR, the 'Estimated Close Date' field is not valid for the current property type.
2) ERROR, the 'Estimated Close Date' must be on or after the 'Listing Contract Date'.
3) ERROR, the 'Estimated Close Date' must be on or after the 'Purchase Contract Date'.
4) ERROR, the 'Estimated Close Date' must be less than 913 days in the future.
5) ERROR, the 'Estimated Close Date' must be today or in the future, it cannot be a date in the past.
Fields referenced within this rule
EstimatedCloseDate
ListingContractDate
PropertyType
PurchaseContractDate
Syntax with comments and error messages
//[ErrMsg1^ERROR, the 'Estimated Close Date' field is not valid for the current property type.|LogicBlk1^FALSE|LogicBlk2^TRUE|LogicBlk3^FALSE]
//[ErrMsg2^ERROR, the 'Estimated Close Date' must be on or after the 'Listing Contract Date'.|LogicBlk1^FALSE|LogicBlk2^TRUE|LogicBlk4^FALSE]
//[ErrMsg3^ERROR, the 'Estimated Close Date' must be on or after the 'Purchase Contract Date'.|LogicBlk1^FALSE|LogicBlk2^TRUE|LogicBlk5^FALSE]
//[ErrMsg4^ERROR, the 'Estimated Close Date' must be less than 913 days in the future.|LogicBlk1^FALSE|LogicBlk2^TRUE|LogicBlk6^FALSE]
//[ErrMsg5^ERROR, the 'Estimated Close Date' must be today or in the future, it cannot be a date in the past.|LogicBlk1^FALSE|LogicBlk2^TRUE|LogicBlk7^FALSE]
// Administrator bypass or...
(/*[LogicBlk1]*/.USERCLASS..IN.('BANGQ')).OR.
// If entry is empty or has the date has changed...
IIF((/*[LogicBlk2]*/(.ENTRY. != .EMPTY.).AND.(DATEONLY(.ENTRY.) != DATEONLY(.OLDVALUE.))),
// Then check the the property type is not invalid and entry is on or after the listing contract date and the purchase contract date and...
(/*[LogicBlk3]*/.NOT.PropertyType.IN.('Rlse','Comm','Clse','Busop')).AND.(/*[LogicBlk4]*/.ENTRY. >= ListingContractDate).AND.(/*[LogicBlk5]*/.ENTRY. >= PurchaseContractDate).AND.
// the entry is less than 913 days in the future and the entry is on or after today.
(/*[LogicBlk6]*/FLOAT(DAYS(.ENTRY.,.TODAY.)) < FLOAT(913)).AND.(/*[LogicBlk7]*/.ENTRY. >= .TODAY.),
// Else ACCEPT the entry if empty.
.ENTRY. = .EMPTY.)
// (PropertyType .IN. ('Rlse','Comm','Clse','Busop')) .OR.
// (DATEONLY(.ENTRY.) = DATEONLY(.OLDVALUE.)) .OR. (.ENTRY. = .EMPTY.) .OR. (.USERCLASS. .IN. ('BANGQ')) .OR.
/ / ((.ENTRY. >= ListingContractDate).AND.(.ENTRY. >= PurchaseContractDate).AND.(FLOAT(DAYS(.ENTRY.,.TODAY.)) < FLOAT(913)).AND.(.ENTRY. >= .TODAY.))
Syntax only
(.USERCLASS..IN.('BANGQ')).OR.IIF(((.ENTRY. != .EMPTY.).AND.(DATEONLY(.ENTRY.) != DATEONLY(.OLDVALUE.))),(.NOT.PropertyType.IN.('Rlse','Comm','Clse','Busop')).AND.(.ENTRY. >= ListingContractDate).AND.(.ENTRY. >= PurchaseContractDate).AND.(FLOAT(DAYS(.ENTRY.,.TODAY.)) < FLOAT(913)).AND.(.ENTRY. >= .TODAY.),.ENTRY. = .EMPTY.) / / ((.ENTRY. >= ListingContractDate).AND.(.ENTRY. >= PurchaseContractDate).AND.(FLOAT(DAYS(.ENTRY.,.TODAY.)) < FLOAT(913)).AND.(.ENTRY. >= .TODAY.))
Rule Unique ID
c48c27e3-161b-443b-87cf-d032d9bf62f7
Rule Number
74