diff --git a/purchase.py b/purchase.py index a79aa39..f3629f3 100644 --- a/purchase.py +++ b/purchase.py @@ -332,45 +332,91 @@ class PurchasesDetailedReport(Report): pool = Pool() Invoice = pool.get('account.invoice') Purchase = pool.get('purchase.purchase') + PurchaseLine = pool.get('purchase.line') + InvoiceLine = pool.get('account.invoice.line') Company = pool.get('company.company') fields_names = [ 'number', 'description', 'party.name', 'untaxed_amount', 'party.id_number', 'state', 'tax_amount', 'total_amount', - 'currency.code', 'purchases.description', 'purchases.number' + 'currency.code' + ] + + fields_names_detailed = [ + 'product.rec_name', 'product.type', 'product.categories.name', 'quantity', 'unit_price', ] fields = Purchase.fields_get(fields_names=['operation_center']) - if 'operation_center' in fields.keys(): - fields_names.append('operation_center.name') - fields_names.append('purchases.operation_center.name') if data['invoiced']: title = 'INFORME DE COMPRAS' - fields_names.append('invoice_date') - dom_ = [ - ('company', '=', data['company']), - ('invoice_date', '>=', data['start_date']), - ('invoice_date', '<=', data['end_date']), - ('type', '=', 'in'), - ('purchases', '!=', None), - ] - records = Invoice.search_read(dom_, fields_names=fields_names) - else: - fields_names.append('purchase_date') - title = 'INFORME DE ORDENES DE COMPRAS' - dom_purchases = [ - ('company', '=', data['company']), - ('purchase_date', '>=', data['start_date']), - ('purchase_date', '<=', data['end_date']), - ] - records = Purchase.search_read(dom_purchases, - fields_names=fields_names, order=[ - ('party.name', 'ASC'), - ('purchase_date', 'ASC') - ]) + if 'operation_center' in fields.keys(): + fields_names.append('purchases.operation_center.name') + fields_names_detailed.append('invoice.purchases.operation_center.name') + if data['detailed']: + fields_add = ['invoice.party.name', 'invoice.party.id_number', 'invoice.purchases.number', 'invoice.purchases.purchase_date'] + fields_names_detailed.extend(fields_add) + dom_ = [ + ('invoice.company', '=', data['company']), + ('invoice.invoice_date', '>=', data['start_date']), + ('invoice.invoice_date', '<=', data['end_date']), + ('invoice.type', '=', 'in'), + ('invoice.purchases', '!=', None), + ] + records = InvoiceLine.search_read(dom_, fields_names=fields_names_detailed) + else: + fields_add=['invoice_date', 'purchases.description', 'purchases.number'] + fields_names.extend(fields_add) + + dom_ = [ + ('company', '=', data['company']), + ('invoice_date', '>=', data['start_date']), + ('invoice_date', '<=', data['end_date']), + ('type', '=', 'in'), + ('purchases', '!=', None), + ] + records = Invoice.search_read(dom_, fields_names=fields_names) + else: + title = 'INFORME DE ORDENES DE COMPRAS' + if 'operation_center' in fields.keys(): + fields_names_detailed.append('purchase.operation_center.name') + fields_names.append('operation_center.name') + + + if data['detailed']: + fields_add = ['purchase.party.name', 'purchase.party.id_number', 'purchase.number', 'purchase.purchase_date'] + fields_names_detailed.extend(fields_add) + dom_ = [ + ('purchase.company', '=', data['company']), + ('purchase.purchase_date', '>=', data['start_date']), + ('purchase.purchase_date', '<=', data['end_date']), + ] + records = PurchaseLine.search_read(dom_, fields_names=fields_names_detailed) + else: + fields_names.append('purchase_date') + dom_purchases = [ + ('company', '=', data['company']), + ('purchase_date', '>=', data['start_date']), + ('purchase_date', '<=', data['end_date']), + ] + records = Purchase.search_read(dom_purchases, + fields_names=fields_names, order=[ + ('party.name', 'ASC'), + ('purchase_date', 'ASC') + ]) + + states = { + 'posted': 'contabilizado', + 'paid': 'pagada', + 'draft': 'borrador', + 'done': 'finalizado', + 'processing': 'procesada', + 'quotation': 'cotizacion', + } report_context['records'] = records + report_context['types'] = {'goods': 'bienes', 'service': 'servicios', 'assets': 'activos'} + report_context['states'] = states report_context['company'] = Company(data['company']) report_context['data'] = data report_context['title'] = title diff --git a/purchase.xml b/purchase.xml index d0aaedb..67e8b11 100644 --- a/purchase.xml +++ b/purchase.xml @@ -20,6 +20,8 @@ this repository contains the full copyright notices and license terms. --> purchase_co.analytic.report purchase_co/analytic_report.fods + ods + False purchase_co.analytic.start diff --git a/purchases_detailed.fods b/purchases_detailed.fods index bc85970..283f625 100644 Binary files a/purchases_detailed.fods and b/purchases_detailed.fods differ