diff --git a/product_stock_balance/__init__.py b/product_stock_balance/__init__.py new file mode 100644 index 000000000..bff786c08 --- /dev/null +++ b/product_stock_balance/__init__.py @@ -0,0 +1 @@ +import models diff --git a/product_stock_balance/__openerp__.py b/product_stock_balance/__openerp__.py new file mode 100644 index 000000000..7ae0b274c --- /dev/null +++ b/product_stock_balance/__openerp__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2009-TODAY Cybrosys Technologies(). +# Author: Sreejith P() +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# It is forbidden to publish, distribute, sublicense, or sell copies +# of the Software or modified copies of the Software. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## +{ + 'name': 'Available Stock in Product', + 'version': '0.3', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': 'http://www.cybrosys.com', + 'summary': 'Estimate Inventory Levels By Warehouses in Product Form', + 'depends': [ + 'product', + 'stock' + ], + 'category': 'Warehouse', + 'data': [ + 'views/product_internal_stock.xml', + 'security/ir.model.access.csv', + ], + 'demo': [], + 'license': 'AGPL-3', + 'images': ['static/description/banner.jpg'], + 'installable': True, + 'auto_install': False +} diff --git a/product_stock_balance/__openerp__.py~ b/product_stock_balance/__openerp__.py~ new file mode 100644 index 000000000..6a02acbaa --- /dev/null +++ b/product_stock_balance/__openerp__.py~ @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2009-TODAY Cybrosys Technologies(). +# Author: Sreejith P() +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# It is forbidden to publish, distribute, sublicense, or sell copies +# of the Software or modified copies of the Software. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## +{ + 'name': 'Available Stock in Product', + 'version': '0.2', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'website': 'http://www.cybrosys.com', + 'summary': 'Estimate Inventory Levels By Warehouses in Product Form', + 'depends': [ + 'product', + 'stock' + ], + 'category': 'Warehouse', + 'data': [ + 'views/product_internal_stock.xml', + 'security/ir.model.access.csv', + ], + 'demo': [], + 'license': 'AGPL-3', + 'images': ['static/description/banner.jpg'], + 'installable': True, + 'auto_install': False +} diff --git a/product_stock_balance/models/__init__.py b/product_stock_balance/models/__init__.py new file mode 100644 index 000000000..98487e59c --- /dev/null +++ b/product_stock_balance/models/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2009-TODAY Cybrosys Technologies(). +# Author: Sreejith P() +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# It is forbidden to publish, distribute, sublicense, or sell copies +# of the Software or modified copies of the Software. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +import product_internal_master diff --git a/product_stock_balance/models/product_internal_master.py b/product_stock_balance/models/product_internal_master.py new file mode 100644 index 000000000..561991b82 --- /dev/null +++ b/product_stock_balance/models/product_internal_master.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# Copyright (C) 2009-TODAY Cybrosys Technologies(). +# Author: Sreejith P() +# you can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# It is forbidden to publish, distribute, sublicense, or sell copies +# of the Software or modified copies of the Software. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# GENERAL PUBLIC LICENSE (LGPL v3) along with this program. +# If not, see . +# +############################################################################## + +from openerp import fields, models, api + + +class ProductForm(models.Model): + _inherit = 'product.template' + + internal_location = fields.One2many('stock.quantity', 'product_id', compute='get_product_qty') + + def get_product_qty(self): + location_list = [] + product_list = [] + obj_location = self.env['stock.location'].search([('usage', '=', 'internal')]) + for i in obj_location: + location_list.append(i.id) + obj_product = self.env['product.product'].search([('product_tmpl_id', '=', self.id)]) + for i in obj_product: + obj_quant = self.env['stock.quant'].search([('product_id', '=', i.id), + ('location_id', 'in', location_list)]) + for obj in obj_quant: + print obj.location_id.id + move_line = {'product_id': obj.product_id.id, + 'stock_location': obj.location_id.id, + 'qty_on_hand': obj.qty, + } + product_list.append(move_line) + for i in product_list: + self.internal_location |= self.env['stock.quantity'].create(i) + + +class InternalLocation(models.Model): + _name = 'stock.quantity' + + stock_location = fields.Many2one('stock.location', string='Location Name') + qty_on_hand = fields.Float('On Hand') + forecast = fields.Float('Forecast') + incoming_qty = fields.Float('Incoming Quantity') + outgoing_qty = fields.Float('Outgoing Quantity') + product_id = fields.Many2one('product.template', string='Product') diff --git a/product_stock_balance/security/ir.model.access.csv b/product_stock_balance/security/ir.model.access.csv new file mode 100644 index 000000000..8a04f4274 --- /dev/null +++ b/product_stock_balance/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_internal_stock,internal.stock,model_stock_quantity,base.group_user,1,1,1,1 diff --git a/product_stock_balance/static/description/banner.jpg b/product_stock_balance/static/description/banner.jpg new file mode 100644 index 000000000..b93be7d85 Binary files /dev/null and b/product_stock_balance/static/description/banner.jpg differ diff --git a/product_stock_balance/static/description/cybro_logo.png b/product_stock_balance/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/product_stock_balance/static/description/cybro_logo.png differ diff --git a/product_stock_balance/static/description/dev.png b/product_stock_balance/static/description/dev.png new file mode 100644 index 000000000..67122a461 Binary files /dev/null and b/product_stock_balance/static/description/dev.png differ diff --git a/product_stock_balance/static/description/icon.png b/product_stock_balance/static/description/icon.png new file mode 100644 index 000000000..8d899d183 Binary files /dev/null and b/product_stock_balance/static/description/icon.png differ diff --git a/product_stock_balance/static/description/index.html b/product_stock_balance/static/description/index.html new file mode 100644 index 000000000..6a71645cf --- /dev/null +++ b/product_stock_balance/static/description/index.html @@ -0,0 +1,56 @@ +
+
+
+

Stock Balance by Locations

+

Estimate inventory levels by warehouses in Product Form

+

Author : Cybrosys Techno Solutions , www.cybrosys.com

+
+
+
+
+ +
+
+
+

+

☀ The app goal is to provide you with instant outlook of how many units of this product are stocked at internal location.

+

+
+
+
+ +
+
+
+

+

☛ The estimation is provided right on a product form (the tab Inventory) as a table, where each line represents an internal location

+

+
+
+
+ +
+
+
+
+ +
+

Need Any Help?

+ + +
+ + + + + diff --git a/product_stock_balance/static/description/product_master.jpg b/product_stock_balance/static/description/product_master.jpg new file mode 100644 index 000000000..70657fa9d Binary files /dev/null and b/product_stock_balance/static/description/product_master.jpg differ diff --git a/product_stock_balance/views/product_internal_stock.xml b/product_stock_balance/views/product_internal_stock.xml new file mode 100644 index 000000000..697706221 --- /dev/null +++ b/product_stock_balance/views/product_internal_stock.xml @@ -0,0 +1,21 @@ + + + + + Product Locations + product.template + + + + + + + + + + + + + + + \ No newline at end of file