TotalPayDetail.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. /**
  2. * 应付总账
  3. */
  4. Ext.define('saas.view.money.report.TotalPayDetail', {
  5. extend: 'saas.view.core.report.ReportPanel',
  6. xtype: 'monry-report-totalpaydetail',
  7. controller: 'money-report-totalpaydetail',
  8. viewModel: 'money-report-totalpaydetail',
  9. viewName: 'money-report-totalpaydetail',
  10. groupField: null,
  11. listUrl: '/api/money/report/vendormonthdetails',
  12. defaultCondition: null,
  13. reportTitle: '应付总账',
  14. QueryWidth: 0.35,
  15. allowPaging: false,
  16. searchItems: [{
  17. xtype: 'vendorDbfindTrigger',
  18. name: 'vm_vendname',
  19. emptyText: '请输入供应商名称',
  20. columnWidth: 0.25
  21. }, {
  22. xtype: 'conmonthfield',
  23. fieldLabel: '期间',
  24. name: 'vm_yearmonth',
  25. columnWidth: 0.4
  26. }],
  27. reportModel: 'saas.model.report.TotalPayDetail',
  28. reportColumns: [{
  29. text: '期间',
  30. dataIndex: 'vm_yearmonth',
  31. width: 80,
  32. }, {
  33. text: '供应商名称',
  34. dataIndex: 'vm_vendname',
  35. width: 200,
  36. }, {
  37. text: '币别',
  38. dataIndex: 'vm_currency',
  39. align:'center',
  40. width: 65,
  41. }, {
  42. text: '汇率',
  43. dataIndex: 'vm_rate',
  44. align:'center',
  45. width: 65,
  46. renderer: function (v, m, r) {
  47. return saas.util.BaseUtil.numberFormat(v, 6, false);
  48. }
  49. }, {
  50. text: '期初',
  51. columns: [{
  52. text: '预付(元)',
  53. xtype: 'numbercolumn',
  54. exportFormat: 'Amount',
  55. dataIndex: 'vm_beginpreamount',
  56. width: 120,
  57. renderer: function(v, m, r) {
  58. return saas.util.BaseUtil.numberFormat(v, 2, true);
  59. }
  60. }, {
  61. text: '应付(元)',
  62. xtype: 'numbercolumn',
  63. exportFormat: 'Amount',
  64. dataIndex: 'vm_beginamount',
  65. width: 120,
  66. renderer: function(v, m, r) {
  67. return saas.util.BaseUtil.numberFormat(v, 2, true);
  68. }
  69. }]
  70. }, {
  71. text: '本期',
  72. columns: [{
  73. text: '预付(元)',
  74. xtype: 'numbercolumn',
  75. exportFormat: 'Amount',
  76. dataIndex: 'vm_nowpreamount',
  77. width: 120,
  78. renderer: function(v, m, r) {
  79. return saas.util.BaseUtil.numberFormat(v, 2, true);
  80. }
  81. }, {
  82. text: '应付(元)',
  83. xtype: 'numbercolumn',
  84. exportFormat: 'Amount',
  85. dataIndex: 'vm_nowamount',
  86. width: 120,
  87. renderer: function(v, m, r) {
  88. return saas.util.BaseUtil.numberFormat(v, 2, true);
  89. }
  90. }, {
  91. text: '核销(元)',
  92. xtype: 'numbercolumn',
  93. exportFormat: 'Amount',
  94. dataIndex: 'vm_nowpayamount',
  95. width: 120,
  96. renderer: function(v, m, r) {
  97. return saas.util.BaseUtil.numberFormat(v, 2, true);
  98. }
  99. }]
  100. }, {
  101. text: '期末',
  102. columns: [{
  103. text: '预付(元)',
  104. dataIndex: 'vm_endpreamount',
  105. exportFormat: 'Amount',
  106. xtype: 'numbercolumn',
  107. width: 120,
  108. renderer: function(v, m, r) {
  109. return saas.util.BaseUtil.numberFormat(v, 2, true);
  110. },
  111. summaryType: 'sum',
  112. summaryRenderer: function(v, d, f, m) {
  113. return saas.util.BaseUtil.numberFormat(v, 2, true);
  114. }
  115. }, {
  116. text: '应付(元)',
  117. dataIndex: 'vm_endamount',
  118. exportFormat: 'Amount',
  119. xtype: 'numbercolumn',
  120. width: 120,
  121. renderer: function(v, m, r) {
  122. return saas.util.BaseUtil.numberFormat(v, 2, true);
  123. },
  124. summaryType: 'sum',
  125. summaryRenderer: function(v, d, f, m) {
  126. return saas.util.BaseUtil.numberFormat(v, 2, true);
  127. }
  128. }]
  129. }, {
  130. text: '应付余额(元)',
  131. dataIndex: 'vm_endamount-vm_endpreamount',
  132. exportFormat: 'Amount',
  133. xtype: 'numbercolumn',
  134. width: 120,
  135. renderer: function(v, m, r) {
  136. return saas.util.BaseUtil.numberFormat(v, 2, true);
  137. }
  138. },{
  139. hidden:true,
  140. text: '应付余额(本位币)(元)',
  141. dataIndex: 'vm_amount_cr',
  142. exportFormat: 'Amount',
  143. xtype: 'numbercolumn',
  144. width: 160,
  145. renderer: function(v, m, r) {
  146. return saas.util.BaseUtil.numberFormat(v, 2, true);
  147. },
  148. summaryType: 'sum',
  149. summaryLabel: '应付余额(本位币)',
  150. summaryRenderer: function(v, d, f, m) {
  151. return saas.util.BaseUtil.numberFormat(v, 2, true);
  152. }
  153. }, {
  154. dataIndex: '',
  155. flex: 1
  156. }],
  157. // 自定义合计逻辑,直接使用后台返回的内容作为合计栏内容
  158. mySummaryConfig: {
  159. renderSummaryData: [],
  160. mySummaryTpl: [
  161. '<table class="x-grid-row-mysummary x-mmmmmmmmmmmm">',
  162. '<tbody>',
  163. '<tr>',
  164. '<tpl for=".">',
  165. '<td class="x-grid-cell x-grid-td x-grid-cell-numbercolumn-1526 x-unselectable x-mysummary-item">',
  166. '<div class="x-grid-cell-inner x-mysummary-item-cell">{label}',
  167. '{str}',
  168. '</div>',
  169. '</td>',
  170. '</tpl>',
  171. '</tr>',
  172. '</tbody>',
  173. '</table>',
  174. ],
  175. initSummarys: function() {
  176. var me = this,
  177. summaryData = me.renderSummaryData;
  178. var summarys = [{
  179. str: summaryData
  180. }];
  181. this.summarys = summarys;
  182. return summarys;
  183. },
  184. updateSummarys: function() {
  185. var me = this,
  186. summaryData = me.renderSummaryData;
  187. var summarys = [{
  188. str: summaryData
  189. }];
  190. this.summarys = summarys;
  191. return summarys;
  192. },
  193. applySummarys: function(response) {
  194. var me = this,
  195. grid = me.grid;
  196. var _res = response,
  197. _calculateProperty = grid.calculateProperty;
  198. var _root = _calculateProperty.split('.')[0];
  199. eval('var ' + _root + ' = _res[_root];');
  200. try {
  201. summaryData = [];
  202. try {
  203. summaryData = eval(_calculateProperty);
  204. if(!Ext.isArray(summaryData)) {
  205. summaryData = [];
  206. }
  207. }catch(e) {
  208. // don't care this...
  209. }
  210. //自定义逻辑
  211. if(summaryData.length>0){
  212. let message = '';
  213. Ext.each(summaryData,function(obj,index){
  214. recAmount = obj.vm_endamount-obj.vm_endpreamount
  215. if(index==0){
  216. message+='<span>应付余额(' + obj.vm_currency + ')(元):'+saas.util.BaseUtil.numberFormat(recAmount, 2, true)+'</span>'
  217. }else{
  218. message+='<span style="margin:0 0 0 20px">应付余额(' + obj.vm_currency + ')(元):'+saas.util.BaseUtil.numberFormat(recAmount, 2, true)+'</span>'
  219. }
  220. });
  221. me.renderSummaryData =message;
  222. }else{
  223. me.renderSummaryData = '';
  224. }
  225. } catch (e) {
  226. console.error(e);
  227. saas.util.BaseUtil.showErrorToast(e.message);
  228. }
  229. }
  230. }
  231. });