gpt4 book ai didi

odoo - 如何在OpenERP中将库存清零?

转载 作者:行者123 更新时间:2023-12-02 12:06:55 25 4
gpt4 key购买 nike

我有 1500 多种产品和 2000 多个地点。我已经使用产品中的更新库存向导更新了库存,并且还处理了一些交货订单和内部移动。现在我想把库存清零。我编写了一个脚本来将库存清零。问题在于,将库存更新为零需要花费太多时间,因为每种产品可能位于 2000 个地点的任何位置。是否有 OpenERP 函数可以返回产品可用的所有位置?

最佳答案

上下文

为了保持数据模型简单 ( KISS ) 并避免缓存失效问题,OpenERP 不会保留每个位置当前产品库存的缓存。该信息是通过计算进入和离开每个库存位置的库存交易的复式记账余额来获得的。这与财务会计中使用的复式记账非常相似。

选项 1:使用 API

有多种方法可以使用 OpenERP API 以编程方式获取此信息,即查询每个 stock.locationstock.move 模型。对于初学者,您可以查看 stock.fill.inventory wizard class stock 模块的一个选项,它可以选择用零行填充实际库存。 product.product 模型还有一个 get_product_available 方法,用于返回给定产品集的此信息。

然后,您可以创建相应的对应 stock.move 条目,以在每个位置实现 0 余额,其方式与标准 stock.fill.inventory 非常相似 向导可以。

选项 2:使用直接 SQL 清除

或者,如果您只是想一次性删除整个库存及其历史记录,那么有一种快速但肮脏的方法。您可以使用数据库上的直接 SQL 查询(例如使用 psql 命令行工具或 pgadmin)来完成此操作,只需删除 stock_movestock_picking 表。

不要在具有真实数据的生产数据库上执行此操作!这将删除数据库的一部分

假设您已经安装了销售管理模块 (sale) 并使用 OpenERP 6.1,则以下操作应该可以删除库存交易的历史记录及其来源文档:

哦,首先要进行备份!

DELETE FROM stock_move;DELETE FROM mrp_production;DELETE FROM stock_picking;DELETE FROM sale_order;DELETE FROM procurement_order;

关于odoo - 如何在OpenERP中将库存清零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12478160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com