diff --git a/agriculture_management_odoo/README.rst b/agriculture_management_odoo/README.rst new file mode 100644 index 000000000..9e898ef47 --- /dev/null +++ b/agriculture_management_odoo/README.rst @@ -0,0 +1,39 @@ +Agriculture Management +====================== +App for managing the Agriculture cultivation + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: VYSHNAV AR @cybrosys + +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/agriculture_management_odoo/__init__.py b/agriculture_management_odoo/__init__.py new file mode 100644 index 000000000..4f3bd3dd4 --- /dev/null +++ b/agriculture_management_odoo/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models +from . import wizard diff --git a/agriculture_management_odoo/__manifest__.py b/agriculture_management_odoo/__manifest__.py new file mode 100644 index 000000000..192b87da3 --- /dev/null +++ b/agriculture_management_odoo/__manifest__.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'Agriculture Management In Odoo', + 'version': '15.0.1.0.0', + 'summary': 'Agriculture Management In Odoo', + 'description': """Agriculture Management In Odoo""", + 'category': 'Productivity', + 'website': 'https://www.cybrosys.com', + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'license': 'LGPL-3', + 'depends': [ + 'base', + 'fleet', + ], + 'data': [ + 'security/user_groups.xml', + 'security/ir.model.access.csv', + 'data/data_sequence.xml', + 'report/crop_report.xml', + 'report/pest_report.xml', + 'report/crop_report_template.xml', + 'report/pest_report_template.xml', + 'report/crop_vehicle_report.xml', + 'report/crop_animal_report.xml', + 'wizard/crop_report_wiz.xml', + 'wizard/pest_report_wiz.xml', + 'views/menu_action.xml', + 'views/menu_items.xml', + 'views/seed_details_view.xml', + 'views/animal_details_views.xml', + 'views/location_details_view.xml', + 'views/vehicle_details_view.xml', + 'views/fleet_inherit_view.xml', + 'views/farmer_details_view.xml', + 'views/pest_request.xml', + 'views/pest_details.xml', + 'views/damage_loss.xml', + 'views/crop_request.xml', + 'views/tag_details.xml', + 'views/vehicle_rental_views.xml', + 'views/animal_rental_views.xml', + ], + 'images': ['static/description/banner.png'], + 'installable': True, + 'application': True, + 'auto_install': False, +} diff --git a/agriculture_management_odoo/data/data_sequence.xml b/agriculture_management_odoo/data/data_sequence.xml new file mode 100644 index 000000000..389a844e9 --- /dev/null +++ b/agriculture_management_odoo/data/data_sequence.xml @@ -0,0 +1,17 @@ + + + Pest Request + pest.request + PEST/REQ/ + 5 + + + + Crop Request + crop.requests + CROP/REQ/ + 5 + + + + \ No newline at end of file diff --git a/agriculture_management_odoo/doc/RELEASE_NOTES.md b/agriculture_management_odoo/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..a81da80ab --- /dev/null +++ b/agriculture_management_odoo/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 10.11.2022 +#### Version 15.0.1.0.0 +#### ADD +- Initial commit for agriculture_management_odoo + diff --git a/agriculture_management_odoo/models/__init__.py b/agriculture_management_odoo/models/__init__.py new file mode 100644 index 000000000..7ac9f8db2 --- /dev/null +++ b/agriculture_management_odoo/models/__init__.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import crop_requests +from . import seed_details +from . import animal_details +from . import location_details +from . import vehicle_details +from . import fleet_inherit +from . import farmer_details +from . import pest_details +from . import pest_request +from . import damage_loss +from . import tag_details +from . import vehicle_rental +from . import animal_rental diff --git a/agriculture_management_odoo/models/animal_details.py b/agriculture_management_odoo/models/animal_details.py new file mode 100644 index 000000000..3cd4f203d --- /dev/null +++ b/agriculture_management_odoo/models/animal_details.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +'''Module for Creating Animal Records''' +from odoo import models, fields + + +class AnimalDetails(models.Model): + '''Details of Animals''' + _name = 'animal.details' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = "Animal Details" + _rec_name = 'breed' + + image = fields.Binary(string='Image', tracking=True) + breed = fields.Char(string='Breed', required=True, tracking=True) + age = fields.Char(string='Age', required=True, tracking=True) + state = fields.Selection( + [('available', 'Available'), ('not_available', 'Not Available')], + default="available", + string='Status', required=True, tracking=True) + note = fields.Text(string='Note', tracking=True) + + def action_not_available(self): + self.state = 'not_available' + + def action_sold(self): + self.state = 'sold' + + def action_available(self): + self.state = 'available' diff --git a/agriculture_management_odoo/models/animal_rental.py b/agriculture_management_odoo/models/animal_rental.py new file mode 100644 index 000000000..b52e5989c --- /dev/null +++ b/agriculture_management_odoo/models/animal_rental.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +'''Model for Renting the Animals''' +from odoo import models, fields, api + + +class AnimalRental(models.Model): + _name = 'animal.rental' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = 'Animal Rental' + + animal_id = fields.Many2one('animal.details', string='Animal', + required=True, tracking=True) + no_of_days = fields.Float(string='No of Days', tracking=True, + compute='compute_days', store=True) + start_date = fields.Date(string='Start Date', required=True, tracking=True) + end_date = fields.Date(string='End Date', required=True, tracking=True) + note = fields.Text(string='Description', tracking=True) + + @api.depends('start_date', 'end_date') + def compute_days(self): + if self.start_date and self.end_date: + days = (self.end_date - self.start_date).days + self.no_of_days = days diff --git a/agriculture_management_odoo/models/crop_requests.py b/agriculture_management_odoo/models/crop_requests.py new file mode 100644 index 000000000..9f1ecabe0 --- /dev/null +++ b/agriculture_management_odoo/models/crop_requests.py @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +'''Model For Creating Crop Requests''' +from odoo import models, fields, api, _ + + +class CropRequests(models.Model): + '''Details to create Crop Requests''' + _name = 'crop.requests' + _inherit = ["mail.thread", 'mail.activity.mixin'] + _description = "Agriculture Management" + _rec_name = 'ref' + + ref = fields.Char(string='Reference', required=True, copy=False, + readonly=True, tracking=True, + default=lambda self: _('New')) + farmer_id = fields.Many2one('farmer.details', string='Farmer', + required=True, tracking=True) + seed_id = fields.Many2one('seed.details', string='Crop', required=True, + tracking=True) + location_id = fields.Many2one('location.details', string='Location', + required=True, tracking=True) + request_date = fields.Date(string='Request Date', + default=fields.Date.context_today, required=True, + tracking=True) + state = fields.Selection( + [('draft', 'Draft'), ('confirm', 'Confirmed'), + ('ploughing', 'Ploughing'), ('sowing', 'Sowing'), + ('manuring', 'Manuring'), ('irrigation', 'Irrigation'), + ('weeding', 'Weeding'), ('harvest', 'Harvest'), ('storage', 'Storage'), + ('cancel', 'Cancel')], + string='Status', default='draft', tracking=True, + group_expand='_group_expand_states') + note = fields.Text(string='Note', tracking=True) + machinery_ids = fields.One2many('crop.machinery', 'des', string='Machinery', + tracking=True) + animal_ids = fields.One2many('crop.animals', 'dec', string='Animals', + tracking=True) + tags_id = fields.Many2many('agr.tag', string='Tags', tracking=True) + user_id = fields.Many2one('res.users', string='Responsible User', + default=lambda self: self.env.user) + + @api.model + def create(self, values): + if values.get('ref', _('New')) == _('New'): + values['ref'] = self.env['ir.sequence'].next_by_code( + 'crop.requests') or _('New') + res = super(CropRequests, self).create(values) + return res + + def action_draft(self): + self.state = 'draft' + + def action_confirm(self): + self.state = 'confirm' + + def action_ploughing(self): + self.state = 'ploughing' + + def action_sowing(self): + self.state = 'sowing' + + def action_manuring(self): + self.state = 'manuring' + + def action_irrigation(self): + self.state = 'irrigation' + + def action_weeding(self): + self.state = 'weeding' + + def action_harvest(self): + self.state = 'harvest' + + def action_cancel(self): + self.state = 'cancel' + + def action_storage(self): + self.state = 'storage' + + def _group_expand_states(self, states, domain, order): + return [key for + key, val in type(self).state.selection] + + +class CropMachinery(models.Model): + '''Model For Attaching Vehicles''' + _name = 'crop.machinery' + + des = fields.Many2one('crop.requests') + vehicle_id = fields.Many2one('vehicle.details', string='Vehicle', + tracking=True) + qty = fields.Integer(string='Quantity') + + +class CropAnimals(models.Model): + '''Model For Attaching Animals''' + _name = 'crop.animals' + + dec = fields.Many2one('crop.requests') + animal_id = fields.Many2one('animal.details', string='Animal', + tracking=True) + qty = fields.Integer(string='Quantity') diff --git a/agriculture_management_odoo/models/damage_loss.py b/agriculture_management_odoo/models/damage_loss.py new file mode 100644 index 000000000..b377c419c --- /dev/null +++ b/agriculture_management_odoo/models/damage_loss.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields + + +class DamageLossDetails(models.Model): + _name = 'damage.loss' + _inherit = ["mail.thread", 'mail.activity.mixin'] + + name = fields.Char(string='Name', required=True, tracking=True) + farmer_id = fields.Many2one('farmer.details', string='Farmer', + required=True, tracking=True) + crop_id = fields.Many2one('crop.requests', string='Crop', required=True, + tracking=True) + location_id = fields.Many2one('location.details', string='Location', + required=True, tracking=True) + damage_loss_type = fields.Selection( + [('damage', 'Damage'), ('loss', 'Loss')], string='Damage/Loss Type', + required=True, tracking=True) + damage_loss_date = fields.Date(string='Damage/Loss Date', + default=fields.Date.context_today, + required=True, tracking=True) + note = fields.Text(string='Damage/Loss Description', tracking=True) + damage_loss_image = fields.Binary(string='Image', tracking=True) diff --git a/agriculture_management_odoo/models/farmer_details.py b/agriculture_management_odoo/models/farmer_details.py new file mode 100644 index 000000000..465997dc9 --- /dev/null +++ b/agriculture_management_odoo/models/farmer_details.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields, api + + +class FarmerDetails(models.Model): + _name = 'farmer.details' + _inherit = ["mail.thread", 'mail.activity.mixin'] + _description = 'Farmer Details' + _rec_name = 'farmer_name' + + farmer_name = fields.Many2one('res.partner', string='Farmer', required=True, + tracking=True) + farmer_image = fields.Binary(string='Image', tracking=True) + note = fields.Text(string='Notes', tracking=True) + + @api.onchange('farmer_name') + def onchange_farmer_name(self): + if self.farmer_name: + self.farmer_image = self.farmer_name.image_1920 diff --git a/agriculture_management_odoo/models/fleet_inherit.py b/agriculture_management_odoo/models/fleet_inherit.py new file mode 100644 index 000000000..7e1aa3104 --- /dev/null +++ b/agriculture_management_odoo/models/fleet_inherit.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +'''Inheriting the Fleet Module To Get Vehicles''' +from odoo import fields, models + + +class Fleet(models.Model): + _inherit = "fleet.vehicle" + + registration_date = fields.Date(string="Registration Date", + default=fields.Date.today) diff --git a/agriculture_management_odoo/models/location_details.py b/agriculture_management_odoo/models/location_details.py new file mode 100644 index 000000000..16cc33f15 --- /dev/null +++ b/agriculture_management_odoo/models/location_details.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields + + +class LocationDetails(models.Model): + _name = 'location.details' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = "Location Details" + _rec_name = 'location_name' + + location_name = fields.Char(string='Location Name', required=True, + tracking=True) + location_address = fields.Char(string='Location Address', required=True, + tracking=True) + location_area = fields.Float(string='Location Area', required=True, + tracking=True) + location_area_unit = fields.Selection( + [('acres', 'Acres'), ('hectares', 'Hectares')], string='Area Unit', + required=True, tracking=True) + location_type = fields.Selection([('plot', 'Plot'), ('field', 'Field')], + default="plot", + string='Location Type', required=True, + tracking=True) + note = fields.Text(string='Note', tracking=True) diff --git a/agriculture_management_odoo/models/pest_details.py b/agriculture_management_odoo/models/pest_details.py new file mode 100644 index 000000000..fcff0c34b --- /dev/null +++ b/agriculture_management_odoo/models/pest_details.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields, api + + +class PestDetails(models.Model): + _name = 'pest.details' + _inherit = ["mail.thread", 'mail.activity.mixin'] + _description = 'Pest Details' + _rec_name = 'pest_name' + + pest_name = fields.Char(string='Pesticide', required=True, tracking=True) + pest_expiry_date = fields.Date(string='Expiry Date', required=True, + tracking=True) + pest_description = fields.Text(string='Pest Description', tracking=True) + pest_image = fields.Binary(string='Image', tracking=True) + pest_cost = fields.Float(string='Cost', required=True, tracking=True) + pest_quantity = fields.Integer(string='Quantity', required=True, + tracking=True) + total_cost = fields.Float(string='Total Cost', + compute='_compute_total_cost', store=True, + tracking=True) + currency_id = fields.Many2one('res.currency', string='Currency', + default=lambda + self: self.env.user.company_id.currency_id, + tracking=True) + + @api.depends('pest_cost', 'pest_quantity') + def _compute_total_cost(self): + for record in self: + record.total_cost = record.pest_cost * record.pest_quantity diff --git a/agriculture_management_odoo/models/pest_request.py b/agriculture_management_odoo/models/pest_request.py new file mode 100644 index 000000000..e6e0870ec --- /dev/null +++ b/agriculture_management_odoo/models/pest_request.py @@ -0,0 +1,84 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields, api, _ + + +class PestRequests(models.Model): + _name = 'pest.request' + _inherit = ["mail.thread", 'mail.activity.mixin'] + _description = 'Pest Request' + _rec_name = 'reference' + + reference = fields.Char(string='Reference', required=True, copy=False, + readonly=True, tracking=True, + default=lambda self: _('New')) + request_date = fields.Date(string='Request Date', + default=fields.Date.context_today, required=True, + tracking=True) + farmer_id = fields.Many2one('res.partner', string='Farmer', required=True, + tracking=True) + crop_id = fields.Many2one('crop.requests', string='Crop', required=True, + tracking=True) + location_id = fields.Many2one('location.details', string='Location', + tracking=True) + pest_id = fields.Many2one('pest.details', string='Pest', required=True, + tracking=True) + currency_id = fields.Many2one('res.currency', string='Currency', + default=lambda + self: self.env.user.company_id.currency_id) + pest_quantity = fields.Integer(string='Pest Quantity', required=True, + tracking=True) + pest_cost = fields.Float(string='Pest Cost', required=True, tracking=True) + total_cost = fields.Float(string='Total Cost', + compute='_compute_total_cost', store=True, + tracking=True) + disease = fields.Text(string='Disease', tracking=True, required=True) + note = fields.Text(string='Note', tracking=True) + state = fields.Selection( + [('draft', 'Draft'), ('pending', 'Pending'), ('approve', 'Approved'), + ('rejected', 'Rejected')], + string='Status', default='draft', tracking=True) + + def action_draft(self): + self.state = 'draft' + + def action_pending(self): + self.state = 'pending' + + def action_approved(self): + self.state = 'approve' + + def action_rejected(self): + self.state = 'rejected' + + @api.depends('pest_cost', 'pest_quantity') + def _compute_total_cost(self): + for record in self: + record.total_cost = record.pest_cost * record.pest_quantity + + @api.model + def create(self, values): + if values.get('reference', _('New')) == _('New'): + values['reference'] = self.env['ir.sequence'].next_by_code( + 'pest.request') or _('New') + res = super(PestRequests, self).create(values) + return res diff --git a/agriculture_management_odoo/models/seed_details.py b/agriculture_management_odoo/models/seed_details.py new file mode 100644 index 000000000..18ecf2103 --- /dev/null +++ b/agriculture_management_odoo/models/seed_details.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields + + +class SeedDetails(models.Model): + _name = 'seed.details' + _inherit = ["mail.thread", 'mail.activity.mixin'] + _description = "Seed Details" + + name = fields.Char(string='Name', required=True, tracking=True) + quantity = fields.Integer(string='Quantity', required=True, tracking=True) + unit = fields.Selection([('kg', 'Kilograms'), ('gms', 'Grams')], + string='Unit', required=True, tracking=True) + seed_type = fields.Selection( + [('registered', 'Registered'), ('breeder', 'Breeder'), + ('foundation', 'Foundation'), + ('certified', 'Certified')], string='Type', required=True, + tracking=True) + note = fields.Text(string='Note', tracking=True) diff --git a/agriculture_management_odoo/models/tag_details.py b/agriculture_management_odoo/models/tag_details.py new file mode 100644 index 000000000..e23f1b6f7 --- /dev/null +++ b/agriculture_management_odoo/models/tag_details.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from random import randint + +from odoo import fields, models + + +class Tag(models.Model): + _name = "agr.tag" + _description = "Agriculture Tags" + + def _get_default_color(self): + return randint(1, 11) + + name = fields.Char('Tag Name', required=True, translate=True) + color = fields.Integer('Color', default=_get_default_color) + + _sql_constraints = [ + ('name_uniq', 'unique (name)', "Tag name already exists !"), + ] diff --git a/agriculture_management_odoo/models/vehicle_details.py b/agriculture_management_odoo/models/vehicle_details.py new file mode 100644 index 000000000..0dd803f7f --- /dev/null +++ b/agriculture_management_odoo/models/vehicle_details.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from datetime import datetime +from odoo import models, fields, api + + +class VehicleDetails(models.Model): + _name = 'vehicle.details' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = "Vehicle Details" + + name = fields.Char(string='Name', tracking=True, ) + vehicle_main_id = fields.Many2one('fleet.vehicle', string='Vehicle', + required=True, tracking=True, + domain=( + [('state_id', '=', 'Registered')])) + vehicle_type = fields.Selection( + [('tractor', 'Tractor'), ('harvester', 'Harvester'), + ('pickup', 'Pickup'), ('other', 'Other')], + string='Vehicle Type', required=True, tracking=True) + vehicle_model = fields.Char(string='Model Year', compute='compute_model', + store=True, tracking=True) + note = fields.Text(string='Note', tracking=True) + + @api.onchange("vehicle_main_id") + def onchange_vehicle(self): + self.name = str( + self.vehicle_main_id.model_id.brand_id.name or " ") + "/" + str( + self.vehicle_main_id.model_id.name or " ") + "/" + str( + self.vehicle_main_id.license_plate or " ") + + @api.depends('vehicle_main_id') + def compute_model(self): + for ref in self: + ref.vehicle_model = False + if ref.vehicle_main_id.registration_date: + date = datetime.strptime( + str(ref.vehicle_main_id.registration_date), '%Y-%m-%d') + ref.vehicle_model = str(date.year) diff --git a/agriculture_management_odoo/models/vehicle_rental.py b/agriculture_management_odoo/models/vehicle_rental.py new file mode 100644 index 000000000..2ddd18955 --- /dev/null +++ b/agriculture_management_odoo/models/vehicle_rental.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields, api + + +class VehicleRental(models.Model): + _name = 'vehicle.rental' + _inherit = ['mail.thread', 'mail.activity.mixin'] + _description = 'Vehicle Rental' + + vehicle_id = fields.Many2one('vehicle.details', string='Vehicle', + required=True, tracking=True) + no_of_days = fields.Float(string='No of Days', tracking=True, + compute='compute_days', store=True) + start_date = fields.Date(string='Start Date', required=True, tracking=True) + end_date = fields.Date(string='End Date', required=True, tracking=True) + note = fields.Text(string='Description', tracking=True) + + @api.depends('start_date', 'end_date') + def compute_days(self): + if self.start_date and self.end_date: + days = (self.end_date - self.start_date).days + self.no_of_days = days diff --git a/agriculture_management_odoo/report/crop_animal_report.xml b/agriculture_management_odoo/report/crop_animal_report.xml new file mode 100644 index 000000000..0603d6e9d --- /dev/null +++ b/agriculture_management_odoo/report/crop_animal_report.xml @@ -0,0 +1,91 @@ + + + + + + Animal Crop Report + crop.requests + qweb-pdf + agriculture_management_odoo.animal_crop + + agriculture_management_odoo.animal_crop + + report + + + + \ No newline at end of file diff --git a/agriculture_management_odoo/report/crop_report.xml b/agriculture_management_odoo/report/crop_report.xml new file mode 100644 index 000000000..51d26b032 --- /dev/null +++ b/agriculture_management_odoo/report/crop_report.xml @@ -0,0 +1,17 @@ + + + + Crop Report + crop.report.wizard + qweb-pdf + + agriculture_management_odoo.report_crop_details + + + agriculture_management_odoo.report_crop_details + + + report + + + diff --git a/agriculture_management_odoo/report/crop_report_template.xml b/agriculture_management_odoo/report/crop_report_template.xml new file mode 100644 index 000000000..e90db980b --- /dev/null +++ b/agriculture_management_odoo/report/crop_report_template.xml @@ -0,0 +1,92 @@ + + + + diff --git a/agriculture_management_odoo/report/crop_vehicle_report.xml b/agriculture_management_odoo/report/crop_vehicle_report.xml new file mode 100644 index 000000000..e97d29f53 --- /dev/null +++ b/agriculture_management_odoo/report/crop_vehicle_report.xml @@ -0,0 +1,90 @@ + + + + + + Vehicle Crop Report + crop.requests + qweb-pdf + agriculture_management_odoo.vehicle_crop + + agriculture_management_odoo.vehicle_crop + + report + + + \ No newline at end of file diff --git a/agriculture_management_odoo/report/pest_report.xml b/agriculture_management_odoo/report/pest_report.xml new file mode 100644 index 000000000..1456b11cb --- /dev/null +++ b/agriculture_management_odoo/report/pest_report.xml @@ -0,0 +1,17 @@ + + + + pest Report + pest.report.wizard + qweb-pdf + + agriculture_management_odoo.report_pest_details + + + agriculture_management_odoo.report_pest_details + + + report + + + diff --git a/agriculture_management_odoo/report/pest_report_template.xml b/agriculture_management_odoo/report/pest_report_template.xml new file mode 100644 index 000000000..51d2cc372 --- /dev/null +++ b/agriculture_management_odoo/report/pest_report_template.xml @@ -0,0 +1,113 @@ + + + + diff --git a/agriculture_management_odoo/security/ir.model.access.csv b/agriculture_management_odoo/security/ir.model.access.csv new file mode 100644 index 000000000..8b95b76b3 --- /dev/null +++ b/agriculture_management_odoo/security/ir.model.access.csv @@ -0,0 +1,37 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink + +access_crop_requests,access.crop.requests,model_crop_requests,base.group_user,1,1,1,1 + +access_seed_details,access.seed.details,model_seed_details,base.group_user,1,1,1,1 + +access_animal_details,access.animal.details,model_animal_details,base.group_user,1,1,1,1 + +access_location_details,access.location.details,model_location_details,base.group_user,1,1,1,1 + +access_vehicle_details,access.vehicle.details,model_vehicle_details,base.group_user,1,1,1,1 + +access_farmer_details,access.farmer.details,model_farmer_details,base.group_user,1,1,1,1 + +access_pest_request,access.pest.request,model_pest_request,base.group_user,1,1,1,1 + +access_pest_details,access.pest.details,model_pest_details,base.group_user,1,1,1,1 + +access_damage_loss,access.damage.loss,model_damage_loss,base.group_user,1,1,1,1 + +access_crop_machinery,access.crop.machinery,model_crop_machinery,base.group_user,1,1,1,1 + +access_crop_animals,access.crop.animals,model_crop_animals,base.group_user,1,1,1,1 + +access_agr_tag,access.agr.tag,model_agr_tag,base.group_user,1,1,1,1 + +access_vehicle_rental,access.vehicle.rental,model_vehicle_rental,base.group_user,1,1,1,1 + +access_animal_rental,access.animal.rental,model_animal_rental,base.group_user,1,1,1,1 + +access_crop_report_wizard,access.crop.report.wizard,model_crop_report_wizard,base.group_user,1,1,1,1 + +access_pest_report_wizard,access.pest.report.wizard,model_pest_report_wizard,base.group_user,1,1,1,1 + + + + diff --git a/agriculture_management_odoo/security/user_groups.xml b/agriculture_management_odoo/security/user_groups.xml new file mode 100644 index 000000000..fe25c0c72 --- /dev/null +++ b/agriculture_management_odoo/security/user_groups.xml @@ -0,0 +1,36 @@ + + + + Agriculture Management + Category for Agriculture + + + + User + + + + + Manager + + + + + + View Own Docs + + ['|',('user_id', '=', user.id),('create_uid', + '=', user.id)] + + + + + + View All Docs + + [(1, '=', 1)] + + + \ No newline at end of file diff --git a/agriculture_management_odoo/static/description/assets/icons/check.png b/agriculture_management_odoo/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/check.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/chevron.png b/agriculture_management_odoo/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/chevron.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/cogs.png b/agriculture_management_odoo/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/cogs.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/consultation.png b/agriculture_management_odoo/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/consultation.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/ecom-black.png b/agriculture_management_odoo/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/ecom-black.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/education-black.png b/agriculture_management_odoo/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/education-black.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/hotel-black.png b/agriculture_management_odoo/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/hotel-black.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/license.png b/agriculture_management_odoo/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/license.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/lifebuoy.png b/agriculture_management_odoo/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/lifebuoy.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/logo.png b/agriculture_management_odoo/static/description/assets/icons/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/logo.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/manufacturing-black.png b/agriculture_management_odoo/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/manufacturing-black.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/pos-black.png b/agriculture_management_odoo/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/pos-black.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/puzzle.png b/agriculture_management_odoo/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/puzzle.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/restaurant-black.png b/agriculture_management_odoo/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/restaurant-black.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/service-black.png b/agriculture_management_odoo/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/service-black.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/trading-black.png b/agriculture_management_odoo/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/trading-black.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/training.png b/agriculture_management_odoo/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/training.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/update.png b/agriculture_management_odoo/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/update.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/user.png b/agriculture_management_odoo/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/user.png differ diff --git a/agriculture_management_odoo/static/description/assets/icons/wrench.png b/agriculture_management_odoo/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/icons/wrench.png differ diff --git a/agriculture_management_odoo/static/description/assets/modules/budget_image.png b/agriculture_management_odoo/static/description/assets/modules/budget_image.png new file mode 100644 index 000000000..b50130c7d Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/modules/budget_image.png differ diff --git a/agriculture_management_odoo/static/description/assets/modules/credit_image.png b/agriculture_management_odoo/static/description/assets/modules/credit_image.png new file mode 100644 index 000000000..3ad04ecfd Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/modules/credit_image.png differ diff --git a/agriculture_management_odoo/static/description/assets/modules/employee_image.png b/agriculture_management_odoo/static/description/assets/modules/employee_image.png new file mode 100644 index 000000000..30ad58232 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/modules/employee_image.png differ diff --git a/agriculture_management_odoo/static/description/assets/modules/export_image.png b/agriculture_management_odoo/static/description/assets/modules/export_image.png new file mode 100644 index 000000000..492980ad0 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/modules/export_image.png differ diff --git a/agriculture_management_odoo/static/description/assets/modules/gantt_image.png b/agriculture_management_odoo/static/description/assets/modules/gantt_image.png new file mode 100644 index 000000000..1ae7cfe3b Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/modules/gantt_image.png differ diff --git a/agriculture_management_odoo/static/description/assets/modules/quotation_image.png b/agriculture_management_odoo/static/description/assets/modules/quotation_image.png new file mode 100644 index 000000000..499b1a72f Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/modules/quotation_image.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/agr_conf_3.png b/agriculture_management_odoo/static/description/assets/screenshots/agr_conf_3.png new file mode 100644 index 000000000..ac4b4c253 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/agr_conf_3.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/agr_crop_4.png b/agriculture_management_odoo/static/description/assets/screenshots/agr_crop_4.png new file mode 100644 index 000000000..428977eea Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/agr_crop_4.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/agr_manager_1.png b/agriculture_management_odoo/static/description/assets/screenshots/agr_manager_1.png new file mode 100644 index 000000000..2b0670ebf Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/agr_manager_1.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/agr_user_2.png b/agriculture_management_odoo/static/description/assets/screenshots/agr_user_2.png new file mode 100644 index 000000000..02bf3fe3f Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/agr_user_2.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/agr_vehicle_repor_6.png b/agriculture_management_odoo/static/description/assets/screenshots/agr_vehicle_repor_6.png new file mode 100644 index 000000000..8c6651517 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/agr_vehicle_repor_6.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/agr_vehicle_report_print_5.png b/agriculture_management_odoo/static/description/assets/screenshots/agr_vehicle_report_print_5.png new file mode 100644 index 000000000..bfdf66d71 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/agr_vehicle_report_print_5.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/animal_rental_10.png b/agriculture_management_odoo/static/description/assets/screenshots/animal_rental_10.png new file mode 100644 index 000000000..719720735 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/animal_rental_10.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/animal_repor_8.png b/agriculture_management_odoo/static/description/assets/screenshots/animal_repor_8.png new file mode 100644 index 000000000..b21cbec57 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/animal_repor_8.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/animal_report_print_7.png b/agriculture_management_odoo/static/description/assets/screenshots/animal_report_print_7.png new file mode 100644 index 000000000..da8f7b159 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/animal_report_print_7.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/damage_loss_11.png b/agriculture_management_odoo/static/description/assets/screenshots/damage_loss_11.png new file mode 100644 index 000000000..5a3d274bf Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/damage_loss_11.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/hero.gif b/agriculture_management_odoo/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..9d01c823c Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/hero.gif differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/main_rep_pdf_out_16.png b/agriculture_management_odoo/static/description/assets/screenshots/main_rep_pdf_out_16.png new file mode 100644 index 000000000..e9690a53d Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/main_rep_pdf_out_16.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/main_report_14.png b/agriculture_management_odoo/static/description/assets/screenshots/main_report_14.png new file mode 100644 index 000000000..e96c0dd74 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/main_report_14.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/pest_details_13.png b/agriculture_management_odoo/static/description/assets/screenshots/pest_details_13.png new file mode 100644 index 000000000..6ff4135f4 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/pest_details_13.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/pest_req_12.png b/agriculture_management_odoo/static/description/assets/screenshots/pest_req_12.png new file mode 100644 index 000000000..9828364a8 Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/pest_req_12.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/rental_veh_9.png b/agriculture_management_odoo/static/description/assets/screenshots/rental_veh_9.png new file mode 100644 index 000000000..9c3926ade Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/rental_veh_9.png differ diff --git a/agriculture_management_odoo/static/description/assets/screenshots/report_wiz_15.png b/agriculture_management_odoo/static/description/assets/screenshots/report_wiz_15.png new file mode 100644 index 000000000..c814687bf Binary files /dev/null and b/agriculture_management_odoo/static/description/assets/screenshots/report_wiz_15.png differ diff --git a/agriculture_management_odoo/static/description/banner.png b/agriculture_management_odoo/static/description/banner.png new file mode 100644 index 000000000..3dc1faa62 Binary files /dev/null and b/agriculture_management_odoo/static/description/banner.png differ diff --git a/agriculture_management_odoo/static/description/icon.png b/agriculture_management_odoo/static/description/icon.png new file mode 100644 index 000000000..8226a0926 Binary files /dev/null and b/agriculture_management_odoo/static/description/icon.png differ diff --git a/agriculture_management_odoo/static/description/index.html b/agriculture_management_odoo/static/description/index.html new file mode 100644 index 000000000..b57722df4 --- /dev/null +++ b/agriculture_management_odoo/static/description/index.html @@ -0,0 +1,699 @@ +
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+ +
+
+
+
+ +
+
+
+

