FormPanelController.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. Ext.define('saas.view.stock.make.FormPanelController', {
  2. extend: 'saas.view.core.form.FormPanelController',
  3. alias: 'controller.stock-make-formpanel',
  4. init: function (form) {
  5. var me = this;
  6. this.control({
  7. //放大镜赋值关系 以及 tpl模板
  8. 'dbfindtrigger[name=ma_whname]':{
  9. beforerender:function(f){
  10. Ext.apply(f,{
  11. dbfinds:[{
  12. from:'id',to:'ma_whid',ignore:true
  13. },{
  14. from:'wh_code',to:'ma_whcode'
  15. },{
  16. from:'wh_description',to:'ma_whname'
  17. }],
  18. }) ;
  19. }
  20. },
  21. //放大镜赋值关系 以及 tpl模板
  22. 'dbfindtrigger[name=mm_whname]':{
  23. beforerender:function(f){
  24. Ext.apply(f,{
  25. dbfinds:[{
  26. from:'id',to:'mm_whid',ignore:true
  27. },{
  28. from:'wh_code',to:'mm_whcode'
  29. },{
  30. from:'wh_description',to:'mm_whname'
  31. }]
  32. }) ;
  33. }
  34. },
  35. 'multidbfindtrigger[name=mm_prodcode]':{
  36. beforerender:function(f){
  37. Ext.apply(f,{
  38. dbfinds:[{
  39. from:'pr_code',to:'mm_prodcode'
  40. },{
  41. from:'id',to:'mm_prodid'
  42. },{
  43. from:'pr_detail',to:'pr_detail'
  44. },{
  45. from:'pr_spec',to:'pr_spec'
  46. },{
  47. from:'pr_unit',to:'pr_unit'
  48. },{
  49. from:'pr_purcprice',to:'mm_price'
  50. }],
  51. }) ;
  52. }
  53. },
  54. 'bomDbfindTrigger[name=ma_prodcode]':{
  55. beforerender:function(f){
  56. Ext.apply(f,{
  57. //放大镜赋值设置
  58. dbfinds:[{
  59. from:'bo_motherid',to:'ma_prodid'
  60. },{
  61. from:'bo_mothercode',to:'ma_prodcode'
  62. },{
  63. from:'bo_mothername',to:'ma_proddetail'
  64. },{
  65. from:'pr_spec',to:'ma_prodspec'
  66. },{
  67. from:'pr_unit',to:'ma_produnit'
  68. },{
  69. from:'bo_version',to:'ma_version'
  70. }],
  71. aftertrigger:function(f,record){
  72. me.getBomData(record.data.id)
  73. }
  74. }) ;
  75. }
  76. },
  77. });
  78. },
  79. initCopyData: function(formData) {
  80. var me = this;
  81. var form = this.getView();
  82. var detailCount = form.detailCount;
  83. var main = formData.main;
  84. var auditTexts = form.auditTexts;
  85. // 单号、id清空
  86. main[form._idField] = 0;
  87. main[form._codeField] = '';
  88. // 单据状态为录入状态(未审核)
  89. main[form._statusCodeField] = auditTexts.unAuditCode;
  90. main[form._statusField] = auditTexts.unAuditText;
  91. //录入人,录入日期,审核人,审核日期清空
  92. main['creatorId'] = null;
  93. main['creatorName'] = null;
  94. main['createTime'] = null;
  95. main['updaterId'] = null;
  96. main['updaterName'] = null;
  97. main['updateTime'] = null;
  98. main[form._auditmanField] = null;
  99. main[form._auditdateField] = null;
  100. //数量,单价,金额(主表)
  101. main['ma_qty'] = 0;
  102. main['ma_price'] = 0;
  103. main['ma_total'] = 0;
  104. for(var k in main) {
  105. // 主表日期改为当前日期
  106. if(saas.util.BaseUtil.isDateString(main[k])) {
  107. main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
  108. }
  109. }
  110. for(var j = 0; j < detailCount; j++) {
  111. var detail = formData['detail' + j];
  112. for(var x = 0; x < detail.length; x ++) {
  113. var d = detail[x];
  114. for(var k in d) {
  115. // 从表id清空
  116. delete d['id'];
  117. delete d['mm_price'];
  118. delete d['mm_qty'];
  119. delete d['mm_amount'];
  120. // 从表日期清空
  121. if(saas.util.BaseUtil.isDateString(d[k])) {
  122. d[k] = '';
  123. }
  124. }
  125. }
  126. }
  127. return me.myInitCopyData(formData);;
  128. },
  129. price_change:function(v) {
  130. var me = this,
  131. viewModel = me.getViewModel(),
  132. store = viewModel.get('detail0').detailStore,
  133. type = viewModel.get('ma_type');
  134. if('拆件'==type && v==0){
  135. saas.util.BaseUtil.showErrorToast('成本单价为0!');
  136. }
  137. },
  138. getBomData: function(v) {
  139. var me = this,
  140. form = me.getView(),
  141. viewModel = me.getViewModel(),
  142. store = viewModel.get('detail0').detailStore,
  143. type = viewModel.get('ma_type'),
  144. loadData = new Array();
  145. //请求bom资料
  146. saas.util.BaseUtil.request({
  147. url: form._getBomUrl+'/'+v,
  148. method: 'GET',
  149. })
  150. .then(function(localJson) {
  151. if(localJson.success){
  152. var data = localJson.data.items;
  153. Ext.Array.each(data, function(item, i) {
  154. loadData.push({
  155. mm_detno:item.bd_detno,
  156. mm_prodid:item.productDTO.id,
  157. mm_prodcode:item.productDTO.pr_code,
  158. mm_oneuseqty:item.bd_baseqty,
  159. pr_detail:item.productDTO.pr_detail,
  160. pr_spec:item.productDTO.pr_spec,
  161. pr_unit:item.productDTO.pr_unit,
  162. mm_repprodcode:item.bd_replace,
  163. mm_remark:item.bd_remark,
  164. mm_whid:item.productDTO.pr_whid,
  165. mm_whcode:item.productDTO.pr_whcode,
  166. mm_whname:item.productDTO.pr_whname,
  167. mm_price:type=='拆件'?item.productDTO.pr_purcprice:null
  168. })
  169. });
  170. store.loadData(loadData);
  171. }
  172. })
  173. .catch(function(res) {
  174. console.error(res);
  175. saas.util.BaseUtil.showErrorToast('获取BOM资料失败: ' + res.message);
  176. });
  177. }
  178. });