CHANGE_Retails Endrosement 4

This commit is contained in:
venba-Inspriron-3558 2025-09-10 11:05:35 +05:30
parent fc2981c9a3
commit 56c501918a
4 changed files with 120 additions and 66 deletions

View File

@ -184,8 +184,8 @@ $routes->group("/employee", ["filter" => "authMVC"], function ($routes) {
$routes->post("test-rack-rate", "EmployeeController::testRackRate");
$routes->get('test_members_list', 'EmployeeController::test_members_list');
$routes->post('get_emp_history','EmployeeController::getEmpHistory');
// $routes->get("retail-endorsement-list", "EmployeeController::retailendorsementlist");
// $routes->post("retail-endorsement-save", "EmployeeController::retailendorsementsave");
$routes->get("retail-endorsement-list", "EmployeeController::retailendorsementlist");
$routes->post("retail-endorsement-save", "EmployeeController::retailendorsementsave");
});

View File

@ -3016,6 +3016,74 @@ class EmployeeController extends AdminController
* This method retrieves filter data from the request and fetches the endorsement list
* based on the provided filters such as client ID, policy ID, and status.
*/
public function retailendorsementlist()
{
$data = [];
$data['status'] = ['open' => 'Open', 'inprogress' => 'In-Progress', 'complete' => 'Complete'];
$data['client'] = $this->clientModel->select('clients.id,client_name,short_name')
->where('clients.is_active',1)
->where('clients.client_type',2)
->findAll();
$data['insurer'] = $this->insurerModel->select('insurers.id,name,short_name')
->where('insurers.is_active',1)
->findAll();
// if (count($this->request->getGet())) {
$filterData = $this->request->getGet();
$data['employees'] = $this->partnerEndorsementRequestModel->getRetailEndorsementList(
client_id: $filterData['client_id'] ?? null,
insurers_id: $filterData['insurer_id'] ?? null,
status: $filterData['status'] ?? null
);
$data['getData'] = $filterData;
// echo "<pre>";
// print_r($data); die;
// }
$this->loadLayout('retail_endorsement_list', $data);
}
public function retailendorsementsave()
{
try {
$data = $this->request->getPost();
if (!empty($data['id'])) {
$text = "update";
$updateID = $data['id'];
$result = $this->partnerEndorsementRequestModel->where('id', $updateID)->set($data)->update();
} else {
$text = "create";
$data['created_by'] = get_session_userid();
$this->thzMasterModel->insert($data);
$insertID = $this->partnerEndorsementRequestModel->insertID();
$result = true;
}
$id = isset($insertID) && !empty($insertID) ? $insertID : $updateID;
return $this->response->setJSON([
'status' => $result ? 'success' : 'error',
'message' => $result ? "Partner Endorsement Request {$text}d successfully " : "Unable to {$text} Partner Endorsement Request. Please try again.",
])->setStatusCode($result ? 200 : 400);
} catch (\Throwable $e) {
$code = ($e->getCode() && $e->getCode() >= 100 && $e->getCode() < 600) ? $e->getCode() : 500;
$isDbError = $e instanceof \CodeIgniter\Database\Exceptions\DatabaseException
|| $e instanceof \mysqli_sql_exception
|| $e instanceof \PDOException;
$context = ['title' => get_class($e), 'type' => get_class($e), 'code' => $code, 'message' => $e->getMessage(), 'file' => $e->getFile(), 'line' => $e->getLine()];
$this->myLogger->logme('error', "Exception: {message} in {file} on line {line}", $context, 0);
return $this->response->setJSON([
'status' => 'error',
'message' => $isDbError ? 'Data Access Error' : $e->getMessage(),
'ref' => $isDbError ? 'database - ' : 'application - ' . $code . ' - ' . $e->getLine()
])->setStatusCode($code);
}
}
}

View File

@ -1451,6 +1451,9 @@
<li>
<a href="<?= base_url('/employee/test_members_list') ?>">Test Members List</a>
</li>
<li>
<a href="<?= base_url('/employee/retail-endorsement-list') ?>">Retail Endorsement</a>
</li>
</ul>
</div>
</li>

View File

