【应用浅谈】Odoo的库存计价与产品成本(三)
序言:时间是我们最宝贵的财富,珍惜手上的每个时分
Odoo的库存(Stock)模块拥有众多功能,其中库存计价是一项非常重要的功能,原生的成本方法分三种:【标准成本】,【平均成本】,【先进先出】,我们接着上一期,来看加入【仓储】业务(盘库、报废、退货、内部调拨)后,不同成本方法下,成本与库存计价的变化。
目录
1、模块准备
2、基本设置
2.1启用储存位置
2.2新建库位
3、业务操作
3.1内部调拨
3.2报废
先进先出
平均成本&标准成本
3.3盘库
先进先出
3.4退货
采购退货
销售退货
3.5总结
1、模块准备
首先确认我们已经安装了 【仓库管理会计】模块,技术名称是(stock_account)
2、基本设置
2.1启用储存位置
想要使用Odoo的内部调拨功能,我们需要在设置中 勾选【库存位置】,否则 是无法进行内部调拨的。

勾选后点击左上角保存按钮,即可 通过菜单【库存】,查看到 【内部转账】(由于存在翻译的问题,我习惯叫【内部调拨】)的快捷操作内容。

2.2新建库位
在菜单 【库存】->【配置】->【地点】(翻译问题,我习惯叫【库位】),可以进行库位的设置
我们简单设置两个库位,A1、A2,注意:请将上级位置设为WH

| 序号 | 库位名称 | 上级位置 |
| 1 | A1 | WH |
| 2 | A2 | WH |
设置库位的时候,小伙伴们应该已经发现,我们可以勾选 不同的库位类型,【报废位置】、【退回位置】、【补充位置】,这些是什么意思呢,我们先按住不表,下次详谈。
3、业务操作
首先我们先查看下当前的库存情况,【库存】-【报告】-【Inventory aging】

| 产品名称 | 成本价 | 在手数 | 总价值 |
| 现金先出 | 7,000 | 4 | 28,000 |
| 平均成本 | 4,520 | 2 | 9,040 |
| 标准成本 | 1,000 | 1 | 1,000 |
注意:当前所有库存,在默认位置【WH/库存】中。
3.1内部调拨
设置好如上的内容后,我们回到菜单【库存】->【操作】->【内部】,点击左上角
【新建】按钮,进行一次内部调拨的业务。

我们选择好【源位置】、【目的位置】,并且创建 【操作】明细,选择上 【平均计价产品】【先进先出产品】【标准成本产品】,每个各一件。

点击【标记为待办】后,订单状态为【就绪】,此时我们可以【验证】单据,完成内部调拨。

点击【验证】按钮后,我来看看系统内的数据发生什么变化了呢!
我们来到【库存】->【报告】->【计价】

| 产品名称 | 成本价 | 在手数 | 总价值 |
| 现金先出 | 7,000 | 4 | 28,000 |
| 平均成本 | 4,520 | 2 | 9,040 |
| 标准成本 | 1,000 | 1 | 1,000 |
大家一眼都看出,无事发生,原因很简单:内部移动时,库存价值不会发生变化,自然而然,在库存计价层上无事发生。
依此,我们可以得出结论:内部调拨不会影响任何计价类型产品价值。但是!当我们开启 库存会计功能后,有其他的功能关联,所以不能简单的认为 内部调拨 只影响 库存位置。具体内容 随着我们的深入,再细细道来。
3.2报废
趁热打铁,我们看看报废是否会有不同的影响呢。
来到【库存】-【操作】-【报废】,新建报废单据。

先进先出
我们选择将其在WH/A1位置的库存进行报废。

点击验证后,报废完成。
来到【库存】->【报告】->【计价】

