FormPanel.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. Ext.define('saas.view.money.recBalance.FormPanel', {
  2. extend: 'saas.view.core.form.FormPanel',
  3. xtype: 'money-recbalance-formpanel',
  4. controller: 'money-recbalance-formpanel',
  5. viewModel: 'money-recbalance-formpanel',
  6. viewName: 'money-recbalance-formpanel',
  7. caller: 'RecBalance',
  8. //字段属性
  9. _title: '收款单',
  10. _idField: 'id',
  11. _codeField: 'rb_code',
  12. _statusField: 'rb_status',
  13. _statusCodeField: 'rb_statuscode',
  14. _auditmanField: 'rb_auditman',
  15. _auditdateField:'rb_auditdate',
  16. _readUrl: '/api/money/recbalance/read',
  17. _saveUrl: '/api/money/recbalance/save',
  18. _auditUrl: '/api/money/recbalance/audit',
  19. _unAuditUrl: '/api/money/recbalance/unAudit',
  20. _deleteUrl: '/api/money/recbalance/delete',
  21. initId: 0,
  22. defaultItems: [{
  23. xtype: 'hidden',
  24. name: 'id',
  25. fieldLabel: 'id'
  26. }, {
  27. xtype: 'hidden',
  28. name: 'rb_custid',
  29. fieldLabel: '客户ID'
  30. }, {
  31. xtype: 'hidden',
  32. name: 'rb_kind',
  33. fieldLabel: '单据类型',
  34. defaultValue: '收款单',
  35. readOnly: true
  36. }, {
  37. xtype: 'hidden',
  38. name: 'rb_custcode',
  39. fieldLabel: '客户编号'
  40. }, {
  41. xtype: "customerDbfindTrigger",
  42. name: "rb_custname",
  43. fieldLabel: "客户名称",
  44. allowBlank : false,
  45. listeners: {
  46. change: 'clearDetails'
  47. }
  48. }, {
  49. xtype: "numberfield",
  50. name: "cu_leftamount",
  51. fieldLabel: "总欠款",
  52. ignore: true,
  53. readOnly: true
  54. }, {
  55. xtype: 'hidden',
  56. name: 'rb_rbdamount',
  57. fieldLabel: '本次核销金额'
  58. },{
  59. xtype: 'hidden',
  60. name: 'rb_rdamount',
  61. fieldLabel: '本次付款金额',
  62. }, {
  63. xtype: "datefield",
  64. name: "rb_date",
  65. fieldLabel: "日期",
  66. defaultValue: new Date(),
  67. allowBlank : false
  68. }, {
  69. xtype: "textfield",
  70. name: "rb_manname",
  71. fieldLabel: "收款人",
  72. defaultValue: saas.util.BaseUtil.getCurrentUser().realname
  73. }, {
  74. xtype: "numberfield",
  75. name: "rb_discounts",
  76. fieldLabel: "整单折扣",
  77. hidden: true
  78. }, {
  79. xtype: 'numberfield',
  80. name: 'rb_preamount',
  81. fieldLabel : '本次预收款',
  82. readOnly: true
  83. }, {
  84. xtype: 'hidden',
  85. name: 'rb_havebalance',
  86. fieldLabel: '已核销金额'
  87. }, {
  88. xtype: "detailGridField",
  89. storeModel: 'saas.model.money.RecBalance1',
  90. detnoColumn: 'rd_detno',
  91. deleteDetailUrl: '/api/money/recbalance/deleteDetail1',
  92. columns: [{
  93. text: 'ID',
  94. dataIndex: 'id',
  95. hidden: true
  96. }, {
  97. text: '期间',
  98. dataIndex: 'rd_ym',
  99. defaultValue: Ext.Date.format(new Date(), 'Ym'),
  100. width : 110,
  101. hidden: true
  102. }, {
  103. text: '资金账户ID',
  104. dataIndex: 'rd_bankid',
  105. editor: {
  106. xtype: 'numberfield'
  107. },
  108. hidden: true
  109. }, {
  110. text: '资金账户编号',
  111. dataIndex: 'rd_bankcode',
  112. editor: {
  113. xtype: 'textfield'
  114. },
  115. hidden: true
  116. }, {
  117. text: '资金账户',
  118. dataIndex: 'rd_bankname',
  119. allowBlank : false,
  120. width: 200,
  121. editor:{
  122. xtype:'bandinfoDbfindTrigger'
  123. }
  124. }, {
  125. text: "收款金额",
  126. xtype: 'numbercolumn',
  127. dataIndex: "rd_amount",
  128. width : 110.0,
  129. allowBlank : false,
  130. editor : {
  131. xtype : "numberfield",
  132. decimalPrecision: 2
  133. },
  134. renderer : function(v) {
  135. var arr = (v + '.').split('.');
  136. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  137. var format = '0,000.' + xr.join('');
  138. return Ext.util.Format.number(v, format);
  139. },
  140. summaryType: 'sum',
  141. summaryRenderer: function(v) {
  142. var arr = (v + '.').split('.');
  143. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  144. var format = '0,000.' + xr.join('');
  145. return Ext.util.Format.number(v, format);
  146. }
  147. }, {
  148. text: "结算方式",
  149. dataIndex: "rd_paymethod",
  150. width : 150.0,
  151. editor : {
  152. xtype:'combo',
  153. queryMode: 'local',
  154. displayField: 'display',
  155. valueField: 'value',
  156. store:Ext.create('Ext.data.Store', {
  157. fields: ['value', 'display'],
  158. data : [
  159. {value:"信用卡", display:"信用卡"},
  160. {value:"支票", display:"支票"},
  161. {value:"汇票", display:"汇票"},
  162. {value:"现金", display:"现金"},
  163. {value:"银行转账", display:"银行转账"},
  164. {value:"支付宝转账", display:"支付宝转账"},
  165. {value:"微信转账", display:"微信转账"}
  166. ]
  167. })
  168. }
  169. }, {
  170. text: "结算号",
  171. dataIndex: "rd_paycode",
  172. editor: {
  173. xtype: 'textfield'
  174. }
  175. }, {
  176. text: "备注",
  177. dataIndex: "rd_remark",
  178. width: 250,
  179. editor: {
  180. xtype: 'textfield'
  181. }
  182. }]
  183. },{
  184. xtype: "detailGridField",
  185. storeModel: 'saas.model.money.RecBalance2',
  186. detnoColumn: 'rbd_detno',
  187. allowEmpty: true,
  188. deleteDetailUrl: '/api/money/recbalance/deleteDetail2',
  189. columns: [{
  190. text: 'ID',
  191. dataIndex: 'id',
  192. hidden: true
  193. }, {
  194. text: '期间',
  195. dataIndex: 'rbd_ym',
  196. editor: {
  197. xtype: 'numberfield'
  198. },
  199. hidden: true
  200. }, {
  201. text: '来源ID',
  202. dataIndex: 'rbd_slid',
  203. editor: {
  204. xtype: 'numberfield'
  205. },
  206. hidden: true
  207. }, {
  208. text: '来源单号',
  209. dataIndex: 'rbd_slcode',
  210. width: 200,
  211. editor:{
  212. displayField : "display",
  213. editable : true,
  214. format : "",
  215. hideTrigger : false,
  216. maxLength : 100.0,
  217. minValue : null,
  218. positiveNum : false,
  219. queryMode : "local",
  220. store : null,
  221. valueField : "value",
  222. xtype : "oriOrderMutiDbfindTrigger",
  223. listeners:{
  224. beforetriggerclick:'custnamechange'
  225. }
  226. }
  227. }, {
  228. text: "业务类型",
  229. dataIndex: "rbd_slkind",
  230. width:110
  231. }, {
  232. text: "单据日期",
  233. dataIndex: "rbd_sldate",
  234. xtype: 'datecolumn',
  235. width:110
  236. }, {
  237. text: "单据金额",
  238. xtype: 'numbercolumn',
  239. dataIndex: "rbd_amount",
  240. width:110,
  241. renderer : function(v) {
  242. var arr = (v + '.').split('.');
  243. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  244. var format = '0,000.' + xr.join('');
  245. return Ext.util.Format.number(v, format);
  246. },
  247. summaryType: 'sum',
  248. summaryRenderer: function(v) {
  249. var arr = (v + '.').split('.');
  250. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  251. var format = '0,000.' + xr.join('');
  252. return Ext.util.Format.number(v, format);
  253. }
  254. }, {
  255. text: "已核销金额",
  256. xtype: 'numbercolumn',
  257. dataIndex: "sl_yamount",
  258. width:110,
  259. ignore:true,
  260. renderer : function(v) {
  261. var arr = (v + '.').split('.');
  262. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  263. var format = '0,000.' + xr.join('');
  264. return Ext.util.Format.number(v, format);
  265. },
  266. summaryType: 'sum',
  267. summaryRenderer: function(v) {
  268. var arr = (v + '.').split('.');
  269. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  270. var format = '0,000.' + xr.join('');
  271. return Ext.util.Format.number(v, format);
  272. }
  273. }, {
  274. text: "未核销金额",
  275. xtype: 'numbercolumn',
  276. dataIndex: "sl_namount",
  277. width:110,
  278. ignore:true,
  279. renderer : function(v) {
  280. var arr = (v + '.').split('.');
  281. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  282. var format = '0,000.' + xr.join('');
  283. return Ext.util.Format.number(v, format);
  284. },
  285. summaryType: 'sum',
  286. summaryRenderer: function(v) {
  287. var arr = (v + '.').split('.');
  288. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  289. var format = '0,000.' + xr.join('');
  290. return Ext.util.Format.number(v, format);
  291. }
  292. }, {
  293. text: "本次核销金额",
  294. xtype: 'numbercolumn',
  295. dataIndex: "rbd_nowbalance",
  296. width:140,
  297. editor : {
  298. xtype : "numberfield",
  299. decimalPrecision: 2
  300. },
  301. allowBlank : false,
  302. renderer : function(v) {
  303. var arr = (v + '.').split('.');
  304. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  305. var format = '0,000.' + xr.join('');
  306. return Ext.util.Format.number(v, format);
  307. },
  308. summaryType: 'sum',
  309. summaryRenderer: function(v) {
  310. var arr = (v + '.').split('.');
  311. var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
  312. var format = '0,000.' + xr.join('');
  313. return Ext.util.Format.number(v, format);
  314. }
  315. }]
  316. }, {
  317. xtype: 'textfield',
  318. name: 'rb_remark',
  319. fieldLabel: '备注',
  320. columnWidth: 1
  321. },{
  322. xtype : "hidden",
  323. name : "creatorId",
  324. fieldLabel : "录入人ID",
  325. readOnly:true
  326. },
  327. {
  328. xtype : "textfield",
  329. name : "creatorName",
  330. fieldLabel : "录入人",
  331. readOnly:true
  332. }, {
  333. xtype : "datefield",
  334. name : "createTime",
  335. fieldLabel : "录入日期",
  336. readOnly:true,
  337. defaultValue: new Date()
  338. },{
  339. xtype : "hidden",
  340. name : "updaterId",
  341. fieldLabel : "更新人ID",
  342. readOnly:true
  343. },{
  344. xtype : "hidden",
  345. name : "updaterName",
  346. fieldLabel : "更新人",
  347. readOnly:true
  348. }, {
  349. xtype : "hidden",
  350. name : "updateTime",
  351. fieldLabel : "更新日期",
  352. readOnly:true,
  353. defaultValue: new Date()
  354. }, {
  355. xtype: 'textfield',
  356. name: 'rb_auditman',
  357. fieldLabel: '审核人',
  358. readOnly: true
  359. },{
  360. xtype: "datefield",
  361. name: "rb_auditdate",
  362. fieldLabel: "审核日期",
  363. readOnly: true
  364. }],
  365. beforeAudit: function() {
  366. var form = this,
  367. idField = form._idField,
  368. controller = form.getController(),
  369. viewModel = form.getViewModel(),
  370. id = viewModel.get(idField);
  371. store1 = viewModel.get('detail0').detailStore,
  372. store2 = viewModel.get('detail1').detailStore;
  373. // 已保存过的单据不进行此项校验
  374. if(id) {
  375. return true;
  376. }
  377. var sum_rd_amount = store1.sum('rd_amount'); // 付款金额合计
  378. var rb_discounts = viewModel.get('rb_discounts'); // 折扣金额
  379. var sum_rbd_nowbalance = store2.sum('rbd_nowbalance'); // 本次核销金额合计
  380. var flag = sum_rd_amount + rb_discounts - sum_rbd_nowbalance;
  381. viewModel.set("rb_preamount",flag);
  382. if(flag != 0) {
  383. var t = flag > 0 ? '大' : '小';
  384. saas.util.BaseUtil.showConfirm('提示', '付款金额' + t + '于本次核销金额,是否仍要保存并审核?')
  385. .then(function(y) {
  386. if(y == 'yes') {
  387. controller.audit();
  388. }
  389. });
  390. }else {
  391. controller.audit();
  392. }
  393. return false;
  394. }
  395. });