pre-commit update

This commit is contained in:
OCA-git-bot
2020-03-14 12:13:10 +01:00
parent c3eae916ae
commit 8a6ed280b4
36 changed files with 962 additions and 910 deletions

View File

@@ -7,11 +7,11 @@ indent_style = space
insert_final_newline = true insert_final_newline = true
trim_trailing_whitespace = true trim_trailing_whitespace = true
[.eslintrc,*.{json,yml,yaml,rst,md}] [*.{json,yml,yaml,rst,md}]
indent_size = 2 indent_size = 2
# Do not configure editor for libs and autogenerated content # Do not configure editor for libs and autogenerated content
[*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst] [{*/static/{lib,src/lib}/**,*/static/description/index.html,*/readme/../README.rst}]
charset = unset charset = unset
end_of_line = unset end_of_line = unset
indent_size = unset indent_size = unset

291
.eslintrc
View File

@@ -1,291 +0,0 @@
{
"globals": {
"$": false,
"_": false,
"fuzzy": false,
"jQuery": false,
"moment": false,
"odoo": false,
"openerp": false,
"self": false
},
"env": {
"browser": true
},
"rules": {
"no-alert": "warn",
"no-array-constructor": "warn",
"no-bitwise": "off",
"no-caller": "warn",
"no-case-declarations": "warn",
"no-catch-shadow": "warn",
"no-class-assign": "warn",
"no-cond-assign": "warn",
"no-confusing-arrow": "warn",
"no-console": "off",
"no-const-assign": "warn",
"no-constant-condition": "warn",
"no-continue": "off",
"no-control-regex": "warn",
"no-debugger": "warn",
"no-delete-var": "warn",
"no-div-regex": "warn",
"no-dupe-args": "warn",
"no-dupe-class-members": "warn",
"no-dupe-keys": "warn",
"no-duplicate-case": "warn",
"no-duplicate-imports": "warn",
"no-else-return": "warn",
"no-empty": "warn",
"no-empty-character-class": "warn",
"no-empty-function": "warn",
"no-empty-pattern": "warn",
"no-eq-null": "warn",
"no-eval": "warn",
"no-ex-assign": "warn",
"no-extend-native": "warn",
"no-extra-bind": "warn",
"no-extra-boolean-cast": "warn",
"no-extra-label": "warn",
"no-extra-parens": "warn",
"no-extra-semi": "warn",
"no-fallthrough": "warn",
"no-floating-decimal": "warn",
"no-func-assign": "warn",
"no-implicit-coercion": ["warn", {
"allow": ["~"]
}],
"no-implicit-globals": "warn",
"no-implied-eval": "warn",
"no-inline-comments": "warn",
"no-inner-declarations": "warn",
"no-invalid-regexp": "warn",
"no-invalid-this": "off",
"no-irregular-whitespace": "warn",
"no-iterator": "warn",
"no-label-var": "warn",
"no-labels": "warn",
"no-lone-blocks": "warn",
"no-lonely-if": "warn",
"no-loop-func": "off",
"no-magic-numbers": "off",
"no-mixed-operators": "warn",
"no-mixed-requires": "warn",
"no-mixed-spaces-and-tabs": "warn",
"no-multi-spaces": "warn",
"no-multi-str": "warn",
"no-multiple-empty-lines": "warn",
"no-native-reassign": "warn",
"no-negated-condition": "warn",
"no-negated-in-lhs": "warn",
"no-nested-ternary": "off",
"no-new": "warn",
"no-new-func": "warn",
"no-new-object": "warn",
"no-new-require": "warn",
"no-new-symbol": "warn",
"no-new-wrappers": "warn",
"no-obj-calls": "warn",
"no-octal": "warn",
"no-octal-escape": "warn",
"no-param-reassign": "warn",
"no-path-concat": "warn",
"no-plusplus": "off",
"no-process-env": "warn",
"no-process-exit": "warn",
"no-proto": "warn",
"no-prototype-builtins": "warn",
"no-redeclare": "warn",
"no-regex-spaces": "warn",
"no-restricted-globals": "warn",
"no-restricted-imports": "warn",
"no-restricted-modules": "warn",
"no-restricted-syntax": "warn",
"no-return-assign": "warn",
"no-script-url": "warn",
"no-self-assign": "warn",
"no-self-compare": "warn",
"no-sequences": "warn",
"no-shadow": "warn",
"no-shadow-restricted-names": "warn",
"no-whitespace-before-property": "warn",
"no-spaced-func": "warn",
"no-sparse-arrays": "warn",
"no-sync": "warn",
"no-tabs": "warn",
"no-ternary": "off",
"no-trailing-spaces": "warn",
"no-this-before-super": "warn",
"no-throw-literal": "warn",
"no-undef": "warn",
"no-undef-init": "warn",
"no-undefined": "off",
"no-unexpected-multiline": "warn",
"no-underscore-dangle": "off",
"no-unmodified-loop-condition": "warn",
"no-unneeded-ternary": "warn",
"no-unreachable": "warn",
"no-unsafe-finally": "warn",
"no-unused-expressions": "warn",
"no-unused-labels": "warn",
"no-unused-vars": "warn",
"no-use-before-define": "warn",
"no-useless-call": "warn",
"no-useless-computed-key": "warn",
"no-useless-concat": "warn",
"no-useless-constructor": "warn",
"no-useless-escape": "warn",
"no-useless-rename": "warn",
"no-void": "warn",
"no-var": "off",
"no-warning-comments": "off",
"no-with": "warn",
"array-bracket-spacing": "off",
"array-callback-return": "warn",
"arrow-body-style": "warn",
"arrow-parens": "warn",
"arrow-spacing": "off",
"accessor-pairs": "warn",
"block-scoped-var": "off",
"block-spacing": ["warn", "always"],
"brace-style": "warn",
"callback-return": "warn",
"camelcase": "off",
"capitalized-comments": ["warn", "always", {
"ignoreConsecutiveComments": true,
"ignoreInlineComments": true
}],
"comma-dangle": ["warn", "always-multiline"],
"comma-spacing": ["warn", {
"before": false,
"after": true
}],
"comma-style": "warn",
"complexity": [
"warn",
15
],
"computed-property-spacing": "off",
"consistent-return": "off",
"consistent-this": "off",
"constructor-super": "warn",
"curly": "warn",
"default-case": "off",
"dot-location": ["warn", "property"],
"dot-notation": "warn",
"eol-last": "warn",
"eqeqeq": "warn",
"func-names": "off",
"func-style": "off",
"generator-star-spacing": "off",
"global-require": "warn",
"guard-for-in": "off",
"handle-callback-err": "warn",
"id-blacklist": "warn",
"id-length": "off",
"id-match": "warn",
"indent": "warn",
"init-declarations": "warn",
"jsx-quotes": "warn",
"key-spacing": "off",
"keyword-spacing": "warn",
"linebreak-style": [
"warn",
"unix"
],
"lines-around-comment": "warn",
"max-depth": "warn",
"max-len": ["warn", {
"code": 88,
"ignorePattern": "odoo\\.define\\(",
"tabWidth": 4
}],
"max-lines": "off",
"max-nested-callbacks": "warn",
"max-params": "off",
"max-statements": "off",
"max-statements-per-line": "warn",
"multiline-ternary": "off",
"new-cap": "off",
"new-parens": "warn",
"newline-after-var": "off",
"newline-before-return": "off",
"newline-per-chained-call": "off",
"object-curly-newline": ["warn", { "consistent": true }],
"object-curly-spacing": ["warn", "never"],
"object-property-newline": ["warn", {
"allowAllPropertiesOnSameLine": true
}],
"object-shorthand": "off",
"one-var": "off",
"one-var-declaration-per-line": "off",
"operator-assignment": "warn",
"operator-linebreak": "warn",
"padded-blocks": "off",
"prefer-arrow-callback": "off",
"prefer-const": "warn",
"prefer-reflect": "off",
"prefer-rest-params": "off",
"prefer-spread": "off",
"prefer-template": "off",
"quote-props": "off",
"quotes": "off",
"radix": "warn",
"require-yield": "warn",
"rest-spread-spacing": "off",
"semi": [
"warn",
"always"
],
"semi-spacing": "warn",
"sort-imports": "warn",
"sort-vars": "off",
"space-before-blocks": "warn",
"space-before-function-paren": "warn",
"space-in-parens": "off",
"space-infix-ops": "off",
"space-unary-ops": "off",
"spaced-comment": ["warn", "always"],
"strict": ["warn", "function"],
"template-curly-spacing": "off",
"unicode-bom": "warn",
"use-isnan": "warn",
"valid-jsdoc": ["warn", {
"prefer": {
"arg": "param",
"argument": "param",
"augments": "extends",
"constructor": "class",
"exception": "throws",
"func": "function",
"method": "function",
"prop": "property",
"return": "returns",
"virtual": "abstract",
"yield": "yields"
},
"preferType": {
"array": "Array",
"bool": "Boolean",
"boolean": "Boolean",
"number": "Number",
"object": "Object",
"str": "String",
"string": "String"
},
"requireParamDescription": false,
"requireReturn": false,
"requireReturnDescription": false,
"requireReturnType": false
}],
"valid-typeof": "warn",
"vars-on-top": "off",
"wrap-iife": "warn",
"wrap-regex": "warn",
"yield-star-spacing": "off",
"yoda": "warn"
},
"parserOptions": {
"ecmaVersion": 2017
}
}

180
.eslintrc.yml Normal file
View File