可以看到,多了一条价值为 -7000的记录,这个7000的单价是如何计算的呢,【报废】的业务场景,从库存计价 层面上与【出库】实际是一致的,结合 【先进先出】的定义,我们不难得出结论:7000为 当前【WH/A1】出库的库存价值。
| 产品名称 | 成本价 | 在手数 | 总价值 |
| 现金先出 | 7,000 | 3 | 21,000 |
平均成本&标准成本
依此类推,我们的【平均成本】【标准成本】产品,也与【出库】一致,最后我们总结为:
| 序号 | 成本方法 | 报废单价 | 成本单价影响 |
| 1 | 标准成本 | 标准单价 | 无 |
| 2 | 平均成本 | 标准单价 | 无 |
| 3 | 先进先出 | 先进先出价 | 随出库价值变化 |
3.3盘库
当我们理解为何【报废】可类推为【出库】后,就可以把盘库业务中的【盘亏】【盘盈】比作 【出库】【入库】(再次注意:这个总结仅是在库存计价层面上,当加入财务后 情况则大不相同),那么【标准成本】【平均成本】产品,可以直接 得出结论:以均价为【盘库】单价。
先进先出
【先进先出】会是怎样呢?话不多说,我们开干!在此之前,先做个小假设:
| 选项 | 假设 | 金额 |
| A | 以当前产品均价为【盘库】单价 | 7,000 |
| B | 以最后入库产品作为【盘库】单价 | 7,000 |
| C | 以最早入库产品作为【盘库】单价 | 7,000 |
由于【先进先出】产品在库产品都为7000的单价,我们无法直观验证假设,所以采购一个价值为10000的【先进先出】产品,来更新我们的假设金额。

经过 【采购】-【入库】的操作后,我们成功获得了一条新的库存计价,同时 【先进先出】产品成本也 发生了变化。
| 序号 | 数量 | 单价 | 总额 |
| 1 | 3 | 7,000 | 21,000 |
| 2 | 1 | 10,000 | 10,000 |
| 合计 | 4 | 7,750 | 31,000 |
此刻我们的假设金额也发生变化,盘库后 可以直观的进行对比。
| 选项 | 假设 | 金额 |
| A | 以当前产品均价为【盘库】单价 | 7,750 |
| B | 以最后入库产品作为【盘库】单价 | 1,0000 |
| C | 以最早入库产品作为【盘库】单价 | 7,000 |
做了这么多铺垫,我们的竞猜结果即将揭晓:
来到【操作】-【实物库存】,盘盈2件 【先进先出】产品!

点击【应用全部】按钮后,我们查看库存计价,答案是:A,以当前产品均价作为【盘库】单价。

最后我们可以将结论总结为:
| 序号 | 成本方法 | 盘点单价 | 成本单价影响 |
| 1 | 标准成本 | 标准单价 | 无 |
| 2 | 平均成本 | 标准单价 | 无 |
| 3 | 先进先出 | 标准单价 | 无 |
3.4退货
终于来到退货环节,首先 将【标准成本】【平均成本】移出群聊,他们都是按平均价值来的,重点关注在【先进先出】产品上。
采购退货
我们继续来玩假设,拿刚刚入库的10,000单价开刀
| 选项 | 假设 | 金额 |
| A | 以当前产品均价为【退货】单价 | 7,750 |
| B | 以入库产品价作为【退货】单价 | 10,000 |
找到入库单后,点击退回,确认后 会得到一张【 出库单】

验证它,我们看看库存情况。

出人意料,它竟然 不在我们假设的选项上:7000,来自于 【先进先出】价格!匪夷所思,不可思议,难以置信!

销售退货
玩过了采购退货,我们来试试销售退货

