Skip to content
  • Categories
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse

Odoo 中文社区

  1. Home
  2. Categories
  3. Odoo 新手求助
  4. 如何在BOM清单明细中增加编码字段?

如何在BOM清单明细中增加编码字段?

Scheduled Pinned Locked Moved Solved Odoo 新手求助
7 Posts 2 Posters 885 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    floatingdudu
    wrote on last edited by
    #1

    请教大神:产品/零件中有个barcode字段,录入了产品/零件的编码(一串数字)。创建清单明细时,我想增加一个编码字段,让该字段内容为产品/零件的barcode字段的内容。这样我建立清单明显时,选择相应的零件,自动带出barcode到编码字段。

    或者说,在创建清单明细时,希望自动带出所选零件/产品的一些字段的内容,比如barcode、单价等。
    该怎么弄呢?

    谢谢

    1 Reply Last reply
    0
    • digitalsatoriD Offline
      digitalsatoriD Offline
      digitalsatori 管理员
      wrote on last edited by
      #2

      如果想要再BOM明细中引用产品上的字段,可以设置related字段,比如:

      barcode = fields.Char(related='product_id.barcode')
      price = fields.Float(related='product_id.price')
      

      【上海先安科技】(tony AT openerp.cn)

      1 Reply Last reply
      0
      • F Offline
        F Offline
        floatingdudu
        wrote on last edited by
        #3

        谢谢 digitalsatori大神回复!
        请问,是将上述语句加入到odoo\addons\mrp\models\mrp_bom.py中,然后再修改xml文件吗?

        F digitalsatoriD 2 Replies Last reply
        0
        • F Offline
          F Offline
          floatingdudu
          replied to floatingdudu on last edited by
          #4

          @floatingdudu 在 如何在BOM清单明细中增加编码字段? 中说:

          谢谢 digitalsatori大神回复!
          请问,是将上述语句加入到odoo\addons\mrp\models\mrp_bom.py中,然后再修改xml文件吗?

          我在mrp_bom.py中增加如上代码后,重启服务,出现如下错误:

          Odoo Server Error
          Traceback (most recent call last):
          File "F:\greenodoo12-win\odoo12\odoo\api.py", line 1039, in get
          value = self._data[key][field][record.id]
          KeyError: 46

          During handling of the above exception, another exception occurred:

          Traceback (most recent call last):
          File "F:\greenodoo12-win\odoo12\odoo\fields.py", line 960, in get
          value = record.env.cache.get(record, self)
          File "F:\greenodoo12-win\odoo12\odoo\api.py", line 1041, in get
          raise CacheMiss(record, field)
          odoo.exceptions.CacheMiss: ('product.template(46,).currency_id', None)

          During handling of the above exception, another exception occurred:

          Traceback (most recent call last):
          File "F:\greenodoo12-win\odoo12\odoo\http.py", line 654, in _handle_exception
          return super(JsonRequest, self)._handle_exception(exception)
          File "F:\greenodoo12-win\odoo12\odoo\http.py", line 312, in _handle_exception
          raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
          File "F:\greenodoo12-win\odoo12\odoo\tools\pycompat.py", line 87, in reraise
          raise value
          File "F:\greenodoo12-win\odoo12\odoo\http.py", line 696, in dispatch
          result = self._call_function(**self.params)
          File "F:\greenodoo12-win\odoo12\odoo\http.py", line 344, in _call_function
          return checked_call(self.db, *args, **kwargs)
          File "F:\greenodoo12-win\odoo12\odoo\service\model.py", line 97, in wrapper
          return f(dbname, *args, **kwargs)
          File "F:\greenodoo12-win\odoo12\odoo\http.py", line 337, in checked_call
          result = self.endpoint(*a, **kw)
          File "F:\greenodoo12-win\odoo12\odoo\http.py", line 939, in call
          return self.method(*args, **kw)
          File "F:\greenodoo12-win\odoo12\odoo\http.py", line 517, in response_wrap
          response = f(*args, **kw)
          File "F:\greenodoo12-win\odoo12\addons\web\controllers\main.py", line 904, in search_read
          return self.do_search_read(model, fields, offset, limit, domain, sort)
          File "F:\greenodoo12-win\odoo12\addons\web\controllers\main.py", line 926, in do_search_read
          offset=offset or 0, limit=limit or False, order=sort or False)
          File "F:\greenodoo12-win\odoo12\odoo\models.py", line 4532, in search_read
          result = records.read(fields)
          File "F:\greenodoo12-win\odoo12\odoo\models.py", line 2776, in read
          values[name] = field.convert_to_read(record[name], record, use_name_get)
          File "F:\greenodoo12-win\odoo12\odoo\models.py", line 5055, in getitem
          return self._fields[key].get(self, type(self))
          File "F:\greenodoo12-win\odoo12\odoo\fields.py", line 964, in get
          self.determine_value(record)
          File "F:\greenodoo12-win\odoo12\odoo\fields.py", line 1075, in determine_value
          self.compute_value(recs)
          File "F:\greenodoo12-win\odoo12\odoo\fields.py", line 1031, in compute_value
          self._compute_value(records)
          File "F:\greenodoo12-win\odoo12\odoo\fields.py", line 1022, in _compute_value
          getattr(records, self.compute)()
          File "F:\greenodoo12-win\odoo12\addons\product\models\product_template.py", line 179, in _compute_currency_id
          main_company = self.env['res.company']._get_main_company()
          AttributeError: 'res.company' object has no attribute '_get_main_company'

          1 Reply Last reply
          0
          • digitalsatoriD Offline
            digitalsatoriD Offline
            digitalsatori 管理员
            replied to floatingdudu on last edited by
            #5

            @floatingdudu 你应该创建你自己的addon,在你的addon里继承mrp.bom.line,然后同样的,视图view也是可以继承修改的。

            应该避免直接修改在原有代码上,这样的操作没有任何可维护性。

            【上海先安科技】(tony AT openerp.cn)

            1 Reply Last reply
            0
            • F Offline
              F Offline
              floatingdudu
              wrote on last edited by
              #6

              谢谢 digitalsatori大神回复!
              刚试了下,貌似原有的py文件做任何修改后都会出异常。
              我创建addon试试。第一次接触,建addon目前对我有点难了,本来想直接在原来的上面修改省点事情。

              1 Reply Last reply
              0
              • F Offline
                F Offline
                floatingdudu
                wrote on last edited by
                #7

                问题已经解决。谢谢digitalsatori

                1 Reply Last reply
                0

                • Login

                • Don't have an account? Register

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Tags
                • Popular
                • Users
                • Groups