@ -12,6 +12,18 @@
position: relative;
left: 79px;
}
.emp_data_model {
font-size: 17px; /* keep fixed size */
color: #555 !important;
cursor: pointer;
transition: transform 0.2s, color 0.2s; /* smooth hover effect */
display: inline-block; /* important for transform */
}
.emp_data_model:hover {
color: #00999E !important;
transform: scale(1.5);
}
</style>
<div class="container-fluid">
@ -33,11 +45,11 @@
<label>Client</label> <br />
<select class="form-control" id="clients">
<option value="0">Select</option>
<!-- <?php foreach ($client as $key => $value) { ?>
<option value="<?= $value['id'] ?>" <?= (isset($getData) && $getData['client_id'] == $value['id']) ? 'selected' : '' ?>>
<?php foreach ($client as $key => $value) { ?>
<option value="<?= $value['id'] ?>" <?= (($getData['client_id'] ?? '') == $value['id']) ? 'selected' : '' ?>>
<?= $value['client_name'] . (!empty($value['short_name']) ? ' ( ' . $value['short_name'] . ' )' : '') ?>
</option>
<?php } ?> -->
<?php } ?>
</select>
</div>
@ -45,11 +57,11 @@
<label>Insurer</label> <br />
<select class="form-control" id="insurer">
<option value="0">Select</option>
<!-- <?php foreach ($insurer as $key => $value) { ?>
<option value="<?= $value['id'] ?>" <?= (isset($getData) && $getData['client_id'] == $value['id']) ? 'selected' : '' ?>>
<?php foreach ($insurer as $key => $value) { ?>
<option value="<?= $value['id'] ?>" <?= (($getData['insurer_id'] ?? '') == $value['id']) ? 'selected' : '' ?>>
<?= $value['name'] . (!empty($value['short_name']) ? ' ( ' . $value['short_name'] . ' )' : '') ?>
</option>
<?php } ?> -->
<?php } ?>
</select>
</div>
@ -58,7 +70,7 @@
<select class="form-control" id="status1">
<option value="0">Select</option>
<?php foreach ($status as $key => $value) { ?>
<option value="<?= $key ?>" <?= (isset($getData) && $getData['status'] == $key) ? 'selected' : '' ?>>
<option value="<?= $key ?>" <?= (($getData['status'] ?? '') == $key) ? 'selected' : '' ?>>
<?= $value ?>
</option>
<?php } ?>
@ -85,9 +97,8 @@
<div class="card-body">
<div class="row" style="padding-bottom: 10px;">
<div class="col-6" style="align-self: center;">
<h4 style="position: relative;">Endorsement List</h4>
<h4 style="position: relative;">Endorsement</h4>
</div>
</div>
<table data-custom-table-css="table" class="table table-hover m-0 table-centered dt-responsive w-100" cellspacing="0" id="tickets-table">
<thead class="bg-light">
@ -111,16 +122,20 @@
if (isset($employees)) {
foreach ($employees as $key => $employee) { ?>
<tr>
<td><b><?php echo ($key + 1) ?></b></td>
<td><?php echo $employee['policy_number'] ?></td>
<td><?php echo $employee['endorsement_no'] ?></td>
<td><?php echo $employee['endorsement_description'] ?></td>
<td><?php echo $employee['insurer_name'] .' ( '. $employee['insurer_short_name'] .' ) ' ?></td>
<td><?php echo $employee['client_name'] .' ( '. $employee['client_short_name'] .' ) ' ?></td>
<td><?php echo $employee['agent_name'] ?></td>
<td><?php echo $employee['manager_name'] ?></td>
<td><?php echo $employee['created_at'] ?></td>
<td><?php if ($employee['status'] == 'open') {
<td class="text-center"><b><?php echo ($key + 1) ?></b></td>
<td class="text-center"><?php echo $employee['policy_number'] ?></td>
<td class="text-center"><?php echo $employee['endorsement_no'] ?></td>
<td class="text-center"><?php echo $employee['endorsement_description'] ?></td>
<td class="text-center"><?php echo $employee['client_name'] ? $employee['client_name'] .' ( '. $employee['client_short_name'] .' ) ' : 'N/A' ?></td>
<td class="text-center"><?php echo $employee['insurer_name'] ? $employee['insurer_name'] .' ( '. $employee['insurer_short_name'] .' ) ' : 'N/A' ?></td>
<td class="text-center"><?php echo $employee['agent_name'] ?? 'N/A' ?></td>
<td class="text-center"><?php echo $employee['manager_name'] ?? 'N/A' ?></td>
<td class="text-center"><?php if (!empty($employee['created_at'])):
$cd = date("j F Y", strtotime($employee['created_at']));
$ct = date("h:i a", strtotime($employee['created_at']));
echo $cd . "<br><span class='time'> " . $ct . "</span>";
endif; ?></td>
<td class="text-center"><?php if ($employee['status'] == 'open') {
echo '<span class="badge badge-primary">' . $employee['status'] . '</span>';
} elseif ($employee['status'] == 'inprogress') {
echo '<span class="badge badge-warning">' . $employee['status'] . '</span>';
@ -130,7 +145,7 @@
?>
</td>
<td class="text-center"><a href="#" data-id="<?php echo $employee['id'] ?>" data-eno="<?php echo $employee['endorsement_no'] ?>" data-status="<?php echo $employee['status'] ?>"
class="mdi mdi-eye emp_data_model" aria-hidden="true" data-toggle="modal" data-target="#centermodal"></a>
class="mdi mdi-pencil text-muted vertical-middle emp_data_model" aria-hidden="true" data-toggle="modal" data-target="#centermodal"></a>
</td>
</tr>
<?php }
@ -184,7 +199,7 @@
<div class="modal-footer">
<button class="btn app-btn-outline-secondary mr-2 " type="button" data-dismiss="modal" aria-hidden="true">Cancel</button>
<button class="btn app-btn-secondary waves-effect waves-light" id="btnSubmit">Submit</button>
<button type="submit" class="btn app-btn-secondary" id="btnSubmit" onclick="submitRetailEndorsement(event)">Save</button>
</div>
</form>
</div>
@ -199,47 +214,14 @@
$("#insurer").select2();
});
var client_id = '<?= isset($getData) ? $getData['client_id'] : '0' ?>';
var insurer_id = '<?= isset($getData) ? $getData['insurer_id'] : '0' ?>';
var status_id = '<?= isset($getData) ? $getData['status'] : '0' ?>';
var client_id = '<?= $getData['client_id'] ?? '' ?>';
var insurer_id = '<?= $getData['insurer_id'] ?? '' ?>';
var status_id = '<?= $getData['status'] ?? '' ?>';
$(window).on("load", function() {
console.log("window loaded");
appendClients();
appendInsurer();
});
function appendClients() {
let data = <?= json_encode($client) ?>;
var clientID = <?= isset($getData) ? $getData['client_id'] : '0' ?>;
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.client_name
});
if (clientID == item.id) {
option.attr('selected', true);
}
$('#clients').append(option);
});
}
function appendInsurer() {
let data = <?= json_encode($insurer) ?>;
var insurerID = <?= isset($getData) ? $getData['insurer_id'] : '0' ?>;
$.each(data, function(index, item) {
var option = $('<option>', {
value: item.id,
text: item.name
});
if (insurerID == item.id) {
option.attr('selected', true);
}
$('#insurer').append(option);
});
}
// Function to convert object to query parameters
function objectToQueryString(obj) {
@ -282,26 +264,27 @@
});
function submitRetailEndorsement() {
function submitRetailEndorsement(e) {
e.preventDefault(); // stop normal form submit
var form = document.getElementById("retailEndorsementForm");
var id = form.querySelector("[name='id']").value;
var formData = new FormData(form);
form.classList.remove('was-validated');
var btn = document.querySelector("button[onclick='submitRetailEndorsement()']");
var btn = document.getElementById("btnSubmit");
btn.disabled = true;
btn.innerText = "Saving...";
var ticketType = document.getElementById('ticket_type').value.trim();
if (ticketType === "") {
var endorsement_no = document.getElementById('endorsement_no').value.trim();
var edit_status = document.getElementById('edit_status').value.trim();
if (endorsement_no === "" || edit_status === "") {
toastr.warning('Please fill all required fields.', 'Warning');
form.classList.add('was-validated');
return;
}
$.ajax({
url: "<?= base_url('retail-endorsement-save') ?>",
url: "<?= base_url('/employee/retail-endorsement-save') ?>",
type: "POST",
data: formData,
processData: false,