+ Agriculture Management

+

+ A Module For Managing Agriculture. +

+ +
+
+ + + +
+
+

+ Overview +

+
+ +
+

+ In the Agriculture Management App, We can manage the agriculture to our own need. + We can also manage the rentals of vehicle and animals for agriculture purpose. + We can also customize and hide the fields.

+
+

+ +
+ + +
+
+

+ Features +

+
+ +
+
+ +
+
+

+ Set the Manager and User in settings.

+
+
+ +
+
+ +
+
+

+ Create Crop Requests.

+
+
+ +
+
+ +
+
+

+ Create Rentals for Vehicles and Animals.

+
+
+ +
+
+ +
+
+

+ Create Damage/Loss Report.

+
+
+
+
+ +
+
+

+ Create Pesticide Request and Can View the Pesticide Details.

+
+
+
+
+ +
+
+

+ Create Total Crop Request Report.

+
+
+ + +
+ +
+
+

+ Screenshots +

+
+
+

+ Provide User Access

+

+ In Settings, user can have Manager access which is overall access and another one is User access. + layout

+ + +
+ +
+

+ Configuration

+

+ User can create Seed, Farmers, Vehicles, Animals, Locations and Tags used for creating Crop Request. +

+ +
+ +
+

+ Create Crop Request using created values in configuration.

