CustomerCheck.js 6.7 KB

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