From d0ccfb7f82f6d4f50722c2fe411afe88c0c7a828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Felipe=20Marulanda=20Hern=C3=A1ndez?= Date: Tue, 18 Feb 2025 21:00:35 +0000 Subject: [PATCH] Gastos_anuales_Odoo_TI --- Gastos_anuales_Odoo_TI.py | 64 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Gastos_anuales_Odoo_TI.py diff --git a/Gastos_anuales_Odoo_TI.py b/Gastos_anuales_Odoo_TI.py new file mode 100644 index 0000000..bdbbb46 --- /dev/null +++ b/Gastos_anuales_Odoo_TI.py @@ -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!') \ No newline at end of file