/** * Callback method invoked when the user has clicked on the insert button * * @param valueObject empty value object just created: the user can manage it to fill some * attribute values */ public void createValueObject(ValueObject valueObject) throws Exception { LevelPropertyVO vo = (LevelPropertyVO) valueObject; DefaultMutableTreeNode node = frame.getHierarTreePanel().getSelectedNode(); CompanyHierarchyLevelVO levelVO = (CompanyHierarchyLevelVO) node.getUserObject(); DocumentTypeVO docTypeVO = (DocumentTypeVO) frame.getGrid().getVOListTableModel().getObjectForRow(frame.getGrid().getSelectedRow()); vo.setProgressiveHie02DOC21(frame.getHierarTreePanel().getProgressiveHIE02()); vo.setProgressiveHie01DOC21(levelVO.getProgressiveHIE01()); vo.setCompanyCodeSys01DOC21(docTypeVO.getCompanyCodeSys01DOC16()); }
/** Business logic to execute. */ public VOListResponse loadSupplierPriceItems( GridParams pars, String serverLanguageId, String username, ArrayList customizedFields) throws Throwable { PreparedStatement pstmt = null; Connection conn = null; try { if (this.conn == null) conn = getConn(); else conn = this.conn; BigDecimal rootProgressiveHIE01 = (BigDecimal) pars.getOtherGridParams().get(ApplicationConsts.ROOT_PROGRESSIVE_HIE01); BigDecimal progressiveHIE01 = (BigDecimal) pars.getOtherGridParams().get(ApplicationConsts.PROGRESSIVE_HIE01); BigDecimal progressiveHIE02 = (BigDecimal) pars.getOtherGridParams().get(ApplicationConsts.PROGRESSIVE_HIE02); BigDecimal progressiveREG04 = (BigDecimal) pars.getOtherGridParams().get(ApplicationConsts.PROGRESSIVE_REG04); String companyCodeSYS01 = (String) pars.getOtherGridParams().get(ApplicationConsts.COMPANY_CODE_SYS01); String pricelistCodePUR03 = (String) pars.getOtherGridParams().get(ApplicationConsts.PRICELIST); CompanyHierarchyLevelVO vo = (CompanyHierarchyLevelVO) pars.getOtherGridParams().get(ApplicationConsts.TREE_FILTER); if (vo != null) { progressiveHIE01 = vo.getProgressiveHIE01(); progressiveHIE02 = vo.getProgressiveHie02HIE01(); } String sql = "select PUR02_SUPPLIER_ITEMS.COMPANY_CODE_SYS01,PUR02_SUPPLIER_ITEMS.ITEM_CODE_ITM01,PUR02_SUPPLIER_ITEMS.SUPPLIER_ITEM_CODE,PUR02_SUPPLIER_ITEMS.PROGRESSIVE_REG04," + "PUR02_SUPPLIER_ITEMS.PROGRESSIVE_HIE02,PUR02_SUPPLIER_ITEMS.PROGRESSIVE_HIE01,PUR02_SUPPLIER_ITEMS.MIN_PURCHASE_QTY,PUR02_SUPPLIER_ITEMS.MULTIPLE_QTY," + "PUR02_SUPPLIER_ITEMS.UM_CODE_REG02,PUR02_SUPPLIER_ITEMS.ENABLED,SYS10_COMPANY_TRANSLATIONS.DESCRIPTION,REG02_MEASURE_UNITS.DECIMALS," + "ITM01_ITEMS.VAT_CODE_REG01,SYS10_VAT.DESCRIPTION,REG01_VATS.DEDUCTIBLE,REG01_VATS.VALUE," + "PUR04_SUPPLIER_PRICES.VALUE,PUR04_SUPPLIER_PRICES.START_DATE,PUR04_SUPPLIER_PRICES.END_DATE," + "ITM01_ITEMS.USE_VARIANT_1,ITM01_ITEMS.USE_VARIANT_2,ITM01_ITEMS.USE_VARIANT_3,ITM01_ITEMS.USE_VARIANT_4,ITM01_ITEMS.USE_VARIANT_5, " + "ITM01_ITEMS.NO_WAREHOUSE_MOV " + " from PUR02_SUPPLIER_ITEMS,SYS10_COMPANY_TRANSLATIONS,ITM01_ITEMS,REG02_MEASURE_UNITS,SYS10_TRANSLATIONS SYS10_VAT,REG01_VATS,PUR04_SUPPLIER_PRICES where " + "PUR02_SUPPLIER_ITEMS.PROGRESSIVE_HIE02=? and " + "PUR02_SUPPLIER_ITEMS.UM_CODE_REG02=REG02_MEASURE_UNITS.UM_CODE and " + "PUR02_SUPPLIER_ITEMS.COMPANY_CODE_SYS01=ITM01_ITEMS.COMPANY_CODE_SYS01 and " + "PUR02_SUPPLIER_ITEMS.ITEM_CODE_ITM01=ITM01_ITEMS.ITEM_CODE and " + "ITM01_ITEMS.COMPANY_CODE_SYS01=SYS10_COMPANY_TRANSLATIONS.COMPANY_CODE_SYS01 and " + "ITM01_ITEMS.PROGRESSIVE_SYS10=SYS10_COMPANY_TRANSLATIONS.PROGRESSIVE and " + "SYS10_COMPANY_TRANSLATIONS.LANGUAGE_CODE=? and " + "PUR02_SUPPLIER_ITEMS.COMPANY_CODE_SYS01 = ? and " + "PUR02_SUPPLIER_ITEMS.PROGRESSIVE_REG04=? and " + "PUR02_SUPPLIER_ITEMS.ENABLED='Y' and " + "ITM01_ITEMS.VAT_CODE_REG01=REG01_VATS.VAT_CODE and " + "REG01_VATS.PROGRESSIVE_SYS10=SYS10_VAT.PROGRESSIVE and " + "SYS10_VAT.LANGUAGE_CODE=? and " + "PUR02_SUPPLIER_ITEMS.COMPANY_CODE_SYS01=PUR04_SUPPLIER_PRICES.COMPANY_CODE_SYS01 and " + "PUR02_SUPPLIER_ITEMS.PROGRESSIVE_REG04=PUR04_SUPPLIER_PRICES.PROGRESSIVE_REG04 and " + "PUR02_SUPPLIER_ITEMS.ITEM_CODE_ITM01=PUR04_SUPPLIER_PRICES.ITEM_CODE_ITM01 and " + "PUR04_SUPPLIER_PRICES.PRICELIST_CODE_PUR03=? and " + "PUR04_SUPPLIER_PRICES.START_DATE<=? and " + "PUR04_SUPPLIER_PRICES.END_DATE>? "; if (rootProgressiveHIE01 == null || !rootProgressiveHIE01.equals(progressiveHIE01)) { // retrieve all subnodes of the specified node... pstmt = conn.prepareStatement( "select HIE01_COMPANY_LEVELS.PROGRESSIVE,HIE01_COMPANY_LEVELS.PROGRESSIVE_HIE01,HIE01_COMPANY_LEVELS.LEV from HIE01_COMPANY_LEVELS " + "where COMPANY_CODE_SYS01='" + companyCodeSYS01 + "' and ENABLED='Y' and PROGRESSIVE_HIE02=? and PROGRESSIVE>=? " + "order by LEV,PROGRESSIVE_HIE01,PROGRESSIVE"); pstmt.setBigDecimal(1, progressiveHIE02); pstmt.setBigDecimal(2, progressiveHIE01); ResultSet rset = pstmt.executeQuery(); HashSet currentLevelNodes = new HashSet(); HashSet newLevelNodes = new HashSet(); String nodes = ""; int currentLevel = -1; while (rset.next()) { if (currentLevel != rset.getInt(3)) { // next level... currentLevel = rset.getInt(3); currentLevelNodes = newLevelNodes; newLevelNodes = new HashSet(); } if (rset.getBigDecimal(1).equals(progressiveHIE01)) { newLevelNodes.add(rset.getBigDecimal(1)); nodes += rset.getBigDecimal(1) + ","; } else if (currentLevelNodes.contains(rset.getBigDecimal(2))) { newLevelNodes.add(rset.getBigDecimal(1)); nodes += rset.getBigDecimal(1) + ","; } } rset.close(); pstmt.close(); if (nodes.length() > 0) nodes = nodes.substring(0, nodes.length() - 1); if (rootProgressiveHIE01 != null || nodes.length() > 0) sql += " and PUR02_SUPPLIER_ITEMS.PROGRESSIVE_HIE01 in (" + nodes + ")"; } Map attribute2dbField = new HashMap(); attribute2dbField.put("companyCodeSys01PUR02", "PUR02_SUPPLIER_ITEMS.COMPANY_CODE_SYS01"); attribute2dbField.put("itemCodeItm01PUR02", "PUR02_SUPPLIER_ITEMS.ITEM_CODE_ITM01"); attribute2dbField.put("supplierItemCodePUR02", "PUR02_SUPPLIER_ITEMS.SUPPLIER_ITEM_CODE"); attribute2dbField.put("progressiveReg04PUR02", "PUR02_SUPPLIER_ITEMS.PROGRESSIVE_REG04"); attribute2dbField.put("progressiveHie02PUR02", "PUR02_SUPPLIER_ITEMS.PROGRESSIVE_HIE02"); attribute2dbField.put("progressiveHie01PUR02", "PUR02_SUPPLIER_ITEMS.PROGRESSIVE_HIE01"); attribute2dbField.put("minPurchaseQtyPUR02", "PUR02_SUPPLIER_ITEMS.MIN_PURCHASE_QTY"); attribute2dbField.put("multipleQtyPUR02", "PUR02_SUPPLIER_ITEMS.MULTIPLE_QTY"); attribute2dbField.put("umCodeReg02PUR02", "PUR02_SUPPLIER_ITEMS.UM_CODE_REG02"); attribute2dbField.put("enabledPUR02", "PUR02_SUPPLIER_ITEMS.ENABLED"); attribute2dbField.put("descriptionSYS10", "SYS10_COMPANY_TRANSLATIONS.DESCRIPTION"); attribute2dbField.put("decimalsREG02", "REG02_MEASURE_UNITS.DECIMALS"); attribute2dbField.put("vatCodeReg01ITM01", "ITM01_ITEMS.VAT_CODE_REG01"); attribute2dbField.put("vatDescriptionSYS10", "SYS10_VAT.DESCRIPTION"); attribute2dbField.put("deductibleREG01", "REG01_VATS.DEDUCTIBLE"); attribute2dbField.put("valueREG01", "REG01_VATS.VALUE"); attribute2dbField.put("valuePUR04", "PUR04_SUPPLIER_PRICES.VALUE"); attribute2dbField.put("startDatePUR04", "PUR04_SUPPLIER_PRICES.START_DATE"); attribute2dbField.put("endDatePUR04", "PUR04_SUPPLIER_PRICES.END_DATE"); attribute2dbField.put("useVariant1ITM01", "ITM01_ITEMS.USE_VARIANT_1"); attribute2dbField.put("useVariant2ITM01", "ITM01_ITEMS.USE_VARIANT_2"); attribute2dbField.put("useVariant3ITM01", "ITM01_ITEMS.USE_VARIANT_3"); attribute2dbField.put("useVariant4ITM01", "ITM01_ITEMS.USE_VARIANT_4"); attribute2dbField.put("useVariant5ITM01", "ITM01_ITEMS.USE_VARIANT_5"); attribute2dbField.put("noWarehouseMovITM01", "ITM01_ITEMS.NO_WAREHOUSE_MOV"); ArrayList values = new ArrayList(); values.add(progressiveHIE02); values.add(serverLanguageId); values.add(companyCodeSYS01); values.add(progressiveREG04); values.add(serverLanguageId); values.add(pricelistCodePUR03); values.add(new java.sql.Date(System.currentTimeMillis())); values.add(new java.sql.Date(System.currentTimeMillis())); // read from PUR02 table... Response answer = CustomizeQueryUtil.getQuery( conn, new UserSessionParameters(username), sql, values, attribute2dbField, SupplierPriceItemVO.class, "Y", "N", null, pars, 50, true, customizedFields); if (answer.isError()) throw new Exception(answer.getErrorMessage()); else return (VOListResponse) answer; } catch (Throwable ex) { Logger.error( username, this.getClass().getName(), "executeCommand", "Error while fetching supplier items list", ex); throw new Exception(ex.getMessage()); } finally { try { pstmt.close(); } catch (Exception exx) { } try { if (this.conn == null && conn != null) { // close only local connection conn.commit(); conn.close(); } } catch (Exception exx) { } } }