Как получить доступ к базе данных одного модуля из другого модуля

Я пытаюсь сделать некоторые настройки в openerp. Сейчас я просто пытаюсь сделать некоторые потоки данных из одного модуля в другой модуль, но я полностью запутался. пожалуйста, дайте хорошие инструкции, чтобы сделать такую ​​вещь.

У меня есть следующие вопросы:

  1. как получить доступ к данным в одном модуле из другого модуля.
  2. как получить данные о конкретном товаре (например, при продаже получить данные о счетах-фактурах конкретного клиента.
  3. Использование цикла, как использовать все это для нахождения общей суммы всех счетов клиента.

1 ответ

Решение

Ваши вопросы носят общий характер, поэтому трудно точно ответить на ваши вопросы, но в целом:

1- Чтобы получить записи из любой модели, вы должны сначала объединить их, как это, а затем использовать функции ORM (просматривать, читать, ...) для получения данных из нее:

obj = self.pool.get('my.model.name')
records = obj.browse(cr, uid, ids, context)

2- Чтобы получить конкретные данные, вы можете использовать поиск по домену для фильтрации данных:

#return ids where customer field equal to 1
res_ids = obj.search(cr, uid, [('customer','=', 1)], context) 

#get records corresponding to res_ids
records = obj.browse(cr, uid, res_ids, context)

3- Чтобы получить общую сумму, вы можете сделать что-то вроде этого:

def get_total_amount(self, cr, uid, customer_id, context=None):
    obj = self.pool.get('account.invoice')
    ids = obj.search(cr, uid, [('partner_id', '=', customer_id)], context)
    total = 0
    for(rec in obj.browse(cr, uid, ids, context)):
        total = total + rec.amount_total
    return total

Параметры и возврат функции могут быть изменены в зависимости от того, где вам нужно ее использовать.

Другие вопросы по тегам