Browse Source

Merge branch 'master' of http://139.196.39.194:9021/pancy/menchuang.git

yaoyu 1 year ago
parent
commit
49f4432be5

+ 12 - 0
mm/mm/src/client/u8c/ui/mm/action/MRPDialogdura.java

@@ -23,6 +23,7 @@ public class MRPDialogdura extends UIDialog implements ActionListener {
 	private UIPanel ivjUIPanBtn;
 	private String ret_pub;
 	private String ret_pubn_b;
+	private String ret_pubn_c;
 	public Boolean dg_iscancel;
 	private final String pk_user_pub;
 	private final String pk_corp_pub;
@@ -49,6 +50,15 @@ public class MRPDialogdura extends UIDialog implements ActionListener {
 		return ret_pubn_b;
 	}
 	
+	public String getXmcode() {
+//		ArrayList<Object> arr = new ArrayList<Object>();
+//		arr.add(ret_pub);
+//		arr.add(ret_pubn_e);
+		return ret_pubn_c;
+	}
+	
+	
+	
 	private void initialize() throws BusinessException {
 		setTitle("MRP运算");
 		setSize(350, 200);
@@ -192,6 +202,7 @@ public class MRPDialogdura extends UIDialog implements ActionListener {
 		try {
 			String butype = getBillSclPan().getHeadItem("butype").getValue();//业务类型
 			String xcname = getBillSclPan().getHeadItem("xmname").getValue();//项目名称
+			String gdcode= getBillSclPan().getHeadItem("xmcode").getValue();//工单号
 			if (butype != null && !"".equals(butype)) {
 				if(butype.equals("工装") && (xcname == null
 						||  "".equals(xcname))) {
@@ -200,6 +211,7 @@ public class MRPDialogdura extends UIDialog implements ActionListener {
 				}
 				ret_pub = butype;
 				ret_pubn_b =xcname;
+				ret_pubn_c =gdcode;
 				setResult(UIDialog.ID_OK);
 				dg_iscancel=Boolean.TRUE;
 				destroy();

+ 2 - 0
mm/mm/src/client/u8c/ui/mm/action/OperationSaveAction.java

@@ -4,6 +4,7 @@ import nc.bs.pub.billcodemanage.BillcodeGenerater;
 import nc.hr.utils.PubEnv;
 import nc.ui.hr.frame.FrameUI;
 import nc.ui.hr.frame.action.SaveAction;
+import nc.ui.hr.frame.button.AbstractBtnReg;
 import nc.ui.hr.frame.impl.MainBillMgrPanel;
 import nc.ui.hr.frame.state.StateRegister;
 import nc.vo.OperationMainVO;
@@ -38,6 +39,7 @@ public class OperationSaveAction extends SaveAction{
 		}
 		super.execute();
 		frameUI.getDataModel().setCurrentState(StateRegister.STATE_NOTEDIT); 
+		getFrameUI().getBtnManager().getCmdByID(AbstractBtnReg.SYSBTN_REFRESH).execute();
 	
 	}
 }

+ 3 - 2
mm/mm/src/client/u8c/ui/mm/action/PushParybillAction.java

@@ -146,7 +146,9 @@ public class PushParybillAction extends AbstractAction {
 					// 表体赋值
 					praybillItemVO.setCmangid(getCmangchid(getCmangid(zbvo.getCmaterialcode()))); //存货编码
 					praybillItemVO.setCbaseid(getCmangid(zbvo.getCmaterialcode())); //存货基础ID 
-					praybillItemVO.setNpraynum(new UFDouble(zbvo.getNum())); //数量
+//					praybillItemVO.setNpraynum(new UFDouble(zbvo.getNum())); //数量
+					praybillItemVO.setNpraynum(new UFDouble(zbvo.getVdef26())); //数量
+					praybillItemVO.setNassistnum (zbvo.getNastnum());//辅计量数量
 					String cprojectid = headvo.getProjectid();//项目id
 					praybillItemVO.setCprojectid(cprojectid);
 //					praybillItemVO.setCassistunit(demandBVO.getCastunitid());//辅助计量单位
@@ -172,7 +174,6 @@ public class PushParybillAction extends AbstractAction {
 					praybillItemVO.setAttributeValue("pk_defdoc14",zbvo.getVdef12());//玻璃编号
 					
 					praybillItemVO.setCassistunit(getMeasidByNames(zbvo.getCastunitid()));//辅计量单位ID 
-					praybillItemVO.setNassistnum (zbvo.getNastnum());//辅计量单位ID 
 					
 					praybillItemVO.setVproducenum (zbvo.getVbatchcode());
 					praybillItemVO.setVfree1(zbvo.getColor());

+ 201 - 13
mm/mm/src/client/u8c/ui/mm/action/PushTranstorAction.java

@@ -1,16 +1,38 @@
 package u8c.ui.mm.action;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import nc.bs.framework.common.NCLocator;
+import nc.hr.utils.PubEnv;
+import nc.itf.uap.IUAPQueryBS;
+import nc.itf.uap.pf.IplatFormEntry;
+import nc.jdbc.framework.processor.ColumnProcessor;
 import nc.ui.hr.frame.FrameUI;
 import nc.ui.hr.frame.action.AbstractAction;
 import nc.ui.hr.frame.impl.MainBillMgrPanel;
+import nc.ui.pub.ClientEnvironment;
+import nc.ui.pub.beans.MessageDialog;
 import nc.vo.OperationMainVO;
+import nc.vo.OperationTransferVO;
 import nc.vo.hr.tools.pub.HRAggVO;
+import nc.vo.ic.pub.bill.SpecialBillHeaderVO;
+import nc.vo.ic.pub.bill.SpecialBillItemVO;
+import nc.vo.ic.pub.bill.SpecialBillVO;
+import nc.vo.pub.BusinessException;
+import nc.vo.pub.CircularlyAccessibleValueObject;
 import nc.vo.pub.ValidationException;
+import nc.vo.pub.lang.UFDate;
+import nc.vo.pub.lang.UFDouble;
 import u8c.ui.mm.panel.OperationMainPanel;
 import u8c.ui.mm.panel.OperationTestUI;
 
 public class PushTranstorAction extends AbstractAction{
-
+	private IUAPQueryBS iuap = (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
+	private IplatFormEntry iIplatFormEntry = (IplatFormEntry) NCLocator.getInstance()
+			.lookup(IplatFormEntry.class.getName());
 	OperationTestUI frameUI = null;
 	
 	public PushTranstorAction(FrameUI frameUI) {
@@ -33,20 +55,186 @@ public class PushTranstorAction extends AbstractAction{
 			}
 //			ToTranStorDialog toTranStorDialog = new ToTranStorDialog(s);
 //			toTranStorDialog.show();
+			
+			//生成转库单
+			OperationTransferVO[]  operationpurs=getTranArrays(s);
+			if(null==operationpurs || operationpurs.length==0) {
+				throw new ValidationException("没有需要生成的转库单!");
+			}else {
+				IplatFormEntry iIplatFormEntry = (IplatFormEntry)NCLocator.getInstance().lookup(IplatFormEntry.class.getName());
+				List<SpecialBillVO> getaggvos =getaggvos(operationpurs,headvo);
+				if(null!=getaggvos && getaggvos.size()>0) {
+					for(SpecialBillVO vo:getaggvos) {
+						   iIplatFormEntry.processAction("WRITE", "4K", null, null, vo, null, null);
+						}
+					MessageDialog.showHintDlg(frameUI, "成功", "转库单新增成功!");
+				}else {
+					MessageDialog.showHintDlg(frameUI, "提示", "转库单没有数据!");			
+				}				
+			}
 		}	
+	}
+	
+	
+
+	// 根据传入的aggvo获取tranvo数组
+	private OperationTransferVO[] getTranArrays(HRAggVO aggvo) {
+		CircularlyAccessibleValueObject[] vos = aggvo.getAllChildrenVO();
+		List<OperationTransferVO> tranvos = new ArrayList<OperationTransferVO>();
+		for (CircularlyAccessibleValueObject vo : vos) {
+			if (vo instanceof OperationTransferVO) {
+				// 本次执行数量不填就默认
+				// 执行完的表体在生单界面不展示
+				OperationTransferVO tranvo = (OperationTransferVO) vo;
+				UFDouble num = tranvo.getNum() == null ? UFDouble.ZERO_DBL : tranvo.getNum();
+				UFDouble execnum = tranvo.getExecnum() == null ? UFDouble.ZERO_DBL : new UFDouble(tranvo.getExecnum());
+				if (num.sub(execnum).compareTo(UFDouble.ZERO_DBL) == 0) {
+					continue;
+				}
+				tranvo.setVdef2(num.sub(execnum).setScale(2, UFDouble.ROUND_HALF_UP).toString());
+				tranvos.add(tranvo);
+			}
+		}
+		OperationTransferVO[] tranArrays = tranvos.toArray(new OperationTransferVO[0]);
+		return tranArrays;
+	}
+	
+	
+	
+	private  List<SpecialBillVO> getaggvos(OperationTransferVO[] opervos,OperationMainVO headvo) throws Exception{
+		Map<String,List<OperationTransferVO>> map=new HashMap<String,List<OperationTransferVO>>();//key 转库需求单主键
+		for(int i=0;i<opervos.length;i++) {
+			OperationTransferVO cagvo=opervos[i];
+			List<OperationTransferVO> vos=map.get(cagvo.getVdef29());//TODO换成主键
+			if(null!=vos && vos.size() >0 ) {
+				vos.add(cagvo);
+				map.put(cagvo.getVdef29(), vos);
+			}else {
+				List<OperationTransferVO> vosnew=new ArrayList<OperationTransferVO>();
+				vosnew.add(cagvo);
+				map.put(cagvo.getVdef29(), vosnew);
+			}
+		}
 		
-		
-		//生成转库单
-		
-		
-		
-		
-		
-		
-		
-		
-		
-		
+		 List<SpecialBillVO> aggvos=new ArrayList<SpecialBillVO>();
+		 for (Map.Entry<String,List<OperationTransferVO>> entry : map.entrySet()) {
+			 SpecialBillVO aggvo = new SpecialBillVO();
+			 SpecialBillHeaderVO header = new SpecialBillHeaderVO();
+				// 表头赋值
+			 header.setCbilltypecode("4K");
+	//			headvo.setCinwarehouseid("1001V51000000000039Z");// 入库仓库ID 工装
+			 header.setCinwarehouseid(getstordocpk("GZ001"));//入仓库必填
+			 header.setCoperatorid(ClientEnvironment.getInstance().getUser().getPrimaryKey());
+	//			headvo.setCoutwarehouseid("1001V5100000000003A1");// 出库仓库ID 家装
+			 header.setCoutwarehouseid(getstordocpk("GG003"));//仓库必填
+			 header.setCshlddiliverdate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
+			 header.setDbilldate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
+			 header.setFbillflag(2);
+			 header.setIcheckmode(4);
+			 header.setIPrintCount(0);
+			 header.setPk_corp(PubEnv.getCorpCode());
+			 header.setVshldarrivedate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
+			 	/***************************/
+				//项目编码 pk_defdoc9
+				header.setAttributeValue("pk_defdoc9", headvo.getProjectid());
+				//项目名称pk_defdoc10
+				header.setAttributeValue("pk_defdoc10", headvo.getProjectid());
+				//加工单号pk_defdoc2
+				header.setAttributeValue("pk_defdoc2", entry.getKey());
+				 /***************************/
+			 //表体
+				List<OperationTransferVO> lispurvos=entry.getValue();
+				SpecialBillItemVO[] items = new SpecialBillItemVO[lispurvos.size()];
+				for(int j=0;j<lispurvos.size();j++) {
+					OperationTransferVO zbvo=lispurvos.get(j);
+					SpecialBillItemVO billitem = new SpecialBillItemVO();
+					String cmaterialcode = zbvo.getCmaterialcode();//
+					billitem.setCinventoryid(getCmangchid(getCmangid(cmaterialcode)));
+					billitem.setAttributeValue("pk_corp",PubEnv.getCorpCode());//公司
+					billitem.setAttributeValue("pk_defdoc1",zbvo.getVdef1() );//楼号楼层
+					billitem.setAttributeValue("pk_defdoc2", zbvo.getVdef2());//樘数(数量)
+					billitem.setAttributeValue("pk_defdoc3", zbvo.getVdef3());//框统计
+					billitem.setAttributeValue("pk_defdoc4", zbvo.getVdef4());//扇统计
+					billitem.setAttributeValue("pk_defdoc5", zbvo.getVdef5());//半成品分类
+					billitem.setAttributeValue("pk_defdoc6", zbvo.getVdef6());//面积
+					billitem.setAttributeValue("pk_defdoc7", zbvo.getVdef7());//切割长度
+					billitem.setAttributeValue("pk_defdoc8", zbvo.getVdef8());//切割角度左下
+					billitem.setAttributeValue("pk_defdoc9", zbvo.getVdef9());//切割角度右上
+					billitem.setAttributeValue("pk_defdoc10",zbvo.getVdef10());//备注
+					billitem.setAttributeValue("pk_defdoc11",zbvo.getWidth());//宽度
+					billitem.setAttributeValue("pk_defdoc12",zbvo.getHeight());//高度
+					billitem.setAttributeValue("pk_defdoc13",zbvo.getVdef11());//系列
+					billitem.setAttributeValue("pk_defdoc14",zbvo.getVdef12());//玻璃编号
+//					billitem.setVbatchcode (zbvo.getOutvbatchcode());//批次号——转出批次
+					billitem.setVbatchcode (zbvo.getInvbatchcode());//批次号——转出批次
+					billitem.setVfree1(zbvo.getColor());
+					billitem.setVfree2(zbvo.getAlloy());
+					billitem.setVfree3(zbvo.getSizing());
+					billitem.setVfree4(zbvo.getStandard());
+					billitem.setCastunitid(getMeasidByNames(zbvo.getCastunitid()));//辅计量单位ID 
+				//	billitem.setDshldtransnum(zbvo.getNum());//数量
+					billitem.setDshldtransnum(new UFDouble(zbvo.getVdef26()));//数量
+					billitem.setNshldtransastnum(zbvo.getNastnum());//应转辅数量 
+					items[j]=billitem;
+				}
+				aggvo.setParentVO(header);
+				aggvo.setChildrenVO(items);
+				aggvos.add(aggvo);
+		    }
+		  return aggvos;
+	}
+	
+	
+	
+	/**
+	 * 根据物料code查询主键
+	 * 
+	 * @param code
+	 * @return
+	 * @throws BusinessException
+	 */
+	public String getCmangid(String code) throws BusinessException {
+		String cmangid = null;
+		String sql = " select pk_invbasdoc from bd_invbasdoc" + " where invcode  ='" + code + "' and dr =0 ";
+		cmangid = (String) iuap.executeQuery(sql, new ColumnProcessor());
+		if (cmangid == null) {
+			throw new BusinessException("U8C物料code不存在:" + code);
+		}
+		return cmangid;
+	}
+
+	/**
+	 * 存货管理档案
+	 * 
+	 * @param code
+	 * @return
+	 * @throws BusinessException
+	 */
+	public String getCmangchid(String pk_invbasdoc) throws BusinessException {
+		String cmangid = null;
+		String sql = " select pk_invmandoc from bd_invmandoc" + " where pk_invbasdoc  ='" + pk_invbasdoc
+				+ "' and dr =0 ";
+		cmangid = (String) iuap.executeQuery(sql, new ColumnProcessor());
+		if (cmangid == null) {
+			throw new BusinessException("U8C物料code不存在:" + pk_invbasdoc);
+		}
+		return cmangid;
 	}
+	
+	  public  String getstordocpk(String storcode)throws Exception{
+	    	String sql = "select pk_stordoc from bd_stordoc where storcode = '"+storcode+"'";
+	    	String pk_stordoc = (String) iuap.executeQuery(sql, new ColumnProcessor());
+	    	if(pk_stordoc == null) {
+	    		throw new Exception("仓库"+storcode+"未查到,请检查");
+	    	}
+	    	return pk_stordoc;
+	    }
+	
+
+		//根据计量单位名称获取主键
+	    public  String getMeasidByNames(String measname) throws Exception {
+	        String sql = "select pk_measdoc from bd_measdoc where isnull(dr,0) = 0 and measname = '"+measname+"'";
+	        return (String) iuap.executeQuery(sql, new ColumnProcessor());
+	    }
 
 }

+ 113 - 87
mm/mm/src/client/u8c/ui/mm/action/YsAction.java

@@ -7,6 +7,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.flexdock.util.UUID;
+
+import chrriis.dj.nativeswing.swtimpl.Message;
 import nc.bs.framework.common.NCLocator;
 import nc.bs.pub.billcodemanage.BillcodeGenerater;
 import nc.hr.utils.PubEnv;
@@ -79,7 +82,7 @@ public class YsAction extends YsQuseryAction{
 		if(dialog.dg_iscancel) {
 			String butype = dialog.getButype();//业务类型下拉--- 家装\工装
 			String xmname = dialog.getXmname();//项目主键
-			
+			String xmcode = dialog.getXmcode();//工单号
 			/**
 			 * 
 			 * 查询生产总订单和材料采购单数据生成
@@ -95,7 +98,7 @@ public class YsAction extends YsQuseryAction{
 				String sqlmmpac="select a.dbilldate demanddate ,b.* from  mmpac_order_issue b "
 						+ "inner join mmpac_order_main a on  a.pk_order=b.pk_order "
 						+ "and isnull(a.dr,0)=0 and isnull(b.dr,0)=0 and isnull(b.bdef5,'N')='N' "
-						+ "and a.projectid='" + xmname + "' and a.busitype='" + butype + "' and a.billstatus='1' ";
+						+ "and a.projectid='" + xmname + "' and a.busitype='" + butype + "' and a.billstatus='1' and a. def1='"+xmcode+"' ";
 				
 				List<OrderIssueUAPVO> lisvos= (List<OrderIssueUAPVO>) iuap.executeQuery(sqlmmpac, new BeanListProcessor(OrderIssueUAPVO.class));
 				
@@ -103,7 +106,7 @@ public class YsAction extends YsQuseryAction{
 				String sqlxc="select  a.dbilldate demanddate,a.vdef1 gdcode ,b.* from  po_demand_b b "
 						+ "inner join po_demand a on  a.pk_demand=b.pk_demand "
 						+ "and isnull(a.dr,0)=0 and isnull(b.dr,0)=0  "
-						+ "and a.projectid='" + xmname + "' and a.vdef30='" + butype + "' and a.billstatus='1' and a.billstatus<>'9' ";
+						+ "and a.projectid='" + xmname + "' and a.vdef30='" + butype + "' and a.billstatus='1' and a.billstatus<>'9' and a.vdef1='"+xmcode+"' ";
 				
 				List<DemandUAPBVO> lisdemvos= (List<DemandUAPBVO>) iuap.executeQuery(sqlxc, new BeanListProcessor(DemandUAPBVO.class));
 				String vbillcode=new BillcodeGenerater().getBillCode("MM01", PubEnv.getPk_corp(), null, null);
@@ -168,11 +171,7 @@ public class YsAction extends YsQuseryAction{
 								}else {
 									demandvo.setAttributeValue(name, vo.getAttributeValue(name));
 								}
-								
-								
-								
-								
-							}
+							 }
 							demandvos.add(demandvo);
 						}
 						
@@ -186,6 +185,8 @@ public class YsAction extends YsQuseryAction{
 					/********************************生成【需求】页签数据-end*********************************************/	
 					
 				}else {
+					getDataModel().setExtraCondition(" and pk_corp = '1'"+" and pk_operation=  '" + pk_operation + "'"   );
+					super.execute();
 					throw new ValidationException("生产总订单和材料采购单没有符合条件的数据!");
 				}
 				
@@ -300,10 +301,11 @@ public class YsAction extends YsQuseryAction{
 							continue;
 						}else if("demandtype".equals(name)) {
 							bancevo.setDemandtype(vo.getDemandtyoe());//需求类型
+						}else if("vdef28".equals(name)) {
+							bancevo.setVdef28(vo.getNum().toString());//采购主数量
 						}else {
 							bancevo.setAttributeValue(name, vo.getAttributeValue(name));
 						}
-						
 					}
 					
 					bancevos.add(bancevo);
@@ -474,6 +476,8 @@ public class YsAction extends YsQuseryAction{
 									bancevo113.setStandard(bancevo.getStandard());//标准
 									bancevo113.setWeight(bancevo.getWeight());//米重
 									bancevo113.setUnitid(bancevo.getUnitid());//计量单位
+									bancevo113.setVbatchcode(bancevo.getVbatchcode());//批次
+									bancevo113.setVdef25(bancevo.getVdef25());
 									bancevo113.setProexecute("转库");//建议执行
 									bancevosdbdd.add(bancevo113);
 									bancevo11.setSupplytype("库存量_工装库");//供应类型
@@ -504,6 +508,9 @@ public class YsAction extends YsQuseryAction{
 									bancevo113.setWeight(bancevo.getWeight());//米重
 									bancevo113.setUnitid(bancevo.getUnitid());//计量单位
 									bancevo11=(OperationBalanceVO) bancevo113.clone();
+									bancevo113.setVbatchcode(bancevo.getVbatchcode());//批次
+									String swid=UUID.randomUUID().toString();
+									bancevo113.setVdef25(swid);
 									bancevo113.setProexecute("转库");//建议执行
 									bancevosdbdd.add(bancevo113);
 									bancevo11.setSupplytype("库存量_工装库");//供应类型
@@ -546,7 +553,7 @@ public class YsAction extends YsQuseryAction{
 									bancevo11.setVdef22(bancevo.getVdef22());
 									bancevo11.setVdef23(bancevo.getVdef23());
 									bancevo11.setVdef24(bancevo.getVdef24());
-									bancevo11.setVdef25(bancevo.getVdef25());
+									bancevo11.setVdef25(swid);
 									bancevo11.setVdef26(bancevo.getVdef26());
 									bancevo11.setVdef27(bancevo.getVdef27());
 									bancevo11.setVdef28(bancevo.getVdef28());
@@ -646,6 +653,8 @@ public class YsAction extends YsQuseryAction{
 									bancevo113.setStandard(bancevo.getStandard());//标准
 									bancevo113.setWeight(bancevo.getWeight());//米重
 									bancevo113.setUnitid(bancevo.getUnitid());//计量单位
+									bancevo113.setVbatchcode(bancevo.getVbatchcode());//批次
+									bancevo113.setVdef25(bancevo.getVdef25());
 									bancevo113.setProexecute("转库");//建议执行
 									bancevosdbdd.add(bancevo113);
 									bancevo113.setSupplytype("库存量_公共库");//供应类型
@@ -668,13 +677,17 @@ public class YsAction extends YsQuseryAction{
 									bancevo113.setStandard(bancevo.getStandard());//标准
 									bancevo113.setWeight(bancevo.getWeight());//米重
 									bancevo113.setUnitid(bancevo.getUnitid());//计量单位
+									bancevo113.setVbatchcode(bancevo.getVbatchcode());//批次
 									bancevo113.setProexecute("转库");//建议执行
+									String swid=UUID.randomUUID().toString();
+									bancevo113.setVdef25(swid);
 									bancevosdbdd.add(bancevo113);
 									bancevo113.setSupplytype("库存量_公共库");//供应类型
 									bancevo113.setWarehouse("公共库");//仓库
 									bancevo113.setNum(gysxgg);//主数量
 									bancevo113.setPk_operation(pk_operation);
 									OperationBalanceVO bancevo114=(OperationBalanceVO) bancevo11.clone();
+									bancevo114.setVdef25(swid);
 									bancevo114.setPk_operation(pk_operation);
 									bancevo114.setNum(UFDouble.ZERO_DBL.setScale(2,UFDouble.ROUND_HALF_UP ));
 									bancevo114.setProexecute("采购");//建议执行
@@ -712,12 +725,13 @@ public class YsAction extends YsQuseryAction{
 									bancevo114.setVdef22(bancevo.getVdef22());
 									bancevo114.setVdef23(bancevo.getVdef23());
 									bancevo114.setVdef24(bancevo.getVdef24());
-									bancevo114.setVdef25(bancevo.getVdef25());
+									bancevo114.setVdef25(swid);
 									bancevo114.setVdef26(bancevo.getVdef26());
 									bancevo114.setVdef27(bancevo.getVdef27());
 									bancevo114.setVdef28(bancevo.getVdef28());
 									bancevo114.setVdef29(bancevo.getVdef29());
 									bancevo114.setVdef30(bancevo.getVdef30());
+						
 									bancevos.add(bancevo11);
 									bancevos.add(bancevo113);
 									bancevos.add(bancevo114);
@@ -862,7 +876,7 @@ public class YsAction extends YsQuseryAction{
 						vo.setNum(new UFDouble(cgdd.getProexecutenum()));
 						vo.setNprice(cgdd.getNprice());
 						vo.setNmny(cgdd.getNmny());
-						vo.setPk_operation(pk_operation);
+				//		vo.setPk_operation(pk_operation);//主表主键
 						vo.setCastunitid(cgdd.getCastunitid());	
 						vo.setNastnum(cgdd.getNastnum());
 						vo.setVdef1(cgdd.getVdef1());
@@ -890,62 +904,55 @@ public class YsAction extends YsQuseryAction{
 						vo.setVdef23(cgdd.getVdef23());
 						vo.setVdef24(cgdd.getVdef24());
 						vo.setVdef25(cgdd.getVdef25());
-						vo.setVdef26(cgdd.getVdef26());
-						vo.setVdef27(cgdd.getVdef27());
-						vo.setVdef28(cgdd.getVdef28());
-						vo.setVdef29(cgdd.getVdef29());
+						vo.setVdef26(cgdd.getProexecutenum());//本次采购数量
+						vo.setVdef27(pk_operation);//保存主表主键
+						vo.setVdef28(cgdd.getVdef28());//采购数量
+						vo.setVdef29(cgdd.getVdef29());//工单号
 						vo.setVdef30(cgdd.getVdef30());//来源单据主表主键--材料采购单
-						
 						purchasevos[flg]=vo;
 						flg+=1;
 					}
 					
-					PraybillHeaderVO header = new PraybillHeaderVO();
-					PraybillItemVO[] items = new PraybillItemVO[bancevoscgdd.size()];
-					// 表头赋值
-					header.setPk_corp(PubEnv.getCorpCode());//公司
-					header.setCoperator(ClientEnvironment.getInstance().getUser().getPrimaryKey());//制单人
-					header.setDpraydate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));//请购日期-->制单日期
-					header.setIbillstatus(0);//单据状态
-//					header.setCpraypsn("1001V510000000000292");//请购人id-->业务员
-//					header.setCdeptid("1001V510000000000276");//请购部门id-->计划部门
-					header.setVmemo(vbillcode);//备注
-					header.setDr(0);
-					header.setCaccountyear(String.valueOf(new UFDate().getYear()));//年份
-					header.setIpraysource(5);//请购来源
-					header.setIpraytype(2);//请购类型
-					int fg=0;
-					for(OperationBalanceVO cgdd : bancevoscgdd) {
-						PraybillItemVO praybillItemVO = new PraybillItemVO();
-						praybillItemVO.setPk_corp(PubEnv.getCorpCode()); // 公司
-						// 表体赋值
-						praybillItemVO.setCmangid(getCmangchid(getCmangid(cgdd.getCmaterialcode()))); //存货编码
-						praybillItemVO.setCbaseid(getCmangid(cgdd.getCmaterialcode())); //存货基础ID 
-						praybillItemVO.setNpraynum(new UFDouble(cgdd.getMatchnum())); //数量
-						String cprojectid = "";//项目id
-						if(cgdd.getPrjcode().startsWith("1001")) {
-							cprojectid = cgdd.getPrjcode();
-						}
-						else {
-							cprojectid = getprojectid(cgdd.getPrjcode());
-						}
-						praybillItemVO.setCprojectid(cprojectid);
-//						praybillItemVO.setCassistunit(demandBVO.getCastunitid());//辅助计量单位
-//						praybillItemVO.setNassistnum(new UFDouble(demandBVO.getNastnum()));//辅计量数量
-//						praybillItemVO.setVproducenum(cgdd.getVbatchcode());//批次号
-						praybillItemVO.setDdemanddate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
-						praybillItemVO.setDsuggestdate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
-//						praybillItemVO.setPk_purcorp(PubEnv.getCorpCode());
-						praybillItemVO.setPk_reqcorp(PubEnv.getCorpCode());
-						
-						items[fg] = praybillItemVO;
-						fg+=1;
-					}
+					/*
+					 * PraybillHeaderVO header = new PraybillHeaderVO(); PraybillItemVO[] items =
+					 * new PraybillItemVO[bancevoscgdd.size()]; // 表头赋值
+					 * header.setPk_corp(PubEnv.getCorpCode());//公司
+					 * header.setCoperator(ClientEnvironment.getInstance().getUser().getPrimaryKey()
+					 * );//制单人 header.setDpraydate(new
+					 * UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));//请购日期-
+					 * ->制单日期 header.setIbillstatus(0);//单据状态 //
+					 * header.setCpraypsn("1001V510000000000292");//请购人id-->业务员 //
+					 * header.setCdeptid("1001V510000000000276");//请购部门id-->计划部门
+					 * header.setVmemo(vbillcode);//备注 header.setDr(0);
+					 * header.setCaccountyear(String.valueOf(new UFDate().getYear()));//年份
+					 * header.setIpraysource(5);//请购来源 header.setIpraytype(2);//请购类型 int fg=0;
+					 * for(OperationBalanceVO cgdd : bancevoscgdd) { PraybillItemVO praybillItemVO =
+					 * new PraybillItemVO(); praybillItemVO.setPk_corp(PubEnv.getCorpCode()); // 公司
+					 * // 表体赋值
+					 * praybillItemVO.setCmangid(getCmangchid(getCmangid(cgdd.getCmaterialcode())));
+					 * //存货编码 praybillItemVO.setCbaseid(getCmangid(cgdd.getCmaterialcode()));
+					 * //存货基础ID praybillItemVO.setNpraynum(new UFDouble(cgdd.getMatchnum())); //数量
+					 * String cprojectid = "";//项目id if(cgdd.getPrjcode().startsWith("1001")) {
+					 * cprojectid = cgdd.getPrjcode(); } else { cprojectid =
+					 * getprojectid(cgdd.getPrjcode()); } praybillItemVO.setCprojectid(cprojectid);
+					 * // praybillItemVO.setCassistunit(demandBVO.getCastunitid());//辅助计量单位 //
+					 * praybillItemVO.setNassistnum(new UFDouble(demandBVO.getNastnum()));//辅计量数量 //
+					 * praybillItemVO.setVproducenum(cgdd.getVbatchcode());//批次号
+					 * praybillItemVO.setDdemanddate(new
+					 * UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
+					 * praybillItemVO.setDsuggestdate(new
+					 * UFDate(ClientEnvironment.getInstance().getBusinessDate().toString())); //
+					 * praybillItemVO.setPk_purcorp(PubEnv.getCorpCode());
+					 * praybillItemVO.setPk_reqcorp(PubEnv.getCorpCode());
+					 * 
+					 * items[fg] = praybillItemVO; fg+=1; }
+					 * 
+					 * // PraybillVO vo = new PraybillVO(); // vo.setParentVO(header); //
+					 * vo.setChildrenVO(items); // iIplatFormEntry.processAction("SAVEBASE", "20",
+					 * vo.getHeadVO().getDpraydate().toString(), null, vo, null, null);
+					 */		
+				
 					
-//					PraybillVO vo = new PraybillVO();
-//					vo.setParentVO(header);
-//					vo.setChildrenVO(items);
-//					iIplatFormEntry.processAction("SAVEBASE", "20", vo.getHeadVO().getDpraydate().toString(), null, vo, null, null);
 					ivo.insertVOArray(purchasevos);
 					
 					
@@ -986,6 +993,7 @@ public class YsAction extends YsQuseryAction{
 						vozk.setCmaterialname(cgdd.getCmaterialname());
 						vozk.setOutwarehouse("公共库");//转出仓库
 						vozk.setInwarehouse("工装库");//转入仓库
+						vozk.setInvbatchcode(cgdd.getVbatchcode());//转入批次
 						vozk.setSpec(cgdd.getSpec());
 						vozk.setModel(cgdd.getModel());
 						vozk.setColor(cgdd.getColor());
@@ -997,35 +1005,53 @@ public class YsAction extends YsQuseryAction{
 						vozk.setNprice(cgdd.getNprice());
 						vozk.setNmny(cgdd.getNmny());
 						vozk.setPk_operation(pk_operation);
+						vozk.setVdef1(cgdd.getVdef1());
+						vozk.setVdef2(cgdd.getVdef2());
+						vozk.setVdef3(cgdd.getVdef3());
+						vozk.setVdef4(cgdd.getVdef4());
+						vozk.setVdef5(cgdd.getVdef5());
+						vozk.setVdef6(cgdd.getVdef6());
+						vozk.setVdef7(cgdd.getVdef7());
+						vozk.setVdef8(cgdd.getVdef8());
+						vozk.setVdef9(cgdd.getVdef9());
+						vozk.setVdef10(cgdd.getVdef10());
+						vozk.setVdef11(cgdd.getVdef11());
+						vozk.setVdef12(cgdd.getVdef12());
+						vozk.setVdef13(cgdd.getVdef13());
+						vozk.setVdef14(cgdd.getVdef14());
+						vozk.setVdef15(cgdd.getVdef15());
+						vozk.setVdef16(cgdd.getVdef16());
+						vozk.setVdef17(cgdd.getVdef17());
+						vozk.setVdef18(cgdd.getVdef18());
+						vozk.setVdef19(cgdd.getVdef19());
+						vozk.setVdef20(cgdd.getVdef20());
+						vozk.setVdef25(cgdd.getVdef25());//既有转库又有请购的标识
 						purchasevos_zk[flgzk]=vozk;
 						flgzk+=1;
 					}
 					
-					
-			//		SpecialBillVO aggvo=new  SpecialBillVO();
-					SpecialBillHeaderVO headvo=new SpecialBillHeaderVO();
-					headvo.setCbilltypecode("4K");
-					headvo.setCinwarehouseid(getstordocpk("GZ001"));//入库仓库ID  工装
-					headvo.setCoperatorid(ClientEnvironment.getInstance().getUser().getPrimaryKey());
-					headvo.setCoutwarehouseid(getstordocpk("JZ002"));//出库仓库ID  家装
-					headvo.setCshlddiliverdate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
-					headvo.setDbilldate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
-					headvo.setFbillflag(2);
-					headvo.setIcheckmode(4);
-					headvo.setIPrintCount(0);
-					headvo.setPk_corp(PubEnv.getCorpCode());
-					headvo.setVshldarrivedate(new UFDate(ClientEnvironment.getInstance().getBusinessDate().toString())); 
-					SpecialBillItemVO[] billitems =new SpecialBillItemVO[bancevosdbdd.size()];
-					for(int i=0 ; i< bancevosdbdd.size() ;i++) {
-						OperationBalanceVO vo=bancevosdbdd.get(i);
-						SpecialBillItemVO billitem =new SpecialBillItemVO();
-						billitem.setCinventoryid(getCmangchid(getCmangid(vo.getCmaterialcode())));
-						billitem.setDshldtransnum(new UFDouble(vo.getMatchnum()));
-						billitems[i]=billitem;
-					}
-//					aggvo.setParentVO(headvo);
-//					aggvo.setChildrenVO(billitems);
-//					iIplatFormEntry.processAction( "WRITE", "4K",null, null, aggvo, null, null);
+					/*
+					 * // SpecialBillVO aggvo=new SpecialBillVO(); SpecialBillHeaderVO headvo=new
+					 * SpecialBillHeaderVO(); headvo.setCbilltypecode("4K");
+					 * headvo.setCinwarehouseid(getstordocpk("GZ001"));//入库仓库ID 工装
+					 * headvo.setCoperatorid(ClientEnvironment.getInstance().getUser().getPrimaryKey
+					 * ()); headvo.setCoutwarehouseid(getstordocpk("JZ002"));//出库仓库ID 家装
+					 * headvo.setCshlddiliverdate(new
+					 * UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
+					 * headvo.setDbilldate(new
+					 * UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
+					 * headvo.setFbillflag(2); headvo.setIcheckmode(4); headvo.setIPrintCount(0);
+					 * headvo.setPk_corp(PubEnv.getCorpCode()); headvo.setVshldarrivedate(new
+					 * UFDate(ClientEnvironment.getInstance().getBusinessDate().toString()));
+					 * SpecialBillItemVO[] billitems =new SpecialBillItemVO[bancevosdbdd.size()];
+					 * for(int i=0 ; i< bancevosdbdd.size() ;i++) { OperationBalanceVO
+					 * vo=bancevosdbdd.get(i); SpecialBillItemVO billitem =new SpecialBillItemVO();
+					 * billitem.setCinventoryid(getCmangchid(getCmangid(vo.getCmaterialcode())));
+					 * billitem.setDshldtransnum(new UFDouble(vo.getMatchnum()));
+					 * billitems[i]=billitem; } // aggvo.setParentVO(headvo); //
+					 * aggvo.setChildrenVO(billitems); // iIplatFormEntry.processAction( "WRITE",
+					 * "4K",null, null, aggvo, null, null);
+					 */					
 					ivo.insertVOArray(purchasevos_zk);
 				}
 			}catch(Exception e) {

+ 6 - 1
mm/mm/src/client/u8c/ui/mm/panel/OperationTestUI.java

@@ -17,6 +17,7 @@ import u8c.ui.mm.action.OperationReturnFromCardToListAction;
 import u8c.ui.mm.action.OperationSaveAction;
 import u8c.ui.mm.action.OperationUnApproveAction;
 import u8c.ui.mm.action.PushParybillAction;
+import u8c.ui.mm.action.PushTranstCGAction;
 import u8c.ui.mm.action.PushTranstorAction;
 import u8c.ui.mm.action.YsAction;
 import u8c.ui.mm.datamodel.OperationDataModel;
@@ -43,6 +44,8 @@ public class OperationTestUI extends FrameUI{
 		getBtnManager().addButtonByID(AbstractBtnReg.USERBTN_YS);
 		getBtnManager().addButtonByID(AbstractBtnReg.USERBTN_PUSHPARYBILL);//生成请购单
 		getBtnManager().addButtonByID(AbstractBtnReg.USERBTN_PUSHTRANSTOR);//生成转库单
+		getBtnManager().addButtonByID(AbstractBtnReg.USERBTN_PUSHTOCG);//采购页签
+		
 		
 		getBtnManager().regCmd(AbstractBtnReg.SYSBTN_EDIT, new OperationEditAction(this));
 		getBtnManager().regCmd(AbstractBtnReg.SYSBTN_DELETE, new OperationDeleteAction(this));
@@ -57,6 +60,7 @@ public class OperationTestUI extends FrameUI{
 		getBtnManager().regCmd(AbstractBtnReg.USERBTN_YS, new YsAction(this));
 		getBtnManager().regCmd(AbstractBtnReg.USERBTN_PUSHPARYBILL, new PushParybillAction(this));
 		getBtnManager().regCmd(AbstractBtnReg.USERBTN_PUSHTRANSTOR, new PushTranstorAction(this));
+		getBtnManager().regCmd(AbstractBtnReg.USERBTN_PUSHTOCG, new PushTranstCGAction(this));
 		
 		getBtnManager().adjustButtonOrder(new int[] {
 				AbstractBtnReg.SYSBTN_EDIT,
@@ -71,7 +75,8 @@ public class OperationTestUI extends FrameUI{
 				AbstractBtnReg.SYSBTN_EXPORT,
 				AbstractBtnReg.USERBTN_YS,
 				AbstractBtnReg.USERBTN_PUSHPARYBILL,
-				AbstractBtnReg.USERBTN_PUSHTRANSTOR
+				AbstractBtnReg.USERBTN_PUSHTRANSTOR,
+				AbstractBtnReg.USERBTN_PUSHTOCG
 				});
 	}
 	

+ 6 - 0
mm/mm/src/client/u8c/ui/mytest/button/MymmBtnStateReg.java

@@ -39,6 +39,12 @@ public class MymmBtnStateReg extends ManageBtnStateReg {
         btnStateVO.setVisibleBtnIDs(new int[]{AbstractBtnReg.SYSBTN_EXAMINE_OPS,AbstractBtnReg.SYSBTN_QUERY, AbstractBtnReg.SYSBTN_REFRESH});
         addStateVO(btnStateVO.getStateID(), btnStateVO);
         
+        //修改
+        btnStateVO = new ButtonStateVO();
+        btnStateVO.setStateID(StateRegister.STATE_EDIT); 
+        btnStateVO.setEnableBtnIDs(new int[] {AbstractBtnReg.USERBTN_PUSHTOCG});
+            addStateVO(btnStateVO.getStateID(), btnStateVO);
+        
 	}
 
 }

+ 86 - 21
mm/mm/src/test/nc/ui/hr/frame/button/AbstractBtnReg.java

@@ -69,8 +69,18 @@ public abstract class AbstractBtnReg
   public static final int USERBTN_EXPORTFAILDATAS = 63;
   public static final int SYSBTN_YS = 64;
   public static final int USERBTN_PUSHMATERIAL = 65;
-  public static final int USERBTN_PUSHSCRK = 66;
-  public static final int USERBTN_YS = 67;
+  public static final int USERBTN_PUSHPRODUCT = 66;
+  public static final int USERBTN_ADDPRAYBILL = 67;
+  public static final int USERBTN_PUSHOTHEROUT = 68;
+  public static final int USERBTN_PUSHOTHERIN = 69;
+  public static final int USERBTN_boExportImport = 70;  
+  public static final int USERBTN_GENOUTIN = 71;
+  public static final int USERBTN_PUSHSALEOUT = 72;
+  public static final int USERBTN_YS = 73;
+  public static final int USERBTN_ClOSE = 74;
+  public static final int USERBTN_PUSHPARYBILL = 75;
+  public static final int USERBTN_PUSHTRANSTOR = 76;
+  public static final int USERBTN_PUSHTOCG = 77;
   protected AbstractBtnReg()
   {
     getAllBtnID().add(Integer.valueOf(34));
@@ -145,7 +155,16 @@ public abstract class AbstractBtnReg
     getAllBtnID().add(Integer.valueOf(65));
     getAllBtnID().add(Integer.valueOf(66));
     getAllBtnID().add(Integer.valueOf(67));
-   
+    getAllBtnID().add(Integer.valueOf(68));
+    getAllBtnID().add(Integer.valueOf(69));
+    getAllBtnID().add(Integer.valueOf(70));
+    getAllBtnID().add(Integer.valueOf(71));
+    getAllBtnID().add(Integer.valueOf(72));
+    getAllBtnID().add(Integer.valueOf(73));
+    getAllBtnID().add(Integer.valueOf(74));
+    getAllBtnID().add(Integer.valueOf(75));
+    getAllBtnID().add(Integer.valueOf(76));
+    getAllBtnID().add(Integer.valueOf(77));
   }
 
   public static AbstractBtnReg createInstance()
@@ -503,30 +522,79 @@ public abstract class AbstractBtnReg
       btnVO.setBtnName(ResHelper.getString("600704", "预检查"));
       btnVO.setHintStr(ResHelper.getString("600704", "预检查"));
       btnVO.setBtnCode("预检查");
-      break;
     case 64:
-      btnVO.setBtnName("MRO运算");
-      btnVO.setHintStr("MRO运算");
-      btnVO.setBtnCode("MRO运算");
-      break;
+        btnVO.setBtnName("MRO运算");
+        btnVO.setHintStr("MRO运算");
+        btnVO.setBtnCode("MRO运算");
     case 65:
-      btnVO.setBtnName("生成材料出库");
-      btnVO.setHintStr("生成材料出库");
-      btnVO.setBtnCode("生成材料出库");
+        btnVO.setBtnName("材料出库");
+        btnVO.setHintStr("材料出库");
+        btnVO.setBtnCode("材料出库");
       break;
-      
     case 66:
-        btnVO.setBtnName("生成生产入库");
-        btnVO.setHintStr("生成生产入库");
-        btnVO.setBtnCode("生成生产入库");
-        break;
-        
+        btnVO.setBtnName("产成品入库");
+        btnVO.setHintStr("产成品入库");
+        btnVO.setBtnCode("产成品入库");
+      break;
+      
     case 67:
+        btnVO.setBtnName("生单");
+        btnVO.setHintStr("生单");
+        btnVO.setBtnCode("生单");
+      break;
+      
+    case 68:
+        btnVO.setBtnName("其他出库");
+        btnVO.setHintStr("其他出库");
+        btnVO.setBtnCode("其他出库");
+       break; 
+    case 69:
+        btnVO.setBtnName("其他入库");
+        btnVO.setHintStr("其他入库");
+        btnVO.setBtnCode("其他入库");
+      break;
+      
+    case 70:
+        btnVO.setBtnName("导出/导入");
+        btnVO.setHintStr("导出/导入");
+        btnVO.setBtnCode("导出/导入");
+        break;
+    case 71:
+        btnVO.setBtnName("生成出入库页签");
+        btnVO.setHintStr("生成出入库页签");
+        btnVO.setBtnCode("生成出入库页签");
+        break;
+    case 72:
+        btnVO.setBtnName("销售出库");
+        btnVO.setHintStr("销售出库");
+        btnVO.setBtnCode("销售出库");
+        break;
+    case 73:
         btnVO.setBtnName("运算");
         btnVO.setHintStr("运算");
         btnVO.setBtnCode("运算");
         break;
-        
+    case 74:
+        btnVO.setBtnName("整单关闭");
+        btnVO.setHintStr("整单关闭");
+        btnVO.setBtnCode("整单关闭");
+        break; 
+    case 75:
+        btnVO.setBtnName("生成请购单");
+        btnVO.setHintStr("生成请购单");
+        btnVO.setBtnCode("生成请购单");
+        break;
+    case 76:
+        btnVO.setBtnName("生成转库单");
+        btnVO.setHintStr("生成转库单");
+        btnVO.setBtnCode("生成转库单");
+        break;
+    case 77:
+        btnVO.setBtnName("更新采购需求");
+        btnVO.setHintStr("更新采购需求");
+        btnVO.setBtnCode("更新采购需求");
+        break;
+    
     case 43:
     case 47:
     case 48:
@@ -535,9 +603,6 @@ public abstract class AbstractBtnReg
     default:
       btnVO = null;
     }
-    
-    btnVO.setChildBtnIDs(new int[] { 65,64 });
-    
 
     return btnVO;
   }

+ 10 - 3
mmpac/mmpac/src/client/nc/ui/hr/frame/button/AbstractBtnReg.java

@@ -80,6 +80,7 @@ public abstract class AbstractBtnReg
   public static final int USERBTN_ClOSE = 74;
   public static final int USERBTN_PUSHPARYBILL = 75;
   public static final int USERBTN_PUSHTRANSTOR = 76;
+  public static final int USERBTN_PUSHTOCG = 77;
   protected AbstractBtnReg()
   {
     getAllBtnID().add(Integer.valueOf(34));
@@ -163,6 +164,7 @@ public abstract class AbstractBtnReg
     getAllBtnID().add(Integer.valueOf(74));
     getAllBtnID().add(Integer.valueOf(75));
     getAllBtnID().add(Integer.valueOf(76));
+    getAllBtnID().add(Integer.valueOf(77));
   }
 
   public static AbstractBtnReg createInstance()
@@ -563,9 +565,9 @@ public abstract class AbstractBtnReg
         btnVO.setBtnCode("生成出入库页签");
         break;
     case 72:
-        btnVO.setBtnName("生成销售出库");
-        btnVO.setHintStr("生成销售出库");
-        btnVO.setBtnCode("生成销售出库");
+        btnVO.setBtnName("销售出库");
+        btnVO.setHintStr("销售出库");
+        btnVO.setBtnCode("销售出库");
         break;
     case 73:
         btnVO.setBtnName("运算");
@@ -587,6 +589,11 @@ public abstract class AbstractBtnReg
         btnVO.setHintStr("生成转库单");
         btnVO.setBtnCode("生成转库单");
         break;
+    case 77:
+        btnVO.setBtnName("更新采购需求");
+        btnVO.setHintStr("更新采购需求");
+        btnVO.setBtnCode("更新采购需求");
+        break;
     
     case 43:
     case 47:

+ 24 - 3
xc/cg/src/client/nc/ui/hr/frame/button/AbstractBtnReg.java

@@ -78,6 +78,9 @@ public abstract class AbstractBtnReg
   public static final int USERBTN_PUSHSALEOUT = 72;
   public static final int USERBTN_YS = 73;
   public static final int USERBTN_ClOSE = 74;
+  public static final int USERBTN_PUSHPARYBILL = 75;
+  public static final int USERBTN_PUSHTRANSTOR = 76;
+  public static final int USERBTN_PUSHTOCG = 77;
   protected AbstractBtnReg()
   {
     getAllBtnID().add(Integer.valueOf(34));
@@ -159,6 +162,9 @@ public abstract class AbstractBtnReg
     getAllBtnID().add(Integer.valueOf(72));
     getAllBtnID().add(Integer.valueOf(73));
     getAllBtnID().add(Integer.valueOf(74));
+    getAllBtnID().add(Integer.valueOf(75));
+    getAllBtnID().add(Integer.valueOf(76));
+    getAllBtnID().add(Integer.valueOf(77));
   }
 
   public static AbstractBtnReg createInstance()
@@ -559,9 +565,9 @@ public abstract class AbstractBtnReg
         btnVO.setBtnCode("生成出入库页签");
         break;
     case 72:
-        btnVO.setBtnName("生成销售出库");
-        btnVO.setHintStr("生成销售出库");
-        btnVO.setBtnCode("生成销售出库");
+        btnVO.setBtnName("销售出库");
+        btnVO.setHintStr("销售出库");
+        btnVO.setBtnCode("销售出库");
         break;
     case 73:
         btnVO.setBtnName("运算");
@@ -573,6 +579,21 @@ public abstract class AbstractBtnReg
         btnVO.setHintStr("整单关闭");
         btnVO.setBtnCode("整单关闭");
         break; 
+    case 75:
+        btnVO.setBtnName("生成请购单");
+        btnVO.setHintStr("生成请购单");
+        btnVO.setBtnCode("生成请购单");
+        break;
+    case 76:
+        btnVO.setBtnName("生成转库单");
+        btnVO.setHintStr("生成转库单");
+        btnVO.setBtnCode("生成转库单");
+        break;
+    case 77:
+        btnVO.setBtnName("更新采购需求");
+        btnVO.setHintStr("更新采购需求");
+        btnVO.setBtnCode("更新采购需求");
+        break;
     
     case 43:
     case 47: