diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..dbed322 --- /dev/null +++ b/.htaccess @@ -0,0 +1,49 @@ +# Disable directory browsing +Options -Indexes + +# ---------------------------------------------------------------------- +# Rewrite engine +# ---------------------------------------------------------------------- + +# Turning on the rewrite engine is necessary for the following rules and features. +# FollowSymLinks must be enabled for this to work. + + Options +FollowSymlinks + RewriteEngine On + + # If you installed CodeIgniter in a subfolder, you will need to + # change the following line to match the subfolder you need. + # http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase + # RewriteBase / + + # Redirect Trailing Slashes... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Rewrite "www.example.com -> example.com" + RewriteCond %{HTTPS} !=on + RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] + RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] + + # Checks to see if the user is attempting to access a valid file, + # such as an image or css document, if this isn't true it sends the + # request to the front controller, index.php + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA] + + # Ensure Authorization header is passed along + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + + + # If we don't have mod_rewrite installed, all 404's + # can be sent to index.php, and everything works as normal. + ErrorDocument 404 index.php + + +# Disable server signature start + ServerSignature Off +# Disable server signature end diff --git a/app/Config/App.php b/app/Config/App.php index 743a61c..e41c2cb 100644 --- a/app/Config/App.php +++ b/app/Config/App.php @@ -16,7 +16,7 @@ class App extends BaseConfig * * E.g., http://example.com/ */ - public string $baseURL = 'http://localhost/the_mechanic/public'; + public string $baseURL = 'http://localhost/the_mechanic/'; /** * Allowed Hostnames in the Site URL other than the hostname in the baseURL. @@ -57,7 +57,8 @@ class App extends BaseConfig * * WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded! */ - public string $uriProtocol = 'REQUEST_URI'; + // public string $uriProtocol = 'REQUEST_URI'; + public string $uriProtocol = 'PATH_INFO'; /** * -------------------------------------------------------------------------- diff --git a/app/Config/Routes.php b/app/Config/Routes.php index b96fbe3..8ee9346 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -154,6 +154,8 @@ $routes->get("delete_purchase/(:any)", "Purchase::delete_purchase/$1"); $routes->post("getVendorProducts", "Purchase::getVendorProducts"); $routes->post("delete_purchase_product", "Purchase::delete_purchase_product"); $routes->get("download_purchase_invoice/(:any)", "Purchase::download_purchase_invoice/$1"); +$routes->get("reorder_purchase/(:any)", "Purchase::reorder_purchase/$1"); + // Reorder Level// $routes->get('reorder_level_index', 'Reorderlevel::reorder_level_index'); $routes->get('rise_order/(:any)', 'Reorderlevel::rise_order/$1'); diff --git a/app/Controllers/Client.php b/app/Controllers/Client.php index 160be64..a38c707 100644 --- a/app/Controllers/Client.php +++ b/app/Controllers/Client.php @@ -11,16 +11,16 @@ class Client extends BaseController { public $session; + protected $UsersModel; public function __construct() { - - $this->session = session(); + $this->session = session(); // Initialize session $this->UsersModel = new UsersModel(); } public function client_index() { - + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $ClientModel = new ClientModel(); $client = $ClientModel->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll(); $data['client']=$client; @@ -32,7 +32,7 @@ class Client extends BaseController public function new_client($client_id) { - + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } if ($client_id === '0') { $data['client'] = []; @@ -53,7 +53,7 @@ class Client extends BaseController public function add_client() { - + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $ClientModel = new ClientModel(); @@ -86,8 +86,10 @@ class Client extends BaseController return redirect()->to('client_index'); } + public function delete_client($client_id) { + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $model = new ClientModel(); $where = ['client_id' => $client_id, 'isactive' => 1 , 'branch_id' => $this->session->get('logged_user_branch_id')]; // Assuming 'isactive' is a column in your database $existingBusiness = $model->where($where)->first(); @@ -106,6 +108,7 @@ class Client extends BaseController } public function client_quick_create(){ + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } // Load ClientModel $ClientModel = new ClientModel(); diff --git a/app/Controllers/Manufacturer.php b/app/Controllers/Manufacturer.php index dd97d32..c3ed2e2 100644 --- a/app/Controllers/Manufacturer.php +++ b/app/Controllers/Manufacturer.php @@ -11,7 +11,7 @@ class Manufacturer extends BaseController public $session; use ResponseTrait; - + protected $ManufacturerModel; public function __construct() { @@ -21,6 +21,7 @@ class Manufacturer extends BaseController public function index() { + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $ManufacturerModel = new ManufacturerModel(); $spare_manufacturer = $ManufacturerModel->findAll(); @@ -33,6 +34,7 @@ class Manufacturer extends BaseController public function create_manufacturer() { + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } try { $manufacturer_name = $this->request->getPost('manufacturername'); $quality = $this->request->getPost('quality'); diff --git a/app/Controllers/Products.php b/app/Controllers/Products.php index 5053650..f6df5a8 100644 --- a/app/Controllers/Products.php +++ b/app/Controllers/Products.php @@ -22,7 +22,7 @@ class Products extends BaseController public function product_index($manufacturer_id = null) { - + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } if ($manufacturer_id) { $ProductModel = new ProductModel(); $ManufacturerModel = new ManufacturerModel(); @@ -54,7 +54,7 @@ class Products extends BaseController public function new_product($product_id) { - + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } if ($product_id === '0') { $data['products'] = []; @@ -113,7 +113,7 @@ class Products extends BaseController public function add_product() { - + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $ProductModel = new ProductModel(); $tax= $this->request->getPost('tax')/2; @@ -140,11 +140,13 @@ class Products extends BaseController 'rack_number' => $this->request->getPost('rack_number'), 'manufacturer_id' => $this->request->getPost('manufacturer'), 'prefered_vendor' => $this->request->getPost('prefered_vendor'), + 'specification' => $this->request->getPost('specification'), + 'hsn_sac' => $this->request->getPost('hsn_sac'), 'isactive' => 1 , 'branch_id' => $this->session->get('logged_user_branch_id') ]; - // print_r($data);die; + $product_id = $this->request->getPost('product_id'); @@ -158,14 +160,15 @@ class Products extends BaseController } $orderNumber = 'TM' . str_pad($product_id, 8, '0', STR_PAD_LEFT); -// print_r($orderNumber);die; - // Update sales order with generated order number - $ProductModel->update($product_id, ['sku_id' => $orderNumber]); - return redirect()->to('product_index'); + + // Update sales order with generated order number + $ProductModel->update($product_id, ['sku_id' => $orderNumber]); + return redirect()->to('product_index'); } public function delete_product($product_id) { + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $model = new ProductModel(); $where = ['product_id' => $product_id, 'isactive' => 1 , 'branch_id' => $this->session->get('logged_user_branch_id')]; // Assuming 'isactive' is a column in your database $existingProduct = $model->where($where)->first(); diff --git a/app/Controllers/Purchase.php b/app/Controllers/Purchase.php index 208ca99..a1061cc 100644 --- a/app/Controllers/Purchase.php +++ b/app/Controllers/Purchase.php @@ -21,6 +21,7 @@ class Purchase extends BaseController public function purchase_index() { + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $PurchaseOrderModel = new PurchaseOrderModel(); // $purchase = $PurchaseOrderModel->where('purchase_order.branch_id', $this->session->get('logged_user_business_id')) @@ -31,6 +32,8 @@ class Purchase extends BaseController $purchase = $PurchaseOrderModel->getPurchaseOrdersWithProducts($this->session->get('logged_user_branch_id')); // echo "
";
         // print_r($product);die;
