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
trim_trailing_whitespace = true
[.eslintrc,*.{json,yml,yaml,rst,md}]
[*.{json,yml,yaml,rst,md}]
indent_size = 2
# 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
end_of_line = 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_addons=odoo.addons
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:
python: python3
repos:
- repo: https://github.com/psf/black
rev: 19.3b0
hooks:
- id: black
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: trailing-whitespace
# exclude autogenerated files
exclude: /README\.rst$|\.pot?$
- id: end-of-file-fixer
# exclude autogenerated files
exclude: /README\.rst$|\.pot?$
- id: debug-statements
- id: flake8
name: flake8 except __init__.py
exclude: /__init__\.py$
additional_dependencies: ["flake8-bugbear==19.8.0"]
- id: flake8
name: flake8 only __init__.py
args: ["--extend-ignore=F401"] # ignore unused imports in __init__.py
files: /__init__\.py$
additional_dependencies: ["flake8-bugbear==19.8.0"]
- id: fix-encoding-pragma
args: ["--remove"]
- id: check-case-conflict
- id: check-docstring-first
- id: check-executables-have-shebangs
- id: check-merge-conflict
- id: check-symlinks
- id: check-xml
- id: mixed-line-ending
args: ["--fix=lf"]
- repo: https://github.com/pre-commit/mirrors-pylint
rev: v2.3.1
hooks:
- id: pylint
name: pylint with optional checks
args: ["--rcfile=.pylintrc", "--exit-zero"]
verbose: true
additional_dependencies: ["pylint-odoo==3.0.3"]
- id: pylint
name: pylint with mandatory checks
args: ["--rcfile=.pylintrc-mandatory"]
additional_dependencies: ["pylint-odoo==3.0.3"]
- repo: https://github.com/asottile/pyupgrade
rev: v1.24.0
hooks:
- id: pyupgrade
- repo: https://github.com/asottile/seed-isort-config
rev: v1.9.3
hooks:
- id: seed-isort-config
- 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/pre-commit/mirrors-eslint
rev: v6.5.1
hooks:
- id: eslint
verbose: true
- repo: https://github.com/psf/black
rev: 19.10b0
hooks:
- id: black
- repo: https://github.com/prettier/prettier
rev: "1.19.1"
hooks:
- id: prettier
# TODO Avoid awebdeveloper/pre-commit-prettier if possible
# HACK https://github.com/prettier/prettier/issues/7407
- repo: https://github.com/awebdeveloper/pre-commit-prettier
rev: v0.0.1
hooks:
- id: prettier
name: prettier xml plugin
additional_dependencies:
- "prettier@1.19.1"
- "@prettier/plugin-xml@0.7.2"
files: \.xml$
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v6.8.0
hooks:
- id: eslint
verbose: true
args:
- --color
- --fix
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.4.0
hooks:
- id: trailing-whitespace
# exclude autogenerated files
exclude: /README\.rst$|\.pot?$
- id: end-of-file-fixer
# exclude autogenerated files
exclude: /README\.rst$|\.pot?$
- id: debug-statements
- id: flake8
name: flake8 except __init__.py
exclude: /__init__\.py$
additional_dependencies: ["flake8-bugbear==19.8.0"]
- id: flake8
name: flake8 only __init__.py
args: ["--extend-ignore=F401"] # ignore unused imports in __init__.py
files: /__init__\.py$
additional_dependencies: ["flake8-bugbear==19.8.0"]
- id: fix-encoding-pragma
args: ["--remove"]
- id: check-case-conflict
- id: check-docstring-first
- id: check-executables-have-shebangs
- id: check-merge-conflict
# exclude files where underlines are not distinguishable from merge conflicts
exclude: /README\.rst$|^docs/.*\.rst$
- id: check-symlinks
- id: check-xml
- id: mixed-line-ending
args: ["--fix=lf"]
- repo: https://github.com/pre-commit/mirrors-pylint
rev: v2.3.1
hooks:
- id: pylint
name: pylint with optional checks
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
cache:
directories:
- $HOME/.cache/pip
- $HOME/.cache/pre-commit
- $HOME/.cache/pip
- $HOME/.cache/pre-commit
python:
- "3.6"
@@ -11,7 +11,7 @@ addons:
postgresql: "9.6"
apt:
packages:
- expect-dev # provides unbuffer utility
- expect-dev # provides unbuffer utility
stages:
- linting
@@ -34,10 +34,11 @@ jobs:
env:
global:
- VERSION="13.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0"
- VERSION="13.0" TESTS="0" LINT_CHECK="0" MAKEPOT="0"
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}
- travis_install_nightly

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,25 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="mrp_bom_form_view" model="ir.ui.view">
<field name="name">mrp.bom.form</field>
<field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='bom_line_ids']//field[@name='sequence']" position="attributes">
<attributes name="widget">"handle"</attributes>
</xpath>
</field>
</record>
<record id="mrp_bom_form_view2" model="ir.ui.view">
<field name="name">mrp.bom.form</field>
<field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='bom_line_ids']//field[@name='sequence']" position="after">
<field name="sequence2"/>
</xpath>
</field>
</record>
<record id="mrp_bom_form_view" model="ir.ui.view">
<field name="name">mrp.bom.form</field>
<field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view" />
<field name="arch" type="xml">
<xpath
expr="//field[@name='bom_line_ids']//field[@name='sequence']"
position="attributes"
>
<attributes name="widget">"handle"</attributes>
</xpath>
</field>
</record>
<record id="mrp_bom_form_view2" model="ir.ui.view">
<field name="name">mrp.bom.form</field>
<field name="model">mrp.bom</field>
<field name="inherit_id" ref="mrp.mrp_bom_form_view" />
<field name="arch" type="xml">
<xpath
expr="//field[@name='bom_line_ids']//field[@name='sequence']"
position="after"
>
<field name="sequence2" />
</xpath>
</field>
</record>
</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)
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
-->
<odoo>
<record id="mrp_bom_form_view" model="ir.ui.view">
<field name="name">mrp.bom.form - mrp_bom_location</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="routing_id" position="before">
<field name="location_id"/>
<field name="location_id" />
</field>
<xpath expr="//field[@name='bom_line_ids']/tree/field[@name='product_qty']" position="after">
<field name="location_id"/>
<xpath
expr="//field[@name='bom_line_ids']/tree/field[@name='product_qty']"
position="after"
>
<field name="location_id" />
</xpath>
</field>
</record>
<record id="mrp_bom_tree_view" model="ir.ui.view">
<field name="name">mrp.bom.tree - mrp_bom_location</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="product_id" position="after">
<field name="location_id"/>
<field name="location_id" />
</field>
</field>
</record>
<record id="view_mrp_bom_filter" model="ir.ui.view">
<field name="name">mrp.bom.select - mrp_bom_location</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="product_tmpl_id" position="after">
<field name="location_id" string="Location"/>
<field name="location_id" string="Location" />
</field>
<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>
</field>
</record>
<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="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="product_id" position="before">
<field name="location_id"/>
<field name="location_id" />
</field>
</field>
</record>
</odoo>

