Browse Source

[UPDT] Updated to query 'export_stockinfo_xls'

10.0
Ajmal JK 5 years ago
parent
commit
d7507fa903
  1. 2
      export_stockinfo_xls/__manifest__.py
  2. 8
      export_stockinfo_xls/doc/changelog.rst
  3. 71
      export_stockinfo_xls/report/current_stock_xls.py

2
export_stockinfo_xls/__manifest__.py

@ -19,7 +19,7 @@
##############################################################################
{
'name': 'Export Product Stock in Excel',
'version': '10.0.2.0.0',
'version': '10.0.2.0.1',
'summary': "Current Stock Report for all Products in each Warehouse",
'category': 'Warehouse',
'author': 'Cybrosys Techno Solutions',

8
export_stockinfo_xls/doc/changelog.rst

@ -5,8 +5,6 @@ Changelog
- Total sold & Total purchased counts corrected.
- Added name for sheet.
`9.0.2.0.0`
-----------
- Total sold & Total purchased counts corrected.
- Added name for sheet.
`10.0.2.0.1`
------------
- Updated to query

71
export_stockinfo_xls/report/current_stock_xls.py

@ -44,39 +44,54 @@ class StockReportXls(ReportXlsx):
def get_lines(self, data, warehouse):
lines = []
categ = self.get_category(data)
if categ:
stock_history = self.env['product.product'].search([('categ_id', 'in', categ)])
categ_id = self.get_category(data)
if categ_id:
categ_products = self.env['product.product'].search([('categ_id', 'in', categ_id)])
else:
stock_history = self.env['product.product'].search([])
for obj in stock_history:
categ_products = self.env['product.product'].search([])
product_ids = tuple([pro_id.id for pro_id in categ_products])
sale_query = """
SELECT sum(s_o_l.product_uom_qty) AS product_uom_qty, s_o_l.product_id FROM sale_order_line AS s_o_l
JOIN sale_order AS s_o ON s_o_l.order_id = s_o.id
WHERE s_o.state IN ('sale','done')
AND s_o.warehouse_id = %s
AND s_o_l.product_id in %s group by s_o_l.product_id"""
purchase_query = """
SELECT sum(p_o_l.product_qty) AS product_qty, p_o_l.product_id FROM purchase_order_line AS p_o_l
JOIN purchase_order AS p_o ON p_o_l.order_id = p_o.id
INNER JOIN stock_picking_type AS s_p_t ON p_o.picking_type_id = s_p_t.id
WHERE p_o.state IN ('purchase','done')
AND s_p_t.warehouse_id = %s AND p_o_l.product_id in %s group by p_o_l.product_id"""
params = warehouse, product_ids if product_ids else (0, 0)
self.env.cr.execute(sale_query, params)
sol_query_obj = self.env.cr.dictfetchall()
self.env.cr.execute(purchase_query, params)
pol_query_obj = self.env.cr.dictfetchall()
for obj in categ_products:
sale_value = 0
purchase_value = 0
product = self.env['product.product'].browse(obj.id)
sale_obj = self.env['sale.order.line'].search([('order_id.state', 'in', ('sale', 'done')),
('product_id', '=', product.id),
('order_id.warehouse_id', '=', warehouse)])
for i in sale_obj:
sale_value = sale_value + i.product_uom_qty
purchase_obj = self.env['purchase.order.line'].search([('order_id.state', 'in', ('purchase', 'done')),
('product_id', '=', product.id),
('order_id.picking_type_id', '=', warehouse)])
for i in purchase_obj:
purchase_value = purchase_value + i.product_qty
available_qty = product.with_context({'warehouse': warehouse}).virtual_available + \
product.with_context({'warehouse': warehouse}).outgoing_qty - \
product.with_context({'warehouse': warehouse}).incoming_qty
value = available_qty * product.standard_price
for sol_product in sol_query_obj:
if sol_product['product_id'] == obj.id:
sale_value = sol_product['product_uom_qty']
for pol_product in pol_query_obj:
if pol_product['product_id'] == obj.id:
purchase_value = pol_product['product_qty']
virtual_available = obj.with_context({'warehouse': warehouse}).virtual_available
outgoing_qty = obj.with_context({'warehouse': warehouse}).outgoing_qty
incoming_qty = obj.with_context({'warehouse': warehouse}).incoming_qty
available_qty = virtual_available + outgoing_qty - incoming_qty
value = available_qty * obj.standard_price
vals = {
'sku': product.default_code,
'name': product.name,
'category': product.categ_id.name,
'cost_price': product.standard_price,
'sku': obj.default_code,
'name': obj.name,
'category': obj.categ_id.name,
'cost_price': obj.standard_price,
'available': available_qty,
'virtual': product.with_context({'warehouse': warehouse}).virtual_available,
'incoming': product.with_context({'warehouse': warehouse}).incoming_qty,
'outgoing': product.with_context({'warehouse': warehouse}).outgoing_qty,
'net_on_hand': product.with_context({'warehouse': warehouse}).qty_available,
'virtual': virtual_available,
'incoming': incoming_qty,
'outgoing': outgoing_qty,
'net_on_hand': obj.with_context({'warehouse': warehouse}).qty_available,
'total_value': value,
'sale_value': sale_value,
'purchase_value': purchase_value,

Loading…
Cancel
Save