+
+        // echo json_encode($purchase);die;
         $data['purchase']=$purchase;
     
         // echo "
";
@@ -40,6 +43,7 @@ class Purchase extends BaseController
           
     public function new_purchase($purchase_order_id)
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         if ($purchase_order_id === '0') {
            
             $data['purchase'] = [];  
@@ -107,8 +111,92 @@ class Purchase extends BaseController
         echo view('purchase_form',$data);
     }
 
+
+    public function reorder_purchase($purchase_order_id)
+    {
+
+        // $data['page_name']="Edit Purchase Order";
+
+        // $PurchaseOrderModel = new PurchaseOrderModel();
+        // $purchase=$PurchaseOrderModel->where('purchase_order_id', $purchase_order_id)->get()->getRowArray();
+        
+        // $VendorModel = new VendorModel();
+        // $vendor = $VendorModel->where('branch_id',$this->session->get('logged_user_business_id'))->select('vendor_id,vendor_name')->findAll();
+        // $data['vendor']=$vendor;
+
+        // $data['purchase'] = $purchase;
+
+        // $VendorModel = new VendorModel();
+        // $vendor = $VendorModel->findAll();
+        // $data['vendor'] = $vendor;
+
+        // $data['vendor_id'] = $purchase['vendor_id'];
+        // // print_r($vendor);die;
+        // $vendorId=$purchase['vendor_id'];
+        // $encodedVendorId = json_encode([$vendorId]);
+        // $productModel = new ProductModel();
+
+        // // Query the database to find the product based on make_id and model_id
+        // $product = $productModel->where('JSON_CONTAINS(vendor, \'' . $encodedVendorId . '\')', null, false)
+        //                         ->findAll();
+        // $data['product']=$product;
+        // // print_r($product);die;
+                
+        $data['purchase'] = [];  
+        $PurchaseOrderModel = new PurchaseOrderModel();
+        $purchase=$PurchaseOrderModel->where('purchase_order_id', $purchase_order_id)->get()->getRowArray();
+       
+        $VendorModel = new VendorModel();
+        $vendor = $VendorModel->where('branch_id',$this->session->get('logged_user_business_id'))->select('vendor_id,vendor_name')->findAll();
+        $data['vendor']=$vendor;
+
+        unset($purchase['purchase_order_id']);
+        $data['purchase'] = $purchase;
+           
+        
+        
+        $VendorModel = new VendorModel();
+        $vendor = $VendorModel->findAll();
+        $data['vendor'] = $vendor;
+
+        // $data['vendor_id'] = $purchase['vendor_id'];
+
+
+        $BranchModel = new BranchModel();
+        $BusinessModel = new BusinessModel();
+        $branch = $BranchModel->where('branch_id', $this->session->get('logged_user_branch_id'))->get()->getRowArray();
+        $business = $BusinessModel->where('business_id', $this->session->get('logged_user_business_id'))->get()->getRowArray();
+        $ProductModel = new ProductModel();
+        $product=$ProductModel
+                ->where('isactive',1)
+                ->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
+        $data['product']=$product;   
+        $data['branch'] = $branch;  
+        $data['business'] = $business;  
+        $data['reorder'] = true; 
+        $data['page_name']="Add Purchase Order";
+        $data['vendor']=$vendor;
+        $data['vendor_id'] = [];
+                
+        $PurchaseOrderChildModel = new PurchaseOrderChildModel();
+
+        $purchase_product = $PurchaseOrderChildModel
+                            ->select('product_id, qty, received_qty, isactive, is_selected')
+                            ->where('purchase_order_id', $purchase_order_id)
+                            ->where('(is_selected = 0 OR (qty > received_qty AND received_qty != 0) )')
+                            ->findAll();
+
+        $data['purchase_product'] = $purchase_product;
+
+
+
+        // echo json_encode($purchase_product);die;
+        echo view('purchase_form',$data);
+    }
+
     public function add_purchase()
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $PurchaseOrderModel = new PurchaseOrderModel();
         $ProductModel = new ProductModel();
         $PurchaseOrderChildModel = new PurchaseOrderChildModel(); 
