From 73f1941af071e4ffc80572a16df9652445542c1c Mon Sep 17 00:00:00 2001 From: sriramv Date: Wed, 8 May 2024 17:07:33 +0530 Subject: [PATCH] CHANGE_storelogin_jobcard_issuedItems:ss --- app/Controllers/Jobcard.php | 79 ++++++++++++-- app/Models/JobcardProductModel.php | 2 +- app/Views/job_card_form.php | 164 +++++++++++++++++++++-------- app/Views/jobs_list.php | 27 ++--- 4 files changed, 201 insertions(+), 71 deletions(-) diff --git a/app/Controllers/Jobcard.php b/app/Controllers/Jobcard.php index 021321b..393f0c2 100644 --- a/app/Controllers/Jobcard.php +++ b/app/Controllers/Jobcard.php @@ -49,8 +49,7 @@ class Jobcard extends BaseController $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;
+        $data['logged_user_role'] = $this->session->get('logged_user_role');
         return view('jobs_list',$data);
     }
 
@@ -152,7 +151,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);
 
@@ -190,6 +189,7 @@ echo $html;die;
             $data['service']="";   
             $data['client']=$client;  
             $data['vehicle']=$vehicle; 
+            $data['logged_user_role'] = $this->session->get('logged_user_role');
 
         } else if ($job_card_id !== '0') 
         {
@@ -301,6 +301,7 @@ echo $html;die;
             $VehicleModel = new VehicleModel();
             $vehicle=$VehicleModel->where('isactive',1)->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
             $data['vehicle']=$vehicle; 
+            $data['logged_user_role'] = $this->session->get('logged_user_role');
 
             if($this->session->get('logged_user_role') == "Floor Manager")
             {
@@ -320,15 +321,26 @@ echo $html;die;
     
     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'));
+        // echo $this->request->getPost('issued_items');die;
         $JobcardModel = new JobcardModel();
+        if($this->session->get('logged_user_role') == "Store Manager") {
+            $data['status'] = $this->request->getPost('status');
+            $job_card_id = $this->request->getPost('job_card_id');
+            $JobcardModel->update($job_card_id, $data);
+            $issued_product_id = $this->request->getPost('issued_items');
+            $this->update_store_status($issued_product_id, $data['status']);
+            return redirect()->to('job_card_index');
+        }
         $JobcardProductModel = new JobcardProductModel();
         $JobcardServiceModel = new JobcardServiceModel();
         $JobcardComplaintModel = new JobcardComplaintModel();
         $JobcardCustomComplaintModel = new JobcardCustomComplaintModel();
 
+        $this->delete_items($this->request->getPost('delete_items'));
+
         // Job card INSERT
         $job_card_data = [
             'client_name' => $this->request->getPost('client_id'),
@@ -341,16 +353,24 @@ echo $html;die;
             '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'),
+            // 'store_item_issued'=> $this->request->getPost('store_item_issued'),
             'subtotal'=> $this->request->getPost('sub_total'),
             'tax'=> $this->request->getPost('invoicetax'),
             'discount'=> ($this->request->getPost('discount')) == '' ? 0 :  $this->request->getPost('discount'),
             'total'=> $this->request->getPost('grand_total'),
             'isactive' => 1
         ];
+        $status = $this->request->getPost('status'); 
         // Insert or update sales order
         $job_card_id = $this->request->getPost('job_card_id');
         if (!empty($job_card_id)) {
+            if($status == 'Cancelled')
+            {
+                // echo $status;die;
+                $job_card_data = [];
+                $job_card_data['status'] = $status;
+                $job_card_data['isactive'] = 0;
+            }
             $JobcardModel->update($job_card_id, $job_card_data);
         } else {
             $JobcardModel->insert($job_card_data);
@@ -365,7 +385,6 @@ echo $html;die;
         /********** INSERT SERVICE DATA ************/
         $data = json_decode($_POST['products']);
         $service_data = $data[0]->service;
-        $status = $this->request->getPost('status'); 
 
         foreach ($service_data as $item) {
             // Insert into the service table
@@ -381,6 +400,11 @@ echo $html;die;
                 $service_id = $JobcardServiceModel->getInsertID();
             }
             else {
+                if($status == 'Cancelled')
+                {
+                    $service = [];
+                    $service['isactive'] = 0;
+                }
                 $JobcardServiceModel->update($item->id, $service);
                 $service_id = $item->id;
             }
@@ -404,6 +428,11 @@ echo $html;die;
                 $complaint_id = $JobcardComplaintModel->getInsertID();
             }
             else {
+                if($status == 'Cancelled')
+                {
+                    $service = [];
+                    $service['isactive'] = 0;
+                }
                 $JobcardComplaintModel->update($item->id, $service);
                 $complaint_id = $item->id;
             }
@@ -427,6 +456,11 @@ echo $html;die;
                 $cc_complaint_id = $JobcardCustomComplaintModel->getInsertID();
             }
             else {
+                if($status == 'Cancelled')
+                {
+                    $service = [];
+                    $service['isactive'] = 0;
+                }
                 $JobcardCustomComplaintModel->update($item->id, $service);
                 $cc_complaint_id = $item->id;
             }
