Extending Form Limits

  • rework generateLimit() so that allows for adding in new operators types.

  • Hook in COMPARE operator to generateLimit() to make comparisons for form fields to be used in limits

  • *Example: ‘form+start_year’ lessThan ‘form+end_year’ will cause the following code to be executed:

  • **$start_date->COMPAREAS_lessthan_TO_I2CE_FormField_YEAR($end_date) – will not exist

  • **$start_date->COMPAREAS_lessthan_TO_I2CE_FormField_DB_DATE($end_date) – will exist and return true/false

  • *In otherwords ($class = get_ COMPAREAS_$operator_TO_$class where $class runs over parent cass of end_date

  • allow for general binary (or n-ary) operations among form fields where the result is another form field to be used in limit clauses. such as

  • *$end_date->OPERATOR_minus_DB_DATE($start_date)

  • *$start_salary->OPERATOR_plus_CURRENCY($end_salary)

  • allow for “parametrized” 1-ary operations for form fields such as:

  • *$start_date->next_year() (no parameters ) – returns class of $start_date

  • *$start_date->increment_ymd($y,$m,$d) (3 paramaters) – returns class of $start_date

  • *$start_date->increment_year($y) (1 paramater) – returns class of $start_date

  • *$start_date->increment_time($h,$m,$s) – returns class of $start_date

  • *$start_date->increment_hour($h) – returns class of $start_date

  • *$salary->divide($divisor) – returns CURRENCY

  • *$salary->multiply($factor)– returns CURRENCY

  • allow for constant-like form fields in limiting values such as:

  • *DB_DATETIME::now() – returns DATE_TIME

  • *DB_YEAR::next_year() – returns DATE_YEAR

  • *DB_YMD::next_year() – returns DATE_YMD