首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >counter方法计数不好

counter方法计数不好
EN

Stack Overflow用户
提问于 2019-11-12 08:49:25
回答 2查看 69关注 0票数 0

我有一个方法,告诉一个工人做了一次销售,但它不起作用,因为它只标记我他做了1,但实际上做了5。接下来,我留下了一个图像和用于指导我的代码。

代码语言:javascript
复制
**class Worker (models.Model):**

    _name = 'project_rc.worker'

    sales_counter = fields.Integer (string = "Sales made", compute = "get_sales_made")
    document_ids = fields.One2many (comodel_name = 'project_rc.document', 
    inverse_name = 'worker_id', string = 'Invoice')

def get_sales_made (self):

      count = self.env ['project_rc.type_movement']. search_count ([('type_movement', '=', 'sale')])

      self.counter_sale = count


**class Document (models.Model):**

    type_movement_id = fields.Many2one (comodel_name = 'project_rc.type_movement', string = "Movement type")

    worker_id = fields.Many2one (asdel_name = 'project_rc.worker', string = "Worker")

**class Type_Movement (models.Model):**

    type_movement = fields.Selection ([('purchase', 'Purchase'), ('sale', 'Sale'), ('merma', 'Merma')], string = "Movement type")

    document_ids = fields.One2many (comodel_name = 'project_rc.document', inverse_name = 'type_movimiento_id', string = 'Document')

示例图片:https://ibb.co/vs0dw5K

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-12 18:34:52

您在错误的表中搜索,应该是project_rc.document

代码语言:javascript
复制
self.env['project_rc.document'].search_count([('type_movement_id.type_movement', '=', 'sale')
                                              ('worker_id', '=', rec.id)
                                             ])

或者,您可以简单地使用filter document_ids来计算销售额。

票数 0
EN

Stack Overflow用户

发布于 2019-11-12 17:39:19

问题来自您的函数get_sales_made

代码语言:javascript
复制
class Worker(models.Model):
    _name = 'project_rc.worker'
    sales_counter = fields.Integer(string="Sales made", compute="get_sales_made")
    document_ids = fields.One2many('project_rc.document', 'worker_id', string='Invoice')

    @api.depends('document_ids')
    def get_sales_made(self):
        for rec in self:
            document = rec.document_ids.filtered(lambda r: r.type_movement_id and r.type_movement_id.type_movement == 'sale')
            rec.sales_counter = len(document)


class Document(models.Model):
    _name = 'project_rc.document'

    type_movement_id = fields.Many2one('project_rc.type_movement', string="Movement type")
    worker_id = fields.Many2one('project_rc.worker', string="Worker")


class Type_Movement(models.Model):
    _name = 'project_rc.type_movement'

    type_movement = fields.Selection([('purchase', 'Purchase'), ('sale', 'Sale'), ('merma', 'Merma')], string="Movement type")
    document_ids = fields.One2many('project_rc.document', 'type_movement_id', string='Document')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58810522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档