function configuration_reporting (instance, widget) { "use strict"; var widgets = widget; widget.ReportingWidget = instance.Widget.extend({ template: 'EiruReporting', events: { 'click .report_action > button': 'clickOnReport', }, reports: [ { title: 'Resumen de ingresos', description: 'Permite visualizar de forma global los ingresos obtenidos por la empresa.', action: 'ReportResumenIngreso' }, { title: 'Resumen de egresos', description: 'Permite visualizar de forma global los egresos realizado por la empresa.', action: 'ReportResumenEngreso' }, { title: 'Histórico de Pagos', description: 'Permite visualizar de todos los pagos.', action: 'ReportVoucher' }, { title: 'Histórico de Facturas', description: 'Permite visualizar las facturas', action: 'ReportInvoiceBalance' }, { title: 'Histórico de Movimiento de Banco', description: 'Permite visualizar un histórico de Movimiento de Banco.', action: 'ReportBankMovements' }, // { // title: 'LIstado Generales por Banco', // description: 'Permite visualizar un Generales por Banco.', // action: 'ReportBankGral' // }, { title: 'Histórico de Ventas', description: 'Permite realizar un listado de las cabeceras de facturas de venta.', action: 'ReportSaleCab' }, { title: 'Análisis de Ventas', description: 'Permite realizar un analisis de las facturas de venta.', action: 'ReportSaleInvoiceAnalysis' }, { title: 'Análisis de Devoluciones de Cliente', description: 'Permite visualizar un listado de devoluciones de clientes.', action: 'ReportRefundInvoiceCustomer' }, { title: 'Análisis de Contratos del Cliente', description: 'Permite visualizar un listado de contratos de clientes.', action: 'ReportContratoCliente' }, { title: 'Ranking Productos más Vendidos', description: 'Permite realizar un analisis de los Productos más Vendidos Sales Order.', action: 'RankingSalesOrdersProductcy' }, { title: 'Ranking de Clientes (Ventas)', description: 'Permite visualizar el ranking de clientes.', action: 'ReportRankingSalesOrdersCustomer' }, { title: 'Histórico de Ventas', description: 'Permite realizar un listado de la cabecera de ventas.', action: 'ReportPos' }, { title: 'Analisis de ventas', description: 'Permite visualizar de forma global los ingresos obtenidos por la empresa.', action: 'ReportPosOrders' }, { title: 'Histórico de Ventas Odonto', description: 'Permite realizar un listado de la cabecera de ventas.', action: 'ReportMedical' }, { title: 'Histórico de Ventas generales', description: 'Permite realizar un listado de las cabeceras de facturas de venta.', action: 'ReportSalePosCab' }, { title: 'Analisis de ventas generales', description: 'Permite visualizar de forma global los ingresos obtenidos por la empresa. Tanto ventas normales y punto de ventas', action: 'ReportVentasPosOrders' }, { title: 'Analisis de ventas por porcentaje', description: 'Permite visualizar los porcentajes de utilidad de acuerdo a la diferencia de precio de venta y precio vendido', action: 'ReportInvoiceDifventa' }, { title: 'Ranking Productos más Vendidos', description: 'Permite realizar un analisis de los Productos más Vendidos.', action: 'RankingPosOrdersProductcy' }, { title: 'Ranking de Clientes', description: 'Permite visualizar el ranking de clientes.', action: 'ReportRankingPosOrdersCustomer' }, { title: 'Análisis de Compras y Gastos', description: 'Permite realizar un analisis de las facturas de compra y de gastos', action: 'ReportPurchaseInvoiceAnalysis' }, { title: 'Análisis de Devoluciones de Proveedores', description: 'Permite visualizar un listado de devoluciones de proveedores.', action: 'ReportRefundInvoiceSupplier' }, { title: 'Análisis de Contratos de Proveedores', description: 'Permite visualizar un listado de contratos de proveedores.', action: 'ReportContratoProveedor' }, { title: 'Ranking Productos más Comprados', description: 'Permite realizar un analisis de los Productos más Comprados.', action: 'RankingPurchasesOrdersProductcy' }, { title: 'Ranking de Proveedores (Compras)', description: 'Permite visualizar el ranking de proveedores.', action: 'ReportRankingPurchasesOrdersSupplier' }, { title: 'Análisis de Stock', description: 'Permite realizar un analisis de los productos disponibles en el stock.', action: 'ReportStock' }, { title: 'Análisis de Stock Original', description: 'Permite realizar un analisis de los productos disponibles en el stock.', action: 'ReportStockOriginal' }, // { // title: 'Análisis de Stock por Ubicación', // description: 'Permite realizar un analisis de los productos disponibles en el stock por Ubicación.', // action: 'ReportStockLocation' // }, { title: 'Análisis de Movimientos de Stock', description: 'Permite realizar un analisis de los productos disponibles en el stock.', action: 'ReportStockMove' }, { title: 'Histórico de Tareas CRM', description: 'Permite visualizar las Tareas en CRM', action: 'ReportCrmTask' }, { title: 'Histórico CRM', description: 'Permite visualizar un histórico de CRM realizado por la empresa.', action: 'ReportCrm' }, { title: 'Histórico Mensaje CRM', description: 'Permite visualizar un histórico de mensaje realizado por la empresa.', action: 'ReportMensajeCrm' }, { title: 'Listado de Cuentas a Cobrar', description: 'Permite visualizar un listado de cuentas a cobrar tanto vencidos como no vencidos.', action: 'ReportingAccountPending' }, { title: 'Listado de Cuentas a Pagar', description: 'Permite visualizar un listado de cuentas a pagar.', action: 'ReportingAccountPendingaPagar' }, { title: 'Informe de Trabajos', description: 'Permite visualizar los trabajos facturados y no facturados.', action: 'ReportWorks' }, { title: 'Listado de Producción', description: 'Permite visualizar un listado de producción.', action: 'ReportMrp' }, { title: 'Ranking Productos más Fabricados', description: 'Permite realizar un analisis de los Productos más Fabricados.', action: 'RankingMrpOrdersProductcy' }, { title: 'Análisis de Pack de Productos', description: 'Permite visualizar el análisis de pack de productos.', action: 'ReportProductPack' }, { title: 'Análisis de Utilidad de Pack de Producto', description: 'Análisis de Utilidad de Pack de Producto también sobre insumos.', action: 'ReportProductPackUtilidad' }, { title: 'Listado de Proyectos', description: 'Permite visualizar un listado de proyectos.', action: 'ReportProject' } ], start: function () { var self = this; self.fetchInitial(); }, clickOnReport: function (e) { var templateName = this.$el.find(e.target).val(); this.renderReport(templateName); }, renderReport: function (templateName) { var Widget = this.getWidgetFromTemplate(templateName); var WidgetInstance = new Widget(this); var container = this.$el.find('.oe_form_sheet.oe_form_sheet_width'); container.find('.report_view').hide({ effect: 'fade', duration: 200, complete: function () { WidgetInstance.appendTo(container); } }); }, getWidgetFromTemplate: function (templateName) { var widgetName = `${templateName}Widget`; return _.pick(widget, widgetName)[widgetName]; }, fetchInitial:function() { var self = this; self.fetchResUser().then(function (ResUser) { return ResUser; }).then(function (ResUser) { self.ResUser = ResUser; return self.InsertUser(); }); }, fetchResUser: function() { var self = this; var defer = $.Deferred(); var fields = ['id','name']; var domain = [['id','=',self.session.uid]]; var ResUser = new instance.web.Model('res.users'); ResUser.query(fields).filter(domain).all().then(function (results) { defer.resolve(results); }); return defer; }, InsertUser: function(id) { var self = this; var user = self.ResUser[0].name; self.$el.find('.user-content').find('p').text("Hola " + user + " ...!"); }, }); }