diff --git a/modules/item/back/methods/item/getVisibleAvailable.js b/modules/item/back/methods/item/getVisibleAvailable.js
new file mode 100644
index 000000000..6e9f2b531
--- /dev/null
+++ b/modules/item/back/methods/item/getVisibleAvailable.js
@@ -0,0 +1,38 @@
+module.exports = Self => {
+ Self.remoteMethod('getVisibleAvailable', {
+ description: 'Returns visible and available for params',
+ accessType: '',
+ accepts: [
+ {
+ arg: 'itemFk',
+ type: 'Number',
+ required: true,
+ },
+ {
+ arg: 'warehouseFk',
+ type: 'Number',
+ required: true,
+ }],
+ returns: {
+ type: ['object'],
+ root: true
+ },
+ http: {
+ path: `/getVisibleAvailable`,
+ verb: 'GET'
+ }
+ });
+
+ Self.getVisibleAvailable = async(itemFk, warehouseFk) => {
+ let item = {};
+ let query = `
+ CALL vn.getItemVisibleAvailable(?,curdate(),?,?)`;
+
+ let options = [itemFk, warehouseFk, false];
+ [res] = await Self.rawSql(query, options);
+
+ item.available = res[0].available;
+ item.visible = res[0].visible;
+ return item;
+ };
+};
diff --git a/modules/item/back/models/item.js b/modules/item/back/models/item.js
index e34b2eec5..628bd5a03 100644
--- a/modules/item/back/models/item.js
+++ b/modules/item/back/models/item.js
@@ -9,6 +9,7 @@ module.exports = Self => {
require('../methods/item/getSummary')(Self);
require('../methods/item/getCard')(Self);
require('../methods/item/regularize')(Self);
+ require('../methods/item/getVisibleAvailable')(Self);
require('../methods/item/new')(Self);
Self.validatesPresenceOf('originFk', {message: 'Cannot be blank'});
diff --git a/modules/item/front/descriptor/index.html b/modules/item/front/descriptor/index.html
index 02e1267dc..22769d5a7 100644
--- a/modules/item/front/descriptor/index.html
+++ b/modules/item/front/descriptor/index.html
@@ -1,3 +1,10 @@
+