@@ -0,0 +1,180 @@
env:
browser: true
# See https://github.com/OCA/odoo-community.org/issues/37#issuecomment-470686449
parserOptions:
ecmaVersion: 2017
# Globals available in Odoo that shouldn't produce errorings
globals:
_: readonly
$: readonly
fuzzy: readonly
jQuery: readonly
moment: readonly
odoo: readonly
openerp: readonly
Promise: readonly
# Styling is handled by Prettier, so we only need to enable AST rules;
# see https://github.com/OCA/maintainer-quality-tools/pull/618#issuecomment-558576890
rules:
accessor-pairs: warn
array-callback-return: warn
callback-return: warn
capitalized-comments:
- warn
- always
- ignoreConsecutiveComments: true
ignoreInlineComments: true
complexity:
- warn
- 15
constructor-super: warn
dot-notation: warn
eqeqeq: warn
global-require: warn
handle-callback-err: warn
id-blacklist: warn
id-match: warn
init-declarations: error
max-depth: warn
max-nested-callbacks: warn
max-statements-per-line: warn
no-alert: warn
no-array-constructor: warn
no-caller: warn
no-case-declarations: warn
no-class-assign: warn
no-cond-assign: error
no-const-assign: error
no-constant-condition: warn
no-control-regex: warn
no-debugger: error
no-delete-var: warn
no-div-regex: warn
no-dupe-args: error
no-dupe-class-members: error
no-dupe-keys: error
no-duplicate-case: error
no-duplicate-imports: error
no-else-return: warn
no-empty-character-class: warn
no-empty-function: error
no-empty-pattern: error
no-empty: warn
no-eq-null: error
no-eval: error
no-ex-assign: error
no-extend-native: warn
no-extra-bind: warn
no-extra-boolean-cast: warn
no-extra-label: warn
no-fallthrough: warn
no-func-assign: error
no-global-assign: error
no-implicit-coercion:
- warn
- allow: ["~"]
no-implicit-globals: warn
no-implied-eval: warn
no-inline-comments: warn
no-inner-declarations: warn
no-invalid-regexp: warn
no-irregular-whitespace: warn
no-iterator: warn
no-label-var: warn
no-labels: warn
no-lone-blocks: warn
no-lonely-if: error
no-mixed-requires: error
no-multi-str: warn
no-native-reassign: error
no-negated-condition: warn
no-negated-in-lhs: error
no-new-func: warn
no-new-object: warn
no-new-require: warn
no-new-symbol: warn
no-new-wrappers: warn
no-new: warn
no-obj-calls: warn
no-octal-escape: warn
no-octal: warn
no-param-reassign: warn
no-path-concat: warn
no-process-env: warn
no-process-exit: warn
no-proto: warn
no-prototype-builtins: warn
no-redeclare: warn
no-regex-spaces: warn
no-restricted-globals: warn
no-restricted-imports: warn
no-restricted-modules: warn
no-restricted-syntax: warn
no-return-assign: error
no-script-url: warn
no-self-assign: warn
no-self-compare: warn
no-sequences: warn
no-shadow-restricted-names: warn
no-shadow: warn
no-sparse-arrays: warn
no-sync: warn
no-this-before-super: warn
no-throw-literal: warn
no-undef-init: warn
no-undef: error
no-unmodified-loop-condition: warn
no-unneeded-ternary: error
no-unreachable: error
no-unsafe-finally: error
no-unused-expressions: error
no-unused-labels: error
no-unused-vars: error
no-use-before-define: error
no-useless-call: warn
no-useless-computed-key: warn
no-useless-concat: warn
no-useless-constructor: warn
no-useless-escape: warn
no-useless-rename: warn
no-void: warn
no-with: warn
operator-assignment: [error, always]
prefer-const: warn
radix: warn
require-yield: warn
sort-imports: warn
spaced-comment: [error, always]
strict: [error, function]
use-isnan: error
valid-jsdoc:
- warn
- prefer:
arg: param
argument: param
augments: extends
constructor: class
exception: throws
func: function
method: function
prop: property
return: returns
virtual: abstract
yield: yields
preferType:
array: Array
bool: Boolean
boolean: Boolean
number: Number
object: Object
str: String
string: String
requireParamDescription: false
requireReturn: false
requireReturnDescription: false
requireReturnType: false
valid-typeof: warn
yoda: warn

View File

@@ -9,4 +9,4 @@ line_length=88
known_odoo=odoo known_odoo=odoo
known_odoo_addons=odoo.addons known_odoo_addons=odoo.addons
sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER sections=FUTURE,STDLIB,THIRDPARTY,ODOO,ODOO_ADDONS,FIRSTPARTY,LOCALFOLDER
known_third_party=dateutil,setuptools default_section=THIRDPARTY

View File

@@ -1,68 +1,99 @@
exclude: "^setup/|/static/lib/|/static/src/lib/" exclude: |
(?x)
# Files and folders generated by bots, to avoid loops
^setup/|/static/description/index\.html$|
# Maybe reactivate this when all README files include prettier ignore tags?
^README\.md$|
# Library files can have extraneous formatting (even minimized)
/static/(src/)?lib/|
# Repos using Sphinx to generate docs don't need prettying
^docs/_templates/.*\.html$|
# You don't usually want a bot to modify your legal texts
(LICENSE.*|COPYING.*)
default_language_version: default_language_version:
python: python3 python: python3
repos: repos:
- repo: https://github.com/psf/black - repo: https://github.com/psf/black
rev: 19.3b0 rev: 19.10b0
hooks: hooks:
- id: black - id: black
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/prettier/prettier
rev: v2.3.0 rev: "1.19.1"
hooks: hooks:
- id: trailing-whitespace - id: prettier
# exclude autogenerated files # TODO Avoid awebdeveloper/pre-commit-prettier if possible
exclude: /README\.rst$|\.pot?$ # HACK https://github.com/prettier/prettier/issues/7407
- id: end-of-file-fixer - repo: https://github.com/awebdeveloper/pre-commit-prettier
# exclude autogenerated files rev: v0.0.1
exclude: /README\.rst$|\.pot?$ hooks:
- id: debug-statements - id: prettier
- id: flake8 name: prettier xml plugin
name: flake8 except __init__.py additional_dependencies:
exclude: /__init__\.py$ - "prettier@1.19.1"
additional_dependencies: ["flake8-bugbear==19.8.0"] - "@prettier/plugin-xml@0.7.2"
- id: flake8 files: \.xml$
name: flake8 only __init__.py - repo: https://github.com/pre-commit/mirrors-eslint
args: ["--extend-ignore=F401"] # ignore unused imports in __init__.py rev: v6.8.0
files: /__init__\.py$ hooks:
additional_dependencies: ["flake8-bugbear==19.8.0"] - id: eslint
- id: fix-encoding-pragma verbose: true
args: ["--remove"] args:
- id: check-case-conflict - --color
- id: check-docstring-first - --fix
- id: check-executables-have-shebangs - repo: https://github.com/pre-commit/pre-commit-hooks
- id: check-merge-conflict rev: v2.4.0
- id: check-symlinks hooks:
- id: check-xml - id: trailing-whitespace
- id: mixed-line-ending # exclude autogenerated files
args: ["--fix=lf"] exclude: /README\.rst$|\.pot?$
- repo: https://github.com/pre-commit/mirrors-pylint - id: end-of-file-fixer
rev: v2.3.1 # exclude autogenerated files
hooks: exclude: /README\.rst$|\.pot?$
- id: pylint - id: debug-statements
name: pylint with optional checks - id: flake8
args: ["--rcfile=.pylintrc", "--exit-zero"] name: flake8 except __init__.py
verbose: true exclude: /__init__\.py$
additional_dependencies: ["pylint-odoo==3.0.3"] additional_dependencies: ["flake8-bugbear==19.8.0"]
- id: pylint - id: flake8
name: pylint with mandatory checks name: flake8 only __init__.py
args: ["--rcfile=.pylintrc-mandatory"] args: ["--extend-ignore=F401"] # ignore unused imports in __init__.py
additional_dependencies: ["pylint-odoo==3.0.3"] files: /__init__\.py$
- repo: https://github.com/asottile/pyupgrade additional_dependencies: ["flake8-bugbear==19.8.0"]
rev: v1.24.0 - id: fix-encoding-pragma
hooks: args: ["--remove"]
- id: pyupgrade - id: check-case-conflict
- repo: https://github.com/asottile/seed-isort-config - id: check-docstring-first
rev: v1.9.3 - id: check-executables-have-shebangs
hooks: - id: check-merge-conflict
- id: seed-isort-config # exclude files where underlines are not distinguishable from merge conflicts
- repo: https://github.com/pre-commit/mirrors-isort exclude: /README\.rst$|^docs/.*\.rst$
rev: v4.3.21 - id: check-symlinks
hooks: - id: check-xml
- id: isort - id: mixed-line-ending
name: isort except __init__.py args: ["--fix=lf"]
exclude: /__init__\.py$ - repo: https://github.com/pre-commit/mirrors-pylint
- repo: https://github.com/pre-commit/mirrors-eslint rev: v2.3.1
rev: v6.5.1 hooks:
hooks: - id: pylint
- id: eslint name: pylint with optional checks
verbose: true args: ["--rcfile=.pylintrc", "--exit-zero"]
verbose: true
additional_dependencies: ["pylint-odoo==3.1.0"]
- id: pylint
name: pylint with mandatory checks
args: ["--rcfile=.pylintrc-mandatory"]
additional_dependencies: ["pylint-odoo==3.1.0"]
- repo: https://github.com/asottile/pyupgrade
rev: v1.26.2
hooks:
- id: pyupgrade
- repo: https://github.com/pre-commit/mirrors-isort
rev: v4.3.21
hooks:
- id: isort
name: isort except __init__.py
exclude: /__init__\.py$
- repo: https://github.com/acsone/setuptools-odoo
rev: 2.5.2
hooks:
- id: setuptools-odoo-make-default

8
.prettierrc.yml Normal file
View File

@@ -0,0 +1,8 @@
# Defaults for all prettier-supported languages.
# Prettier will complete this with settings from .editorconfig file.
bracketSpacing: false
printWidth: 88
proseWrap: always
semi: true
trailingComma: "es5"
xmlWhitespaceSensitivity: "ignore"

View File

@@ -1,8 +1,8 @@
language: python language: python
cache: cache:
directories: directories:
- $HOME/.cache/pip - $HOME/.cache/pip
- $HOME/.cache/pre-commit - $HOME/.cache/pre-commit
python: python:
- "3.6" - "3.6"
@@ -11,7 +11,7 @@ addons:
postgresql: "9.6" postgresql: "9.6"
apt: apt:
packages: packages:
- expect-dev # provides unbuffer utility - expect-dev # provides unbuffer utility
stages: stages:
- linting - linting
@@ -34,10 +34,11 @@ jobs:
env: env:
global: global:
- VERSION="13.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0" - VERSION="13.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0"
install: install:
- git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools - git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git
${HOME}/maintainer-quality-tools
- export PATH=${HOME}/maintainer-quality-tools/travis:${PATH} - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH}
- travis_install_nightly - travis_install_nightly

View File

