浏览代码

【思拓微WMS】条码补打界面调整

caosy 1 周之前
父节点
当前提交
0847445688
共有 2 个文件被更改,包括 714 次插入440 次删除
  1. 670 397
      WebContent/app/controller/scm/reserve/ProdCreateBarcode.js
  2. 44 43
      WebContent/app/view/scm/reserve/ProdCreateBarcode.js

+ 670 - 397
WebContent/app/controller/scm/reserve/ProdCreateBarcode.js

@@ -1,62 +1,64 @@
 Ext.QuickTips.init();
 Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
-    extend: 'Ext.app.Controller',
-    requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'],
-    views:[
-      		'core.form.Panel','common.CommonPage','core.grid.Panel2','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger','core.trigger.HrOrgTreeDbfindTrigger',
-      		'core.button.Close','core.trigger.DbfindTrigger','core.grid.YnColumn','core.button.GenerateBarcode'
-      	],
-    init:function(){
-    	var me = this;
-    	me.FormUtil = Ext.create('erp.util.FormUtil');
-    	me.GridUtil = Ext.create('erp.util.GridUtil');
-    	me.BaseUtil = Ext.create('erp.util.BaseUtil');
-    	this.control({
-    		'#barCode': {
-    			specialkey: function(f, e){//按ENTER自动复制到下一行
-    				if (e.getKey() == e.ENTER) {
-    					if(f.value != null && f.value != ''){
-    						me.getBarInfo();
-    							Ext.getCmp('pr_partNumber').focus(false, 100);
-        				}
-    				}
-    			}
-    		},
-    		'erpProdCreateBarcode': {
-    		},
-    		'erpGenerateBarcodeButton': {
-    			click: function(btn){
-    				var pr_code = Ext.getCmp('pr_code').value;
-    				var number = Ext.getCmp('pr_partNumber').value;
+	extend: 'Ext.app.Controller',
+	requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'],
+	views:[
+		'core.form.Panel','common.CommonPage','core.grid.Panel2','core.toolbar.Toolbar','core.trigger.MultiDbfindTrigger','core.trigger.HrOrgTreeDbfindTrigger',
+		'core.button.Close','core.trigger.DbfindTrigger','core.grid.YnColumn','core.button.GenerateBarcode'
+	],
+	init:function(){
+		var me = this;
+		me.FormUtil = Ext.create('erp.util.FormUtil');
+		me.GridUtil = Ext.create('erp.util.GridUtil');
+		me.BaseUtil = Ext.create('erp.util.BaseUtil');
+		this.control({
+			'#barCode': {
+				specialkey: function(f, e){//按ENTER自动复制到下一行
+					if (e.getKey() == e.ENTER) {
+						if(f.value != null && f.value != ''){
+							me.getBarInfo();
+							Ext.getCmp('pr_partNumber').focus(false, 100);
+						}
+					}
+				}
+			},
+			'erpProdCreateBarcode': {
+			},
+			'erpGenerateBarcodeButton': {
+				click: function(btn){
+					var pr_code = Ext.getCmp('pr_code').value;
+					var number = Ext.getCmp('pr_partNumber').value;
 					var zxbzNumber = Ext.getCmp('pr_zxbzNumber').value;
-    				if(pr_code == null || pr_code ==''){
-						Ext.Msg.alert('温馨提示',
-						'请先选择物料编号');
+					var batchCode = Ext.getCmp('batchCode').value;
+					var madeDate = Ext.getCmp('madeDate').value;
+					if(pr_code == null || pr_code ==''){
+						Ext.Msg.alert('温馨提示', '请先选择物料编号');
 						return;
-    				}else if(number == null || number ==''){
-						Ext.Msg.alert('温馨提示',
-						'请输入数量');
+					}else if(number == null || number ==''){
+						Ext.Msg.alert('温馨提示', '请输入数量');
 						return;
 					}else if(zxbzNumber == null || zxbzNumber ==''){
-						Ext.Msg.alert('温馨提示',
-							'请输入最小包装数量');
+						Ext.Msg.alert('温馨提示', '请输入最小包装数量');
+						return;
+					}else if(madeDate == null || madeDate ==''){
+						Ext.Msg.alert('温馨提示', '请填写生产日期');
 						return;
 					}
-    				var re=/^\d+(,\d+)*$/;
+					var re=/^\d+(,\d+)*$/;
 					var sum=0;
 					number=number.replace(/,/ig,',');
 					if(re.test(number)){
-						var str = new Array(); 
+						var str = new Array();
 						str = number.split( "," );
 						for (var i = 0; i < str.length; i++ )
 						{
 							if(str[i] <= 0){
 								Ext.Msg.alert('温馨提示',
-								'数量必须大于0');
+									'数量必须大于0');
 								return;
 							}
-							 sum+=parseFloat(str[i]);
-					}}else{
+							sum+=parseFloat(str[i]);
+						}}else{
 						showError("请输入正确的数量,例如20");
 						return;
 					}
@@ -69,39 +71,39 @@ Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
 							'最小包装数量必须大于0');
 						return;
 					}
-				    if (sum <= 0) {
+					if (sum <= 0) {
 						Ext.Msg.alert('温馨提示',
-								'数量必须大于0');
+							'数量必须大于0');
 						return;
 					}
-				  if(pr_code && number){
-					  Ext.getCmp("pr_partNumber").setValue('');
-					  var batchcode = Ext.getCmp('batchCode').value;
-					  if(batchcode != null && batchcode != ''){						  
-						  me.batchGenerateBarcode(pr_code,number,batchcode,zxbzNumber);
-					  }else{
-						  me.batchGenerateBarcode(pr_code,number,'',zxbzNumber);
-					  } 
-				  }  
-    			}
-    		},
-    		'erpCloseButton': {
-    			click: function(btn){
-    				me.FormUtil.beforeClose(me);
-    			}
-    		}
-    	});
-    }, 
-    onGridItemClick: function(selModel, record){//grid行选择
-    	this.GridUtil.onGridItemClick(selModel, record);
-    },
+					if(pr_code && number){
+						Ext.getCmp("pr_partNumber").setValue('');
+						var batchcode = Ext.getCmp('batchCode').value;
+						if(batchcode != null && batchcode != ''){
+							me.batchGenerateBarcode(pr_code,number,batchcode,zxbzNumber,madeDate);
+						}else{
+							me.batchGenerateBarcode(pr_code,number,'',zxbzNumber,madeDate);
+						}
+					}
+				}
+			},
+			'erpCloseButton': {
+				click: function(btn){
+					me.FormUtil.beforeClose(me);
+				}
+			}
+		});
+	},
+	onGridItemClick: function(selModel, record){//grid行选择
+		this.GridUtil.onGridItemClick(selModel, record);
+	},
 	getForm: function(btn){
 		return btn.ownerCt.ownerCt;
 	},
