Связанные с запасом поля определяются в продуктах (функциональном поле) и непосредственно от продукта, вы можете получить запас для всех складов/мест или для индивидуального местоположения/склада.
Пример:
Для всех складов/местоположения
product = self.env['product.product'].browse(PRODUCT_ID)
available_qty = product.qty_available
Для индивидуального местоположения/склада (WAREHOUSE_ID/LOCATION_ID должен быть заменен фактическим идентификатором)
product = self.env['product.product'].browse(PRODUCT_ID)
available_qty = product.with_context({'warehouse' : WAREHOUSE_ID}).qty_available
available_qty = product.with_context({'location' : LOCATION_ID}).qty_available
Другие поля также есть.
Forecasted Stock => virtual_available
Incoming Stock => incoming
Outgoing Stock => outgoing
Вы можете получить доступ ко всем этим полям аналогичным образом. Если вы не передадите какой-либо склад/место в контексте, он будет возвращать запас всех складов вместе.
Для получения более подробной информации вы можете обратиться к product.py в складе модуль.
Решение:
@api.onchange('product_id','source_location')
def product_qty_location_check(self):
if self.product_id and self.source_location:
product = self.product_id
available_qty = product.with_context({'location' : self.source_location.id}).qty_available
print available_qty
Я написал следующий кусок кода, но он дает ошибку. –
'@ api.onchange (' product_id ',' source_location ') def product_qty_location_check (self): if self.product_id и self.source_location: product = self.env [' product.product ']. product_id.id) available_qty = product.with_context (склад = self.source_location.id) .qty_available печати available_qty» ошибка ** MissingError Одним из документов, которые вы пытаетесь получить доступ, был удален, пожалуйста, попробуйте снова после обновления. ** –
** Спасибо. ** Я должен был послать словарь. –