@@ -1,32 +1,28 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="view_move_line_form" model="ir.ui.view"> <record id="view_move_line_form" model="ir.ui.view">
<field name="name">account.move.line.form</field> <field name="name">account.move.line.form</field>
<field name="model">account.move.line</field> <field name="model">account.move.line</field>
<field name="inherit_id" ref="account.view_move_line_form"/> <field name="inherit_id" ref="account.view_move_line_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="quantity" position="before"> <field name="quantity" position="before">
<field name="manufacture_order_id"/> <field name="manufacture_order_id" />
<field name="unbuild_order_id"/> <field name="unbuild_order_id" />
</field> </field>
</field> </field>
</record> </record>
<record model="ir.actions.act_window" id="action_mrp_account_moves"> <record model="ir.actions.act_window" id="action_mrp_account_moves">
<field name="name">Account Moves</field> <field name="name">Account Moves</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">account.move.line</field> <field name="res_model">account.move.line</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="domain">[('manufacture_order_id', '=', active_id)]</field> <field name="domain">[('manufacture_order_id', '=', active_id)]</field>
</record> </record>
<record model="ir.actions.act_window" id="action_mrp_uo_account_moves"> <record model="ir.actions.act_window" id="action_mrp_uo_account_moves">
<field name="name">Account Moves</field> <field name="name">Account Moves</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">account.move.line</field> <field name="res_model">account.move.line</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="domain">[('unbuild_order_id', '=', active_id)]</field> <field name="domain">[('unbuild_order_id', '=', active_id)]</field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,17 +1,21 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="mrp_production_form_view" model="ir.ui.view"> <record id="mrp_production_form_view" model="ir.ui.view">
<field name="name">mrp.production.form</field> <field name="name">mrp.production.form</field>
<field name="model">mrp.production</field> <field name="model">mrp.production</field>
<field name="inherit_id" ref="mrp.mrp_production_form_view"/> <field name="inherit_id" ref="mrp.mrp_production_form_view" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//div[hasclass('oe_button_box')]" position="inside"> <xpath expr="//div[hasclass('oe_button_box')]" position="inside">
<button name="%(action_mrp_account_moves)d" type="action" string="Account Moves" <button
class="oe_stat_button" icon="fa-list" groups="account.group_account_user" name="%(action_mrp_account_moves)d"
attrs="{'invisible': [('state', 'not in', ('progress', 'done'))]}"/> type="action"
string="Account Moves"
class="oe_stat_button"
icon="fa-list"
groups="account.group_account_user"
attrs="{'invisible': [('state', 'not in', ('progress', 'done'))]}"
/>
</xpath> </xpath>
</field> </field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,17 +1,21 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="mrp_unbuild_form_view" model="ir.ui.view"> <record id="mrp_unbuild_form_view" model="ir.ui.view">
<field name="name">mrp.unbuild.form</field> <field name="name">mrp.unbuild.form</field>
<field name="model">mrp.unbuild</field> <field name="model">mrp.unbuild</field>
<field name="inherit_id" ref="mrp.mrp_unbuild_form_view"/> <field name="inherit_id" ref="mrp.mrp_unbuild_form_view" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//div[hasclass('oe_button_box')]" position="inside"> <xpath expr="//div[hasclass('oe_button_box')]" position="inside">
<button name="%(action_mrp_uo_account_moves)d" type="action" string="Account Moves" <button
class="oe_stat_button" icon="fa-list" groups="account.group_account_user" name="%(action_mrp_uo_account_moves)d"
attrs="{'invisible': [('state', 'not in', ('done'))]}"/> type="action"
string="Account Moves"
class="oe_stat_button"
icon="fa-list"
groups="account.group_account_user"
attrs="{'invisible': [('state', 'not in', ('done'))]}"
/>
</xpath> </xpath>
</field> </field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,28 +1,25 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2017 Eficent <!-- Copyright 2017 Eficent
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<record id="mrp_bom_line_tree_view" model="ir.ui.view"> <record id="mrp_bom_line_tree_view" model="ir.ui.view">
<field name="name">mrp.bom.line.tree.view</field> <field name="name">mrp.bom.line.tree.view</field>
<field name="model">mrp.bom.line</field> <field name="model">mrp.bom.line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Components"> <tree string="Components">
<field name="bom_id" /> <field name="bom_id" />
<field name="product_id"/> <field name="product_id" />
<field name="product_qty"/> <field name="product_qty" />
<field name="routing_id"/> <field name="routing_id" />
</tree> </tree>
</field> </field>
</record> </record>
<record id="mrp_bom_form_action2" model="ir.actions.act_window"> <record id="mrp_bom_form_action2" model="ir.actions.act_window">
<field name="name">Bill of Material Components</field> <field name="name">Bill of Material Components</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.bom.line</field> <field name="res_model">mrp.bom.line</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="view_id" eval="ref('mrp_bom_line_tree_view')"/> <field name="view_id" eval="ref('mrp_bom_line_tree_view')" />
<field name="help" type="html"> <field name="help" type="html">
<p class="oe_view_nocontent_create"> <p class="oe_view_nocontent_create">
Click to add a component to a bill of material. Click to add a component to a bill of material.
@@ -34,30 +31,42 @@
</p> </p>
</field> </field>
</record> </record>
<record id="mrp_bom_line_view_filter" model="ir.ui.view"> <record id="mrp_bom_line_view_filter" model="ir.ui.view">
<field name="name">mrp.bom.line.view.filter</field> <field name="name">mrp.bom.line.view.filter</field>
<field name="model">mrp.bom.line</field> <field name="model">mrp.bom.line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Search Bill Of Material Components"> <search string="Search Bill Of Material Components">
<field name="bom_id"/> <field name="bom_id" />
<field name="product_id"/> <field name="product_id" />
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
<filter name="bom" string="Bill Of Material" context="{'group_by':'bom_id'}"/> <filter
<filter name="product" string="Product" context="{'group_by':'product_id'}"/> name="bom"
<filter name="uom" string='Default Unit of Measure' context="{'group_by' : 'product_uom_id'}"/> string="Bill Of Material"
<filter name="Routings" string="Routings" context="{'group_by':'routing_id'}"/> context="{'group_by':'bom_id'}"
/>
</group> <filter
name="product"
string="Product"
context="{'group_by':'product_id'}"
/>
<filter
name="uom"
string='Default Unit of Measure'
context="{'group_by' : 'product_uom_id'}"
/>
<filter
name="Routings"
string="Routings"
context="{'group_by':'routing_id'}"
/>
</group>
</search> </search>
</field> </field>
</record> </record>
<menuitem <menuitem
action="mrp_bom_form_action2" action="mrp_bom_form_action2"
id="menu_mrp_bom_form_action2" id="menu_mrp_bom_form_action2"
parent="mrp.menu_mrp_bom" parent="mrp.menu_mrp_bom"
sequence="14" sequence="14"
/> />
</odoo> </odoo>

View File

@@ -1,25 +1,29 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="mrp_bom_form_view" model="ir.ui.view">
<record id="mrp_bom_form_view" model="ir.ui.view"> <field name="name">mrp.bom.form</field>
<field name="name">mrp.bom.form</field> <field name="model">mrp.bom</field>
<field name="model">mrp.bom</field> <field name="inherit_id" ref="mrp.mrp_bom_form_view" />
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/> <field name="arch" type="xml">
<field name="arch" type="xml"> <xpath
<xpath expr="//field[@name='bom_line_ids']//field[@name='sequence']" position="attributes"> expr="//field[@name='bom_line_ids']//field[@name='sequence']"
<attributes name="widget">"handle"</attributes> position="attributes"
</xpath> >
</field> <attributes name="widget">"handle"</attributes>
</record> </xpath>
<record id="mrp_bom_form_view2" model="ir.ui.view"> </field>
<field name="name">mrp.bom.form</field> </record>
<field name="model">mrp.bom</field> <record id="mrp_bom_form_view2" model="ir.ui.view">
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/> <field name="name">mrp.bom.form</field>
<field name="arch" type="xml"> <field name="model">mrp.bom</field>
<xpath expr="//field[@name='bom_line_ids']//field[@name='sequence']" position="after"> <field name="inherit_id" ref="mrp.mrp_bom_form_view" />
<field name="sequence2"/> <field name="arch" type="xml">
</xpath> <xpath
</field> expr="//field[@name='bom_line_ids']//field[@name='sequence']"
</record> position="after"
>
<field name="sequence2" />
</xpath>
</field>
</record>
</odoo> </odoo>

View File

@@ -1,58 +1,60 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<!-- <!--
Copyright 2017-20 ForgeFlow S.L. (https://www.forgeflow.com) Copyright 2017-20 ForgeFlow S.L. (https://www.forgeflow.com)
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
--> -->
<odoo> <odoo>
<record id="mrp_bom_form_view" model="ir.ui.view"> <record id="mrp_bom_form_view" model="ir.ui.view">
<field name="name">mrp.bom.form - mrp_bom_location</field> <field name="name">mrp.bom.form - mrp_bom_location</field>
<field name="model">mrp.bom</field> <field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/> <field name="inherit_id" ref="mrp.mrp_bom_form_view" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="routing_id" position="before"> <field name="routing_id" position="before">
<field name="location_id"/> <field name="location_id" />
</field> </field>
<xpath expr="//field[@name='bom_line_ids']/tree/field[@name='product_qty']" position="after"> <xpath
<field name="location_id"/> expr="//field[@name='bom_line_ids']/tree/field[@name='product_qty']"
position="after"
>
<field name="location_id" />
</xpath> </xpath>
</field> </field>
</record> </record>
<record id="mrp_bom_tree_view" model="ir.ui.view"> <record id="mrp_bom_tree_view" model="ir.ui.view">
<field name="name">mrp.bom.tree - mrp_bom_location</field> <field name="name">mrp.bom.tree - mrp_bom_location</field>
<field name="model">mrp.bom</field> <field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_tree_view"/> <field name="inherit_id" ref="mrp.mrp_bom_tree_view" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="product_id" position="after"> <field name="product_id" position="after">
<field name="location_id"/> <field name="location_id" />
</field> </field>
</field> </field>
</record> </record>
<record id="view_mrp_bom_filter" model="ir.ui.view"> <record id="view_mrp_bom_filter" model="ir.ui.view">
<field name="name">mrp.bom.select - mrp_bom_location</field> <field name="name">mrp.bom.select - mrp_bom_location</field>
<field name="model">mrp.bom</field> <field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.view_mrp_bom_filter"/> <field name="inherit_id" ref="mrp.view_mrp_bom_filter" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="product_tmpl_id" position="after"> <field name="product_tmpl_id" position="after">
<field name="location_id" string="Location"/> <field name="location_id" string="Location" />
</field> </field>
<group expand="0" position="inside"> <group expand="0" position="inside">
<filter name="location_id" string="Location" context="{'group_by':'location_id'}"/> <filter
name="location_id"
string="Location"
context="{'group_by':'location_id'}"
/>
</group> </group>
</field> </field>
</record> </record>
<record id="mrp_bom_line_view_form" model="ir.ui.view"> <record id="mrp_bom_line_view_form" model="ir.ui.view">
<field name="name">mrp.bom.line.view.form - mrp_bom_location</field> <field name="name">mrp.bom.line.view.form - mrp_bom_location</field>
<field name="model">mrp.bom.line</field> <field name="model">mrp.bom.line</field>
<field name="inherit_id" ref="mrp.mrp_bom_line_view_form"/> <field name="inherit_id" ref="mrp.mrp_bom_line_view_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="product_id" position="before"> <field name="product_id" position="before">
<field name="location_id"/> <field name="location_id" />
</field> </field>
</field> </field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,33 +1,58 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<template id="report_mrpbomstructure_location" inherit_id="mrp.report_mrp_bom"> <template id="report_mrpbomstructure_location" inherit_id="mrp.report_mrp_bom">
<xpath expr="//thead/tr/th[last()]" position="before"> <xpath expr="//thead/tr/th[last()]" position="before">
<th t-if="data['bom'].location_id" class="o_mrp_bom_cost text-right" title="Location of the product">Location</th> <th
t-if="data['bom'].location_id"
class="o_mrp_bom_cost text-right"
title="Location of the product"
>Location</th>
</xpath> </xpath>
<xpath expr="//tbody/tr/td[last()]" position="before"> <xpath expr="//tbody/tr/td[last()]" position="before">
<td t-if="data['bom'].location_id" class="text-right"> <td t-if="data['bom'].location_id" class="text-right">
<span><a href="#" t-if="data['report_type'] == 'html'" t-att-data-res-id="data['bom'].location_id.id" t-att-data-model="'stock.location'" class="o_mrp_bom_action"><t t-esc="data['bom'].location_id.complete_name"/></a><t t-else="" t-esc="data['bom'].location_id.complete_name"/></span> <span>
<a
href="#"
t-if="data['report_type'] == 'html'"
t-att-data-res-id="data['bom'].location_id.id"
t-att-data-model="'stock.location'"
class="o_mrp_bom_action"
>
<t t-esc="data['bom'].location_id.complete_name" />
</a>
<t t-else="" t-esc="data['bom'].location_id.complete_name" />
</span>
</td> </td>
</xpath> </xpath>
</template> </template>
<template id="report_mrp_bom_line" inherit_id="mrp.report_mrp_bom_line"> <template id="report_mrp_bom_line" inherit_id="mrp.report_mrp_bom_line">
<xpath expr="//tr/td[last()]" position="before"> <xpath expr="//tr/td[last()]" position="before">
<td t-if="l.get('location_id', False)"> <td t-if="l.get('location_id', False)">
<span><a href="#" t-att-data-res-id="l['location_id'].id" t-att-data-model="'stock.location'" class="o_mrp_bom_action"><t t-esc="l['location_id'].complete_name"/></a></span> <span>
<a
href="#"
t-att-data-res-id="l['location_id'].id"
t-att-data-model="'stock.location'"
class="o_mrp_bom_action"
>
<t t-esc="l['location_id'].complete_name" />
</a>
</span>
</td> </td>
</xpath> </xpath>
<xpath expr="//tr[hasclass('o_mrp_bom_report_line', 'o_mrp_bom_cost')]" position="inside"> <xpath
<td/> expr="//tr[hasclass('o_mrp_bom_report_line', 'o_mrp_bom_cost')]"
position="inside"
>
<td />
</xpath> </xpath>
</template> </template>
<template id="report_mrp_bom_pdf_line" inherit_id="mrp.report_mrp_bom_pdf_line"> <template id="report_mrp_bom_pdf_line" inherit_id="mrp.report_mrp_bom_pdf_line">
<xpath expr="//tr" position="inside"> <xpath expr="//tr" position="inside">
<td t-if="l.get('location_name', False)" class="text-right"> <td t-if="l.get('location_name', False)" class="text-right">
<span t-esc="l['location_name']"/> <span t-esc="l['location_name']" />
</td> </td>
<td t-else=""/> <td t-else="" />
</xpath> </xpath>
</template> </template>
</odoo> </odoo>

View File

@@ -1,43 +1,50 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com) <!-- Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com)
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). --> License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). -->
<odoo> <odoo>
<template id="track_bom_line_template"> <template id="track_bom_line_template">
<div> <div>
<strong>The component quantities or UoMs have been updated.</strong> <strong>The component quantities or UoMs have been updated.</strong>
<ul> <ul>
<t t-foreach="lines" t-as="line"> <t t-foreach="lines" t-as="line">
<li><t t-esc="line.product_id.display_name"/>:</li> <li><t t-esc="line.product_id.display_name" />:</li>
Product Quantity: <t t-esc="line.product_qty" /><t t-if='line.product_qty != product_qty'> -&gt; <t t-esc="float(product_qty)"/></t><br/> Product Quantity: <t t-esc="line.product_qty" /><t
Product Unit of Measure: <t t-esc="line.product_uom_id.display_name" /><t t-if='line.product_uom_id != product_uom_id'> -&gt; <t t-esc="product_uom_id.display_name"/></t><br/> t-if='line.product_qty != product_qty'
> -&gt; <t t-esc="float(product_qty)" /></t><br />
Product Unit of Measure: <t
t-esc="line.product_uom_id.display_name"
/><t t-if='line.product_uom_id != product_uom_id'> -&gt; <t
t-esc="product_uom_id.display_name"
/></t><br />
</t> </t>
</ul> </ul>
</div> </div>
</template> </template>
<template id="track_bom_template"> <template id="track_bom_template">
<div> <div>
<strong>The components have changed.</strong> <strong>The components have changed.</strong>
<ul> <ul>
<t t-foreach="lines" t-as="line"> <t t-foreach="lines" t-as="line">
<li><t t-esc="line.product_id.display_name"/>: <t t-esc="mode"/> component<br/></li> <li><t t-esc="line.product_id.display_name" />: <t
Product Quantity: <t t-esc="line.product_qty" /><br/> t-esc="mode"
Product Unit of Measure: <t t-esc="line.product_uom_id.display_name" /><br/> /> component<br /></li>
Product Quantity: <t t-esc="line.product_qty" /><br />
Product Unit of Measure: <t
t-esc="line.product_uom_id.display_name"
/><br />
</t> </t>
</ul> </ul>
</div> </div>
</template> </template>
<template id="track_bom_template_2"> <template id="track_bom_template_2">
<div> <div>
<strong>The components have changed.</strong> <strong>The components have changed.</strong>
<ul> <ul>
<t t-foreach="lines" t-as="line"> <t t-foreach="lines" t-as="line">
<li><t t-esc="line.product_id.display_name"/>: <li><t t-esc="line.product_id.display_name" />:
Removed component<br/></li> Removed component<br /></li>
<li><t t-esc="product_id.display_name"/>: <li><t t-esc="product_id.display_name" />:
New component<br/></li> New component<br /></li>
</t> </t>
</ul> </ul>
</div> </div>

