diff --git a/app/Controllers/Jobcard.php b/app/Controllers/Jobcard.php index 203a6f1..97e386a 100644 --- a/app/Controllers/Jobcard.php +++ b/app/Controllers/Jobcard.php @@ -16,6 +16,8 @@ use App\Models\BikemakeModel; use App\Models\VehicleModel; use App\Models\SalesOrderModel; use App\Models\SalesOrderProductModel; +use App\Models\UsersModel; +use App\Models\RoleModel; use Mpdf\Mpdf; class Jobcard extends BaseController { @@ -35,7 +37,9 @@ 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;
@@ -74,6 +78,7 @@ 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();
@@ -178,9 +183,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();
@@ -212,6 +223,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'),
@@ -254,30 +267,7 @@ class Jobcard extends BaseController
                 $service_id = $item->id;
             }
             
-            if(isset($item->product)) {
-                // 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 = $JobcardServiceModel->update($service_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, $service_id, $JobcardServiceModel, $item, $JobcardProductModel, $status); }
         }
 
         /********** INSERT COMPLAINT DATA ************/
@@ -300,30 +290,7 @@ class Jobcard extends BaseController
                 $complaint_id = $item->id;
             }
         
-            if(isset($item->product)) {
-                // 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 =$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 ************/
@@ -346,35 +313,38 @@ class Jobcard extends BaseController
                 $cc_complaint_id = $item->id;
             }
         
-            if(isset($item->product)) {
-                // 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 =$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();
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/Models/JobcardModel.php b/app/Models/JobcardModel.php
index b0ccff8..3f5ecb3 100644
--- a/app/Models/JobcardModel.php
+++ b/app/Models/JobcardModel.php
@@ -8,17 +8,20 @@ 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)
     {
         $this->select('job_card.*, COUNT(job_card_product.job_card_id) AS product_count, vehicle.reg_no');
         $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');
         $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');
         return $this->findAll();
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/job_card_form.php b/app/Views/job_card_form.php
index 1e8712d..d3b1abf 100644
--- a/app/Views/job_card_form.php
+++ b/app/Views/job_card_form.php
@@ -94,6 +94,32 @@
                                     
                                 
                             
+
+                            
+                                
+ + +
+ + + get('logged_user_role') == 'Store Manager') { ?> +
+ + +
+
@@ -938,7 +964,7 @@ $(document).ready(async function() { '' + '' + '' + - '
' + + '
' + '' + ''; diff --git a/app/Views/jobs_list.php b/app/Views/jobs_list.php index 1d04e3f..a34d837 100644 --- a/app/Views/jobs_list.php +++ b/app/Views/jobs_list.php @@ -44,8 +44,13 @@ Client Name Client Mobile Quantity - Subtotal - Tax + get('logged_user_role') != 'Store Manager') { ?> + Subtotal + Tax + + Issued From The Store + Total Status Actions @@ -62,8 +67,13 @@ - - + get('logged_user_role') != 'Store Manager') { ?> + + + + + diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php index 4ea2aaf..0eee6e9 100644 --- a/app/Views/layout/header.php +++ b/app/Views/layout/header.php @@ -148,7 +148,10 @@ get('logged_user_role') == 'Floor Manager' || session()->get('logged_user_role') == 'Administrator' || - session()->get('logged_user_role') == 'Job Card Manager') { + session()->get('logged_user_role') == 'Job Card Manager' || + session()->get('logged_user_role') == 'Store Manager' || + session()->get('logged_user_role') == 'Senior Mechanic' || + session()->get('logged_user_role') == 'Mechanic') { ?> @@ -164,12 +167,14 @@
  • Job Card
  • -
  • - Vehicles -
  • -
  • - Clients -
  • + get('logged_user_role') == 'Floor Manager' || session()->get('logged_user_role') == 'Administrator' || session()->get('logged_user_role') == 'Job Card Manager') { ?> +
  • + Vehicles +
  • +
  • + Clients +
  • +
    diff --git a/app/Views/product_form.php b/app/Views/product_form.php index fea84cb..a7aed8e 100644 --- a/app/Views/product_form.php +++ b/app/Views/product_form.php @@ -183,19 +183,15 @@

    Pricing Information :


    -
    - - -
    - -
    +
    -
    +
    + + +
    +
    +
    + + +
    + - - -

    Stock Information :


    -
    - - -
    -
    - - -
    -
    - - -
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + + +