Small improvements in stock_valuation_xlsx

This commit is contained in:
Alexis de Lattre
2021-01-16 00:11:57 +01:00
parent cf93f340b4
commit bbb556c30c
2 changed files with 11 additions and 10 deletions

View File

@@ -35,7 +35,7 @@ class StockValuationXlsx(models.TransientModel):
u"be taken in the valuation.")
categ_ids = fields.Many2many(
'product.category', string='Product Category Filter',
help="Leave this field empty to have a stock valuation for all your products",
help="Leave this field empty to have a stock valuation for all your products.",
states={'done': [('readonly', True)]})
source = fields.Selection([
('inventory', 'Physical Inventory'),
@@ -56,7 +56,7 @@ class StockValuationXlsx(models.TransientModel):
categ_subtotal = fields.Boolean(
string='Subtotals per Categories', default=True,
states={'done': [('readonly', True)]},
help="Show a subtotal per product category")
help="Show a subtotal per product category.")
standard_price_date = fields.Selection([
('past', 'Past Date or Inventory Date'),
('present', 'Current'),

View File

@@ -35,7 +35,7 @@ class StockVariationXlsx(models.TransientModel):
"be taken in the valuation.")
categ_ids = fields.Many2many(
'product.category', string='Product Category Filter',
help="Leave this fields empty to have a stock valuation for all your products",
help="Leave this fields empty to have a stock valuation for all your products.",
states={'done': [('readonly', True)]})
start_date = fields.Datetime(
string='Start Date', required=True,
@@ -62,7 +62,7 @@ class StockVariationXlsx(models.TransientModel):
categ_subtotal = fields.Boolean(
string='Subtotals per Categories', default=True,
states={'done': [('readonly', True)]},
help="Show a subtotal per product category")
help="Show a subtotal per product category.")
@api.model
def _default_location(self):
@@ -163,13 +163,13 @@ class StockVariationXlsx(models.TransientModel):
logger.debug('End compute_product_data')
return product_id2data
def compute_data_from_stock(self, product_ids, prec_qty, start_date, end_date_type, end_date):
def compute_data_from_stock(self, product_ids, prec_qty, start_date, end_date_type, end_date, company_id):
self.ensure_one()
logger.debug('Start compute_data_from_stock past_date=%s end_date_type=%s, end_date=%s', start_date, end_date_type, end_date)
ppo = self.env['product.product']
smo = self.env['stock.move']
sqo = self.env['stock.quant']
ppo_loc = ppo.with_context(location=self.location_id.id)
ppo_loc = ppo.with_context(location=self.location_id.id, force_company=company_id)
# Inspired by odoo/addons/stock/models/product.py
# method _compute_quantities_dict()
domain_quant_loc, domain_move_in_loc, domain_move_out_loc = ppo_loc._get_domain_locations()
@@ -212,7 +212,7 @@ class StockVariationXlsx(models.TransientModel):
'out_qty': out_qty,
'end_qty': end_qty,
}
logger.debug('End compute_data_from_past_stock')
logger.debug('End compute_data_from_stock')
return product_data
def stringify_and_sort_result(
@@ -272,7 +272,8 @@ class StockVariationXlsx(models.TransientModel):
raise UserError(_("There are no products to analyse."))
product_data = self.compute_data_from_stock(
product_ids, prec_qty, self.start_date, self.end_date_type, self.end_date)
product_ids, prec_qty, self.start_date, self.end_date_type, self.end_date,
company_id)
standard_price_start_date = standard_price_end_date = False
if self.standard_price_start_date_type == 'start':
standard_price_start_date = self.start_date
@@ -448,12 +449,12 @@ class StockVariationXlsx(models.TransientModel):
'uom_name': {'width': 5, 'style': 'regular_small', 'sequence': 30, 'title': _('UoM')},
'start_qty': {'width': 8, 'style': 'regular', 'sequence': 40, 'title': _('Start Qty')},
'start_standard_price': {'width': 14, 'style': 'regular_price_currency', 'sequence': 50, 'title': _('Start Cost Price')},
'start_subtotal': {'width': 16, 'style': 'regular_currency', 'sequence': 60, 'title': _('Start Sub-total'), 'formula': True},
'start_subtotal': {'width': 16, 'style': 'regular_currency', 'sequence': 60, 'title': _('Start Value'), 'formula': True},
'in_qty': {'width': 8, 'style': 'regular', 'sequence': 70, 'title': _('In Qty')},
'out_qty': {'width': 8, 'style': 'regular', 'sequence': 80, 'title': _('Out Qty')},
'end_qty': {'width': 8, 'style': 'regular', 'sequence': 90, 'title': _('End Qty'), 'formula': True},
'end_standard_price': {'width': 14, 'style': 'regular_price_currency', 'sequence': 100, 'title': _('End Cost Price')},
'end_subtotal': {'width': 16, 'style': 'regular_currency', 'sequence': 110, 'title': _('End Sub-total'), 'formula': True},
'end_subtotal': {'width': 16, 'style': 'regular_currency', 'sequence': 110, 'title': _('End Value'), 'formula': True},
'variation': {'width': 16, 'style': 'regular_currency', 'sequence': 120, 'title': _('Variation'), 'formula': True},
'categ_subtotal': {'width': 16, 'style': 'regular_currency', 'sequence': 130, 'title': _('Categ Sub-total'), 'formula': True},
'categ_name': {'width': 40, 'style': 'regular_small', 'sequence': 140, 'title': _('Product Category')},