View File

@@ -1,33 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="report_mrpbomstructure_location" inherit_id="mrp.report_mrp_bom">
<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 expr="//tbody/tr/td[last()]" position="before">
<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>
</xpath>
</template>
<template id="report_mrp_bom_line" inherit_id="mrp.report_mrp_bom_line">
<xpath expr="//tr/td[last()]" position="before">
<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>
</xpath>
<xpath expr="//tr[hasclass('o_mrp_bom_report_line', 'o_mrp_bom_cost')]" position="inside">
<td/>
<xpath
expr="//tr[hasclass('o_mrp_bom_report_line', 'o_mrp_bom_cost')]"
position="inside"
>
<td />
</xpath>
</template>
<template id="report_mrp_bom_pdf_line" inherit_id="mrp.report_mrp_bom_pdf_line">
<xpath expr="//tr" position="inside">
<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 t-else=""/>
<td t-else="" />
</xpath>
</template>
</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)
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). -->
<odoo>
<template id="track_bom_line_template">
<div>
<strong>The component quantities or UoMs have been updated.</strong>
<ul>
<t t-foreach="lines" t-as="line">
<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 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/>
<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 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>
</ul>
</div>
</template>
<template id="track_bom_template">
<div>
<strong>The components have changed.</strong>
<ul>
<t t-foreach="lines" t-as="line">
<li><t t-esc="line.product_id.display_name"/>: <t t-esc="mode"/> 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/>
<li><t t-esc="line.product_id.display_name" />: <t
t-esc="mode"
/> 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>
</ul>
</div>
</template>
<template id="track_bom_template_2">
<div>
<strong>The components have changed.</strong>
<ul>
<t t-foreach="lines" t-as="line">
<li><t t-esc="line.product_id.display_name"/>:
Removed component<br/></li>
<li><t t-esc="product_id.display_name"/>:
New component<br/></li>
<li><t t-esc="line.product_id.display_name" />:
Removed component<br /></li>
<li><t t-esc="product_id.display_name" />:
New component<br /></li>
</t>
</ul>
</div>

