diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 4297210..e90b0d0 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -140,8 +140,9 @@ $routes->get('dashboard', 'Users::dashboard'); // Model // $routes->get('bike_model_index/(:any)', 'Model::index/$1'); + $routes->post('create_model', 'Model::create_model'); $routes->get('delete_model/(:any)', 'Model::delete_model/$1'); - $routes->post('create_model/(:any)', 'Model::create_model/$1'); + // $routes->post('create_model/(:any)', 'Model::create_model/$1'); $routes->post('status_model', 'Model::status_model'); // Model End's// diff --git a/app/Controllers/Jobcard.php b/app/Controllers/Jobcard.php index 652bc70..864987b 100644 --- a/app/Controllers/Jobcard.php +++ b/app/Controllers/Jobcard.php @@ -54,6 +54,27 @@ class Jobcard extends BaseController return view('jobs_list',$data); } + public function getCurrentFinancialYear() { + // Get the current month and year + $currentMonth = date('n'); + $currentYear = date('Y'); + + // Determine the start date of the financial year + if ($currentMonth >= 4) { + $startYear = $currentYear; + } else { + $startYear = $currentYear - 1; + } + + // Determine the end date of the financial year + $endYear = $startYear + 1; + + // Format the financial year string + $financialYear = $startYear . '/' . substr($endYear, -2); + + return $financialYear; + } + public function download_jobcard_invoice($job_card_id) { $data['vehicle'] = $this->JobcardModel->get_jobcard_vehicle_details($job_card_id); @@ -67,16 +88,18 @@ class Jobcard extends BaseController if($data['job_card'][0]['inv_no'] == '') { /** GENERATE INV NO */ - $uniqueId = sprintf('%06d', mt_rand(0, 999999)); - $date = date('Ymdhms'); - $invoiceNumber = 'INV' . '-' . $date . $uniqueId; + $count = $this->JobcardModel->where('status', 'Paid')->countAllResults(); + $formattedCount = str_pad($count+1, 5, '0', STR_PAD_LEFT); + $currentFinancialYear = $this->getCurrentFinancialYear(); + $invoiceNumber = 'MECH-' . $currentFinancialYear. '/' . $formattedCount; $this->JobcardModel->update($job_card_id,['inv_no' => $invoiceNumber]); $data['job_card'][0]['inv_no'] = $invoiceNumber; } $servicedata = $this->JobcardModel->get_jobcard_service($job_card_id); $complaintdata = $this->JobcardModel->get_jobcard_complaint($job_card_id); - $labourcost = array_merge($servicedata, $complaintdata); + $customcomplaintdata = $this->JobcardModel->get_jobcard_custom_complaint($job_card_id); + $labourcost = array_merge($servicedata, $complaintdata,$customcomplaintdata); /** CALCULATE LABOURCOST WITH TAX */ $totalAmount = 0; $totalTax = 0; @@ -129,7 +152,7 @@ class Jobcard extends BaseController // Generate the PDF content (HTML) with data $html = view('invoice_pdf_template_jobcard', $data); -echo $html;die; +// echo $html;die; // Load HTML into the mPDF instance $mpdf->WriteHTML($html); diff --git a/app/Controllers/Model.php b/app/Controllers/Model.php index 148b1b2..c6646c6 100644 --- a/app/Controllers/Model.php +++ b/app/Controllers/Model.php @@ -13,7 +13,8 @@ class Model extends BaseController public $session; use ResponseTrait; - + public $BikemodelsModel; + public $BikemakeModel; public function __construct() { @@ -58,7 +59,7 @@ class Model extends BaseController } - public function create_model($model_id) + public function create_model() { try { $make_id = $this->request->getPost('make_id'); @@ -70,7 +71,7 @@ class Model extends BaseController 'model_name' => $model_name ]; - if (!$model_id) { + // if (!$model_id) { try { $inserted = $BikemodelsModel->insert($data); @@ -80,23 +81,24 @@ class Model extends BaseController } if ($inserted) { $result = $data; - $model_list = $BikemodelsModel->where('make_id',$make_id)->orderBy('make','asc')->findAll(); + $model_list = $BikemodelsModel->where('make_id',$make_id)->orderBy('make_id','asc')->findAll(); return $this->respond(['status' => 'success','code' => 200,'data' => $result,'model_list'=>$model_list],200); } else { $result = "No Match's"; return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); } - }else{ - $updated = $BikemodelsModel->update($model_id ,$data); - if ($updated) { - $result = $data; - return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); - } else { - $result = "No Match's"; - return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); - } - } + // } + // else{ + // $updated = $BikemodelsModel->update($model_id ,$data); + // if ($updated) { + // $result = $data; + // return $this->respond(['status' => 'success','code' => 200,'data' => $result],200); + // } else { + // $result = "No Match's"; + // return $this->respond(['status' => 'failed','code' => 404,'data' => $result],404); + // } + // } } catch (\Exception $exception) { return $this->respond(['status' => 'failed','code' => 500,'data' => $exception],500); diff --git a/app/Controllers/Sales.php b/app/Controllers/Sales.php index 544a93c..fe841cd 100644 --- a/app/Controllers/Sales.php +++ b/app/Controllers/Sales.php @@ -424,7 +424,7 @@ public function delete_sales_product() $vehicleData = $VehicleModel->where('vehicle_id',$id)->first(); // If insertion succeeds, return success response - return $this->response->setJSON(['success' => true, 'message' => 'Client saved successfully.','vehicleData'=>$vehicleData]); + return $this->response->setJSON(['success' => true, 'message' => 'Client saved successfully.','vehicleData'=>$vehicleData, 'vehicle_id' => $id]); } else { // If insertion fails, return error response return $this->response->setJSON(['success' => false, 'message' => 'Failed to save client.']); diff --git a/app/Models/JobcardModel.php b/app/Models/JobcardModel.php index ebc91b0..59f3cc1 100644 --- a/app/Models/JobcardModel.php +++ b/app/Models/JobcardModel.php @@ -98,6 +98,15 @@ class JobcardModel extends Model return $this->findAll(); } + public function get_jobcard_custom_complaint($job_id) + { + $this->select('job_card.*, job_card_custom_complaint.*, job_card_custom_complaint.name as product_name, job_card_custom_complaint.labour_cost as labour_amount'); + $this->join('job_card_custom_complaint', 'job_card_custom_complaint.job_card_id = job_card.job_card_id'); + $this->where('job_card.isactive', 1); + $this->where('job_card.job_card_id', $job_id); + return $this->findAll(); + } + public function get_jobcard_labourcost($job_id) { $this->select('job_card.*, job_card_service.job_card_id, job_card_service.service_id, job_card_complaint.job_card_id, job_card_complaint.complaint_id, services.labour_cost, complaints.labour_charge,services.tax ,complaints.tax, services.labour_cost, complaints.labour_charge'); diff --git a/app/Views/invoice_pdf_template_jobcard.php b/app/Views/invoice_pdf_template_jobcard.php index ba84884..52cd97f 100644 --- a/app/Views/invoice_pdf_template_jobcard.php +++ b/app/Views/invoice_pdf_template_jobcard.php @@ -241,9 +241,9 @@ p { - + - nos + % diff --git a/app/Views/job_card_form.php b/app/Views/job_card_form.php index 6cd7111..f386c03 100644 --- a/app/Views/job_card_form.php +++ b/app/Views/job_card_form.php @@ -72,8 +72,8 @@
- - + +
@@ -176,21 +176,12 @@
- +
-