@@ -132,10 +220,7 @@ class Purchase extends BaseController
             'branch_id'=> $this->session->get('logged_user_branch_id'),
         ];
 
-    // echo '
';
-    //  print_r($this->request->getPost());
-    //  echo '
'; - //die; + $purchase_order_id = $this->request->getPost('purchase_order_id'); // echo $purchase_order_id;die; if (!empty($purchase_order_id)) { @@ -184,7 +269,8 @@ class Purchase extends BaseController $child_data = [ 'purchase_order_id' => $purchase_order_id, 'product_id' => $product_id, - 'qty' => $qty, + // 'qty' => $qty, + // 'received_qty' => $qty, // 'discount' => $discount, // 'discount_type' => $discount_type, 'net_price'=>$rate, @@ -193,6 +279,14 @@ class Purchase extends BaseController 'is_selected'=>$selected_item, 'isactive'=>1, ]; + + if($status == 'Received') { + $child_data['received_qty'] = $qty; + } + else{ + $child_data['qty'] = $qty; + } + // print_r($child_data);die; if (!empty($purchase_order_child_id[$key])) { @@ -211,9 +305,11 @@ class Purchase extends BaseController return redirect()->to('purchase_index'); } - private function addBackProductQuantity($ProductModel, $product_id, $sold_qty) + + +private function addBackProductQuantity($ProductModel, $product_id, $sold_qty) { - + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } // Fetch current product quantity $product = $ProductModel->find($product_id); $current_qty = $product['qty_stock']; @@ -227,6 +323,7 @@ class Purchase extends BaseController public function delete_purchase($purchase_order_id) { + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $PurchaseOrderModel = new PurchaseOrderModel(); $where = ['purchase_order_id' => $purchase_order_id, 'isactive' => 1 ]; // Assuming 'isactive' is a column in your database $existingPurchase = $PurchaseOrderModel->where($where)->first(); @@ -258,7 +355,8 @@ class Purchase extends BaseController return json_encode($products); } - public function getVendorProducts() + +public function getVendorProducts() { // Retrieve make_id and model_id from the request // $makeId = $this->request->getPost(''); @@ -372,4 +470,5 @@ public function download_purchase_invoice($purchase_order_id) // Output the PDF to the browser for download $mpdf->Output('invoice_' . date('Y-m-d H-i-s') . '.pdf', 'D'); } + } \ No newline at end of file diff --git a/app/Controllers/Reorderlevel.php b/app/Controllers/Reorderlevel.php index dc82abc..cf564c9 100644 --- a/app/Controllers/Reorderlevel.php +++ b/app/Controllers/Reorderlevel.php @@ -22,25 +22,56 @@ class Reorderlevel extends BaseController public function reorder_level_index() { + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } $productModel = new ProductModel(); - $reorder = $productModel->where('qty_stock <= purchase_order_level')->findAll(); - - // print_r($reorder);die; + $reorder = $productModel->select('products.*, vendor.vendor_name as prefered_vendor_name, COUNT(vendor.vendor_name) as product_count') + ->join('vendor', 'vendor.vendor_id = products.prefered_vendor') + ->where('products.qty_stock <= purchase_order_level') + ->groupBy('products.prefered_vendor') + ->findAll(); +// echo json_encode($reorder);die; $data['reorder']=$reorder; - // echo "
";
-        // print_r($data);die;
         return view('reorder_level_list',$data);
     }