View File

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

View File

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

View File

@@ -1,36 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="stock_inventory_mrp_example" model="stock.inventory">
<field name="name">Starting On-hand for MRP demo</field>
</record>
<record id="stock_inventory_line_1" model="stock.inventory.line">
<field name="product_id" ref="product_product_pp_1"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<field name="inventory_id" ref="stock_inventory_mrp_example"/>
<field name="product_id" ref="product_product_pp_1" />
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="inventory_id" ref="stock_inventory_mrp_example" />
<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 id="stock_inventory_line_2" model="stock.inventory.line">
<field name="product_id" ref="product_product_pp_2"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<field name="inventory_id" ref="stock_inventory_mrp_example"/>
<field name="product_id" ref="product_product_pp_2" />
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="inventory_id" ref="stock_inventory_mrp_example" />
<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 id="stock_inventory_line_3" model="stock.inventory.line">
<field name="product_id" ref="product_product_sf_2"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<field name="inventory_id" ref="stock_inventory_mrp_example"/>
<field name="product_id" ref="product_product_sf_2" />
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="inventory_id" ref="stock_inventory_mrp_example" />
<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>
<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 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>
</odoo>

View File

@@ -1,81 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<!-- FP-1 -->
<record id="mrp_bom_fp_1" model="mrp.bom">
<field name="product_tmpl_id"
ref="product_product_fp_1_product_template"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<!-- FP-1 -->
<record id="mrp_bom_fp_1" model="mrp.bom">
<field name="product_tmpl_id" ref="product_product_fp_1_product_template" />
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field>
</record>
<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_uom_id" ref="uom.product_uom_unit"/>
<field name="product_uom_id" ref="uom.product_uom_unit" />
<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 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_uom_id" ref="uom.product_uom_unit"/>
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_fp_1"/>
<field name="bom_id" ref="mrp_bom_fp_1" />
</record>
<!-- FP-2 -->
<record id="mrp_bom_fp_2" model="mrp.bom">
<field name="product_tmpl_id"
ref="product_product_fp_2_product_template"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<!-- FP-2 -->
<record id="mrp_bom_fp_2" model="mrp.bom">
<field name="product_tmpl_id" ref="product_product_fp_2_product_template" />
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field>
</record>
<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_uom_id" ref="uom.product_uom_unit"/>
<field name="product_uom_id" ref="uom.product_uom_unit" />
<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 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_uom_id" ref="uom.product_uom_unit"/>
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_fp_2"/>
<field name="bom_id" ref="mrp_bom_fp_2" />
</record>
<!-- SF-1 -->
<record id="mrp_bom_sf_1" model="mrp.bom">
<field name="product_tmpl_id"
ref="product_product_sf_1_product_template"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<record id="mrp_bom_sf_1" model="mrp.bom">
<field name="product_tmpl_id" ref="product_product_sf_1_product_template" />
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field>
</record>
<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_uom_id" ref="uom.product_uom_unit"/>
<field name="product_uom_id" ref="uom.product_uom_unit" />
<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 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_uom_id" ref="uom.product_uom_unit"/>
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_sf_1"/>
<field name="bom_id" ref="mrp_bom_sf_1" />
</record>
<!-- SF-2 -->
<record id="mrp_bom_sf_2" model="mrp.bom">
<field name="product_tmpl_id"
ref="product_product_sf_2_product_template"/>
<field name="product_uom_id" ref="uom.product_uom_unit"/>
<record id="mrp_bom_sf_2" model="mrp.bom">
<field name="product_tmpl_id" ref="product_product_sf_2_product_template" />
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field>
</record>
<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_uom_id" ref="uom.product_uom_unit"/>
<field name="product_uom_id" ref="uom.product_uom_unit" />
<field name="sequence">5</field>
<field name="bom_id" ref="mrp_bom_sf_2"/>
<field name="bom_id" ref="mrp_bom_sf_2" />
</record>
</odoo>

View File

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

View File

@@ -1,59 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="product_product_fp_1" model="product.product">
<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="uom_id" ref="uom.product_uom_unit"/>
<field name="uom_po_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="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 id="product_product_fp_2" model="product.product">
<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="uom_id" ref="uom.product_uom_unit"/>
<field name="uom_po_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="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 id="product_product_sf_1" model="product.product">
<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="uom_id" ref="uom.product_uom_unit"/>
<field name="uom_po_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="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 id="product_product_sf_2" model="product.product">
<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="uom_id" ref="uom.product_uom_unit"/>
<field name="uom_po_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="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 id="product_product_pp_1" model="product.product">
<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="uom_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="uom_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')])]"
/>
</record>
<record id="product_product_pp_2" model="product.product">
<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="uom_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="uom_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')])]"
/>
</record>
</odoo>

