Receivable.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.fp.Receivable', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. GridUtil: Ext.create('erp.util.GridUtil'),
  6. BaseUtil: Ext.create('erp.util.BaseUtil'),
  7. views:[
  8. 'fa.fp.Receivable','core.form.Panel','core.grid.Panel2','core.form.YnField','core.form.MonthDateField','core.form.MultiField','core.form.FileField',
  9. 'core.button.Add','core.button.Submit','core.button.ResSubmit','core.button.Audit','core.button.ResAudit','core.button.Save',
  10. 'core.button.Close','core.button.Upload','core.button.Update','core.button.Delete','core.button.TurnBankRegister',
  11. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.toolbar.Toolbar'
  12. ],
  13. init:function(){
  14. var me = this;
  15. this.control({
  16. 'erpGridPanel2': {
  17. reconfigure: function(grid){
  18. Ext.defer(function(){
  19. var form = grid.ownerCt.down('form'), status = form.down('#' + form.statuscodeField);
  20. if(status && (status.value == 'ENTERING' || status.value == 'AUDITED')) {
  21. grid.readOnly = false;
  22. }
  23. }, 500);
  24. },
  25. itemclick: function(selModel, record){
  26. this.GridUtil.onGridItemClick(selModel, record);
  27. }
  28. },
  29. 'erpAddButton': {
  30. click: function(){
  31. me.FormUtil.onAdd('addReceivable', '新收款', 'jsps/fa/fp/Receivable.jsp');
  32. }
  33. },
  34. 'erpSaveButton': {
  35. click: function(btn){
  36. var form = me.getForm(btn);
  37. this.FormUtil.beforeSave(this);
  38. }
  39. },
  40. 'erpDeleteButton' : {
  41. click: function(btn){
  42. me.FormUtil.onDelete(Ext.getCmp('dcr_id').value);
  43. }
  44. },
  45. 'erpUpdateButton': {
  46. afterrender: function(btn){
  47. var status = Ext.getCmp('dcr_statuscode');
  48. if(status && status.value == 'AUDITED'){
  49. btn.show();
  50. }
  51. },
  52. click: function(btn){
  53. this.FormUtil.onUpdate(this);
  54. }
  55. },
  56. 'erpAuditButton': {
  57. afterrender: function(btn){
  58. var status = Ext.getCmp('dcr_statuscode');
  59. if(status && status.value != 'COMMITED'){
  60. btn.hide();
  61. }
  62. },
  63. click: function(btn){
  64. this.FormUtil.onAudit(Ext.getCmp('dcr_id').value);
  65. }
  66. },
  67. 'erpResAuditButton': {
  68. afterrender: function(btn){
  69. var status = Ext.getCmp('dcr_statuscode');
  70. if(status && status.value != 'AUDITED'){
  71. btn.hide();
  72. }
  73. },
  74. click: function(btn){
  75. this.FormUtil.onResAudit(Ext.getCmp('dcr_id').value);
  76. }
  77. },
  78. 'erpSubmitButton': {
  79. afterrender: function(btn){
  80. var status = Ext.getCmp('dcr_statuscode');
  81. if(status && status.value != 'ENTERING'){
  82. btn.hide();
  83. }
  84. },
  85. click: function(btn){
  86. this.FormUtil.onSubmit(Ext.getCmp('dcr_id').value);
  87. }
  88. },
  89. 'erpResSubmitButton': {
  90. afterrender: function(btn){
  91. var status = Ext.getCmp('dcr_statuscode');
  92. if(status && status.value != 'COMMITED'){
  93. btn.hide();
  94. }
  95. },
  96. click: function(btn){
  97. this.FormUtil.onResSubmit(Ext.getCmp('dcr_id').value);
  98. }
  99. },
  100. 'erpTurnBankRegisterButton':{
  101. afterrender: function(btn){
  102. var status = Ext.getCmp('dcr_statuscode');
  103. if(status && status.value != 'AUDITED'){
  104. btn.hide();
  105. }
  106. },
  107. click:function(btn){
  108. me.batchdeal('Receivable!AccountRegister!Bank', 'dcrd_dcrid=' + Ext.getCmp('dcr_id').value +' and nvl(dcrd_actualsum,0) > nvl(dcrd_turnedamount,0)+nvl(dcrd_thisturnamount,0)', 'fa/ReceivableController/turnBankRegister.action');
  109. }
  110. },
  111. 'erpCloseButton': {
  112. click: function(btn){
  113. me.FormUtil.beforeClose(me);
  114. }
  115. },
  116. 'dbfindtrigger[name=dcr_contractno]' : {
  117. aftertrigger : function(f) {
  118. if (f.value != null && f.value != '') {
  119. me.GridUtil.loadNewStore(Ext.getCmp('grid'), {
  120. caller: caller,
  121. condition: 'dcrd_dcrid=' + Ext.getCmp('dcr_id').value
  122. });
  123. }
  124. }
  125. },
  126. 'numberfield[name=dcr_managefee]':{
  127. change:function(f){
  128. if(f.value == null || f.value ==''){
  129. f.value = 0;
  130. }
  131. var dcr_loanamount = Ext.getCmp('dcr_loanamount').value;
  132. var dcr_interest = Ext.getCmp('dcr_interest').value;
  133. var dcr_managefee = Ext.getCmp('dcr_managefee').value;
  134. var dcr_receivesum = dcr_loanamount + dcr_interest + dcr_managefee;
  135. Ext.getCmp('dcr_receivesum').setValue(dcr_receivesum);
  136. }
  137. },
  138. 'field[name=dcr_accountcode]':{
  139. beforerender:function(field){
  140. var status = Ext.getCmp('dcr_statuscode');
  141. if(status && status.value == 'AUDITED'){
  142. field.readOnly = false;
  143. }
  144. }
  145. }
  146. });
  147. },
  148. batchdeal: function(nCaller, condition, url){
  149. var win = new Ext.window.Window({
  150. id : 'win',
  151. height: "100%",
  152. width: "80%",
  153. maximizable : true,
  154. buttonAlign : 'center',
  155. layout : 'anchor',
  156. items: [{
  157. tag : 'iframe',
  158. frame : true,
  159. anchor : '100% 100%',
  160. layout : 'fit',
  161. html : '<iframe id="iframe_' + caller + '" src="' + basePath + 'jsps/common/editorColumn.jsp?caller=' + nCaller
  162. + "&condition=" + condition +'" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>'
  163. }],
  164. buttons : [{
  165. name: 'confirm',
  166. text : $I18N.common.button.erpConfirmButton,
  167. iconCls: 'x-button-icon-confirm',
  168. cls: 'x-btn-gray',
  169. listeners: {
  170. buffer: 500,
  171. click: function(btn) {
  172. var grid = Ext.getCmp('win').items.items[0].body.dom.getElementsByTagName('iframe')[0].contentWindow.Ext.getCmp("editorColumnGridPanel");
  173. btn.setDisabled(true);
  174. grid.updateAction(url);
  175. }
  176. }
  177. }, {
  178. text : $I18N.common.button.erpCloseButton,
  179. iconCls: 'x-button-icon-close',
  180. cls: 'x-btn-gray',
  181. handler : function(){
  182. Ext.getCmp('win').close();
  183. }
  184. }]
  185. });
  186. win.show();
  187. },
  188. getForm: function(btn){
  189. return btn.ownerCt.ownerCt;
  190. },
  191. onGridItemClick: function(selModel, record){//grid行选择
  192. this.gridLastSelected = record;
  193. this.GridUtil.onGridItemClick(selModel, record);
  194. }
  195. });