`
liwenshui322
  • 浏览: 518838 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Openbravo 手工导入商品库存与价格

阅读更多

      由于Openbravo自带的导入功能 不能够导入商品价格和库存。所以就只能我们手工导入了。

   

      一. 导入商品价格

      

       1.首先得新建一个excel表格,里面包含了商品编号(在ob里面对应搜索关键字)和价格这2列。示例参考附件1

 

       2.利用java操作excel表格工具读取这个excel表格,核心代码如下:

 

      

public static  List<ProductInfo> readProductInfo ()throws Exception{
		
		//新建一个文件
		java.io.File newFile = new File("C:\\Users\\Administrator\\product.xls");
		//创建只读的Excel工作薄的对象
		jxl.Workbook rw = jxl.Workbook.getWorkbook(newFile);
		//创建可写入的Excel工作薄对象
		jxl.write.WritableWorkbook  wwb = Workbook.createWorkbook(newFile, rw);
		//读取第一张工作表
		jxl.write.WritableSheet ws = wwb.getSheet(0);
		//获得最早的空行 
		int rowId = 3;
		
		//商品列表
		List<ProductInfo> productList = new java.util.LinkedList<ProductInfo>();
		
		while(true){
		Cell example = ws.getCell(0, rowId);
		if(example instanceof jxl.biff.EmptyCell ){
			System.out.println("找到第一个空行!");
			break;
		}else{
			
			ProductInfo pi = new ProductInfo();
			
			//读取商品
			Cell productId = ws.getCell(0, rowId);
			pi.setProduct_id(productId.getContents());			
			Cell priceList = ws.getCell(1, rowId);
			pi.setList_price(Double.parseDouble(priceList.getContents()));			
			productList.add(pi);
		}
			rowId++;
		}
		
		//写入Excel工作表
	    wwb.write();
	    //关闭Excel工作薄对象
		wwb.close();
		
		return productList;
	}

    

    3. 将读取到的价格信息 循环导入OB。核心代码如下:

 

  

public static void modify(List<ProductInfo> pl){
		
		Connection conn = ConnectOracle.getConn();
		
		try{
		Statement stmt = conn.createStatement();
		
		//获得商品信息主键
		for(int i=0;i<pl.size();i++){
			ProductInfo pi = pl.get(i);
			String hql = "select m_product_id from m_product where value='"+pi.getProduct_id()+"'";
			ResultSet rs = stmt.executeQuery(hql);
			if(rs.next()){
				pi.setProduct_id(rs.getInt("m_product_id")+"");
			}else{
				System.out.println("错误");
				pl.remove(i);
				i--;
			}
		}
		//修改价格
		for(int j=0;j<pl.size();j++){
			
			ProductInfo pi = pl.get(j);
			
			String hql22 = "select * from m_productprice t where t.ad_client_id='1000000' and t.M_PRICELIST_VERSION_ID" +
					"='1000002' and t.M_PRODUCT_ID='"+pi.getProduct_id()+"'";
			ResultSet rs = stmt.executeQuery(hql22);
			
			if(rs.next()){
				continue;
			}
			
			String hql = "insert into m_productprice (M_PRICELIST_VERSION_ID,M_PRODUCT_ID,AD_CLIENT_ID,AD_ORG_ID" +
					",CREATEDBY,UPDATEDBY,PRICESTD) values (1000002,"
			+pi.getProduct_id()+",1000000,0,1000000,1000000,"+pi.getList_price()+")";
			
			stmt.executeUpdate(hql);
			System.out.println("aaa     "+pi.getProduct_id());
		}
		conn.close();
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}

 

 

 

    二.  导入商品库存信息

 

    1.首先得新建一个excel表格,里面包含了商品编号(在ob里面对应搜索关键字)和库存数量这2列。示例参考附件2

 

    2. 利用java读取这个excel文件,代码与读取上面的价格类似。

  

    3. 将读取到的价格信息 循环导入OB。核心代码如下:

 

   

public static void modify(List<StockInfo> ls){
		
		
		Connection conn = ConnectOracle.getConn();
		try{
		Statement stmt = conn.createStatement();
		
		int id = 5500001;
		//修改库存
		for(int j=0;j<ls.size();j++){
			StockInfo si = ls.get(j);
			String hql ="insert into M_STORAGE_DETAIL (M_PRODUCT_ID,M_LOCATOR_ID,C_UOM_ID" +
					",QTYONHAND,AD_CLIENT_ID,AD_ORG_ID,CREATEDBY," +
					"UPDATEDBY,M_STORAGE_DETAIL_ID) values("+si.getProduct_id()+",1000000,100,100,1000000,0,1000000,1000000,"+id+")";			id++;
			stmt.executeUpdate(hql);
			System.out.println("bbbb");
		}
		conn.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}

 

    在这里 偷了一下懒。库存表里面的主键应该是需要调用存储过程来生产的。这里直接自定义了,需要注意这一点,这是非常不好的做法。

    

分享到:
评论

相关推荐

    中文版openbravopos2.30第一部分

    最新中文版openbravopos2.30 新增扩展: 1)商品销售时的权限(及高级权限) 2)时间片库存管理(用于盘点的目的 3)各种单据自定 4)快速单据编辑器 5)商品BOM关联 修改项: 1)将现金账按用户名生成(以便交接班管理 ...

    openbravoPOS2.3汉化包

    《OpenbravoPOS 2.3汉化包详解与应用》 OpenbravoPOS,全称为Openbravo Point of Sale,是一款开源的销售点管理软件,专为零售业设计,旨在提供灵活、高效且易用的销售解决方案。2.3版本的汉化包是针对中国用户特别...

    Openbravo 3 30.3 中文汉化包

    Openbravo 3 30.3 中文汉化包是一个专门为Openbravo企业资源计划系统(ERP)设计的语言转换工具,旨在为中文用户提供更友好的界面和操作体验。Openbravo是一个开源的ERP解决方案,它涵盖了财务管理、供应链管理、...

    Openbravo数据库关系表

    Openbravo数据库关系表

    00-Openbravo开发手册

    - **表单**:用于数据输入、修改或删除的手工制作窗口,与标准窗口相比更加灵活。 - **MVC 架构**:模型-视图-控制器模式,用于分离数据、用户界面和控制逻辑。 - **模型**:由Openbravo的SqlC实现,负责数据管理...

    openbravoPOS操作记录

    openbravoPOS 实操 底层数据库写入逻辑 业务推测

    Openbravo_ERP介绍

    Openbravo_ERP 的中文介绍,帮你快速走入 Openbravo_ERP 的世界

    Openbravo 3.0 会计文件

    Openbravo 3.0 会计文件,适用与openbravo 3.x所有版本

    Openbravo erp 实施笔记.pdf

    Openbravo erp 实施笔记

    openbravo 2.5/2.4 会计科目文件

    经验证openbravo 2.5mp8 ,2.4都可成功导入。

    Openbravo ERP 技术简介(中文)

    这些接口使得 Openbravo ERP 能够与零售终端系统、商业智能系统、网上商店系统甚至是税务系统进行无缝连接,形成一个完整的信息生态系统。 ##### 2.5 适应个性化需求的插件体系 Openbravo ERP 的插件体系非常灵活...

    Openbravo技术评测

    - **方法 WebService**:描述了如何通过 Web Service 方式与 Openbravo ERP 进行交互。 **7.3 启动 OB 的 Webservice 功能** - **配置**:说明了如何启用和配置 Web Service 功能。 - **安全性**:讨论了 Web ...

    Openbravo数据库PDM图

    Openbravo数据库的pdm图,使用PowerDseigner打开,可以作为数据库设计或者ERP研究之用

    openbravo 配置工具

    openbravo 配置工具 用来配置openbravo.properties文件

    openbravo 货币汉化

    openbravo 货币汉化,最新的Openbravo汉化包

    Openbravo-POS-2.20.exe

    与openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关的openbravo 安装相关...

    OpenBravo ERP E-R图

    开源ERP OpenBravo的数据库关系图。

    openbravo 开源erp

    Openbravoerp实施笔记.pdf

Global site tag (gtag.js) - Google Analytics