Table of Contents

新特性

Activity

项目子任务

组织架构

地址

域 widget

功能重构

Quant 份

procurement 补货

自动动作

动作绑定

去掉了stock calendar

新特性

Activity

使用 activity 可以方便的将单据加入到工作流[ 此workflow非工作流引擎, 而是指更广义的工作流程]

在单据上

为单据安排活动

安排的活动, 可以在右上角查看,

选择单据, 进入到相应的单据, 例如

非常强大工作流程管理工具

项目子任务

早期的版本支持任务委派

组织架构

HR 员工资料, 引入了组织架构图,

地址

对地址进行了扩展, 实现了 2个特性

1, 城市管理

2, 精确地址输入, 门牌号

域 widget

domain widget用来撰写 doamain条件非常方便, 目前还不能在 search box 使用, 可惜.

功能重构

Quant 份

极大的性能提升, 之前是为每一个独立唯一的库存建立一条记录, 现在改为只按 location/lot/pack/owner 的唯一性建立一条记录, 这样, 在数量上比之前的做法要少很多, 对性能的提升可想而知. 再有, quant的重新设计, 也改变了库存保留的逻辑, quant 与 stock.move 之间再无直接关系

官方重构说明原文如下

[REF] stock: new quant implementation

The main idea of this new implementation is that stock.quant is now a

cache of the quantity per location/lot/pack/owner key. We removed every

identity per record, such as `history_ids` or `inventory_value` so that

we can now avoid the linear creation of stock.quant records and are able

to work with only one record per key.

The algorithms to retrieve the quantity per key are made to work with

multiple records, this way we can implement strategies to workaround

postgres locks if concurrent transactions try to work on the same quant

row.

Quants will not be linked to moves anymore, this is in order to be able

to edit stock moves more easily/freely. We removed the links with this

commit and wipe out the `action_assign` on stock move. This will be

implemented in a followup commit, once the relations between stock.move,

stock.pack.operation and stock.quant are clarified.

This commit seems to have unecessary diff, but it was done in order to

run tests on the new implementation.

We adapt the views by removing the fields not present anymore in the

model. This include the complete removal of the inventory valuation

view, as the implementation of stock valuation will be refactored and

moved on stock.move in a following revision.

We wipe out `action_cancel`, `recalculate_move_state`,

`move_quants_by_lot_v10` and `quants_unreserve`.

* `get_removal_strategy` moved from `stock.move` to `stock.quant`

Stock quant model:

* qty renamed to quantity

* history_ids: because the quants are not moved

* inventory_value: implementation moved to stock.move

* packaging_type_id: doesn't seem to be used (in filters?)

* propagated_from_id: because we do not split forced quants

* reservation_id: because the reservation are not linked to

the stock.move.line

We remove the `lot_ids` computed field, as it depended on the link

between stock moves and quants and could be replaced by a related

to the move lines once the new relation between stock.move,

stock.pack.operation and stock.quant is clarified in a further commit.

Furthermore, the field was not displayed to the user.

picking拣货

Odoo8重构库存时, 引入了stock.pack.opertaion 与 stock.picking之间是 Many2one关系, stock.picking 与 stock.move 之间是 One2many, stock.move 和 stock.pack.operation之间是 通过stock.move.operation.link 建立逻辑关系

Odoo11重构将 stock.pack.opertaion 改为 stock.move.line, 将之与stock.picking的关系 改为虚拟关系, 与stock.move 之间则是 Many2one关系

逻辑关系改变, 如下图

官方重构说明原文如下

[REF] stock: new picking, move and pack.operation implementation

The big change is that we have now a many2many between the move and a

one2many between a move and its pack.operation (note: this model is

renamed as stock.move.line in a further commit).

Due to these changes, `action_done` had to be rewritten intierely, as it

depended and stock.pack.operation.lot and stock.move.operation.link,

that are now removed. This method was laregly inspired by the one in the

mrp module, and a further commit will make MRP uses all the core of

stock.

Due to the previous commit that refactored the stock.quant

implementation, the new concept is that the `product_qty` that will

always be in the uom of the quant (`product_qty` is a computed field in

the same style as the one of stock.move).

This commit also implements the logic that a manager is able to edit

done stock.pack.operation.

The stock.move has now a "partially_available" state (it was previously

a flag). The "split_from" field is removed now that we have a many2many

between moves (a sibling move is always a move that was splitted, or

with the backorder_id field).

The done quantity of a stock move is computed across the done quantity

of the move lines. There is an inverse method that allows user to fill

the done quantity directly on a stock move.

The reserve quantity of stock move is computed accross the

`product_qty` of the linked pack operations.

`do_unreserve` will simply unlink the associated pack operation.

