~opencrea/+junk/openrv12

« back to all changes in this revision

Viewing changes to import_data/models/import_log.py

  • Committer: Mathieu Hoorelbeke
  • Date: 2019-11-28 09:25:01 UTC
  • Revision ID: mathieu.hoorelbeke@opencrea.fr-20191128092501-4ff7rfqrqrd2f9a9
add import_data

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: utf-8 -*-
 
2
 
 
3
from odoo import api, models, fields
 
4
import datetime
 
5
 
 
6
 
 
7
class ImportLog(models.Model):
 
8
    _name = "import.log"
 
9
    _description = "Data import log"
 
10
    _order = "date"
 
11
 
 
12
    date = fields.Datetime("date", default=fields.Datetime.now())
 
13
    model = fields.Char('Model')
 
14
    field = fields.Char('Field')
 
15
    value = fields.Char('value')
 
16
 
 
17
    name = fields.Char('Note')
 
18
    wizard_id = fields.Integer('wizard_id')
 
19
    description = fields.Text('ref')
 
20
    type_error = fields.Char('Type')
 
21
    filename = fields.Char('File')
 
22
    state = fields.Selection([
 
23
        ("draft", "Draft"),
 
24
        ("running", "Running"),
 
25
        ("done", "Done"),
 
26
        ("error", "On error")], string="State",
 
27
        index=True, default='draft')
 
28
 
 
29
    @api.model
 
30
    def exist_one(self, model, field, value, vals={}):
 
31
        "check if this error is register before log and return false or return id"
 
32
        res_ids = self.env[model].search([(field, '=', value)])
 
33
        if res_ids:
 
34
            return res_ids[0]
 
35
        else:
 
36
            self.exist_log(model, field, value, vals)
 
37
            return False
 
38
 
 
39
    @api.model
 
40
    def exist_log(self, model, field, value, vals={}):
 
41
        "Check if this log is already logged"
 
42
        log_ids = self.search([('model', '=', model), ('field', '=', field), ('value', '=', value)])
 
43
        if not log_ids:
 
44
            vals.update({'model': model, 'field': field, 'value': value})
 
45
            self.create(vals)
 
46
 
 
47
    @api.model
 
48
    def exist_product(self, default_code):
 
49
        "check this default code"
 
50
        model = 'product.template'
 
51
        field = 'default_code'
 
52
        value = default_code
 
53
        vals = {"name": "product", "description": value}
 
54
 
 
55
        return self.exist_one(model, field, value, vals=vals)
 
56
 
 
57
    @api.model
 
58
    def exist_product9(self, default_code):
 
59
        "check this default code"
 
60
        model = 'product.template'
 
61
        field = 'code9'
 
62
        value = default_code
 
63
        vals = {"name": "product", "description": value}
 
64
        return self.exist_one(model, field, value, vals=vals)
 
65
 
 
66
    @api.model
 
67
    def exist_plant(self, plant_name):
 
68
        "check workshop"
 
69
        plant_ids = self.env['mrp.plant'].search([('name', '=', plant_name)])
 
70
        res_id = False
 
71
 
 
72
        if plant_ids:
 
73
            res_id = plant_ids[0]
 
74
 
 
75
        if not res_id:
 
76
            vals = {"name": "plant", "description": plant_name}
 
77
            self.exist_log('mrp.plant', 'name', plant_name, vals=vals)
 
78
 
 
79
        return res_id
 
80
 
 
81
    @api.model
 
82
    def exist_workshop(self, plant_name, workshop_name):
 
83
        "check workshop"
 
84
        workshop_ids = self.env['mrp.workshop'].search([('name', '=', workshop_name)])
 
85
        res_id = False
 
86
 
 
87
        if workshop_ids:
 
88
            for workshop in workshop_ids:
 
89
                if workshop.plant_id.name == plant_name:
 
90
                    res_id = workshop
 
91
                    break
 
92
 
 
93
        if not res_id:
 
94
            vals = {"name": "workshop", "description": workshop_name + ';' + plant_name}
 
95
            self.exist_log('mrp.workshop', 'name', workshop_name, vals=vals)
 
96
 
 
97
        return res_id
 
98
 
 
99
    @api.model
 
100
    def exist_workcenter(self, plant_name, workshop_name, workcenter_name):
 
101
        "check workcenter"
 
102
        workcenter_ids = self.env['mrp.workcenter'].search([('name', '=', workcenter_name)])
 
103
        res_id = False
 
104
 
 
105
        if workcenter_ids:
 
106
            for workcenter in workcenter_ids:
 
107
                if workcenter.workshop_id.name == workshop_name and workcenter.plant_id.name == plant_name:
 
108
                    res_id = workcenter
 
109
                    break
 
110
 
 
111
        if not res_id:
 
112
            vals = {"name": "workcenter", "description": workcenter_name + '; ' + workshop_name + ';' + plant_name}
 
113
            self.exist_log('mrp.workcenter', 'name', workcenter_name, vals=vals)
 
114
 
 
115
        return res_id
 
116
 
 
117
 
 
118
class ImportConfiguration(models.Model):
 
119
    _name = "import.configuration"
 
120
    _description = "Data import configuration"
 
121
 
 
122
    configuration = fields.Text('Configuration')
 
123
    name = fields.Char('description')
 
124
    model_name = fields.Char('Model name')
 
125