+ +
+ + +
+

+ User can print report of current record of used vehicles.

+ +
+ + +
+

+ Report view of used vehicle report.

+ +
+ + +
+

+ User Can Print Report Of Current Record of Used Animals.

+ +
+ +
+

+ Report View Of Used Animal Report.

+ +
+ +
+

+ User Can Rent The Vehicles.

+ +
+ +
+

+ User Can Rent The Animals.

+ +
+ +
+

+ User Can Submit Damage/ Loss of the Crops.

+ +
+ +
+

+ User Can Request Pesticide For The Crops.

+ +
+ +
+

+ User Can Create and View Pesticides Available.

+ +
+ +
+

+ User Can Take The Crop Request Report.

+ +
+ +
+

+ Enter The Date Range To Print Report.

+ +
+ +
+

+ Report View Of Crop Request.

+ +
+ +
+ +
+
+

Suggested 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

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

Need Help?

+
+
+
+ + +
+ +
+ + +
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
\ No newline at end of file diff --git a/agriculture_management_odoo/views/animal_details_views.xml b/agriculture_management_odoo/views/animal_details_views.xml new file mode 100644 index 000000000..60ea8e6a3 --- /dev/null +++ b/agriculture_management_odoo/views/animal_details_views.xml @@ -0,0 +1,54 @@ + + + + animal.details.tree + animal.details + + + + + + + + + + + animal.details.form + animal.details + +
+
+
+ +