-    resize: function(form, grid){
-    	if(!this.resized && form && grid && form.items.items.length > 0){
-    		var height = window.innerHeight, 
-    			fh = form.getEl().down('.x-panel-body>.x-column-inner').getHeight();
+	resize: function(form, grid){
+		if(!this.resized && form && grid && form.items.items.length > 0){
+			var height = window.innerHeight,
+				fh = form.getEl().down('.x-panel-body>.x-column-inner').getHeight();
 			if(Ext.isIE){
 				height = screen.height*0.75;
 			}
@@ -109,31 +111,32 @@ Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
 			grid.setHeight(height - fh - 70);
 			this.resized = true;
 		}
-    },
-	 setLoading : function(b) {
-			var mask = this.mask;
-			if (!mask) {
-				this.mask = mask = new Ext.LoadMask(Ext.getBody(), {
-					msg : "处理中,请稍后...",
-					msgCls : 'z-index:10000;'
-				});
-			}
-			if (b)
-				mask.show();
-			else
-				mask.hide();
-  },
-    batchGenerateBarcode: function(pr_code,number,batchcode,zxbzNumber){
+	},
+	setLoading : function(b) {
+		var mask = this.mask;
+		if (!mask) {
+			this.mask = mask = new Ext.LoadMask(Ext.getBody(), {
+				msg : "处理中,请稍后...",
+				msgCls : 'z-index:10000;'
+			});
+		}
+		if (b)
+			mask.show();
+		else
+			mask.hide();
+	},
+	batchGenerateBarcode: function(pr_code,number,batchcode,zxbzNumber,madeDate){
 		var me=this;
 		me.setLoading(true);
 		console.log(basePath);
 		Ext.Ajax.request({
-	    	url : basePath +'scm/reserve/batchGenerateBarcode.action',
+			url : basePath +'scm/reserve/batchGenerateBarcode.action',
 			params: {
 				pr_code:pr_code,
 				number:number,
 				batchcode:batchcode,
-				zxbzNumber:zxbzNumber
+				zxbzNumber:zxbzNumber,
+				madeDate:madeDate
 			},
 			method : 'post',
 			callback : function(options,success,response){
@@ -143,24 +146,24 @@ Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
 					var data = res.data;
 					Ext.MessageBox.alert('提示', '条码生成成功!',function(){
 						var win = new Ext.window.Window({
-				             id: 'winBar',
-				             height: '75%',
-				             width: '75%',
-				             maximizable: false,
-				             title:'<span>条码打印</span>',
-				             buttonAlign: 'center',
-				             layout: 'column',
-				             bodyStyle:"background-color:#F5F5F5;",
-				             items: [{
-									xtype: 'gridpanel',
-									id: 'grid',
-									anchor : '100% 70%',
-									columnWidth:1,
-									multiSelect: true,
-									multiselected: [],
-									forceFit : true,
-									checkOnly:true,
-									columns: [
+							id: 'winBar',
+							height: '75%',
+							width: '75%',
+							maximizable: false,
+							title:'<span>条码打印</span>',
+							buttonAlign: 'center',
+							layout: 'column',
+							bodyStyle:"background-color:#F5F5F5;",
+							items: [{
+								xtype: 'gridpanel',
+								id: 'grid',
+								anchor : '100% 70%',
+								columnWidth:1,
+								multiSelect: true,
+								multiselected: [],
+								forceFit : true,
+								checkOnly:true,
+								columns: [
 									{
 										style :"text-align:center",
 										text: 'ID',
@@ -176,10 +179,10 @@ Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
 										logic:"necessaryField",
 										editor: {
 											xtype: "displayfield",
-							                hideTrigger: true,
-							                store: null,
-							                queryMode: "local"
-							            }
+											hideTrigger: true,
+											store: null,
+											queryMode: "local"
+										}
 									},{
 										style :"text-align:center",
 										text: '数量',
@@ -187,133 +190,271 @@ Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
 										flex : 3,
 										dataIndex: 'bar_remain',
 										editor: {
-							                xtype: "displayfield",
-							                hideTrigger: true,
-							                store: null,
-							                queryMode: "local"
-							            },
-							            xtype: 'numbercolumn',
-							            align: "left",
-							            format: ""
+											xtype: "displayfield",
+											hideTrigger: true,
+											store: null,
+											queryMode: "local"
+										},
+										xtype: 'numbercolumn',
+										align: "left",
+										format: ""
 									}],
-									GridUtil: Ext.create('erp.util.GridUtil'),
-									listeners:{
-									        beforeedit:function(editor, e, eOpts){
-									            return false;//不可编辑
-									        }
-									    },
-									selType:'checkboxmodel',
-									dbfinds: [],
-									columnLines: true,
-									plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
-								        clicksToEdit: 10
-								    }),
-								    Ext.create('erp.view.core.plugin.CopyPasteMenu')],
-									store: new Ext.data.Store({
-										fields: ['bar_id', 'bar_code', 'bar_remain'],
-										data: []
-									}),
-								   onGridItemClick: function(selModel, record){// grid行选择
-									     	this.GridUtil.onGridItemClick(selModel, record);
-									  },
-				             }],
-						    buttons : [{
-										text : '打印条码',
-										id : 'printNew',
-										iconCls: 'x-button-icon-print',
-										disabled : true, 
-											handler : function(btn) {
-											var me = this;
-											caller = 'Barcode!BaPrint';
-											me.idS = '';
-											var	lps_Barcaller = 'Barcode!Print';
-											var bool = false;
-											var grid = Ext.getCmp('grid');
-											var items = grid.selModel.getSelection();
-										    var idArray = [];
-										    Ext.each(items, function(item, index){
-									        	if(this.data['bar_id'] != null && this.data['bar_id'] != ''
-									        		&& this.data['bar_id'] != '0' && this.data['bar_id'] != 0){
-									        		bool = true;  
-									        		idArray.push(this.data['bar_id']);
-									        	}
-									        });
-										  if(bool){
-										  	var idS = idArray.toString();
-										  	//me.print(idS,lps_Barcaller);
-										  	me.idS = idS;
-										  	me.zplPrint(lps_Barcaller);
-										  }else{
-											  showError("没有需要打印的行");
-										  }
-										  },
-										  zplPrint:function(caller){//zpl打印语句
-										   		// 获取选择打印文件,用户选择分辨率,和打印机
-												var me = this;
-												if(!me.window){
-										    		setup_web_print(function(printers,selected_printer){
-										    			me.window = Ext.create('Ext.window.Window', {
+								GridUtil: Ext.create('erp.util.GridUtil'),
+								listeners:{
+									beforeedit:function(editor, e, eOpts){
+										return false;//不可编辑
+									}
+								},
+								selType:'checkboxmodel',
+								dbfinds: [],
+								columnLines: true,
+								plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
+									clicksToEdit: 10
+								}),
+									Ext.create('erp.view.core.plugin.CopyPasteMenu')],
+								store: new Ext.data.Store({
+									fields: ['bar_id', 'bar_code', 'bar_remain'],
+									data: []
+								}),
+								onGridItemClick: function(selModel, record){// grid行选择
+									this.GridUtil.onGridItemClick(selModel, record);
+								},
+							}],
+							buttons : [{
+								text : '打印条码',
+								id : 'printNew',
+								iconCls: 'x-button-icon-print',
+								disabled : true,
+								handler : function(btn) {
+									var me = this;
+									caller = 'Barcode!BaPrint';
+									me.idS = '';
+									var	lps_Barcaller = 'Barcode!Print';
+									var bool = false;
+									var grid = Ext.getCmp('grid');
+									var items = grid.selModel.getSelection();
+									var idArray = [];
+									Ext.each(items, function(item, index){
+										if(this.data['bar_id'] != null && this.data['bar_id'] != ''
+											&& this.data['bar_id'] != '0' && this.data['bar_id'] != 0){
+											bool = true;
+											idArray.push(this.data['bar_id']);
+										}
+									});
+									if(bool){
+										var idS = idArray.toString();
+										//me.print(idS,lps_Barcaller);
+										me.idS = idS;
+										me.zplPrint(lps_Barcaller);
+									}else{
+										showError("没有需要打印的行");
+									}
+								},
+								zplPrint:function(caller){//zpl打印语句
+									// 获取选择打印文件,用户选择分辨率,和打印机
+									var me = this;
+									var bo = false;
+									Ext.Ajax.request({
+										url: basePath + 'ma/setting/config.action?caller=BarCodeSetting&code=zebraOrderPrint',
+										method: 'GET',
+										async: false,
+										callback: function(opt, s, r) {
+											if(r && r.status == 200) {
+												if(r.responseText){
+													var res = Ext.JSON.decode(r.responseText);
+													if(res.data==1){
+														bo = true;
+													}
+												}
+											}
+										}
+									});
+									if(!me.window){
+										setup_web_print(function(printers,selected_printer){
+											me.window = Ext.create('Ext.window.Window', {
+												autoShow: true,
+												title: '选择打印模板',
+												width: 400,
+												height: bo?200:300,
+												layout: 'anchor',
+												id :'template-win',
+												closeAction:'hide',
+												items: [{
+													anchor:'100% 100%',
+													xtype:'form',
+													buttonAlign : 'center',
+													items:[{
+														xtype: 'combo',
+														id: 'printers',
+														fieldLabel: '打印机列表',
+														store: Ext.create('Ext.data.Store', {
+															autoLoad: true,
+															fields: ['display', 'value'],
+															data:printers
+														}),
+														queryMode: 'local',
+														displayField: 'display',
+														valueField: 'value',
+														width:361,
+														allowBlank:false,
+														value:selected_printer.uid,
+														selectOnFocus:true,//用户不能自己输入,只能选择列表中有的记录
+														style:'margin-left:15px;margin-top:15px;'
+													},{
+														xtype: 'combo',
+														id: 'dpi',
+														fieldLabel: '打印机分辨率',
+														style:'margin-left:15px;margin-top:15px;',
+														store: Ext.create('Ext.data.Store', {
+															fields: ['display', 'value'],
+															data : [{"display": '203dpi', "value": '203'},
+																{"display": '300dpi', "value": '300'},
+																{"display": '600dpi', "value": '600'},
+																{"display": '1200dpi', "value": '1200'}]
+														}),
+														displayField: 'display',
+														valueField: 'value',
+														queryMode: 'local',
+														value:resolutionCookie||'203',
+														width:bo?0:361,
+														allowBlank:false,
+														selectOnFocus:true,//用户不能自己输入,只能选择列表中有的记录
+														hidden:bo?true:false
+													}]
+												}],
+												buttonAlign: 'center',
+												buttons: [{
+													text: '确定',
+													handler: function(b) {
+														var printers = Ext.getCmp('printers');
+														var dpi = Ext.getCmp('dpi');
+														if(printers && printers.value!= null){
+															// if(bo){
+															me.getLabelInfo(caller,printers.value,dpi.value);
+															// }else{
+															// 	me.zebraPrint(caller,printers.value,dpi.value);
+															// }
+															b.ownerCt.ownerCt.close();
+														}else{
+															alert("请选择打印机 ");
+														}
+													}
+												}, {
+													text: '取消',
+													handler: function(b) {
+														b.ownerCt.ownerCt.close();
+													}
+												}]
+											});
+										});
+									}
+									else if(me.window.isHidden()){
+										me.window.show();
+									}
+								},
+								zebraPrint:function(caller,printer,dpi){
+									var me = this;
+									var params = new Object();
+									params['condition'] = 'bar_id in ('+me.idS +")";
+									sendData(caller,printer,dpi,params);
+								},
+								fastPrintOrder:function(caller,printer,dpi,fmid){
+									var me = this;
+									var params = new Object();
+									params['condition'] = 'bar_id in ('+me.idS +")";
+									sendDataOrder(caller,printer,dpi,params,fmid);
+								},
+								getLabelInfo:function(caller,printer,dpi){
+									var me = this;
+									if(!me.window1){
+										Ext.Ajax.request({
+											url : basePath + 'vendbarcode/label/getLabelInfo.action',
+											async: false,
+											params: {
+												formCaller:caller
+											},
+											method : 'post',
+											callback : function(opt, s, res){
+												var r = new Ext.decode(res.responseText);
+												if(r.exceptionInfo){
+													showError(r.exceptionInfo);return;
+												} else if(r.success){
+													if(r.count == 0){   //r.filemodel   r.label
+														showError("未配置标签模板");return;
+													}else if(r.count == 1){
+														me.fastPrintOrder(caller,printer,dpi,r.label[0].FM_ID);
+													}else if(r.count >1){
+														me.window1 = Ext.create('Ext.window.Window', {
 															autoShow: true,
-															title: '选择打印模板',
+															title: '选择打印标签模板',
 															width: 400,
-															height: 300,
+															height: 180,
 															layout: 'anchor',
-															id :'template-win4',
+															id :'labels-win',
 															closeAction:'hide',
-															items: [{ 							    					
-																  anchor:'100% 100%',
-																  xtype:'form',  							
-																  buttonAlign : 'center',
-																  items:[{
-																        xtype: 'combo',
-																		id: 'printers',
-																		fieldLabel: '打印机列表', 									
-																		store: Ext.create('Ext.data.Store', {
-																			autoLoad: true,
-																		    fields: ['display', 'value'],
-																		    data:printers 									 
-																		}),
-																		queryMode: 'local',
-																	    displayField: 'display',
-																	    valueField: 'value',
-																		width:361,
-																	    allowBlank:false,
-																	    value:selected_printer.uid,
-																	    selectOnFocus:true,//用户不能自己输入,只能选择列表中有的记录  
-																		style:'margin-left:15px;margin-top:15px;'
-																  },{
-																        xtype: 'combo',
-																		id: 'dpi',
-																		fieldLabel: '打印机分辨率', 		
-																		style:'margin-left:15px;margin-top:15px;',
-																		store: Ext.create('Ext.data.Store', {
-																		   fields: ['display', 'value'],
-																		   data : [{"display": '203dpi', "value": '203'},
-																		           {"display": '300dpi', "value": '300'},
-																		           {"display": '600dpi', "value": '600'},
-																		           {"display": '1200dpi', "value": '1200'}]
-																	   }),
-																	    displayField: 'display',
-																	    valueField: 'value',
-																	    queryMode: 'local',
-																	    value:resolutionCookie||'203',
-																		width:361,
-																	    allowBlank:false,
-																	    selectOnFocus:true//用户不能自己输入,只能选择列表中有的记录  
-																	}]	 							    	     				    							           	
-															 }], 
+															autoscroll:true,
+															items: [{
+																anchor:'100% 100%',
+																xtype:'form',
+																buttonAlign : 'center',
+																items:[{
+																	xtype: 'combo',
+																	id: 'labels',
+																	fieldLabel: '标签列表',
+																	editable:false,
+																	queryMode: 'local',
+																	store: Ext.create('Ext.data.Store', {
+																		autoLoad: true,
+																		fields: ['fm_name','fm_id'],
+																		proxy: {
+																			type: 'ajax',
+																			async : false,
+																			url : basePath + 'vendbarcode/label/getLabelInf.action',
+																			extraParams:{caller:caller},
+																			reader: {
+																				type: 'json',
+																				root: 'datas'
+																			},
+																			headers: {
+																				'Content-Type': 'application/json;charset=utf-8'
+																			}
+																		},
+																		listeners:{
+																			load : function (store){
+																				var myCookieVal = Ext.util.Cookies.get('beforeFmid');
+																				var bo = false;
+																				Ext.each(store.data.items, function(item, index){
+																					if(item.data.fm_id == myCookieVal){
+																						bo = true;
+																					}
+																				});
+																				if(myCookieVal == null || myCookieVal  =='' || !bo){
+																					Ext.getCmp('labels').select(store.getAt(0));
+																				}else{
+																					Ext.getCmp('labels').select(myCookieVal);
+																				}
+																			}
+																		}
+																	}),
+																	displayField: 'fm_name',
+																	valueField: 'fm_id',
+																	width:361,
+																	triggerAction : 'all',
+																	selectOnFocus:true,
+																	allowBlank:false,
+																	style:'margin-left:15px;margin-top:15px;',
+																}]
+															}],
 															buttonAlign: 'center',
 															buttons: [{
 																text: '确定',
 																handler: function(b) {
-																	var printers = Ext.getCmp('printers');
-																	var dpi = Ext.getCmp('dpi');
-																	if(printers && printers.value!= null){
-																		me.zebraPrint(caller,printers.value,dpi.value);
-																		b.ownerCt.ownerCt.close();
-																	}else{
-																		alert("请选择打印机 ");
-																	}   
+																	Ext.util.Cookies.set('beforeFmid',Ext.getCmp('labels').value);
+																	if(r.filemodel == null || r.filemodel == ''){
+																		showError('未找到对应附件');return;
+																	}
+																	me.fastPrintOrder(caller,printer,dpi,Ext.getCmp('labels').value);
+																	b.ownerCt.ownerCt.close();
 																}
 															}, {
 																text: '取消',
@@ -321,20 +462,17 @@ Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
 																	b.ownerCt.ownerCt.close();
 																}
 															}]
-														});   			
-										    		});
-												}else if(me.window.isHidden()){
-													me.window.show();
+														});
+													}
 												}
-										   	},
-										   zebraPrint:function(caller,printer,dpi){
-										   	    var me = this;
-										    	var params = new Object();
-										    	params['condition'] = 'bar_id in ('+me.idS +")";
-										    	sendData(caller,printer,dpi,params);
-											 }
-						            },
-								  {
+											}});
+
+									}else if(me.window1.isHidden()){
+										me.window1.show();
+									}
+								}
+							},
+								{
 									text : '取消',
 									id : 'cancle',
 									handler : function(btn) {
@@ -342,101 +480,101 @@ Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
 										win.close();
 									}
 								}
-								],
-						         });
-				    	  win.show();
+							],
+						});
+						win.show();
 						var ids = new Array();
 						for(var i= 0;i<data.length;i++){
 							ids.push(data[i].BAR_ID);
 						}
 						me.loadData(ids);
 						Ext.getCmp('printNew').enable();