Terms & Condition :


-
-
- - -
-
@@ -267,7 +258,7 @@
- +
@@ -429,7 +420,7 @@ $(document).ready(async function() { function editlabourcost(data,cls) { total_wih_tax = parseInt(data.labour_cost) + (parseInt(data.labour_cost) * (data.tax / 100)); total_tax_amt = total_wih_tax - parseInt(data.labour_cost); - var newRow = '' + + var newRow = '' + '' + '' + '' + @@ -452,7 +443,7 @@ $(document).ready(async function() { console.log(total_wih_tax); total_tax_amt = total_wih_tax - ( parseInt(product.amount) * product.qty); var newRow = ` - + ' + '' + @@ -1050,11 +1071,21 @@ $(document).ready(async function() { productarray = ; console.log(productarray); } - var newRow = '' + @@ -1076,14 +1107,27 @@ $(document).ready(async function() { $('#addService').click(function() { if ($('#vehicle_name').val()) { - servicearray = ; - // console.log(servicearray); + + selected_pr = []; + $('tr.service_class').each(function() { + var rowProductid = $(this).find('.service').val(); + selected_pr.push(rowProductid); + }); + + if(servicearray.length == 0) + { + servicearray = ; + } + console.log(servicearray); var newRow = ' ' + @@ -1119,13 +1163,22 @@ $(document).ready(async function() { }); $('#addcomplaint').click(function() { + selected_pr = []; + $('tr.complaint_class').each(function() { + var rowProductid = $(this).find('.complaint').val(); + selected_pr.push(rowProductid); + }); + complaint = ; var newRow = ' ' + @@ -1165,12 +1218,12 @@ $(document).ready(async function() { $('#addCustomComplaint').click(function() { complaint = ; - var newRow = ' ' + + var newRow = ' ' + '' + '' + '' + '' + - '' + + '' + '' + '' + '
'+ @@ -1192,7 +1245,7 @@ $(document).ready(async function() { '' + '' + '' + - '' + + '' + '' + '' + ''; @@ -1430,8 +1483,21 @@ $(document).ready(async function() { var ifStatementCondition = "createclientName !== '' && createclientMobile !== '' && createclientType !== '' && reg_no !== '' && model !== '' && make !== ''"; } + if(createclientMobile) { + var clientArray = ; + console.log(clientArray); + var mobileIdExists = clientArray.some(function(client) { + return client.mobile_no.trim() === createclientMobile.trim(); + }); + + if(mobileIdExists) { + toastr.warning("Mobile Number Already Added!"); + return; + } + } if (reg_no) { + $('#saveVehcileBtn').prop('disabled', true); $.ajax({ url: '', // URL to your controller method for fetching models type: 'POST', @@ -1441,6 +1507,7 @@ $(document).ready(async function() { if (response) { $('#reg_no').val(""); toastr.warning("Register Number Already Added!"); + $('#saveVehcileBtn').prop('disabled', false); }else{ if( eval(ifStatementCondition) ){ @@ -1464,20 +1531,24 @@ $(document).ready(async function() { if (response.success) { $('#addVehicleModal').modal('hide'); toastr.success("Vehicle saved successfully!"); + localStorage.setItem('vehicle_id',response.vehicle_id) window.location.reload(); } else { toastr.warning("Failed to save vehicle. Please try again"); + $('#saveVehcileBtn').prop('disabled', false); } }, error: function(xhr, status, error) { console.error('Error occurred while saving vehicle:', error); toastr.warning("Failed to save vehicle. Please try again"); + $('#saveVehcileBtn').prop('disabled', false); } }); }else{ toastr.warning("Please Fill All Data"); + $('#saveVehcileBtn').prop('disabled', false); } } @@ -1498,6 +1569,7 @@ $(document).ready(async function() { }); }); +