+ +

+ + + + + + + + + +
+
+ + + +
+
+
+
+ +
\ No newline at end of file diff --git a/agriculture_management_odoo/views/animal_rental_views.xml b/agriculture_management_odoo/views/animal_rental_views.xml new file mode 100644 index 000000000..305110e39 --- /dev/null +++ b/agriculture_management_odoo/views/animal_rental_views.xml @@ -0,0 +1,44 @@ + + + + animal.rental.tree + animal.rental + + + + + + + + + + + animal.rental.form + animal.rental + +
+ + + + + + + + + + + + + +
+ + + +
+
+
+
+ + +
\ No newline at end of file diff --git a/agriculture_management_odoo/views/crop_request.xml b/agriculture_management_odoo/views/crop_request.xml new file mode 100644 index 000000000..487b81e93 --- /dev/null +++ b/agriculture_management_odoo/views/crop_request.xml @@ -0,0 +1,150 @@ + + + + crop.request.kanban + crop.requests + + + + + + + + + + +
+
+ + +
+ +
+ +
+ +
+ +
+
+
+
+
+
+
+
+
+ + + + crop.request.tree + crop.requests + + + + + + + + + + + + crop.request.form + crop.requests + +
+
+
+ +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/views/damage_loss.xml b/agriculture_management_odoo/views/damage_loss.xml new file mode 100644 index 000000000..5946a652c --- /dev/null +++ b/agriculture_management_odoo/views/damage_loss.xml @@ -0,0 +1,48 @@ + + + + damage.loss.tree + damage.loss + + + + + + + + + + + + + damage.loss.form + damage.loss + +
+ +

