diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 56066c73..52b2a67f 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -1831,6 +1831,7 @@ class ClientController extends AdminController $this->myLogger->logme('error', 'Client branch EDIT function called'); $data = $this->request->getPost(); + $sanitized_post_data = sanitizeInputArrayAdvanced($data); $id = $sanitized_post_data['branch_id_primarykey'] ?? null; $client_id = $sanitized_post_data['client_id'] ?? null; @@ -1838,7 +1839,7 @@ class ClientController extends AdminController $data['pre_branch_id'] = $pre_branch_id; - $units = $sanitized_post_data['units'] ?? null; + $raw_units = $this->request->getPost('units'); $emp_unit_count = 0; $rr_unit_count = 0; @@ -1846,12 +1847,13 @@ class ClientController extends AdminController $total_count = 0; $list_of_branch_units = $this->clientBranchModel->find((int)$id); - $units = json_decode($list_of_branch_units['units']); + $units = !empty($list_of_branch_units['units']) ? json_decode($list_of_branch_units['units'], true) : []; if (!is_array($units) || empty($units)) { $client_data = $this->clientModel->where('id', $sanitized_post_data['client_id'])->first(); $default_unit = trim(($client_data['short_name'] ?? '') . '-' . ($sanitized_post_data['branch_code'] ?? ''), '-'); $sanitized_post_data['units'] = json_encode([$default_unit]); + $units = [$default_unit]; // Update local variable for counting } if (!empty($units)) { @@ -1866,17 +1868,21 @@ class ClientController extends AdminController $uncommonValues = []; + if ($total_count > 0) { - $units = (string) $sanitized_post_data('units'); // Assuming 'units' is an array + + $post_units_raw = $sanitized_post_data['units'] ?? '[]'; - $list_of_branch_units = $this->clientBranchModel->find((int)$id); - $branch_units = json_decode($list_of_branch_units['units'], true); - $units = json_decode($units); - - $uncommonValues = array_diff($branch_units, $units); + $branch_units = json_decode($list_of_branch_units['units'] ?? '[]', true); + + // Ensure we handle both string-json and array types + $incoming_units = is_array($post_units_raw) ? $post_units_raw : json_decode($post_units_raw, true); + + if (is_array($branch_units) && is_array($incoming_units)) { + $uncommonValues = array_diff($branch_units, $incoming_units); + } if (count($uncommonValues) > 0) { - $branchData = $this->clientBranchModel->where('client_id', $client_id)->findAll(); return $this->respond([ @@ -1888,7 +1894,7 @@ class ClientController extends AdminController ], 200); } } - + if (!isset($sanitized_post_data['sez'])) { $sanitized_post_data['sez'] = 0; } elseif ($sanitized_post_data['sez']) {