From 56b8012e4a0412210ab2d5f469f202b774809e12 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Wed, 5 Nov 2025 15:03:55 +0700 Subject: [PATCH] update join account --- app/Controllers/Organization/Account.php | 6 ++++-- app/Controllers/Zones.php | 12 ++++++++---- app/Database/Seeds/DummySeeder.php | 2 +- app/Database/Seeds/ValueSetSeeder.php | 2 +- app/Models/Organization/AccountModel.php | 19 +++++++++++++++++++ 5 files changed, 33 insertions(+), 8 deletions(-) diff --git a/app/Controllers/Organization/Account.php b/app/Controllers/Organization/Account.php index 9007ba4..5598d8c 100644 --- a/app/Controllers/Organization/Account.php +++ b/app/Controllers/Organization/Account.php @@ -18,7 +18,8 @@ class Account extends BaseController { } public function index() { - $rows = $this->model->findAll(); + //$rows = $this->model->findAll(); + $rows = $this->model->getAccounts(); if (empty($rows)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => [] ], 200); @@ -28,7 +29,8 @@ class Account extends BaseController { } public function show($AccountID = null) { - $rows = $this->model->where('AccountID', $AccountID)->findAll(); + //$rows = $this->model->where('AccountID', $AccountID)->findAll(); + $rows = $this->model->getAccount($AccountID); if (empty($rows)) { return $this->respond([ 'status' => 'success', 'message' => "no Data.", 'data' => [] ], 200); diff --git a/app/Controllers/Zones.php b/app/Controllers/Zones.php index 62ea9e1..30935b1 100644 --- a/app/Controllers/Zones.php +++ b/app/Controllers/Zones.php @@ -50,14 +50,18 @@ class Zones extends BaseController { } public function synchronize() { - $client = \Config\Services::curlrequest(); + $client = \Config\Services::curlrequest([ + 'headers' => [ + 'User-Agent' => 'Mozilla/5.0 (CI4 cURL Request)', + 'Accept' => 'application/json', + ], + ]); try { // Ambil data dari API pusat (CRM) - $response = $client->get('http://services-summit.my.id/api/zones'); - // $response = $client->get('http://crmcomposer.local/api/zones'); + $response = $client->get('https://services-summit.my.id/api/zones'); $result = json_decode($response->getBody(), true); - + if (!isset($result['data']) || !is_array($result['data'])) { return $this->response->setJSON([ 'status' => 'error', diff --git a/app/Database/Seeds/DummySeeder.php b/app/Database/Seeds/DummySeeder.php index 3cbe194..d0b3857 100644 --- a/app/Database/Seeds/DummySeeder.php +++ b/app/Database/Seeds/DummySeeder.php @@ -98,7 +98,7 @@ class DummySeeder extends Seeder { // Organization $data = [ [ 'AccountID' => 1, 'Parent' => null, 'AccountName' => 'Dummy Account', 'Initial'=>'QAC', 'Street_1'=>'Dummy Address', 'City'=>'Siti', 'Province'=>'Prop', - 'Zip'=>'505', 'Country'=>'Arab', 'AreaCode'=>'', 'EmailAddress1'=>'dummy@summit.co.id', 'Phone'=>'092029', 'Fax'=>'092029', 'CreateDate' => "$now" ] + 'ZIP'=>'505', 'Country'=>'Arab', 'AreaCode'=>'', 'EmailAddress1'=>'dummy@summit.co.id', 'Phone'=>'092029', 'Fax'=>'092029', 'CreateDate' => "$now" ] ]; $this->db->table('account')->insertBatch($data); diff --git a/app/Database/Seeds/ValueSetSeeder.php b/app/Database/Seeds/ValueSetSeeder.php index 4477701..df69ede 100644 --- a/app/Database/Seeds/ValueSetSeeder.php +++ b/app/Database/Seeds/ValueSetSeeder.php @@ -514,4 +514,4 @@ class ValueSetSeeder extends Seeder { ]; $this->db->table('valuesetdef')->insertBatch($data); } -} +} \ No newline at end of file diff --git a/app/Models/Organization/AccountModel.php b/app/Models/Organization/AccountModel.php index 53a00b6..8e82879 100644 --- a/app/Models/Organization/AccountModel.php +++ b/app/Models/Organization/AccountModel.php @@ -15,4 +15,23 @@ class AccountModel extends BaseModel { protected $useSoftDeletes = true; protected $deletedField = 'EndDate'; + public function getAccounts() { + $rows = $this->select('account.*, pa.AccountName as ParentName, zones.ZoneName as AreaName') + ->join('account pa', 'pa.AccountID=account.Parent', 'left') + ->join('zones', 'zones.zonecode=account.AreaCode', 'left') + ->findAll(); + return $rows; + } + + public function getAccount($AccountID) { + $rows = $this->select('account.*, pa.AccountName as ParentName, zones.ZoneName as AreaName, city.ZoneName as CityName, prov.ZoneName as ProvName, country.VValue as CountryName') + ->join('account pa', 'pa.AccountID=account.Parent', 'left') + ->join('zones', 'zones.zonecode=account.AreaCode', 'left') + ->join('zones city', 'city.zoneid=account.City', 'left') + ->join('zones prov', 'prov.zoneid=account.Province', 'left') + ->join('valueset country', 'country.VID=account.Country', 'left') + ->where('account.AccountID', $AccountID) + ->findAll(); + return $rows; + } }