+ +

+ + + + + + + + + + + + + +
+
+ + + +
+
+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/views/farmer_details_view.xml b/agriculture_management_odoo/views/farmer_details_view.xml new file mode 100644 index 000000000..0a50729bf --- /dev/null +++ b/agriculture_management_odoo/views/farmer_details_view.xml @@ -0,0 +1,64 @@ + + + + farmer.details.kanban + farmer.details + + + + + + +
+
+
    + + +
    + + +
    +
    + +
    +
    +
    +
+
+
+
+
+
+
+
+ + + farmer.details.form + farmer.details + +
+ + + + + + + + + + + +
+ + + +
+
+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/views/fleet_inherit_view.xml b/agriculture_management_odoo/views/fleet_inherit_view.xml new file mode 100644 index 000000000..f67df601c --- /dev/null +++ b/agriculture_management_odoo/views/fleet_inherit_view.xml @@ -0,0 +1,18 @@ + + + + fleet.vehicle.inherited + fleet.vehicle + + + + + + + + + + + \ No newline at end of file diff --git a/agriculture_management_odoo/views/location_details_view.xml b/agriculture_management_odoo/views/location_details_view.xml new file mode 100644 index 000000000..bcebc3114 --- /dev/null +++ b/agriculture_management_odoo/views/location_details_view.xml @@ -0,0 +1,44 @@ + + + + location.details.tree + location.details + + + + + + + + + + + location.details.form + location.details + +
+ +

