From c2bbd80e14bd6eaaedbd578aab1624e9097802e3 Mon Sep 17 00:00:00 2001 From: VE10-Sanjeev Date: Mon, 30 Sep 2024 13:58:01 +0000 Subject: [PATCH] FIX_Preview Popup jobcard --- app/Config/Routes.php | 2 + app/Controllers/Jobcard.php | 86 ++++++++++++++++++++++++++++++++++ app/Views/jobs_list.php | 92 ++++++++++++++++++++++++++++++++++++- 3 files changed, 178 insertions(+), 2 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index b6cff28..15e5236 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -91,6 +91,8 @@ $routes->get('job_card_index/', 'Jobcard::job_card_index'); $routes->post("add_jobs", "Jobcard::add_jobs"); $routes->get("new_jobcard/(:any)", "Jobcard::new_jobcard/$1"); $routes->get("delete_jobcard/(:any)", "Jobcard::delete_jobcard/$1"); +$routes->get("preview_jobcard_invoice/(:any)", "Jobcard::preview_jobcard_invoice/$1"); +$routes->get("preview_jobcard/(:any)", "Jobcard::preview_jobcard/$1"); // $routes->post("delete_sales_product", "Jobcard::delete_sales_product"); $routes->get("download_jobcard_invoice/(:any)", "Jobcard::download_jobcard_invoice/$1"); // $routes->post("save_vehicle", "Jobcard::save_vehicle"); diff --git a/app/Controllers/Jobcard.php b/app/Controllers/Jobcard.php index acf8b8f..99e3a4c 100755 --- a/app/Controllers/Jobcard.php +++ b/app/Controllers/Jobcard.php @@ -25,10 +25,13 @@ use App\Models\RoleModel; use App\Models\JobcardFileModel; use Mpdf\Mpdf; use DateTime; +use CodeIgniter\API\ResponseTrait; + class Jobcard extends BaseController { public $session; + use ResponseTrait; public $BikemodelsModel; public $BikemakeModel; public $BusinessModel; @@ -85,6 +88,69 @@ class Jobcard extends BaseController return $financialYear; } + public function preview_jobcard_invoice($job_card_id) { + $logged_user = $this->session->get('logged_user'); + try { + + $data['vehicle'] = $this->JobcardModel->get_jobcard_vehicle_details($job_card_id); + $bus_id = $this->session->get('logged_user_business_id'); + $data['job_card'] = $this->JobcardModel->where('job_card_id',$job_card_id)->findAll(); + + $data['company_address'] = $this->BranchModel->where('branch_id', $this->session->get('logged_user_branch_id'))->where('business_id', $bus_id)->where('isactive', 1)->findAll(); + // echo json_encode($data['company_address']);die; + $productdata = $this->JobcardModel->get_jobcard_products_details($job_card_id); + // echo json_encode($productdata);die; + + if($data['job_card'][0]['inv_no'] == '') + { + /** GENERATE INV NO */ + $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); + $osdata = $this->JobcardModel->get_jobcard_os($job_card_id); + $customcomplaintdata = $this->JobcardModel->get_jobcard_custom_complaint($job_card_id); + $labourcost = array_merge($servicedata, $complaintdata,$customcomplaintdata,$osdata); + /** CALCULATE LABOURCOST WITH TAX */ + $totalAmount = 0; + $totalTax = 0; + + // Calculate total amount and total tax + foreach ($labourcost as $product) { + $totalAmount += $product["labour_amount"]; + $totalTax = $product["tax"]; + } + // Calculate total + $total = $totalAmount + $totalTax; + + $discount = ($data['job_card'][0]['is_rework'] == 1) ? 0 : $data['job_card'][0]['discount'] ; + $amt_with_tax = $totalAmount + ($totalAmount * $totalTax / 100); + $totalAmount = ($amt_with_tax - (float)$discount) / (1 + ($totalTax/100)); + // Create single output array + $labour_data[0] = [ + "product_name" => "Labour Cost", + "qty" => 1, + "tax" => number_format($totalTax, 2), + "custom_amount" => number_format($totalAmount, 2), + "custom_tax" => number_format($totalTax, 2), + "custom_total" => number_format($total, 2) + ]; + $data['job_card_products'] = array_merge($productdata, $labour_data); + // echo json_encode($complaintdata);die; + $html = view('invoice_pdf_template_jobcard', $data); + return $this->respond(['status' => 'success','code' => 200,'data' => $html],200); + + } catch (\Exception $e) { + return $this->respond(['status' => 'failed','code' => 500,'data' => $e],500); + } + } + public function download_jobcard_invoice($job_card_id) { $data['vehicle'] = $this->JobcardModel->get_jobcard_vehicle_details($job_card_id); @@ -175,6 +241,26 @@ class Jobcard extends BaseController } + public function preview_jobcard($job_card_id) + { + try { + $data['vehicle'] = $this->JobcardModel->get_jobcard_vehicle_details($job_card_id); + $bus_id = $this->session->get('logged_user_business_id'); + $data['job_card'] = $this->JobcardModel->where('job_card_id',$job_card_id)->findAll(); + $data['company_address'] = $this->BranchModel->where('branch_id', $this->session->get('logged_user_branch_id'))->where('business_id', $bus_id)->where('isactive', 1)->findAll(); + $data['job_card_products'] = $this->JobcardModel->get_jobcard_products_details($job_card_id); + $data['service'] = $this->JobcardModel->get_jobcard_service($job_card_id); + $complaint = $this->JobcardModel->get_jobcard_complaint($job_card_id); + $customcomplaint = $this->JobcardModel->get_jobcard_custom_complaint($job_card_id); + $data['complaint'] = array_merge($complaint,$customcomplaint); + + $html = view('jobcard_pdf_template', $data); + return $this->respond(['status' => 'success','code' => 200,'data' => $html],200); + } catch (\Exception $e) { + return $this->respond(['status' => 'failed','code' => 500,'data' => $e],500); + } + } + public function download_jobcard($job_card_id) { $data['vehicle'] = $this->JobcardModel->get_jobcard_vehicle_details($job_card_id); diff --git a/app/Views/jobs_list.php b/app/Views/jobs_list.php index b069840..1e4e5b0 100755 --- a/app/Views/jobs_list.php +++ b/app/Views/jobs_list.php @@ -87,9 +87,10 @@ " class="dropdown-item edit-button" onclick="datatableJobCard('job_tr_')">Edit + Preview Invoice " class="dropdown-item edit-button">Download Invoice - + Preview Jobcard " class="dropdown-item download-button">Download Jobcard @@ -114,6 +115,39 @@ + + @@ -192,4 +226,58 @@ toastr.warning(msg); } }) - \ No newline at end of file + + +