-    public function rise_order($product_id)
+    
+    // public function rise_order($product_id)
+    // {
+    //     if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
+    //     $data['page_name']="Rise Order";
+    //     $ProductModel = new ProductModel();
+    //     $products=$ProductModel->where('product_id', $product_id)->get()->getRowArray();
+    //     $data['products']=$products;
+    //     // echo "
";
+    //     // print_r($products);die;
+    //     $vendorid= $products['prefered_vendor'];
+    //     $VendorModel = new VendorModel();
+    //     $vendor=$VendorModel->where('vendor_id',$vendorid)->findAll();
+    //     $data['vendor']=$vendor;
+
+    //     $PurchaseOrderModel = new PurchaseOrderModel();
+    //     $purchase=$PurchaseOrderModel->where('vendor_id',$vendorid)->first();
+
+    //     $data['purchase']=$purchase;
+    // return view('reorder_level_form',$data);
+    // }
+
+    public function rise_order($prefered_vendor)
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $data['page_name']="Rise Order";
         $ProductModel = new ProductModel();
-        $products=$ProductModel->where('product_id', $product_id)->get()->getRowArray();
+        $products=$ProductModel->where('prefered_vendor', $prefered_vendor)->where('qty_stock <= purchase_order_level')->findAll();
+        // echo json_encode($products);die;
         $data['products']=$products;
         // echo "
";
         // print_r($products);die;
-        $vendorid= $products['prefered_vendor'];
+        $vendorid= $prefered_vendor;
+         
+        $product_data = $ProductModel->where('prefered_vendor', $vendorid)->findAll();
+        // echo json_encode($product_data);die;
+        $data['product_data'] = $product_data;
+
         $VendorModel = new VendorModel();
         $vendor=$VendorModel->where('vendor_id',$vendorid)->findAll();
         $data['vendor']=$vendor;
diff --git a/app/Controllers/ReturnOrder.php b/app/Controllers/ReturnOrder.php
index 3b5100b..8d383d2 100644
--- a/app/Controllers/ReturnOrder.php
+++ b/app/Controllers/ReturnOrder.php
@@ -16,6 +16,7 @@ use App\Models\PurchaseOrderModel;
 class ReturnOrder extends BaseController
 {
     public $session;
+    protected $returnModel;
     public function __construct()
 	{
 		$this->session = session();
@@ -24,24 +25,24 @@ class ReturnOrder extends BaseController
  
     public function return_order_index()
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $PurchaseOrderModel = new PurchaseOrderModel();
 
         $purchase = $PurchaseOrderModel->getPurchaseOrdersWithProducts($this->session->get('logged_user_branch_id'));
-        // echo "
";
-        // print_r($product);die;
+       
         $data['purchase']=$purchase;
         
        
 
         $return = $this->returnModel->findAll();
         $data['return']=$return;
-        // echo "
";
-        // print_r($data);die;
+        
         return view('return_order_liist',$data);
     }
          
     public function return_order()
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $ReturnModel = new ReturnModel();
 
         $return_orders = $ReturnModel->select('return_order.*, vendor.vendor_name as vendor_name, COUNT(return_order_child.return_order_id) AS return_count')
@@ -61,6 +62,7 @@ class ReturnOrder extends BaseController
     }
     public function new_return($purchase_order_id)
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
 
             $data['page_name']="Create Return Order";
 
@@ -89,8 +91,8 @@ class ReturnOrder extends BaseController
 
 
             $PurchaseOrderChildModel = new PurchaseOrderChildModel();
-            $purchase_product=$PurchaseOrderChildModel->where('purchase_order_id', $purchase_order_id)->findAll();
-            $data['purchase_product']=$purchase_product;
+            $purchase_product=$PurchaseOrderChildModel->where('purchase_order_id', $purchase_order_id)->where('received_qty >', 0)->where('is_selected', 1)->findAll();
+            $data['purchase_product'] = $purchase_product;
 
       
            echo view('return_order_form',$data);
@@ -98,6 +100,7 @@ class ReturnOrder extends BaseController
 
     public function add_return_purchase()
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
 
         
         $ProductModel = new ProductModel();
