FIX_BDS_BULK_UPLOAD_AND_BDS_FLOW
This commit is contained in:
parent
993eebf4eb
commit
e19abc0ebb
@ -5256,12 +5256,20 @@ class EmpDataServiceController extends BaseController
|
||||
|
||||
return ['status' => "Success", 'message' => "Policy transaction entry created successfully", 'data' => ['params' => $params, 'insert_id' => $insert_id]];
|
||||
} catch (\Throwable $e) {
|
||||
|
||||
$errorDetails = [
|
||||
'error_message' => $e->getMessage(),
|
||||
'file' => $e->getFile(),
|
||||
'line' => $e->getLine(),
|
||||
'stack_trace' => $e->getTraceAsString(),
|
||||
];
|
||||
|
||||
$this->myLogger->logme("error", "Exception occurred in makeEntryForBDSPolicyTransaction(): " . json_encode([
|
||||
'error' => $e->getMessage(),
|
||||
'trace' => $e->getTraceAsString()
|
||||
]));
|
||||
|
||||
return ['status' => "Error", 'message' => "An unexpected error occurred", 'data' => ['error' => $e]];
|
||||
return ['status' => "Error", 'message' => "An unexpected error occurred", 'data' => $errorDetails];
|
||||
}
|
||||
}
|
||||
|
||||
@ -5420,11 +5428,11 @@ class EmpDataServiceController extends BaseController
|
||||
$policy_no = trim($params['policy_no']);
|
||||
|
||||
// Base query
|
||||
$policy_transaction_data = $this->policyTransactionModel->where('is_active', 1)->where('TRIM(policy_no)', $policy_no, false);
|
||||
$policy_transaction_data = $this->policyTransactionModel->where('is_active', 1)->where('TRIM(policy_no)', $policy_no);
|
||||
|
||||
// Add endorsement condition only if not inception
|
||||
if ($params['action_type'] !== "inception") {
|
||||
$policy_transaction_data = $policy_transaction_data ->where('TRIM(endorsement_no)', trim($params['endorsement_no']), false);
|
||||
$policy_transaction_data = $policy_transaction_data ->where('TRIM(endorsement_no)', trim($params['endorsement_no']));
|
||||
}
|
||||
|
||||
$policy_transaction_data = $policy_transaction_data->first();
|
||||
|
||||
@ -3763,7 +3763,7 @@
|
||||
$data['page_name'] = "BDS Bulk File Upload";
|
||||
$data['tab_name'] = "BDS File Upload";
|
||||
|
||||
// $response = $this->insertBulkBdsData(['file_id' => 2]);
|
||||
// $response = $this->insertBulkBdsData(['file_id' => 17]);
|
||||
// dd($response);
|
||||
|
||||
|
||||
@ -4163,62 +4163,10 @@
|
||||
|
||||
$gst_amt = calculate_gst_amount($row) ?? null;
|
||||
|
||||
$vehicle_id = '';
|
||||
$client_id = '';
|
||||
foreach ($vehicle_data as $vehicles) {
|
||||
if($vehicles['vehicle_no'] == $vehicle_number){
|
||||
$vehicle_id = $vehicles['id'];
|
||||
$client_id = $vehicles['owner'];
|
||||
}
|
||||
}
|
||||
|
||||
$second_stage_client_id = '';
|
||||
if(empty($vehicle_id) && empty($client_id)){
|
||||
foreach ($client_data as $clients) {
|
||||
if($clients['email'] == $client_email){
|
||||
$second_stage_client_id = $clients['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(empty($second_stage_client_id)){
|
||||
|
||||
$client_insert_data = [
|
||||
'client_name' => $client_name,
|
||||
'short_name' => $client_name,
|
||||
'email' => $client_email,
|
||||
'entity_type_id' => 7,
|
||||
'client_type' => 2,
|
||||
];
|
||||
|
||||
$client_id = $this->clientModel->insert($client_insert_data);
|
||||
|
||||
if($client_id){
|
||||
|
||||
// Pattern: 2 letters + 2 digits
|
||||
// if (preg_match('/^([A-Z]{2})([0-9]{2})/i', $vehicle_number, $matches)) {
|
||||
// $vehicle_state = strtoupper($matches[1]); // TN
|
||||
// $vehicle_state_code = $matches[2]; // 10
|
||||
// } else {
|
||||
// $vehicle_state = null;
|
||||
// $vehicle_state_code = null;
|
||||
// }
|
||||
|
||||
// $matched_rto_id = ($m = array_values(array_filter($rto_master, fn($r) => strtoupper($r['rto_state']) === $vehicle_state && (int)$r['rto_code'] === (int)$vehicle_state_code)))[0]['id'] ?? null;
|
||||
|
||||
$matched_rto_id = check_rto_data($row, $rto_master);
|
||||
$vehicle_type_id = check_vehicle_type($row, $vehicle_type_data);
|
||||
|
||||
$vehicle_insert_data = [
|
||||
'vehicle_no' => $vehicle_number,
|
||||
'vehicle_type' => $vehicle_type_id['vehicle_type']['id'] ?? null,
|
||||
'owner' => $client_id,
|
||||
'rto_id' => $matched_rto_id['rto_data']['id'] ?? null,
|
||||
];
|
||||
|
||||
$vehicle_id = $this->vehicleModel->insert($vehicle_insert_data);
|
||||
}
|
||||
}
|
||||
// get the client and vehicle id
|
||||
$vehicle_and_client_ids = $this->getClientAndVehicleId($row, $vehicle_data, $client_data, $rto_master, $vehicle_type_data);
|
||||
$vehicle_id = $vehicle_and_client_ids['vehicle_id'] ?? null;
|
||||
$client_id = $vehicle_and_client_ids['client_id'] ?? null;
|
||||
|
||||
$policy_transaction_data = [
|
||||
|
||||
@ -4366,6 +4314,10 @@
|
||||
$this->myLogger->logme("error", '{file_id} uploaded failed', ['file_id' => $file_id]);
|
||||
} else{
|
||||
$result = count($pt_ids);
|
||||
$status = 'success';
|
||||
$failure_reason = ((json_encode($result)));
|
||||
$this->bdsDumpModel->where('id', $file_id)->set(['status' => $status, 'reason' => $failure_reason])->update();
|
||||
$this->myLogger->logme("error", '{file_id} uploaded success', ['file_id' => $file_id]);
|
||||
}
|
||||
|
||||
return $result;
|
||||
@ -4528,4 +4480,92 @@
|
||||
echo view('errors/html/production');
|
||||
}
|
||||
}
|
||||
|
||||
public function getClientAndVehicleId($row, $vehicle_data, $client_data, $rto_master, $vehicle_type_data)
|
||||
{
|
||||
$vehicle_number = trim($row[2]);
|
||||
$client_name = trim($row[5]);
|
||||
$client_email = trim($row[6]);
|
||||
|
||||
$vehicle_id = null;
|
||||
$client_id = null;
|
||||
|
||||
// -------------------------------------------
|
||||
// 1. First Stage: Check if vehicle already exists
|
||||
// -------------------------------------------
|
||||
foreach ($vehicle_data as $v) {
|
||||
if (strcasecmp(trim($v['vehicle_no']), $vehicle_number) === 0) {
|
||||
$vehicle_id = $v['id'];
|
||||
$client_id = $v['owner'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------
|
||||
// 2. Second Stage: Vehicle not found -> check client by email
|
||||
// -------------------------------------------
|
||||
$second_stage_client_id = null;
|
||||
|
||||
if (empty($vehicle_id) && empty($client_id)) {
|
||||
|
||||
foreach ($client_data as $c) {
|
||||
if (strcasecmp(trim($c['email']), $client_email) === 0) {
|
||||
$second_stage_client_id = $c['id'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($second_stage_client_id)) {
|
||||
|
||||
// Existing client – Insert vehicle
|
||||
$matched_rto_id = check_rto_data($row, $rto_master);
|
||||
$vehicle_type_id = check_vehicle_type($row, $vehicle_type_data);
|
||||
|
||||
$vehicle_insert = [
|
||||
'vehicle_no' => $vehicle_number,
|
||||
'vehicle_type' => $vehicle_type_id['vehicle_type']['id'] ?? null,
|
||||
'owner' => $second_stage_client_id,
|
||||
'rto_id' => $matched_rto_id['rto_data']['id'] ?? null,
|
||||
];
|
||||
|
||||
$vehicle_id = $this->vehicleModel->insert($vehicle_insert);
|
||||
$client_id = $second_stage_client_id;
|
||||
} else {
|
||||
|
||||
// -------------------------------------------
|
||||
// 3. Third Stage: No existing client → Insert new client then insert vehicle
|
||||
// -------------------------------------------
|
||||
$client_insert = [
|
||||
'client_name' => $client_name,
|
||||
'short_name' => $client_name,
|
||||
'email' => $client_email,
|
||||
'entity_type_id' => 7,
|
||||
'client_type' => 2,
|
||||
];
|
||||
|
||||
$client_id = $this->clientModel->insert($client_insert);
|
||||
|
||||
if ($client_id) {
|
||||
|
||||
$matched_rto_id = check_rto_data($row, $rto_master);
|
||||
$vehicle_type_id = check_vehicle_type($row, $vehicle_type_data);
|
||||
|
||||
$vehicle_insert = [
|
||||
'vehicle_no' => $vehicle_number,
|
||||
'vehicle_type' => $vehicle_type_id['vehicle_type']['id'] ?? null,
|
||||
'owner' => $client_id,
|
||||
'rto_id' => $matched_rto_id['rto_data']['id'] ?? null,
|
||||
];
|
||||
|
||||
$vehicle_id = $this->vehicleModel->insert($vehicle_insert);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return [
|
||||
'client_id' => $client_id,
|
||||
'vehicle_id' => $vehicle_id,
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -52,18 +52,17 @@
|
||||
<td><?php echo change_date_format($file['created_at'], 'Y-m-d H:i:s', 'd M Y h:i A') . ' by <strong>' . $file['user_name'] . '</strong>' ?> </td>
|
||||
<td>
|
||||
<?php if ($file['status'] == "failed") { ?>
|
||||
<span style="color : #BD0707 ;"> <?= $file['status'] ?> </span>
|
||||
<span> <?= $file['status'] ?> </span>
|
||||
<span class='col-xl-3 col-lg-4 col-sm-6'>
|
||||
<!-- <a href="<?= base_url('util/bds_dump_excel_error/') . $file['file_id'] ?>" target="_blank" class='fe-alert-circle' data-err="<?= $file['file_id'] ?>"></a> -->
|
||||
<a href="#" class='fe-alert-circle' onclick="fetchFileError(<?= $file['file_id'] ?>)"></a>
|
||||
</span>
|
||||
<?php } else if ($file['status'] == "inprogress") { ?>
|
||||
<a data-id="<?= $file['status'] ?>" class="reload" href="#"
|
||||
style="color : #938e04ff ;">
|
||||
<a data-id="<?= $file['status'] ?>" class="reload" href="#">
|
||||
<?= $file['status'] ?>
|
||||
</a>
|
||||
<?php } else { ?>
|
||||
<span style="color : #34A853 ;"> <?= $file['status'] ?> </span>
|
||||
<span> <?= $file['status'] ?> </span>
|
||||
<?php } ?>
|
||||
</td>
|
||||
<td>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user