Unlinking a pack operation will unreserve.

`force_assign` will mark the move as available, in order to allow the

user to create pack operations (none are created because nothing was

reserved).

`action_assign` is rewritten and splitted in two parts: if the move has

a parent (mto) or not (mts). In the mto, we'll check the available move

lines and only reserve accordingly. In the mts, we'll reserve directly

on the quants.

`action_cancel` has changd a lot: in case of a delivery, the first step

does not anymore propagate cancellation to following moves and SO. As a

result it does not propagate in the other side in case of MTO or production.

It does not delete them if we delete the related sale order for example. In

order to correct this next activities will be added in the future. Technically

action cancel on move is based on procurment rule, this commit will set

the propagate field to false on the rule if the picking_type is 'pick'

or if we are in one step delivery.

We use this commit to reimplement `action_assign` (wiped by the new

quant implentation). A move is reserved if its move lines exist, so we

introduce a one2many between stock.move and stock.pack.operation (note:

a further commit renamed this model into stock.move.line)

We use this commit to implement `action_done` (wiped by the removal of the

models making the link between stock.move and stock.pack.operations). We

can use the one2many to the pack operations.

blabla manymany au lieu de one2many

blabla mto mts

Remove get_ancestors, as orig_ids will be used instead

validation

when we are creating some packe operation with lot name, the

pack_operation are unlink and a new picking is craeted.

This is caused the function _create_lot_for_picking that unlink pack

operation having no quantity reserved instead of ones having no quantity

done.

To fix this we changed product_qty to qty_done and move the code from

action_done of picking to action_done of move

fixup! [IMP] Merge_moves functionality + many2many procurement and original moves instead of one2many

fixup! [REF] stock: basics of new model and stock.move reservation

edit reserved move line

This is the 1st commit message:

[REM] stock: stock.pack.operation.lot, stock.move.operation.link

These models will become useless once a one2many will be made between

stock.move and stock.pack.operation.

The `action_done` method on stock move has been wiped, as it depended

completely on the removed models.

Joint work with Josse Colpaert <jco@odoo.com>, amoyaux <arm@odoo.com>

and Pierre Masereel <pim@odoo.com>

procurement 补货

保留补货规则, 去掉了补货单, 扩展补货组, 直接在补货组执行补货

官方重构说明原文如下

[IMP] stock: remove procurement orders to fufill immediately

This removes the procurement.order model. To fufill their needs SO, PO, MO and

stock moves now call the _run method of the relevant procurement.group.

This mecanism is now only used for stockable product, tasks now uses their own

independent mecanism.

The _run method will check all the applicable rules and create directly the

needed model to fufill the need.

The modules stock, purchase, mrp, extends the _run method to implement their

specific strategy relevant for the rule type they define.

If an exception happens the message will be logged as a mail messsage on the

source model, for example, if a sales order cannot be fufilled the salesperson

will now see directly the reason.

OLD commit messages:

[WIP] procurement: removing procurement.order in stock, sale, purchase, sale_stock. WIP

fixup! [WIP] procurement: removing procurement.order in stock, sale, purchase, sale_stock. WIP

[IMP] Basic tests

[FIX] test not necessary anymore

[FIX] remove unnecessary print statement

[FIX] unnecessary test + why passing warehouse worked before?

[IMP] purchase: one move by purchase order line

[FIX] purchase: correct inventory tests and pass move_dest_ids among procurements

[FIX] because of bad cherry-pick merge

[IMP] make mrp pass by adding move_dest_ids there too

[IMP] tests of sale_mrp, no need for cancelpropagation then

[IMP] better to consistently use recordsets also for one2many

[FIX] purchase_requisition

[FIX] Exceptions should trigger errors, which should be caught in the tests

[FIX] sale_mrp: remove usage of procurement.order and use sale order name instead of sol

[FIX] stock_dropshipping: add sale_line_id on purchase_line_id

[FIX] Remove pdb

[IMP] add stock_dropshipping files

[IMP] stock: search carrier through sale line instead of procurement group

[IMP] add procrule test and preision needed when updating sol

[FIX] sale_order_dates + [IMP] procurement exceptions by scheduler

[FIX] No need to return task

[IMP] move file as name changes and add corrections

[FIX] Continue Run Schedulers wizard fix

[FIX] name issues of takss

[FIX] updating sale order line, but there is still a problem with the recompute

自动动作

简化了自动动作

动作绑定

从 ir.values 改动到 ir.actions.actions, 因此 ir.values 也被移除, 动作绑定只需要在 act_window 加上

<field name="binding_model_id" ref="account.model_account_account" />

<field name="binding_type">report</field>

去掉了stock calendar

一个重要的功能被去掉了, bad idea

