| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587 |
- Ext.QuickTips.init();
- Ext.define('erp.controller.pm.mps.GoodsUpApplication', {
- extend: 'Ext.app.Controller',
- FormUtil: Ext.create('erp.util.FormUtil'),
- GridUtil: Ext.create('erp.util.GridUtil'),
- BaseUtil: Ext.create('erp.util.BaseUtil'),
- views:[
- 'core.form.Panel','pm.mps.GoodsUpApplication','core.grid.Panel2','core.toolbar.Toolbar','core.button.Split',
- 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print',
- 'core.button.ResSubmit','core.button.Update','core.button.Delete','core.button.ResAudit','core.button.DeleteDetail',
- 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.form.YnField','core.button.GoodsUpTurnOut',
- 'core.button.GetStandardUUId','core.button.GoodsUp'
- ],
- init:function(){
- var me=this;
- this.control({
- 'erpGridPanel2': {
- itemclick: function(selModel, record){
- if(!Ext.getCmp('grid').readOnly){
- if(Ext.getCmp("gu_statuscode").value == 'AUDITED'){
- btn = Ext.getCmp('erpSplitButton');
- btn && btn.setDisabled(false);
- }
- if (record.data.gd_id != 0 && record.data.gd_id != null && record.data.gd_id != '') {
- btn = Ext.getCmp('erpSplitButton');
- btn && btn.setDisabled(false);
- }
- this.onGridItemClick(selModel, record);
- }
- }
- },
- 'erpSaveButton': {
- click: function(btn){
- var form = me.getForm(btn);
- if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
- me.BaseUtil.getRandomNumber();//自动添加编号
- }
- this.FormUtil.beforeSave(this);
- }
- },
- 'erpCloseButton': {
- click: function(btn){
- this.FormUtil.beforeClose(this);
- }
- },
- 'erpUpdateButton': {
- click: function(btn){
- this.FormUtil.onUpdate(this);
- }
- },
- 'erpDeleteButton': {
- click: function(btn){
- me.FormUtil.onDelete(Ext.getCmp('gu_id').value);
- }
- },
- 'erpAddButton': {
- click: function(){
- me.FormUtil.onAdd('addGoodsUpApplication', '新增上架申请单', 'jsps/pm/mps/goodsUpApplication.jsp');
- }
- },
- 'erpSubmitButton': {
- afterrender: function(btn){
- var status = Ext.getCmp('gu_statuscode');
- if(status && status.value != 'ENTERING'){
- btn.hide();
- }
- },
- click: function(btn){
- me.FormUtil.onSubmit(Ext.getCmp('gu_id').value);
- }
- },
- 'erpResSubmitButton': {
- afterrender: function(btn){
- var status = Ext.getCmp('gu_statuscode');
- if(status && status.value != 'COMMITED'){
- btn.hide();
- }
- },
- click: function(btn){
- me.FormUtil.onResSubmit(Ext.getCmp('gu_id').value);
- }
- },
- 'erpAuditButton': {
- afterrender: function(btn){
- var status = Ext.getCmp('gu_statuscode');
- if(status && status.value != 'COMMITED'){
- btn.hide();
- }
- },
- click: function(btn){
- me.FormUtil.onAudit(Ext.getCmp('gu_id').value);
- }
- },
- 'erpResAuditButton': {
- afterrender: function(btn){
- var status = Ext.getCmp('gu_statuscode');
- if(status && status.value != 'AUDITED'){
- btn.hide();
- }
- },
- click: function(btn){
- me.FormUtil.onResAudit(Ext.getCmp('gu_id').value);
- }
- },
- 'erpGoodsUpTurnOutButton':{//转拨出单
- click:function(btn){
- me.GoodsUpTurnOut(Ext.getCmp("gu_id").value,btn.ownerCt.ownerCt);
- },
- afterrender:function(btn){//已审核转拨出单
- var status = Ext.getCmp('gu_statuscode');
- if(status && status.value != 'AUDITED'){
- btn.hide();
- }
- }
- },
- 'erpSplitButton': {//拆分明细
- beforerender: function(btn) {
- btn.text="拆分明细";
- btn.width=100;
- },
- click: function(btn) {
- var record=btn.ownerCt.ownerCt.getSelectionModel().getLastSelected();
- me.GoodsUpSplit(record);
- }
- },
- 'erpPrintButton': {//打印
- click: function(btn){
- me.FormUtil.onPrint(Ext.getCmp('gu_id').value);
- }
- },
- 'erpGetStandardUUIdButton':{//维护标准料号
- afterrender:function(btn){//
- var status = Ext.getCmp('gu_statuscode');
- if(status && status.value != 'ENTERING'){
- btn.hide();
- }
- },
- click:function(btn){//发送请求至后台,将明细行中没有平台料号的物料写入ProductBatch表中,写入成功之后跳转至批量维护页面
- me.FormUtil.setLoading(true);
- Ext.Ajax.request({
- url : basePath +'pm/mps/getUUId.action',
- params : {
- caller : caller,
- id : Ext.getCmp("gu_id").value
- },
- method : 'post',
- timeout:6000000,
- callback : function(options,success,response){
- me.FormUtil.setLoading(false);
- var localJson = new Ext.decode(response.responseText);
- if(localJson.success){
- if(localJson.code)
- me.FormUtil.onAdd('ProductBatchUUId','批量维护标准料号','jsps/scm/product/ProductBatchUUId.jsp?gridCondition==pub_code='+localJson.code+'&code='+localJson.code);
- /*saveSuccess(function(){
- Ext.getCmp('gdqty').setValue(remainqty);
- //add成功后刷新页面进入可编辑的页面
- me.loadSplitData(originaldetno,guid,record);
- });*/
- }else if(localJson.exceptionInfo){
- var str = localJson.exceptionInfo;
- showError(str);
- return;
- }else{
- showError("请求超时");
- return;
- }
- }
- });
- }
- },
- 'erpGoodsUpButton':{//手动上架
- afterrender: function(btn){
- var status = Ext.getCmp('gu_statuscode');
- if(status && status.value != 'AUDITED'){
- btn.hide();
- }
- },
- click:function(btn){
- me.GoodsUp(Ext.getCmp("gu_id").value,btn.ownerCt.ownerCt);
- }
- }
- });
- },
- onGridItemClick: function(selModel, record){//grid行选择
- this.GridUtil.onGridItemClick(selModel, record);
- },
- getForm: function(btn){
- return btn.ownerCt.ownerCt;
- },
- save: function(btn){
- var me = this;
- if(Ext.getCmp('gu_code').value == null || Ext.getCmp('gu_code').value == ''){
- me.BaseUtil.getRandomNumber();
- }
- me.FormUtil.beforeSave(me);
- },
- GoodsUpSplit:function(record){
- var me=this,originaldetno=Number(record.data.gd_detno);
- var guid=record.data.gd_guid;
- var gdid=record.data.gd_id;
- var bccode = record.data.gd_bccode;
- if(bccode){
- showError('该明细行已经生成拨出单,不允许拆分!');
- return;
- }
- Ext.create('Ext.window.Window',{
- width:850,
- height:'80%',
- iconCls:'x-grid-icon-partition',
- title:'<h1>上架申请单拆分</h1>',
- id:'win',
- items:[{
- xtype:'form',
- layout:'column',
- region:'north',
- frame:true,
- defaults:{
- xtype:'textfield',
- columnWidth:0.5,
- readOnly:true,
- fieldStyle:'background:#f0f0f0;border: 0px solid #8B8970;color:blue;'
- },
- items:[{
- fieldLabel:'上架单号',
- value:Ext.getCmp("gu_code").value,
- id:'gucode'
- },{
- fieldLabel:'物料编号',
- value:record.data.gd_prodcode
- },{
- fieldLabel:'物料明细',
- value:record.data.pr_detail
- },{
- fieldLabel:'原序号' ,
- value:record.data.gd_detno
- },{
- fieldLabel:'原数量',
- value:record.data.gd_qty,
- id:'gdqty'
- }],
- buttonAlign:'center',
- buttons:[{
- xtype:'button',
- columnWidth:0.12,
- text:'保存',
- width:60,
- iconCls: 'x-button-icon-save',
- margin:'0 0 0 30',
- handler:function(btn){
- var store=Ext.getCmp('smallgrid').getStore();
- var count=0;
- var jsonData=new Array();
- var dd;
- var remainqty;
- Ext.Array.each(store.data.items,function(item){
- if(item.data.gd_qty>=0 && item.data.gd_madedate!=null && item.data.gd_price>0){
- if(item.dirty){
- dd=new Object();
- //说明是新增批次
- if(item.data.gd_madedate)
- dd['gd_madedate']=Ext.Date.format(item.data.gd_madedate, 'Y-m-d');
- dd['gd_qty']=item.data.gd_qty;
- dd['gd_id']=item.data.gd_id;
- dd['gd_detno']=item.data.gd_detno;
- dd['gd_price']=item.data.gd_price;
- dd['gd_minbuyqty']=item.data.gd_minbuyqty;
- dd['gd_whcode']=item.data.gd_whcode;
- jsonData.push(Ext.JSON.encode(dd));
- if(item.data.gd_id!=0&&item.data.gd_id!=null&&item.data.gd_id>0){
- remainqty = item.data.gd_qty;
- }
- }
- count+=Number(item.data.gd_qty);
- }
- });
- var assqty = record.data.gd_qty;
- if(count != assqty){
- showError('分拆数量必须等于原数量!') ;
- return;
- }else{
- var r=new Object();
- r['gd_id']=gdid;
- r['gd_guid']=guid;
- r['gd_detno']=record.data.gd_detno;
- var params=new Object();
- params.formdata = unescape(Ext.JSON.encode(r).replace(/\\/g,"%"));
- params.data = unescape(jsonData.toString().replace(/\\/g,"%"));
- Ext.Ajax.request({
- url : basePath +'pm/mps/splitDetail.action',
- params : params,
- waitMsg:'拆分中...',
- method : 'post',
- callback : function(options,success,response){
- var localJson = new Ext.decode(response.responseText);
- if(localJson.success){
- saveSuccess(function(){
- Ext.getCmp('gdqty').setValue(remainqty);
- //add成功后刷新页面进入可编辑的页面
- me.loadSplitData(originaldetno,guid,record);
- //刷新界面
- me.GridUtil.loadNewStore(Ext.getCmp('grid'), {
- caller: caller,
- condition: gridCondition
- });
- });
- } else if(localJson.exceptionInfo){
- var str = localJson.exceptionInfo;
- if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
- str = str.replace('AFTERSUCCESS', '');
- saveSuccess(function(){
- //add成功后刷新页面进入可编辑的页面
- me.loadSplitData(originaldetno,guid,record);
- });
- showError(str);
- } else {
- showError(str);
- return;
- }
- } else{
- saveFailure();
- }
- }
- });
- }
- }
- },{
- xtype:'button',
- columnWidth:0.1,
- text:'关闭',
- width:60,
- iconCls: 'x-button-icon-close',
- margin:'0 0 0 10',
- handler:function(btn){
- Ext.getCmp('win').close();
- }
- }]
- },{
- xtype:'gridpanel',
- region:'south',
- id:'smallgrid',
- layout:'fit',
- height:'80%',
- columnLines:true,
- store:Ext.create('Ext.data.Store',{
- fields:[{name:'gd_detno',type:'int'},{name:'gd_madedate',type:'date'},{name:'gd_qty',type:'int'},{name:'gd_price',type:'number'},{name:'gd_minbuyqty',type:'int'},{name:'gd_whcode',type:'string'},{name:'gd_id',type:'int'}],
- data:[]
- }),
- plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
- clicksToEdit: 1,
- listeners:{
- 'edit':function(editor,e,Opts){
- var record=e.record;
- var version=record.data.ma_version;
- if(version){
- e.record.reject();
- Ext.Msg.alert('提示','不能修改已拆分明细!');
- }
- }
- }
- })],
- tbar: [{
- tooltip: '添加批次',
- iconCls: 'x-button-icon-add',
- width:25,
- handler : function() {
- var store = Ext.getCmp('smallgrid').getStore();
- var r = new Object();
- r.gd_madedate=record.get('gd_madedate');
- r.gd_minbuyqty=record.get('gd_minbuyqty');
- r.gd_price=record.get('gd_price');
- r.gd_qty=0;
- r.gd_id=0;
- r.gd_whcode='';
- r.gd_detno=store.getCount()+1;
- store.insert(store.getCount(), r);
- }
- }, {
- tooltip: '删除批次',
- width:25,
- itemId: 'delete',
- iconCls: 'x-button-icon-delete',
- handler: function(btn) {
- var sm = Ext.getCmp('smallgrid').getSelectionModel();
- var record=sm.getSelection();
- var gd_id=record[0].data.gd_id;
- if(gd_id && gd_id!= 0){
- Ext.Msg.alert('提示','不能删除已拆批次或原始行号!');
- return;
- }
- var store=Ext.getCmp('smallgrid').getStore();
- store.remove(record);
- if (store.getCount() > 0) {
- sm.select(0);
- }
- },
- disabled: true
- }],
- listeners:{
- itemmousedown:function(selmodel, record){
- selmodel.ownerCt.down('#delete').setDisabled(false);
- }
- },
- columns:[{
- dataIndex:'gd_detno',
- header:'序号',
- format:'0',
- xtype:'numbercolumn'
- },{
- dataIndex:'gd_madedate',
- header:'生产日期',
- xtype:'datecolumn',
- width:120,
- editable:true,
- renderer:function(val,meta,record){
- if(record.data.ma_version){
- meta.tdCls = "x-grid-cell-renderer-cl";
- }
- if(val)
- return Ext.Date.format(val, 'Y-m-d');
- else return null;
- },
- editor:{
- xtype: 'datefield',
- format:'Y-m-d',
- allowBlank : false
- }
- },{
- dataIndex:'gd_qty',
- header:'数量',
- width:120,
- xtype:'numbercolumn',
- editable:true,
- renderer:function(val,meta,record){
- return val;
- },
- editor:{
- xtype:'numberfield',
- format:'0',
- hideTrigger: true,
- allowBlank : false
- }
- },{
- dataIndex:'gd_price',
- header:'单价',
- xtype:'numbercolumn',
- width:100,
- editable:true,
- editor:{
- xtype:'numberfield',
- format:'0',
- hideTrigger: true,
- allowBlank : false
- }
- },{
- dataIndex:'gd_minbuyqty',
- header:'最小起订量',
- xtype:'numbercolumn',
- width:100,
- editable:true,
- editor:{
- xtype:'numberfield',
- format:'0',
- hideTrigger: true,
- allowBlank : false
- }
- },{
- dataIndex:'gd_whcode',
- header:'仓库',
- width:100,
- editable:true,
- dbfind:'WareHouse|wh_code',
- editor:{
- allowBlank : false ,
- xtype:'dbfindtrigger',
- hideTrigger: false,
- name:'gd_whcode',
- which:'grid',
- dbfind:'WareHouse|wh_code',
- listeners: {
- aftertrigger: function(t, d) {
- var record = Ext.getCmp('smallgrid').selModel.lastSelected;
- record.set('gd_whcode', d.data.wh_code);
- }
- }
- }
- },{
- dataIndex:'gd_id',
- header:'gdid',
- width:0,
- xtype:'numbercolumn',
- editable:true,
- editor:{
- xtype:'numberfield',
- format:'0',
- hideTrigger: true
- }
- }]
- }]
- }).show();
- this.loadSplitData(originaldetno,guid,record);
- },
- loadSplitData:function(detno,guid,record){
- var grid=Ext.getCmp('smallgrid');
- grid.setLoading(true);//loading...
- Ext.Ajax.request({//拿到grid的columns
- url : basePath + "common/loadNewGridStore.action",
- params:{
- caller:'GoodsUpSplit',
- condition:"gd_detno="+detno+" AND gd_guid="+guid+" order by gd_id asc"
- },
- method : 'post',
- callback : function(options,success,response){
- grid.setLoading(false);
- var res = new Ext.decode(response.responseText);
- if(res.exceptionInfo){
- showError(res.exceptionInfo);return;
- }
- var data = res.data;
- if(!data || data.length == 0){
- grid.store.removeAll();
- var o=new Object();
- o.gd_detno=detno;
- o.gd_madedate=record.data.gd_madedate;
- o.gd_qty=record.data.gd_qty;
- o.gd_price=record.data.gd_price;
- o.gd_minbuyqty=record.data.gd_minbuyqty;
- o.gd_whcode=record.data.gd_whcode;
- o.gd_id=record.data.gd_id;
- data.push(o);
- }
- grid.store.loadData(data);
- }
- });
- },
- GoodsUpTurnOut:function(id,form){
- var me = this;
- me.FormUtil.setLoading(true);//loading...
- Ext.Ajax.request({//拿到grid的columns
- url : basePath + "pm/mps/goodsUpTurnOut.action",
- params:{
- caller:caller,
- id:id
- },
- method : 'post',
- callback : function(options,success,response){
- me.FormUtil.setLoading(false);
- var res = new Ext.decode(response.responseText);
- if(res.exceptionInfo){
- showError(res.exceptionInfo);return;
- }else{
- if(res.log)
- showMessage('提示', res.log);
- }
- }
- });
- },
- GoodsUp:function(id,form){
- var me = this;
- me.FormUtil.setLoading(true);//loading...
- Ext.Ajax.request({//拿到grid的columns
- url : basePath + "pm/mps/goodsUp.action",
- params:{
- caller:caller,
- id:id
- },
- method : 'post',
- timeout:6000000,
- callback : function(options,success,response){
- me.FormUtil.setLoading(false);
- var res = new Ext.decode(response.responseText);
- if(res.exceptionInfo){
- showError(res.exceptionInfo);return;
- }else{
- if(res.log){
- showMessage('提示', res.log);
- var grid = Ext.getCmp("grid");
- grid.GridUtil.loadNewStore(grid, {
- caller: caller,
- condition: gridCondition
- });
- }
- }
- }
- });
- }
-
- });
|