2014年10月13日 星期一

iDempiere Callout ERP 規則引擎實作 groovy:產品ID帶品號品名規格

import org.compiere.model.MTable
import org.compiere.util.DB
import org.compiere.util.Msg
import java.math.BigDecimal
import java.sql.PreparedStatement
import java.sql.ResultSet


// A_WindowNo    A_Tab    A_Field    A_Value    A_OldValue    A_Ctx   BOMQty
if (A_Value!=null)   // A_OldValue!=A_Value)
{
        Integer  ID= (Integer)A_Value;
 //     Integer  ID= (Integer)A_Tab.getValue("SK_BOM_ID");
 //    
        String sql = "SELECT a.產品品號,a.產品品名,a.產品規格, c.單位_id, a.加工單價, a.應收單價 FROM 產品 a  INNER JOIN 計價單位 b ON a.計價單位_id=b.計價單位_id INNER JOIN 單位 c ON b.名稱=c.名稱 WHERE a.產品_ID=?";
        PreparedStatement pstmt = DB.prepareStatement(sql, null);
        pstmt.setInt(1, ID.intValue());
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
           String code1 = rs.getString("產品品號");
           String name1 = rs.getString("產品品名");
           String spec1 = rs.getString("產品規格");
           Integer  uom1 = new Integer( rs.getInt("單位_id"));
           BigDecimal price = rs.getBigDecimal ("加工單價");
           BigDecimal price1 = rs.getBigDecimal ("應收單價");

           if (code1  !=null) A_Tab.setValue("產品品號", code1 );
           if (name1 !=null) A_Tab.setValue("產品品名", name1 );
           if (spec1  !=null) A_Tab.setValue("產品規格", spec1 );
           if (uom1  !=null) A_Tab.setValue("單位_id", uom1 );
           if (price   !=null)  A_Tab.setValue("加工單價", price );    // 加工單價
           if (price1 !=null) A_Tab.setValue("單價", price1 );   // 應收單價
           A_Tab.setValue("備註", "單價:"+price1+" ,加工單價:"+price  );  
       }
}
result=""

沒有留言:

張貼留言