@@ -129,6 +132,7 @@ class ReturnOrder extends BaseController
 
                 $ReturnModel = new ReturnModel();
                 $ReturnOrderChildModel = new ReturnOrderChildModel();
+                $PurchaseOrderChildModel = new PurchaseOrderChildModel();
 
                 $return = $ReturnModel->where('return_order_id', $return_order_id)->first();
 
@@ -140,6 +144,14 @@ class ReturnOrder extends BaseController
                     $quantity =$this->request->getPost('quantity');
                     $item_details =$this->request->getPost('item_details');
                     foreach ($item_details as $index => $item_detail) {
+
+                        // reduce qty in purchaase child
+                        $purchase_id = $this->request->getPost('purchase_order_id');
+                        $purchase_order_data = $PurchaseOrderChildModel->where('purchase_order_id', $purchase_id)->where('product_id', $item_detail)->first();
+                        $received_qty = $purchase_order_data['received_qty'] - $quantity[$index];
+                        $PurchaseOrderChildModel->update($purchase_order_data['purchase_order_child_id'], [ 'received_qty' => $received_qty ]); 
+
+
                         $product = $ProductModel->where('product_id',$item_detail)->first();
                         $changed_quantity = $product['qty_stock'] - $quantity[$index];
                         $product_id = $item_detail;
@@ -154,7 +166,7 @@ class ReturnOrder extends BaseController
 
        
                 $return_order_id = $this->request->getPost('return_order_id');
-        
+                // echo $this->request->getPost('return_order_id');die;
                 if (!empty($return_order_id)) {
                 
                     $this->returnModel->update($return_order_id, $data);
@@ -294,7 +306,7 @@ class ReturnOrder extends BaseController
         return $this->response->setJSON(['product'=>$product] );
     } else {
         // If product is not found, return an empty response or appropriate message
-        return $this->response->setJSON(['product'=>[] , 'modelName'=>$modelName ,'makeName'=>$makeName]);
+        return $this->response->setJSON(['product'=>[] ]);
     }
 }
 public function delete_purchase_product()
