SaleRec.js 7.3 KB

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