|
- from odoo import models, fields
- import time
-
- class res_company(models.Model):
- _name = "res.company"
- _inherit = "res.company"
- company_bp_ids = fields.One2many('company.bp', 'company_id', 'Plans')
-
-
- class company_bp(models.Model):
- _name = "company.bp"
- _description = "Company buisiness plans"
- company_id = fields.Many2one('res.company', 'Company', ondelete='cascade',
- default = lambda self: self.env.company)
- name = fields.Char('Period',size=200 ,
- default =lambda *a: time.strftime('%Y-%m'))
- state = fields.Selection([('draft','Draft'),
- ('tobevalidated','To be validated'),
- ('valid','Valid'),
- ('obsolete','Obsolete'),], 'State',readonly=True , default = 'draft' )
- start_date = fields.Date('Start date')
- end_date = fields.Date('End date')
- validation_date = fields.Datetime('ValiDation date',readonly=True)
-
-
- # MAIN
- mission = fields.Text('Mission')
- positioning = fields.Text('Positioning')
- problems = fields.One2many('company.problem', 'bp_id', 'Problems')
- annual_targets = fields.One2many('company.target', 'bp_id', 'Targets')
-
- # PEST
- political = fields.Text('Political')
- econo = fields.Text('Economical')
- social = fields.Text('Social')
- techno = fields.Text('Technological')
- # PORTER
- porter_customers = fields.Text('Porter customer analysis')
- porter_suppliers = fields.Text('Porter suppliers analysis')
- porter_competitors = fields.Text('Porter competitors analysis')
- porter_entrants = fields.Text('Porter entrants analysis')
- porter_substitutes = fields.Text('Porter substitutes analysis')
- # SWOT
- strenghts = fields.Text('SWOT : Strenghts')
- weaknesses = fields.Text('SWOT : Weaknesses')
- opportunities = fields.Text('SWOT : Opportunities')
- threats = fields.Text('SWOT : Threats')
- # Strategy
- strategy = fields.Text('Strategy')
- # Notes
- notes = fields.Text('Notes')
-
- def button_request_validation(self):
- for bp in self:
- bp.state = "tobevalidated"
- def button_valid(self):
- for bp in self:
- bp.state = "valid"
- def button_set_obsolete(self):
- for bp in self:
- bp.state = "obsolete"
- def button_set_draft(self):
- for bp in self:
- bp.state = "draft"
-
-
- class company_bp_problem(models.Model):
- _name = "company.problem"
- _description = "List of period's problems to solve"
- bp_id = fields.Many2one('company.bp', 'Business plan', ondelete='cascade')
- name = fields.Char('Problem',size=200)
- solution = fields.Char('Action',size=200)
- is_achived = fields.Boolean('Achived')
- notes = fields.Text('Notes')
-
-
- class company_bp_target(models.Model):
- _name = "company.target"
- _description = "List of period's targets"
- bp_id = fields.Many2one('company.bp', 'Business plan', ondelete='cascade')
- name = fields.Char('Target',size=200)
- result = fields.Char('Action',size=200)
- is_achived = fields.Boolean('Achived')
- notes = fields.Text('Notes')
|