TotalRecDetail.js 7.5 KB

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