-							
-							var	lps_Barcaller = 'Barcode!Print';
-							var grid = Ext.getCmp("grid");
-					    	var items = grid.store.data.items;
-					    	var idArray = [];
-					    	Ext.each(items, function(item, index){
-			    				var id=item.data['bar_id'];
-			    				if(id != null && id != ''&& id != '0' && id != 0){
-			    					idArray.push(id);
-			    				}
-			    			})
-					    	var idS = idArray.toString();
-						  	//me.print(idS,lps_Barcaller);
-						  	me.idS = idS;
-						  	Ext.MessageBox.confirm('提示', '是否自动打印?',function(btn){
-						  		if(btn=='yes'){			   						
-						  			me.zplPrint(lps_Barcaller);
-			   						}
-						  	});
+
+						var	lps_Barcaller = 'Barcode!Print';
+						var grid = Ext.getCmp("grid");
+						var items = grid.store.data.items;
+						var idArray = [];
+						Ext.each(items, function(item, index){
+							var id=item.data['bar_id'];
+							if(id != null && id != ''&& id != '0' && id != 0){
+								idArray.push(id);
+							}
+						})
+						var idS = idArray.toString();
+						//me.print(idS,lps_Barcaller);
+						me.idS = idS;
+						Ext.MessageBox.confirm('提示', '是否自动打印?',function(btn){
+							if(btn=='yes'){
+								me.zplPrint(lps_Barcaller);
+							}
+						});
 					});
 				}else if(res.exceptionInfo){
 					showError(res.exceptionInfo);
 					return;
 				}
 			}