View File

@@ -1,10 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="mrp_area_stock_wh0" model="mrp.area"> <record id="mrp_area_stock_wh0" model="mrp.area">
<field name="name">WH/Stock</field> <field name="name">WH/Stock</field>
<field name="warehouse_id" ref="stock.warehouse0"/> <field name="warehouse_id" ref="stock.warehouse0" />
<field name="location_id" ref="stock.stock_location_stock"/> <field name="location_id" ref="stock.stock_location_stock" />
</record> </record>
</odoo> </odoo>

View File

@@ -1,16 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="mrp_multi_level_cron" model="ir.cron"> <record id="mrp_multi_level_cron" model="ir.cron">
<field name="name">Multi Level MRP</field> <field name="name">Multi Level MRP</field>
<field name="model_id" ref="mrp_multi_level.model_mrp_multi_level"/> <field name="model_id" ref="mrp_multi_level.model_mrp_multi_level" />
<field name="user_id" ref="base.user_root"/> <field name="user_id" ref="base.user_root" />
<field name="interval_number">1</field> <field name="interval_number">1</field>
<field name="interval_type">days</field> <field name="interval_type">days</field>
<field name="numbercall">-1</field> <field name="numbercall">-1</field>
<field name="doall" eval="False"/> <field name="doall" eval="False" />
<field name="state">code</field> <field name="state">code</field>
<field name="code">model.run_mrp_multi_level()</field> <field name="code">model.run_mrp_multi_level()</field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,36 +1,41 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="stock_inventory_mrp_example" model="stock.inventory"> <record id="stock_inventory_mrp_example" model="stock.inventory">
<field name="name">Starting On-hand for MRP demo</field> <field name="name">Starting On-hand for MRP demo</field>
</record> </record>
<record id="stock_inventory_line_1" model="stock.inventory.line"> <record id="stock_inventory_line_1" model="stock.inventory.line">
<field name="product_id" ref="product_product_pp_1"/> <field name="product_id" ref="product_product_pp_1" />
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="inventory_id" ref="stock_inventory_mrp_example"/> <field name="inventory_id" ref="stock_inventory_mrp_example" />
<field name="product_qty">10</field> <field name="product_qty">10</field>
<field name="location_id" ref="stock.stock_location_stock"/> <field name="location_id" ref="stock.stock_location_stock" />
</record> </record>
<record id="stock_inventory_line_2" model="stock.inventory.line"> <record id="stock_inventory_line_2" model="stock.inventory.line">
<field name="product_id" ref="product_product_pp_2"/> <field name="product_id" ref="product_product_pp_2" />
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="inventory_id" ref="stock_inventory_mrp_example"/> <field name="inventory_id" ref="stock_inventory_mrp_example" />
<field name="product_qty">20</field> <field name="product_qty">20</field>
<field name="location_id" ref="stock.stock_location_stock"/> <field name="location_id" ref="stock.stock_location_stock" />
</record> </record>
<record id="stock_inventory_line_3" model="stock.inventory.line"> <record id="stock_inventory_line_3" model="stock.inventory.line">
<field name="product_id" ref="product_product_sf_2"/> <field name="product_id" ref="product_product_sf_2" />
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="inventory_id" ref="stock_inventory_mrp_example"/> <field name="inventory_id" ref="stock_inventory_mrp_example" />
<field name="product_qty">15</field> <field name="product_qty">15</field>
<field name="location_id" ref="stock.stock_location_stock"/> <field name="location_id" ref="stock.stock_location_stock" />
</record> </record>
<function model="stock.inventory" name="_action_start"> <function model="stock.inventory" name="_action_start">
<function eval="[[('id', '=', ref('stock_inventory_mrp_example'))]]" model="stock.inventory" name="search"/> <function
eval="[[('id', '=', ref('stock_inventory_mrp_example'))]]"
model="stock.inventory"
name="search"
/>
</function> </function>
<function model="stock.inventory" name="action_validate"> <function model="stock.inventory" name="action_validate">
<function eval="[[('id', '=', ref('stock_inventory_mrp_example'))]]" model="stock.inventory" name="search"/> <function
eval="[[('id', '=', ref('stock_inventory_mrp_example'))]]"
model="stock.inventory"
name="search"
/>
</function> </function>
</odoo> </odoo>

View File

@@ -1,81 +1,76 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<!-- FP-1 --> <!-- FP-1 -->
<record id="mrp_bom_fp_1" model="mrp.bom"> <record id="mrp_bom_fp_1" model="mrp.bom">
<field name="product_tmpl_id" <field name="product_tmpl_id" ref="product_product_fp_1_product_template" />
ref="product_product_fp_1_product_template"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<field name="sequence">5</field> <field name="sequence">5</field>
</record> </record>
<record id="mrp_bom_fp_1_line_pp_1" model="mrp.bom.line"> <record id="mrp_bom_fp_1_line_pp_1" model="mrp.bom.line">
<field name="product_id" ref="product_product_pp_1"/> <field name="product_id" ref="product_product_pp_1" />
<field name="product_qty">2</field> <field name="product_qty">2</field>
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field> <field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_fp_1"/> <field name="bom_id" ref="mrp_bom_fp_1" />
</record> </record>
<record id="mrp_bom_fp_1_line_pp_2" model="mrp.bom.line"> <record id="mrp_bom_fp_1_line_pp_2" model="mrp.bom.line">
<field name="product_id" ref="product_product_pp_2"/> <field name="product_id" ref="product_product_pp_2" />
<field name="product_qty">3</field> <field name="product_qty">3</field>
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field> <field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_fp_1"/> <field name="bom_id" ref="mrp_bom_fp_1" />
</record> </record>
<!-- FP-2 -->
<!-- FP-2 --> <record id="mrp_bom_fp_2" model="mrp.bom">
<record id="mrp_bom_fp_2" model="mrp.bom"> <field name="product_tmpl_id" ref="product_product_fp_2_product_template" />
<field name="product_tmpl_id" <field name="product_uom_id" ref="uom.product_uom_unit" />
ref="product_product_fp_2_product_template"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<field name="sequence">5</field> <field name="sequence">5</field>
</record> </record>
<record id="mrp_bom_fp_2_line_sf_1" model="mrp.bom.line"> <record id="mrp_bom_fp_2_line_sf_1" model="mrp.bom.line">
<field name="product_id" ref="product_product_sf_1"/> <field name="product_id" ref="product_product_sf_1" />
<field name="product_qty">2</field> <field name="product_qty">2</field>
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field> <field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_fp_2"/> <field name="bom_id" ref="mrp_bom_fp_2" />
</record> </record>
<record id="mrp_bom_fp_2_line_sf_2" model="mrp.bom.line"> <record id="mrp_bom_fp_2_line_sf_2" model="mrp.bom.line">
<field name="product_id" ref="product_product_sf_2"/> <field name="product_id" ref="product_product_sf_2" />
<field name="product_qty">3</field> <field name="product_qty">3</field>
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field> <field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_fp_2"/> <field name="bom_id" ref="mrp_bom_fp_2" />
</record> </record>
<!-- SF-1 --> <!-- SF-1 -->
<record id="mrp_bom_sf_1" model="mrp.bom"> <record id="mrp_bom_sf_1" model="mrp.bom">
<field name="product_tmpl_id" <field name="product_tmpl_id" ref="product_product_sf_1_product_template" />
ref="product_product_sf_1_product_template"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<field name="sequence">5</field> <field name="sequence">5</field>
</record> </record>
<record id="mrp_bom_sf_1_line_pp_1" model="mrp.bom.line"> <record id="mrp_bom_sf_1_line_pp_1" model="mrp.bom.line">
<field name="product_id" ref="product_product_pp_1"/> <field name="product_id" ref="product_product_pp_1" />
<field name="product_qty">3</field> <field name="product_qty">3</field>
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field> <field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_sf_1"/> <field name="bom_id" ref="mrp_bom_sf_1" />
</record> </record>
<record id="mrp_bom_sf_1_line_pp_2" model="mrp.bom.line"> <record id="mrp_bom_sf_1_line_pp_2" model="mrp.bom.line">
<field name="product_id" ref="product_product_pp_2"/> <field name="product_id" ref="product_product_pp_2" />
<field name="product_qty">2</field> <field name="product_qty">2</field>
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field> <field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_sf_1"/> <field name="bom_id" ref="mrp_bom_sf_1" />
</record> </record>
<!-- SF-2 --> <!-- SF-2 -->
<record id="mrp_bom_sf_2" model="mrp.bom"> <record id="mrp_bom_sf_2" model="mrp.bom">
<field name="product_tmpl_id" <field name="product_tmpl_id" ref="product_product_sf_2_product_template" />
ref="product_product_sf_2_product_template"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<field name="sequence">5</field> <field name="sequence">5</field>
</record> </record>
<record id="mrp_bom_sf_2_line_pp_2" model="mrp.bom.line"> <record id="mrp_bom_sf_2_line_pp_2" model="mrp.bom.line">
<field name="product_id" ref="product_product_pp_2"/> <field name="product_id" ref="product_product_pp_2" />
<field name="product_qty">3</field> <field name="product_qty">3</field>
<field name="product_uom_id" ref="uom.product_uom_unit"/> <field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field> <field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_sf_2"/> <field name="bom_id" ref="mrp_bom_sf_2" />
</record> </record>
</odoo> </odoo>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="product_category_mrp" model="product.category"> <record id="product_category_mrp" model="product.category">
<field name="name">MRP</field> <field name="name">MRP</field>

View File

@@ -1,27 +1,27 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="product_mrp_area_fp_1" model="product.mrp.area"> <record id="product_mrp_area_fp_1" model="product.mrp.area">
<field name="product_id" ref="product_product_fp_1"/> <field name="product_id" ref="product_product_fp_1" />
<field name="mrp_area_id" ref="mrp_area_stock_wh0"/> <field name="mrp_area_id" ref="mrp_area_stock_wh0" />
</record> </record>
<record id="product_mrp_area_fp_2" model="product.mrp.area"> <record id="product_mrp_area_fp_2" model="product.mrp.area">
<field name="product_id" ref="product_product_fp_2"/> <field name="product_id" ref="product_product_fp_2" />
<field name="mrp_area_id" ref="mrp_area_stock_wh0"/> <field name="mrp_area_id" ref="mrp_area_stock_wh0" />
</record> </record>
<record id="product_mrp_area_sf_1" model="product.mrp.area"> <record id="product_mrp_area_sf_1" model="product.mrp.area">
<field name="product_id" ref="product_product_sf_1"/> <field name="product_id" ref="product_product_sf_1" />
<field name="mrp_area_id" ref="mrp_area_stock_wh0"/> <field name="mrp_area_id" ref="mrp_area_stock_wh0" />
</record> </record>
<record id="product_mrp_area_sf_2" model="product.mrp.area"> <record id="product_mrp_area_sf_2" model="product.mrp.area">
<field name="product_id" ref="product_product_sf_2"/> <field name="product_id" ref="product_product_sf_2" />
<field name="mrp_area_id" ref="mrp_area_stock_wh0"/> <field name="mrp_area_id" ref="mrp_area_stock_wh0" />
</record> </record>
<record id="product_mrp_area_pp_1" model="product.mrp.area"> <record id="product_mrp_area_pp_1" model="product.mrp.area">
<field name="product_id" ref="product_product_pp_1"/> <field name="product_id" ref="product_product_pp_1" />
<field name="mrp_area_id" ref="mrp_area_stock_wh0"/> <field name="mrp_area_id" ref="mrp_area_stock_wh0" />
</record> </record>
<record id="product_mrp_area_pp_2" model="product.mrp.area"> <record id="product_mrp_area_pp_2" model="product.mrp.area">
<field name="product_id" ref="product_product_pp_2"/> <field name="product_id" ref="product_product_pp_2" />
<field name="mrp_area_id" ref="mrp_area_stock_wh0"/> <field name="mrp_area_id" ref="mrp_area_stock_wh0" />
</record> </record>
</odoo> </odoo>

View File

@@ -1,59 +1,73 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="product_product_fp_1" model="product.product"> <record id="product_product_fp_1" model="product.product">
<field name="name">FP-1</field> <field name="name">FP-1</field>
<field name="categ_id" ref="product_category_mrp"/> <field name="categ_id" ref="product_category_mrp" />
<field name="type">product</field> <field name="type">product</field>
<field name="uom_id" ref="uom.product_uom_unit"/> <field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit"/> <field name="uom_po_id" ref="uom.product_uom_unit" />
<field name="produce_delay">2</field> <field name="produce_delay">2</field>
<field name="route_ids" eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"/> <field
name="route_ids"
eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"
/>
</record> </record>
<record id="product_product_fp_2" model="product.product"> <record id="product_product_fp_2" model="product.product">
<field name="name">FP-2</field> <field name="name">FP-2</field>
<field name="categ_id" ref="product_category_mrp"/> <field name="categ_id" ref="product_category_mrp" />
<field name="type">product</field> <field name="type">product</field>
<field name="uom_id" ref="uom.product_uom_unit"/> <field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit"/> <field name="uom_po_id" ref="uom.product_uom_unit" />
<field name="produce_delay">1</field> <field name="produce_delay">1</field>
<field name="route_ids" eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"/> <field
name="route_ids"
eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"
/>
</record> </record>
<record id="product_product_sf_1" model="product.product"> <record id="product_product_sf_1" model="product.product">
<field name="name">SF-1</field> <field name="name">SF-1</field>
<field name="categ_id" ref="product_category_mrp"/> <field name="categ_id" ref="product_category_mrp" />
<field name="type">product</field> <field name="type">product</field>
<field name="uom_id" ref="uom.product_uom_unit"/> <field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit"/> <field name="uom_po_id" ref="uom.product_uom_unit" />
<field name="produce_delay">1</field> <field name="produce_delay">1</field>
<field name="route_ids" eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"/> <field
name="route_ids"
eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"
/>
</record> </record>
<record id="product_product_sf_2" model="product.product"> <record id="product_product_sf_2" model="product.product">
<field name="name">SF-2</field> <field name="name">SF-2</field>
<field name="categ_id" ref="product_category_mrp"/> <field name="categ_id" ref="product_category_mrp" />
<field name="type">product</field> <field name="type">product</field>
<field name="uom_id" ref="uom.product_uom_unit"/> <field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit"/> <field name="uom_po_id" ref="uom.product_uom_unit" />
<field name="produce_delay">3</field> <field name="produce_delay">3</field>
<field name="route_ids" eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"/> <field
name="route_ids"
eval="[(6, 0, [ref('mrp.route_warehouse0_manufacture')])]"
/>
</record> </record>
<record id="product_product_pp_1" model="product.product"> <record id="product_product_pp_1" model="product.product">
<field name="name">PP-1</field> <field name="name">PP-1</field>
<field name="categ_id" ref="product_category_mrp"/> <field name="categ_id" ref="product_category_mrp" />
<field name="type">product</field> <field name="type">product</field>
<field name="uom_id" ref="uom.product_uom_unit"/> <field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit"/> <field name="uom_po_id" ref="uom.product_uom_unit" />
<field name="route_ids" eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"/> <field
name="route_ids"
eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"
/>
</record> </record>
<record id="product_product_pp_2" model="product.product"> <record id="product_product_pp_2" model="product.product">
<field name="name">PP-2</field> <field name="name">PP-2</field>
<field name="categ_id" ref="product_category_mrp"/> <field name="categ_id" ref="product_category_mrp" />
<field name="type">product</field> <field name="type">product</field>
<field name="uom_id" ref="uom.product_uom_unit"/> <field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit"/> <field name="uom_po_id" ref="uom.product_uom_unit" />
<field name="route_ids" eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"/> <field
name="route_ids"
eval="[(6, 0, [ref('purchase_stock.route_warehouse0_buy')])]"
/>
</record> </record>
</odoo> </odoo>

View File

@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="product_supplierinfo_pp_1" model="product.supplierinfo"> <record id="product_supplierinfo_pp_1" model="product.supplierinfo">
<field name="product_tmpl_id" ref="product_product_pp_1_product_template"/> <field name="product_tmpl_id" ref="product_product_pp_1_product_template" />
<field name="name" ref="res_partner_lazer_tech"/> <field name="name" ref="res_partner_lazer_tech" />
<field name="delay">4</field> <field name="delay">4</field>
<field name="min_qty">0</field> <field name="min_qty">0</field>
<field name="price">100</field> <field name="price">100</field>
</record> </record>
<record id="product_supplierinfo_pp_2" model="product.supplierinfo"> <record id="product_supplierinfo_pp_2" model="product.supplierinfo">
<field name="product_tmpl_id" ref="product_product_pp_2_product_template"/> <field name="product_tmpl_id" ref="product_product_pp_2_product_template" />
<field name="name" ref="res_partner_lazer_tech"/> <field name="name" ref="res_partner_lazer_tech" />
<field name="delay">2</field> <field name="delay">2</field>
<field name="min_qty">0</field> <field name="min_qty">0</field>
<field name="price">100</field> <field name="price">100</field>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="res_partner_lazer_tech" model="res.partner"> <record id="res_partner_lazer_tech" model="res.partner">
<field name="name">Lazer Tech</field> <field name="name">Lazer Tech</field>
<field name="is_company">1</field> <field name="is_company">1</field>
<field name="company_id" ref="base.main_company"/> <field name="company_id" ref="base.main_company" />
</record> </record>
</odoo> </odoo>

View File

