CustomerCheck.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. Ext.define('saas.view.money.report.CustomerCheckCheck', {
  2. extend: 'saas.view.core.report.ReportPanel',
  3. xtype: 'monry-report-customercheck',
  4. controller: 'money-report-customercheck',
  5. viewModel: 'money-report-customercheck',
  6. viewName: 'money-report-customercheck',
  7. // groupField: 'pi_custname',
  8. listUrl: '/api/money/report/customercheck',
  9. defaultCondition: null,
  10. reportTitle: '客户对账单',
  11. QueryWidth: 0.4,
  12. autoLoad: false,
  13. //筛选:客户、日期(必填)
  14. searchItems: [{
  15. xtype: 'textfield',
  16. name: 'pi_custname',
  17. emptyText: '请输入客户名称',
  18. columnWidth: 0.2,
  19. // listeners: {
  20. // beforequery: function(f) {
  21. // return !!f.value;
  22. // },
  23. // change: 'pi_custname_change'
  24. // }
  25. }, {
  26. xtype: 'condatefield',
  27. name: 'pi_date',
  28. fieldLabel: '日期',
  29. columnWidth: 0.4
  30. }],
  31. reportModel: 'saas.model.report.CustomerCheck',
  32. reportColumns: [{
  33. text: '单据日期',
  34. dataIndex: 'pi_date',
  35. xtype: 'datecolumn',
  36. width: 110
  37. }, {
  38. text: '单号',
  39. dataIndex: 'pi_inoutno',
  40. width: 150
  41. }, {
  42. text: '业务类型',
  43. align: 'center',
  44. dataIndex: 'pi_class',
  45. width: 100
  46. }, {
  47. text: '序号',
  48. align: 'center',
  49. dataIndex: 'pd_pdno',
  50. exportFormat: 'Integer',
  51. xtype: 'numbercolumn',
  52. width: 65
  53. }, {
  54. text: '物料编号',
  55. width: 150,
  56. dataIndex: 'pr_code'
  57. }, {
  58. text: '品牌',
  59. dataIndex: 'pr_brand',
  60. width: 100
  61. }, {
  62. text: '物料名称',
  63. dataIndex: 'pr_detail',
  64. width: 150
  65. }, {
  66. text: '型号',
  67. dataIndex: 'pr_orispeccode',
  68. width: 200
  69. }, {
  70. text: '规格',
  71. dataIndex: 'pr_spec',
  72. width: 200
  73. }, {
  74. text: '数量',
  75. xtype: 'numbercolumn',
  76. exportFormat: 'Quantity',
  77. dataIndex: 'qty',
  78. width: 110,
  79. renderer: function(v) {
  80. var arr = (v + '.').split('.');
  81. var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
  82. var format = '0.' + xr.join('');
  83. return Ext.util.Format.number(v, format);
  84. }
  85. }, {
  86. text: '单位',
  87. dataIndex: 'pd_unit',
  88. width: 65
  89. }, {
  90. text: '单价(元)',
  91. dataIndex: 'pd_netprice',
  92. exportFormat: 'Price',
  93. xtype: 'numbercolumn',
  94. width: 120,
  95. renderer: function(v) {
  96. var arr = (v + '.').split('.');
  97. var xr = (new Array(arr[1].length > 4 ? 4 : arr[1].length)).fill('0');
  98. var format = '0,000.' + xr.join('');
  99. return Ext.util.Format.number(v, format);
  100. }
  101. }, {
  102. text: '含税单价(元)',
  103. dataIndex: 'pd_sendprice',
  104. exportFormat: 'Price',
  105. xtype: 'numbercolumn',
  106. width: 120,
  107. renderer: function(v) {
  108. var arr = (v + '.').split('.');
  109. var xr = (new Array(arr[1].length > 4 ? 4 : arr[1].length)).fill('0');
  110. var format = '0,000.' + xr.join('');
  111. return Ext.util.Format.number(v, format);
  112. }
  113. }, {
  114. text: '金额(元)',
  115. xtype: 'numbercolumn',
  116. exportFormat: 'Amount',
  117. width: 120,
  118. dataIndex: 'pd_nettotal',
  119. renderer : function(v) {
  120. var arr = (v + '.').split('.');
  121. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  122. var format = '0,000.' + xr.join('');
  123. return Ext.util.Format.number(v, format);
  124. },
  125. }, {
  126. text: '税率(%)',
  127. dataIndex: 'pd_taxrate',
  128. exportFormat: 'Integer',
  129. xtype: 'numbercolumn',
  130. width: 80,
  131. renderer: function(v) {
  132. return Ext.util.Format.number(v, '0');
  133. }
  134. }, {
  135. text: '税额(元)',
  136. width: 120,
  137. xtype: 'numbercolumn',
  138. exportFormat: 'Amount',
  139. dataIndex: 'pd_ordertotal-pd_nettotal',
  140. renderer : function(v) {
  141. var arr = (v + '.').split('.');
  142. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  143. var format = '0,000.' + xr.join('');
  144. return Ext.util.Format.number(v, format);
  145. },
  146. summaryType: 'sum',
  147. summaryLabel: '税额',
  148. summaryRenderer: function(v) {
  149. return saas.util.BaseUtil.numberFormat(v, 2, true);
  150. }
  151. }, {
  152. text: '价税合计(元)',
  153. width: 120,
  154. xtype: 'numbercolumn',
  155. exportFormat: 'Amount',
  156. dataIndex: 'pd_ordertotal',
  157. renderer : function(v) {
  158. var arr = (v + '.').split('.');
  159. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  160. var format = '0,000.' + xr.join('');
  161. return Ext.util.Format.number(v, format);
  162. },
  163. summaryType: 'sum',
  164. summaryLabel: '价税合计',
  165. summaryRenderer: function(v) {
  166. return saas.util.BaseUtil.numberFormat(v, 2, true);
  167. }
  168. }],
  169. listeners: {
  170. afterrender: function(panel) {
  171. panel.setLoadButtonDisabled(true);
  172. },
  173. beforequery: function(panel) {
  174. var form = panel.items.items[0];
  175. var values = form.getValues();
  176. var pi_custname = values.pi_custname;
  177. if(!pi_custname) {
  178. saas.util.BaseUtil.showErrorToast('请先选择【<span style="color: red;">客户名称</span>】');
  179. return false;
  180. }
  181. return true;
  182. }
  183. },
  184. setLoadButtonDisabled: function (disabled) {
  185. var panel = this,
  186. grid = panel.down('grid'),
  187. p = grid.down('pagingtoolbar'),
  188. bs = p.query('button'),
  189. loadButton = Ext.Array.findBy(bs, function (b) {
  190. return b.iconCls == 'x-tbar-loading';
  191. });
  192. if (loadButton) {
  193. loadButton.setDisabled(disabled);
  194. }
  195. },
  196. applyParams: function (p) {
  197. var me = this,
  198. viewModel = me.getViewModel(),
  199. formData = viewModel.get('form'),
  200. ym = formData.ym;
  201. return Ext.Object.merge(p, {
  202. ym: ym
  203. });
  204. }
  205. });