assetsCard.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.fix.assetsCard', {
  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. 'core.form.Panel','fa.fix.assetsCard','core.toolbar.Toolbar','core.form.MultiField',
  9. 'core.button.Save','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload','core.button.ResAudit',
  10. 'core.button.Audit','core.button.Close','core.button.Delete','core.button.Update','core.button.DeleteDetail',
  11. 'core.button.ResSubmit','core.button.UpdateUseStatus',
  12. 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField','core.form.ColorField','core.button.CopyAll'
  13. ],
  14. init:function(){
  15. var me = this;
  16. this.control({
  17. 'erpCopyButton': {
  18. click: function(btn) {
  19. this.copy();
  20. }
  21. },
  22. 'field[name=ac_date]': {
  23. beforerender : function(f) {
  24. if(Ext.isEmpty(f.value)){
  25. me.getCurrentMonth(function(end){
  26. f.setValue(end);
  27. });
  28. }
  29. }
  30. },
  31. 'field[name=ac_currency]': {
  32. beforetrigger: function(field) {
  33. var t = field.up('form').down('field[name=ac_date]'),
  34. value = t.getValue();
  35. if(value) {
  36. field.findConfig = 'cm_yearmonth=' + Ext.Date.format(value, 'Ym');
  37. }
  38. }
  39. },
  40. 'field[name=ac_usemonth]': {
  41. change: function(f){
  42. Ext.getCmp('ac_useyears').setValue(Ext.Number.toFixed(f.value/12, 8));
  43. }
  44. },
  45. 'field[name=ac_oldvalue]' : {
  46. change: me.changetaxtotal
  47. },
  48. 'field[name=ac_taxrate]' : {
  49. change: me.changetaxtotal
  50. },
  51. 'erpSaveButton': {
  52. click: function(btn){
  53. var form = me.getForm(btn), codeField = Ext.getCmp(form.codeField);
  54. var oldvalue = Ext.getCmp('ac_oldvalue').value;
  55. var useyear = Ext.getCmp('ac_useyears').value;
  56. var crate = Ext.getCmp('ac_crate').value;
  57. var kind = Ext.getCmp('ac_kindid');
  58. if(codeField.value == null || codeField.value == ''){
  59. if(kind){
  60. var res = me.getCode(kind.value);
  61. if(res != null && res != ''){
  62. codeField.setValue(res);
  63. } else {
  64. me.BaseUtil.getRandomNumber('AssetsCard',10,null);//自动添加编号
  65. }
  66. } else {
  67. me.BaseUtil.getRandomNumber(null,10,null);//自动添加编号
  68. }
  69. }
  70. if(oldvalue == null || oldvalue == '' || oldvalue == '0' || oldvalue == 0){
  71. showError('原值不能为空或者为零!');
  72. return;
  73. }
  74. if(useyear == null || useyear == '' || useyear == '0' || useyear == 0){
  75. showError('使用年限不能为空或者为零!');
  76. return;
  77. }
  78. /*if(crate == null || crate == '' || crate == '0' || crate == 0){
  79. showError('净残值率不能为空或者为零!');
  80. return;
  81. }*/
  82. me.FormUtil.beforeSave(this);
  83. }
  84. },
  85. 'erpDeleteButton' : {
  86. click: function(btn){
  87. me.FormUtil.onDelete(Ext.getCmp('ac_id').value);
  88. }
  89. },
  90. 'field[name=ac_kindid]':{
  91. change: function(f){
  92. var res = me.getCode(f.value);
  93. if(res != null && res != ''){
  94. Ext.getCmp('ac_code').setValue(res);
  95. }
  96. }
  97. },
  98. 'erpUpdateButton': {
  99. click: function(btn){
  100. var oldvalue = Ext.getCmp('ac_oldvalue').value;
  101. var useyear = Ext.getCmp('ac_useyears').value;
  102. var crate = Ext.getCmp('ac_crate').value;
  103. if(oldvalue == null || oldvalue == '' || oldvalue == '0' || oldvalue == 0){
  104. showError('原值不能为空或者为零!');
  105. return;
  106. }
  107. if(useyear == null || useyear == '' || useyear == '0' || useyear == 0){
  108. showError('使用年限不能为空或者为零!');
  109. return;
  110. }
  111. me.FormUtil.onUpdate(this);
  112. }
  113. },
  114. 'erpAddButton': {
  115. click: function(){
  116. me.FormUtil.onAdd('addAssetsCard', '新增应收发票单', 'jsps/fa/fix/assetsCard.jsp');
  117. }
  118. },
  119. 'erpCloseButton': {
  120. click: function(btn){
  121. me.FormUtil.beforeClose(me);
  122. }
  123. },
  124. 'erpSubmitButton': {
  125. afterrender: function(btn){
  126. var status = Ext.getCmp('ac_statuscode');
  127. if(status && status.value != 'ENTERING'){
  128. btn.hide();
  129. }
  130. },
  131. click: function(btn){
  132. me.FormUtil.onSubmit(Ext.getCmp('ac_id').value);
  133. }
  134. },
  135. 'erpResSubmitButton': {
  136. afterrender: function(btn){
  137. var status = Ext.getCmp('ac_statuscode');
  138. if(status && status.value != 'COMMITED'){
  139. btn.hide();
  140. }
  141. },
  142. click: function(btn){
  143. me.FormUtil.onResSubmit(Ext.getCmp('ac_id').value);
  144. }
  145. },
  146. 'erpAuditButton': {
  147. afterrender: function(btn){
  148. var status = Ext.getCmp('ac_statuscode');
  149. if(status && status.value != 'COMMITED'){
  150. btn.hide();
  151. }
  152. },
  153. click: function(btn){
  154. me.FormUtil.onAudit(Ext.getCmp('ac_id').value);
  155. }
  156. },
  157. 'erpResAuditButton': {
  158. afterrender: function(btn){
  159. var status = Ext.getCmp('ac_statuscode');
  160. if(status && status.value != 'AUDITED'){
  161. btn.hide();
  162. }
  163. },
  164. click: function(btn){
  165. me.FormUtil.onResAudit(Ext.getCmp('ac_id').value);
  166. }
  167. },
  168. 'erpPrintButton': {
  169. click: function(btn){
  170. me.FormUtil.onPrint(Ext.getCmp('ac_id').value);
  171. }
  172. },
  173. 'textfield[name=ac_oldvalue]':{
  174. change: function(f) {
  175. var v1 = (Ext.getCmp('ac_taxrate').value || 0),
  176. v2 = (f.value || 0);
  177. if(v2 == 0) {
  178. Ext.getCmp('ac_taxtotal').setValue(0);
  179. } else {
  180. Ext.getCmp('ac_taxtotal').setValue(Ext.Number.toFixed(v2*(1+v1/100), 2));
  181. }
  182. }
  183. },
  184. 'textfield[name=ac_taxrate]':{
  185. change: function(f) {
  186. var v1 = (Ext.getCmp('ac_oldvalue').value || 0),
  187. v2 = (f.value || 0);
  188. if(v2 == 0) {
  189. Ext.getCmp('ac_taxtotal').setValue(0);
  190. } else {
  191. Ext.getCmp('ac_taxtotal').setValue(Ext.Number.toFixed(v1*(1+v2/100), 2));
  192. }
  193. }
  194. }
  195. });
  196. },
  197. getForm: function(btn){
  198. return btn.ownerCt.ownerCt;
  199. },
  200. /**
  201. * 复制固定资产卡片
  202. */
  203. copy: function(){
  204. var me = this, win = Ext.getCmp('copyAssetsCard-win');
  205. if(!win){
  206. var accode = Ext.getCmp('ac_code'), ackind = Ext.getCmp('ac_kind'), ackindid = Ext.getCmp('ac_kindid'),
  207. val1 = accode ? accode.value : '', val2 = ackind ? ackind.value : '', val3 = ackindid ? ackindid.value : '';
  208. win = Ext.create('Ext.Window', {
  209. id: 'copyAssetsCard-win',
  210. title: '复制卡片 ' + val1,
  211. height: 200,
  212. width: 400,
  213. items: [{
  214. xtype: 'form',
  215. height: '100%',
  216. width: '100%',
  217. bodyStyle: 'background:#f1f2f5;',
  218. items: [{
  219. margin: '10 0 0 0',
  220. xtype: 'textfield',
  221. fieldLabel: '卡片编号',
  222. name:'ac_newcode',
  223. allowBlank: false,
  224. value: val1
  225. },{
  226. margin: '10 0 0 0',
  227. xtype: 'dbfindtrigger',
  228. fieldLabel: '资产类别',
  229. name:'ac_newkind',
  230. allowBlank: false,
  231. value: val2,
  232. listeners:{
  233. aftertrigger:function(t, d){
  234. t.ownerCt.down('textfield[name=ac_newkindid]').setValue(d.get('ak_id'));
  235. }
  236. }
  237. },{
  238. margin: '3 0 0 0',
  239. xtype: 'textfield',
  240. name:'ac_newkindid',
  241. fieldLabel: '类型id',
  242. value: val3,
  243. allowBlank: false,
  244. hidden: true,
  245. readOnly:true
  246. }],
  247. closeAction: 'hide',
  248. buttonAlign: 'center',
  249. layout: {
  250. type: 'vbox',
  251. align: 'center'
  252. },
  253. buttons: [{
  254. text: $I18N.common.button.erpConfirmButton,
  255. cls: 'x-btn-blue',
  256. handler: function(btn) {
  257. var form = btn.ownerCt.ownerCt,
  258. a = form.down('textfield[name=ac_newcode]'),
  259. b = form.down('textfield[name=ac_newkindid]');
  260. if(b){
  261. var res = me.getCode(b.value);
  262. if(res != null && res != ''){
  263. a.setValue(res);
  264. }
  265. }
  266. me.copyAssetsCard(Ext.getCmp('ac_id').value, a.value, b.value);
  267. }
  268. }, {
  269. text: $I18N.common.button.erpCloseButton,
  270. cls: 'x-btn-blue',
  271. handler: function(btn) {
  272. btn.up('window').hide();
  273. }
  274. }]
  275. }]
  276. });
  277. }
  278. win.show();
  279. },
  280. copyAssetsCard: function(acid, accode, kindid) {
  281. var me = this;
  282. Ext.Ajax.request({
  283. url: basePath + 'fa/fix/copyAssetsCard.action',
  284. params: {
  285. caller: caller,
  286. id: acid,
  287. accode: accode,
  288. kindid: kindid
  289. },
  290. callback : function(options,success,response){
  291. me.FormUtil.getActiveTab().setLoading(false);
  292. var res = new Ext.decode(response.responseText);
  293. if(res.success){
  294. Ext.getCmp('copyAssetsCard-win').hide();
  295. showMessage('提示', '复制成功!<a href="javascript:openUrl(\'jsps/fa/fix/assetsCard.jsp?formCondition=ac_idIS' +
  296. + res.assetsCard.ac_id + '\')">\n卡片ID:&lt;' + res.assetsCard.ac_id + '&gt;</a>');
  297. } else {
  298. showError(res.exceptionInfo);
  299. }
  300. }
  301. });
  302. },
  303. changetaxtotal: function(){
  304. if(Ext.getCmp('ac_taxrate') && Ext.getCmp('ac_oldvalue')) {
  305. var ac_taxrate = Ext.Number.from(Ext.getCmp('ac_taxrate').getValue(), 0);
  306. var ac_oldvalue = Ext.Number.from(Ext.getCmp('ac_oldvalue').getValue(), 0);
  307. if(ac_taxrate != 0){
  308. if(ac_oldvalue !=0){
  309. Ext.getCmp('ac_taxtotal').setValue(Ext.Number.toFixed(ac_oldvalue*(1+ac_taxrate/100), 2));
  310. }
  311. }
  312. }
  313. },
  314. getCurrentMonth : function(callback) {
  315. var me = this;
  316. Ext.Ajax.request({
  317. url : basePath + 'fa/getMonth.action',
  318. params : {
  319. type : 'MONTH-F'
  320. },
  321. callback : function(opt, s, r) {
  322. var rs = Ext.decode(r.responseText);
  323. if (rs.data) {
  324. me.currentMonth = rs.data.PD_DETNO;
  325. me.datestart = Ext.Date.format(new Date(rs.data.PD_STARTDATE), 'Ymd');
  326. me.dateend = Ext.Date.format(new Date(rs.data.PD_ENDDATE), 'Y-m-d');
  327. callback.call(null, me.dateend);
  328. }
  329. }
  330. });
  331. },
  332. getCode: function(kind) {
  333. var result = null;
  334. Ext.Ajax.request({
  335. url : basePath + 'fa/fix/getAssetsCardCodeNum.action',
  336. async: false,
  337. params: {
  338. caller: caller,
  339. kind: kind
  340. },
  341. method : 'post',
  342. callback : function(opt, s, res){
  343. var r = new Ext.decode(res.responseText);
  344. if(r.codes) {
  345. result = r.codes.code;
  346. Ext.getCmp('ac_number').setValue(r.codes.number);
  347. } else {
  348. showError(res.exceptionInfo);
  349. }
  350. }
  351. });
  352. return result;
  353. }
  354. });