@@ -1,45 +1,48 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo noupdate="1"> <odoo noupdate="1">
<record id="group_change_mrp_procure_qty" model="res.groups"> <record id="group_change_mrp_procure_qty" model="res.groups">
<field name="name">Change procure quantity in MRP</field> <field name="name">Change procure quantity in MRP</field>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> <field name="implied_ids" eval="[(4, ref('base.group_user'))]" />
<field name="category_id" ref="base.module_category_hidden"/> <field name="category_id" ref="base.module_category_hidden" />
</record> </record>
<record id="mrp_area_comp_rule" model="ir.rule"> <record id="mrp_area_comp_rule" model="ir.rule">
<field name="name">MRP Area multi-company rule</field> <field name="name">MRP Area multi-company rule</field>
<field name="model_id" ref="model_mrp_area"/> <field name="model_id" ref="model_mrp_area" />
<field name="global" eval="True"/> <field name="global" eval="True" />
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> <field
name="domain_force"
>['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
</record> </record>
<record id="mrp_product_mrp_area_comp_rule" model="ir.rule"> <record id="mrp_product_mrp_area_comp_rule" model="ir.rule">
<field name="name">Product MRP Area multi-company rule</field> <field name="name">Product MRP Area multi-company rule</field>
<field name="model_id" ref="model_product_mrp_area"/> <field name="model_id" ref="model_product_mrp_area" />
<field name="global" eval="True"/> <field name="global" eval="True" />
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> <field
name="domain_force"
>['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
</record> </record>
<record id="mrp_inventory_comp_rule" model="ir.rule"> <record id="mrp_inventory_comp_rule" model="ir.rule">
<field name="name">MRP Inventory multi-company rule</field> <field name="name">MRP Inventory multi-company rule</field>
<field name="model_id" ref="model_mrp_inventory"/> <field name="model_id" ref="model_mrp_inventory" />
<field name="global" eval="True"/> <field name="global" eval="True" />
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> <field
name="domain_force"
>['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
</record> </record>
<record id="mrp_move_comp_rule" model="ir.rule"> <record id="mrp_move_comp_rule" model="ir.rule">
<field name="name">MRP Move multi-company rule</field> <field name="name">MRP Move multi-company rule</field>
<field name="model_id" ref="model_mrp_move"/> <field name="model_id" ref="model_mrp_move" />
<field name="global" eval="True"/> <field name="global" eval="True" />
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> <field
name="domain_force"
>['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
</record> </record>
<record id="mrp_planned_order_comp_rule" model="ir.rule"> <record id="mrp_planned_order_comp_rule" model="ir.rule">
<field name="name">MRP Planned Order multi-company rule</field> <field name="name">MRP Planned Order multi-company rule</field>
<field name="model_id" ref="model_mrp_planned_order"/> <field name="model_id" ref="model_mrp_planned_order" />
<field name="global" eval="True"/> <field name="global" eval="True" />
<field name="domain_force">['|',('company_id','=',False),('company_id', 'in', company_ids)]</field> <field
name="domain_force"
>['|',('company_id','=',False),('company_id', 'in', company_ids)]</field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,21 +1,19 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<record model="ir.ui.view" id="mrp_area_tree"> <record model="ir.ui.view" id="mrp_area_tree">
<field name="name">mrp.area.tree</field> <field name="name">mrp.area.tree</field>
<field name="model">mrp.area</field> <field name="model">mrp.area</field>
<field name="type">tree</field> <field name="type">tree</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="MRP Area"> <tree string="MRP Area">
<field name="name"/> <field name="name" />
<field name="warehouse_id"/> <field name="warehouse_id" />
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company" />
<field name="location_id"/> <field name="location_id" />
<field name="calendar_id"/> <field name="calendar_id" />
</tree> </tree>
</field> </field>
</record> </record>
<record model="ir.ui.view" id="mrp_area_form"> <record model="ir.ui.view" id="mrp_area_form">
<field name="name">mrp.area.form</field> <field name="name">mrp.area.form</field>
<field name="model">mrp.area</field> <field name="model">mrp.area</field>
@@ -23,32 +21,40 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="MRP Area"> <form string="MRP Area">
<sheet> <sheet>
<div class="oe_button_box" name="button_box"/> <div class="oe_button_box" name="button_box" />
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/> <widget
<label for="name" class="oe_edit_only"/> name="web_ribbon"
<h1><field name="name"/></h1> title="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<label for="name" class="oe_edit_only" />
<h1>
<field name="name" />
</h1>
<group colspan="4" col="2"> <group colspan="4" col="2">
<group> <group>
<field name="active" invisible="1"/> <field name="active" invisible="1" />
<field name="warehouse_id"/> <field name="warehouse_id" />
<field name="location_id"/> <field name="location_id" />
<field name="company_id" groups="base.group_multi_company"/> <field
name="company_id"
groups="base.group_multi_company"
/>
</group> </group>
<group name="settings"> <group name="settings">
<field name="calendar_id"/> <field name="calendar_id" />
</group> </group>
</group> </group>
</sheet> </sheet>
</form> </form>
</field> </field>
</record> </record>
<record model="ir.actions.act_window" id="mrp_area_action"> <record model="ir.actions.act_window" id="mrp_area_action">
<field name="name">MRP Area</field> <field name="name">MRP Area</field>
<field name="res_model">mrp.area</field> <field name="res_model">mrp.area</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="view_id" ref="mrp_area_tree"/> <field name="view_id" ref="mrp_area_tree" />
</record> </record>
</odoo> </odoo>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<record id="mrp_inventory_form" model="ir.ui.view"> <record id="mrp_inventory_form" model="ir.ui.view">
<field name="name">mrp.inventory.form</field> <field name="name">mrp.inventory.form</field>
<field name="model">mrp.inventory</field> <field name="model">mrp.inventory</field>
@@ -10,79 +9,81 @@
<sheet> <sheet>
<group> <group>
<group> <group>
<field name="mrp_area_id"/> <field name="mrp_area_id" />
<field name="company_id" groups="base.group_multi_company"/> <field
<field name="product_id"/> name="company_id"
<field name="product_mrp_area_id"/> groups="base.group_multi_company"
<field name="supply_method"/> />
<field name="date"/> <field name="product_id" />
<field name="product_mrp_area_id" />
<field name="supply_method" />
<field name="date" />
</group> </group>
<group> <group>
<field name="initial_on_hand_qty"/> <field name="initial_on_hand_qty" />
<field name="demand_qty"/> <field name="demand_qty" />
<field name="supply_qty"/> <field name="supply_qty" />
<field name="final_on_hand_qty"/> <field name="final_on_hand_qty" />
<field name="to_procure"/> <field name="to_procure" />
<field name="uom_id" groups="uom.group_uom"/> <field name="uom_id" groups="uom.group_uom" />
</group> </group>
</group> </group>
</sheet> </sheet>
</form> </form>
</field> </field>
</record> </record>
<record id="mrp_inventory_tree" model="ir.ui.view"> <record id="mrp_inventory_tree" model="ir.ui.view">
<field name="name">mrp.inventory.tree</field> <field name="name">mrp.inventory.tree</field>
<field name="model">mrp.inventory</field> <field name="model">mrp.inventory</field>
<field name="type">tree</field> <field name="type">tree</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="MRP Inventory" create="false"> <tree string="MRP Inventory" create="false">
<field name="mrp_area_id"/> <field name="mrp_area_id" />
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company" />
<field name="product_id"/> <field name="product_id" />
<field name="date"/> <field name="date" />
<field name="uom_id" groups="uom.group_uom"/> <field name="uom_id" groups="uom.group_uom" />
<field name="initial_on_hand_qty"/> <field name="initial_on_hand_qty" />
<field name="demand_qty"/> <field name="demand_qty" />
<field name="supply_qty"/> <field name="supply_qty" />
<field name="final_on_hand_qty"/> <field name="final_on_hand_qty" />
<field name="to_procure"/> <field name="to_procure" />
<field name="order_release_date"/> <field name="order_release_date" />
<button string="Create Procurement" <button
name="%(mrp_multi_level.act_mrp_inventory_procure)d" string="Create Procurement"
icon="fa-cogs" type="action" name="%(mrp_multi_level.act_mrp_inventory_procure)d"
attrs="{'invisible':[('to_procure','&lt;=',0.0)]}"/> icon="fa-cogs"
<field name="supply_method"/> type="action"
<field name="running_availability"/> attrs="{'invisible':[('to_procure','&lt;=',0.0)]}"
/>
<field name="supply_method" />
<field name="running_availability" />
</tree> </tree>
</field> </field>
</record> </record>
<record id="view_mrp_inventory_pivot" model="ir.ui.view"> <record id="view_mrp_inventory_pivot" model="ir.ui.view">
<field name="name">mrp.inventory.pivot</field> <field name="name">mrp.inventory.pivot</field>
<field name="model">mrp.inventory</field> <field name="model">mrp.inventory</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<pivot string="MRP Inventory"> <pivot string="MRP Inventory">
<field name="final_on_hand_qty" type="measure"/> <field name="final_on_hand_qty" type="measure" />
<field name="mrp_area_id" type="row"/> <field name="mrp_area_id" type="row" />
<field name="product_mrp_area_id" type="row"/> <field name="product_mrp_area_id" type="row" />
<field name="date" interval="day" type="col"/> <field name="date" interval="day" type="col" />
</pivot> </pivot>
</field> </field>
</record> </record>
<record id="view_mrp_inventory_graph" model="ir.ui.view"> <record id="view_mrp_inventory_graph" model="ir.ui.view">
<field name="name">mrp.inventory.graph</field> <field name="name">mrp.inventory.graph</field>
<field name="model">mrp.inventory</field> <field name="model">mrp.inventory</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<graph string="MRP Inventory" type="line"> <graph string="MRP Inventory" type="line">
<field name="final_on_hand_qty" type="measure"/> <field name="final_on_hand_qty" type="measure" />
<field name="date" interval="day" type="row"/> <field name="date" interval="day" type="row" />
<field name="product_mrp_area_id" type="row"/> <field name="product_mrp_area_id" type="row" />
</graph> </graph>
</field> </field>
</record> </record>
<record id="mrp_inventory_search" model="ir.ui.view"> <record id="mrp_inventory_search" model="ir.ui.view">
<field name="name">mrp.inventory.search</field> <field name="name">mrp.inventory.search</field>
<field name="model">mrp.inventory</field> <field name="model">mrp.inventory</field>
@@ -90,39 +91,48 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="MRP Inventory"> <search string="MRP Inventory">
<group name="select" expand="0" string="Selection..."> <group name="select" expand="0" string="Selection...">
<field name="product_id"/> <field name="product_id" />
<field name="mrp_area_id"/> <field name="mrp_area_id" />
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company" />
</group> </group>
<separator/> <separator />
<filter string="To Procure" name="filter_to_procure" <filter
domain="[['to_procure','>',0.0]]"/> string="To Procure"
<separator/> name="filter_to_procure"
domain="[['to_procure','>',0.0]]"
/>
<separator />
<group expand="0" string="Group By..."> <group expand="0" string="Group By...">
<filter name="group_product" <filter
string="Product" name="group_product"
context="{'group_by':'product_mrp_area_id'}"/> string="Product"
<filter name="group_mrp_area" context="{'group_by':'product_mrp_area_id'}"
string="MRP Area" />
context="{'group_by':'mrp_area_id'}"/> <filter
<filter name="group_supply_method" name="group_mrp_area"
string="Supply Method" string="MRP Area"
context="{'group_by':'supply_method'}"/> context="{'group_by':'mrp_area_id'}"
<filter name="group_release_date" />
string="Date to Procure" <filter
context="{'group_by':'order_release_date'}"/> name="group_supply_method"
string="Supply Method"
context="{'group_by':'supply_method'}"
/>
<filter
name="group_release_date"
string="Date to Procure"
context="{'group_by':'order_release_date'}"
/>
</group> </group>
</search> </search>
</field> </field>
</record> </record>
<record id="mrp_inventory_action" model="ir.actions.act_window"> <record id="mrp_inventory_action" model="ir.actions.act_window">
<field name="name">MRP Inventory</field> <field name="name">MRP Inventory</field>
<field name="res_model">mrp.inventory</field> <field name="res_model">mrp.inventory</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form,pivot,graph</field> <field name="view_mode">tree,form,pivot,graph</field>
<field name="view_id" ref="mrp_inventory_tree"/> <field name="view_id" ref="mrp_inventory_tree" />
<field name="search_view_id" ref="mrp_inventory_search"/> <field name="search_view_id" ref="mrp_inventory_search" />
</record> </record>
</odoo> </odoo>

View File

@@ -1,30 +1,33 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<menuitem name="MRP" id="menu_mrp_mrp" parent="mrp.menu_mrp_root" sequence="22" />
<menuitem name="MRP" <menuitem
id="menu_mrp_mrp" name="MRP Areas"
parent="mrp.menu_mrp_root" id="menu_mrp_areas"
sequence="22"/> action="mrp_area_action"
<menuitem name="MRP Areas" parent="mrp.menu_mrp_configuration"
id="menu_mrp_areas" sequence="50"
action="mrp_area_action" />
parent="mrp.menu_mrp_configuration" <menuitem
sequence="50"/> name="Product MRP Area Parameters"
<menuitem name="Product MRP Area Parameters" id="menu_product_mrp_area_parameters"
id="menu_product_mrp_area_parameters" action="product_mrp_area_action"
action="product_mrp_area_action" parent="mrp.menu_mrp_bom"
parent="mrp.menu_mrp_bom" sequence="10"
sequence="10"/> />
<menuitem name="MRP Inventory" <menuitem
id="menu_mrp_inventory" name="MRP Inventory"
action="mrp_inventory_action" id="menu_mrp_inventory"
parent="mrp.menu_mrp_manufacturing" action="mrp_inventory_action"
sequence="30"/> parent="mrp.menu_mrp_manufacturing"
<menuitem name="Run MRP Multi Level" sequence="30"
id="menu_mrp_multi_level" />
action="action_mrp_multi_level" <menuitem
parent="mrp.menu_mrp_manufacturing" name="Run MRP Multi Level"
groups="mrp.group_mrp_manager" id="menu_mrp_multi_level"
sequence="40"/> action="action_mrp_multi_level"
parent="mrp.menu_mrp_manufacturing"
groups="mrp.group_mrp_manager"
sequence="40"
/>
</odoo> </odoo>

View File

@@ -1,31 +1,29 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<record model="ir.ui.view" id="product_mrp_area_tree"> <record model="ir.ui.view" id="product_mrp_area_tree">
<field name="name">product.mrp.area.tree</field> <field name="name">product.mrp.area.tree</field>
<field name="model">product.mrp.area</field> <field name="model">product.mrp.area</field>
<field name="type">tree</field> <field name="type">tree</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="Product MRP Area parameters"> <tree string="Product MRP Area parameters">
<field name="mrp_area_id"/> <field name="mrp_area_id" />
<field name="company_id" groups="base.group_multi_company"/> <field name="company_id" groups="base.group_multi_company" />
<field name="product_tmpl_id"/> <field name="product_tmpl_id" />
<field name="product_id" groups="product.group_product_variant"/> <field name="product_id" groups="product.group_product_variant" />
<field name="mrp_exclude"/> <field name="mrp_exclude" />
<field name="mrp_verified"/> <field name="mrp_verified" />
<field name="mrp_nbr_days"/> <field name="mrp_nbr_days" />
<field name="mrp_transit_delay"/> <field name="mrp_transit_delay" />
<field name="mrp_inspection_delay"/> <field name="mrp_inspection_delay" />
<field name="mrp_minimum_stock"/> <field name="mrp_minimum_stock" />
<field name="mrp_minimum_order_qty"/> <field name="mrp_minimum_order_qty" />
<field name="mrp_maximum_order_qty"/> <field name="mrp_maximum_order_qty" />
<field name="mrp_qty_multiple"/> <field name="mrp_qty_multiple" />
<field name="supply_method"/> <field name="supply_method" />
<field name="main_supplierinfo_id"/> <field name="main_supplierinfo_id" />
</tree> </tree>
</field> </field>
</record> </record>
<record model="ir.ui.view" id="product_mrp_area_form"> <record model="ir.ui.view" id="product_mrp_area_form">
<field name="name">product.mrp.area.form</field> <field name="name">product.mrp.area.form</field>
<field name="model">product.mrp.area</field> <field name="model">product.mrp.area</field>
@@ -33,72 +31,93 @@
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Product MRP Area parameters"> <form string="Product MRP Area parameters">
<sheet> <sheet>
<div class="oe_button_box" name="button_box"/> <div class="oe_button_box" name="button_box" />
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/> <widget
name="web_ribbon"
title="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<group colspan="4" col="2"> <group colspan="4" col="2">
<group> <group>
<field name="active" invisible="1"/> <field name="active" invisible="1" />
<field name="mrp_area_id"/> <field name="mrp_area_id" />
<field name="company_id" groups="base.group_multi_company"/> <field
<field name="product_tmpl_id" invisible="1"/> name="company_id"
<field name="product_id"/> groups="base.group_multi_company"
<field name="location_id" invisible="1"/> />
<field name="location_proc_id" options="{'no_create': True}"/> <field name="product_tmpl_id" invisible="1" />
<field name="product_id" />
<field name="location_id" invisible="1" />
<field
name="location_proc_id"
options="{'no_create': True}"
/>
</group> </group>
<group> <group>
<field name="mrp_exclude"/> <field name="mrp_exclude" />
<field name="mrp_verified"/> <field name="mrp_verified" />
<field name="mrp_nbr_days"/> <field name="mrp_nbr_days" />
<!--hide delays for now--> <!--hide delays for now-->
<field name="mrp_transit_delay" invisible="1"/> <field name="mrp_transit_delay" invisible="1" />
<field name="mrp_inspection_delay" invisible="1"/> <field name="mrp_inspection_delay" invisible="1" />
<field name="mrp_minimum_stock"/> <field name="mrp_minimum_stock" />
<label for="mrp_minimum_order_qty"/> <label for="mrp_minimum_order_qty" />
<div name="mrp_minimum_order_qty" class="o_row"> <div name="mrp_minimum_order_qty" class="o_row">
<field name="mrp_minimum_order_qty"/> <field name="mrp_minimum_order_qty" />
<span name="update_min_qty"> <span name="update_min_qty">
<button string="Get from main supplier" type="object" <button
string="Get from main supplier"
type="object"
name="update_min_qty_from_main_supplier" name="update_min_qty_from_main_supplier"
attrs="{'invisible':[('supply_method', '!=', 'buy'), ('main_supplierinfo_id', '=', False)]}" attrs="{'invisible':[('supply_method', '!=', 'buy'), ('main_supplierinfo_id', '=', False)]}"
class="oe_link pt-0 oe_inline" class="oe_link pt-0 oe_inline"
/> />
</span> </span>
</div> </div>
<field name="mrp_maximum_order_qty"/> <field name="mrp_maximum_order_qty" />
<field name="mrp_qty_multiple"/> <field name="mrp_qty_multiple" />
<field name="supply_method"/> <field name="supply_method" />
<field name="mrp_lead_time"/> <field name="mrp_lead_time" />
<field name="main_supplierinfo_id"/> <field name="main_supplierinfo_id" />
</group> </group>
</group> </group>
<notebook> <notebook>
<page name="mrp_moves" string="MRP Moves" groups="base.group_no_one"> <page
name="mrp_moves"
string="MRP Moves"
groups="base.group_no_one"
>
<field name="mrp_move_ids" nolabel="1"> <field name="mrp_move_ids" nolabel="1">
<tree> <tree>
<field name="mrp_date"/> <field name="mrp_date" />
<field name="current_date"/> <field name="current_date" />
<field name="mrp_origin"/> <field name="mrp_origin" />
<field name="state"/> <field name="state" />
<field name="mrp_order_number"/> <field name="mrp_order_number" />
<field name="parent_product_id"/> <field name="parent_product_id" />
<field name="name"/> <field name="name" />
<field name="mrp_qty"/> <field name="mrp_qty" />
<field name="current_qty"/> <field name="current_qty" />
<field name="mrp_type"/> <field name="mrp_type" />
<field name="planned_order_up_ids"/> <field name="planned_order_up_ids" />
</tree> </tree>
</field> </field>
</page> </page>
<page name="planned_orders" string="Planned Orders" groups="base.group_no_one"> <page
name="planned_orders"
string="Planned Orders"
groups="base.group_no_one"
>
<field name="planned_order_ids" nolabel="1"> <field name="planned_order_ids" nolabel="1">
<tree> <tree>
<field name="order_release_date"/> <field name="order_release_date" />
<field name="due_date"/> <field name="due_date" />
<field name="name"/> <field name="name" />
<field name="mrp_qty"/> <field name="mrp_qty" />
<field name="mrp_action"/> <field name="mrp_action" />
<field name="qty_released"/> <field name="qty_released" />
<field name="fixed"/> <field name="fixed" />
</tree> </tree>
</field> </field>
</page> </page>
@@ -107,28 +126,29 @@
</form> </form>
</field> </field>
</record> </record>
<record model="ir.ui.view" id="product_mrp_area_search"> <record model="ir.ui.view" id="product_mrp_area_search">
<field name="name">product.mrp.area.search</field> <field name="name">product.mrp.area.search</field>
<field name="model">product.mrp.area</field> <field name="model">product.mrp.area</field>
<field name="type">search</field> <field name="type">search</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Product MRP Area parameters"> <search string="Product MRP Area parameters">
<field name="product_id"/> <field name="product_id" />
<field name="mrp_area_id"/> <field name="mrp_area_id" />
<separator/> <separator />
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/> <filter
string="Archived"
name="inactive"
domain="[('active','=',False)]"
/>
</search> </search>
</field> </field>
</record> </record>
<record model="ir.actions.act_window" id="product_mrp_area_action"> <record model="ir.actions.act_window" id="product_mrp_area_action">
<field name="name">Product MRP Area Parameters</field> <field name="name">Product MRP Area Parameters</field>
<field name="res_model">product.mrp.area</field> <field name="res_model">product.mrp.area</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,form</field> <field name="view_mode">tree,form</field>
<field name="view_id" ref="product_mrp_area_tree"/> <field name="view_id" ref="product_mrp_area_tree" />
<field name="search_view_id" ref="product_mrp_area_search"/> <field name="search_view_id" ref="product_mrp_area_search" />
</record> </record>
</odoo> </odoo>

View File

@@ -1,20 +1,20 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<record model="ir.ui.view" id="view_mrp_product_product_form"> <record model="ir.ui.view" id="view_mrp_product_product_form">
<field name="name">view.product.mrp.area.product.form</field> <field name="name">view.product.mrp.area.product.form</field>
<field name="model">product.product</field> <field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view"/> <field name="inherit_id" ref="product.product_normal_form_view" />
<field name="type">form</field> <field name="type">form</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<div name="button_box" position="inside"> <div name="button_box" position="inside">
<button type="object" <button
type="object"
name="action_view_mrp_area_parameters" name="action_view_mrp_area_parameters"
class="oe_stat_button" class="oe_stat_button"
icon="fa-eject" icon="fa-eject"
groups="mrp.group_mrp_user"> groups="mrp.group_mrp_user"
<field name="mrp_area_count" widget="statinfo" >
string="MRP Areas"/> <field name="mrp_area_count" widget="statinfo" string="MRP Areas" />
</button> </button>
</div> </div>
</field> </field>

View File

@@ -1,22 +1,21 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<record id="product_template_only_form_view_mrp" model="ir.ui.view"> <record id="product_template_only_form_view_mrp" model="ir.ui.view">
<field name="name">product.template.product.form.mrp</field> <field name="name">product.template.product.form.mrp</field>
<field name="model">product.template</field> <field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_only_form_view"/> <field name="inherit_id" ref="product.product_template_only_form_view" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<div name="button_box" position="inside"> <div name="button_box" position="inside">
<button type="object" <button
name="action_view_mrp_area_parameters" type="object"
class="oe_stat_button" name="action_view_mrp_area_parameters"
icon="fa-eject" class="oe_stat_button"
groups="mrp.group_mrp_user"> icon="fa-eject"
<field name="mrp_area_count" widget="statinfo" groups="mrp.group_mrp_user"
string="MRP Areas"/> >
<field name="mrp_area_count" widget="statinfo" string="MRP Areas" />
</button> </button>
</div> </div>
</field> </field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,38 +1,33 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<record id="view_location_form" model="ir.ui.view"> <record id="view_location_form" model="ir.ui.view">
<field name="name">stock.location.form</field> <field name="name">stock.location.form</field>
<field name="model">stock.location</field> <field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_form"/> <field name="inherit_id" ref="stock.view_location_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="company_id" position="before"> <field name="company_id" position="before">
<field name="mrp_area_id"/> <field name="mrp_area_id" />
</field> </field>
</field> </field>
</record> </record>
<record id="view_location_search" model="ir.ui.view"> <record id="view_location_search" model="ir.ui.view">
<field name="name">stock.location.search</field> <field name="name">stock.location.search</field>
<field name="model">stock.location</field> <field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_search"/> <field name="inherit_id" ref="stock.view_location_search" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="location_id" position="after"> <field name="location_id" position="after">
<field name="mrp_area_id"/> <field name="mrp_area_id" />
</field> </field>
</field> </field>
</record> </record>
<record id="view_location_tree2" model="ir.ui.view"> <record id="view_location_tree2" model="ir.ui.view">
<field name="name">stock.location.tree</field> <field name="name">stock.location.tree</field>
<field name="model">stock.location</field> <field name="model">stock.location</field>
<field name="inherit_id" ref="stock.view_location_tree2"/> <field name="inherit_id" ref="stock.view_location_tree2" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="company_id" position="before"> <field name="company_id" position="before">
<field name="mrp_area_id"/> <field name="mrp_area_id" />
</field> </field>
</field> </field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<!-- Make Procurement with security access right --> <!-- Make Procurement with security access right -->
<record id="view_mrp_inventory_procure_wizard" model="ir.ui.view"> <record id="view_mrp_inventory_procure_wizard" model="ir.ui.view">
<field name="name">mrp.inventory.procure.form</field> <field name="name">mrp.inventory.procure.form</field>
@@ -16,30 +15,42 @@
<group name="items" string="Items"> <group name="items" string="Items">
<field name="item_ids" nolabel="1"> <field name="item_ids" nolabel="1">
<tree string="Items" nocreate="1" editable="top"> <tree string="Items" nocreate="1" editable="top">
<field name="mrp_inventory_id" invisible="True"/> <field name="mrp_inventory_id" invisible="True" />
<field name="warehouse_id" groups="stock.group_stock_multi_locations" readonly="1"/> <field
<field name="location_id" groups="stock.group_stock_multi_locations" readonly="1"/> name="warehouse_id"
<field name="product_id" readonly="1"/> groups="stock.group_stock_multi_locations"
<field name="qty"/> readonly="1"
<field name="uom_id" groups="uom.group_uom"/> />
<field name="date_planned"/> <field
<field name="supply_method"/> name="location_id"
groups="stock.group_stock_multi_locations"
readonly="1"
/>
<field name="product_id" readonly="1" />
<field name="qty" />
<field name="uom_id" groups="uom.group_uom" />
<field name="date_planned" />
<field name="supply_method" />
</tree> </tree>
</field> </field>
</group> </group>
<footer> <footer>
<button string="Execute" name="make_procurement" type="object" class="btn-primary"/> <button
<button string="Cancel" class="btn-default" special="cancel"/> string="Execute"
name="make_procurement"
type="object"
class="btn-primary"
/>
<button string="Cancel" class="btn-default" special="cancel" />
</footer> </footer>
</form> </form>
</field> </field>
</record> </record>
<!-- Make Procurement without security access right --> <!-- Make Procurement without security access right -->
<record id="view_mrp_inventory_procure_without_security" model="ir.ui.view"> <record id="view_mrp_inventory_procure_without_security" model="ir.ui.view">
<field name="name">mrp.inventory.procure.form - readonly qty</field> <field name="name">mrp.inventory.procure.form - readonly qty</field>
<field name="model">mrp.inventory.procure</field> <field name="model">mrp.inventory.procure</field>
<field name="inherit_id" ref="view_mrp_inventory_procure_wizard"/> <field name="inherit_id" ref="view_mrp_inventory_procure_wizard" />
<field name="mode">primary</field> <field name="mode">primary</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="qty" position="attributes"> <field name="qty" position="attributes">
@@ -47,14 +58,11 @@
</field> </field>
</field> </field>
</record> </record>
<record id="act_mrp_inventory_procure" model="ir.actions.act_window"> <record id="act_mrp_inventory_procure" model="ir.actions.act_window">
<field name="name">Procure</field> <field name="name">Procure</field>
<field name="res_model">mrp.inventory.procure</field> <field name="res_model">mrp.inventory.procure</field>
<field name="view_mode">form</field> <field name="view_mode">form</field>
<field name="target">new</field> <field name="target">new</field>
<field name="binding_model_id" <field name="binding_model_id" ref="mrp_multi_level.model_mrp_inventory" />
ref="mrp_multi_level.model_mrp_inventory"/>
</record> </record>
</odoo> </odoo>

View File

@@ -1,28 +1,36 @@
<?xml version="1.0"?> <?xml version="1.0" ?>
<odoo> <odoo>
<record id="view_run_mrp_multi_level_wizard" model="ir.ui.view"> <record id="view_run_mrp_multi_level_wizard" model="ir.ui.view">
<field name="name">Run MRP</field> <field name="name">Run MRP</field>
<field name="model">mrp.multi.level</field> <field name="model">mrp.multi.level</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="Run MRP Multi Level"> <form string="Run MRP Multi Level">
<group> <group>
<field name="mrp_area_ids" widget="many2many_tags" options="{'no_create': True}"/> <field
name="mrp_area_ids"
widget="many2many_tags"
options="{'no_create': True}"
/>
</group> </group>
<footer> <footer>
<button name="run_mrp_multi_level" string="Run MRP" type="object" class="oe_highlight" /> <button
name="run_mrp_multi_level"
string="Run MRP"
type="object"
class="oe_highlight"
/>
or or
<button string="Cancel" class="oe_link" special="cancel" /> <button string="Cancel" class="oe_link" special="cancel" />
</footer> </footer>
</form> </form>
</field> </field>
</record> </record>
<act_window
<act_window name="Run MRP" name="Run MRP"
res_model="mrp.multi.level" res_model="mrp.multi.level"
binding_model="mrp.multi.level" binding_model="mrp.multi.level"
view_mode="form" view_mode="form"
target="new" target="new"
id="action_mrp_multi_level"/> id="action_mrp_multi_level"
/>
</odoo> </odoo>

View File

@@ -1,17 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2018 Tecnativa - Pedro M. Baeza <!-- Copyright 2018 Tecnativa - Pedro M. Baeza
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<record id="view_picking_type_form" model="ir.ui.view"> <record id="view_picking_type_form" model="ir.ui.view">
<field name="model">stock.picking.type</field> <field name="model">stock.picking.type</field>
<field name="inherit_id" ref="stock.view_picking_type_form"/> <field name="inherit_id" ref="stock.view_picking_type_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="code" position="after"> <field name="code" position="after">
<field name="mo_grouping_max_hour"/> <field name="mo_grouping_max_hour" />
<field name="mo_grouping_interval"/> <field name="mo_grouping_interval" />
</field> </field>
</field> </field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,41 +1,54 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2019 Kitti U. - Ecosoft <carlos.dauden@tecnativa.com> <!-- Copyright 2019 Kitti U. - Ecosoft <carlos.dauden@tecnativa.com>
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo> <odoo>
<record id="view_picking_form" model="ir.ui.view">
<record id="view_picking_form" model="ir.ui.view"> <field name="name">stock.picking.form</field>
<field name="name">stock.picking.form</field> <field name="model">stock.picking</field>
<field name="model">stock.picking</field> <field name="inherit_id" ref="stock.view_picking_form" />
<field name="inherit_id" ref="stock.view_picking_form"/> <field name="arch" type="xml">
<field name="arch" type="xml"> <xpath expr="/form/sheet/notebook/page[@name='extra']" position="before">
<xpath expr="/form/sheet/notebook/page[@name='extra']" position="before"> <page
<page string="Kit Helper" attrs="{'invisible': [('has_product_kit', '=', False)]}"> string="Kit Helper"
<p class="oe_grey"> attrs="{'invisible': [('has_product_kit', '=', False)]}"
>
<p class="oe_grey">
To deliver partial product kits, you can use this tab to help calculate To deliver partial product kits, you can use this tab to help calculate
quantity and auto fill in "Done" column in Operations tab.<br/> quantity and auto fill in "Done" column in Operations tab.<br />
<ol> <ol>
<li>Click => Show Product Kit</li> <li>Click => Show Product Kit</li>
<li>Edit and fill in required quantity</li> <li>Edit and fill in required quantity</li>
<li>Click Assign Operation Quantity</li> <li>Click Assign Operation Quantity</li>
<li>Check result in Operations tab</li> <li>Check result in Operations tab</li>
</ol> </ol>
</p> </p>
<field name="has_product_kit" invisible="1"/> <field name="has_product_kit" invisible="1" />
<button name="show_product_kit" type="object" string="⇒ Show Product Kit" class="oe_link" <button
attrs="{'invisible': ['|', ('product_kit_helper_ids', '!=', []), ('state', 'in', ['done', 'cancel'])]}"/> name="show_product_kit"
<button name="action_product_kit_helper" type="object" string="Assign Operation Quantity" type="object"
class="oe_highlight" attrs="{'invisible': ['|', ('product_kit_helper_ids', '=', []), ('state', 'in', ['done', 'cancel'])]}"/> string="⇒ Show Product Kit"
<field name="product_kit_helper_ids" attrs="{'invisible': [('product_kit_helper_ids', '=', [])]}"> class="oe_link"
<tree editable="bottom" create="0" delete="0"> attrs="{'invisible': ['|', ('product_kit_helper_ids', '!=', []), ('state', 'in', ['done', 'cancel'])]}"
<field name="product_id"/> />
<field name="product_uom_qty"/> <button
<field name="product_uom" groups="uom.group_uom"/> name="action_product_kit_helper"
</tree> type="object"
</field> string="Assign Operation Quantity"
</page> class="oe_highlight"
</xpath> attrs="{'invisible': ['|', ('product_kit_helper_ids', '=', []), ('state', 'in', ['done', 'cancel'])]}"
</field> />
</record> <field
name="product_kit_helper_ids"
attrs="{'invisible': [('product_kit_helper_ids', '=', [])]}"
>
<tree editable="bottom" create="0" delete="0">
<field name="product_id" />
<field name="product_uom_qty" />
<field name="product_uom" groups="uom.group_uom" />
</tree>
</field>
</page>
</xpath>
</field>
</record>
</odoo> </odoo>