configuration_reporting.js 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. function configuration_reporting (instance, widget) {
  2. "use strict";
  3. var widgets = widget;
  4. widget.ReportingWidget = instance.Widget.extend({
  5. template: 'EiruReporting',
  6. events: {
  7. 'click .report_action > button': 'clickOnReport',
  8. },
  9. reports: [
  10. {
  11. title: 'Resumen de ingresos',
  12. description: 'Permite visualizar de forma global los ingresos obtenidos por la empresa.',
  13. action: 'ReportResumenIngreso'
  14. },
  15. {
  16. title: 'Resumen de egresos',
  17. description: 'Permite visualizar de forma global los egresos realizado por la empresa.',
  18. action: 'ReportResumenEngreso'
  19. },
  20. {
  21. title: 'Histórico de Pagos',
  22. description: 'Permite visualizar de todos los pagos.',
  23. action: 'ReportVoucher'
  24. },
  25. {
  26. title: 'Histórico de Facturas',
  27. description: 'Permite visualizar las facturas',
  28. action: 'ReportInvoiceBalance'
  29. },
  30. {
  31. title: 'Histórico de Movimiento de Banco',
  32. description: 'Permite visualizar un histórico de Movimiento de Banco.',
  33. action: 'ReportBankMovements'
  34. },
  35. // {
  36. // title: 'LIstado Generales por Banco',
  37. // description: 'Permite visualizar un Generales por Banco.',
  38. // action: 'ReportBankGral'
  39. // },
  40. {
  41. title: 'Histórico de Ventas',
  42. description: 'Permite realizar un listado de las cabeceras de facturas de venta.',
  43. action: 'ReportSaleCab'
  44. },
  45. {
  46. title: 'Análisis de Ventas',
  47. description: 'Permite realizar un analisis de las facturas de venta.',
  48. action: 'ReportSaleInvoiceAnalysis'
  49. },
  50. {
  51. title: 'Ranking Productos más Vendidos',
  52. description: 'Permite realizar un analisis de los Productos más Vendidos Sales Order.',
  53. action: 'RankingSalesOrdersProductcy'
  54. },
  55. {
  56. title: 'Ranking de Clientes (Ventas)',
  57. description: 'Permite visualizar el ranking de clientes.',
  58. action: 'ReportRankingSalesOrdersCustomer'
  59. },
  60. {
  61. title: 'Histórico de Ventas',
  62. description: 'Permite realizar un listado de la cabecera de ventas.',
  63. action: 'ReportPos'
  64. },
  65. {
  66. title: 'Analisis de ventas',
  67. description: 'Permite visualizar de forma global los ingresos obtenidos por la empresa.',
  68. action: 'ReportPosOrders'
  69. },
  70. {
  71. title: 'Histórico de Ventas generales',
  72. description: 'Permite realizar un listado de las cabeceras de facturas de venta.',
  73. action: 'ReportSalePosCab'
  74. },
  75. {
  76. title: 'Analisis de ventas generales',
  77. description: 'Permite visualizar de forma global los ingresos obtenidos por la empresa. Tanto ventas normales y punto de ventas',
  78. action: 'ReportVentasPosOrders'
  79. },
  80. {
  81. title: 'Ranking Productos más Vendidos',
  82. description: 'Permite realizar un analisis de los Productos más Vendidos.',
  83. action: 'RankingPosOrdersProductcy'
  84. },
  85. {
  86. title: 'Ranking de Clientes',
  87. description: 'Permite visualizar el ranking de clientes.',
  88. action: 'ReportRankingPosOrdersCustomer'
  89. },
  90. {
  91. title: 'Análisis de Compras y Gastos',
  92. description: 'Permite realizar un analisis de las facturas de compra y de gastos',
  93. action: 'ReportPurchaseInvoiceAnalysis'
  94. },
  95. {
  96. title: 'Ranking Productos más Comprados',
  97. description: 'Permite realizar un analisis de los Productos más Comprados.',
  98. action: 'RankingPurchasesOrdersProductcy'
  99. },
  100. {
  101. title: 'Ranking de Proveedores (Compras)',
  102. description: 'Permite visualizar el ranking de proveedores.',
  103. action: 'ReportRankingPurchasesOrdersSupplier'
  104. },
  105. {
  106. title: 'Análisis de Stock',
  107. description: 'Permite realizar un analisis de los productos disponibles en el stock.',
  108. action: 'ReportStock'
  109. },
  110. {
  111. title: 'Análisis de Stock Original',
  112. description: 'Permite realizar un analisis de los productos disponibles en el stock.',
  113. action: 'ReportStockOriginal'
  114. },
  115. // {
  116. // title: 'Análisis de Stock por Ubicación',
  117. // description: 'Permite realizar un analisis de los productos disponibles en el stock por Ubicación.',
  118. // action: 'ReportStockLocation'
  119. // },
  120. {
  121. title: 'Análisis de Movimientos de Stock',
  122. description: 'Permite realizar un analisis de los productos disponibles en el stock.',
  123. action: 'ReportStockMove'
  124. },
  125. {
  126. title: 'Histórico de Tareas CRM',
  127. description: 'Permite visualizar las Tareas en CRM',
  128. action: 'ReportCrmTask'
  129. },
  130. {
  131. title: 'Histórico CRM',
  132. description: 'Permite visualizar un histórico de CRM realizado por la empresa.',
  133. action: 'ReportCrm'
  134. },
  135. {
  136. title: 'Histórico Mensaje CRM',
  137. description: 'Permite visualizar un histórico de mensaje realizado por la empresa.',
  138. action: 'ReportMensajeCrm'
  139. },
  140. {
  141. title: 'Listado de Cuentas a Cobrar',
  142. description: 'Permite visualizar un listado de cuentas a cobrar tanto vencidos como no vencidos.',
  143. action: 'ReportingAccountPending'
  144. },
  145. {
  146. title: 'Listado de Cuentas a Pagar',
  147. description: 'Permite visualizar un listado de cuentas a pagar.',
  148. action: 'ReportingAccountPendingaPagar'
  149. },
  150. {
  151. title: 'Informe de Trabajos',
  152. description: 'Permite visualizar los trabajos facturados y no facturados.',
  153. action: 'ReportWorks'
  154. },
  155. {
  156. title: 'Listado de Producción',
  157. description: 'Permite visualizar un listado de producción.',
  158. action: 'ReportMrp'
  159. },
  160. {
  161. title: 'Ranking Productos más Fabricados',
  162. description: 'Permite realizar un analisis de los Productos más Fabricados.',
  163. action: 'RankingMrpOrdersProductcy'
  164. },
  165. {
  166. title: 'Análisis de Pack de Productos',
  167. description: 'Permite visualizar el análisis de pack de productos.',
  168. action: 'ReportProductPack'
  169. },
  170. {
  171. title: 'Análisis de Utilidad de Pack de Producto',
  172. description: 'Análisis de Utilidad de Pack de Producto también sobre insumos.',
  173. action: 'ReportProductPackUtilidad'
  174. },
  175. {
  176. title: 'Listado de Proyectos',
  177. description: 'Permite visualizar un listado de proyectos.',
  178. action: 'ReportProject'
  179. }
  180. ],
  181. start: function () {
  182. var self = this;
  183. self.fetchInitial();
  184. },
  185. clickOnReport: function (e) {
  186. var templateName = this.$el.find(e.target).val();
  187. this.renderReport(templateName);
  188. },
  189. renderReport: function (templateName) {
  190. var Widget = this.getWidgetFromTemplate(templateName);
  191. var WidgetInstance = new Widget(this);
  192. var container = this.$el.find('.oe_form_sheet.oe_form_sheet_width');
  193. container.find('.report_view').hide({
  194. effect: 'fade',
  195. duration: 200,
  196. complete: function () {
  197. WidgetInstance.appendTo(container);
  198. }
  199. });
  200. },
  201. getWidgetFromTemplate: function (templateName) {
  202. var widgetName = `${templateName}Widget`;
  203. return _.pick(widget, widgetName)[widgetName];
  204. },
  205. fetchInitial:function() {
  206. var self = this;
  207. self.fetchResUser().then(function (ResUser) {
  208. return ResUser;
  209. }).then(function (ResUser) {
  210. self.ResUser = ResUser;
  211. return self.InsertUser();
  212. });
  213. },
  214. fetchResUser: function() {
  215. var self = this;
  216. var defer = $.Deferred();
  217. var fields = ['id','name'];
  218. var domain = [['id','=',self.session.uid]];
  219. var ResUser = new instance.web.Model('res.users');
  220. ResUser.query(fields).filter(domain).all().then(function (results) {
  221. defer.resolve(results);
  222. });
  223. return defer;
  224. },
  225. InsertUser: function(id) {
  226. var self = this;
  227. var user = self.ResUser[0].name;
  228. self.$el.find('.user-content').find('p').text("Hola " + user + " ...!");
  229. },
  230. });
  231. }