| 
					
				 | 
			
			
				@@ -1,18 +1,32 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package u8c.ui.mmpac.panel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.awt.Color; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.bs.framework.common.NCLocator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.itf.uap.IUAPQueryBS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.jdbc.framework.processor.ColumnProcessor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.jdbc.framework.processor.MapProcessor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.ui.hr.frame.FrameUI; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.ui.hr.frame.impl.MainBillMgrPanel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.ui.hr.frame.state.StateRegister; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.ui.pub.beans.MessageDialog; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.ui.pub.bill.BillCardPanel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.ui.pub.bill.BillEditEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.ui.pub.bill.BillItemEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.ui.pub.bill.IBillItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import nc.vo.hr.tools.pub.HRConstEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import nc.vo.pub.BusinessException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import u8c.itf.mmpac.mmpac.IOrderTotalInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import u8c.ui.mmpac.datamodel.OrderDataModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import u8c.vo.OrderInVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class OrderMainPanel extends MainBillMgrPanel{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public int selectedRow = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public IUAPQueryBS iuap=NCLocator.getInstance().lookup(IUAPQueryBS.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public OrderMainPanel(FrameUI frameUI, String strBillType2, String strBusiType2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		super(frameUI, strBillType2, strBusiType2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		initComboBox(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -41,18 +55,173 @@ public class OrderMainPanel extends MainBillMgrPanel{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public void afterEdit(BillEditEvent evt) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  //表体、表头编辑后事件	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	  String field=evt.getKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	  String value=(String) evt.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	  String oldvalue=(String) evt.getOldValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	  value=oldvalue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	  //获取panle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	  BillCardPanel bcp=getBillCardPanel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	  if(OrderInVO.COLOR.equals(field)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		//  bcp.setBodyValueAt(oldvalue, selectedRow, OrderInVO.COLOR, "mmpac_order_otherin"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		String field=evt.getKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		if("cmaterialcode".equals(field)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				Map<String,String> map = getInvbasdoc(evt.getValue().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				BillCardPanel bcp=this.getBillCardPanel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////				getBillCardPanel().getHeadItem("vdef3").setEnabled(false);//表头不可编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//颜色 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				String free1 = map.get("free1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				if(null==free1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//					bcp.getBillModel().setCellEditable(evt.getRow(),"color", false);//不可编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			//		bcp.getBodyItem("color").setNull(false);//不用必输 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			//		bcp.getBodyItem("color").setNull(true);//必输项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////					Color clrBack = new Color(209, 214, 251); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////					bcp.getBodyPanel().setCellBackGround(0, "color", clrBack); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//					bcp.getBillModel("mmpac_order_in").setBackground(Color.yellow, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//							evt.getRow(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//                            bcp.getBillModel("mmpac_order_in").getItemIndex("color")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//定尺 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				String free3 = map.get("free3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				if(null==free3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//					bcp.getBillModel().setCellEditable(evt.getRow(),"sizing", false);//不可编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//	bcp.getBodyItem("sizing").setNull(false);//不用必输 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//	bcp.getBodyItem("sizing").setNull(true);//必输项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//合金 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				String free2 = map.get("free2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				if(null==free2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//					bcp.getBillModel().setCellEditable(evt.getRow(),"alloy", false);//不可编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//	bcp.getBodyItem("alloy").setNull(false);//不用必输 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//	bcp.getBodyItem("alloy").setNull(true);//必输项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//标准 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				String free4 = map.get("free4"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				if(null==free4) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//					bcp.getBillModel().setCellEditable(evt.getRow(),"standard", false);//不可编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//	bcp.getBodyItem("standard").setNull(false);//不用必输 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				}else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				//	bcp.getBodyItem("standard").setNull(true);//必输项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			} catch (BusinessException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				// TODO Auto-generated catch block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//				e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Map<String,String> map=new HashMap<String,String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if("color".equals(field)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//	MessageDialog.showHintDlg(null, "提示", "Ok"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			//保存数据到数据库 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String tablecode= evt.getTableCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if("mmpac_order_otherin".equals(tablecode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				String value=(String) evt.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				String pk=(String) getBillCardPanel().getBodyValueAt(evt.getRow(), "pk_order_otherin");//PK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				map.put(pk, value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if("bdef5".equals(field)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    //是否委外标识 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			String tablecode= evt.getTableCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if("mmpac_order_issue".equals(tablecode)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				//查询Bdef1 对应的出入库是否生成下游单据,生成了就不允许改成否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				String pk=(String) getBillCardPanel().getBodyValueAt(evt.getRow(), "pk_order_issue");//PK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				//查询出入库数据看已执行数量是否为空,不为空就不能取消标识 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Object objenumin=getTablevalue("execnum", "mmpac_order_otherin", "bdef1='" + pk + "' "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Object objenumout=getTablevalue("execnum", "mmpac_order_otherout", "bdef1='" + pk + "' "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if(null!=objenumin  ||  null!=objenumout ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						 MessageDialog.showErrorDlg(null, "提示", "已经生成下游单据不能取消!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						 this.getBillCardPanel().setBodyValueAt("Y", evt.getRow(),"bdef5" ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						 return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} catch (BusinessException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					MessageDialog.showErrorDlg(null, "错误", e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if(null!=map &&  map.size()>0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				StringBuffer sbf=new StringBuffer(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for (Map.Entry<String,String> entry : map.entrySet()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					sbf.append("update mmpac_order_otherin set color='"+entry.getValue()+"' where  pk_order_otherin='"+entry.getKey()+"'; "); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				IOrderTotalInfo iorderinfo=NCLocator.getInstance().lookup(IOrderTotalInfo.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				iorderinfo.updateExecnum(sbf.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} catch (BusinessException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// TODO Auto-generated catch block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			MessageDialog.showErrorDlg(null, "错误", e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		super.afterEdit(evt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	protected boolean beforeEdit(BillItemEvent evt) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//表头编辑前 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return super.beforeEdit(evt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public boolean beforeEdit(BillEditEvent evt) {  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		//表体编辑前 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	   evt.getSource(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	   OrderDataModel dataModel = (OrderDataModel) getParentUI().getDataModel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	   String field=evt.getKey(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	   String value=(String) evt.getValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	   String oldvalue=(String) evt.getOldValue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//	   value=oldvalue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		 //获取panle 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		BillCardPanel bcp=getBillCardPanel(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		if(OrderInVO.COLOR.equals(field)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		   bcp.setBodyValueAt(oldvalue, selectedRow, OrderInVO.COLOR, "mmpac_order_otherin"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return super.beforeEdit(evt); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //查询物料的自由项 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 public Map<String,String> getInvbasdoc(String cmaterialcode)throws BusinessException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	String sql = "select free1,free2,free3,free4 from bd_invbasdoc where invcode  = '"+cmaterialcode+"' and dr = 0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	return (Map<String, String>) iuap.executeQuery(sql.toString(), new MapProcessor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 //查询表数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 public Object getTablevalue(String value,String table,String where)throws BusinessException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	String sql = "select "+value+"  from "+table+" where  "+where+" "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	return  iuap.executeQuery(sql.toString(), new ColumnProcessor()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |