0
We have multiple stores, and from group permissions its possible to limit a user to access a specific warehouse, but on POS dashboard any user can see all of the products from all warehouses. I think it would be more helpfull if we dont show all of the products to all users. Could you help us fix?
Thank you
0
Hello,
Yes, all the data isn system level. If you assign the user a warehouse then use can only view the sales/purchase records of that warehouse only.
The products and all other data is system level and all the user can view them as per permissions.
Thank you
0
Hi @Bethelehem
I believe what you want to achieve is to display only products available at the warehouse or location assigned to the user in the POS dashboard. This will also mean that you didn't enable overselling; hence, to achieve that, replace the following functions in the Pos_model.php path: app\models\admin\Pos_model.php
.
products_count
in line 1259
with the modified function below. public function products_count($category_id, $subcategory_id = null, $brand_id = null)
{
if ($category_id) {
$this->db->where('category_id', $category_id);
}
if ($subcategory_id) {
$this->db->where('subcategory_id', $subcategory_id);
}
if ($brand_id) {
$this->db->where('brand', $brand_id);
}
$this->db->where('hide_pos !=', 1);
$this->db->from('products');
if ((!$this->Owner || !$this->Admin) && !$warehouse_id) {
$this->db->join('warehouses_products', 'warehouses_products.product_id=products.id', 'left')
->where('warehouse_id', $this->session->userdata('warehouse_id'))
->where('warehouses_products.quantity >', 0);
}
return $this->db->count_all_results();
}
fetch_products
in line 348
with the modified function below public function fetch_products($category_id, $limit, $start, $subcategory_id = null, $brand_id = null)
{
$this->db->limit($limit, $start);
if ($brand_id) {
$this->db->where('brand', $brand_id);
} elseif ($category_id) {
$this->db->where('category_id', $category_id);
}
if ($subcategory_id) {
$this->db->where('subcategory_id', $subcategory_id);
}
$this->db->where('hide_pos !=', 1);
$this->db->order_by('name', 'asc');
if ((!$this->Owner || !$this->Admin) && !$warehouse_id) {
$this->db->join('warehouses_products', 'warehouses_products.product_id=products.id', 'left')
->where('warehouse_id', $this->session->userdata('warehouse_id'))
->where('warehouses_products.quantity >', 0);
}
$query = $this->db->get('products');
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
My name is @Enyinnaya Gift . I am an Independent software developer
with in-depth knowledge of SMA system. I have done a lot of customization for many happy clients across the globe.
You can check out highlights and a demo of my latest customization by Clicking HERE - Highlights
You can also reach me via any of the following mediums for a real-time discussion on your customization request:
-Skype ID: enyinnayag
-Wechat ID: genyinnaya
-Email: [email protected]
-WhatsApp: +2348068355192
0
Hello, Thank you for your support, The codes work fine, but products are hidden for Admin & Owner, other users can see products.
Thank you
0
Hi @Bethelehem
Sorry for the oversight. Here are the update functions.
public function products_count($category_id, $subcategory_id = null, $brand_id = null)
{
if ($category_id) {
$this->db->where('category_id', $category_id);
}
if ($subcategory_id) {
$this->db->where('subcategory_id', $subcategory_id);
}
if ($brand_id) {
$this->db->where('brand', $brand_id);
}
$this->db->where('hide_pos !=', 1);
$this->db->from('products');
if ((!$this->Owner || !$this->Admin) && $this->session->userdata('warehouse_id')) {
$this->db->join('warehouses_products', 'warehouses_products.product_id=products.id', 'left')
->where('warehouse_id', $this->session->userdata('warehouse_id'))
->where('warehouses_products.quantity >', 0);
}
return $this->db->count_all_results();
}
public function fetch_products($category_id, $limit, $start, $subcategory_id = null, $brand_id = null)
{
$this->db->limit($limit, $start);
if ($brand_id) {
$this->db->where('brand', $brand_id);
} elseif ($category_id) {
$this->db->where('category_id', $category_id);
}
if ($subcategory_id) {
$this->db->where('subcategory_id', $subcategory_id);
}
$this->db->where('hide_pos !=', 1);
$this->db->order_by('name', 'asc');
if ((!$this->Owner || !$this->Admin) && $this->session->userdata('warehouse_id')) {
$this->db->join('warehouses_products', 'warehouses_products.product_id=products.id', 'left')
->where('warehouse_id', $this->session->userdata('warehouse_id'))
->where('warehouses_products.quantity >', 0);
}
$query = $this->db->get('products');
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
My name is @Enyinnaya Gift . I am an Independent software developer
with in-depth knowledge of SMA system. I have done a lot of customization for many happy clients across the globe.
You can check out highlights and a demo of my latest customization by Clicking HERE - Highlights
You can also reach me via any of the following mediums for a real-time discussion on your customization request:
-Skype ID: enyinnayag
-Wechat ID: genyinnaya
-Email: [email protected]
-WhatsApp: +2348068355192
0
Hello, Thanks again, seams working fine..need a minor fix tho, all products from all warehouses are visible for admin, i think better show products for selected warehouse only.
Also I checked your demo and I need this features
Also,
Thank you
We use Cookies
We use cookies to ensure that we give you the best experience on our website. By continuing to browse the site you are agreeing to our use of cookies.