-	    });
+		});
 	},
 	getBarInfo: function(){
-        var bar = Ext.getCmp('barCode');
-        if(bar && bar.value != null && bar.value != ''){
-     	   var me=this;
-    		me.setLoading(true); 
-    		Ext.Ajax.request({
-    	    	url : basePath +'scm/reserve/getBarInfo.action',
-    			params: {
-    				bar_code:bar.value,
-    			},
-    			method : 'post',
-    			callback : function(options,success,response){
-    				me.setLoading(false);
-    				var res = new Ext.decode(response.responseText);
-    				if(res.success){
-    					var data = res.data;
-    					var prod = data['prodcode'];
-    					var batch = data['batchcode'];
-    					var remain = data['remain'];
-    					var errMsg = data['errmsg'];
-    					Ext.getCmp("pr_code").setValue(prod);
-    					Ext.getCmp("batchCode").setValue(batch);
-    					Ext.getCmp("pr_partNumber").setValue(remain);
-    					Ext.getCmp("errMsg").setValue(errMsg);
-    					Ext.getCmp('errMsg').setFieldStyle('color:#FF0000;');
-    					if(errMsg == null || errMsg ==''){
-    						Ext.getCmp("errMsg").setValue('条码: '+Ext.getCmp('barCode').value+' 采集成功!');  
-    						Ext.getCmp('errMsg').setFieldStyle('color:#22C32E;');
-    					}
-    				}else if(res.exceptionInfo){
-    					showError(res.exceptionInfo);
-    					return;
-    				}
-    			}
-    	    });
-        }
-     } ,
+		var bar = Ext.getCmp('barCode');
+		if(bar && bar.value != null && bar.value != ''){
+			var me=this;
+			me.setLoading(true);
+			Ext.Ajax.request({
+				url : basePath +'scm/reserve/getBarInfo.action',
+				params: {
+					bar_code:bar.value,
+				},
+				method : 'post',
+				callback : function(options,success,response){
+					me.setLoading(false);
+					var res = new Ext.decode(response.responseText);
+					if(res.success){
+						var data = res.data;
+						var prod = data['prodcode'];
+						var batch = data['batchcode'];
+						var remain = data['remain'];
+						var errMsg = data['errmsg'];
+						Ext.getCmp("pr_code").setValue(prod);
+						Ext.getCmp("batchCode").setValue(batch);
+						Ext.getCmp("pr_partNumber").setValue(remain);
+						Ext.getCmp("errMsg").setValue(errMsg);
+						Ext.getCmp('errMsg').setFieldStyle('color:#FF0000;');
+						if(errMsg == null || errMsg ==''){
+							Ext.getCmp("errMsg").setValue('条码: '+Ext.getCmp('barCode').value+' 采集成功!');
+							Ext.getCmp('errMsg').setFieldStyle('color:#22C32E;');
+						}
+					}else if(res.exceptionInfo){
+						showError(res.exceptionInfo);
+						return;
+					}
+				}
+			});
+		}
+	} ,
 	loadData: function(value) {
 		var me = this;
 		me.getFieldsValues("barcode",
-				'bar_id, bar_code, bar_remain', "bar_id in (" +value+") order by bar_id desc", [], function(data){
-			var datas = Ext.JSON.decode(data), _datas = [];
-			var grid = Ext.getCmp('grid');
-			if(datas.length > 0) {
-				var keys = Ext.Object.getKeys(datas[0]);
-				Ext.Array.each(datas, function(d){
-					var obj = {};
-					Ext.Array.each(keys, function(key){
-						obj[key.toLowerCase()] = d[key];
+			'bar_id, bar_code, bar_remain', "bar_id in (" +value+") order by bar_id desc", [], function(data){
+				var datas = Ext.JSON.decode(data), _datas = [];
+				var grid = Ext.getCmp('grid');
+				if(datas.length > 0) {
+					var keys = Ext.Object.getKeys(datas[0]);
+					Ext.Array.each(datas, function(d){
+						var obj = {};
+						Ext.Array.each(keys, function(key){
+							obj[key.toLowerCase()] = d[key];
+						});
+						_datas.push(obj);
 					});
-					_datas.push(obj);
-				});
-			}
+				}
 				store = grid.getStore();
-			_datas.length > 0 && grid.store.loadData(_datas);
-			grid.store.each(function(){
-				this.dirty = true;
+				_datas.length > 0 && grid.store.loadData(_datas);
+				grid.store.each(function(){
+					this.dirty = true;
+				});
 			});
-		});
 	},
 	getFieldsValues: function(caller, fields, condition, data, fn){
 		Ext.Ajax.request({
@@ -460,90 +598,225 @@ Ext.define('erp.controller.scm.reserve.ProdCreateBarcode', {
 			}
 		});
 	},
-	 zplPrint:function(caller){//zpl打印语句
-	   		// 获取选择打印文件,用户选择分辨率,和打印机
-			var me = this;
-			if(!me.window){
-	    		setup_web_print(function(printers,selected_printer){
-	    			me.window = Ext.create('Ext.window.Window', {
-						autoShow: true,
-						title: '选择打印模板',
-						width: 400,
-						height: 300,
-						layout: 'anchor',
-						id :'template-win5',
-						closeAction:'hide',
-						items: [{ 							    					
-							  anchor:'100% 100%',
-							  xtype:'form',  							
-							  buttonAlign : 'center',
-							  items:[{
-							        xtype: 'combo',
-									id: 'printers',
-									fieldLabel: '打印机列表', 									
-									store: Ext.create('Ext.data.Store', {
-										autoLoad: true,
-									    fields: ['display', 'value'],
-									    data:printers 									 
-									}),
-									queryMode: 'local',
-								    displayField: 'display',
-								    valueField: 'value',
-									width:361,
-								    allowBlank:false,
-								    value:selected_printer.uid,
-								    selectOnFocus:true,//用户不能自己输入,只能选择列表中有的记录  
-									style:'margin-left:15px;margin-top:15px;'
-							  },{
-							        xtype: 'combo',
-									id: 'dpi',
-									fieldLabel: '打印机分辨率', 		
-									style:'margin-left:15px;margin-top:15px;',
-									store: Ext.create('Ext.data.Store', {
-									   fields: ['display', 'value'],
-									   data : [{"display": '203dpi', "value": '203'},
-									           {"display": '300dpi', "value": '300'},
-									           {"display": '600dpi', "value": '600'},
-									           {"display": '1200dpi', "value": '1200'}]
-								   }),
-								    displayField: 'display',
-								    valueField: 'value',
-								    queryMode: 'local',
-								    value:resolutionCookie||'203',
-									width:361,
-								    allowBlank:false,
-								    selectOnFocus:true//用户不能自己输入,只能选择列表中有的记录  
-								}]	 							    	     				    							           	
-						 }], 
-						buttonAlign: 'center',
-						buttons: [{
-							text: '确定',
-							handler: function(b) {
-								var printers = Ext.getCmp('printers');
-								var dpi = Ext.getCmp('dpi');
-								if(printers && printers.value!= null){
-									me.zebraPrint(caller,printers.value,dpi.value);
-									b.ownerCt.ownerCt.close();
-								}else{
-									alert("请选择打印机 ");
-								}   
-							}
-						}, {
-							text: '取消',
-							handler: function(b) {
+	zplPrint:function(caller){//zpl打印语句
+		// 获取选择打印文件,用户选择分辨率,和打印机
+		var me = this;
+		var bo = false;
+		Ext.Ajax.request({
+			url: basePath + 'ma/setting/config.action?caller=BarCodeSetting&code=zebraOrderPrint',
+			method: 'GET',
+			async: false,
+			callback: function(opt, s, r) {
+				if(r && r.status == 200) {
+					if(r.responseText){
+						var res = Ext.JSON.decode(r.responseText);
+						if(res.data==1){
+							bo = true;
+						}
+					}
+				}
+			}
+		});
+		if(!me.window){
+			setup_web_print(function(printers,selected_printer){
+				me.window = Ext.create('Ext.window.Window', {
+					autoShow: true,
+					title: '选择打印模板',
+					width: 400,
+					height: bo?200:300,
+					layout: 'anchor',
+					id :'template-win',
+					closeAction:'hide',
+					items: [{
+						anchor:'100% 100%',
+						xtype:'form',
+						buttonAlign : 'center',
+						items:[{
+							xtype: 'combo',
+							id: 'printers',
+							fieldLabel: '打印机列表',
+							store: Ext.create('Ext.data.Store', {
+								autoLoad: true,
+								fields: ['display', 'value'],
+								data:printers
+							}),
+							queryMode: 'local',
+							displayField: 'display',
+							valueField: 'value',
+							width:361,
+							allowBlank:false,
+							value:selected_printer.uid,
+							selectOnFocus:true,//用户不能自己输入,只能选择列表中有的记录
+							style:'margin-left:15px;margin-top:15px;'
+						},{
+							xtype: 'combo',
+							id: 'dpi',
+							fieldLabel: '打印机分辨率',
+							style:'margin-left:15px;margin-top:15px;',
+							store: Ext.create('Ext.data.Store', {
+								fields: ['display', 'value'],
+								data : [{"display": '203dpi', "value": '203'},
+									{"display": '300dpi', "value": '300'},
+									{"display": '600dpi', "value": '600'},
+									{"display": '1200dpi', "value": '1200'}]
+							}),
+							displayField: 'display',
+							valueField: 'value',
+							queryMode: 'local',
+							value:resolutionCookie||'203',
+							width:bo?0:361,
+							allowBlank:false,
+							selectOnFocus:true,//用户不能自己输入,只能选择列表中有的记录
+							hidden:bo?true:false
+						}]
+					}],
+					buttonAlign: 'center',
+					buttons: [{
+						text: '确定',
+						handler: function(b) {
+							var printers = Ext.getCmp('printers');
+							var dpi = Ext.getCmp('dpi');
+							if(printers && printers.value!= null){
+//								if(bo){
+								me.getLabelInfo(caller,printers.value,dpi.value);
+								// }else{
+								// 	me.zebraPrint(caller,printers.value,dpi.value);
+								// }
 								b.ownerCt.ownerCt.close();
+							}else{
+								alert("请选择打印机 ");
 							}
-						}]
-					});   			
-	    		});
-			}else if(me.window.isHidden()){
-				me.window.show();
-			}
-	   	},
-	   zebraPrint:function(caller,printer,dpi){
-	   	    var me = this;
-	    	var params = new Object();
-	    	params['condition'] = 'bar_id in ('+me.idS +")";
-	    	sendData(caller,printer,dpi,params);
-		 }
+						}
+					}, {
+						text: '取消',
+						handler: function(b) {
+							b.ownerCt.ownerCt.close();
+						}
+					}]
+				});
+			});
+		}
+		else if(me.window.isHidden()){
+			me.window.show();
+		}
+	},
+	zebraPrint:function(caller,printer,dpi){
+		var me = this;
+		var params = new Object();
+		params['condition'] = 'bar_id in ('+me.idS +")";
+		sendData(caller,printer,dpi,params);
+	},
+	fastPrintOrder:function(caller,printer,dpi,fmid){
+		var me = this;
+		var params = new Object();
+		params['condition'] = 'bar_id in ('+me.idS +")";
+		sendDataOrder(caller,printer,dpi,params,fmid);
+	},
+	getLabelInfo:function(caller,printer,dpi){
+		var me = this;
+		if(!me.window1){
+			Ext.Ajax.request({
+				url : basePath + 'vendbarcode/label/getLabelInfo.action',
+				async: false,
+				params: {
+					formCaller:caller
+				},
+				method : 'post',
+				callback : function(opt, s, res){
+					var r = new Ext.decode(res.responseText);
+					if(r.exceptionInfo){
+						showError(r.exceptionInfo);return;
+					} else if(r.success){
+						if(r.count == 0){   //r.filemodel   r.label
+							showError("未配置标签模板");return;
+						}else if(r.count == 1){
+							me.fastPrintOrder(caller,printer,dpi,r.label[0].FM_ID);
+						}else if(r.count >1){
+							me.window1 = Ext.create('Ext.window.Window', {
+								autoShow: true,
+								title: '选择打印标签模板',
+								width: 400,
+								height: 180,
+								layout: 'anchor',
+								id :'labels-win',
+								closeAction:'hide',
+								autoscroll:true,
+								items: [{
+									anchor:'100% 100%',
+									xtype:'form',
+									buttonAlign : 'center',
+									items:[{
+										xtype: 'combo',
+										id: 'labels',
+										fieldLabel: '标签列表',
+										editable:false,
+										queryMode: 'local',
+										store: Ext.create('Ext.data.Store', {
+											autoLoad: true,
+											fields: ['fm_name','fm_id'],
+											proxy: {
+												type: 'ajax',
+												async : false,
+												url : basePath + 'vendbarcode/label/getLabelInf.action',
+												extraParams:{caller:caller},
+												reader: {
+													type: 'json',
+													root: 'datas'
+												},
+												headers: {
+													'Content-Type': 'application/json;charset=utf-8'
+												}
+											},
+											listeners:{
+												load : function (store){
+													var myCookieVal = Ext.util.Cookies.get('beforeFmid');
+													var bo = false;
+													Ext.each(store.data.items, function(item, index){
+														if(item.data.fm_id == myCookieVal){
+															bo = true;
+														}
+													});
+													if(myCookieVal == null || myCookieVal  =='' || !bo){
+														Ext.getCmp('labels').select(store.getAt(0));
+													}else{
+														Ext.getCmp('labels').select(myCookieVal);
+													}
+												}
+											}
+										}),
+										displayField: 'fm_name',
+										valueField: 'fm_id',
+										width:361,
+										triggerAction : 'all',
+										selectOnFocus:true,
+										allowBlank:false,
+										style:'margin-left:15px;margin-top:15px;',
+									}]
+								}],
+								buttonAlign: 'center',
+								buttons: [{
+									text: '确定',
+									handler: function(b) {
+										Ext.util.Cookies.set('beforeFmid',Ext.getCmp('labels').value);
+										if(r.filemodel == null || r.filemodel == ''){
+											showError('未找到对应附件');return;
+										}
+										me.fastPrintOrder(caller,printer,dpi,Ext.getCmp('labels').value);
+										b.ownerCt.ownerCt.close();
+									}
+								}, {
+									text: '取消',
+									handler: function(b) {
+										b.ownerCt.ownerCt.close();
+									}
+								}]
+							});
+						}
+					}
+				}});
+
+		}else if(me.window1.isHidden()){
+			me.window1.show();
+		}
+	}
 });

+ 44 - 43
WebContent/app/view/scm/reserve/ProdCreateBarcode.js

@@ -1,10 +1,10 @@
-Ext.define('erp.view.scm.reserve.ProdCreateBarcode',{ 
-	extend: 'Ext.Viewport', 
+Ext.define('erp.view.scm.reserve.ProdCreateBarcode',{
+	extend: 'Ext.Viewport',
 	alias: 'widget.erpProdCreateBarcode',
-	hideBorders: true, 
-	id: 'ProdCreateBarcode', 
-    frame : true,
-    layout : 'column',
+	hideBorders: true,
+	id: 'ProdCreateBarcode',
+	frame : true,
+	layout : 'column',
 	autoScroll : true,
 	cls: 'u-form-default',
 	fieldDefaults : {
@@ -15,50 +15,51 @@ Ext.define('erp.view.scm.reserve.ProdCreateBarcode',{
 		blankText : $I18N.common.form.blankText
 	},
 	FormUtil: Ext.create('erp.util.FormUtil'),
-	initComponent : function(){ 
-		var me = this; 
-		Ext.apply(me, { 
-			items: [{ 
-				layout: 'column', 
+	initComponent : function(){
+		var me = this;
+		Ext.apply(me, {
+			items: [{
+				layout: 'column',
 				items: [{
 					xtype: "window",
 					autoShow: true,
 					closable: true,
 					maximizable : true,
 					buttonAlign : 'center',
-			    	width: '75%',
-			    	height: '75%',
-			    	layout: 'column',
-                    items: [
-                        /*{ xtype: "textfield", name: "barCode", id:'barCode',labelAlign : "right",fieldLabel: '条码号', allowBlank: true,labelWidth:80,columnWidth: 0.83,margin: '20 0 0 0',maxLength:300,emptyText: '请采集条码信息',listeners:{
+					width: '75%',
+					height: '75%',
+					layout: 'column',
+					items: [
+						/*{ xtype: "textfield", name: "barCode", id:'barCode',labelAlign : "right",fieldLabel: '条码号', allowBlank: true,labelWidth:80,columnWidth: 0.83,margin: '20 0 0 0',maxLength:300,emptyText: '请采集条码信息',listeners:{
                             'render' : function() {
-                            	Ext.getCmp('barCode').focus(false, 100);
+                                Ext.getCmp('barCode').focus(false, 100);
                              }
                         }}, {xtype:'button' , text:'清空',columnWidth: 0.07,margin: '20 0 0 0',handler: function(view, rowIndex, colIndex) {
-                        	Ext.getCmp('barCode').setValue("");
-                        	Ext.getCmp('barCode').focus(false, 100);
-						}} ,*/
-                        { xtype: 'dbfindtrigger',fieldLabel:  '<font color="red">物料编号</font>',id: 'pr_code',name: 'pr_code',
-			    	    	labelAlign : "right",allowBlank: false,labelWidth:80,columnWidth: 0.45,margin: '20 0 0 0'},
-                        { xtype: "textfield", name: "pr_partNumber", id:'pr_partNumber',labelAlign : "right",fieldLabel: '<font color="red">数量</font>', allowBlank: false,labelWidth:80,columnWidth: 0.45,margin: '20 0 0 0'},
-						{ xtype: "textfield", name: "pr_zxbzNumber", id:'pr_zxbzNumber',labelAlign : "right",fieldLabel: '<font color="red">最小包装数量</font>', allowBlank: false,labelWidth:80,columnWidth: 0.45,margin: '20 0 0 0'},
-                        { xtype: "textfield", name: "batchCode", id:'batchCode',labelAlign : "right",fieldLabel: '批号', allowBlank: true,labelWidth:80,columnWidth: 0.45,margin: '20 0 0 0',maxLength:30},
-                        /*{ xtype: "textarea", name: "errMsg", id:'errMsg',labelAlign : "right",fieldLabel: '提示信息', allowBlank: true,labelWidth:80,columnWidth: 0.6,margin: '60 0 0 0',emptyText: '提示信息'},*/
-                    ],
-	    		buttons: [
-	    			{xtype: 'erpGenerateBarcodeButton'},
-	    			/*{
-		                xtype: 'checkboxfield',
-		                name: 'autoPrint',
-		                id:'autoPrint1',
-		                boxLabel: '自动打印条码',
-		            	checked:true
-		            },*/
-	    			{xtype: 'erpCloseButton'}
-	    		]
-			    }]
-			}] 
-		}); 
-		me.callParent(arguments); 
-	} 
+                            Ext.getCmp('barCode').setValue("");
+                            Ext.getCmp('barCode').focus(false, 100);
+                        }} ,*/
+						{ xtype: 'dbfindtrigger',fieldLabel:  '<font color="red">物料编号</font>',id: 'pr_code',name: 'pr_code',
+							labelAlign : "right",allowBlank: false,labelWidth:80,columnWidth: 0.45,margin: '20 0 0 0'},
+						{ xtype: "textfield", name: "pr_partNumber", id:'pr_partNumber',labelAlign : "right",fieldLabel: '<font color="red">数量</font>', allowBlank: false,labelWidth:80,columnWidth: 0.45,margin: '20 0 0 0'},
+						{ xtype: "textfield", name: "pr_zxbzNumber", id:'pr_zxbzNumber',labelAlign : "right",fieldLabel: '<font color="red">最小包装数</font>', allowBlank: false,labelWidth:80,columnWidth: 0.45,margin: '20 0 0 0'},
+						{ xtype: "textfield", name: "batchCode", id:'batchCode',labelAlign : "right",fieldLabel: '批号', allowBlank: false,labelWidth:80,columnWidth: 0.45,margin: '20 0 0 0',maxLength:30},
+						{ xtype:'datefield', format:"Y-m-d", name: "madeDate", id:'madeDate',labelAlign : "right",fieldLabel: '生产日期', allowBlank: false,labelWidth:80,columnWidth: 0.45,margin: '20 0 0 0'},
+						/*{ xtype: "textarea", name: "errMsg", id:'errMsg',labelAlign : "right",fieldLabel: '提示信息', allowBlank: true,labelWidth:80,columnWidth: 0.6,margin: '60 0 0 0',emptyText: '提示信息'},*/
+					],
+					buttons: [
+						{xtype: 'erpGenerateBarcodeButton'},
+						/*{
+                            xtype: 'checkboxfield',
+                            name: 'autoPrint',
+                            id:'autoPrint1',
+                            boxLabel: '自动打印条码',
+                            checked:true
+                        },*/
+						{xtype: 'erpCloseButton'}
+					]
+				}]
+			}]
+		});
+		me.callParent(arguments);
+	}
 });