Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 相关自定义模块字段-产品-OpenErp_Python_Orm_Module_Openerp - Fatal编程技术网

Python 相关自定义模块字段-产品-OpenErp

Python 相关自定义模块字段-产品-OpenErp,python,orm,module,openerp,Python,Orm,Module,Openerp,我需要将自定义模块中的字段与要放置在OpenErp的采购订单表单中的按钮关联起来 确认产品领料后,此按钮将“卸载”我的自定义模块“数量”字段中填写的该产品的数量 例如: class certificados_line(osv.osv): _name = 'certificados.line' _description = "Items del Certificado" def multi_a_b(self, cr, uid, ids, name, arg, cont

我需要将自定义模块中的字段与要放置在OpenErp的
采购订单
表单中的按钮关联起来

确认产品领料后,此按钮将“卸载”我的自定义模块“数量”字段中填写的该产品的数量

例如:

class certificados_line(osv.osv):

    _name = 'certificados.line'
    _description = "Items del Certificado"


    def multi_a_b(self, cr, uid, ids, name, arg, context=None):
        res = {}
        for record in self.browse(cr, uid, ids,context):
            res[record.id] = record.Cantidad * record.Precio_Unitario_Declarado
        return res

    _columns = {
        'codigo_n' : fields.related(
                'product_id',
                'codigo_n',
                type='char',
                size=64,
                string='Codigo Arancelario',
                store=True,
                readonly=True,
                ),
        'product_id' : fields.many2one(
                'product.product',
                'Material',
                ),
        'Descripcion_Arancelaria' : fields.many2one(
                'product.category',
                'Descripcion Arancelaria',
                change_default=True,
                domain="[('type','=','normal')]",
                ), 
        'tec_esp': fields.related(
                'product_id',
                'tec_esp',
                type='char',
                size=64,
                string='Especificaciones tecnicas',
                store=True,
                readonly=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.function(
                multi_a_b,
                type='integer',
                string='Valor En Divisas',
                ),
        'requisicion_id' : fields.many2one(
                'certificados.certificados',
                'Certificados de No Produccion',
                ondelete='cascade',
                ),
        'Cantidad_Consumida' : fields.related(
                'product_id',
                'outgoing_qty',
                type='float',
                string='Cantidad Consumida',
                store=True,
                readonly=True,
                ),
        'Cantidad_Disponible' : fields.related(
                'product_id',
                'qty_available',
                type='float',
                string='Cantidad Disponible',
                store=True,
                readonly=True,
                ),
    }   
certificados_line()
这里,
Cantidad
应该是与采购订单自动关联的字段,我的意思是,在OpenErp中的“报价请求”和“采购订单”中,当确认拣货时,
产品
仓库中的库存会自动更新,“
产品数量

我需要执行相同的操作,但不是针对OpenErp中的库存或仓库,而是针对我的自定义模块中的
Cantidad
字段,因为有些项目可以从仓库购买和管理,有些项目可以从该模块管理

我已经看到了
采购订单
表单中的按钮,我可以为此任务创建一个新的按钮,但我的问题是,如何将此字段与自定义模块中的
采购订单
关联,同时保持与库存的传统关系

为了进一步理解,它将不是一个自动更新,只是一个独立的更新,这取决于何时单击或不单击此按钮

我希望我已经解释清楚了


提前谢谢。

我不确定我是否清楚地理解了您的问题,但让我尝试向您介绍一种通用方法

首先,您需要了解OpenERP中的库存位置和产品库存的概念

库存OpenERP的基本构建块是产品交易/产品移动。如果您将产品AAA从位置XXX移动到位置YYY,您将在YYY增加AAA的库存,AAA的库存将在XXX减少。当您购买产品时,产品将从“供应商位置”移动到您的“库存位置”。当你卖东西的时候,你正在把产品从你的“库存地点”转移到“客户地点”。因此,特定位置的产品库存将是移入和移出产品的汇总

当您想要更新openERP中的产品库存时,您需要做的是将库存从“库存位置”移动到其他虚拟位置(如客户位置、库存损失、生产位置等)


让我从这个角度了解您的想法,我将更新答案,以便为您提供解决方案。

确切地说,我的意思是,当我从模块中移动产品AAA时,假设我在模块中使用产品AAA,假设我有6个产品单元,这6个单元将作为库存位置XXX,当我在openerp的采购应用程序中创建采购订单时,当此采购订单得到确认(接收产品)时,它将有另一个按钮,如果您单击它,它将“减少”您从XXX位置购买的此产品。。。比如说,我为这个字段(XXX库存)上已经有的6台产品AAA制定了一个采购订单,当采购订单确认后,openerp将从“供应商位置”减少它并增加“库存位置”,我需要当点击这个按钮时,它也从这个模块字段减少,它将作为一个额外的字段“供应商位置”,不知道我是否在解释自己:(这有点像库存移动,但在这种情况下,它会增加“库存位置”,因为它通常会这样做,但它也会减少“我的位置”,请,如果你有进一步的步骤,我很高兴知道,所以我可以给你奖金