report_expense_analytic.xml 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <template xml:space="preserve">
  3. <t t-name="ReportExpenseAnalytic">
  4. <div class="report_view">
  5. <div class="reporting_page_header">
  6. <h1 class="report_title"> Análisis de Gastos</h1>
  7. </div>
  8. <div class="container search-form" style="border-bottom:1px solid #eee; width:90%;">
  9. <div class="row">
  10. <div class="col-lg-3 company filter-style">
  11. <label>Empresa</label>
  12. <select id="current-company" class="form-control form-control-sm"></select>
  13. </div>
  14. <div class="col-lg-3 store filter-style">
  15. <label>Sucursal</label>
  16. <select id="current-store" class="form-control form-control-sm">
  17. </select>
  18. </div>
  19. <div class="col-lg-3 filter-style">
  20. <label>Categoria</label>
  21. <select id="current-category" class="form-control form-control-sm">
  22. </select>
  23. </div>
  24. <div class="col-lg-3 brand filter-style">
  25. <label>Marca</label>
  26. <select id="current-brand" class="form-control form-control-sm">
  27. </select>
  28. </div>
  29. <div class="col-lg-3 attribute filter-style">
  30. <label>Atributo</label>
  31. <select id="current-attribute" class="form-control form-control-sm">
  32. </select>
  33. </div>
  34. <div class="col-lg-3 attribute-value filter-style">
  35. <label>Valor del Atributo</label>
  36. <select id="current-attribute-value" class="form-control form-control-sm">
  37. </select>
  38. </div>
  39. <div class="col-lg-3 filter-style">
  40. <label>Fechas</label>
  41. <select id="current-date" class="form-control form-control-sm">
  42. <option value="9999999">Sin fechas</option>
  43. <option value="today">Hoy</option>
  44. <option value="yesterday">Ayer</option>
  45. <option value="currentMonth">Mes Actual</option>
  46. <option value="lastMonth">Mes Pasado</option>
  47. <option value="range">Busqueda Avanzada</option>
  48. </select>
  49. </div>
  50. </div>
  51. <div class="row" >
  52. <div class="datepicker" style="display:none;">
  53. <div class="col-lg-3 filter-style col-md-offset-3">
  54. <div class="input-group">
  55. <span class="input-group-addon" id="basic-addon1">Desde</span>
  56. <input type="text" id="from" class="form-control" aria-describedby="basic-addon1"/>
  57. </div>
  58. </div>
  59. <div class="col-lg-3 filter-style">
  60. <div class="input-group">
  61. <span class="input-group-addon" id="basic-addon1">Hasta</span>
  62. <input type="text" id="to" class="form-control" aria-describedby="basic-addon1"/>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. <div class="row">
  68. <div class="text-center" style="padding-top:20px;">
  69. <button id="generate" class="myButton" aria-label="Left Align" style="color:#fff;display:none;">
  70. Generar
  71. </button>
  72. </div>
  73. <br/>
  74. </div>
  75. </div>
  76. <div class="report-form" style="display:none;">
  77. <div id="toolbar">
  78. <button class="myButton print-report" value="pdf">Imprimir Informe</button>
  79. </div>
  80. <div class="container" style="width:90%;">
  81. <table id="table"
  82. data-pagination="true"
  83. data-toggle="table"
  84. data-toolbar="#toolbar"
  85. data-show-columns="true"
  86. data-classes="table table-hover table-condensed"
  87. data-row-style="rowStyle"
  88. data-search="true"
  89. data-show-export="true"
  90. data-show-toggle="true"
  91. data-pagination-detail-h-align="left"
  92. data-show-footer="true"
  93. data-footer-style="footerStyle"
  94. data-buttons-class="oe_button myButton"
  95. data-show-pagination-switch="true"
  96. data-page-size="10"
  97. data-search-on-enter-key="true"
  98. data-undefined-text=" "
  99. data-pagination-v-align="top"
  100. >
  101. <thead style="background:none;">
  102. <tr>
  103. <th data-field="number"
  104. data-align="center"
  105. data-footer-formatter="Totales"
  106. >Referencia</th>
  107. <th data-field="supplier_invoice_number"
  108. data-align="left"
  109. data-visible="false"
  110. >Factura Física</th>
  111. <th data-field="date"
  112. data-align="center"
  113. >Fecha</th>
  114. <th data-field="ruc"
  115. data-align="left"
  116. data-visible="false"
  117. >CIN/RUC</th>
  118. <th data-field="supplier_name"
  119. data-align="left"
  120. >Proveedor</th>
  121. <th data-field="product_name"
  122. data-align="left"
  123. >Producto</th>
  124. <th data-field="product_category"
  125. data-align="left"
  126. >Categoria</th>
  127. <th data-field="price_unit"
  128. data-align="right"
  129. data-footer-formatter="PriceUnitFooter"
  130. data-width="200px"
  131. >Precio</th>
  132. <th data-field="quantity"
  133. data-align="center"
  134. data-footer-formatter="QuantityFooter"
  135. data-width="100px"
  136. >Cantidad</th>
  137. <th data-field="untaxed"
  138. data-align="right"
  139. data-footer-formatter="UntaxedFooter"
  140. data-width="200px"
  141. >SubTotal</th>
  142. <th data-field="tax"
  143. data-align="right"
  144. data-footer-formatter="TaxFooter"
  145. data-width="200px"
  146. >Impuesto</th>
  147. <th data-field="total"
  148. data-align="right"
  149. data-footer-formatter="TotalFooter"
  150. data-width="200px"
  151. >Total</th>
  152. </tr>
  153. </thead>
  154. </table>
  155. </div>
  156. </div>
  157. <script>
  158. <!--
  159. PRICE UNIT
  160. -->
  161. function PriceUnitFooter(rowsTable) {
  162. var decimal_places = 0;
  163. var thousands_separator = '.';
  164. var decimal_separator = ',';
  165. if(rowsTable.length > 0){
  166. decimal_places = rowsTable[0].decimal_places;
  167. thousands_separator = rowsTable[0].thousands_separator;
  168. decimal_separator = rowsTable[0].decimal_separator;
  169. }
  170. var total = _.reduce(_.map(rowsTable,function(item){
  171. return item.price_unit_no_fortmat;
  172. }), function(memo, num){
  173. return memo + num;
  174. },0);
  175. return accounting.formatNumber(total,decimal_places,thousands_separator,decimal_separator);
  176. }
  177. <!--
  178. QUANTITY
  179. -->
  180. function QuantityFooter(rowsTable) {
  181. var total = _.reduce(_.map(rowsTable,function(item){
  182. return item.quantity_no_format;
  183. }), function(memo, num){
  184. return memo + num;
  185. },0);
  186. return accounting.formatNumber(total,2,'.',',');
  187. }
  188. <!--
  189. UNTAXED
  190. -->
  191. function UntaxedFooter(rowsTable) {
  192. var decimal_places = 0;
  193. var thousands_separator = '.';
  194. var decimal_separator = ',';
  195. if(rowsTable.length > 0){
  196. decimal_places = rowsTable[0].decimal_places;
  197. thousands_separator = rowsTable[0].thousands_separator;
  198. decimal_separator = rowsTable[0].decimal_separator;
  199. }
  200. var total = _.reduce(_.map(rowsTable,function(item){
  201. return item.untaxed_no_format;
  202. }), function(memo, num){
  203. return memo + num;
  204. },0);
  205. return accounting.formatNumber(total,decimal_places,thousands_separator,decimal_separator);
  206. }
  207. <!--
  208. TAX
  209. -->
  210. function TaxFooter(rowsTable) {
  211. var decimal_places = 0;
  212. var thousands_separator = '.';
  213. var decimal_separator = ',';
  214. if(rowsTable.length > 0){
  215. decimal_places = rowsTable[0].decimal_places;
  216. thousands_separator = rowsTable[0].thousands_separator;
  217. decimal_separator = rowsTable[0].decimal_separator;
  218. }
  219. var total = _.reduce(_.map(rowsTable,function(item){
  220. return item.tax_no_format;
  221. }), function(memo, num){
  222. return memo + num;
  223. },0);
  224. return accounting.formatNumber(total,decimal_places,thousands_separator,decimal_separator);
  225. }
  226. <!--
  227. TOTAL
  228. -->
  229. function TotalFooter(rowsTable) {
  230. var decimal_places = 0;
  231. var thousands_separator = '.';
  232. var decimal_separator = ',';
  233. if(rowsTable.length > 0){
  234. decimal_places = rowsTable[0].decimal_places;
  235. thousands_separator = rowsTable[0].thousands_separator;
  236. decimal_separator = rowsTable[0].decimal_separator;
  237. }
  238. var total = _.reduce(_.map(rowsTable,function(item){
  239. return item.total_no_format;
  240. }), function(memo, num){
  241. return memo + num;
  242. },0);
  243. return accounting.formatNumber(total,decimal_places,thousands_separator,decimal_separator);
  244. }
  245. <!--
  246. FOOTER STYLE
  247. -->
  248. function footerStyle(row, index) {
  249. return {
  250. css: {
  251. "font-weight": "bold"
  252. }
  253. };
  254. };
  255. </script>
  256. </div>
  257. </t>
  258. </template>