+ +

+ + + + + + + + + + + +
+
+ + + +
+
+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/views/menu_action.xml b/agriculture_management_odoo/views/menu_action.xml new file mode 100644 index 000000000..403c7701e --- /dev/null +++ b/agriculture_management_odoo/views/menu_action.xml @@ -0,0 +1,177 @@ + + + + + Crops + ir.actions.act_window + crop.requests + kanban,tree,form + {'search_default_available':1} + +

+ Create Your First Crop Request +

+
+
+ + + + Vehicle Rental + ir.actions.act_window + vehicle.rental + tree,form,kanban + {'search_default_available':1} + +

+ Create Your First Vehicle Rental Request +

+
+
+ + + Vehicle Rental + ir.actions.act_window + animal.rental + tree,form,kanban + {'search_default_available':1} + +

+ Create Your First Animal Rental Request +

+
+
+ + + + Pesticide Request + ir.actions.act_window + pest.request + tree,form + {'search_default_available':1} + +

+ Create Your First Pest Request +

+
+
+ + + Pesticide Details + ir.actions.act_window + pest.details + tree,form + {'search_default_available':1} + +

+ Create Your First Pesticide +

+
+
+ + + Damage and Loss + ir.actions.act_window + damage.loss + tree,form + {'search_default_available':1} + +

