Ext.define('saas.view.stock.make.FormPanelController', { extend: 'saas.view.core.form.FormPanelController', alias: 'controller.stock-make-formpanel', init: function (form) { var me = this; this.control({ //放大镜赋值关系 以及 tpl模板 'dbfindtrigger[name=ma_whname]': { beforerender: function (f) { Ext.apply(f, { dbfinds: [{ from: 'id', to: 'ma_whid', ignore: true }, { from: 'wh_code', to: 'ma_whcode' }, { from: 'wh_description', to: 'ma_whname' }], }); } }, //放大镜赋值关系 以及 tpl模板 'dbfindtrigger[name=mm_whname]': { beforerender: function (f) { Ext.apply(f, { dbfinds: [{ from: 'id', to: 'mm_whid', ignore: true }, { from: 'wh_code', to: 'mm_whcode' }, { from: 'wh_description', to: 'mm_whname' }] }); } }, 'multidbfindtrigger[name=mm_prodcode]': { beforerender: function (f) { Ext.apply(f, { dbfinds: [{ from: 'pr_code', to: 'mm_prodcode' }, { from: 'id', to: 'mm_prodid' }, { from: 'pr_detail', to: 'pr_detail' }, { from: 'pr_spec', to: 'pr_spec' }, { from: 'pr_unit', to: 'pr_unit' }, { from: 'pr_purcprice', to: 'mm_price' }], }); } }, 'bomDbfindTrigger[name=ma_prodcode]': { beforerender: function (f) { Ext.apply(f, { //放大镜赋值设置 dbfinds: [{ from: 'bo_motherid', to: 'ma_prodid' }, { from: 'bo_mothercode', to: 'ma_prodcode' }, { from: 'bo_mothername', to: 'ma_proddetail' }, { from: 'pr_spec', to: 'ma_prodspec' }, { from: 'pr_unit', to: 'ma_produnit' }, { from: 'bo_version', to: 'ma_version' }], aftertrigger: function (f, record) { me.getBomData(record.data.id) } }); } }, }); }, initCopyData: function (formData) { var me = this; var form = this.getView(); var detailCount = form.detailCount; var main = formData.main; var auditTexts = form.auditTexts; // 单号、id清空 main[form._idField] = 0; main[form._codeField] = ''; // 单据状态为录入状态(未审核) main[form._statusCodeField] = auditTexts.unAuditCode; main[form._statusField] = auditTexts.unAuditText; //录入人,录入日期,审核人,审核日期清空 main['creatorId'] = null; main['creatorName'] = null; main['createTime'] = null; main['updaterId'] = null; main['updaterName'] = null; main['updateTime'] = null; main[form._auditmanField] = null; main[form._auditdateField] = null; //数量,单价,金额(主表) main['ma_qty'] = 0; main['ma_price'] = 0; main['ma_total'] = 0; for (var k in main) { // 主表日期改为当前日期 if (saas.util.BaseUtil.isDateString(main[k])) { main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s'); } } for (var j = 0; j < detailCount; j++) { var detail = formData['detail' + j]; for (var x = 0; x < detail.length; x++) { var d = detail[x]; for (var k in d) { // 从表id清空 delete d['id']; delete d['mm_price']; delete d['mm_qty']; delete d['mm_amount']; // 从表日期清空 if (saas.util.BaseUtil.isDateString(d[k])) { d[k] = ''; } } } } return me.myInitCopyData(formData);; }, price_change: function (v) { var me = this, viewModel = me.getViewModel(), store = viewModel.get('detail0').detailStore, type = viewModel.get('ma_type'); if ('拆件' == type && v == 0) { saas.util.BaseUtil.showErrorToast('成本单价为0!'); } }, getBomData: function (v) { var me = this, form = me.getView(), viewModel = me.getViewModel(), store = viewModel.get('detail0').detailStore, type = viewModel.get('ma_type'), loadData = new Array(); //请求bom资料 saas.util.BaseUtil.request({ url: form._getBomUrl + '/' + v, method: 'GET', }) .then(function (localJson) { if (localJson.success) { var data = localJson.data.items; Ext.Array.each(data, function (item, i) { loadData.push({ mm_detno: item.bd_detno, mm_prodid: item.productDTO.id, mm_prodcode: item.productDTO.pr_code, mm_oneuseqty: item.bd_baseqty, pr_detail: item.productDTO.pr_detail, pr_spec: item.productDTO.pr_spec, pr_unit: item.productDTO.pr_unit, mm_repprodcode: item.bd_replace, mm_remark: item.bd_remark, mm_whid: item.productDTO.pr_whid, mm_whcode: item.productDTO.pr_whcode, mm_whname: item.productDTO.pr_whname, mm_price: type == '拆件' ? item.productDTO.pr_purcprice : null }) }); store.loadData(loadData); } }) .catch(function (res) { console.error(res); saas.util.BaseUtil.showErrorToast('获取BOM资料失败: ' + res.message); }); } });