View File

@@ -1,16 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record id="product_supplierinfo_pp_1" model="product.supplierinfo">
<field name="product_tmpl_id" ref="product_product_pp_1_product_template"/>
<field name="name" ref="res_partner_lazer_tech"/>
<field name="product_tmpl_id" ref="product_product_pp_1_product_template" />
<field name="name" ref="res_partner_lazer_tech" />
<field name="delay">4</field>
<field name="min_qty">0</field>
<field name="price">100</field>
</record>
<record id="product_supplierinfo_pp_2" model="product.supplierinfo">
<field name="product_tmpl_id" ref="product_product_pp_2_product_template"/>
<field name="name" ref="res_partner_lazer_tech"/>
<field name="product_tmpl_id" ref="product_product_pp_2_product_template" />
<field name="name" ref="res_partner_lazer_tech" />
<field name="delay">2</field>
<field name="min_qty">0</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">
<record id="res_partner_lazer_tech" model="res.partner">
<field name="name">Lazer Tech</field>
<field name="is_company">1</field>
<field name="company_id" ref="base.main_company"/>
<field name="company_id" ref="base.main_company" />
</record>
</odoo>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,28 +1,36 @@
<?xml version="1.0"?>
<?xml version="1.0" ?>
<odoo>
<record id="view_run_mrp_multi_level_wizard" model="ir.ui.view">
<field name="name">Run MRP</field>
<field name="model">mrp.multi.level</field>
<field name="arch" type="xml">
<form string="Run MRP Multi Level">
<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>
<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
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
</form>
</field>
</record>
<act_window name="Run MRP"
res_model="mrp.multi.level"
binding_model="mrp.multi.level"
view_mode="form"
target="new"
id="action_mrp_multi_level"/>
<act_window
name="Run MRP"
res_model="mrp.multi.level"
binding_model="mrp.multi.level"
view_mode="form"
target="new"
id="action_mrp_multi_level"
/>
</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
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="view_picking_type_form" model="ir.ui.view">
<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="code" position="after">
<field name="mo_grouping_max_hour"/>
<field name="mo_grouping_interval"/>
<field name="mo_grouping_max_hour" />
<field name="mo_grouping_interval" />
</field>
</field>
</record>
</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>
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<odoo>
<record id="view_picking_form" model="ir.ui.view">
<field name="name">stock.picking.form</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="/form/sheet/notebook/page[@name='extra']" position="before">
<page string="Kit Helper" attrs="{'invisible': [('has_product_kit', '=', False)]}">
<p class="oe_grey">
<record id="view_picking_form" model="ir.ui.view">
<field name="name">stock.picking.form</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form" />
<field name="arch" type="xml">
<xpath expr="/form/sheet/notebook/page[@name='extra']" position="before">
<page
string="Kit Helper"
attrs="{'invisible': [('has_product_kit', '=', False)]}"
>
<p class="oe_grey">
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>
<li>Click => Show Product Kit</li>
<li>Edit and fill in required quantity</li>
<li>Click Assign Operation Quantity</li>
<li>Check result in Operations tab</li>
</ol>
<li>Click => Show Product Kit</li>
<li>Edit and fill in required quantity</li>
<li>Click Assign Operation Quantity</li>
<li>Check result in Operations tab</li>
</ol>
</p>
<field name="has_product_kit" invisible="1"/>
<button name="show_product_kit" type="object" string="⇒ Show Product Kit" class="oe_link"
attrs="{'invisible': ['|', ('product_kit_helper_ids', '!=', []), ('state', 'in', ['done', 'cancel'])]}"/>
<button name="action_product_kit_helper" type="object" string="Assign Operation Quantity"
class="oe_highlight" attrs="{'invisible': ['|', ('product_kit_helper_ids', '=', []), ('state', 'in', ['done', 'cancel'])]}"/>
<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>
<field name="has_product_kit" invisible="1" />
<button
name="show_product_kit"
type="object"
string="⇒ Show Product Kit"
class="oe_link"
attrs="{'invisible': ['|', ('product_kit_helper_ids', '!=', []), ('state', 'in', ['done', 'cancel'])]}"
/>
<button
name="action_product_kit_helper"
type="object"
string="Assign Operation Quantity"
class="oe_highlight"
attrs="{'invisible': ['|', ('product_kit_helper_ids', '=', []), ('state', 'in', ['done', 'cancel'])]}"
/>
<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>