+ Create Your First Damage and Loss +

+
+
+ + + Crop Report + ir.actions.act_window + crop.report.wizard + form + + new + + + Pest Report + ir.actions.act_window + pest.report.wizard + form + + new + + + + + Seeds + ir.actions.act_window + seed.details + tree,form + {'search_default_available':1} + +

+ Create Your First Seed +

+
+
+ + Animals + ir.actions.act_window + animal.details + tree,form + {'search_default_available':1} + +

+ Create Your First Animal +

+
+
+ + Locations + ir.actions.act_window + location.details + tree,form + {'search_default_available':1} + +

+ Create Your First Location +

+
+
+ + + Vehicles + ir.actions.act_window + vehicle.details + tree,form + {'search_default_available':1} + +

+ Create Your First Vehicle +

+
+
+ + + Tags + ir.actions.act_window + agr.tag + tree,form + {'search_default_available':1} + +

+ Create Your First Tag +

+
+
+ + + Farmers + ir.actions.act_window + farmer.details + kanban,form,tree + {'search_default_available':1} + +

+ Create Your First Farmer +

+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/views/menu_items.xml b/agriculture_management_odoo/views/menu_items.xml new file mode 100644 index 000000000..09ac301e7 --- /dev/null +++ b/agriculture_management_odoo/views/menu_items.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/agriculture_management_odoo/views/pest_details.xml b/agriculture_management_odoo/views/pest_details.xml new file mode 100644 index 000000000..d0f8b6650 --- /dev/null +++ b/agriculture_management_odoo/views/pest_details.xml @@ -0,0 +1,52 @@ + + + + + pest.details.tree + pest.details + + + + + + + + + + + + + pest.details.form + pest.details + +
+ + + + + + + + + + + + + + + + +
+ + + +
+
+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/views/pest_request.xml b/agriculture_management_odoo/views/pest_request.xml new file mode 100644 index 000000000..4575ae2a0 --- /dev/null +++ b/agriculture_management_odoo/views/pest_request.xml @@ -0,0 +1,78 @@ + + + + pest.request.tree + pest.request + + + + + + + + + + + + + + + pest.request.form + pest.request + +
+
+
+ +

+ +

+ + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/views/seed_details_view.xml b/agriculture_management_odoo/views/seed_details_view.xml new file mode 100644 index 000000000..e7b948864 --- /dev/null +++ b/agriculture_management_odoo/views/seed_details_view.xml @@ -0,0 +1,46 @@ + + + + + seed.details.tree + seed.details + + + + + + + + + + + + + seed.details.form + seed.details + +
+ +

+ Name +

+ + + + + + + + + + +
+
+ + + +
+
+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/views/tag_details.xml b/agriculture_management_odoo/views/tag_details.xml new file mode 100644 index 000000000..5e16aa73b --- /dev/null +++ b/agriculture_management_odoo/views/tag_details.xml @@ -0,0 +1,37 @@ + + + + agriculture.tag.view.form + agr.tag + +
+ +
+
+ + + + + +
+
+
+
+ + + agriculture.tag.view.tree + agr.tag + + + + + + + + +
\ No newline at end of file diff --git a/agriculture_management_odoo/views/vehicle_details_view.xml b/agriculture_management_odoo/views/vehicle_details_view.xml new file mode 100644 index 000000000..85abd5d8c --- /dev/null +++ b/agriculture_management_odoo/views/vehicle_details_view.xml @@ -0,0 +1,43 @@ + + + + vehicle.details.tree + vehicle.details + + + + + + + + + + + vehicle.details.form + vehicle.details + +
+ +

+ +

+ + + + + + + + + + +
+
+ + + +
+
+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/views/vehicle_rental_views.xml b/agriculture_management_odoo/views/vehicle_rental_views.xml new file mode 100644 index 000000000..9bbf408e8 --- /dev/null +++ b/agriculture_management_odoo/views/vehicle_rental_views.xml @@ -0,0 +1,44 @@ + + + + vehicle.rental.tree + vehicle.rental + + + + + + + + + + + vehicle.rental.form + vehicle.rental + +
+ + + + + + + + + + + + + +
+ + + +
+
+
+
+ + +
\ No newline at end of file diff --git a/agriculture_management_odoo/wizard/__init__.py b/agriculture_management_odoo/wizard/__init__.py new file mode 100644 index 000000000..ae6ad7ce5 --- /dev/null +++ b/agriculture_management_odoo/wizard/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import crop_report_wiz +from . import pest_report_wiz diff --git a/agriculture_management_odoo/wizard/crop_report_wiz.py b/agriculture_management_odoo/wizard/crop_report_wiz.py new file mode 100644 index 000000000..ab6635424 --- /dev/null +++ b/agriculture_management_odoo/wizard/crop_report_wiz.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class CropReport(models.TransientModel): + _name = 'crop.report.wizard' + _description = 'Crop Report Wizard' + + date_from = fields.Date(string='From Date') + date_to = fields.Date(string='To Date') + + def action_pdf_report(self): + ret = """select crop_requests.ref, res_partner.name, + seed_details.name, crop_requests.request_date, crop_requests.state, + location_details.location_name from crop_requests + inner join farmer_details ON + crop_requests.farmer_id = farmer_details.id + inner join res_partner ON + farmer_details.farmer_name = res_partner.id + inner join seed_details ON + crop_requests.seed_id = seed_details.id + inner join location_details ON + crop_requests.location_id = location_details.id""" + if self.date_from and self.date_to: + ret = ret + """ where crop_requests.request_date > '""" + str( + self.date_from) + """' AND crop_requests.request_date < '""" + str( + self.date_to) + """'""" + self.env.cr.execute(ret) + record = self.env.cr.fetchall() + data = { + 'form': self.read()[0], + 'date_to': self.date_to, + 'date_from': self.date_from, + 'record': record + } + return self.env.ref( + 'agriculture_management_odoo.action_crop_request_report').report_action( + self, data=data) diff --git a/agriculture_management_odoo/wizard/crop_report_wiz.xml b/agriculture_management_odoo/wizard/crop_report_wiz.xml new file mode 100644 index 000000000..7d71342d4 --- /dev/null +++ b/agriculture_management_odoo/wizard/crop_report_wiz.xml @@ -0,0 +1,25 @@ + + + + crop.report.wizard.form + crop.report.wizard + +
+ + + + + + + + +
+
+
+
+
+
\ No newline at end of file diff --git a/agriculture_management_odoo/wizard/pest_report_wiz.py b/agriculture_management_odoo/wizard/pest_report_wiz.py new file mode 100644 index 000000000..455a2aa3c --- /dev/null +++ b/agriculture_management_odoo/wizard/pest_report_wiz.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2022-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL 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 LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class CropReport(models.TransientModel): + _name = 'pest.report.wizard' + _description = 'Pest Report Wizard' + + date_from = fields.Date(string='From Date') + date_to = fields.Date(string='To Date') + + def action_pdf_report(self): + ret = """select pest_request.reference, res_partner.name, crop_requests.ref, + pest_request.disease, pest_details.pest_name,pest_request.pest_quantity, + pest_request.pest_cost, pest_request.total_cost,pest_request.state from pest_request + inner join res_partner on pest_request.farmer_id = res_partner.id + inner join crop_requests on crop_requests.id = pest_request.crop_id + inner join pest_details on pest_details.id = pest_request.pest_id""" + if self.date_from and self.date_to: + ret = ret + """ where crop_requests.request_date > '""" + str( + self.date_from) + """' AND crop_requests.request_date < '""" + str( + self.date_to) + """'""" + self.env.cr.execute(ret) + record = self.env.cr.fetchall() + data = { + 'form': self.read()[0], + 'date_to': self.date_to, + 'date_from': self.date_from, + 'record': record + } + return self.env.ref( + 'agriculture_management_odoo.action_crop_request_report').report_action( + self, data=data) diff --git a/agriculture_management_odoo/wizard/pest_report_wiz.xml b/agriculture_management_odoo/wizard/pest_report_wiz.xml new file mode 100644 index 000000000..635f60850 --- /dev/null +++ b/agriculture_management_odoo/wizard/pest_report_wiz.xml @@ -0,0 +1,25 @@ + + + + pest.report.wizard.form + pest.report.wizard + +
+ + + + + + + + + +
+
+
+
\ No newline at end of file