diff --git a/app/Controllers/Sales.php b/app/Controllers/Sales.php
index 428e09f..de1d87e 100644
--- a/app/Controllers/Sales.php
+++ b/app/Controllers/Sales.php
@@ -13,6 +13,8 @@ use Mpdf\Mpdf;
 class Sales extends BaseController
 {
     public $session;
+    protected $BikemodelsModel;
+    protected $BikemakeModel;
     public function __construct()
 	{
 
@@ -24,11 +26,11 @@ class Sales extends BaseController
  
     public function sales_order_index()
     {
-
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $SalesOrderModel = new SalesOrderModel();
         $sales=$SalesOrderModel->getSalesOrdersWithProducts($this->session->get('logged_user_branch_id'));
         $data['sales']=$sales;
-//    print_r($sales);die;
+
         return view('sales_list',$data);
     }
 
@@ -36,7 +38,7 @@ class Sales extends BaseController
     public function new_sale($sales_order_id)
     {
        
-       
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         if ($sales_order_id === '0') {
            $data['page_name']="Create Sales Order";
             $data['sales'] = [];  
@@ -48,7 +50,7 @@ class Sales extends BaseController
             $vehicle = $VehicleModel->getCustomerandVehicle($this->session->get('logged_user_branch_id'));
             // ->where('isactive',1)
             // ->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
-// print_r($vehicle);die;
+
             $ProductModel = new ProductModel();
         $product=$ProductModel
         ->where('isactive',1)
@@ -66,42 +68,42 @@ class Sales extends BaseController
             $data['page_name']="Edit Sale Order";
             $ClientModel = new ClientModel();
             $client=$ClientModel->where('isactive',1)->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
-$SalesOrderModel = new SalesOrderModel(); 
-$sales=$SalesOrderModel->where('sales_order_id', $sales_order_id)->get()->getRowArray();
-$data['sales']=$sales;
+            $SalesOrderModel = new SalesOrderModel(); 
+            $sales=$SalesOrderModel->where('sales_order_id', $sales_order_id)->get()->getRowArray();
+            $data['sales']=$sales;
 
-$VehicleModel = new VehicleModel();
-$vehicles = $VehicleModel->where('isactive',1)->where('vehicle_id',$sales['vehicle_id'])
-                        ->where('branch_id',$this->session->get('logged_user_branch_id'))
-                        ->first();
-$makeId = $vehicles['make'];
-    $modelId = $vehicles['model'];
+            $VehicleModel = new VehicleModel();
+            $vehicles = $VehicleModel->where('isactive',1)->where('vehicle_id',$sales['vehicle_id'])
+                                    ->where('branch_id',$this->session->get('logged_user_branch_id'))
+                                    ->first();
+            $makeId = $vehicles['make'];
+                $modelId = $vehicles['model'];
 
-    // Encode the modelId before searching
-    $encodedModelId = json_encode([$modelId]);
+            // Encode the modelId before searching
+            $encodedModelId = json_encode([$modelId]);
 
-    // Load the ProductModel
-    $productModel = new ProductModel();
+            // Load the ProductModel
+            $productModel = new 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)
-                            ->findAll();
-    $data['product']=$product;
-$SalesProductOrderModel = new SalesOrderProductModel();
-$sales_product=$SalesProductOrderModel->where('sales_order_id', $sales_order_id)->findAll();
-$data['sales_product']=$sales_product;
-$data['client']=$client; 
-// print_r($sales_product);die;
-$VehicleModel = new VehicleModel();
-            $vehicle=$VehicleModel
-            ->where('isactive',1)
-            ->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
-            $data['vehicle']=$vehicle; 
+                // 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)
+                                    ->findAll();
+                        $data['product']=$product;
+                    $SalesProductOrderModel = new SalesOrderProductModel();
+                    $sales_product=$SalesProductOrderModel->where('sales_order_id', $sales_order_id)->findAll();
+                    $data['sales_product']=$sales_product;
+                    $data['client']=$client; 
+
+                    $VehicleModel = new VehicleModel();
+                    $vehicle=$VehicleModel
+                    ->where('isactive',1)
+                    ->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
+                    $data['vehicle']=$vehicle; 
 
      
         }
-        // print_r($data);die;
+     
         $data['sales_order_id'] = $sales_order_id;
         $bikeMakeModel = new BikeMakeModel();
         $data['makeData'] =$bikeMakeModel->findAll();
@@ -109,8 +111,9 @@ $VehicleModel = new VehicleModel();
     }
 
    
-    public function add_sales()
+public function add_sales()
 {
+    if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
     $SalesOrderModel = new SalesOrderModel();
     $ProductModel = new ProductModel();
     $SalesOrderProductModel = new SalesOrderProductModel(); // Assuming you have a model for sales_order_product
@@ -134,7 +137,7 @@ $VehicleModel = new VehicleModel();
         'isactive' => 1, // Assuming this is a default value or handled separately
         'branch_id'=> $this->session->get('logged_user_branch_id'),
     ];
-// print_r($data);die;
+
     // Insert or update sales order
     $sales_order_id = $this->request->getPost('sales_order_id');
     if (!empty($sales_order_id)) {
@@ -145,10 +148,10 @@ $VehicleModel = new VehicleModel();
         $sales_order_id = $SalesOrderModel->getInsertID(); // Get the last inserted ID
     }
     $orderNumber = 'SO' .  str_pad($sales_order_id, 8, '0', STR_PAD_LEFT);
-// print_r($orderNumber);die;
+
     // Update sales order with generated order number
     $SalesOrderModel->update($sales_order_id, ['order_number' => $orderNumber]);
-//  print_r();die;
+
     // Prepare data for sales order product
     $product_ids = $this->request->getPost('item_details');
     $quantities = $this->request->getPost('quantity');
@@ -158,10 +161,10 @@ $VehicleModel = new VehicleModel();
     $itemtax=$this->request->getPost('item-tax');
     $unitprice=$this->request->getPost('unit-price');
     $sales_product_id = $this->request->getPost('sales_order_product_id');
-//    print_r($product_ids);die;
 
-// print_r($status);die;
-$status = $this->request->getPost('status');
+
+
+    $status = $this->request->getPost('status');
     foreach ($product_ids as $key => $product_id) {
         $qty = isset($quantities[$key]) ? $quantities[$key] : 0;
         if ($status == 'Created') {
@@ -212,6 +215,7 @@ $status = $this->request->getPost('status');
 
 private function addBackProductQuantity($ProductModel, $product_id, $sold_qty)
 {
+    if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
     // Fetch current product quantity
     $product = $ProductModel->find($product_id);
     $current_qty = $product['qty_stock'];
@@ -224,6 +228,7 @@ private function addBackProductQuantity($ProductModel, $product_id, $sold_qty)
 }
 private function updateProductQuantity($ProductModel, $product_id, $sold_qty)
 {
+    if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
     // Fetch current product quantity
     $product = $ProductModel->find($product_id);
     $current_qty = $product['qty_stock'];
@@ -237,6 +242,7 @@ private function updateProductQuantity($ProductModel, $product_id, $sold_qty)
 
 public function delete_sales_product()
 {
+    if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
     $sales_order_product_id = $this->request->getPost('sales_order_product_id');
     
     if (!empty($sales_order_product_id)) {
@@ -256,6 +262,7 @@ public function delete_sales_product()
 
     public function delete_sale($sales_order_id)
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $model = new SalesOrderModel();
         $where = ['sales_order_id' => $sales_order_id, 'isactive' => 1]; // Assuming 'isactive' is a column in your database
         $existingProduct = $model->where($where)->first();
@@ -272,9 +279,11 @@ public function delete_sales_product()
        
         return redirect()->to('sales_order_index');
     }
+
+
     public function download_invoice($sales_order_id)
     {
-        // echo "hello"; die;
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         // Fetch the invoice data based on $invoice_id
         $model = new SalesOrderModel();
         $data = $model->getSalesPdf($sales_order_id);
@@ -282,12 +291,7 @@ public function delete_sales_product()
      $items = $model->getSalesOrderProductsForPdf($sales_order_id);
 
         
-        
-        //  print_r($items);die();
-        
-        //  print_r($invoiceItems);die();
-
-        // Create an mPDF object
+      
         $mpdf = new Mpdf([
 			'mode' => '',
 			'format' => 'A5',
@@ -332,7 +336,7 @@ public function delete_sales_product()
 
         // 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);
 
@@ -342,6 +346,7 @@ public function delete_sales_product()
     
     
     public function save_vehicle(){
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         // Load ClientModel
         $VehicleModel = new VehicleModel();
       
@@ -415,6 +420,7 @@ public function get_vehicle_products(){
 
 public function getProducts()
 {
+    if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
     // Retrieve make_id and model_id from the request
     $makeId = $this->request->getPost('make_id');
     $modelId = $this->request->getPost('model_id');
@@ -428,6 +434,7 @@ public function getProducts()
     // 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)
+                            ->where('qty_stock >',0)
                             ->findAll();
 
     $modelName = $this->BikemodelsModel->where('model_id',$modelId)->get()->getRow()->model_name;
@@ -442,4 +449,4 @@ public function getProducts()
 }
   // Check if product exists
                                   
-}
+}
\ No newline at end of file
diff --git a/app/Controllers/Vehicle.php b/app/Controllers/Vehicle.php
index 67a5187..fbda542 100644
--- a/app/Controllers/Vehicle.php
+++ b/app/Controllers/Vehicle.php
@@ -13,6 +13,8 @@ class Vehicle extends BaseController
 
 
     public $session;
+    protected $bikeMakeModel;
+    protected $bikeModelsModel;
     public function __construct()
 	{
 		$this->session = session();
@@ -22,7 +24,7 @@ class Vehicle extends BaseController
  
     public function vehicle_index()
     {
-        
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $VehicleModel = new VehicleModel();
         $vehicle = $VehicleModel->getCustomerandVehicle($this->session->get('logged_user_branch_id'));
         $data['vehicle'] = $vehicle;
@@ -38,7 +40,7 @@ class Vehicle extends BaseController
     public function new_vehicle($vehicle_id)
     {
        
-       
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         if ($vehicle_id === '0') {
             $ClientModel = new ClientModel();
             $data['vehicle'] = [];  
@@ -69,7 +71,7 @@ class Vehicle extends BaseController
    
     public function add_vehicle()
     {
-
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $VehicleModel = new VehicleModel();
     
         
@@ -90,7 +92,7 @@ class Vehicle extends BaseController
             'specific' => $this->request->getPost('specific'),
             'isactive' => 1 // Assuming this is a default value or handled separately
         ];
-    // print_r($data);die;
+
       
         $vehicle_id = $this->request->getPost('vehicle_id');
     
@@ -106,8 +108,10 @@ class Vehicle extends BaseController
         
         return redirect()->to('vehicle_index');
     }
+
     public function delete_vehicle($vehicle_id)
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $model = new VehicleModel();
         $where = ['vehicle_id' => $vehicle_id, 'isactive' => 1]; // Assuming 'isactive' is a column in your database
         $existingBusiness = $model->where($where)->first();
diff --git a/app/Controllers/Vendor.php b/app/Controllers/Vendor.php
index 16a7961..5e15915 100644
--- a/app/Controllers/Vendor.php
+++ b/app/Controllers/Vendor.php
@@ -14,6 +14,7 @@ class Vendor extends BaseController
 {
 
     public $session;
+    protected $UsersModel;
     public function __construct()
 	{
 
@@ -23,7 +24,7 @@ class Vendor extends BaseController
  
     public function vendor_index()
     {
-    // print_r("hi");die;
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $VendorModel = new VendorModel();
         $vendor = $VendorModel->where('branch_id',$this->session->get('logged_user_branch_id'))->findAll();
         $data['vendor']=$vendor;
@@ -34,6 +35,7 @@ class Vendor extends BaseController
            
     public function new_vendor($vendor_id)
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         if ($vendor_id === '0') {
             $data['vendor'] = [];
             $data['page_name'] = "Add Vendor";
@@ -58,6 +60,7 @@ class Vendor extends BaseController
    
     public function add_vendor()
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $VendorModel = new VendorModel();
     
         
@@ -99,6 +102,7 @@ class Vendor extends BaseController
     
     public function delete_vendor($vendor_id)
     {
+        if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); }
         $model = new VendorModel();
         $where = ['vendor_id' => $vendor_id, 'isactive' => 1 , 'branch_id' => $this->session->get('logged_user_branch_id')]; // Assuming 'isactive' is a column in your database
         $existingBusiness = $model->where($where)->first();
diff --git a/app/Models/ProductModel.php b/app/Models/ProductModel.php
index 2c7de1f..24b65b7 100644
--- a/app/Models/ProductModel.php
+++ b/app/Models/ProductModel.php
@@ -5,7 +5,7 @@ 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','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'];
     
     
     public function getTax()
diff --git a/app/Models/PurchaseOrderChildModel.php b/app/Models/PurchaseOrderChildModel.php
index 0473c36..8c378e9 100644
--- a/app/Models/PurchaseOrderChildModel.php
+++ b/app/Models/PurchaseOrderChildModel.php
@@ -5,7 +5,7 @@ class PurchaseOrderChildModel extends Model
 {
     protected $table = 'purchase_order_child';
     protected $primaryKey = 'purchase_order_child_id';
-    protected $allowedFields = ['purchase_order_child_id','is_selected','purchase_order_id','product_id','qty','total','tax','net_price','amount','discount_type','selling_price','discount','isactive'];
+    protected $allowedFields = ['purchase_order_child_id','is_selected','purchase_order_id','product_id','qty', 'received_qty','total','tax','net_price','amount','discount_type','selling_price','discount','isactive'];
 
     
 }
\ No newline at end of file
diff --git a/app/Models/PurchaseOrderModel.php b/app/Models/PurchaseOrderModel.php
index 62b6b01..6e690ea 100644
--- a/app/Models/PurchaseOrderModel.php
+++ b/app/Models/PurchaseOrderModel.php
@@ -21,6 +21,10 @@ class PurchaseOrderModel extends Model
         // Add condition to fetch only active sales orders
         $this->where('purchase_order_child.isactive', 1);
         $this ->where('purchase_order.branch_id',$logged_user_branch_id);
+
+        $subquery = "(SELECT COUNT(*) FROM purchase_order_child WHERE purchase_order_child.purchase_order_id = purchase_order.purchase_order_id AND purchase_order_child.is_selected = 1) AS selected_product_count";
+        $this->select($subquery, false);
+                
         $this->orderBy('purchase_order.purchase_order_id','DESC');
         // Get the results
         return $this->findAll();
diff --git a/app/Views/client_list.php b/app/Views/client_list.php
index e34e5d2..0516b15 100644
--- a/app/Views/client_list.php
+++ b/app/Views/client_list.php
@@ -32,12 +32,7 @@
                                 
                                 Client Name
                                 Mobile
-                                Email
-                                Address
-                                City
-                                State
-                                Country  
-                                Pin Code                           
+                                Email     
                                 Actions
                                 
                             
@@ -51,14 +46,9 @@
             
             
             
-            
-            
-              
-                 
-               
             
-                " class="edit-button">
-                " class="delete-button">
+                " class="edit-button">     
+                " class="delete-button">     
             
         
 
diff --git a/app/Views/edit_account_form.php b/app/Views/edit_account_form.php
index 478019d..b50555d 100644
--- a/app/Views/edit_account_form.php
+++ b/app/Views/edit_account_form.php
@@ -44,6 +44,38 @@
                         
                     
 
+                    
+                    
+
+ + +
+ +
+ + +
+
+ + +
+
+ diff --git a/app/Views/edit_return_order.php b/app/Views/edit_return_order.php index b6341ad..7175ce7 100644 --- a/app/Views/edit_return_order.php +++ b/app/Views/edit_return_order.php @@ -124,7 +124,7 @@ - @@ -136,7 +136,7 @@ - + diff --git a/app/Views/layout/footer.php b/app/Views/layout/footer.php index 18a13c8..c00da37 100644 --- a/app/Views/layout/footer.php +++ b/app/Views/layout/footer.php @@ -38,33 +38,33 @@ - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php index 78fe4ae..337383a 100644 --- a/app/Views/layout/header.php +++ b/app/Views/layout/header.php @@ -8,24 +8,24 @@ - + - - - - + + + + - - + + - - + + - + +.select2-container--default .select2-results__option--highlighted[aria-selected] { + color: #ffffff; + background: #526dee !important; +} + +.select2-container .select2-selection--single { + height: 36px; + border: 1px solid #ced4da; +} + +.select2-container--default .select2-selection--single .select2-selection__rendered { + line-height: 36px; +} + +.select2-container--default .select2-selection--single .select2-selection__arrow { + top: 4px; +} +