diff --git a/water_supply_with_mo/README.rst b/water_supply_with_mo/README.rst new file mode 100644 index 000000000..feb9a3c5c --- /dev/null +++ b/water_supply_with_mo/README.rst @@ -0,0 +1,47 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Water Supply With Manufacturing Order +===================================== +This module helps you to manufacturing the products from the water supply +request form. + +Configuration +============= +* Added Water Supply user in user settings. + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (AGPL v3). +(https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- +* Developer: (V16) Dhanya Babu, Contact : odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/water_supply_with_mo/__init__.py b/water_supply_with_mo/__init__.py new file mode 100644 index 000000000..4b3f94441 --- /dev/null +++ b/water_supply_with_mo/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +from . import models diff --git a/water_supply_with_mo/__manifest__.py b/water_supply_with_mo/__manifest__.py new file mode 100644 index 000000000..a40c3b150 --- /dev/null +++ b/water_supply_with_mo/__manifest__.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +{ + 'name': "Water Supply With Manufacturing Order", + 'version': '16.0.1.0.0', + 'category': 'Manufacturing', + 'summary': """This app allows you to create water supplying methods""", + 'description': """This app allows you to create water supplying methods + allows us to create manufacture orders from water supply requests.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['account', 'mail', 'mrp'], + 'data': [ + 'security/water_supply_with_mo_groups.xml', + 'security/ir.model.access.csv', + 'data/ir_sequence_data.xml', + 'views/water_supply_method_views.xml', + 'views/water_usage_places_views.xml', + 'views/water_usage_categories_views.xml', + 'views/water_supply_request_views.xml', + 'views/manufacturing_order_creation_views.xml', + 'views/mrp_production_views.xml', + 'views/water_supply_with_mo_menus.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': True, +} diff --git a/water_supply_with_mo/data/ir_sequence_data.xml b/water_supply_with_mo/data/ir_sequence_data.xml new file mode 100644 index 000000000..2f38ed986 --- /dev/null +++ b/water_supply_with_mo/data/ir_sequence_data.xml @@ -0,0 +1,13 @@ + + + + + + Water Supply Request + water_supply_request + WS + 4 + + + + diff --git a/water_supply_with_mo/doc/RELEASE_NOTES.md b/water_supply_with_mo/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..6d0276516 --- /dev/null +++ b/water_supply_with_mo/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 09.02.2024 +#### Version 16.0.1.0.0 +#### ADD +-Initial Commit for Water Supply With Manufacturing Order diff --git a/water_supply_with_mo/models/__init__.py b/water_supply_with_mo/models/__init__.py new file mode 100644 index 000000000..78431142a --- /dev/null +++ b/water_supply_with_mo/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +from . import manufacturing_order_creation +from . import mrp_production +from . import stock_move +from . import water_supply_methods +from . import water_supply_request +from . import water_usage_categories +from . import water_usage_places diff --git a/water_supply_with_mo/models/manufacturing_order_creation.py b/water_supply_with_mo/models/manufacturing_order_creation.py new file mode 100644 index 000000000..22c74982c --- /dev/null +++ b/water_supply_with_mo/models/manufacturing_order_creation.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +from odoo import fields, models + + +class ManufacturingOrderCreation(models.Model): + """The created manufacturing orders can be displayed and edited + through this model.This model set an as many2many field in another + model.""" + _name = 'manufacturing.order.creation' + _description = 'Manufacturing Order Creation ' + _rec_name = 'product_id' + + product_id = fields.Many2one('product.product', + string='Product', help='Name of the product') + quantity = fields.Integer(string='Quantity', + help='Quantity of the product') + uom_id = fields.Many2one('uom.uom', string='UoM', + help='Unit of measure of the product') + bom_id = fields.Many2one('mrp.bom', + domain="[('product_id','=', product_id)]", + string='Bill of Material', + help='Bill of material of the product.') + mrp_id = fields.Many2one('mrp.production', + string='Manufacturing Order', + help='Manufacturing order of the product') + is_mo = fields.Boolean(string='Is Display', default=True, + help='If the value of the boolean field is' + 'false,then manufacturing order button' + 'will disappear') + supply_request_id = fields.Many2one('water.supply.request', + string='Supply Request', + help="Corresponding water supply " + "request") + + def action_creating_mo(self): + """Displaying manufacturing order of the product. + The form view will display default values for the specified fields + based on the attributes of the current instance. + The view will be opened in the current window.""" + res = { + 'name': 'mrp.production', + 'type': 'ir.actions.act_window', + 'res_model': 'mrp.production', + 'view_mode': 'form', + 'view_id': self.env.ref( + 'mrp.mrp_production_form_view').id, + 'view_type': 'form', + 'target': 'current', + 'context': { + 'default_product_id': self.product_id.id, + 'default_product_qty': self.quantity, + 'default_supply_id': self.supply_request_id.id, + 'default_manufacturing_order_id': self.id + }, + } + return res diff --git a/water_supply_with_mo/models/mrp_production.py b/water_supply_with_mo/models/mrp_production.py new file mode 100644 index 000000000..34e59030d --- /dev/null +++ b/water_supply_with_mo/models/mrp_production.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +from odoo import api, fields, models + + +class MrpProduction(models.Model): + """ This class adds additional fields and overrides the 'create' method + for specific functionality.""" + _inherit = 'mrp.production' + + manufacturing_order_id = fields.Many2one('manufacturing.order.creation', + string='MO Order', + help='Manufacturing order.') + supply_id = fields.Many2one('water.supply.request', + string='Water Supply Request', + help='Displaying water supply request') + + @api.model_create_multi + def create(self, vals): + """Create a new Manufacturing Production.""" + records = super(MrpProduction, self).create(vals) + for res in records: + default_mo_context_id = res._context.get( + 'default_manufacturing_order_id') + default_manufacturing_order_id = self.env[ + 'manufacturing.order.creation'].browse(default_mo_context_id) + default_manufacturing_order_id.mrp_id = res + default_manufacturing_order_id.bom_id = res.bom_id.id + if default_manufacturing_order_id.mrp_id: + default_manufacturing_order_id.write({'is_mo': False}) + return records diff --git a/water_supply_with_mo/models/stock_move.py b/water_supply_with_mo/models/stock_move.py new file mode 100644 index 000000000..f594accbf --- /dev/null +++ b/water_supply_with_mo/models/stock_move.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +from odoo import fields, models + + +class StockMove(models.Model): + """Inheriting stock.move model to add relational field""" + _inherit = 'stock.move' + + supply_id = fields.Many2one('water.supply.request', + string='Water Supply', + help='Water supply request') diff --git a/water_supply_with_mo/models/water_supply_methods.py b/water_supply_with_mo/models/water_supply_methods.py new file mode 100644 index 000000000..221207d7a --- /dev/null +++ b/water_supply_with_mo/models/water_supply_methods.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +from odoo import api, fields, models + + +class WaterSupplyMethods(models.Model): + """Creating water supply methods. """ + _name = 'water.supply.methods' + _description = 'Water Supply Methods' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _rec_name = 'supply_name' + + code = fields.Char(string='Internal Code', help='Code of the supply' + ' method') + supply_name = fields.Char(string='Supply Name', help='Supply name') + created_product_id = fields.Many2one('product.product', + string='Product Created', + help="Product created when method " + "is created") + + @api.model_create_multi + def create(self, vals_list): + """Creating corresponding product for each method.""" + records = super(WaterSupplyMethods, self).create(vals_list) + for record in records: + product_records = { + 'name': record.supply_name, + 'detailed_type': 'product' + } + created_product = self.env['product.product'].create( + product_records).id + record.created_product_id = created_product + return records diff --git a/water_supply_with_mo/models/water_supply_request.py b/water_supply_with_mo/models/water_supply_request.py new file mode 100644 index 000000000..333b59f08 --- /dev/null +++ b/water_supply_with_mo/models/water_supply_request.py @@ -0,0 +1,249 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +import datetime +from odoo import api, fields, models, _ +from odoo.addons.stock.models.stock_move import PROCUREMENT_PRIORITIES + + +class WaterSupplyRequest(models.Model): + """Model for water supply request form.""" + + _name = "water.supply.request" + _description = "Water Supply Request" + _inherit = ["mail.thread", "mail.activity.mixin"] + _date_name = "date_planned_start" + _order = "priority desc, date_planned_start asc,id" + _rec_name = "reference_no" + + @api.model + def _get_default_date_planned_start(self): + """Method returns the specified deadline date as a datetime object.""" + if self.env.context.get("default_date_deadline"): + return fields.Datetime.to_datetime( + self.env.context.get("default_date_deadline") + ) + return datetime.datetime.now() + + reference_no = fields.Char( + string="Sequence", readonly=True, default="New", help="Reference number" + ) + responsible_user_id = fields.Many2one( + "res.users", + string="Responsible User", + default=lambda self: self.env.user, + help="Responsible person", + ) + customer_name_id = fields.Many2one( + "res.partner", + string="Customer Name", + help="Name of the customer", + required=True, + ) + customer_email = fields.Char( + related="customer_name_id.email", string="Customer Email", help="Customer email" + ) + customer_phone = fields.Char( + related="customer_name_id.phone", + string="Customer Phone", + help="Phone number of" " the customer.", + ) + customer_address = fields.Char( + related="customer_name_id.street", + string="Customer Address", + help="Customer address", + ) + pickup_date = fields.Date( + string="Pickup Date", help="Date of the pickup", required=True + ) + request_date = fields.Date( + string="Request Date", help="Date of the " "product request." + ) + state = fields.Selection( + [("draft", "draft"), ("created", "created"), ("supplied", "supplied")], + default="draft", + string="State", + help="State of the supply request.", + ) + create_date = fields.Date( + string="Create Date", + default=fields.Date.today(), + help="Create date of water supply request", + ) + is_closed = fields.Boolean( + string="Is Closed", + help="Boolean field for to check the " "current request is closed or not", + ) + date_planned_start = fields.Datetime( + string="Scheduled Date", + copy=False, + default=_get_default_date_planned_start, + help="Date at which you plan to start the production.", + index=True, + required=True, + ) + supply_method_ids = fields.Many2many( + "water.supply.methods", + string="Supply Methods", + help="Supply methods", + required=True, + ) + usage_categories_ids = fields.Many2many( + "water.usage.categories", + string="Usage Categories", + help="Usage categories", + required=True, + ) + usage_place_id = fields.Many2one( + "water.usage.places", string="Usage Place", help="Usage place", required=True + ) + create_mo_ids = fields.One2many( + "manufacturing.order.creation", + "supply_request_id", + string="Creation Manufacturing Order", + help="Created manufacturing orders.", + ) + mo_count = fields.Integer( + string="Manufacture Order Count", + compute="compute_mo_count", + help="For storing manufacturing order count.", + ) + stock_move_count = fields.Integer( + string="Stock Move Count", + compute="compute_stock_move_count", + help="Store the stock move count.", + ) + priority = fields.Selection( + PROCUREMENT_PRIORITIES, + string="Priority", + default="0", + help="Components will be reserved first for the MO " + "with the highest priorities.", + ) + + @api.model_create_multi + def create(self, vals): + """Creating sequence number.""" + records = super(WaterSupplyRequest, self).create(vals) + for record in records: + if record.reference_no == _("New"): + reference_no = self.env["ir.sequence"].next_by_code( + "water_supply_request" + ) or _("New") + record.write({"reference_no": reference_no}) + return records + + @api.onchange("supply_method_ids") + def _onchange_supply_method_ids(self): + """This method is triggered when the 'supply_method_ids' field is + changed. It fills the 'create_mo_ids' many2many field with + manufacturing order data based on the selected supply method's + information.""" + self.create_mo_ids = False + for record in self.supply_method_ids: + product = self.env["product.product"].browse(record.created_product_id.id) + bom = self.env["mrp.bom"].search([("product_id", "=", product.id)], limit=1) + self.create_mo_ids = [ + fields.Command.create( + { + "product_id": product.id, + "quantity": bom.product_qty, + "uom_id": product.uom_id.id, + "bom_id": bom, + } + ) + ] + + def action_apply(self): + """Stock move will occur when supply the product to the customer.""" + self.write({"state": "created"}) + src_location = self.env["stock.location"].search( + [("usage", "=", "internal"), ("name", "=", "Stock")], limit=1 + ) + dest_location = self.env["stock.location"].search( + [("usage", "=", "customer")], limit=1 + ) + for rec in self.create_mo_ids: + move = self.env["stock.move"].create( + { + "name": self.reference_no, + "origin": self.reference_no, + "location_id": src_location.id, + "location_dest_id": dest_location.id, + "product_id": rec.product_id.id, + "product_uom": rec.product_id.uom_id.id, + "product_uom_qty": rec.quantity, + "supply_id": self.id, + } + ) + move.write({"state": "done"}) + manufacturing_order = self.env["mrp.production"].search( + [("name", "=", self.create_mo_ids.mrp_id.mapped("name"))] + ) + manufacturing_order.write({"supply_id": self}) + + def action_supply(self): + """Enabling the boolean field if the request is supplied.""" + self.write({"state": "supplied"}) + if self.state == "supplied": + self.is_closed = True + + def action_stock_move(self): + """Opens a window displaying stock moves related to the current + record.""" + self.ensure_one() + return { + "type": "ir.actions.act_window", + "name": "Stock Move", + "view_mode": "tree,form", + "res_model": "stock.move", + "domain": [("supply_id", "=", self.id)], + } + + def action_mrp_production(self): + """Display the production records associated with the current supply + order.""" + self.ensure_one() + return { + "type": "ir.actions.act_window", + "name": "Manufacturing Order", + "view_mode": "tree,form", + "res_model": "mrp.production", + "domain": [("supply_id", "=", self.id)], + } + + def compute_mo_count(self): + """This method calculates the number of manufacturing orders + associated with the current record and updates the 'mo_count' + field on each record accordingly.""" + for record in self: + record.mo_count = self.env["mrp.production"].search_count( + [("supply_id", "=", self.id)] + ) + + def compute_stock_move_count(self): + """This method iterates through the records in `self` and calculates + the number of stock moves associated with each record. It sets the + `stock_move_count` field of each record to the corresponding count.""" + for record in self: + record.stock_move_count = self.env["stock.move"].search_count( + [("supply_id", "=", self.id)] + ) diff --git a/water_supply_with_mo/models/water_usage_categories.py b/water_supply_with_mo/models/water_usage_categories.py new file mode 100644 index 000000000..925f01f9e --- /dev/null +++ b/water_supply_with_mo/models/water_usage_categories.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +from odoo import fields, models + + +class WaterUsageCategories(models.Model): + """Creating water usage categories.""" + _name = 'water.usage.categories' + _description = 'Water Usage Categories' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _rec_name = 'usage_category_name' + + code = fields.Char(string='Usage Category Code', + help='Usage category code') + usage_category_name = fields.Char(string='Usage Category Name', + help='Usage category name') diff --git a/water_supply_with_mo/models/water_usage_places.py b/water_supply_with_mo/models/water_usage_places.py new file mode 100644 index 000000000..4c911d67a --- /dev/null +++ b/water_supply_with_mo/models/water_usage_places.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Dhanya Babu (odoo@cybrosys.com) +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# 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 AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################## +from odoo import fields, models + + +class WaterUsagePlaces(models.Model): + """Creating water usage places.""" + _name = 'water.usage.places' + _description = 'Water Usage Places' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _rec_name = 'usage_place_name' + + code = fields.Char(string='Code', help='Code of the water usage places') + usage_place_name = fields.Char(string='Usage Places Name', + help='Usage places name') diff --git a/water_supply_with_mo/security/ir.model.access.csv b/water_supply_with_mo/security/ir.model.access.csv new file mode 100644 index 000000000..3adbb5f2d --- /dev/null +++ b/water_supply_with_mo/security/ir.model.access.csv @@ -0,0 +1,6 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_water_supply_methods_user,access.water.supply.methods.water.supply.with.mo.supplier.user,model_water_supply_methods,water_supply_with_mo_supplier_user,1,1,1,1 +access_water_supply_request_user,access.water.supply.request.user,model_water_supply_request,water_supply_with_mo_supplier_user,1,1,1,1 +access_water_usage_categories_user,access.water.usage.categories.user,model_water_usage_categories,water_supply_with_mo_supplier_user,1,1,1,1 +access_water_usage_places_user,access.water.usage.places.user,model_water_usage_places,water_supply_with_mo_supplier_user,1,1,1,1 +access_manufacturing_order_creation_user,access.manufacturing.order.creation.user,model_manufacturing_order_creation,water_supply_with_mo_supplier_user,1,1,1,1 diff --git a/water_supply_with_mo/security/water_supply_with_mo_groups.xml b/water_supply_with_mo/security/water_supply_with_mo_groups.xml new file mode 100644 index 000000000..61c04fabd --- /dev/null +++ b/water_supply_with_mo/security/water_supply_with_mo_groups.xml @@ -0,0 +1,14 @@ + + + + + Water Supply + + + + Water Supplier User + + + diff --git a/water_supply_with_mo/static/description/assets/icons/check.png b/water_supply_with_mo/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/check.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/chevron.png b/water_supply_with_mo/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/chevron.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/cogs.png b/water_supply_with_mo/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/cogs.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/consultation.png b/water_supply_with_mo/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/consultation.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/ecom-black.png b/water_supply_with_mo/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/ecom-black.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/education-black.png b/water_supply_with_mo/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/education-black.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/hotel-black.png b/water_supply_with_mo/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/hotel-black.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/license.png b/water_supply_with_mo/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/license.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/lifebuoy.png b/water_supply_with_mo/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/lifebuoy.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/manufacturing-black.png b/water_supply_with_mo/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/manufacturing-black.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/pos-black.png b/water_supply_with_mo/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/pos-black.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/puzzle.png b/water_supply_with_mo/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/puzzle.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/restaurant-black.png b/water_supply_with_mo/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/restaurant-black.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/service-black.png b/water_supply_with_mo/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/service-black.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/trading-black.png b/water_supply_with_mo/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/trading-black.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/training.png b/water_supply_with_mo/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/training.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/update.png b/water_supply_with_mo/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/update.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/user.png b/water_supply_with_mo/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/user.png differ diff --git a/water_supply_with_mo/static/description/assets/icons/wrench.png b/water_supply_with_mo/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/water_supply_with_mo/static/description/assets/icons/wrench.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/categories.png b/water_supply_with_mo/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/categories.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/check-box.png b/water_supply_with_mo/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/check-box.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/compass.png b/water_supply_with_mo/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/compass.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/corporate.png b/water_supply_with_mo/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/corporate.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/customer-support.png b/water_supply_with_mo/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/customer-support.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/cybrosys-logo.png b/water_supply_with_mo/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/cybrosys-logo.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/features.png b/water_supply_with_mo/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/features.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/logo.png b/water_supply_with_mo/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/logo.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/pictures.png b/water_supply_with_mo/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/pictures.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/pie-chart.png b/water_supply_with_mo/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/pie-chart.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/right-arrow.png b/water_supply_with_mo/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/right-arrow.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/star.png b/water_supply_with_mo/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/star.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/support.png b/water_supply_with_mo/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/support.png differ diff --git a/water_supply_with_mo/static/description/assets/misc/whatsapp.png b/water_supply_with_mo/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/misc/whatsapp.png differ diff --git a/water_supply_with_mo/static/description/assets/modules/1.png b/water_supply_with_mo/static/description/assets/modules/1.png new file mode 100644 index 000000000..6949185dd Binary files /dev/null and b/water_supply_with_mo/static/description/assets/modules/1.png differ diff --git a/water_supply_with_mo/static/description/assets/modules/2.png b/water_supply_with_mo/static/description/assets/modules/2.png new file mode 100644 index 000000000..0bfce1e0a Binary files /dev/null and b/water_supply_with_mo/static/description/assets/modules/2.png differ diff --git a/water_supply_with_mo/static/description/assets/modules/3.png b/water_supply_with_mo/static/description/assets/modules/3.png new file mode 100644 index 000000000..b94dc8738 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/modules/3.png differ diff --git a/water_supply_with_mo/static/description/assets/modules/4.png b/water_supply_with_mo/static/description/assets/modules/4.png new file mode 100644 index 000000000..4e506f79b Binary files /dev/null and b/water_supply_with_mo/static/description/assets/modules/4.png differ diff --git a/water_supply_with_mo/static/description/assets/modules/5.png b/water_supply_with_mo/static/description/assets/modules/5.png new file mode 100644 index 000000000..e78427938 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/modules/5.png differ diff --git a/water_supply_with_mo/static/description/assets/modules/6.png b/water_supply_with_mo/static/description/assets/modules/6.png new file mode 100644 index 000000000..ba1058c42 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/modules/6.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/258.png b/water_supply_with_mo/static/description/assets/screenshots/258.png new file mode 100644 index 000000000..422454789 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/258.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/hero.gif b/water_supply_with_mo/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..91257ddbc Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/hero.gif differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/water1.png b/water_supply_with_mo/static/description/assets/screenshots/water1.png new file mode 100644 index 000000000..796f23c63 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/water1.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/water2.png b/water_supply_with_mo/static/description/assets/screenshots/water2.png new file mode 100644 index 000000000..022b0e01e Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/water2.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/water_rm_5.png b/water_supply_with_mo/static/description/assets/screenshots/water_rm_5.png new file mode 100644 index 000000000..bb3d29c51 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/water_rm_5.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/water_tank_bom.png b/water_supply_with_mo/static/description/assets/screenshots/water_tank_bom.png new file mode 100644 index 000000000..a426926a8 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/water_tank_bom.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/water_uc_3.png b/water_supply_with_mo/static/description/assets/screenshots/water_uc_3.png new file mode 100644 index 000000000..3bf45533a Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/water_uc_3.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/water_up_4.png b/water_supply_with_mo/static/description/assets/screenshots/water_up_4.png new file mode 100644 index 000000000..1d98352df Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/water_up_4.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/ww1.png b/water_supply_with_mo/static/description/assets/screenshots/ww1.png new file mode 100644 index 000000000..e86117695 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/ww1.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/ww10.png b/water_supply_with_mo/static/description/assets/screenshots/ww10.png new file mode 100644 index 000000000..3ba3c1e27 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/ww10.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/ww12.png b/water_supply_with_mo/static/description/assets/screenshots/ww12.png new file mode 100644 index 000000000..d73b7418c Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/ww12.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/ww2.png b/water_supply_with_mo/static/description/assets/screenshots/ww2.png new file mode 100644 index 000000000..4bf6ff522 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/ww2.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/ww4.png b/water_supply_with_mo/static/description/assets/screenshots/ww4.png new file mode 100644 index 000000000..fe66dcbec Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/ww4.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/ww5.png b/water_supply_with_mo/static/description/assets/screenshots/ww5.png new file mode 100644 index 000000000..5fe891eba Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/ww5.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/ww6.png b/water_supply_with_mo/static/description/assets/screenshots/ww6.png new file mode 100644 index 000000000..16413e091 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/ww6.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/ww7.png b/water_supply_with_mo/static/description/assets/screenshots/ww7.png new file mode 100644 index 000000000..7876648d2 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/ww7.png differ diff --git a/water_supply_with_mo/static/description/assets/screenshots/ww8.png b/water_supply_with_mo/static/description/assets/screenshots/ww8.png new file mode 100644 index 000000000..4b04f1386 Binary files /dev/null and b/water_supply_with_mo/static/description/assets/screenshots/ww8.png differ diff --git a/water_supply_with_mo/static/description/banner.png b/water_supply_with_mo/static/description/banner.png new file mode 100644 index 000000000..0c2bdf16f Binary files /dev/null and b/water_supply_with_mo/static/description/banner.png differ diff --git a/water_supply_with_mo/static/description/icon.png b/water_supply_with_mo/static/description/icon.png new file mode 100644 index 000000000..007a75464 Binary files /dev/null and b/water_supply_with_mo/static/description/icon.png differ diff --git a/water_supply_with_mo/static/description/index.html b/water_supply_with_mo/static/description/index.html new file mode 100644 index 000000000..3098907cf --- /dev/null +++ b/water_supply_with_mo/static/description/index.html @@ -0,0 +1,705 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+ +

+ Water Supply With Manufacturing Order +

+

+ This App Allows Us To Quickly Create Manufacturing Orders + Directly From The Water Supply Request. +

+ + +
+
+
+
+ +
+
+ +
+

+ Explore This + Module

+
+ + + +
+
+ +
+

+ Overview +

+
+
+
+ This module helps to create manufacturing orders from water supply's + request form if supply method is unavailable at the supply time. +
+
+ + +
+
+ +
+

+ Features +

+
+
+
+
+ + Community & Enterprise + Support. +
+
+ + Allow us to create manufacturing order directly from the water supply requests form. +
+
+ + Set the water supply request reference on manufacturing order. +
+
+ + We can see the manufacturing orders list in a smart button +
+
+ + We can see the stock moves list in a smart button +
+
+
+
+
+ + + +
+
+ +
+

+ Screenshots +

+
+
+
+
+

+ Set a Water Supply User in users.

+

+ + +

+
+

+ We can see the Menu's +

+ +
+
+

+ Create Water Usage Places +

+ +
+
+
+
+

+ Create Water Supply Methods

+ +
+
+

+ Create Water Usage Categories

+ +
+
+
+

+ Create BOM for products.

+ +
+
+ +
+
+

+ By clicking create MO button we can create manufacturing + orders.

+ +
+
+

+ Manufacturing + Order for Watter Bottle.

+ +
+
+

+ Manufacturing + Order for Watter Tank.

+ +
+
+

+ We can see corresponding Manufacturing Order name.

+ +
+
+

+ By clicking APPLY button this form will create.

+ +
+
+

+ We can see corresponding Stock Moves and Manufacturing Orders.

+ +
+
+

+ Tree view of Manufacturing Order.

+ +
+
+

+ Tree view of Stock Move.

+ +
+
+

+ By clicking SUPPLY button it will be supplied to the customer.

+ +
+
+

+ This supply will be closed and goes to the supplied state.

+ +
+ +
+ + +
+
+ +
+

+ Related + Products +

+
+
+
+ +
+
+ + +
+
+ +
+

+ Our Services +

+
+
+
+
+
+ +
+
+ Odoo + Customization
+
+
+
+ +
+
+ Odoo + Implementation
+
+
+
+ +
+
+ Odoo + Support
+
+
+
+ +
+
+ Hire + Odoo + Developer
+
+
+
+ +
+
+ Odoo + Integration
+
+
+
+ +
+
+ Odoo + Migration
+
+
+
+ +
+
+ Odoo + Consultancy
+
+
+
+ +
+
+ Odoo + Implementation
+
+
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+
+ + +
+
+ +
+

+ Our + Industries +

+
+
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

+
+
+
+
+ + +
+
+ +
+

+ Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? + Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+ +91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/water_supply_with_mo/views/manufacturing_order_creation_views.xml b/water_supply_with_mo/views/manufacturing_order_creation_views.xml new file mode 100644 index 000000000..7e98c0814 --- /dev/null +++ b/water_supply_with_mo/views/manufacturing_order_creation_views.xml @@ -0,0 +1,33 @@ + + + + + creation Manufacturing Order + manufacturing.order.creation + tree,form + + + + manufacturing.order.creation.view.tree + manufacturing.order.creation + + + + + + + + + + + + +
+

+ +

+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ +
+
+ + + water.supply.request.view.search + water.supply.request + + + + + + +
diff --git a/water_supply_with_mo/views/water_supply_with_mo_menus.xml b/water_supply_with_mo/views/water_supply_with_mo_menus.xml new file mode 100644 index 000000000..2d7cb3630 --- /dev/null +++ b/water_supply_with_mo/views/water_supply_with_mo_menus.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/water_supply_with_mo/views/water_usage_categories_views.xml b/water_supply_with_mo/views/water_usage_categories_views.xml new file mode 100644 index 000000000..6921178d3 --- /dev/null +++ b/water_supply_with_mo/views/water_usage_categories_views.xml @@ -0,0 +1,45 @@ + + + + + Water Usage Categories + water.usage.categories + tree,form + + + + water.usage.categories.view.tree + water.usage.categories + + + + + + + + + + water.usage.categories.view.form + water.usage.categories + +
+ + + + + + + + + + +
+ + + +
+
+
+
+
diff --git a/water_supply_with_mo/views/water_usage_places_views.xml b/water_supply_with_mo/views/water_usage_places_views.xml new file mode 100644 index 000000000..8dbe69dc4 --- /dev/null +++ b/water_supply_with_mo/views/water_usage_places_views.xml @@ -0,0 +1,44 @@ + + + + + Water Usage Places + water.usage.places + tree,form + + + + water.usage.places.view.tree + water.usage.places + + + + + + + + + + water.usage.places.view.form + water.usage.places + +
+ + + + + + + + + + +
+ + + +
+
+
+
+