FormPanel.js 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982
  1. Ext.define('saas.view.money.verification.FormPanel', {
  2. extend: 'saas.view.core.form.FormPanel',
  3. xtype: 'money-verification-formpanel',
  4. controller: 'money-verification-formpanel',
  5. viewModel: 'money-verification-formpanel',
  6. viewName: 'money-verification-formpanel',
  7. caller: 'Verification',
  8. //字段属性
  9. _title: '核销单',
  10. _idField: 'id',
  11. _codeField: 'vc_code',
  12. _statusField: 'vc_status',
  13. _statusCodeField: 'vc_statuscode',
  14. _auditmanField: 'vc_auditman',
  15. _auditdateField: 'vc_auditdate',
  16. _readUrl: '/api/money/verification/read',
  17. _saveUrl: '/api/money/verification/save',
  18. _auditUrl: '/api/money/verification/audit',
  19. _unAuditUrl: '/api/money/verification/unAudit',
  20. _deleteUrl: '/api/money/verification/delete',
  21. defatulType: 'receipts_offset_receivable',
  22. initComponent: function () {
  23. this.initEtcConfig();
  24. this.callParent(arguments);
  25. },
  26. initFormItems: function () {
  27. this.initEtcConfig();
  28. var me = this,
  29. defaultItems = me.getAcitveItems(),
  30. FormUtil = saas.util.FormUtil;
  31. me.defaultItems = Ext.Array.clone(defaultItems);
  32. me.detailCount = 0;
  33. me.setLoading(true);
  34. saas.util.ViewUtil.getViewConfig(me.viewName)
  35. .then(function (cfg) {
  36. me.setLoading(false);
  37. let items = defaultItems || [];
  38. me.cusCfg = cfg;
  39. items = FormUtil.initItems(items);
  40. items = FormUtil.applyCusMainItemConfig(items, cfg);
  41. items = FormUtil.applyCusDetailItemConfig(items, cfg);
  42. me.configItems = items;
  43. items = FormUtil.applyDefaultItems(me, items);
  44. me.removeAll();
  45. return me.addItems(items);
  46. })
  47. .then(function (items) {
  48. me.fireEvent('afterSetItems', me, items);
  49. })
  50. .then(function () {
  51. if(me.initId != 0) {
  52. FormUtil.loadData(me);
  53. }else {
  54. // 防止新增打开界面取两次编号
  55. if(!me._loaded) {
  56. me._loaded = true;
  57. FormUtil.loadData(me);
  58. }else {
  59. let viewModel = me.getViewModel();
  60. let code = viewModel.get(me._codeField);
  61. let detailGrids = me.query('detailGridField');
  62. let o = {};
  63. o[me._codeField] = code;
  64. let formData = {main: {}};
  65. Ext.apply(formData.main, o);
  66. Ext.Array.each(detailGrids, function(grid, index) {
  67. let detno = 0;
  68. let detnoColumn = grid.detnoColumn;
  69. let datas = [];
  70. let emptyRows = grid.emptyRows;
  71. Ext.Array.each(new Array(emptyRows), function() {
  72. detno += 1;
  73. let data = {};
  74. data[detnoColumn] = detno;
  75. datas.push(data);
  76. })
  77. formData['detail' + index] = datas;
  78. });
  79. me.initFormData(formData);
  80. me.fireEvent('load', me, formData);
  81. }
  82. }
  83. })
  84. },
  85. getAcitveItems: function () {
  86. var me = this,
  87. acitveType = me.acitveType || me.defatulType,
  88. etc = me.etc,
  89. acitveEtc = etc[acitveType],
  90. mainItems = acitveEtc.main,
  91. details = acitveEtc.details,
  92. base = etc.base,
  93. detail1 = etc.detail1,
  94. detail2 = etc.detail2,
  95. other = etc.other,
  96. items = [];
  97. base[0].defaultValue = acitveType;
  98. items = Ext.Array.merge(base, mainItems, (details[0] ? [detail1] : []), (details[1] ? [detail2] : []), other);
  99. me.viewName = 'money-verification-formpanel-' + acitveType;
  100. return items;
  101. },
  102. initEtcConfig: function () {
  103. Ext.apply(this, {
  104. etc: {
  105. /**
  106. * 预收:receipts
  107. * 预付:prepaid
  108. * 应收:receivable
  109. * 应付:payable
  110. */
  111. // base
  112. base: [{
  113. xtype: 'combo',
  114. name: 'vc_kind',
  115. fieldLabel: '业务类型',
  116. allowBlank: false,
  117. editable: false,
  118. store: [
  119. ['receipts_offset_receivable', '预收冲应收'],
  120. ['prepaid_offset_payable', '预付冲应付'],
  121. ['receivable_offset_payable', '应收冲应付'],
  122. ['receivable_to_receivable', '应收转应收'],
  123. ['payable_to_payable', '应付转应付']
  124. ],
  125. listeners: {
  126. beforerender: function (f) {
  127. f.firstLoad = true;
  128. if (f.ownerCt.initId != 0) {
  129. f.setReadOnly(true);
  130. f.setDisabled(true);
  131. }
  132. }
  133. }
  134. }],
  135. detail1: {
  136. xtype: "detailGridField",
  137. name: 'detail1',
  138. storeModel: 'saas.model.money.Verification1',
  139. detnoColumn: 'vd_detno',
  140. deleteDetailUrl: '/api/money/verification/deleteDetail1',
  141. columnWidth: 1,
  142. columns: [{
  143. text: 'ID',
  144. dataIndex: 'id',
  145. hidden: true
  146. }, {
  147. text: '来源ID',
  148. dataIndex: 'vd_slid',
  149. hidden: true
  150. }, {
  151. text: '来源单号',
  152. dataIndex: 'vd_slcode',
  153. width: 150,
  154. allowBlank: false,
  155. editor: {
  156. displayField: "display",
  157. editable: true,
  158. format: "",
  159. hideTrigger: false,
  160. maxLength: 100.0,
  161. minValue: null,
  162. positiveNum: false,
  163. queryMode: "local",
  164. store: null,
  165. valueField: "value",
  166. xtype: "oriOrderMutiDbfindTrigger"
  167. }
  168. }, {
  169. text: '业务类型',
  170. dataIndex: "vd_slkind",
  171. width: 110
  172. }, {
  173. text: "单据日期",
  174. dataIndex: "vd_sldate",
  175. xtype: 'datecolumn',
  176. width: 110
  177. }, {
  178. text: "单据金额(元)",
  179. xtype: 'numbercolumn',
  180. dataIndex: "vd_amount",
  181. width: 110,
  182. renderer: function (v, m, r) {
  183. return saas.util.BaseUtil.numberFormat(v, 2, true);
  184. },
  185. summaryType: 'sum',
  186. summaryRenderer: function (v, d, f, m) {
  187. return saas.util.BaseUtil.numberFormat(v, 2, true);
  188. }
  189. }, {
  190. text: "已核销金额(元)",
  191. xtype: 'numbercolumn',
  192. dataIndex: "sl_yamount",
  193. width: 120,
  194. ignore: true,
  195. renderer: function (v, m, r) {
  196. return saas.util.BaseUtil.numberFormat(v, 2, true);
  197. },
  198. summaryType: 'sum',
  199. summaryRenderer: function (v, d, f, m) {
  200. return saas.util.BaseUtil.numberFormat(v, 2, true);
  201. }
  202. }, {
  203. text: "未核销金额(元)",
  204. xtype: 'numbercolumn',
  205. dataIndex: "sl_namount",
  206. width: 120,
  207. ignore: true,
  208. renderer: function (v, m, r) {
  209. return saas.util.BaseUtil.numberFormat(v, 2, true);
  210. },
  211. summaryType: 'sum',
  212. summaryRenderer: function (v, d, f, m) {
  213. return saas.util.BaseUtil.numberFormat(v, 2, true);
  214. }
  215. }, {
  216. text: "本次核销金额(元)",
  217. xtype: 'numbercolumn',
  218. dataIndex: "vd_nowbalance",
  219. width: 150,
  220. editor: {
  221. xtype: "numberfield",
  222. decimalPrecision: 2
  223. },
  224. allowBlank: false,
  225. renderer: function (v, m, r) {
  226. return saas.util.BaseUtil.numberFormat(v, 2, true);
  227. },
  228. summaryType: 'sum',
  229. summaryRenderer: function (v, d, f, m) {
  230. return saas.util.BaseUtil.numberFormat(v, 2, true);
  231. }
  232. }, {
  233. dataIndex: "vd_text1",
  234. text: "自定义字段1",
  235. width: 100,
  236. hidden: true,
  237. initHidden: false,
  238. editor: {
  239. xtype: "textfield"
  240. },
  241. }, {
  242. dataIndex: "vd_text2",
  243. text: "自定义字段2",
  244. width: 100,
  245. hidden: true,
  246. initHidden: false,
  247. editor: {
  248. xtype: "textfield"
  249. },
  250. }, {
  251. dataIndex: "vd_text3",
  252. text: "自定义字段3",
  253. width: 100,
  254. hidden: true,
  255. initHidden: false,
  256. editor: {
  257. xtype: "textfield"
  258. },
  259. }, {
  260. dataIndex: "vd_text4",
  261. text: "自定义字段4",
  262. width: 100,
  263. hidden: true,
  264. initHidden: false,
  265. editor: {
  266. xtype: "textfield"
  267. },
  268. }, {
  269. dataIndex: "vd_text5",
  270. text: "自定义字段5",
  271. width: 100,
  272. hidden: true,
  273. initHidden: false,
  274. editor: {
  275. xtype: "textfield"
  276. },
  277. }]
  278. },
  279. detail2: {
  280. xtype: "detailGridField",
  281. name: 'detail2',
  282. storeModel: 'saas.model.money.Verification2',
  283. detnoColumn: 'vcd_detno',
  284. deleteDetailUrl: '/api/money/verification/deleteDetail2',
  285. columnWidth: 1,
  286. columns: [{
  287. text: 'ID',
  288. dataIndex: 'id',
  289. hidden: true
  290. }, {
  291. text: '来源ID',
  292. dataIndex: 'vcd_slid',
  293. hidden: true
  294. }, {
  295. text: '来源单号',
  296. dataIndex: 'vcd_slcode',
  297. width: 150,
  298. allowBlank: false,
  299. editor: {
  300. displayField: "display",
  301. editable: true,
  302. format: "",
  303. hideTrigger: false,
  304. maxLength: 100.0,
  305. minValue: null,
  306. positiveNum: false,
  307. queryMode: "local",
  308. store: null,
  309. valueField: "value",
  310. xtype: "oriOrderMutiDbfindTrigger"
  311. }
  312. }, {
  313. text: '业务类型',
  314. dataIndex: "vcd_slkind",
  315. width: 110
  316. }, {
  317. text: "单据日期",
  318. dataIndex: "vcd_sldate",
  319. xtype: 'datecolumn',
  320. width: 110
  321. }, {
  322. text: "单据金额(元)",
  323. xtype: 'numbercolumn',
  324. dataIndex: "vcd_amount",
  325. width: 110,
  326. renderer: function (v, m, r) {
  327. return saas.util.BaseUtil.numberFormat(v, 2, true);
  328. },
  329. summaryType: 'sum',
  330. summaryRenderer: function (v, d, f, m) {
  331. return saas.util.BaseUtil.numberFormat(v, 2, true);
  332. }
  333. }, {
  334. text: "已核销金额(元)",
  335. xtype: 'numbercolumn',
  336. dataIndex: "sl_yamount",
  337. width: 120,
  338. ignore: true,
  339. renderer: function (v, m, r) {
  340. return saas.util.BaseUtil.numberFormat(v, 2, true);
  341. },
  342. summaryType: 'sum',
  343. summaryRenderer: function (v, d, f, m) {
  344. return saas.util.BaseUtil.numberFormat(v, 2, true);
  345. }
  346. }, {
  347. text: "未核销金额(元)",
  348. xtype: 'numbercolumn',
  349. dataIndex: "sl_namount",
  350. width: 120,
  351. ignore: true,
  352. renderer: function (v, m, r) {
  353. return saas.util.BaseUtil.numberFormat(v, 2, true);
  354. },
  355. summaryType: 'sum',
  356. summaryRenderer: function (v, d, f, m) {
  357. return saas.util.BaseUtil.numberFormat(v, 2, true);
  358. }
  359. }, {
  360. text: "本次核销金额(元)",
  361. dataIndex: "vcd_nowbalance",
  362. xtype: 'numbercolumn',
  363. width: 150,
  364. allowBlank: false,
  365. editor: {
  366. xtype: "numberfield",
  367. decimalPrecision: 2
  368. },
  369. renderer: function (v, m, r) {
  370. return saas.util.BaseUtil.numberFormat(v, 2, true);
  371. },
  372. summaryType: 'sum',
  373. summaryRenderer: function (v, d, f, m) {
  374. return saas.util.BaseUtil.numberFormat(v, 2, true);
  375. }
  376. }, {
  377. dataIndex: "vcdtext1",
  378. text: "自定义字段1",
  379. width: 100,
  380. hidden: true,
  381. initHidden: false,
  382. editor: {
  383. xtype: "textfield"
  384. },
  385. }, {
  386. dataIndex: "vcdtext2",
  387. text: "自定义字段2",
  388. width: 100,
  389. hidden: true,
  390. initHidden: false,
  391. editor: {
  392. xtype: "textfield"
  393. },
  394. }, {
  395. dataIndex: "vcdtext3",
  396. text: "自定义字段3",
  397. width: 100,
  398. hidden: true,
  399. initHidden: false,
  400. editor: {
  401. xtype: "textfield"
  402. },
  403. }, {
  404. dataIndex: "vcdtext4",
  405. text: "自定义字段4",
  406. width: 100,
  407. hidden: true,
  408. initHidden: false,
  409. editor: {
  410. xtype: "textfield"
  411. },
  412. }, {
  413. dataIndex: "vcdtext5",
  414. text: "自定义字段5",
  415. width: 100,
  416. hidden: true,
  417. initHidden: false,
  418. editor: {
  419. xtype: "textfield"
  420. },
  421. }]
  422. },
  423. other: [{
  424. xtype: 'textfield',
  425. name: 'vc_remark',
  426. columnWidth: 1,
  427. fieldLabel: '备注'
  428. }, {
  429. xtype: "hidden",
  430. name: "creatorId",
  431. fieldLabel: "录入人ID",
  432. readOnly: true
  433. }, {
  434. xtype: "textfield",
  435. name: "creatorName",
  436. fieldLabel: "录入人",
  437. readOnly: true
  438. }, {
  439. xtype: "datefield",
  440. name: "createTime",
  441. fieldLabel: "录入日期",
  442. readOnly: true,
  443. defaultValue: new Date()
  444. }, {
  445. xtype: "hidden",
  446. name: "updaterId",
  447. fieldLabel: "更新人ID",
  448. readOnly: true
  449. }, {
  450. xtype: "hidden",
  451. name: "updaterName",
  452. fieldLabel: "更新人",
  453. readOnly: true
  454. }, {
  455. xtype: "hidden",
  456. name: "updateTime",
  457. fieldLabel: "更新日期",
  458. readOnly: true,
  459. defaultValue: new Date()
  460. }, {
  461. xtype: 'textfield',
  462. name: 'vc_auditman',
  463. fieldLabel: '审核人',
  464. readOnly: true
  465. }, {
  466. xtype: "datefield",
  467. name: "vc_auditdate",
  468. fieldLabel: "审核日期",
  469. readOnly: true
  470. }, {
  471. xtype: "textfield",
  472. name: "vc_text1",
  473. fieldLabel: "自定义字段1",
  474. hidden: true,
  475. initHidden: false
  476. }, {
  477. xtype: "textfield",
  478. name: "vc_text2",
  479. fieldLabel: "自定义字段2",
  480. hidden: true,
  481. initHidden: false
  482. }, {
  483. xtype: "textfield",
  484. name: "vc_text3",
  485. fieldLabel: "自定义字段3",
  486. hidden: true,
  487. initHidden: false
  488. }, {
  489. xtype: "textfield",
  490. name: "vc_text4",
  491. fieldLabel: "自定义字段4",
  492. hidden: true,
  493. initHidden: false
  494. }, {
  495. xtype: "textfield",
  496. name: "vc_text5",
  497. fieldLabel: "自定义字段5",
  498. hidden: true,
  499. initHidden: false
  500. }],
  501. // 预收冲应收
  502. receipts_offset_receivable: {
  503. main: [{
  504. xtype: 'hidden',
  505. fieldLabel: '客户名称',
  506. name: 'vc_custid',
  507. allowBlank: false,
  508. listeners: {
  509. change: 'clearDetails'
  510. }
  511. }, {
  512. fieldLabel: '客户编号',
  513. xtype: 'hidden',
  514. name: 'vc_custcode',
  515. }, {
  516. fieldLabel: '客户名称',
  517. xtype: 'customerDbfindTrigger',
  518. name: 'vc_custname',
  519. allowBlank: false
  520. }, {
  521. xtype: 'condbfindtrigger',
  522. fieldLabel: '币别汇率',
  523. allowBlank: false,
  524. dbType: 'currencyDbfindTrigger',
  525. dbfinds: [{
  526. from: 'cr_name',
  527. to: 'vc_currency'
  528. }, {
  529. from: 'cr_rate',
  530. to: 'vc_rate'
  531. }],
  532. // listeners: {
  533. // change: 'clearDetails'
  534. // },
  535. supFieldConfig: {
  536. xtype: 'numberfield',
  537. readOnly: false,
  538. defaultReadOnly: false,
  539. decimalPrecision: 6,
  540. vtype: 'positiveNumber',
  541. listeners: {
  542. change: function(f, v) {
  543. var defaultCurrency = Ext.getCmp('mainView').getViewModel().get('defaultCurrency');
  544. f.setReadOnly(f.ownerCt.items.items[0].value == defaultCurrency);
  545. }
  546. }
  547. },
  548. }, {
  549. fieldLabel: '日期',
  550. xtype: 'datefield',
  551. defaultValue: new Date(),
  552. allowBlank: false,
  553. name: 'vc_date'
  554. },{
  555. xtype: 'hidden',
  556. name: 'vc_amount1',
  557. thousandSeparator: ',',
  558. fieldLabel: '核销金额(元)'
  559. }, {
  560. xtype: "hidden",
  561. name: "vc_amount2",
  562. thousandSeparator: ',',
  563. fieldLabel: "未核销金额(元)"
  564. }],
  565. details: ['detail1', 'detail2'],
  566. other: ['other']
  567. },
  568. // 预付冲应付
  569. prepaid_offset_payable: {
  570. main: [{
  571. xtype: 'hidden',
  572. name: 'vc_vendid',
  573. fieldLabel: '供应商名称',
  574. allowBlank: false,
  575. listeners: {
  576. change: 'clearDetails'
  577. }
  578. }, {
  579. xtype: "hidden",
  580. name: "vc_vendcode",
  581. fieldLabel: "供应商编号"
  582. }, {
  583. xtype: "vendorDbfindTrigger",
  584. name: "vc_vendname",
  585. fieldLabel: "供应商名称",
  586. allowBlank: false
  587. }, {
  588. xtype: 'condbfindtrigger',
  589. fieldLabel: '币别汇率',
  590. allowBlank: false,
  591. dbType: 'currencyDbfindTrigger',
  592. dbfinds: [{
  593. from: 'cr_name',
  594. to: 'vc_currency'
  595. }, {
  596. from: 'cr_rate',
  597. to: 'vc_rate'
  598. }],
  599. // listeners: {
  600. // change: 'clearDetails'
  601. // },
  602. supFieldConfig: {
  603. xtype: 'numberfield',
  604. readOnly: false,
  605. defaultReadOnly: false,
  606. decimalPrecision: 6,
  607. vtype: 'positiveNumber',
  608. listeners: {
  609. change: function(f, v) {
  610. var defaultCurrency = Ext.getCmp('mainView').getViewModel().get('defaultCurrency');
  611. f.setReadOnly(f.ownerCt.items.items[0].value == defaultCurrency);
  612. }
  613. }
  614. },
  615. }, {
  616. fieldLabel: '日期',
  617. xtype: 'datefield',
  618. defaultValue: new Date(),
  619. allowBlank: false,
  620. name: 'vc_date'
  621. }, {
  622. xtype: 'hidden',
  623. name: 'vc_amount1',
  624. thousandSeparator: ',',
  625. fieldLabel: '核销金额(元)'
  626. }, {
  627. xtype: "hidden",
  628. name: "vc_amount2",
  629. thousandSeparator: ',',
  630. fieldLabel: "未核销金额(元)"
  631. }],
  632. details: ['detail1', 'detail2'],
  633. other: ['other']
  634. },
  635. // 应收冲应付
  636. receivable_offset_payable: {
  637. main: [{
  638. fieldLabel: '客户名称',
  639. xtype: 'textfield',
  640. name: 'vc_custid',
  641. hidden: true,
  642. listeners: {
  643. change: 'clearDetail0'
  644. }
  645. }, {
  646. fieldLabel: '客户编号',
  647. xtype: 'textfield',
  648. name: 'vc_custcode',
  649. hidden: true
  650. }, {
  651. fieldLabel: '客户名称',
  652. xtype: 'customerDbfindTrigger',
  653. name: 'vc_custname',
  654. allowBlank: false
  655. }, {
  656. xtype: 'hidden',
  657. name: 'vc_vendid',
  658. fieldLabel: '供应商',
  659. listeners: {
  660. change: 'clearDetail1'
  661. }
  662. }, {
  663. xtype: "hidden",
  664. name: "vc_vendcode",
  665. fieldLabel: "供应商编号"
  666. }, {
  667. xtype: "vendorDbfindTrigger",
  668. name: "vc_vendname",
  669. fieldLabel: "供应商名称",
  670. allowBlank: false,
  671. dbfinds: [{
  672. from: 'id',
  673. to: 'vc_vendid',
  674. ignore: true
  675. }, {
  676. from: 've_code',
  677. to: 'vc_vendcode'
  678. }, {
  679. from: 've_name',
  680. to: 'vc_vendname'
  681. }]
  682. }, {
  683. xtype: 'condbfindtrigger',
  684. fieldLabel: '币别汇率',
  685. allowBlank: false,
  686. dbType: 'currencyDbfindTrigger',
  687. dbfinds: [{
  688. from: 'cr_name',
  689. to: 'vc_currency'
  690. }, {
  691. from: 'cr_rate',
  692. to: 'vc_rate'
  693. }],
  694. // listeners: {
  695. // change: 'clearDetails'
  696. // },
  697. supFieldConfig: {
  698. xtype: 'numberfield',
  699. readOnly: false,
  700. defaultReadOnly: false,
  701. decimalPrecision: 6,
  702. vtype: 'positiveNumber',
  703. listeners: {
  704. change: function(f, v) {
  705. var defaultCurrency = Ext.getCmp('mainView').getViewModel().get('defaultCurrency');
  706. f.setReadOnly(f.ownerCt.items.items[0].value == defaultCurrency);
  707. }
  708. }
  709. },
  710. }, {
  711. fieldLabel: '日期',
  712. xtype: 'datefield',
  713. defaultValue: new Date(),
  714. allowBlank: false,
  715. name: 'vc_date'
  716. },{
  717. xtype: 'hidden',
  718. name: 'vc_amount1',
  719. thousandSeparator: ',',
  720. fieldLabel: '核销金额(元)'
  721. }, {
  722. xtype: "hidden",
  723. name: "vc_amount2",
  724. thousandSeparator: ',',
  725. fieldLabel: "未核销金额(元)"
  726. }],
  727. details: ['detail1', 'detail2'],
  728. other: ['other']
  729. },
  730. // 应收转应收
  731. receivable_to_receivable: {
  732. main: [{
  733. fieldLabel: '转出客户',
  734. xtype: 'textfield',
  735. name: 'vc_custid',
  736. hidden: true,
  737. listeners: {
  738. change: 'clearDetail0'
  739. }
  740. }, {
  741. fieldLabel: '转出客户编号',
  742. xtype: 'textfield',
  743. name: 'vc_custcode',
  744. hidden: true
  745. }, {
  746. fieldLabel: '转出客户',
  747. xtype: 'customerDbfindTrigger',
  748. name: 'vc_custname',
  749. allowBlank: false,
  750. }, {
  751. fieldLabel: '转入客户id',
  752. xtype: 'textfield',
  753. name: 'vc_turncustid',
  754. hidden: true
  755. }, {
  756. fieldLabel: '转入客户编号',
  757. xtype: 'textfield',
  758. name: 'vc_turncustcode',
  759. hidden: true
  760. }, {
  761. fieldLabel: '转入客户',
  762. xtype: 'customerDbfindTrigger',
  763. name: 'vc_turncustname',
  764. allowBlank: false,
  765. }, {
  766. xtype: 'condbfindtrigger',
  767. fieldLabel: '币别汇率',
  768. allowBlank: false,
  769. dbType: 'currencyDbfindTrigger',
  770. dbfinds: [{
  771. from: 'cr_name',
  772. to: 'vc_currency'
  773. }, {
  774. from: 'cr_rate',
  775. to: 'vc_rate'
  776. }],
  777. // listeners: {
  778. // change: 'clearDetails'
  779. // },
  780. supFieldConfig: {
  781. xtype: 'numberfield',
  782. readOnly: false,
  783. defaultReadOnly: false,
  784. decimalPrecision: 6,
  785. vtype: 'positiveNumber',
  786. listeners: {
  787. change: function(f, v) {
  788. var defaultCurrency = Ext.getCmp('mainView').getViewModel().get('defaultCurrency');
  789. f.setReadOnly(f.ownerCt.items.items[0].value == defaultCurrency);
  790. }
  791. }
  792. },
  793. }, {
  794. fieldLabel: '日期',
  795. xtype: 'datefield',
  796. defaultValue: new Date(),
  797. allowBlank: false,
  798. name: 'vc_date'
  799. },{
  800. xtype: 'hidden',
  801. name: 'vc_amount1',
  802. thousandSeparator: ',',
  803. fieldLabel: '核销金额(元)'
  804. }, {
  805. xtype: "hidden",
  806. name: "vc_amount2",
  807. thousandSeparator: ',',
  808. fieldLabel: "未核销金额(元)"
  809. }],
  810. details: ['detail1'],
  811. other: ['other']
  812. },
  813. // 应付转应付
  814. payable_to_payable: {
  815. main: [{
  816. fieldLabel: '转出供应商',
  817. xtype: 'textfield',
  818. name: 'vc_vendid',
  819. hidden: true,
  820. listeners: {
  821. change: 'clearDetail0'
  822. }
  823. }, {
  824. fieldLabel: '转出供应商编号',
  825. xtype: 'textfield',
  826. name: 'vc_vendcode',
  827. hidden: true
  828. }, {
  829. fieldLabel: '转出供应商',
  830. xtype: 'vendorDbfindTrigger',
  831. name: 'vc_vendname',
  832. allowBlank: false,
  833. }, {
  834. fieldLabel: '转入供应商id',
  835. xtype: 'textfield',
  836. name: 'vc_turnvendid',
  837. hidden: true
  838. }, {
  839. fieldLabel: '转入供应商编号',
  840. xtype: 'textfield',
  841. name: 'vc_turnvendcode',
  842. hidden: true
  843. }, {
  844. fieldLabel: '转入供应商',
  845. xtype: 'vendorDbfindTrigger',
  846. name: 'vc_turnvendname',
  847. allowBlank: false,
  848. }, {
  849. xtype: 'condbfindtrigger',
  850. fieldLabel: '币别汇率',
  851. allowBlank: false,
  852. dbType: 'currencyDbfindTrigger',
  853. dbfinds: [{
  854. from: 'cr_name',
  855. to: 'vc_currency'
  856. }, {
  857. from: 'cr_rate',
  858. to: 'vc_rate'
  859. }],
  860. // listeners: {
  861. // change: 'clearDetails'
  862. // },
  863. supFieldConfig: {
  864. xtype: 'numberfield',
  865. readOnly: false,
  866. defaultReadOnly: false,
  867. decimalPrecision: 6,
  868. vtype: 'positiveNumber',
  869. listeners: {
  870. change: function(f, v) {
  871. var defaultCurrency = Ext.getCmp('mainView').getViewModel().get('defaultCurrency');
  872. f.setReadOnly(f.ownerCt.items.items[0].value == defaultCurrency);
  873. }
  874. }
  875. },
  876. },{
  877. fieldLabel: '日期',
  878. xtype: 'datefield',
  879. defaultValue: new Date(),
  880. allowBlank: false,
  881. name: 'vc_date'
  882. }, {
  883. xtype: 'hidden',
  884. name: 'vc_amount1',
  885. thousandSeparator: ',',
  886. fieldLabel: '核销金额(元)'
  887. }, {
  888. xtype: "hidden",
  889. name: "vc_amount2",
  890. thousandSeparator: ',',
  891. fieldLabel: "未核销金额(元)"
  892. }],
  893. details: ['detail1'],
  894. other: ['other']
  895. },
  896. defaultConditions: {
  897. receipts_offset_receivable: ['ifnull(sl_currency,\'RMB\') = \'{vc_currency}\' and ifnull(sl_custid,0)={vc_custid} and ifnull(sl_preamount,0)<>0 and ifnull(sl_namount,0)<>0 ' +
  898. 'and sl_ym<=DATE_FORMAT(str_to_date(\'{vc_date}\', \'%Y-%m-%d\'),\'%Y%m\')' +
  899. ' and ((sl_kind=\'收款单\') or ' +
  900. '( sl_id =(select sl_id from subledger where ifnull(sl_custid,0)={vc_custid} and sl_kind=\'期初余额\' ' +
  901. 'and sl_ym>=(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) order by sl_ym limit 1)))',
  902. 'ifnull(sl_currency,\'RMB\') = \'{vc_currency}\' and ifnull(sl_custid,0)={vc_custid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0 ' +
  903. 'and sl_ym<=DATE_FORMAT(str_to_date(\'{vc_date}\', \'%Y-%m-%d\'),\'%Y%m\')' +
  904. ' and (sl_kind in (\'出货单\',\'销售退货单\') or '+
  905. '( sl_id =(select sl_id from subledger where ifnull(sl_custid,0)={vc_custid} and sl_kind=\'期初余额\' ' +
  906. 'and sl_ym>=(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) order by sl_ym limit 1)))'
  907. ],
  908. prepaid_offset_payable: ['ifnull(sl_currency,\'RMB\') = \'{vc_currency}\' and ifnull(sl_vendid,0)={vc_vendid} and ifnull(sl_preamount,0)<>0 and ifnull(sl_namount,0)<>0 ' +
  909. 'and sl_ym<=DATE_FORMAT(str_to_date(\'{vc_date}\', \'%Y-%m-%d\'),\'%Y%m\')' +
  910. ' and ((sl_kind=\'付款单\') or ' +
  911. '( sl_id =(select sl_id from subledger where ifnull(sl_vendid,0)={vc_vendid} and sl_kind=\'期初余额\'' +
  912. 'and sl_ym>=(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) order by sl_ym limit 1)))',
  913. 'ifnull(sl_vendid,0)={vc_vendid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0' +
  914. 'and sl_ym<=DATE_FORMAT(str_to_date(\'{vc_date}\', \'%Y-%m-%d\'),\'%Y%m\')' +
  915. ' and (sl_kind in (\'采购验收单\',\'采购验退单\') or (' +
  916. '( sl_id =(select sl_id from subledger where ifnull(sl_vendid,0)={vc_vendid} and sl_kind=\'期初余额\'' +
  917. 'and sl_ym>=(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) order by sl_ym limit 1)))'
  918. ],
  919. receivable_offset_payable: ['ifnull(sl_currency,\'RMB\') = \'{vc_currency}\' and ifnull(sl_custid,0)={vc_custid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0 ' +
  920. 'and sl_ym<=DATE_FORMAT(str_to_date(\'{vc_date}\', \'%Y-%m-%d\'),\'%Y%m\')' +
  921. ' and ((sl_kind in (\'出货单\',\'销售退货单\')) or ' +
  922. '( sl_id =(select sl_id from subledger where ifnull(sl_custid,0)={vc_custid} and sl_kind=\'期初余额\' ' +
  923. 'and sl_ym>=(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) order by sl_ym limit 1)))',
  924. 'ifnull(sl_currency,\'RMB\') = \'{vc_currency}\' and ifnull(sl_vendid,0)={vc_vendid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0' +
  925. 'and sl_ym<=DATE_FORMAT(str_to_date(\'{vc_date}\', \'%Y-%m-%d\'),\'%Y%m\')' +
  926. ' and (sl_kind in (\'采购验收单\',\'采购验退单\') or ' +
  927. '( sl_id =(select sl_id from subledger where ifnull(sl_vendid,0)={vc_vendid} and sl_kind=\'期初余额\' ' +
  928. 'and sl_ym>=(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) order by sl_ym limit 1)))'
  929. ],
  930. receivable_to_receivable: ['ifnull(sl_currency,\'RMB\') = \'{vc_currency}\' and ifnull(sl_custid,0)={vc_custid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0 ' +
  931. 'and sl_ym<=DATE_FORMAT(str_to_date(\'{vc_date}\', \'%Y-%m-%d\'),\'%Y%m\')' +
  932. ' and ((sl_kind in (\'出货单\',\'销售退货单\')) or' +
  933. '( sl_id =(select sl_id from subledger where ifnull(sl_custid,0)={vc_custid} and sl_kind=\'期初余额\' ' +
  934. 'and sl_ym>=(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) order by sl_ym limit 1)))'
  935. ],
  936. payable_to_payable: ['ifnull(sl_currency,\'RMB\') = \'{vc_currency}\' and ifnull(sl_vendid,0)={vc_vendid} and ifnull(sl_preamount,0)=0 and ifnull(sl_namount,0)<>0' +
  937. 'and sl_ym<=DATE_FORMAT(str_to_date(\'{vc_date}\', \'%Y-%m-%d\'),\'%Y%m\')' +
  938. ' and (sl_kind in (\'采购验收单\',\'采购验退单\') or ' +
  939. '( sl_id =(select sl_id from subledger where ifnull(sl_vendid,0)={vc_vendid} and sl_kind=\'期初余额\' ' +
  940. 'and sl_ym>=(select min(pd_detno) from periodsdetail where pd_status=0 and periodsdetail.companyid=subledger.companyid) order by sl_ym limit 1)))'
  941. ]
  942. }
  943. },
  944. });
  945. }
  946. });