PurchasePay.js 6.9 KB

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