diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 7d2f325..310f51e 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -84,7 +84,7 @@ $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->post("delete_sales_product", "Jobcard::delete_sales_product"); -// $routes->get("download_invoice/(:any)", "Jobcard::download_invoice/$1"); +$routes->get("download_jobcard_invoice/(:any)", "Jobcard::download_jobcard_invoice/$1"); // $routes->post("save_vehicle", "Jobcard::save_vehicle"); $routes->post("getServices", "Jobcard::getServices"); //End Job Card // @@ -95,7 +95,8 @@ $routes->post("add_client", "Client::add_client"); $routes->get("new_client/(:any)", "Client::new_client/$1"); $routes->get("delete_client/(:any)", "Client::delete_client/$1"); $routes->post("save_client", "Client::client_quick_create"); -//end clent +//end client + //Vendor// $routes->get('vendor_index/', 'Vendor::vendor_index'); $routes->post("add_vendor", "Vendor::add_vendor"); diff --git a/app/Controllers/Business.php b/app/Controllers/Business.php index d695bea..41e59fa 100644 --- a/app/Controllers/Business.php +++ b/app/Controllers/Business.php @@ -70,9 +70,11 @@ class Business extends BaseController 'business_name' => $this->request->getPost('businessname'), 'email' => $this->request->getPost('email'), 'address' => $this->request->getPost('address'), + 'gstno' => $this->request->getPost('gstno'), 'mobile' => $this->request->getPost('mobile'), 'city' => $this->request->getPost('city'), 'state' => $this->request->getPost('state'), + 'code' => $this->request->getPost('code'), 'postal_code' => $this->request->getPost('postalcode'), 'country' => $this->request->getPost('country'), 'isactive' => 1 // Assuming this is a default value or handled separately diff --git a/app/Controllers/Jobcard.php b/app/Controllers/Jobcard.php index 41740a0..3466b72 100644 --- a/app/Controllers/Jobcard.php +++ b/app/Controllers/Jobcard.php @@ -1,7 +1,7 @@ session = session(); $this->BikemodelsModel = new BikemodelsModel(); $this->BikemakeModel = new BikemakeModel(); + $this->BusinessModel = new BusinessModel(); + $this->JobcardModel = new JobcardModel(); } @@ -35,13 +42,60 @@ class Jobcard extends BaseController { $JobcardModel = new JobcardModel(); - $jobs=$JobcardModel->getJobCardsWithProductsAndService($this->session->get('logged_user_branch_id')); + $data['id'] = $this->session->get('logged_user'); + $data['role'] = $this->session->get('logged_user_role'); + $jobs=$JobcardModel->getJobCardsWithProductsAndService($this->session->get('logged_user_branch_id'), $data); $data['jobs']=$jobs; // echo "
";
// print_r($jobs);die;
return view('jobs_list',$data);
}
+ public function download_jobcard_invoice($job_card_id)
+ {
+ $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->BusinessModel->where('business_id', $bus_id)->where('isactive', 1)->findAll();
+ $data['job_card_products'] = $this->JobcardModel->get_jobcard_products_details($job_card_id);
+
+ // echo json_encode($data['job_card_products']);die;
+
+
+ // Create an mPDF object
+ $mpdf = new Mpdf([
+ 'mode' => '',
+ 'format' => 'A5',
+ 'default_font_size' => 0,
+ 'default_font' => '',
+
+ // 'margin_right' => 1,
+ 'margin_top' => 6,
+ 'margin_bottom' => 6,
+ 'margin_header' => 6,
+ 'margin_footer' =>-30,
+ 'orientation' => 'P',
+ ]);
+
+
+
+ $mpdf->autoLangToFont = true; $mpdf->autoScriptToLang = true;
+ // Set PDF properties
+ $mpdf->SetTitle('Invoice');
+ // $mpdf->SetAuthor($data[0]->branch_name);
+ $mpdf->SetCreator('');
+
+
+ // Generate the PDF content (HTML) with data
+ $html = view('invoice_pdf_template', $data);
+ echo $html;die;
+ // Load HTML into the mPDF instance
+ $mpdf->WriteHTML($html);
+
+ // Output the PDF to the browser for download
+ $mpdf->Output('invoice_' . date('Y-m-d H-i-s') . '.pdf', 'D');
+ }
+
public function new_jobcard($job_card_id)
{
@@ -74,29 +128,63 @@ class Jobcard extends BaseController
} else if ($job_card_id !== '0')
{
+ // echo json_encode($this->session->get('logged_user_role'));die;
$productModel = new ProductModel();
$JobcardModel = new JobcardModel();
$JobcardProductModel = new JobcardProductModel();
$JobcardServiceModel = new JobcardServiceModel();
$JobcardComplaintModel = new JobcardComplaintModel();
$JobcardCustomComplaintModel = new JobcardCustomComplaintModel();
+ $ComplaintModel = new ComplaintModel();
+ /*** SERVICE DATA ***/
$servicedata = $JobcardModel->service_data($job_card_id, $this->session->get('logged_user_branch_id'));
- foreach ($servicedata as $key => $value) {
- $product_ids = json_decode($value['product_id'], true);
- $product = $JobcardProductModel->whereIn('job_card_product_id', $product_ids)->findAll();
- echo json_encode($product);die;
+ // Using '&' to reference the original array element
+ foreach ($servicedata as &$value) {
+ $product_ids = !empty(json_decode($value['product_id'], true)) ? json_decode($value['product_id'], true) : [0];
+ $product = $JobcardProductModel->select('job_card_product.* , products.product_name as pname')
+ ->join('products', 'products.product_id = job_card_product.product_id')
+ ->whereIn('job_card_product.job_card_product_id', $product_ids)->findAll();
+ $value['product'] = $product;
}
+ $data['editservicedata'] = $servicedata;
+ /*** COMPLAINT DATA ***/
+ $complaintdata = $JobcardModel->complaint_data($job_card_id, $this->session->get('logged_user_branch_id'));
+ // Using '&' to reference the original array element
+ foreach ($complaintdata as &$value) {
+ $product_ids = !empty(json_decode($value['product_id'], true)) ? json_decode($value['product_id'], true) : [0];
+ $product = $JobcardProductModel->select('job_card_product.* , products.product_name as pname')
+ ->join('products', 'products.product_id = job_card_product.product_id')
+ ->whereIn('job_card_product_id', $product_ids)->findAll();
+ $value['product'] = $product;
+ }
+ $data['editcomplaintdata'] = $complaintdata;
+
+ /*** CUSTOM COMPLAINT DATA ***/
+ $ccomplaintdata = $JobcardModel->ccomplaint_data($job_card_id, $this->session->get('logged_user_branch_id'));
+ // Using '&' to reference the original array element
+ foreach ($ccomplaintdata as &$value) {
+ $product_ids = !empty(json_decode($value['product_id'], true)) ? json_decode($value['product_id'], true) : [0];
+ $product = $JobcardProductModel->select('job_card_product.* , products.product_name as pname')
+ ->join('products', 'products.product_id = job_card_product.product_id')
+ ->whereIn('job_card_product_id', $product_ids)->findAll();
+ $value['product'] = $product;
+ }
+ $data['editccomplaintdata'] = $ccomplaintdata;
+
+ $complaint=$ComplaintModel->where('isactive',1)->findAll();
+
+ $data['complaint']= $complaint;
$data['page_name']="Edit Job Card";
$ClientModel = new ClientModel();
$client=$ClientModel->where('isactive',1)->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
$JobcardModel = new JobcardModel();
- $productdata = $JobcardModel->job_card_edit($job_card_id, $this->session->get('logged_user_branch_id'));
$jobs=$JobcardModel->where('job_card_id', $job_card_id)->get()->getRowArray();
$data['jobs']=$jobs;
$VehicleModel = new VehicleModel();
+
$vehicles = $VehicleModel->where('isactive',1)->where('vehicle_id',$jobs['vehicle_id'])
->where('branch_id',$this->session->get('logged_user_branch_id'))
->first();
@@ -110,17 +198,20 @@ class Jobcard extends BaseController
$model_name = $BikemodelsModel->where('model_id',$modelId)->select('model_name')->first();
$data['make_model'] = $make_name['make'].' ' . $model_name['model_name'];
// Encode the modelId before searching
- $encodedModelId = json_encode([$modelId]);
-
+ $encodedModelId = json_encode([$makeId]);
+// echo $encodedModelId;die;
// Load the ProductModel
// Query the database to find the product based on make_id and model_id
- $product = $productModel->where('make_id', $makeId)
- ->where('JSON_CONTAINS(models_id, \'' . $encodedModelId . '\')', null, false)
+ $product = $productModel
+ // ->where('make_id', $makeId)
+ ->where('JSON_CONTAINS(make_id, \'' . $encodedModelId . '\')', null, false)
->findAll();
$data['product']=$product;
+ // echo json_encode($product);die;
+
// Load the ServiceModel
$ServiceModel = new ServiceModel();
$encodedMakeId = json_encode([$makeId]);
@@ -130,6 +221,7 @@ class Jobcard extends BaseController
// ->findAll();
$service = $ServiceModel->where('makes_id LIKE \'%"' . $makeId . '"%\'', null, false)
->where('models_id LIKE \'%"' . $modelId . '"%\'', null, false)
+ ->orWhere('category', 0)
->findAll();
$data['product']=$product;
$data['service']=$service;
@@ -141,9 +233,15 @@ class Jobcard extends BaseController
// print_r($jobs_product);die;
$VehicleModel = new VehicleModel();
$vehicle=$VehicleModel->where('isactive',1)->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
- $data['vehicle']=$vehicle;
+ $data['vehicle']=$vehicle;
+
+ if($this->session->get('logged_user_role') == "Floor Manager")
+ {
+ $RoleModel = new RoleModel();
+ $data['workers'] = $RoleModel->get_workers($this->session->get('logged_user_branch_id'));
+ // echo json_encode($data['workers']);die;
+ }
}
- // print_r($data);die;
$data['job_card_id'] = $job_card_id;
$bikeMakeModel = new BikeMakeModel();
$data['makeData'] =$bikeMakeModel->findAll();
@@ -155,7 +253,9 @@ class Jobcard extends BaseController
public function add_jobs()
{
- // echo json_encode($this->request->getPost());die;
+ // echo $this->request->getPost('products');die;
+ // echo $this->request->getPost('delete_items');die;
+ $this->delete_items($this->request->getPost('delete_items'));
$JobcardModel = new JobcardModel();
$JobcardProductModel = new JobcardProductModel();
$JobcardServiceModel = new JobcardServiceModel();
@@ -173,6 +273,8 @@ class Jobcard extends BaseController
'billing_state' => $this->request->getPost('state'),
'billing_postal_code' => $this->request->getPost('postalcode'),
'status'=> $this->request->getPost('status'),
+ 'assigned_to'=> json_encode($this->request->getPost('assigned_to')),
+ 'store_item_issued'=> $this->request->getPost('store_item_issued'),
'subtotal'=> $this->request->getPost('sub_total'),
'tax'=> $this->request->getPost('invoicetax'),
'total'=> $this->request->getPost('grand_total'),
@@ -185,12 +287,13 @@ class Jobcard extends BaseController
} else {
$JobcardModel->insert($job_card_data);
$job_card_id = $JobcardModel->getInsertID(); // Get the last inserted ID
- }
- $orderNumber = 'JC-' . date('md') . '-' . str_pad($job_card_id, 5, '0', STR_PAD_LEFT);
- // print_r($orderNumber);die;
- // Update sales order with generated order number
- $JobcardModel->update($job_card_id, ['order_number' => $orderNumber]);
+ $orderNumber = 'JC-' . date('md') . '-' . str_pad($job_card_id, 5, '0', STR_PAD_LEFT);
+ // print_r($orderNumber);die;
+ // Update sales order with generated order number
+ $JobcardModel->update($job_card_id, ['order_number' => $orderNumber]);
+ }
+
/********** INSERT SERVICE DATA ************/
$data = json_decode($_POST['products']);
$service_data = $data[0]->service;
@@ -200,28 +303,21 @@ class Jobcard extends BaseController
// Insert into the service table
$service['job_card_id'] = $job_card_id;
$service['service_id'] = $item->service_id;
+ $service['labour_cost'] = $item->labour_cost;
$service['qty'] = $item->quality;
$service['tax'] = $item->tax;
$service['amount'] = $item->amount;
- $JobcardServiceModel->insert($service);
- $service_id = $JobcardServiceModel->getInsertID();
-
- // Insert into the product table
- $id = [];
- foreach ($item->product as $pt) {
- $product['job_card_id'] = $job_card_id;
- $product['product_id'] = $pt->p_id;
- $product['qty'] = $pt->qty;
- $product['tax'] = $pt->tax;
- $product['amount'] = $pt->amount;
- $JobcardProductModel->insert($product);
- $job_card_product_id = $JobcardProductModel->getInsertID();
- array_push($id, $job_card_product_id);
+ // echo empty($item->id);die;
+ if(empty($item->id)) {
+ $JobcardServiceModel->insert($service);
+ $service_id = $JobcardServiceModel->getInsertID();
}
- $res = $JobcardServiceModel->update($service_id, ['product_id' => json_encode($id) ]);
- if($res) {
- $this->product_data_maintanence($id, $status);
+ else {
+ $JobcardServiceModel->update($item->id, $service);
+ $service_id = $item->id;
}
+
+ if(isset($item->product)) { $this->product_data_insertion($job_card_id, $service_id, $JobcardServiceModel, $item, $JobcardProductModel, $status); }
}
/********** INSERT COMPLAINT DATA ************/
@@ -231,28 +327,20 @@ class Jobcard extends BaseController
// Insert into the service table
$service['job_card_id'] = $job_card_id;
$service['complaint_id'] = $item->complaint_id;
+ $service['labour_cost'] = $item->labour_cost;
$service['qty'] = $item->quality;
$service['tax'] = $item->tax;
$service['amount'] = $item->amount;
- $JobcardComplaintModel->insert($service);
- $complaint_id = $JobcardComplaintModel->getInsertID();
+ if(empty($item->id)) {
+ $JobcardComplaintModel->insert($service);
+ $complaint_id = $JobcardComplaintModel->getInsertID();
+ }
+ else {
+ $JobcardComplaintModel->update($item->id, $service);
+ $complaint_id = $item->id;
+ }
- // Insert into the product table
- $id = [];
- foreach ($item->product as $pt) {
- $product['job_card_id'] = $job_card_id;
- $product['product_id'] = $pt->p_id;
- $product['qty'] = $pt->qty;
- $product['tax'] = $pt->tax;
- $product['amount'] = $pt->amount;
- $JobcardProductModel->insert($product);
- $job_card_product_id = $JobcardProductModel->getInsertID();
- array_push($id, $job_card_product_id);
- }
- $res =$JobcardComplaintModel->update($complaint_id, ['product_id' => json_encode($id) ]);
- if($res) {
- $this->product_data_maintanence($id, $status);
- }
+ if(isset($item->product)) { $this->product_data_insertion($job_card_id, $complaint_id, $JobcardComplaintModel, $item, $JobcardProductModel, $status); }
}
/********** INSERT CUSTOM COMPLAINT DATA ************/
@@ -262,33 +350,101 @@ class Jobcard extends BaseController
// Insert into the service table
$service['job_card_id'] = $job_card_id;
$service['complaint_name'] = $item->complaint_id;
+ $service['labour_cost'] = $item->labour_cost;
$service['qty'] = $item->quality;
$service['tax'] = $item->tax;
$service['amount'] = $item->amount;
- $JobcardCustomComplaintModel->insert($service);
- $cc_complaint_id = $JobcardCustomComplaintModel->getInsertID();
+ if(empty($item->id) || $item->id == "product") {
+ $JobcardCustomComplaintModel->insert($service);
+ $cc_complaint_id = $JobcardCustomComplaintModel->getInsertID();
+ }
+ else {
+ $JobcardCustomComplaintModel->update($item->id, $service);
+ $cc_complaint_id = $item->id;
+ }
- // Insert into the product table
- $id = [];
- foreach ($item->product as $pt) {
- $product['job_card_id'] = $job_card_id;
- $product['product_id'] = $pt->p_id;
- $product['qty'] = $pt->qty;
- $product['tax'] = $pt->tax;
- $product['amount'] = $pt->amount;
- $JobcardProductModel->insert($product);
- $job_card_product_id = $JobcardProductModel->getInsertID();
- array_push($id, $job_card_product_id);
- }
- $res =$JobcardCustomComplaintModel->update($cc_complaint_id, ['product_id' => json_encode($id) ]);
- if($res) {
- $this->product_data_maintanence($id, $status);
- }
+ if(isset($item->product)) { $this->product_data_insertion($job_card_id, $cc_complaint_id, $JobcardCustomComplaintModel, $item, $JobcardProductModel, $status); }
}
return redirect()->to('job_card_index');
}
+ public function product_data_insertion($job_card_id, $parent_id, $ParentModel, $item, $JobcardProductModel, $status)
+ {
+ // Insert into the product table
+ $id = [];
+ foreach ($item->product as $pt) {
+ $product['job_card_id'] = $job_card_id;
+ $product['product_id'] = $pt->p_id;
+ $product['qty'] = $pt->qty;
+ $product['tax'] = $pt->tax;
+ $product['amount'] = $pt->amount;
+ if(empty($pt->id)) {
+ $JobcardProductModel->insert($product);
+ $job_card_product_id = $JobcardProductModel->getInsertID();
+ }
+ else {
+ $JobcardProductModel->update($pt->id, $product);
+ $job_card_product_id = $pt->id;
+ }
+ array_push($id, $job_card_product_id);
+ }
+ $res =$ParentModel->update($parent_id, ['product_id' => json_encode($id) ]);
+ if($res) {
+ $this->product_data_maintanence($id, $status);
+ }
+ }
+
+ public function delete_items($delArr)
+ {
+ $JobcardServiceModel = new JobcardServiceModel();
+ $JobcardComplaintModel = new JobcardComplaintModel();
+ $JobcardCustomComplaintModel = new JobcardCustomComplaintModel();
+ $data = json_decode($delArr);
+
+ $service_data = $data[0]->service;
+ if(!empty($service_data)) {
+ foreach ($service_data as $item) {
+ $conditions = [ 'job_card_service_id' => $item ];
+ $service_deleted_data = $JobcardServiceModel->where($conditions)->findAll();
+ $this->product_delete($service_deleted_data[0]['product_id']);
+ $JobcardServiceModel->where($conditions)->delete();
+ }
+ }
+
+ $complaint_data = $data[0]->complaint;
+ if(!empty($complaint_data)) {
+ foreach ($complaint_data as $item) {
+ $conditions = [ 'job_card_complaint_id' => $item ];
+ $complaint_deleted_data = $JobcardComplaintModel->where($conditions)->findAll();
+ $this->product_delete($complaint_deleted_data[0]['product_id']);
+ $JobcardComplaintModel->where($conditions)->delete();
+ }
+ }
+
+ $ccomplaint_data = $data[0]->custom_complaint;
+ if(!empty($ccomplaint_data)) {
+ foreach ($ccomplaint_data as $item) {
+ $conditions = [ 'job_card_cc_id' => $item ];
+ $cc_deleted_data = $JobcardCustomComplaintModel->where($conditions)->findAll();
+ $this->product_delete($cc_deleted_data[0]['product_id']);
+ $JobcardCustomComplaintModel->where($conditions)->delete();
+ }
+ }
+ }
+
+ /** DELETE JOB CARD-PRODUCT */
+ public function product_delete($product) {
+ $JobcardProductModel = new JobcardProductModel();
+ $product_ids = json_decode($product, true);
+ if (empty($product_ids)) return true;
+ foreach ($product_ids as $item) {
+ $conditions = [ 'job_card_product_id' => $item ];
+ $JobcardProductModel->where($conditions)->delete();
+ }
+ return true;
+ }
+
public function product_data_maintanence($id_array,$status)
{
$ProductModel = new ProductModel();
@@ -297,7 +453,7 @@ class Jobcard extends BaseController
foreach ($id_array as $key => $product_id) {
$product = $JobcardProductModel->find($product_id);
$qty = isset($product['qty']) ? $product['qty'] : 0;
- if ($status == 'Created') {
+ if ($status == 'Paid') {
$this->updateProductQuantity($ProductModel, $product['product_id'], $qty);
}elseif ($status == 'Cancelled'){
$this->addBackProductQuantity($ProductModel, $product['product_id'], $qty);
@@ -368,73 +524,6 @@ class Jobcard extends BaseController
return redirect()->to('job_card_index');
}
- public function download_invoice($sales_order_id)
- {
- // echo "hello"; die;
- // Fetch the invoice data based on $invoice_id
- $model = new SalesOrderModel();
- $data = $model->getSalesPdf($sales_order_id);
-
- $items = $model->getSalesOrderProductsForPdf($sales_order_id);
-
-
-
- // print_r($items);die();
-
- // print_r($invoiceItems);die();
-
- // Create an mPDF object
- $mpdf = new Mpdf([
- 'mode' => '',
- 'format' => 'A5',
- 'default_font_size' => 0,
- 'default_font' => '',
-
- // 'margin_right' => 1,
- 'margin_top' => 6,
- 'margin_bottom' => 6,
- 'margin_header' => 6,
- 'margin_footer' =>-30,
- 'orientation' => 'P',
- ]);
-
-
-
- $mpdf->autoLangToFont = true; $mpdf->autoScriptToLang = true;
- // Set PDF properties
- $mpdf->SetTitle('Invoice');
- $mpdf->SetAuthor($data[0]->branch_name);
- $mpdf->SetCreator('');
-
-
-
- // Generate the PDF content (HTML)
- if ($data[0]->status === 'Draft') {
- // Set the watermark text and options
- $mpdf->SetWatermarkText('Draft');
- $mpdf->showWatermarkText = true;
- }
- if ($data[0]->status === 'Cancelled') {
- // Set the watermark text and options
- $mpdf->SetWatermarkText('Cancelled');
- $mpdf->showWatermarkText = true;
- }
- if ($data[0]->status === 'Void') {
- // Set the watermark text and options
- $mpdf->SetWatermarkText('Void');
- $mpdf->showWatermarkText = true;
- }
-
-
- // Generate the PDF content (HTML) with data
- $html = view('invoice_pdf_template', ['sales' => $data,'items'=>$items]);
- // echo $html;die;
- // Load HTML into the mPDF instance
- $mpdf->WriteHTML($html);
-
- // Output the PDF to the browser for download
- $mpdf->Output('invoice_' . date('Y-m-d H-i-s') . '.pdf', 'D');
- }
public function save_vehicle(){
diff --git a/app/Controllers/Products.php b/app/Controllers/Products.php
index 5c6bf3c..70c7841 100644
--- a/app/Controllers/Products.php
+++ b/app/Controllers/Products.php
@@ -163,7 +163,10 @@ class Products extends BaseController
'specification' => $this->request->getPost('specification'),
'hsn_sac' => $this->request->getPost('hsn_sac'),
'isactive' => 1 ,
- 'branch_id' => $this->session->get('logged_user_branch_id')
+ 'branch_id' => $this->session->get('logged_user_branch_id'),
+
+ 'total_amount' => $this->session->get('total_amount'),
+ 'per' => $this->session->get('per')
];
$product_id = $this->request->getPost('product_id');
diff --git a/app/Controllers/Service.php b/app/Controllers/Service.php
index d5330b7..bb82189 100644
--- a/app/Controllers/Service.php
+++ b/app/Controllers/Service.php
@@ -22,7 +22,7 @@ class Service extends BaseController
{
$ServiceModel = new ServiceModel();
- $services = $ServiceModel->where('branch_id',$this->session->get('logged_user_business_id'))->findAll();
+ $services = $ServiceModel->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
foreach ($services as &$service) {
// Convert JSON strings to arrays
@@ -169,7 +169,7 @@ class Service extends BaseController
$ServiceModel->update($service_id, $data);
} else {
- $data['branch_id'] = $this->session->get('logged_user_business_id');
+ $data['branch_id'] = $this->session->get('logged_user_branch_id');
$ServiceModel->insert($data);
}
diff --git a/app/Models/BusinessModel.php b/app/Models/BusinessModel.php
index a6db278..9c35a56 100644
--- a/app/Models/BusinessModel.php
+++ b/app/Models/BusinessModel.php
@@ -5,7 +5,7 @@ class BusinessModel extends Model
{
protected $table = 'business';
protected $primaryKey = 'business_id';
- protected $allowedFields = ['business_id','business_unique_id','branch_unique_id','business_name','email','mobile','address','city','state','postal_code','country','isactive'];
+ protected $allowedFields = ['business_id','business_unique_id','branch_unique_id','business_name','email','mobile','address', 'gstno','city','state', 'code','postal_code','country','isactive'];
public function getBusinessById($business_id) {
return $this->db->table('business')->where('business_id', $business_id)->get()->getRowArray();
diff --git a/app/Models/JobcardComplaintModel.php b/app/Models/JobcardComplaintModel.php
index b8e6fad..4266225 100644
--- a/app/Models/JobcardComplaintModel.php
+++ b/app/Models/JobcardComplaintModel.php
@@ -5,5 +5,5 @@ class JobcardComplaintModel extends Model
{
protected $table = 'job_card_complaint';
protected $primaryKey = 'job_card_complaint_id';
- protected $allowedFields = ['job_card_complaint_id','job_card_id','complaint_id','product_id', 'qty', 'tax', 'amount','isactive'];
+ protected $allowedFields = ['job_card_complaint_id','job_card_id','complaint_id', 'labour_cost','product_id', 'qty', 'tax', 'amount','isactive'];
}
\ No newline at end of file
diff --git a/app/Models/JobcardCustomComplaintModel.php b/app/Models/JobcardCustomComplaintModel.php
index ad9af96..20afff1 100644
--- a/app/Models/JobcardCustomComplaintModel.php
+++ b/app/Models/JobcardCustomComplaintModel.php
@@ -5,5 +5,5 @@ class JobcardCustomComplaintModel extends Model
{
protected $table = 'job_card_custom_complaint';
protected $primaryKey = 'job_card_cc_id';
- protected $allowedFields = ['job_card_cc_id', 'job_card_id','complaint_name', 'product_id', 'qty', 'tax', 'amount','isactive'];
+ protected $allowedFields = ['job_card_cc_id', 'job_card_id','complaint_name', 'labour_cost','product_id', 'qty', 'tax', 'amount','isactive'];
}
\ No newline at end of file
diff --git a/app/Models/JobcardModel.php b/app/Models/JobcardModel.php
index 6fea6b2..1a2a564 100644
--- a/app/Models/JobcardModel.php
+++ b/app/Models/JobcardModel.php
@@ -8,42 +8,74 @@ class JobcardModel extends Model
protected $allowedFields = ['job_card_id','vehicle_id','branch_id',
'order_number','client_mobile_no','client_name',
'billing_address','billing_city','billing_state','billing_country',
- 'billing_postal_code','status','subtotal','tax','total','isactive'];
+ 'billing_postal_code','status','assigned_to', 'store_item_issued','subtotal','tax','total','isactive'];
- public function getJobCardsWithProductsAndService($logged_user_branch_id)
+ public function getJobCardsWithProductsAndService($logged_user_branch_id,$data)
{
- // Select required fields from both tables
- // $this->select('job_card.*, COUNT(sales_order_product.job_card_id) AS product_count,vehicle.reg_no');
- // $this->select('job_card.*, COUNT(job_card_service.job_card_id) AS product_count, COUNT(job_card_service.job_card_id) AS service_count,vehicle.reg_no');
$this->select('job_card.*, COUNT(job_card_product.job_card_id) AS product_count, vehicle.reg_no');
-
- // Join the sales_order_product table based on job_card_id
- $this->join('job_card_service', 'job_card_service.job_card_id = job_card.job_card_id');
- $this->join('job_card_product', 'job_card_product.job_card_id = job_card.job_card_id');
- $this->join('vehicle', 'vehicle.vehicle_id = job_card.vehicle_id');
-
- // Group by job_card_id to get count of products per sales order
+ $this->join('job_card_product', 'job_card_product.job_card_id = job_card.job_card_id', 'left');
+ $this->join('vehicle', 'vehicle.vehicle_id = job_card.vehicle_id', 'left');
$this->groupBy('job_card.job_card_id');
-
- // Add condition to fetch only active sales orders
- $this->where('job_card_service.isactive', 1);
- // $this->where('job_card_service.isactive', 1);
- $this ->where('job_card.branch_id',$logged_user_branch_id);
+ $this->where('job_card.isactive', 1);
+ if ($data['role'] == 'Senior Mechanic' || $data['role'] == 'Mechanic') {
+ $this->where("JSON_CONTAINS(assigned_to, '" . json_encode($data['id']) . "')", null, false);
+ }
+ $this->where('job_card.branch_id',$logged_user_branch_id);
$this->orderBy('job_card.job_card_id','DESC');
- // Get the results
return $this->findAll();
}
public function service_data($job_card_id, $logged_user_branch_id)
{
- $this->select('job_card.*, job_card_service.*');
+ $this->select('job_card.job_card_id, job_card_service.*');
$this->join('job_card_service', 'job_card_service.job_card_id = job_card.job_card_id');
$this->where('job_card_service.isactive', 1);
$this ->where('job_card.job_card_id',$job_card_id);
$this ->where('job_card.branch_id',$logged_user_branch_id);
return $this->findAll();
}
+
+ public function complaint_data($job_card_id, $logged_user_branch_id)
+ {
+ $this->select('job_card.job_card_id, job_card_complaint.*');
+ $this->join('job_card_complaint', 'job_card_complaint.job_card_id = job_card.job_card_id');
+ $this->where('job_card_complaint.isactive', 1);
+ $this->where('job_card.job_card_id',$job_card_id);
+ $this->where('job_card.branch_id',$logged_user_branch_id);
+ return $this->findAll();
+ }
+
+ public function ccomplaint_data($job_card_id, $logged_user_branch_id)
+ {
+ $this->select('job_card.job_card_id, job_card_custom_complaint.* , job_card_custom_complaint.complaint_name as name');
+ $this->join('job_card_custom_complaint', 'job_card_custom_complaint.job_card_id = job_card.job_card_id');
+ $this->where('job_card_custom_complaint.isactive', 1);
+ $this ->where('job_card.job_card_id',$job_card_id);
+ $this ->where('job_card.branch_id',$logged_user_branch_id);
+ return $this->findAll();
+ }
+
+ public function get_jobcard_vehicle_details($job_id)
+ {
+ $this->select('job_card.job_card_id, job_card.order_number, job_card.vehicle_id as jobcard_vehicle_id, vehicle.*, make.make as bike_company, model.model_name as bike_name');
+ $this->join('vehicle', 'vehicle.vehicle_id = job_card.vehicle_id');
+ $this->join('make', 'make.make_id = vehicle.make');
+ $this->join('model', 'model.model_id = vehicle.model');
+ $this->where('job_card.job_card_id', $job_id);
+ $this->where('job_card.isactive', 1);
+ return $this->findAll();
+ }
+
+ public function get_jobcard_products_details($job_id)
+ {
+ $this->select('job_card_product.*, job_card_product.tax, products.product_name, products.per');
+ $this->join('job_card_product', 'job_card_product.job_card_id = job_card.job_card_id');
+ $this->join('products', 'products.product_id = job_card_product.product_id');
+ $this->where('job_card_product.is_active', 1);
+ $this->where('job_card_product.job_card_id', $job_id);
+ return $this->findAll();
+ }
}
\ No newline at end of file
diff --git a/app/Models/JobcardServiceModel.php b/app/Models/JobcardServiceModel.php
index c86ef92..03740f1 100644
--- a/app/Models/JobcardServiceModel.php
+++ b/app/Models/JobcardServiceModel.php
@@ -5,7 +5,7 @@ class JobcardServiceModel extends Model
{
protected $table = 'job_card_service';
protected $primaryKey = 'job_card_service_id';
- protected $allowedFields = ['job_card_service_id', 'job_card_id', 'service_id', 'product_id', 'qty','tax','amount', 'isactive'];
+ protected $allowedFields = ['job_card_service_id', 'job_card_id', 'service_id', 'labour_cost', 'product_id', 'qty','tax','amount', 'isactive'];
}
\ No newline at end of file
diff --git a/app/Models/ProductModel.php b/app/Models/ProductModel.php
index 24b65b7..c672b12 100644
--- a/app/Models/ProductModel.php
+++ b/app/Models/ProductModel.php
@@ -5,7 +5,11 @@ class ProductModel extends Model
{
protected $table = 'products';
protected $primaryKey = 'product_id';
- protected $allowedFields = ['sku_id','product_id','rack_number','manufacturer_id','make_id','models_id','quality','product_name','branch_id','prefered_vendor','product_category','mfr_part_no','purchase_order_level','unit_price','commision_rate','sgst','cgst','purchase_cost','usage_unit','vendor','qty_stock','reorder_level','handler','qty_in_demand','product_image','description','specification','hsn_sac','isactive'];
+ protected $allowedFields = ['sku_id','product_id','rack_number','manufacturer_id','make_id','models_id',
+ 'quality','product_name','branch_id','prefered_vendor','product_category','mfr_part_no','purchase_order_level',
+ 'unit_price','commision_rate','sgst','cgst','purchase_cost','usage_unit','vendor','qty_stock','reorder_level',
+ 'handler','qty_in_demand','product_image','description','specification','hsn_sac','isactive','total_amount',
+ 'per'];
public function getTax()
diff --git a/app/Models/RoleModel.php b/app/Models/RoleModel.php
index e9e4fb5..e300cb2 100644
--- a/app/Models/RoleModel.php
+++ b/app/Models/RoleModel.php
@@ -6,12 +6,23 @@ class RoleModel extends Model
protected $table = 'roles';
protected $primaryKey = 'role_id';
protected $allowedFields = ['role_id','roles','isactive'];
-public function getRoles(){
- return $this->where('roles !=', 'Super Admin')->findAll();
-}
-public function getRoleNameById($roleId)
-{
- $role = $this->where('role_id', $roleId)->first();
- return $role ? $role['roles'] : 'Unknown';
-}
+ public function getRoles(){
+ return $this->where('roles !=', 'Super Admin')->findAll();
+ }
+ public function getRoleNameById($roleId)
+ {
+ $role = $this->where('role_id', $roleId)->first();
+ return $role ? $role['roles'] : 'Unknown';
+ }
+
+ public function get_workers($logged_user_branch_id)
+ {
+ $this->select('roles.*,users.user_id, users.name, users.business_id, users.branch_id, users.role, users.mobile_no, users.isactive');
+ $this->join('users', 'users.role = roles.role_id');
+ $this->where('roles.isactive', 1);
+ $this->where('users.isactive', 1);
+ $this->whereIn('roles.roles', ['Mechanic','Helper']);
+ $this ->where('users.branch_id',$logged_user_branch_id);
+ return $this->findAll();
+ }
}
\ No newline at end of file
diff --git a/app/Views/business_form.php b/app/Views/business_form.php
index 91c9bdd..db5acbd 100644
--- a/app/Views/business_form.php
+++ b/app/Views/business_form.php
@@ -41,6 +41,10 @@
+
+
+
+
@@ -49,6 +53,10 @@
+
+
+
+
diff --git a/app/Views/complaint_list.php b/app/Views/complaint_list.php
index 690b86c..b4caab5 100644
--- a/app/Views/complaint_list.php
+++ b/app/Views/complaint_list.php
@@ -21,7 +21,7 @@
Name
Labour Charge
- Status
+ Status
Actions
@@ -31,7 +31,7 @@
= $value['name']; ?>
= $value['labour_charge']; ?>
-
+
Active
diff --git a/app/Views/invoice_pdf_template.php b/app/Views/invoice_pdf_template.php
index fd3457c..2ef3719 100644
--- a/app/Views/invoice_pdf_template.php
+++ b/app/Views/invoice_pdf_template.php
@@ -183,23 +183,22 @@
-
-
-
- THE MECHANIC
-
-
-
-
-
-
- = $value->company_address ?>,
- = $value->company_city ?>,
- = $value->company_state ?>
- = $value->company_postal_code ?>.
-
- = $value->company_mobile_no ?>
-
+
+
+ THE MECHANIC
+ = $value['address'] ?>,
+ = 'GSTNO: '.$value['gstno'] ?>
+ = 'State Name: '.$value['state'].', code'.$value['code'] ?>
+ = 'Contact: '.$value['postal_code'] ?>
+ = 'Email: '.$value['email'] ?>
+
+ Buyer (Bill To)
+ = $job_card[0]['billing_address'].', '.$job_card[0]['billing_city'].', '.$job_card[0]['billing_state'].', '.$job_card[0]['billing_country'].', '.$job_card[0]['billing_postal_code'] ?>,
+ = 'GSTNO: ' ?>
+ = 'State Name: '.$job_card[0]['billing_state'] ?>
+ = 'Place of Supply: '.$value['state'] ?>
+
+
@@ -284,6 +283,7 @@
+
@@ -376,6 +376,7 @@
+