Work started on timesheet approval workflow.
authorNik Okuntseff <support@anuko.com>
Wed, 13 Feb 2019 17:29:19 +0000 (17:29 +0000)
committerNik Okuntseff <support@anuko.com>
Wed, 13 Feb 2019 17:29:19 +0000 (17:29 +0000)
WEB-INF/templates/footer.tpl
dbinstall.php
mysql.sql

index 693dc29..d1dfd5c 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.18.36.4715 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.18.37.4716 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>
index e32df0e..64e4cac 100644 (file)
@@ -967,7 +967,7 @@ if ($_POST) {
     print "Updated $tt_expense_items_updated tt_expense_items records...<br>\n";
   }
 
-  if ($_POST["convert11797to11836"]) {
+  if ($_POST["convert11797to11837"]) {
     ttExecute("ALTER TABLE `tt_fav_reports` CHANGE `group_by` `group_by1` varchar(20) default NULL");
     ttExecute("ALTER TABLE `tt_fav_reports` ADD `group_by2` varchar(20) default NULL AFTER `group_by1`");
     ttExecute("ALTER TABLE `tt_fav_reports` ADD `group_by3` varchar(20) default NULL AFTER `group_by2`");
@@ -1056,6 +1056,11 @@ if ($_POST) {
     ttExecute("UPDATE `tt_site_config` SET param_value = '1.18.36', modified = now() where param_name = 'version_db' and param_value = '1.18.34'");
     ttExecute("update `tt_users` u inner join `tt_site_config` sc on (sc.param_name = 'version_db' and sc.param_value = '1.18.36') set u.quota_percent = 100.00 where u.quota_percent is null");
     ttExecute("ALTER TABLE `tt_users` modify `quota_percent` float(6,2) NOT NULL default '100.00'");
+    ttExecute("CREATE TABLE `tt_timesheets` (`id` int(11) NOT NULL auto_increment, `user_id` int(11) NOT NULL, `group_id` int(11) default NULL, `org_id` int(11) default NULL, `client_id` int(11) default NULL, `name` varchar(80) COLLATE utf8mb4_bin NOT NULL, `submit_status` tinyint(4) default NULL, `submitter_comment` text, `approval_status` tinyint(4) default NULL, `manager_comment` text, `created` datetime default NULL, `created_ip` varchar(45) default NULL, `created_by` int(11) default NULL, `modified` datetime default NULL, `modified_ip` varchar(45) default NULL, `modified_by` int(11) default NULL, `status` tinyint(4) default 1, PRIMARY KEY (`id`))");
+    ttExecute("ALTER TABLE `tt_log` ADD `timesheet_id` int(11) default NULL AFTER `task_id`");
+    ttExecute("create index timesheet_idx on tt_log(timesheet_id)");
+    ttExecute("ALTER TABLE `tt_expense_items` ADD `timesheet_id` int(11) default NULL AFTER `project_id`");
+    ttExecute("create index timesheet_idx on tt_expense_items(timesheet_id)");
   }
 
   if ($_POST["cleanup"]) {
@@ -1103,7 +1108,7 @@ if ($_POST) {
 <h2>DB Install</h2>
 <table width="80%" border="1" cellpadding="10" cellspacing="0">
   <tr>
-    <td width="80%"><b>Create database structure (v1.18.36)</b>
+    <td width="80%"><b>Create database structure (v1.18.37)</b>
     <br>(applies only to new installations, do not execute when updating)</br></td><td><input type="submit" name="crstructure" value="Create"></td>
   </tr>
 </table>
@@ -1148,8 +1153,8 @@ if ($_POST) {
   </tr>
   </tr>
   <tr valign="top">
-    <td>Update database structure (v1.17.97 to v1.18.36)</td>
-    <td><input type="submit" name="convert11797to11836" value="Update"></td>
+    <td>Update database structure (v1.17.97 to v1.18.37)</td>
+    <td><input type="submit" name="convert11797to11837" value="Update"></td>
   </tr>
 </table>
 
index 5dd41e0..113f5df 100644 (file)
--- a/mysql.sql
+++ b/mysql.sql
@@ -197,6 +197,7 @@ CREATE TABLE `tt_log` (
   `client_id` int(11) default NULL,                # client id
   `project_id` int(11) default NULL,               # project id
   `task_id` int(11) default NULL,                  # task id
+  `timesheet_id` int(11) default NULL,             # timesheet id
   `invoice_id` int(11) default NULL,               # invoice id
   `comment` text,                                  # user provided comment for time record
   `billable` tinyint(4) default 0,                 # whether the record is billable or not
@@ -219,6 +220,7 @@ create index client_idx on tt_log(client_id);
 create index invoice_idx on tt_log(invoice_id);
 create index project_idx on tt_log(project_id);
 create index task_idx on tt_log(task_id);
+create index timesheet_idx on tt_log(timesheet_id);
 
 
 #
@@ -425,6 +427,7 @@ CREATE TABLE `tt_expense_items` (
   `org_id` int(11) default NULL,          # organization id
   `client_id` int(11) default NULL,       # client id
   `project_id` int(11) default NULL,      # project id
+  `timesheet_id` int(11) default NULL,    # timesheet id
   `name` text NOT NULL,                   # expense item name (what is an expense for)
   `cost` decimal(10,2) default '0.00',    # item cost (including taxes, etc.)
   `invoice_id` int(11) default NULL,      # invoice id
@@ -445,6 +448,7 @@ create index user_idx on tt_expense_items(user_id);
 create index group_idx on tt_expense_items(group_id);
 create index client_idx on tt_expense_items(client_id);
 create index project_idx on tt_expense_items(project_id);
+create index timesheet_idx on tt_expense_items(timesheet_id);
 create index invoice_idx on tt_expense_items(invoice_id);
 
 
@@ -476,6 +480,31 @@ CREATE TABLE `tt_monthly_quotas` (
 );
 
 
+#
+# Structure for table tt_timesheets. This table keeps timesheet related information.
+#
+CREATE TABLE `tt_timesheets` (
+  `id` int(11) NOT NULL auto_increment,            # timesheet id
+  `user_id` int(11) NOT NULL,                      # user id
+  `group_id` int(11) default NULL,                 # group id
+  `org_id` int(11) default NULL,                   # organization id
+  `client_id` int(11) default NULL,                # client id
+  `name` varchar(80) COLLATE utf8mb4_bin NOT NULL, # timesheet name
+  `submit_status` tinyint(4) default NULL,         # submit status
+  `submitter_comment` text,                        # submitter comment
+  `approval_status` tinyint(4) default NULL,       # approval status
+  `manager_comment` text,                          # manager comment
+  `created` datetime default NULL,                 # creation timestamp
+  `created_ip` varchar(45) default NULL,           # creator ip
+  `created_by` int(11) default NULL,               # creator user_id
+  `modified` datetime default NULL,                # modification timestamp
+  `modified_ip` varchar(45) default NULL,          # modifier ip
+  `modified_by` int(11) default NULL,              # modifier user_id
+  `status` tinyint(4) default 1,                   # timesheet status
+  PRIMARY KEY (`id`)
+);
+
+
 #
 # Structure for table tt_site_config. This table stores configuration data
 # for Time Tracker site as a whole.
@@ -489,4 +518,4 @@ CREATE TABLE `tt_site_config` (
   PRIMARY KEY  (`param_name`)
 );
 
-INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.18.36', now()); # TODO: change when structure changes.
+INSERT INTO `tt_site_config` (`param_name`, `param_value`, `created`) VALUES ('version_db', '1.18.37', now()); # TODO: change when structure changes.