From 6ccb9acd5e3014857d57ead9bd2881ab8d8d1fc7 Mon Sep 17 00:00:00 2001 From: sonal Date: Thu, 23 Jul 2020 17:39:55 +0530 Subject: [PATCH] work on mks --- mks_delivery/__init__.py | 10 +++ mks_delivery/__manifest__.py | 44 ++++++++++ mks_delivery/models/__init__.py | 17 ++++ mks_delivery/models/city_city.py | 25 ++++++ mks_delivery/models/project_task.py | 66 ++++++++++++++ mks_delivery/models/res_config.py | 24 ++++++ mks_delivery/models/res_partner.py | 22 +++++ mks_delivery/models/sale.py | 63 ++++++++++++++ mks_delivery/models/zone_zone.py | 26 ++++++ mks_delivery/security/ir.model.access.csv | 3 + mks_delivery/views/city_form_view.xml | 42 +++++++++ mks_delivery/views/project_task_view.xml | 100 ++++++++++++++++++++++ mks_delivery/views/res_config_views.xml | 24 ++++++ mks_delivery/views/res_partner_view.xml | 13 +++ mks_delivery/views/sale_view.xml | 13 +++ mks_delivery/views/zone_form_view.xml | 51 +++++++++++ 16 files changed, 543 insertions(+) create mode 100644 mks_delivery/__init__.py create mode 100644 mks_delivery/__manifest__.py create mode 100644 mks_delivery/models/__init__.py create mode 100644 mks_delivery/models/city_city.py create mode 100644 mks_delivery/models/project_task.py create mode 100644 mks_delivery/models/res_config.py create mode 100644 mks_delivery/models/res_partner.py create mode 100644 mks_delivery/models/sale.py create mode 100644 mks_delivery/models/zone_zone.py create mode 100644 mks_delivery/security/ir.model.access.csv create mode 100644 mks_delivery/views/city_form_view.xml create mode 100644 mks_delivery/views/project_task_view.xml create mode 100644 mks_delivery/views/res_config_views.xml create mode 100644 mks_delivery/views/res_partner_view.xml create mode 100644 mks_delivery/views/sale_view.xml create mode 100644 mks_delivery/views/zone_form_view.xml diff --git a/mks_delivery/__init__.py b/mks_delivery/__init__.py new file mode 100644 index 0000000..562cc06 --- /dev/null +++ b/mks_delivery/__init__.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +############################################################################## + +from . import models + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mks_delivery/__manifest__.py b/mks_delivery/__manifest__.py new file mode 100644 index 0000000..aaff885 --- /dev/null +++ b/mks_delivery/__manifest__.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +############################################################################## + +{ + 'name': 'MKS Delivery', + 'version': '13.0.1.0', + 'sequence': 1, + 'category': 'Generic Modules/Sales Management', + 'description': + """ + This Module add below functionality into odoo + + 1.Sale Field Service Task\n + + """, + 'summary': 'MKS Delivery', + 'author': 'Masterkey', + 'website': 'irfan@masterkeyglobal.com', + 'depends': ['sale_management','industry_fsm','project','contacts'], + 'data': [ + 'security/ir.model.access.csv', + 'views/res_config_views.xml', + 'views/sale_view.xml', + 'views/zone_form_view.xml', + 'views/city_form_view.xml', + 'views/res_partner_view.xml', + 'views/project_task_view.xml', + ], + 'demo': [], + 'test': [], + 'css': [], + 'qweb': [], + 'js': [], + 'images': [], + 'installable': True, + 'application': True, + 'auto_install': False, +} + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mks_delivery/models/__init__.py b/mks_delivery/models/__init__.py new file mode 100644 index 0000000..13a6ec0 --- /dev/null +++ b/mks_delivery/models/__init__.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +# +############################################################################## + +from . import res_config +from . import sale +from . import zone_zone +from . import res_partner +from . import city_city +from . import project_task + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mks_delivery/models/city_city.py b/mks_delivery/models/city_city.py new file mode 100644 index 0000000..0bd3a9d --- /dev/null +++ b/mks_delivery/models/city_city.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +# +############################################################################## + +from odoo import models, fields, api + + +class city_city(models.Model): + _name = 'city.city' + + name = fields.Char(string="Name") + code = fields.Char(string="Code") + zone_id = fields.Many2one('zone.zone',string="Zone") + + + + + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mks_delivery/models/project_task.py b/mks_delivery/models/project_task.py new file mode 100644 index 0000000..5c5f0a5 --- /dev/null +++ b/mks_delivery/models/project_task.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +# +############################################################################## + +from odoo import models, fields, api,_ +from odoo.exceptions import ValidationError + +class project_task(models.Model): + _inherit='project.task' + + + state = fields.Selection([ + ('unassigned', 'Unassigned'), + ('assigned','Assigned'),('accepted','Accepted'), + ('started','Started'),('delivered','Delivered'), + ('cancel','Cancel'),('issue','Issue'), + ('paid','Paid'),('non_paid','Non Paid'), + ], string='Status', readonly=True, copy=False, default='unassigned') + + zone_id = fields.Many2one('zone.zone',string="Zone") + + def action_assign(self): + self.state = 'assigned' + return True + + def action_accept(self): + self.state = 'accepted' + return True + + def action_start(self): + self.state = 'started' + return True + + def action_delivery(self): + self.state = 'delivered' + return True + + def action_cancel(self): + self.state = 'cancel' + return True + + def action_issue(self): + self.state = 'issue' + return True + + def action_paid(self): + self.state = 'paid' + return True + + def action_non_paid(self): + self.state = 'non_paid' + return True + + + + + + + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mks_delivery/models/res_config.py b/mks_delivery/models/res_config.py new file mode 100644 index 0000000..55c6440 --- /dev/null +++ b/mks_delivery/models/res_config.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +############################################################################## + +from odoo import models, fields, api + + +class ResCompany(models.Model): + _inherit = 'res.company' + + project_id = fields.Many2one('project.project',string='Project' ,readonly=False) + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + project_id = fields.Many2one(related='company_id.project_id',readonly=False, string='Project') + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mks_delivery/models/res_partner.py b/mks_delivery/models/res_partner.py new file mode 100644 index 0000000..d875dc7 --- /dev/null +++ b/mks_delivery/models/res_partner.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +# +############################################################################## + +from odoo import models, fields, api,_ +from odoo.exceptions import ValidationError + +class res_partner(models.Model): + _inherit='res.partner' + + city_id = fields.Many2one('city.city',string="City") + + + + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mks_delivery/models/sale.py b/mks_delivery/models/sale.py new file mode 100644 index 0000000..5dd20d7 --- /dev/null +++ b/mks_delivery/models/sale.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +############################################################################## + +from odoo import models, fields, api,_ +from odoo.exceptions import ValidationError + +class sale_order(models.Model): + _inherit='sale.order' + + task_id = fields.Many2one('project.task',string='Field Services Task', \ + copy=False) + + def services_task_values(self): + if not self.company_id.project_id: + raise ValidationError(_('Project - Field Service Task not configured properly !')) + + project_id = self.company_id.project_id and self.company_id.project_id.id \ + or False + notes = "Notes:" + '
'+"-----------------------"+'
'+"Product: "\ + +'

