Added fav reports to new export-import.
authorNik Okuntseff <support@anuko.com>
Sun, 11 Nov 2018 15:56:52 +0000 (15:56 +0000)
committerNik Okuntseff <support@anuko.com>
Sun, 11 Nov 2018 15:56:52 +0000 (15:56 +0000)
WEB-INF/lib/ttGroupExportHelper.class.php
WEB-INF/lib/ttOrgImportHelper.class.php
WEB-INF/templates/footer.tpl

index b1aa35c..17d4043 100644 (file)
@@ -457,6 +457,52 @@ class ttGroupExportHelper {
     }
     fwrite($this->file, $this->indentation."  </monthly_quotas>\n");
 
+    // Write fav reports.
+    $fav_reports = ttTeamHelper::getFavReports($this->group_id);
+    fwrite($this->file, $this->indentation."  <fav_reports>\n");
+    foreach ($fav_reports as $fav_report) {
+      $user_list = '';
+      if (strlen($fav_report['users']) > 0) {
+        $arr = explode(',', $fav_report['users']);
+        foreach ($arr as $k=>$v) {
+          if (array_key_exists($arr[$k], $this->userMap))
+            $user_list .= (strlen($user_list) == 0? '' : ',').$this->userMap[$v];
+        }
+      }
+      $fav_report_part = $this->indentation.'    '."<fav_report user_id=\"".$this->userMap[$fav_report['user_id']]."\"";
+      $fav_report_part .= " name=\"".htmlentities($fav_report['name'])."\"";
+      $fav_report_part .= " client_id=\"".$this->clientMap[$fav_report['client_id']]."\"";
+      $fav_report_part .= " cf_1_option_id=\"".$this->customFieldOptionMap[$fav_report['cf_1_option_id']]."\"";
+      $fav_report_part .= " project_id=\"".$this->projectMap[$fav_report['project_id']]."\"";
+      $fav_report_part .= " task_id=\"".$this->taskMap[$fav_report['task_id']]."\"";
+      $fav_report_part .= " billable=\"".$fav_report['billable']."\"";
+      $fav_report_part .= " users=\"".$user_list."\"";
+      $fav_report_part .= " period=\"".$fav_report['period']."\"";
+      $fav_report_part .= " period_start=\"".$fav_report['period_start']."\"";
+      $fav_report_part .= " period_end=\"".$fav_report['period_end']."\"";
+      $fav_report_part .= " show_client=\"".$fav_report['show_client']."\"";
+      $fav_report_part .= " show_invoice=\"".$fav_report['show_invoice']."\"";
+      $fav_report_part .= " show_paid=\"".$fav_report['show_paid']."\"";
+      $fav_report_part .= " show_ip=\"".$fav_report['show_ip']."\"";
+      $fav_report_part .= " show_project=\"".$fav_report['show_project']."\"";
+      $fav_report_part .= " show_start=\"".$fav_report['show_start']."\"";
+      $fav_report_part .= " show_duration=\"".$fav_report['show_duration']."\"";
+      $fav_report_part .= " show_cost=\"".$fav_report['show_cost']."\"";
+      $fav_report_part .= " show_task=\"".$fav_report['show_task']."\"";
+      $fav_report_part .= " show_end=\"".$fav_report['show_end']."\"";
+      $fav_report_part .= " show_note=\"".$fav_report['show_note']."\"";
+      $fav_report_part .= " show_custom_field_1=\"".$fav_report['show_custom_field_1']."\"";
+      $fav_report_part .= " show_work_units=\"".$fav_report['show_work_units']."\"";
+      $fav_report_part .= " group_by1=\"".$fav_report['group_by1']."\"";
+      $fav_report_part .= " group_by2=\"".$fav_report['group_by2']."\"";
+      $fav_report_part .= " group_by3=\"".$fav_report['group_by3']."\"";
+      $fav_report_part .= " show_totals_only=\"".$fav_report['show_totals_only']."\"";
+      $fav_report_part .= "></fav_report>\n";
+      fwrite($this->file, $fav_report_part);
+    }
+    fwrite($this->file, $this->indentation."  </fav_reports>\n");
+    unset($fav_reports);
+
     // Call self recursively for all subgroups.
     foreach ($this->subgroups as $subgroup) {
       $subgroup_helper = new ttGroupExportHelper($subgroup['id'], $this->file, $this->indentation.'  ');
index cc632f1..80dc8a1 100644 (file)
@@ -34,6 +34,7 @@ import('ttClientHelper');
 import('ttInvoiceHelper');
 import('ttCustomFieldHelper');
 import('ttExpenseHelper');
+import('ttFavReportHelper');
 
 // ttOrgImportHelper - this class is a future replacement for ttImportHelper.
 // Currently, it is work in progress.
@@ -398,6 +399,45 @@ class ttOrgImportHelper {
           $this->errors->add($i18n->get('error.db'));
         }
       }
+
+      if ($name == 'FAV_REPORT') {
+        $user_list = '';
+        if (strlen($attrs['USERS']) > 0) {
+          $arr = explode(',', $attrs['USERS']);
+          foreach ($arr as $v)
+            $user_list .= (strlen($user_list) == 0 ? '' : ',').$this->currentGroupUserMap[$v];
+        }
+        $fav_report_id = ttFavReportHelper::insertReport(array(
+          'name' => $attrs['NAME'],
+          'user_id' => $this->currentGroupUserMap[$attrs['USER_ID']],
+          'client' => $this->currentGroupClientMap[$attrs['CLIENT_ID']],
+          'option' => $this->currentGroupCustomFieldOptionMap[$attrs['CF_1_OPTION_ID']],
+          'project' => $this->currentGroupProjectMap[$attrs['PROJECT_ID']],
+          'task' => $this->currentGroupTaskMap[$attrs['TASK_ID']],
+          'billable' => $attrs['BILLABLE'],
+          'users' => $user_list,
+          'period' => $attrs['PERIOD'],
+          'from' => $attrs['PERIOD_START'],
+          'to' => $attrs['PERIOD_END'],
+          'chclient' => (int) $attrs['SHOW_CLIENT'],
+          'chinvoice' => (int) $attrs['SHOW_INVOICE'],
+          'chpaid' => (int) $attrs['SHOW_PAID'],
+          'chip' => (int) $attrs['SHOW_IP'],
+          'chproject' => (int) $attrs['SHOW_PROJECT'],
+          'chstart' => (int) $attrs['SHOW_START'],
+          'chduration' => (int) $attrs['SHOW_DURATION'],
+          'chcost' => (int) $attrs['SHOW_COST'],
+          'chtask' => (int) $attrs['SHOW_TASK'],
+          'chfinish' => (int) $attrs['SHOW_END'],
+          'chnote' => (int) $attrs['SHOW_NOTE'],
+          'chcf_1' => (int) $attrs['SHOW_CUSTOM_FIELD_1'],
+          'chunits' => (int) $attrs['SHOW_WORK_UNITS'],
+          'group_by1' => $attrs['GROUP_BY1'],
+          'group_by2' => $attrs['GROUP_BY2'],
+          'group_by3' => $attrs['GROUP_BY3'],
+          'chtotalsonly' => (int) $attrs['SHOW_TOTALS_ONLY']));
+         if (!$fav_report_id) $this->errors->add($i18n->get('error.db'));
+      }
     }
   }
 
index 338b37b..3898048 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.12.4416 | 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.12.4417 | 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>