@@ -437,6 +471,25 @@ echo $html;die;
         return redirect()->to('job_card_index');
     }
 
+    public function update_store_status($issued_product_id, $status)
+    {
+        if($status == 'Issued') {
+            $JobcardProductModel = new JobcardProductModel();
+            $productModel = new ProductModel();
+            $data['status'] = 1;
+            $product_data = json_decode($issued_product_id);
+            foreach ($product_data as $key => $value) {
+                $jc_product = $JobcardProductModel->where('job_card_product_id', $value->id)->findAll();
+                if($jc_product[0]['status'] == 0)
+                {
+                    $res = $JobcardProductModel->update($value->id, $data);
+                    if($res && $status == 'Issued')
+                    $this->updateProductQuantity($productModel, $jc_product[0]['product_id'], $value->qty);
+                }
+            }
+        }
+    }
+
     public function product_data_insertion($job_card_id, $parent_id, $ParentModel, $item, $JobcardProductModel, $status)
     {
         // Insert into the product table
@@ -452,6 +505,11 @@ echo $html;die;
                 $job_card_product_id = $JobcardProductModel->getInsertID();
             }
             else {
+                if($status == 'Cancelled')
+                {
+                    $product = [];
+                    $product['is_active'] = 0;
+                }
                 $JobcardProductModel->update($pt->id, $product);
                 $job_card_product_id = $pt->id;
             }
@@ -535,10 +593,13 @@ echo $html;die;
         foreach ($id_array as $key => $product_id) {
             $product = $JobcardProductModel->find($product_id);
             $qty = isset($product['qty']) ? $product['qty'] : 0;
-            if ($status == 'Created') {
-                $this->updateProductQuantity($ProductModel, $product['product_id'], $qty);
-            }elseif ($status == 'Cancelled'){
+            if ($status == 'Issued') {
+                // $this->updateProductQuantity($ProductModel, $product['product_id'], $qty);
+            }elseif ($status == 'Cancelled' && $product['status'] == 1){
                 $this->addBackProductQuantity($ProductModel, $product['product_id'], $qty);
+                $data['status'] = 0;
+                // echo $product['job_card_product_id'];die;
+                // $JobcardProductModel->where('job_card_product_id',$product['job_card_product_id'])->update($data);
             }
                     
         }
diff --git a/app/Models/JobcardProductModel.php b/app/Models/JobcardProductModel.php
index 64b08ce..a13c8ae 100644
--- a/app/Models/JobcardProductModel.php
+++ b/app/Models/JobcardProductModel.php
@@ -5,5 +5,5 @@ class JobcardProductModel extends Model
 {
     protected $table = 'job_card_product';
     protected $primaryKey = 'job_card_product_id';
-    protected $allowedFields = ['job_card_product_id','job_card_id' , 'product_id', 'qty', 'tax', 'amount', 'isactive'];
+    protected $allowedFields = ['job_card_product_id','job_card_id' , 'product_id', 'qty', 'tax', 'amount', 'status', 'isactive'];
 }
\ No newline at end of file
diff --git a/app/Views/job_card_form.php b/app/Views/job_card_form.php
index 105412b..028473c 100644
--- a/app/Views/job_card_form.php
+++ b/app/Views/job_card_form.php
@@ -22,6 +22,7 @@
                 
" method="post"> +
@@ -80,20 +81,20 @@
@@ -113,16 +114,6 @@
- - get('logged_user_role') == 'Store Manager') { ?> -
- - -
-

Calculation

-
@@ -180,11 +169,15 @@
-
+
+
+ + +
- +
@@ -301,6 +294,8 @@