VoucherTP.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.gla.VoucherTP', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. BaseUtil: Ext.create('erp.util.BaseUtil'),
  6. GridUtil: Ext.create('erp.util.GridUtil'),
  7. views:[
  8. 'fa.gla.VoucherTP','core.form.Panel','core.grid.Panel2','core.toolbar.Toolbar',
  9. 'core.button.Add','core.button.Save','core.button.Close', 'core.button.Update', 'core.button.VoCreate',
  10. 'core.button.Delete','core.form.YnField','core.button.DeleteDetail', 'core.button.ExportExcelButton',
  11. 'core.trigger.DbfindTrigger','core.grid.YnColumn','core.form.YnField', 'core.trigger.CateTreeDbfindTrigger'
  12. ],
  13. init:function(){
  14. var me = this;
  15. this.control({
  16. '#vo_id': {
  17. afterrender: function(f) {
  18. var id = f.getValue();
  19. if (Ext.isEmpty(id) || id == 0) {
  20. me.getMonth();
  21. }
  22. }
  23. },
  24. 'erpSaveButton': {
  25. click: function(btn){
  26. var form = me.getForm(btn);
  27. if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
  28. me.BaseUtil.getRandomNumber();//自动添加编号
  29. }
  30. //保存之前的一些前台的逻辑判定
  31. this.beforeSave();
  32. }
  33. },
  34. 'erpCloseButton': {
  35. click: function(btn){
  36. this.FormUtil.beforeClose(this);
  37. }
  38. },
  39. 'erpUpdateButton': {
  40. click: function(btn){
  41. this.beforeUpdate();
  42. }
  43. },
  44. 'erpDeleteButton': {
  45. click: function(btn){
  46. me.FormUtil.onDelete(Ext.getCmp('vo_id').value);
  47. }
  48. },
  49. 'erpAddButton': {
  50. click: function(){
  51. var tab = me.FormUtil.getActiveTab();
  52. me.FormUtil.onAdd(null, '新增凭证模板', 'jsps/fa/gla/vouchertp.jsp');
  53. setTimeout(function(){
  54. if(tab) {
  55. tab.close();
  56. }
  57. }, 200);
  58. }
  59. },
  60. 'erpVoCreateButton': {
  61. click: function() {
  62. me.onVoCreate(Ext.getCmp('vo_id').value);
  63. }
  64. },
  65. 'erpDeleteDetailButton': {
  66. afterrender: function(btn){
  67. //将当前行的 借方/贷方 以及外币借方/外币贷方 互换
  68. btn.ownerCt.add({
  69. text: '借贷调换',
  70. width: 85,
  71. disabled: true,
  72. cls: 'x-btn-gray',
  73. id: 'replace'
  74. });
  75. //当前行的借方 = 其它行的贷方总额-其它行的借方总额
  76. btn.ownerCt.add({
  77. text: '找平',
  78. width: 65,
  79. disabled: true,
  80. cls: 'x-btn-gray',
  81. id: 'level'
  82. });
  83. }
  84. },
  85. 'erpGridPanel2': {
  86. afterrender: function(grid){
  87. var f = Ext.getCmp('vo_currencytype');
  88. if(f) {
  89. me.changeCurrencyType(f);
  90. }
  91. Ext.defer(function(){
  92. Ext.EventManager.addListener(document.body, 'keydown', function(e){
  93. if(e.getKey() == 187 && ['vd_debit', 'vd_credit'].indexOf(e.target.name) > -1) {
  94. me.levelOut(e.target);
  95. }
  96. });
  97. }, 200);
  98. },
  99. storeloaded: function(grid){
  100. var f = Ext.getCmp('vo_currencytype');
  101. if(f) {
  102. me.changeCurrencyType(f);
  103. }
  104. },
  105. itemclick: function(selModel, record){
  106. var grid = selModel.ownerCt;
  107. if(!grid.readOnly) {
  108. this.GridUtil.onGridItemClick(selModel, record);
  109. var btn = Ext.getCmp('replace');
  110. btn.setDisabled(false);
  111. btn = Ext.getCmp('level');
  112. btn.setDisabled(false);
  113. }
  114. }
  115. },
  116. 'field[name=vo_currencytype]': {
  117. change: function(c){
  118. me.changeCurrencyType(c);
  119. }
  120. },
  121. /**
  122. * 借调互换
  123. */
  124. 'button[id=replace]': {
  125. click: function(btn){
  126. var grid = btn.ownerCt.ownerCt;
  127. var record = grid.selModel.lastSelected;
  128. if(record){
  129. var v1 = record.data['vd_debit'];//借方
  130. var v2 = record.data['vd_credit'];//贷方
  131. var v3 = record.data['vd_doubledebit'];//原币借方
  132. var v4 = record.data['vd_doublecredit'];//原币贷方
  133. record.set('vd_debit', v2);
  134. record.set('vd_credit', v1);
  135. record.set('vd_doubledebit', v4);
  136. record.set('vd_doublecredit', v3);
  137. }
  138. }
  139. },
  140. /**
  141. * 找平
  142. */
  143. 'button[id=level]': {
  144. click: me.levelOut
  145. },
  146. 'field[name=vd_doubledebit]': {//原币借方
  147. focus : function(f) {
  148. var grid = Ext.getCmp('grid'),
  149. record = grid.selModel.lastSelected,
  150. val = record.get('vd_doublecredit');
  151. if( val != 0 ) {
  152. f.setReadOnly(true);
  153. } else {
  154. f.setReadOnly(false);
  155. }
  156. },
  157. change: function(f){
  158. if(!f.ownerCt && f.value != null && f.value != 0 ){
  159. var grid = Ext.getCmp('grid');
  160. var record = grid.selModel.lastSelected,
  161. rate = record.data['vd_rate'];
  162. if(rate != null && rate > 0){
  163. var val = Number((f.value*rate).toFixed(2));
  164. if(record.data['vd_debit'] != val) {
  165. record.set('vd_debit', val);//本币
  166. }
  167. }
  168. }
  169. }
  170. },
  171. 'field[name=vd_doublecredit]': {//原币贷方
  172. focus : function(f) {
  173. var grid = Ext.getCmp('grid'),
  174. record = grid.selModel.lastSelected,
  175. val = record.get('vd_doubledebit');
  176. if( val != 0 ) {
  177. f.setReadOnly(true);
  178. } else {
  179. f.setReadOnly(false);
  180. }
  181. },
  182. change: function(f){
  183. if(!f.ownerCt && f.value != null && f.value != 0 ){
  184. var record = Ext.getCmp('grid').selModel.lastSelected,
  185. rate = record.data['vd_rate'];
  186. if(rate != null && rate > 0){
  187. var val = Number((f.value*rate).toFixed(2));
  188. if(record.data['vd_credit'] != val) {
  189. record.set('vd_credit', val);//本币
  190. }
  191. }
  192. }
  193. }
  194. },
  195. 'field[name=vd_currency]': {
  196. aftertrigger: function(f){
  197. if(f.value != null && f.value != '' ){
  198. var record = Ext.getCmp('grid').selModel.lastSelected;
  199. if(record.data['vd_rate'] != null && record.data['vd_rate'] > 0){
  200. if(record.data['vd_doubledebit'] != null){
  201. record.set('vd_debit',
  202. (record.data['vd_doubledebit']*record.data['vd_rate']).toFixed(2));//原币计算本币
  203. }
  204. if(record.data['vd_doublecredit'] != null){
  205. record.set('vd_credit',
  206. (record.data['vd_doublecredit']*record.data['vd_rate']).toFixed(2));//原币计算本币
  207. }
  208. }
  209. }
  210. }
  211. },
  212. 'field[name=vd_explanation]': {
  213. specialkey: function(f, e){//按ENTER自动把摘要复制到下一行
  214. if (e.getKey() == e.ENTER) {
  215. if(f.value != null && f.value != '' ){
  216. var grid = Ext.getCmp('grid'),
  217. record = grid.selModel.lastSelected,
  218. idx = grid.store.indexOf(record),
  219. next = grid.store.getAt(idx + 1);
  220. if(next) {
  221. var v = next.get('vd_explanation');
  222. if(Ext.isEmpty(v))
  223. next.set('vd_explanation', f.value);
  224. }
  225. }
  226. }
  227. },
  228. change: function(f) {
  229. if(f.value == '=') {
  230. var grid = Ext.getCmp('grid'),
  231. record = grid.selModel.lastSelected,
  232. idx = grid.store.indexOf(record),
  233. prev = grid.store.getAt(idx - 1);
  234. if(prev) {
  235. var v = prev.get('vd_explanation');
  236. if(!Ext.isEmpty(v))
  237. f.setValue(v);
  238. }
  239. }
  240. }
  241. },
  242. 'field[name=vd_debit]': {
  243. focus : function(f) {
  244. var grid = Ext.getCmp('grid'),
  245. record = grid.selModel.lastSelected,
  246. val = record.get('vd_credit');
  247. if( val != 0 ) {
  248. f.setReadOnly(true);
  249. } else {
  250. f.setReadOnly(false);
  251. }
  252. },
  253. specialkey: function(f, e){//按ENTER自动把摘要复制到下一行
  254. if (e.getKey() == e.ENTER) {
  255. var grid = Ext.getCmp('grid'),
  256. record = grid.selModel.lastSelected,
  257. val = record.get('vd_explanation'),
  258. idx = grid.store.indexOf(record),
  259. next = grid.store.getAt(idx + 1);
  260. if(!Ext.isEmpty(val)) {
  261. if(next) {
  262. var v = next.get('vd_explanation');
  263. if(Ext.isEmpty(v))
  264. next.set('vd_explanation', val);
  265. }
  266. }
  267. }
  268. }
  269. },
  270. 'field[name=vd_credit]': {
  271. focus : function(f) {
  272. var grid = Ext.getCmp('grid'),
  273. record = grid.selModel.lastSelected,
  274. val = record.get('vd_debit');
  275. if( val != 0 ) {
  276. f.setReadOnly(true);
  277. } else {
  278. f.setReadOnly(false);
  279. }
  280. },
  281. specialkey: function(f, e){//按ENTER自动把摘要复制到下一行
  282. if (e.getKey() == e.ENTER) {
  283. var grid = Ext.getCmp('grid'),
  284. record = grid.selModel.lastSelected,
  285. val = record.get('vd_explanation'),
  286. idx = grid.store.indexOf(record),
  287. next = grid.store.getAt(idx + 1);
  288. if(!Ext.isEmpty(val)) {
  289. if(next) {
  290. var v = next.get('vd_explanation');
  291. if(Ext.isEmpty(v))
  292. next.set('vd_explanation', val);
  293. }
  294. }
  295. }
  296. }
  297. },
  298. 'dbfindtrigger[name=vd_catecode]': {
  299. aftertrigger: function(f){
  300. var grid = Ext.getCmp('grid'),
  301. record = grid.selModel.lastSelected;
  302. var type = record.get('ca_assname'), ass = record.get('ass') || [];
  303. if(!Ext.isEmpty(type)){
  304. var oldType = Ext.Array.concate(ass, '#', 'vds_asstype');
  305. if(type != oldType) {
  306. var idx = me.getRecordIndex(grid, record), dd = [];
  307. Ext.Array.each(type.split('#'), function(t){
  308. dd.push({
  309. vds_vdid: idx,
  310. vds_asstype: t
  311. });
  312. });
  313. record.set('ass', dd);
  314. }
  315. } else
  316. record.set('ass', null);
  317. }
  318. },
  319. 'cateTreeDbfindTrigger[name=vd_catecode]': {
  320. aftertrigger: function(f, d){
  321. var grid = Ext.getCmp('grid'),
  322. record = grid.selModel.lastSelected;
  323. var type = record.get('ca_assname'), ass = record.get('ass') || [];
  324. if(!Ext.isEmpty(type)){
  325. var oldType = Ext.Array.concate(ass, '#', 'vds_asstype');
  326. if(type != oldType) {
  327. var idx = me.getRecordIndex(grid, record), dd = [];
  328. Ext.Array.each(type.split('#'), function(t){
  329. dd.push({
  330. vds_vdid: idx,
  331. vds_asstype: t
  332. });
  333. });
  334. record.set('ass', dd);
  335. }
  336. } else
  337. record.set('ass', null);
  338. },
  339. afterrender: function(f){
  340. f.onTriggerClick = function(){
  341. me.showCateTree(f);
  342. };
  343. }
  344. }
  345. });
  346. },
  347. getForm: function(btn){
  348. return btn.ownerCt.ownerCt;
  349. },
  350. getRecordIndex: function(grid, record) {
  351. var me = this, id = record.get(grid.keyField);
  352. if(!id || id == 0) {
  353. me.rowCounter = me.rowCounter || 0;
  354. id = --me.rowCounter;
  355. record.set(grid.keyField, id);
  356. }
  357. return id;
  358. },
  359. changeCurrencyType: function(c){
  360. var grid = Ext.getCmp('grid');
  361. if(grid) {
  362. var cols = grid.headerCt.getGridColumns();
  363. if(c.checked){
  364. Ext.each(cols, function(cn){
  365. if(cn.dataIndex == 'vd_doubledebit' || cn.dataIndex == 'vd_doublecredit'){
  366. cn.width = 110;
  367. cn.setVisible(true);
  368. }
  369. if(cn.dataIndex == 'vd_currency' || cn.dataIndex == 'vd_rate'){
  370. cn.width = 60;
  371. cn.setVisible(true);
  372. }
  373. if(cn.dataIndex == 'vd_debit'){
  374. cn.setText('本币借方');
  375. }
  376. if(cn.dataIndex == 'vd_credit'){
  377. cn.setText('本币贷方');
  378. }
  379. });
  380. } else {
  381. Ext.each(cols, function(cn){
  382. if(cn.dataIndex == 'vd_currency' || cn.dataIndex == 'vd_rate'
  383. || cn.dataIndex == 'vd_doubledebit' || cn.dataIndex == 'vd_doublecredit'){
  384. cn.setVisible(false);
  385. }
  386. if(cn.dataIndex == 'vd_debit'){
  387. cn.setText('借方');
  388. }
  389. if(cn.dataIndex == 'vd_credit'){
  390. cn.setText('贷方');
  391. }
  392. });
  393. }
  394. }
  395. },
  396. beforeSave: function(){
  397. var me = this;
  398. var form = Ext.getCmp('form');
  399. if(! me.FormUtil.checkForm()){
  400. return;
  401. }
  402. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  403. me.FormUtil.getSeqId(form);
  404. }
  405. var detail = Ext.getCmp('grid');
  406. var ass = [];
  407. detail.store.each(function(record){
  408. if(record.get('ca_assname')) {
  409. var s = record.get('ass') || [];
  410. Ext.Array.each(s, function(t, i){
  411. t.vds_id = t.vds_id || 0;
  412. t.vds_detno = i + 1;
  413. t.vds_vdid = String(t.vds_vdid);
  414. ass.push(t);
  415. });
  416. }
  417. });
  418. var param2 = Ext.encode(ass);
  419. Ext.each(detail.store.data.items, function(item, idx){
  420. if(item.data.vd_id == null || item.data.vd_id == 0){
  421. item.data.vd_id = -idx;
  422. }
  423. });
  424. var param1 = me.GridUtil.getGridStore(detail);
  425. if(detail.necessaryField.length > 0 && (param1.length == 0)){
  426. showError($I18N.common.grid.emptyDetail);
  427. return;
  428. }
  429. var ex = new Array(),d;
  430. Ext.each(param1, function(){//摘要未填写
  431. d = Ext.decode(this);
  432. if(Ext.isEmpty(d.vd_explanation)) {
  433. ex.push(d.vd_detno);
  434. }
  435. });
  436. if(ex.length > 0) {
  437. warnMsg("摘要未填写,序号:" + ex.join(',') + " 是否继续保存?", function(btn){
  438. if(btn == 'yes') {
  439. me.onSave(form, param1, param2);;
  440. }
  441. });
  442. } else {
  443. me.onSave(form, param1, param2);
  444. }
  445. },
  446. onSave: function(form, param1, param2) {
  447. var me = this;
  448. param1 = param1 == null ? [] : "[" + param1.toString().replace(/\\/g,"%") + "]";
  449. param2 = param2 == null ? [] : "[" + param2.toString().replace(/\\/g,"%") + "]";
  450. if(form.getForm().isValid()){
  451. Ext.each(form.items.items, function(item){
  452. if(item.xtype == 'numberfield'){
  453. if(item.value == null || item.value == ''){
  454. item.setValue(0);
  455. }
  456. }
  457. });
  458. var r = form.getValues();
  459. r.vo_currencytype = Ext.getCmp('vo_currencytype').value ? -1 : 0;
  460. me.FormUtil.save(r, param1, param2);
  461. }else{
  462. me.FormUtil.checkForm();
  463. }
  464. },
  465. beforeUpdate: function(){
  466. var me = this;
  467. var form = Ext.getCmp('form');
  468. if(! me.FormUtil.checkForm()){
  469. return;
  470. }
  471. if(Ext.getCmp(form.keyField).value == null || Ext.getCmp(form.keyField).value == ''){
  472. me.FormUtil.getSeqId(form);
  473. }
  474. var detail = Ext.getCmp('grid');
  475. var ass = [];
  476. detail.store.each(function(record){
  477. if(record.get('ca_assname')) {
  478. var s = record.get('ass') || [];
  479. Ext.Array.each(s, function(t, i){
  480. t.vds_id = t.vds_id || 0;
  481. t.vds_detno = i + 1;
  482. t.vds_vdid = String(t.vds_vdid);
  483. ass.push(t);
  484. });
  485. }
  486. });
  487. var param1 = me.GridUtil.getGridStore(detail);
  488. var param2 = Ext.encode(ass);
  489. if(me.FormUtil.checkFormDirty(form) == '' && detail.necessaryField.length > 0 && (param1.length == 0) && (param2.length <= 2)){
  490. showError($I18N.common.grid.emptyDetail);
  491. return;
  492. } else {
  493. param1 = param1 == null ? [] : "[" + param1.toString().replace(/\\/g,"%") + "]";
  494. param2 = param2 == null ? [] : "[" + param2.toString().replace(/\\/g,"%") + "]";
  495. if(form.getForm().isValid()){
  496. Ext.each(form.items.items, function(item){
  497. if(item.xtype == 'numberfield'){
  498. if(item.value == null || item.value == ''){
  499. item.setValue(0);
  500. }
  501. }
  502. });
  503. var r = form.getValues();
  504. r.vo_currencytype = Ext.getCmp('vo_currencytype').value ? -1 : 0;
  505. me.FormUtil.update(r, param1, param2);
  506. }else{
  507. me.FormUtil.checkForm();
  508. }
  509. }
  510. },
  511. levelOut:function (target){
  512. var grid = Ext.getCmp('grid');
  513. var record = grid.selModel.lastSelected;
  514. if(record){
  515. var f = Ext.getCmp('vo_currencytype');
  516. var debit = 0;
  517. var credit = 0;
  518. var rate = record.get('vd_rate');
  519. rate = rate == 0 ? 1 : rate;
  520. grid.getStore().each(function(item){
  521. if(item.id != record.id){
  522. debit += item.get('vd_debit');
  523. credit += item.get('vd_credit');
  524. }
  525. });
  526. var targetName = target.name;
  527. if(record.get('vd_debit') != 0)
  528. targetName = 'vd_debit';
  529. else if(record.get('vd_credit') != 0)
  530. targetName = 'vd_credit';
  531. if(targetName && typeof targetName == 'string') {
  532. if(targetName == 'vd_debit') {
  533. debit = credit - debit;
  534. record.set('vd_debit', debit.toFixed(4));
  535. if(f.checked) {
  536. record.set('vd_doubledebit', Number((debit/rate).toFixed(4)));
  537. }
  538. } else if(targetName == 'vd_credit'){
  539. credit = debit - credit;
  540. record.set('vd_credit', credit.toFixed(4));
  541. if(f.checked) {
  542. record.set('vd_doublecredit', Number((credit/rate).toFixed(4)));
  543. }
  544. }
  545. if(target.name == targetName)
  546. target.value = record.get(targetName);
  547. } else {
  548. if(credit > debit) {
  549. record.set('vd_debit', credit - debit);
  550. if(f.checked) {
  551. record.set('vd_doubledebit', Number(((credit - debit)/rate).toFixed(4)));
  552. }
  553. } else {
  554. record.set('vd_credit', debit - credit);
  555. if(f.checked) {
  556. record.set('vd_doublecredit', Number(((debit - credit)/rate).toFixed(4)));
  557. }
  558. }
  559. }
  560. }
  561. },
  562. showCateTree: function(f) {
  563. var cawin = Ext.getCmp('cawin');
  564. if(!cawin) {
  565. cawin = new Ext.window.Window({
  566. id : 'cawin',
  567. title: '科目查找',
  568. height: "100%",
  569. width: "80%",
  570. maximizable : true,
  571. buttonAlign : 'center',
  572. layout : 'anchor',
  573. modal:true,
  574. items: [{
  575. tag : 'iframe',
  576. frame : true,
  577. anchor : '100% 100%',
  578. layout : 'fit',
  579. html : '<iframe id="iframe_dbfind_'+caller+"_"+f.name+"="+f.value+'" src="'+basePath+'jsps/common/catetreepaneldbfind.jsp?key='+f.name+"&dbfind=&caller1="+caller+"&keyValue="+f.value+"&trigger="+f.id+'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>'
  580. }],
  581. buttons : [{
  582. text : '确 认',
  583. iconCls: 'x-button-icon-save',
  584. cls: 'x-btn-gray',
  585. handler : function(btn){
  586. var contentwindow = Ext.getCmp('cawin').body.dom.getElementsByTagName('iframe')[0].contentWindow;
  587. var tree = contentwindow.Ext.getCmp('tree-panel');
  588. var data = tree.getChecked(), record = Ext.getCmp('grid').selModel.lastSelected;
  589. var dbfinds = Ext.getCmp('grid').dbfinds;
  590. if(dbfinds != null && record){
  591. Ext.each(dbfinds, function(dbfind,index){
  592. record.set(dbfind.field, data[0].raw.data[dbfind.dbGridField]);
  593. });
  594. }
  595. f.fireEvent('aftertrigger', f, data);
  596. btn.ownerCt.ownerCt.hide();
  597. }
  598. },{
  599. text : '关 闭',
  600. iconCls: 'x-button-icon-close',
  601. cls: 'x-btn-gray',
  602. handler : function(btn){
  603. btn.ownerCt.ownerCt.hide();
  604. }
  605. }]
  606. });
  607. }
  608. cawin.show();
  609. },
  610. getMonth: function() {
  611. Ext.Ajax.request({
  612. url: basePath + 'fa/getMonth.action',
  613. params: {
  614. votype: 'GL'
  615. },
  616. callback: function(opt, s, r) {
  617. var rs = Ext.decode(r.responseText);
  618. if(rs.data) {
  619. Ext.getCmp('vo_yearmonth').setValue(rs.data.PD_DETNO);
  620. Ext.getCmp('vo_date').setValue(new Date(rs.data.PD_ENDDATE));
  621. }
  622. }
  623. });
  624. },
  625. onVoCreate: function(id) {
  626. Ext.Ajax.request({
  627. url: basePath + 'fa/gla/createvobytp.action',
  628. params: {
  629. id: id
  630. },
  631. callback: function(opt, s, r) {
  632. var rs = Ext.decode(r.responseText);
  633. if(rs.data) {
  634. showMessage('提示', '制作成功!<a href="javascript:openUrl(\'jsps/fa/ars/voucher.jsp?formCondition=vo_idIS' +
  635. + rs.data.vo_id + '&gridCondition=vd_voidIS' + rs.data.vo_id +
  636. '\')">\n凭证号:&lt;' + rs.data.vo_number +
  637. '&gt;\n流水号:&lt;' + rs.data.vo_code + '&gt;</a>');
  638. } else {
  639. showError(rs.exceptionInfo);
  640. }
  641. }
  642. });
  643. }
  644. });