' + for line in self.order_line: + notes += str(line.product_id.name )+" : "+ str(line.product_uom_qty)\ + +" qty" +'
' + vals = {'name':self.name, + 'partner_id': self.partner_id and self.partner_id.id or False, + 'planned_date_begin': self.date_order, + 'planned_date_end': self.date_order, + 'project_id':project_id, + 'description':notes, + 'user_id':False, + 'zone_id':self.partner_id.city_id and self.partner_id.city_id.zone_id and \ + self.partner_id.city_id.zone_id.id or False, + + } + return vals + + def _prepare_project_task(self,task_values): + project_task_ids = self.env['project.task'].create(task_values) + self.task_id = project_task_ids.id + return True + + def action_confirm(self): + res =super(sale_order,self).action_confirm() + task_values = self.services_task_values() + self._prepare_project_task(task_values) + return res + + def action_view_task(self): + action = self.env.ref('industry_fsm.project_task_action_fsm').read()[0] + task_id = self.mapped('task_id') + if task_id: + action['views'] = [ + (self.env.ref('industry_fsm.project_task_view_form').id, 'form')] + action['res_id'] = task_id.id + return action + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mks_delivery/models/zone_zone.py b/mks_delivery/models/zone_zone.py new file mode 100644 index 0000000..8d6937a --- /dev/null +++ b/mks_delivery/models/zone_zone.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# +############################################################################## + +from odoo import models, fields, api + + +class zone_zone(models.Model): + _name = 'zone.zone' + + name = fields.Char(string="Name",required=True) + code = fields.Char(string="Code") + zone_ids = fields.One2many('city.city','zone_id',string='Zone', \ + copy=False) + + + + + + + + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/mks_delivery/security/ir.model.access.csv b/mks_delivery/security/ir.model.access.csv new file mode 100644 index 0000000..150f822 --- /dev/null +++ b/mks_delivery/security/ir.model.access.csv @@ -0,0 +1,3 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_zone_zone","zone_zon","model_zone_zone",,1,1,1,1 +"access_city_city","city_city","model_city_city",,1,1,1,1 diff --git a/mks_delivery/views/city_form_view.xml b/mks_delivery/views/city_form_view.xml new file mode 100644 index 0000000..cfab467 --- /dev/null +++ b/mks_delivery/views/city_form_view.xml @@ -0,0 +1,42 @@ + + + + city.form.view + city.city + +
+ + + + + + + + + + + +
+
+
+ + + city.tree.view + city.city + + + + + + + + + + City + ir.actions.act_window + city.city + tree,form + + +
+ diff --git a/mks_delivery/views/project_task_view.xml b/mks_delivery/views/project_task_view.xml new file mode 100644 index 0000000..2a5ba78 --- /dev/null +++ b/mks_delivery/views/project_task_view.xml @@ -0,0 +1,100 @@ + + + + project.task.view.zone + project.task + + + +
+
+
+ + + + + + + + + 1 + +
+
+ + + + project.task.Service.search + project.task + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + project.task.list.view + project.task + + + + + + + + + + + + + + + + + + + + + +
diff --git a/mks_delivery/views/res_config_views.xml b/mks_delivery/views/res_config_views.xml new file mode 100644 index 0000000..c33b9f5 --- /dev/null +++ b/mks_delivery/views/res_config_views.xml @@ -0,0 +1,24 @@ + + + + res.config.sale.project + res.config.settings + + + + +

Project - Field Service Task

+
+
+ + + +
+
+
+
+
+ +
+ + diff --git a/mks_delivery/views/res_partner_view.xml b/mks_delivery/views/res_partner_view.xml new file mode 100644 index 0000000..4671042 --- /dev/null +++ b/mks_delivery/views/res_partner_view.xml @@ -0,0 +1,13 @@ + + + + zone.res.partner.view.inherit + res.partner + + + + + + + + diff --git a/mks_delivery/views/sale_view.xml b/mks_delivery/views/sale_view.xml new file mode 100644 index 0000000..329f09d --- /dev/null +++ b/mks_delivery/views/sale_view.xml @@ -0,0 +1,13 @@ + + + + sale.order.inherit + sale.order + + + +