Could not enter a year before other years (removed readonly begin)
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Thu, 18 Nov 2010 22:08:06 +0000 (22:08 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Thu, 18 Nov 2010 22:08:06 +0000 (22:08 +0000)
and better check for first end year.

CHANGELOG.txt
admin/db/fiscalyears_db.inc
admin/fiscalyears.php

index 7dc096c3feb7b5b42ede24b4f93116a27b369735..a16ba2f609b42c5e57b0cb5be19343a5136a15e5 100644 (file)
@@ -28,6 +28,11 @@ $ /install/isession.inc
   /install/lang/es_MX/LC_MESSAGES/es_MX.mo (new)
 
 18-Nov-2010 Joe Hunt
+# Could not enter a year before other years (removed readonly begin)
+  and better check for first end year.
+$ /adminfiscalyears.php
+  /admin/db/fiscalyears_db.inc
+  
 ! Scrambled graphic images to avoid unwanted downloads.
 $ /reporting/rep102.php
   /reporting/rep202.php
index b2f62413045d903703db9f67ecc5d7b1b0bb6a6d..669e8c3c91f7fbb00572b45b8d7f72a124a9f4bb 100644 (file)
@@ -81,23 +81,26 @@ function is_date_in_fiscalyears($date, $closed=true)
        return db_fetch($result) !== false;
 }
 
-function check_begin_date($date="", $check=true)
+function check_begin_end_date($date1, $date2)
+{
+       $sql = "SELECT MAX(end), MIN(begin) FROM ".TB_PREF."fiscal_year";
+       $result = db_query($sql, "could not retrieve last fiscal years");
+       $row = db_fetch_row($result);
+       if ($row[0] === null)
+               return true;
+       $max = add_days(sql2date($row[0]), 1);
+       $min = add_days(sql2date($row[1]), -1);
+       return ($max === $date1 || $min === $date2);
+}
+
+function next_begin_date()
 {
        $sql = "SELECT MAX(end) FROM ".TB_PREF."fiscal_year";
-       if ($date !== "")
-       {
-               $bdate = date2sql($date);
-               $sql .= " WHERE begin < '$bdate'";
-       }
        $result = db_query($sql, "could not retrieve last fiscal years");
        $row = db_fetch_row($result);
        if ($row[0] === null)
                return false;
-       $max = add_days(sql2date($row[0]), 1);
-       if ($check)
-               return ($max === $date);
-       else 
-               return $max;
+       return add_days(sql2date($row[0]), 1);
 }
 
 function check_years_before($date, $closed=false)
index 1926d48e1719c6c0a6bec73b5ac605f4f8f2b5e8..d886608f92cd4feba91ba2a0f00db3e7a0baea0e 100644 (file)
@@ -29,7 +29,7 @@ simple_page_mode(true);
 
 function check_data()
 {
-       if (!is_date($_POST['from_date']) || is_date_in_fiscalyears($_POST['from_date']) || !check_begin_date($_POST['from_date']))
+       if (!is_date($_POST['from_date']) || is_date_in_fiscalyears($_POST['from_date']))
        {
                display_error( _("Invalid BEGIN date in fiscal year."));
                set_focus('from_date');
@@ -41,6 +41,12 @@ function check_data()
                set_focus('to_date');
                return false;
        }
+       if (!check_begin_end_date($_POST['from_date'], $_POST['to_date']))
+       {
+               display_error( _("Invalid BEGIN or END date in fiscal year."));
+               set_focus('from_date');
+               return false;
+       }
        if (date1_greater_date2($_POST['from_date'], $_POST['to_date']))
        {
                display_error( _("BEGIN date bigger than END date."));
@@ -196,16 +202,13 @@ function display_fiscalyear_edit($selected_id)
        }
        else
        {
-               $begin = check_begin_date("", false);
-               if ($begin)
+               $begin = next_begin_date();
+               if ($begin && $Mode != 'ADD_ITEM')
                {
                        $_POST['from_date'] = $begin;
-                       hidden('from_date', $begin);
                        $_POST['to_date'] = end_month(add_months($begin, 11));
-                       label_row(_("Fiscal Year Begin:"), $_POST['from_date']);
                }
-               else
-                       date_row(_("Fiscal Year Begin:"), 'from_date', '', null, 0, 0, 1001);
+               date_row(_("Fiscal Year Begin:"), 'from_date', '', null, 0, 0, 1001);
                date_row(_("Fiscal Year End:"), 'to_date', '', null, 0, 0, 1001);
        }
        hidden('selected_id', $selected_id);