Odoo11 重大改变的更多相关文章

  1. Lua语言中文手册 转载自网络

    Programming in LuaCopyright ® 2005, Translation Team, www.luachina.net Programming in LuaProgramming ...

  2. odoo11 model+Recordset 基础未完待续

    Model 一个模型代表了一个业务对象 本质上是一个类,包含了同django flask一样的数据字段 所有定义在模型中的方法都可以被模型本身的直接调用 现在编程范式有所改变,不应该直接访问模型,而是 ...

  3. JavaScript动画-拖拽改变元素大小

    ▓▓▓▓▓▓ 大致介绍 拖拽改变元素大小是在模拟拖拽上增加了一些功能 效果:拖拽改变元素大小 ▓▓▓▓▓▓ 拖拽改变元素大小原理 首先这个方块得知道我们想要改变这个它的大小,所以我给它设定一个范围,当 ...

  4. 【用户交互】APP没有退出前台但改变系统属性如何实时更新UI?监听系统广播,让用户交互更舒心~

    前日,一小伙伴问我一个问题,说它解决了半天都没解决这个问题,截图如下: 大概楼主理解如下: 如果在应用中有一个判断wifi的开关和一个当前音量大小的seekbar以及一个获取当前电量多少的按钮,想知道 ...

  5. javascript动画系列第四篇——拖拽改变元素大小

    × 目录 [1]原理简介 [2]范围圈定 [3]大小改变[4]代码优化 前面的话 拖拽可以让元素移动,也可以改变元素大小.本文将详细介绍拖拽改变元素大小的效果实现 原理简介 拖拽让元素移动,是改变定位 ...

  6. Android程序中--不能改变的事情

    有时,开发人员会对应用程序进行更改,当安装为以前版本的更新时出现令人惊讶的结果 - 快捷方式断开,小部件消失或甚至根本无法安装. 应用程序的某些部分在发布后是不可变的,您可以通过理解它们来避免意外. ...

  7. Android动态改变布局

    遇到这么个需求,先看图:      其实是一个软件的登录界面,初始是第一个图的样子,当软键盘弹出后变为第二个图的样子,因为登录界面有用户名.密码.登录按钮,不这样的话软键盘弹出后会遮住登录按钮(其实之 ...

  8. Grunt(页面静态引入的文件地址的改变探究)-V2.0

    相关插件的引用: grunt-usemin  对页面的操作 grunt-contrib-cssmin  压缩css load-grunt-tasks 瘦身gruntfile grunt-rev给md5 ...

  9. 解决js动态改变dom元素属性后页面及时渲染问题

    今天实现一个进度条加载过程,dom结构其实就是两个div <div class="pbar"> <div class="ui-widget-header ...

随机推荐

  1. BZOJ 1087:[SCOI2005]互不侵犯King(状压DP)

    [SCOI2005]互不侵犯King [题目描述] 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子 ...

  2. button的默认type居然是submit

    今天使用了html中的button标签,用js写了一点代码来完成onclick实践,当我点下它的时候,它不仅执行了我写的function,还把表单给提交了,一查它的button居然是sumbit. 然 ...

  3. hdu 3045 斜率优化DP

    思路:dp[i]=dp[j]+sum[i]-sum[j]-(i-j)*num[j+1]; 然后就是比较斜率. 注意的时这里j+t<=i: #include<iostream> #in ...

  4. 321. Create Maximum Number 解题方法详解

    321. Create Maximum Number 题目描述 Given two arrays of length m and n with digits 0-9 representing two ...

  5. css 文字垂直居中问题

    CSS 文字垂直居中问题 问题:在 div 中文字居中问题: 当使用 line-height:100%%; 时,文字没有居中,如下: html: <div id="header_log ...

  6. ios 上传视频或图片

    关于iOS如何实现视频和图片的上传, 我们先理清下思路 思路: #1. 如何获取图片? #2. 如何获取视频? #3. 如何把图片存到缓存路径中? #4. 如何把视频存到缓存路径中? #5. 如何上传 ...

  7. 通过Xode上传代码到GIthub---步骤

    ---恢复内容开始--- 一:打开终端,git命令进行全局配置 由于本人已经配置完成,so,直接查看配置信息 然后在本地创建一个文件夹, 然后在gitHub上创建一个代码库 在终端clone到本地创建 ...

  8. SPOJ HIGH Highways

    In some countries building highways takes a lot of time... Maybe that's because there are many possi ...

  9. POJ1671 Rhyme Schemes

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1776   Accepted: 984   Special Judge De ...

  10. 【CF1068C】Colored Rooks(构造)

    题意: 思路: #include<cstdio> #include<cstring> #include<string> #include<cmath> ...