我们继续玩假设游戏:
| 序号 | 假设 | 价格 |
| A | 以当前产品均价为【退货】单价 | 7,900 |
| B | 以当时销售产品价作为【退货】单价 | 6,000 |
| C | 以当时出库产品价作为【退货】单价 | 5,633.33 |
结果是:C、以当时出库产品价作为【退货】单价 
此刻,大家应该都凌乱了,明明做退回的时候,生成的 是 【出库】、【入库】单据,却不是按标准的 出库、入库 来计价。
那么 被请出群聊的 【标准价格】、【平均价格】,也该被请回来重新查看了,操作过程我们不赘述了,直接查看结果:
【销售 退货】 
均以当前平均价格退回入库
【采购退货】
均以当前平均价格退回入库
最后我们可以将结论总结为:
| 序号 | 成本方法 | 销售退回(入库) | 采购退回(出库) |
| 1 | 标准成本 | 平均单价 | 平均单价 |
| 2 | 平均成本 | 平均单价 | 平均单价 |
| 3 | 先进先出 | 当时出库库存单价 | 先进先出单价 |
3.5总结
1)【内部调拨】不参与 库存计价 与成本
2)【标准成本】与【平均成本】,以标准价值(平均单价)作为计价值,不影响成本。
| 报废 | 盘库 | 退货 | ||||
| 库存计价 | 成本影响 | 库存计价 | 成本影响 | 库存计价 | 成本影响 | |
| 标准成本 | 标准价格 | 无 | 标准价格 | 无 | 标准价格 | 无 |
| 平均成本 | 标准价格 | 无 | 标准价格 | 无 | 标准价格 | 无 |
3)【先进先出】细则
| 库存计价 | 成本影响 | |
| 报废 | 标准价格 | 不影响 |
| 盘库 | 标准价格 | 不影响 |
| 采购退货 | 先进先出价格 | 平均当前所有库存价值 |
| 销售退货 | 当时出库库存单价 | 平均当前所有库存价值 |
至此:我们对基础的库存计价已经非常了解了,下一期我们将讲一讲 加入【财务】功能后,【库存】与【财务凭证】间的关系。
qq:543127346
相关文章:
【应用浅谈】Odoo的库存计价与产品成本(三)
序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo的库存(Stock)模块拥有众多功能,其中库存计价是一项非常重要的功能,原生的成本方法分三种:【标准成本】,【平均成本】,【先进先出】&#…...
数据结构之ArrayList与顺序表(下)
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 ArrayList的具体使用 118. 杨辉三角 扑克洗牌算法 接上篇:数据结构之ArrayLis…...
openi启智社区 aarch64 npu环境安装飞桨paddlepaddle和PaddleNLP(失败)
以前在启智社区都是编译安装飞桨,这回看到飞桨提供了npu安装包,兴冲冲的以为安装很简单。 之所以安装飞桨,是因为想在启智社区的启智大脑调试环境使用最新的PaddleNLP,结果报错:No module named paddle.nn.layer.laye…...
【漏洞复现】多客圈子论坛系统 httpGet 任意文件读取漏洞
0x01 产品简介 多客圈子论坛系统是一种面向特定人群或特定话题的社交网络,它提供了用户之间交流、分享、讨论的平台。在这个系统中,用户可以创建、加入不同的圈子,圈子可以是基于兴趣、地域、职业等不同主题的。用户可以在圈子中发帖、评论、…...
46-1 护网溯源 - 钓鱼邮件溯源
一、客户提供钓鱼邮件样本 二、行为分析 三、样本分析 对钓鱼邮件中的木马程序1111.exe文件进行了分析,提交了360安全大脑沙箱云和微步在线云沙箱。 360安全大脑沙箱云显示,该1111.exe文件存在危险,因此在解压时需要谨慎操作,以免触发木马程序。 建议使用360压缩软件进行…...
鸿蒙低代码开发一个高频问题
在版本是DevEco Studio 3.1.1 Release,SDK是3.1.0(API9)。 创建和设计的visual文件经常会遇到无法渲染的情况,或者自定义组件在Custom列表中突然不见了的情况。 有以下报错信息的: JSON schema validation error: data/visualModel/value/…...
关于使用南墙waf防护halo网站主页请求404报错的解决方案
文章目录 环境说明问题展示原因探究解决方法 环境说明 在1panel应用商店,部署南墙waf(docker版)halo(2.16.1社区版)注意部署过程中注意uuwaf必须勾选允许外部访问,halo可以不勾选[这里为了证明确实是南墙waf的原因,选择勾选] 问题展示 使…...
Elasticsearch 认证模拟题 - 13
一、题目 集群中有索引 task3,用 oa、OA、Oa、oA 查询结构是 4 条,使用 dingding 的查询结果是 1 条。通过 reindex 索引 task3 为 task3_new,能够使 task3_new 满足以下查询条件。 使用 oa、OA、Oa、oA、0A、dingding 查询都能够返回 6 条…...
Day25 首页待办事项及备忘录添加功能
本章节,完成首页待办事项及备忘录添加功能 一.修改待办事项和备忘录逻辑处理类,即AddMemoViewModel和AddTodoViewModel 在 AddMemoViewModel逻辑处理类中,为了支持与其关联的View视图文件的数据绑定,需要定义一个与视图文件相匹配的实体类 Model。这个Model将包含 View中…...
SpringBoot——全局异常处理
目录 异常 项目总结 新建一个SpringBoot项目 pom.xml Result(通用的响应结果类) MyBusinessException自定义异常类 GlobalExceptionHandler全局异常处理类 ExceptionController控制器 SpringbootExceptionApplication启动类 参考文章:…...
SpringBoot+Vue教师工作量管理系统(前后端分离)
技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 教师管理员 功能截图...
华为OD技术面试-最长回文串-2024手撕代码真题
题目:最长回文串 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的 回文串 的长度。 在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。 示例 1: 输入:s = "abccccdd" 输出:7 解释: 我们可以构造的最…...
Python实现连连看8
4 游戏开始 连连看游戏实际上主要完成的是对玩家鼠标点击事件的处理,也就是对鼠标点击事件的响应。 4.1 添加鼠标点击事件响应 在“1.3.4 在窗口上铺设画布”中提到的将画布pack()到窗口代码之前,写入如下代码,其功能是为鼠标点击事件添加响应。 canvas.bind(<Button…...
[Cloud Networking] Layer Protocol (continue)
文章目录 1. STP / RSTP / MSTP Protocol1.1 STP的作用1.2 STP 生成树算法的三个步骤1.3 STP缺点 2. ARP Protocol3. DHCP Protocol3.1 DHCP 三种分配方式3.2 DHCP 攻击 4. IPSEC / MACSEC 1. STP / RSTP / MSTP Protocol 1.1 STP的作用 消除二层环路:通过阻断冗余…...
人工智能在交通与物流领域的普及及应用
文章目录 🐋引言 🐋自动驾驶 🦈自动驾驶汽车 🐡应用现状 🐡技术实现 🐡实现过程及代码 🐋智能交通管理 🦈应用现状 🦈技术实现 🦈实现过程及代码 &…...
JVM学习-详解类加载器(二)
双亲委派机制 双亲委派优势 避免类的重复加载,确保一个类的全局唯一性 Java类随着它的类加载器一起具备了一种带有优先级的层次关系,通过这种层次关系可以避免类的重复加载,当父类已经加载了该类,就没有必要子ClassLoader再加载…...
数字校园的优势有哪些
数字化时代下,数字校园已成为教育领域一股显著趋势。数字校园旨在借助信息技术工具对传统校园进行改造,提供全新的教学、管理和服务方式。那么,数字校园究竟具备何种优势?现从三个方面为您详细介绍。 首先,数字校园为教…...
DexCap——斯坦福李飞飞团队泡茶机器人:更好数据收集系统的原理解析、源码剖析
前言 2023年7月,我司组建大模型项目开发团队,从最开始的论文审稿,演变成目前的两大赋能方向 大模型应用方面,以微调和RAG为代表 除了论文审稿微调之外,目前我司内部正在逐一开发论文翻译、论文对话、论文idea提炼、论…...
【Mtk Camera开发学习】01 MTK 平台Camera BringUp
本专栏内容针对 “知识星球”成员免费,欢迎关注公众号:小驰行动派,加入知识星球。 #MTK Camera开发学习系列 #小驰私房菜 这篇文章主要介绍MTK 平台,Camera BringUp会涉及到修改的模块。 MTK不同的平台系列,具体修改…...
新能源汽车内卷真相
导语:2025年,我国新能源汽车总产能预计可达3661万辆,如此产能如何消化? 文 | 胡安 “这样卷下去不是办法,企业目的是什么?是盈利,为国家作贡献,为社会作贡献。我们应该有大格局&…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...
字符串哈希+KMP
P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...
PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
基于小程序老人监护管理系统源码数据库文档
摘 要 近年来,随着我国人口老龄化问题日益严重,独居和居住养老机构的的老年人数量越来越多。而随着老年人数量的逐步增长,随之而来的是日益突出的老年人问题,尤其是老年人的健康问题,尤其是老年人产生健康问题后&…...
