【问题标题】:Relate Product quantity to Stock - Custom module - OpenErp将产品数量与库存相关联 - 自定义模块 - OpenErp
【发布时间】:2013-04-12 04:11:44
【问题描述】:

我有一个使用物品、产品、货币、计量单位等的模块。

我需要当我在 openerp 的数据库中提出申请或购买产品时,它会自动将数量从系统的数据库中删除。

我在“product.product”中看到有一些函数/字段被调用

_product_qty_available
_product_virtual_available
_product_outgoing_qty
_product_incoming_qty

我应该继承这些功能来管理我模块中的产品,并像申请或采购订单一样在系统中更新它们吗?

我的module.py的代码

import time
from datetime import datetime
from osv import osv, fields
from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT, DATETIME_FORMATS_MAP
import openerp.addons.decimal_precision as dp
from openerp.tools.translate import _

class certificados(osv.osv):

_name = 'certificados.certificados'
_description="Certificados de No Produccion"

_columns = {
            'Registro_Numero' : fields.integer('Registro Numero'),
            'Fecha_de_Emision': fields.date('Fecha de Emision', required=True, select=True),
            'Fecha_de_Solicitud': fields.date('Fecha de Solicitud', required=True, select=True),
            'Fecha_del_Documento': fields.date('Fecha del Documento', required=True, select=True),
            'Vigencia' : fields.integer('Vigencia'), 'cert_ids' : fields.one2many('certificados.line','requisicion_id','Items del Certificado'),
            'descripcion' : fields.text('Descripcion'),
            'notas' : fields.text('Notas'),
            }


class certificados_line(osv.osv):

_name = "certificados.line"
_description="Certificados No Produccion"
_inherit = ['mail.thread', 'ir.needaction_mixin']

_columns = {
    'Item' : fields.integer('Item'),
    'Codigo_Arancelario' : fields.integer('Codigo Arancelario'),
    'product_id' : fields.many2one('product.product', 'Material'),
    'Descripcion_Arancelaria' : fields.char('Descripcion Arancelaria', size=42, required = True, translate = True), 
    'Especificaciones_Tecnicas' : fields.char('Especificaciones Tecnicas', size=60, required = True, translate = True), 
    'Cantidad' : fields.float('Cantidad'), 'Unidad_de_Medida': fields.many2one('product.uom', 'Unidad de Medida'),
    'Precio_Unitario_Declarado' : fields.float('Precio Unitario Declarado'), 'Moneda' : fields.many2one('res.currency', 'Moneda'),
    'Valor_En_Divisas' : fields.float('Valor En Divisas'),
    'requisicion_id' : fields.many2one('certificados.certificados', 'Certificados de No Produccion', ondelete='cascade'),
    'Cantidad_Consumida' : fields.float('Cantidad Consumida'), 'Cantidad_Disponible' : fields.float('Cantidad Disponible'),

}
certificados_line()

我希望我自己解释一下,提前谢谢。

【问题讨论】:

  • 能否提供更多信息?
  • 你可以看到这个模块加载一个'product.product'对象,因为它是certificados.line中的product_id,所以我需要一种方法来自动从这个自定义模块更新库存中的产品数据库,就像我购买产品一样,根据我在此模块中的数据,它会自动更新 openerp 中的库存,但我不确定我必须继承什么才能实现这一点。
  • 当您在模块中继承 product_id 时,当您要出售时,它会自动减少库存并购买然后增加库存,当您安装库存模块时,它就会开始工作
  • 是的,好吧,product_id 继承了产品本身,现在,数量是一个整数类型字段,它会做我想要的吗?或者我应该使用来自 product.product 的另一个继承对象的“数量”?
  • 'quantity' 是浮动的,抱歉,问题仍然存在

标签: python module openerp product


【解决方案1】:

如果你想在你的模块中使用 product_id,你只需通过 many2one 继承它。该产品的库存将由 OpenERP 自动维护。如果您出售它,该产品的库存将减少,如果您购买它,该产品的库存将增加。您还可以根据需要设置该产品的初始库存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多