Gastos_anuales_Odoo_TI

This commit is contained in:
Andrés Felipe Marulanda Hernández 2025-02-18 21:00:35 +00:00
commit d0ccfb7f82

64
Gastos_anuales_Odoo_TI.py Normal file
View File

@ -0,0 +1,64 @@
import xmlrpc.client
import xlsxwriter
workbook = xlsxwriter.Workbook('query.xlsx')
worksheet = workbook.add_worksheet()
query = """
SELECT
COALESCE(hb.name, 'No Warehouse') AS warehouse_name,
COALESCE(prt.name, 'No Type') AS type_name,
COALESCE(pt.name, 'No product') AS product,
COALESCE(pol.name, 'No Name') AS line_name,
COALESCE(rp.name, 'No Partner') AS partner_name,
COALESCE(po.name, 'No Order') AS order_name,
COALESCE(pol.price_unit, 0) AS price_unit,
COALESCE(pol.product_qty, 0) AS product_qty,
COALESCE(pr.ordering_date, '2000-01-01') AS ordering_date,
COALESCE(pol.price_subtotal, 0) AS price_subtotal
FROM purchase_requisition pr
INNER JOIN purchase_requisition_type prt ON pr.type_id = prt.id
INNER JOIN purchase_order po ON po.origin = pr.name
INNER JOIN purchase_order_line pol ON pol.order_id = po.id
LEFT JOIN account_move am ON po.name = am.invoice_origin
LEFT JOIN account_move_line aml ON am.id = aml.move_id
INNER JOIN product_product pp ON pol.product_id = pp.id
INNER JOIN product_template pt ON pp.product_tmpl_id = pt.id
LEFT JOIN res_partner rp ON po.partner_id = rp.id
LEFT JOIN stock_warehouse sw ON pr.warehouse_id = sw.id
INNER JOIN res_partner rpw ON sw.partner_id = rpw.id
INNER JOIN hr_branch hb ON rpw.id = hb.partner_id
WHERE
pr.user_id in (274,901,13,1823)
and pr.ordering_date >= '2024-01-01'
and pr.ordering_date <= '2024-12-31'
and am.state = 'posted'
and am.invoice_type_code = '01'
group by
pol.name,po.name,hb.name,prt.name,pt.name,rp.name,pol.price_unit,pol.product_qty,pr.ordering_date,pol.price_subtotal
order by
pr.ordering_date;
"""
print("Query:", query)
result = models.execute_kw(db, uid, password, 'res.company', 'query_dictfetchall', [1, query])
print(len(result))
column_headers = ['Destino','Categoria','product','Descripción','Proovedor','Factura','Costo','Cantidad','Fecha','Total']
for col_num, header in enumerate(column_headers):
worksheet.write(0, col_num, header)
#
#
for i, value in enumerate(result):
for j, key in enumerate(value.keys()):
worksheet.write(i+1, j, value[key])
# print(value[key])
workbook.close()
print('Done!')