如何使用odoo查询进行过滤、搜索、分组

2024-04-29 02:19:07 发布

您现在位置:Python中文网/ 问答频道 /正文

在库存移动中,我想按特定日期和分组按产品标识、位置目的标识和合计产品计量单位数量进行筛选。你知道吗

@api.multi
    def compute_report(self):

       record_move= self.env['stock.move'].search([('date','>=',self.start_date)]).
        .read_group([('date','>=',self.start_date)],[sum('product_uom_quantity')],['product_id','location_dest_id'])
        return {'record_move': record_move}


Tags: self目的apiid数量datemove产品
1条回答
网友
1楼 · 发布于 2024-04-29 02:19:07
domain = [('date', '=', specific_date),
          ('product_id', '=', id_of_the_product),
          ('location_dest_id', '=', id_of_location)]
record = self.env['stock.move'].search(domain)
sum=0
for rec in record:
   sum = sum + rec.product_uom_quantity
return sum

I want to groupby all product_id and location_dest_id since i have plenty articles

然后将所有产品标识和位置目标标识读入列表

p = self.env['model_of_product'].search([])


_product=[]
# collect all product id
for product in p:
    _product.append(product.id)

box = []
for _p in _product:
    domain = [  ('date', '=', specific_date),
                ('product_id', '=', _p)]
    record = self.env['stock.move'].search(domain)
    sum_of_stock = 0
    sum_of_client = 0
    # box will contain sets of [product_id, sum_of_stock, sum_of_client ]
    for rec in record.search([('name', '=', 'Clients')]):
        sum_of_client = sum_of_client + rec.product_uom_quantity
    for rec in record.search([('name', '=', 'Stock')]):
        sum_of_stock = sum_of_stock + rec.product_uom_quantity

    box.append([_p, sum_of_stock, sum_of_client])
return box

相关问题 更多 >