FIX_75. The system should allow the same HR contact to be linked with different corporates, instead of restricting them to just one.
This commit is contained in:
parent
1d9bc397a7
commit
2dc2447fb6
@ -172,6 +172,7 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) {
|
|||||||
|
|
||||||
$routes->group("others", ["filter" => "authMVC"], function ($routes) {
|
$routes->group("others", ["filter" => "authMVC"], function ($routes) {
|
||||||
$routes->post("create", "ClientController::createOtherTabContent");
|
$routes->post("create", "ClientController::createOtherTabContent");
|
||||||
|
$routes->post('check-duplicate', 'ClientController::validateDuplicateByClientBranch');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -132,6 +132,15 @@ class ClientController extends AdminController
|
|||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
public function validateDuplicateByClientBranch()
|
||||||
|
{
|
||||||
|
$request = service('request');
|
||||||
|
$value = $request->getPost('value');
|
||||||
|
$clientId = $request->getPost('client_id');
|
||||||
|
$branchId = $request->getPost('branch_id');
|
||||||
|
$isDuplicate = $this->clientModel->isDuplicateByClientBranch($value, $clientId, $branchId);
|
||||||
|
return $this->response->setJSON(['isDuplicate' => $isDuplicate]);
|
||||||
|
}
|
||||||
public function checkDuplicateTableFieldValue()
|
public function checkDuplicateTableFieldValue()
|
||||||
{
|
{
|
||||||
$table = $this->request->getPost('table');
|
$table = $this->request->getPost('table');
|
||||||
|
|||||||
@ -226,5 +226,18 @@ class ClientModel extends Model
|
|||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isDuplicateByClientBranch($email, $clientId, $branchId)
|
||||||
|
{
|
||||||
|
$builder = $this->db->table('level_contacts lc')
|
||||||
|
->select('lc.id')
|
||||||
|
->join('client_branch cb', 'lc.ref_id = cb.id', 'left')
|
||||||
|
->where('lc.email', $email)
|
||||||
|
->where('lc.contact_type', 'client')
|
||||||
|
->where('cb.client_id', $clientId)
|
||||||
|
->where('lc.ref_id', $branchId)
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return $builder->getNumRows() > 0 ? true : false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -649,7 +649,7 @@ function appendContactHtml(contact = false, reset = false) {
|
|||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label for="${uniqueId}_last_name">Email<span class="text-danger">*</span></label>
|
<label for="${uniqueId}_last_name">Email<span class="text-danger">*</span></label>
|
||||||
<input value="${contact !== undefined && contact !== false ? contact.email : ''}" type="text" class="form-control" placeholder="Enter Contact Email" name="email[]" id="${uniqueId}_email" data-parsley-trigger="change" data-parsley-type="email" onkeyup="validateInput(this, 'level_contacts', 'email', 'branchBtnSubmit')" required>
|
<input value="${contact !== undefined && contact !== false ? contact.email : ''}" type="text" class="form-control" placeholder="Enter Contact Email" name="email[]" id="${uniqueId}_email" data-parsley-trigger="change" data-parsley-type="email" onkeyup="validateDuplicateByClientBranch(this, 'branchBtnSubmit')" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label for="${uniqueId}_mobile">Mobile<span class="text-danger">*</span></label>
|
<label for="${uniqueId}_mobile">Mobile<span class="text-danger">*</span></label>
|
||||||
@ -972,6 +972,57 @@ function validateInput(input, table, field, submitButId){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validateDuplicateByClientBranch(input, submitButId) {
|
||||||
|
let value = $(input).val().trim();
|
||||||
|
let clientId = $('#client_id_branch').val();
|
||||||
|
let branchId = $('#branch_id_primarykey').val();
|
||||||
|
console.log(`Ln968 cId: ${clientId} | bId: ${branchId}`);
|
||||||
|
|
||||||
|
// Don't forgot be careful
|
||||||
|
// 1 Local duplication check (User entered)
|
||||||
|
let isLocalDuplicate = false;
|
||||||
|
$('input[name="email[]"]').each(function() {
|
||||||
|
if (this !== input && $(this).val().trim() === value && value !== '') {
|
||||||
|
isLocalDuplicate = true;
|
||||||
|
return false; // break loop
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (isLocalDuplicate) {
|
||||||
|
console.log(`r u n Local`);
|
||||||
|
toastr.warning("Email is duplicate!", 'WARNING');
|
||||||
|
$('#' + submitButId).prop('disabled', true);
|
||||||
|
return; // don’t call server if duplicate in UI
|
||||||
|
}
|
||||||
|
|
||||||
|
// Don't forgot be careful
|
||||||
|
// 2 Server-side duplicate check (DB)
|
||||||
|
if (!isLocalDuplicate && value !== '') {
|
||||||
|
console.log(`r u n Server`);
|
||||||
|
$.ajax({
|
||||||
|
url: '<?= base_url("client/others/check-duplicate") ?>',
|
||||||
|
type: 'POST',
|
||||||
|
data: {
|
||||||
|
client_id: clientId,
|
||||||
|
branch_id: branchId,
|
||||||
|
value: value
|
||||||
|
},
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(response) {
|
||||||
|
if (response.isDuplicate) {
|
||||||
|
toastr.warning("Email already exists!", 'WARNING');
|
||||||
|
$('#' + submitButId).prop('disabled', true);
|
||||||
|
} else {
|
||||||
|
$('#' + submitButId).prop('disabled', false);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function(xhr, status, error) {
|
||||||
|
console.error('AJAX Error:', error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getContactsData() {
|
function getContactsData() {
|
||||||
const contacts = [];
|
const contacts = [];
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user