From dc298aa5a82fc2aa86a27a1c106cf42881376004 Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Mon, 19 Nov 2018 18:00:03 +0000 Subject: [PATCH] Refactoring - wrote insertClient for import, to separate import from other stuff. --- WEB-INF/lib/ttOrgImportHelper.class.php | 46 +++++++++++++++++++++++-- WEB-INF/templates/footer.tpl | 2 +- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/WEB-INF/lib/ttOrgImportHelper.class.php b/WEB-INF/lib/ttOrgImportHelper.class.php index 0da0a7ea..9907f6e7 100644 --- a/WEB-INF/lib/ttOrgImportHelper.class.php +++ b/WEB-INF/lib/ttOrgImportHelper.class.php @@ -238,7 +238,7 @@ class ttOrgImportHelper { $mapped_projects[] = $this->currentGroupProjectMap[$id]; } - $client_id = ttClientHelper::insert(array( + $client_id = $this->insertClient(array( 'group_id' => $this->current_group_id, 'org_id' => $this->org_id, 'name' => $attrs['NAME'], @@ -779,6 +779,48 @@ class ttOrgImportHelper { return $last_id; } + // The insertClient function inserts a new client as well as client to project binds. + private function insertClient($fields) + { + $mdb2 = getConnection(); + + $group_id = (int) $fields['group_id']; + $org_id = (int) $fields['org_id']; + $name = $fields['name']; + $address = $fields['address']; + $tax = $fields['tax']; + $projects = $fields['projects']; + if ($projects) + $comma_separated = implode(',', $projects); // This is a comma-separated list of associated projects ids. + $status = $fields['status']; + + $tax = str_replace(',', '.', $tax); + if ($tax == '') $tax = 0; + + $sql = "insert into tt_clients (group_id, org_id, name, address, tax, projects, status)". + " values ($group_id, $org_id, ".$mdb2->quote($name).", ".$mdb2->quote($address).", $tax, ".$mdb2->quote($comma_separated).", ".$mdb2->quote($status).")"; + + $affected = $mdb2->exec($sql); + if (is_a($affected, 'PEAR_Error')) + return false; + + $last_id = 0; + $sql = "select last_insert_id() as last_insert_id"; + $res = $mdb2->query($sql); + $val = $res->fetchRow(); + $last_id = $val['last_insert_id']; + + if (count($projects) > 0) + foreach ($projects as $p_id) { + $sql = "insert into tt_client_project_binds (client_id, project_id, group_id, org_id) values($last_id, $p_id, $group_id, $org_id)"; + $affected = $mdb2->exec($sql); + if (is_a($affected, 'PEAR_Error')) + return false; + } + + return $last_id; + } + // insertFavReport - inserts a favorite report in database. private function insertFavReport($fields) { $mdb2 = getConnection(); @@ -820,7 +862,7 @@ class ttOrgImportHelper { } // insertNotification function inserts a new notification into database. - static function insertNotification($fields) + private function insertNotification($fields) { $mdb2 = getConnection(); diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index cab56b71..627f0acc 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.18.21.4462 | Copyright © Anuko | +  Anuko Time Tracker 1.18.21.4463 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} -- 2.20.1