public final Response executeCommand( Object inputPar, UserSessionParameters userSessionPars, HttpServletRequest request, HttpServletResponse response, HttpSession userSession, ServletContext context) { GridParams gridParams = (GridParams) inputPar; try { String companyCode = (String) gridParams.getOtherGridParams().get(ApplicationConsts.COMPANY_CODE_SYS01); BigDecimal progressiveHie02 = (BigDecimal) gridParams.getOtherGridParams().get(ApplicationConsts.PROGRESSIVE_HIE02); ItemFields bean = (ItemFields) JAIOBeanFactory.getInstance().getBean(ItemFields.class); Response answer = bean.loadItemFields( companyCode, progressiveHie02, ((JAIOUserSessionParameters) userSessionPars).getServerLanguageId(), userSessionPars.getUsername()); return answer; } catch (Throwable ex) { Logger.error( userSessionPars.getUsername(), this.getClass().getName(), "executeCommand", "Error while processing request", ex); return new ErrorResponse(ex.getMessage()); } }
/** Business logic to execute. */ public VOListResponse loadCharges( GridParams gridParams, String serverLanguageId, String username, ArrayList companiesList, ArrayList customizedFields) throws Throwable { PreparedStatement pstmt = null; Connection conn = null; try { if (this.conn == null) conn = getConn(); else conn = this.conn; // retrieve companies list... String companies = (String) gridParams .getOtherGridParams() .get(ApplicationConsts.COMPANY_CODE_SYS01); // used in lookup grid... if (companies == null) { companies = ""; for (int i = 0; i < companiesList.size(); i++) companies += "'" + companiesList.get(i).toString() + "',"; companies = companies.substring(0, companies.length() - 1); } else companies = "'" + companies + "'"; String sql = "select SAL06_CHARGES.COMPANY_CODE_SYS01,SAL06_CHARGES.CHARGE_CODE,SAL06_CHARGES.PROGRESSIVE_SYS10," + "SYS10_TRANSLATIONS.DESCRIPTION,SAL06_CHARGES.VALUE,SAL06_CHARGES.PERC,SAL06_CHARGES.VAT_CODE_REG01," + "SAL06_CHARGES.CURRENCY_CODE_REG03,SAL06_CHARGES.ENABLED" + " from SAL06_CHARGES,SYS10_TRANSLATIONS where " + "SAL06_CHARGES.PROGRESSIVE_SYS10=SYS10_TRANSLATIONS.PROGRESSIVE and " + "SYS10_TRANSLATIONS.LANGUAGE_CODE=? and " + "SAL06_CHARGES.ENABLED='Y' and " + "SAL06_CHARGES.COMPANY_CODE_SYS01 in (" + companies + ")"; Map attribute2dbField = new HashMap(); attribute2dbField.put("companyCodeSys01SAL06", "SAL06_CHARGES.COMPANY_CODE_SYS01"); attribute2dbField.put("chargeCodeSAL06", "SAL06_CHARGES.CHARGE_CODE"); attribute2dbField.put("descriptionSYS10", "SYS10_TRANSLATIONS.DESCRIPTION"); attribute2dbField.put("progressiveSys10SAL06", "SAL06_CHARGES.PROGRESSIVE_SYS10"); attribute2dbField.put("valueSAL06", "SAL06_CHARGES.VALUE"); attribute2dbField.put("percSAL06", "SAL06_CHARGES.PERC"); attribute2dbField.put("vatCodeReg01SAL06", "SAL06_CHARGES.VAT_CODE_REG01"); attribute2dbField.put("currencyCodeReg03SAL06", "SAL06_CHARGES.CURRENCY_CODE_REG03"); attribute2dbField.put("enabledSAL06", "SAL06_CHARGES.ENABLED"); ArrayList values = new ArrayList(); values.add(serverLanguageId); // read from SAL06 table... Response res = CustomizeQueryUtil.getQuery( conn, new UserSessionParameters(username), sql, values, attribute2dbField, ChargeVO.class, "Y", "N", null, gridParams, 50, true, customizedFields); if (res.isError()) throw new Exception(res.getErrorMessage()); java.util.List list = ((VOListResponse) res).getRows(); ChargeVO vo = null; sql = "select SYS10_TRANSLATIONS.DESCRIPTION,REG01_VATS.VALUE,REG01_VATS.DEDUCTIBLE " + "from SYS10_TRANSLATIONS,REG01_VATS where " + "REG01_VATS.PROGRESSIVE_SYS10=SYS10_TRANSLATIONS.PROGRESSIVE and " + "SYS10_TRANSLATIONS.LANGUAGE_CODE=? and " + "REG01_VATS.VAT_CODE=?"; pstmt = conn.prepareStatement(sql); ResultSet rset = null; for (int i = 0; i < list.size(); i++) { vo = (ChargeVO) list.get(i); if (vo.getVatCodeReg01SAL06() != null) { // retrieve vat data from REG01... pstmt.setString(1, serverLanguageId); pstmt.setString(2, vo.getVatCodeReg01SAL06()); rset = pstmt.executeQuery(); if (rset.next()) { vo.setVatDescriptionSYS10(rset.getString(1)); vo.setVatValueREG01(rset.getBigDecimal(2)); vo.setVatDeductibleREG01(rset.getBigDecimal(3)); } rset.close(); } } Response answer = res; 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 charges 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) { } } }
/** Load data from server and construct panel content. */ public final void reloadData(DocumentsFrame frame) { try { // remove all panel content... clearData(); frame.getGrid().getOtherGridParams().put(ApplicationConsts.PROPERTIES_FILTER, filters); // retrieve customized input controls list... GridParams gridParams = new GridParams(); DefaultMutableTreeNode node = frame.getHierarTreePanel().getSelectedNode(); if (node != null) { HierarchyLevelVO vo = (HierarchyLevelVO) node.getUserObject(); HierarchyLevelVO root = (HierarchyLevelVO) ((DefaultMutableTreeNode) node.getRoot()).getUserObject(); gridParams .getOtherGridParams() .put(ApplicationConsts.PROGRESSIVE_HIE01, vo.getProgressiveHIE01()); gridParams .getOtherGridParams() .put(ApplicationConsts.ROOT_PROGRESSIVE_HIE01, root.getProgressiveHIE01()); } else gridParams.getOtherGridParams().remove(ApplicationConsts.PROGRESSIVE_HIE01); gridParams .getOtherGridParams() .put( ApplicationConsts.PROGRESSIVE_HIE02, frame.getHierarTreePanel().getProgressiveHIE02()); gridParams.getOtherGridParams().put(ApplicationConsts.LOAD_ANCIENTS, Boolean.TRUE); Response res = ClientUtils.getData("loadLevelProperties", gridParams); if (res.isError()) { JOptionPane.showMessageDialog( ClientUtils.getParentFrame(this), ClientSettings.getInstance().getResources().getResource("Error while loading data") + ":\n" + res.getErrorMessage(), ClientSettings.getInstance().getResources().getResource("Loading Data Error"), JOptionPane.ERROR_MESSAGE); return; } ArrayList rows = ((VOListResponse) res).getRows(); if (rows.size() > 0) { // adding customized input controls... LevelPropertyVO inputControlInfo = null; int row = 0; int col = 0; LabelControl labelControl = null; TextControl textControl = null; DateControl dateControl = null; NumericControl numericControl = null; for (int i = 0; i < rows.size(); i++) { inputControlInfo = (LevelPropertyVO) rows.get(i); labelControl = new LabelControl(); labelControl.setText(inputControlInfo.getDescriptionSYS10()); innerPanel.add( labelControl, new GridBagConstraints( col++, row, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); if (inputControlInfo.getPropertyTypeDOC21().equals(ApplicationConsts.TYPE_TEXT)) { textControl = new TextControl(); textControl.setMaxCharacters(255); textControl.setLinkLabel(labelControl); innerPanel.add( textControl, new GridBagConstraints( col, row, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 15), 0, 0)); textControl.addFocusListener(new ControlFocusListener(inputControlInfo, textControl)); } else if (inputControlInfo.getPropertyTypeDOC21().equals(ApplicationConsts.TYPE_DATE)) { dateControl = new DateControl(); dateControl.setLinkLabel(labelControl); innerPanel.add( dateControl, new GridBagConstraints( col, row, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 15), 0, 0)); dateControl.addFocusListener(new ControlFocusListener(inputControlInfo, dateControl)); } else if (inputControlInfo.getPropertyTypeDOC21().equals(ApplicationConsts.TYPE_NUM)) { numericControl = new NumericControl(); numericControl.setDecimals(5); numericControl.setLinkLabel(labelControl); innerPanel.add( numericControl, new GridBagConstraints( col, row, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 15), 0, 0)); numericControl.addFocusListener( new ControlFocusListener(inputControlInfo, numericControl)); } col++; if (col >= 2) { innerPanel.add( new JPanel(), new GridBagConstraints( col, row, 1, 1, 1.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0)); row++; col = 0; } } row++; innerPanel.add( new JPanel(), new GridBagConstraints( col, row, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0)); innerPanel.add( new JPanel(), new GridBagConstraints( 0, row, 1, 1, 0.0, 1.0, GridBagConstraints.WEST, GridBagConstraints.VERTICAL, new Insets(5, 5, 5, 5), 0, 0)); this.revalidate(); this.repaint(); } } catch (Exception ex) { ex.printStackTrace(); } }
/** Business logic to execute. */ public final Response executeCommand( Object inputPar, UserSessionParameters userSessionPars, HttpServletRequest request, HttpServletResponse response, HttpSession userSession, ServletContext context) { String serverLanguageId = ((JAIOUserSessionParameters) userSessionPars).getServerLanguageId(); Connection conn = null; PreparedStatement pstmt = null; try { conn = ConnectionManager.getConnection(context); // fires the GenericEvent.CONNECTION_CREATED event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.CONNECTION_CREATED, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, null)); DetailSaleDocVO docVO = (DetailSaleDocVO) inputPar; // retrieve internationalization settings (Resources object)... ServerResourcesFactory factory = (ServerResourcesFactory) context.getAttribute(Controller.RESOURCES_FACTORY); Resources resources = factory.getResources(userSessionPars.getLanguageId()); // insert header... docVO.setDocStateDOC01(ApplicationConsts.HEADER_BLOCKED); Response res = insDocBean.insertSaleDoc( conn, docVO, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } SaleDocPK refPK = new SaleDocPK( docVO.getCompanyCodeSys01Doc01DOC01(), docVO.getDocTypeDoc01DOC01(), docVO.getDocYearDoc01DOC01(), docVO.getDocNumberDoc01DOC01()); // retrieve ref. document item rows... GridParams gridParams = new GridParams(); gridParams.getOtherGridParams().put(ApplicationConsts.SALE_DOC_PK, refPK); res = rowsAction.executeCommand( gridParams, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } java.util.List rows = ((VOListResponse) res).getRows(); // create rows.. GridSaleDocRowVO gridRowVO = null; DetailSaleDocRowVO rowVO = null; java.util.List discRows = null; SaleDocRowPK docRowPK = null; SaleItemDiscountVO itemDiscVO = null; gridParams = new GridParams(); for (int i = 0; i < rows.size(); i++) { gridRowVO = (GridSaleDocRowVO) rows.get(i); // retrieve row detail... docRowPK = new SaleDocRowPK( gridRowVO.getCompanyCodeSys01DOC02(), gridRowVO.getDocTypeDOC02(), gridRowVO.getDocYearDOC02(), gridRowVO.getDocNumberDOC02(), gridRowVO.getItemCodeItm01DOC02(), gridRowVO.getVariantTypeItm06DOC02(), gridRowVO.getVariantCodeItm11DOC02(), gridRowVO.getVariantTypeItm07DOC02(), gridRowVO.getVariantCodeItm12DOC02(), gridRowVO.getVariantTypeItm08DOC02(), gridRowVO.getVariantCodeItm13DOC02(), gridRowVO.getVariantTypeItm09DOC02(), gridRowVO.getVariantCodeItm14DOC02(), gridRowVO.getVariantTypeItm10DOC02(), gridRowVO.getVariantCodeItm15DOC02()); res = rowAction.executeCommand( docRowPK, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } rowVO = (DetailSaleDocRowVO) ((VOResponse) res).getVo(); rowVO.setDocTypeDOC02(docVO.getDocTypeDOC01()); rowVO.setDocNumberDOC02(docVO.getDocNumberDOC01()); if (rowVO.getInvoiceQtyDOC02().doubleValue() < rowVO.getQtyDOC02().doubleValue() && rowVO.getQtyDOC02().doubleValue() == rowVO.getOutQtyDOC02().doubleValue()) { rowVO.setQtyDOC02( rowVO .getQtyDOC02() .subtract( rowVO .getInvoiceQtyDOC02() .setScale( rowVO.getDecimalsReg02DOC02().intValue(), BigDecimal.ROUND_HALF_UP))); rowVO.setTaxableIncomeDOC02( rowVO .getQtyDOC02() .multiply(rowVO.getValueSal02DOC02()) .setScale(docVO.getDecimalsREG03().intValue(), BigDecimal.ROUND_HALF_UP)); rowVO.setTotalDiscountDOC02(new BigDecimal(0)); // calculate row vat... double vatPerc = rowVO.getValueReg01DOC02().doubleValue() * (1d - rowVO.getDeductibleReg01DOC02().doubleValue() / 100d) / 100; rowVO.setVatValueDOC02( rowVO .getTaxableIncomeDOC02() .multiply(new BigDecimal(vatPerc)) .setScale(docVO.getDecimalsREG03().intValue(), BigDecimal.ROUND_HALF_UP)); // calculate row total... rowVO.setValueDOC02(rowVO.getTaxableIncomeDOC02().add(rowVO.getVatValueDOC02())); res = insRowBean.insertSaleItem( conn, rowVO, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } // create item discounts... gridParams.getOtherGridParams().put(ApplicationConsts.SALE_DOC_ROW_PK, docRowPK); res = itemDiscAction.executeCommand( gridParams, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } discRows = ((VOListResponse) res).getRows(); for (int j = 0; j < discRows.size(); j++) { itemDiscVO = (SaleItemDiscountVO) discRows.get(j); itemDiscVO.setDocTypeDOC04(docVO.getDocTypeDOC01()); itemDiscVO.setDocNumberDOC04(docVO.getDocNumberDOC01()); res = insItemDiscBean.insertSaleDocRowDiscount( conn, itemDiscVO, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } } } } // create charges... gridParams = new GridParams(); gridParams.getOtherGridParams().put(ApplicationConsts.SALE_DOC_PK, refPK); res = chargesAction.executeCommand( gridParams, userSessionPars, request, response, userSession, context); SaleDocChargeVO chargeVO = null; if (res.isError()) { conn.rollback(); return res; } rows = ((VOListResponse) res).getRows(); for (int i = 0; i < rows.size(); i++) { chargeVO = (SaleDocChargeVO) rows.get(i); chargeVO.setDocTypeDOC03(docVO.getDocTypeDOC01()); chargeVO.setDocNumberDOC03(docVO.getDocNumberDOC01()); if (chargeVO.getValueDOC03() == null || chargeVO.getValueDOC03() != null && chargeVO.getInvoicedValueDOC03().doubleValue() < chargeVO.getValueDOC03().doubleValue()) { if (chargeVO.getValueDOC03() != null) chargeVO.setValueDOC03( chargeVO .getValueDOC03() .subtract(chargeVO.getInvoicedValueDOC03()) .setScale(docVO.getDecimalsREG03().intValue(), BigDecimal.ROUND_HALF_UP)); res = insChargeBean.insertSaleDocCharge( conn, chargeVO, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } } } // create activities... res = actAction.executeCommand( gridParams, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } SaleDocActivityVO actVO = null; rows = ((VOListResponse) res).getRows(); for (int i = 0; i < rows.size(); i++) { actVO = (SaleDocActivityVO) rows.get(i); actVO.setDocTypeDOC13(docVO.getDocTypeDOC01()); actVO.setDocNumberDOC13(docVO.getDocNumberDOC01()); if (actVO.getInvoicedValueDOC13().doubleValue() < actVO.getValueDOC13().doubleValue()) { actVO.setValueDOC13( actVO .getValueDOC13() .subtract(actVO.getInvoicedValueDOC13()) .setScale(docVO.getDecimalsREG03().intValue(), BigDecimal.ROUND_HALF_UP)); res = insActBean.insertSaleActivity( conn, actVO, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } } } // create header discounts... res = discAction.executeCommand( gridParams, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } SaleDocDiscountVO discVO = null; rows = ((VOListResponse) res).getRows(); for (int i = 0; i < rows.size(); i++) { discVO = (SaleDocDiscountVO) rows.get(i); discVO.setDocTypeDOC05(docVO.getDocTypeDOC01()); discVO.setDocNumberDOC05(docVO.getDocNumberDOC01()); res = insDiscBean.insertSaleDocDiscount( conn, discVO, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } } // recalculate all taxable incomes, vats, totals... SaleDocPK pk = new SaleDocPK( docVO.getCompanyCodeSys01DOC01(), docVO.getDocTypeDOC01(), docVO.getDocYearDOC01(), docVO.getDocNumberDOC01()); res = totals.updateTaxableIncomes( conn, pk, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } // reload doc header with updated totals... Response answer = docAction.loadSaleDoc(conn, pk, userSessionPars, request, response, userSession, context); // fires the GenericEvent.BEFORE_COMMIT event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.BEFORE_COMMIT, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, answer)); conn.commit(); // fires the GenericEvent.AFTER_COMMIT event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.AFTER_COMMIT, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, answer)); return answer; } catch (Throwable ex) { Logger.error( userSessionPars.getUsername(), this.getClass().getName(), "executeCommand", "Error while creating a sale invoice from a sale document", ex); try { conn.rollback(); } catch (Exception ex3) { } return new ErrorResponse(ex.getMessage()); } finally { try { pstmt.close(); } catch (Exception ex2) { } try { ConnectionManager.releaseConnection(conn, context); } catch (Exception ex1) { } } }
/** * Check if components required by specified products are available. * * @param products list of ProdOrderProductVO objects * @params compAltComps collection of <component item code,HashSet of alternative component item * codes>; filled by this method (and given back by reference) * @return VOListResponse of ProdOrderComponentVO objects */ public final Response checkComponentsAvailability( Connection conn, Hashtable compAltComps, ArrayList products, UserSessionParameters userSessionPars, HttpServletRequest request, HttpServletResponse response, HttpSession userSession, ServletContext context) { String serverLanguageId = ((JAIOUserSessionParameters) userSessionPars).getServerLanguageId(); try { // retrieve internationalization settings (Resources object)... ServerResourcesFactory factory = (ServerResourcesFactory) context.getAttribute(Controller.RESOURCES_FACTORY); Resources resources = factory.getResources(userSessionPars.getLanguageId()); if (products.size() == 0) { return new VOListResponse(new ArrayList(), false, 0); } // fill in comps hashtable with the collection of required components... ItemPK pk = null; ProdOrderProductVO prodVO = null; ArrayList components = null; MaterialVO compVO = null; Response res = null; ProdOrderComponentVO componentVO = null; Hashtable comps = new Hashtable(); // collection of <component item code,ProdOrderComponentVO object> for (int i = 0; i < products.size(); i++) { // retrieve bill of materials for each product... prodVO = (ProdOrderProductVO) products.get(i); pk = new ItemPK(prodVO.getCompanyCodeSys01DOC23(), prodVO.getItemCodeItm01DOC23()); res = bean.getBillOfMaterials( conn, pk, userSessionPars, request, response, userSession, context); if (res.isError()) { return res; } // extract components only (leaf nodes)... components = getComponents( (DefaultMutableTreeNode) ((TreeModel) ((VOResponse) res).getVo()).getRoot()); for (int j = 0; j < components.size(); j++) { compVO = (MaterialVO) components.get(j); componentVO = (ProdOrderComponentVO) comps.get(compVO.getItemCodeItm01ITM03()); if (componentVO == null) { componentVO = new ProdOrderComponentVO(); comps.put(compVO.getItemCodeItm01ITM03(), componentVO); componentVO.setAvailableQty(new BigDecimal(0)); componentVO.setCompanyCodeSys01DOC24(compVO.getCompanyCodeSys01ITM03()); componentVO.setDescriptionSYS10(compVO.getDescriptionSYS10()); componentVO.setDocNumberDOC24(prodVO.getDocNumberDOC23()); componentVO.setDocYearDOC24(prodVO.getDocYearDOC23()); componentVO.setItemCodeItm01DOC24(compVO.getItemCodeItm01ITM03()); componentVO.setMinSellingQtyUmCodeReg02ITM01(compVO.getMinSellingQtyUmCodeReg02ITM01()); componentVO.setQtyDOC24(new BigDecimal(0)); } componentVO.setQtyDOC24( componentVO.getQtyDOC24().add(compVO.getQtyITM03().multiply(prodVO.getQtyDOC23()))); } } // check components availability in the specified warehouse... Enumeration en = comps.keys(); GridParams gridParams = new GridParams(); gridParams .getOtherGridParams() .put(ApplicationConsts.COMPANY_CODE_SYS01, prodVO.getCompanyCodeSys01DOC23()); gridParams .getOtherGridParams() .put(ApplicationConsts.WAREHOUSE_CODE, prodVO.getWarehouseCodeWar01DOC22()); gridParams.getOtherGridParams().put(ApplicationConsts.LOAD_ALL, Boolean.TRUE); ItemAvailabilityVO availVO = null; BigDecimal availability, altAvailability, delta; String itemCode = null; ArrayList list, availList; AltComponentVO altVO = null; ArrayList alternativeComps = new ArrayList(); ArrayList compsToRemove = new ArrayList(); ProdOrderComponentVO altComponentVO = null; HashSet altCodes = null; // list of alternative component item codes... BigDecimal altQty = null; while (en.hasMoreElements()) { itemCode = en.nextElement().toString(); componentVO = (ProdOrderComponentVO) comps.get(itemCode); gridParams .getOtherGridParams() .put( ApplicationConsts.ITEM_PK, new ItemPK(prodVO.getCompanyCodeSys01DOC23(), itemCode)); res = avail.executeCommand( gridParams, userSessionPars, request, response, userSession, context); if (res.isError()) return res; availList = ((VOListResponse) res).getRows(); componentVO.setAvailabilities(availList); availability = new BigDecimal(0); for (int i = 0; i < availList.size(); i++) { availVO = (ItemAvailabilityVO) availList.get(i); availability = availability.add(availVO.getAvailableQtyWAR03()); } componentVO.setAvailableQty(availability); if (componentVO.getQtyDOC24().doubleValue() > componentVO.getAvailableQty().doubleValue()) { // check if there exist some alternative component... res = altComps.executeCommand( gridParams, userSessionPars, request, response, userSession, context); if (res.isError()) return res; list = ((VOListResponse) res).getRows(); for (int i = 0; i < list.size(); i++) { altVO = (AltComponentVO) list.get(i); gridParams .getOtherGridParams() .put( ApplicationConsts.ITEM_PK, new ItemPK(prodVO.getCompanyCodeSys01DOC23(), altVO.getItemCodeItm01ITM04())); res = avail.executeCommand( gridParams, userSessionPars, request, response, userSession, context); if (res.isError()) return res; availList = ((VOListResponse) res).getRows(); altAvailability = new BigDecimal(0); for (int j = 0; j < availList.size(); j++) { availVO = (ItemAvailabilityVO) availList.get(j); altAvailability = altAvailability.add(availVO.getAvailableQtyWAR03()); } if (altAvailability.doubleValue() > 0) { altComponentVO = new ProdOrderComponentVO(); altComponentVO.setAvailabilities(availList); altComponentVO.setAvailableQty(altAvailability); altComponentVO.setCompanyCodeSys01DOC24(altVO.getCompanyCodeSys01ITM04()); altComponentVO.setDescriptionSYS10(altVO.getDescriptionSYS10()); altComponentVO.setDocNumberDOC24(prodVO.getDocNumberDOC23()); altComponentVO.setDocYearDOC24(prodVO.getDocYearDOC23()); altComponentVO.setItemCodeItm01DOC24(altVO.getItemCodeItm01ITM04()); altComponentVO.setMinSellingQtyUmCodeReg02ITM01( altVO.getMinSellingQtyUmCodeReg02ITM01()); altQty = conv.convertQty( altVO.getMinSellingQtyUmCodeReg02ITM01(), componentVO.getMinSellingQtyUmCodeReg02ITM01(), altAvailability, userSessionPars, request, response, userSession, context); if (componentVO.getQtyDOC24().subtract(availability).doubleValue() > altQty.doubleValue()) { delta = altQty; altComponentVO.setQtyDOC24(altAvailability); } else { delta = componentVO.getQtyDOC24(); altComponentVO.setQtyDOC24( conv.convertQty( componentVO.getMinSellingQtyUmCodeReg02ITM01(), altVO.getMinSellingQtyUmCodeReg02ITM01(), delta, userSessionPars, request, response, userSession, context)); } componentVO.setQtyDOC24(componentVO.getQtyDOC24().subtract(delta)); alternativeComps.add(altComponentVO); altCodes = (HashSet) compAltComps.get(itemCode); if (altCodes == null) { altCodes = new HashSet(); compAltComps.put(itemCode, altCodes); } altCodes.add(altVO.getItemCodeItm01ITM04()); if (componentVO.getQtyDOC24().doubleValue() == 0) { compsToRemove.add(componentVO); break; } if (componentVO.getQtyDOC24().subtract(availability).doubleValue() == 0) break; } } } } list = new ArrayList(comps.values()); list.addAll(alternativeComps); list.removeAll(compsToRemove); return new VOListResponse(list, false, list.size()); } catch (Throwable ex) { Logger.error( userSessionPars.getUsername(), this.getClass().getName(), "checkComponentsAvailability", "Error while retrieving components availability for the specified production order", ex); return new ErrorResponse(ex.getMessage()); } }
/** 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) { } } }
/** Business logic to execute. */ public VOListResponse loadItemVariants(GridParams pars, String serverLanguageId, String username) throws Throwable { PreparedStatement pstmt = null; Connection conn = null; try { if (this.conn == null) conn = getConn(); else conn = this.conn; String tableName = (String) pars.getOtherGridParams().get(ApplicationConsts.TABLE_NAME); ItemPK pk = (ItemPK) pars.getOtherGridParams().get(ApplicationConsts.ITEM_PK); String productVariant = (String) productVariants.get(tableName); String variantType = (String) variantTypes.get(tableName); String variantTypeJoin = (String) variantTypeJoins.get(tableName); String variantCodeJoin = (String) variantCodeJoins.get(tableName); String sql = "select " + tableName + "." + variantTypeJoin + "," + tableName + ".VARIANT_CODE,A.DESCRIPTION,B.DESCRIPTION, " + tableName + ".PROGRESSIVE_SYS10," + variantType + ".PROGRESSIVE_SYS10 " + "from " + tableName + "," + variantType + ",SYS10_COMPANY_TRANSLATIONS A,SYS10_COMPANY_TRANSLATIONS B " + "where " + tableName + ".COMPANY_CODE_SYS01=? and " + tableName + ".COMPANY_CODE_SYS01=" + variantType + ".COMPANY_CODE_SYS01 and " + tableName + "." + variantTypeJoin + "=" + variantType + ".VARIANT_TYPE and " + tableName + ".COMPANY_CODE_SYS01=A.COMPANY_CODE_SYS01 and " + tableName + ".PROGRESSIVE_SYS10=A.PROGRESSIVE and A.LANGUAGE_CODE=? and " + variantType + ".COMPANY_CODE_SYS01=B.COMPANY_CODE_SYS01 and " + variantType + ".PROGRESSIVE_SYS10=B.PROGRESSIVE and B.LANGUAGE_CODE=? and " + tableName + ".ENABLED='Y' and " + variantType + ".ENABLED='Y' and " + // and not "+tableName+"."+variantTypeJoin+"=? and "+ "not " + tableName + ".VARIANT_CODE=? " + "order by " + tableName + "." + variantTypeJoin + "," + tableName + ".CODE_ORDER"; Map attribute2dbField = new HashMap(); attribute2dbField.put("variantType", tableName + "." + variantTypeJoin); attribute2dbField.put("variantCode", tableName + ".VARIANT_CODE"); attribute2dbField.put("variantDesc", "A.DESCRIPTION"); attribute2dbField.put("variantTypeDesc", "B.DESCRIPTION"); attribute2dbField.put("variantProgressiveSys10", tableName + ".PROGRESSIVE_SYS10"); attribute2dbField.put("variantTypeProgressiveSys10", variantType + ".PROGRESSIVE_SYS10"); ArrayList values = new ArrayList(); values.add(pk.getCompanyCodeSys01ITM01()); values.add(serverLanguageId); values.add(serverLanguageId); // values.add(ApplicationConsts.JOLLY); values.add(ApplicationConsts.JOLLY); // read from ITMxxx table... Response answer = QueryUtil.getQuery( conn, new UserSessionParameters(username), sql, values, attribute2dbField, ItemVariantVO.class, "Y", "N", null, pars, 50, true); if (!answer.isError()) { java.util.List vos = ((VOListResponse) answer).getRows(); HashMap map = new HashMap(); ItemVariantVO vo = null; for (int i = 0; i < vos.size(); i++) { vo = (ItemVariantVO) vos.get(i); vo.setCompanyCodeSys01(pk.getCompanyCodeSys01ITM01()); vo.setItemCodeItm01(pk.getItemCodeITM01()); vo.setTableName(tableName); map.put(vo.getVariantType() + "." + vo.getVariantCode(), vo); } pstmt = conn.prepareStatement( "select " + productVariant + "." + variantTypeJoin + "," + productVariant + "." + variantCodeJoin + " " + "from " + productVariant + " " + "where " + productVariant + ".COMPANY_CODE_SYS01=? and " + productVariant + ".ITEM_CODE_ITM01=? and " + productVariant + ".ENABLED='Y' "); pstmt.setString(1, pk.getCompanyCodeSys01ITM01()); pstmt.setString(2, pk.getItemCodeITM01()); ResultSet rset = pstmt.executeQuery(); while (rset.next()) { vo = (ItemVariantVO) map.get(rset.getString(1) + "." + rset.getString(2)); if (vo != null) vo.setSelected(Boolean.TRUE); } rset.close(); pstmt.close(); } if (answer.isError()) throw new Exception(answer.getErrorMessage()); else return (VOListResponse) answer; } catch (Throwable ex) { Logger.error( username, this.getClass().getName(), "getItemVariants", "Error while fetching item variants list", ex); throw new Exception(ex.getMessage()); } finally { try { pstmt.close(); } catch (Exception ex2) { } try { if (this.conn == null && conn != null) { // close only local connection conn.commit(); conn.close(); } } catch (Exception exx) { } } }
/** Business logic to execute. */ public final Response executeCommand( Object inputPar, UserSessionParameters userSessionPars, HttpServletRequest request, HttpServletResponse response, HttpSession userSession, ServletContext context) { String serverLanguageId = ((JAIOUserSessionParameters) userSessionPars).getServerLanguageId(); Connection conn = null; PreparedStatement pstmt = null; try { conn = ConnectionManager.getConnection(context); // fires the GenericEvent.CONNECTION_CREATED event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.CONNECTION_CREATED, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, null)); // retrieve companies list... GridParams gridParams = (GridParams) inputPar; String companies = (String) gridParams .getOtherGridParams() .get(ApplicationConsts.COMPANY_CODE_SYS01); // used in lookup grid... if (companies == null) { ArrayList companiesList = ((JAIOUserSessionParameters) userSessionPars).getCompanyBa().getCompaniesList("SAL06"); companies = ""; for (int i = 0; i < companiesList.size(); i++) companies += "'" + companiesList.get(i).toString() + "',"; companies = companies.substring(0, companies.length() - 1); } else companies = "'" + companies + "'"; String sql = "select SAL06_CHARGES.COMPANY_CODE_SYS01,SAL06_CHARGES.CHARGE_CODE,SAL06_CHARGES.PROGRESSIVE_SYS10," + "SYS10_TRANSLATIONS.DESCRIPTION,SAL06_CHARGES.VALUE,SAL06_CHARGES.PERC,SAL06_CHARGES.VAT_CODE_REG01," + "SAL06_CHARGES.CURRENCY_CODE_REG03,SAL06_CHARGES.ENABLED" + " from SAL06_CHARGES,SYS10_TRANSLATIONS where " + "SAL06_CHARGES.PROGRESSIVE_SYS10=SYS10_TRANSLATIONS.PROGRESSIVE and " + "SYS10_TRANSLATIONS.LANGUAGE_CODE=? and " + "SAL06_CHARGES.ENABLED='Y' and " + "SAL06_CHARGES.COMPANY_CODE_SYS01 in (" + companies + ")"; Map attribute2dbField = new HashMap(); attribute2dbField.put("companyCodeSys01SAL06", "SAL06_CHARGES.COMPANY_CODE_SYS01"); attribute2dbField.put("chargeCodeSAL06", "SAL06_CHARGES.CHARGE_CODE"); attribute2dbField.put("descriptionSYS10", "SYS10_TRANSLATIONS.DESCRIPTION"); attribute2dbField.put("progressiveSys10SAL06", "SAL06_CHARGES.PROGRESSIVE_SYS10"); attribute2dbField.put("valueSAL06", "SAL06_CHARGES.VALUE"); attribute2dbField.put("percSAL06", "SAL06_CHARGES.PERC"); attribute2dbField.put("vatCodeReg01SAL06", "SAL06_CHARGES.VAT_CODE_REG01"); attribute2dbField.put("currencyCodeReg03SAL06", "SAL06_CHARGES.CURRENCY_CODE_REG03"); attribute2dbField.put("enabledSAL06", "SAL06_CHARGES.ENABLED"); ArrayList values = new ArrayList(); values.add(serverLanguageId); // read from SAL06 table... Response res = CustomizeQueryUtil.getQuery( conn, userSessionPars, sql, values, attribute2dbField, ChargeVO.class, "Y", "N", context, gridParams, 50, true, new BigDecimal(292) // window identifier... ); if (res.isError()) return res; ArrayList list = ((VOListResponse) res).getRows(); ChargeVO vo = null; sql = "select SYS10_TRANSLATIONS.DESCRIPTION,REG01_VATS.VALUE,REG01_VATS.DEDUCTIBLE " + "from SYS10_TRANSLATIONS,REG01_VATS where " + "REG01_VATS.PROGRESSIVE_SYS10=SYS10_TRANSLATIONS.PROGRESSIVE and " + "SYS10_TRANSLATIONS.LANGUAGE_CODE=? and " + "REG01_VATS.VAT_CODE=?"; pstmt = conn.prepareStatement(sql); ResultSet rset = null; for (int i = 0; i < list.size(); i++) { vo = (ChargeVO) list.get(i); if (vo.getVatCodeReg01SAL06() != null) { // retrieve vat data from REG01... pstmt.setString(1, serverLanguageId); pstmt.setString(2, vo.getVatCodeReg01SAL06()); rset = pstmt.executeQuery(); if (rset.next()) { vo.setVatDescriptionSYS10(rset.getString(1)); vo.setVatValueREG01(rset.getBigDecimal(2)); vo.setVatDeductibleREG01(rset.getBigDecimal(3)); } rset.close(); } } Response answer = res; // fires the GenericEvent.BEFORE_COMMIT event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.BEFORE_COMMIT, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, answer)); return answer; } catch (Throwable ex) { Logger.error( userSessionPars.getUsername(), this.getClass().getName(), "executeCommand", "Error while fetching charges list", ex); return new ErrorResponse(ex.getMessage()); } finally { try { pstmt.close(); } catch (Exception ex2) { } try { ConnectionManager.releaseConnection(conn, context); } catch (Exception ex1) { } } }
/** Business logic to execute. */ public final Response executeCommand( Object inputPar, UserSessionParameters userSessionPars, HttpServletRequest request, HttpServletResponse response, HttpSession userSession, ServletContext context) { Connection conn = null; PreparedStatement pstmt = null; try { conn = ConnectionManager.getConnection(context); // fires the GenericEvent.CONNECTION_CREATED event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.CONNECTION_CREATED, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, null)); Response responseVO = bean.insertItem( conn, (JournalHeaderVO) inputPar, userSessionPars, request, response, userSession, context); if (responseVO.isError()) { conn.rollback(); return responseVO; } if (inputPar instanceof JournalHeaderWithVatVO) { JournalHeaderWithVatVO vo = (JournalHeaderWithVatVO) inputPar; // insert vat rows in the specified vat register... Response regRes = vatRegisterAction.insertVatRows( conn, vo.getVats(), userSessionPars, request, response, userSession, context); if (regRes.isError()) { conn.rollback(); return regRes; } // retrieve payment instalments... Response payRes = payAction.executeCommand( new LookupValidationParams(vo.getPaymentCodeREG10(), new HashMap()), userSessionPars, request, response, userSession, context); if (payRes.isError()) { conn.rollback(); return payRes; } PaymentVO payVO = (PaymentVO) ((VOListResponse) payRes).getRows().get(0); GridParams gridParams = new GridParams(); gridParams .getOtherGridParams() .put(ApplicationConsts.PAYMENT_CODE_REG10, vo.getPaymentCodeREG10()); payRes = paysAction.executeCommand( gridParams, userSessionPars, request, response, userSession, context); if (payRes.isError()) { conn.rollback(); return payRes; } java.util.List rows = ((VOListResponse) payRes).getRows(); // create expirations in DOC19 ONLY if: // - there are more than one instalment OR // - there is only one instalment and this instalment has more than 0 instalment days if (rows.size() > 1 || (rows.size() == 1 && ((PaymentInstalmentVO) rows.get(0)).getInstalmentDaysREG17().intValue() > 0)) { // retrieve internationalization settings (Resources object)... ServerResourcesFactory factory = (ServerResourcesFactory) context.getAttribute(Controller.RESOURCES_FACTORY); Resources resources = factory.getResources(userSessionPars.getLanguageId()); PaymentInstalmentVO inVO = null; pstmt = conn.prepareStatement( "insert into DOC19_EXPIRATIONS(COMPANY_CODE_SYS01,DOC_TYPE,DOC_YEAR,DOC_NUMBER,DOC_SEQUENCE,PROGRESSIVE,DOC_DATE,EXPIRATION_DATE,NAME_1,NAME_2,VALUE,PAYED,DESCRIPTION,CUSTOMER_SUPPLIER_CODE,PROGRESSIVE_REG04,CURRENCY_CODE_REG03) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"); long startTime = vo.getItemDateACC05().getTime(); // item date... if (payVO.getStartDayREG10().equals(ApplicationConsts.START_DAY_END_MONTH)) { Calendar cal = Calendar.getInstance(); if (cal.get(cal.MONTH) == 10 || cal.get(cal.MONTH) == 3 || cal.get(cal.MONTH) == 5 || cal.get(cal.MONTH) == 8) cal.set(cal.DAY_OF_MONTH, 30); else if (cal.get(cal.MONTH) == 1) { if (cal.get(cal.YEAR) % 4 == 0) cal.set(cal.DAY_OF_MONTH, 29); else cal.set(cal.DAY_OF_MONTH, 28); } else cal.set(cal.DAY_OF_MONTH, 31); startTime = cal.getTime().getTime(); } BigDecimal amount = null; for (int i = 0; i < rows.size(); i++) { inVO = (PaymentInstalmentVO) rows.get(i); pstmt.setString(1, vo.getCompanyCodeSys01ACC05()); pstmt.setString(2, vo.getDocTypeDOC19()); pstmt.setBigDecimal(3, vo.getItemYearACC05()); pstmt.setBigDecimal(4, null); pstmt.setBigDecimal(5, vo.getDocSequenceDOC19()); pstmt.setBigDecimal( 6, ProgressiveUtils.getConsecutiveProgressive( "DOC19_EXPIRATIONS", "PROGRESSIVE", conn)); pstmt.setDate(7, vo.getItemDateACC05()); pstmt.setDate( 8, new java.sql.Date( startTime + inVO.getInstalmentDaysREG17().longValue() * 86400 * 1000)); // expiration date pstmt.setString(9, vo.getName_1REG04()); pstmt.setString(10, vo.getName_2REG04()); amount = vo.getTotalValue() .multiply(inVO.getPercentageREG17()) .divide(new BigDecimal(100), BigDecimal.ROUND_HALF_UP) .setScale(vo.getTotalValue().scale(), BigDecimal.ROUND_HALF_UP); // value pstmt.setBigDecimal(11, amount); pstmt.setString(12, "N"); if (vo.getDocTypeDOC19().equals(ApplicationConsts.SALE_GENERIC_INVOICE)) pstmt.setString( 13, resources.getResource("sale generic document") + " " + vo.getDocSequenceDOC19() + "/" + vo.getItemYearACC05() + " - " + resources.getResource("valueREG01") + " " + resources.getResource("rateNumberREG17") + " " + (i + 1) + " - " + inVO.getPaymentTypeDescriptionSYS10()); // description else pstmt.setString( 13, resources.getResource("purchase generic document") + " " + vo.getDocSequenceDOC19() + "/" + vo.getItemYearACC05() + " - " + resources.getResource("valueREG01") + " " + resources.getResource("rateNumberREG17") + " " + (i + 1) + " - " + inVO.getPaymentTypeDescriptionSYS10()); // description pstmt.setString(14, vo.getCustomerCodeSAL07()); pstmt.setBigDecimal(15, vo.getProgressiveREG04()); pstmt.setString(16, vo.getCurrencyCodeREG01()); pstmt.execute(); } pstmt.close(); } // create an item registration for proceeds, according to expiration settings (e.g. retail // selling): // there must be only one instalment and this instalment has 0 instalment days if (rows.size() == 1 && ((PaymentInstalmentVO) rows.get(0)).getInstalmentDaysREG17().intValue() == 0) { // retrieve internationalization settings (Resources object)... ServerResourcesFactory factory = (ServerResourcesFactory) context.getAttribute(Controller.RESOURCES_FACTORY); Resources resources = factory.getResources(userSessionPars.getLanguageId()); HashMap map = new HashMap(); map.put(ApplicationConsts.COMPANY_CODE_SYS01, vo.getCompanyCodeSys01ACC05()); map.put(ApplicationConsts.PARAM_CODE, ApplicationConsts.CASE_ACCOUNT); Response res = userParamAction.executeCommand( map, userSessionPars, request, response, userSession, context); if (res.isError()) { conn.rollback(); return res; } String caseAccountCode = ((VOResponse) res).getVo().toString(); JournalHeaderVO jhVO = new JournalHeaderVO(); jhVO.setCompanyCodeSys01ACC05(vo.getCompanyCodeSys01ACC05()); if (vo.getDocTypeDOC19().equals(ApplicationConsts.SALE_GENERIC_INVOICE)) { jhVO.setDescriptionACC05( resources.getResource("sale generic document") + " " + vo.getDocSequenceDOC19() + "/" + vo.getItemYearACC05() + " - " + resources.getResource("customer") + " " + vo.getName_1REG04() + " " + (vo.getName_2REG04() == null ? "" : vo.getName_2REG04())); jhVO.setAccountingMotiveCodeAcc03ACC05(ApplicationConsts.MOTIVE_INVOICE_PROCEEDS); } else { jhVO.setDescriptionACC05( resources.getResource("purchase generic document") + " " + vo.getDocSequenceDOC19() + "/" + vo.getItemYearACC05() + " - " + resources.getResource("supplier") + " " + vo.getName_1REG04() + " " + (vo.getName_2REG04() == null ? "" : vo.getName_2REG04())); jhVO.setAccountingMotiveCodeAcc03ACC05(ApplicationConsts.MOTIVE_PURCHASE_INVOICE_PAYED); } jhVO.setItemDateACC05(new java.sql.Date(System.currentTimeMillis())); jhVO.setItemYearACC05(new BigDecimal(Calendar.getInstance().get(Calendar.YEAR))); JournalRowVO jrVO = new JournalRowVO(); jrVO.setCompanyCodeSys01ACC06(jhVO.getCompanyCodeSys01ACC05()); if (vo.getDocTypeDOC19().equals(ApplicationConsts.SALE_GENERIC_INVOICE)) { jrVO.setAccountCodeAcc02ACC06(vo.getCreditAccountCodeAcc02SAL07()); jrVO.setAccountCodeACC06(vo.getCustomerCodeSAL07()); jrVO.setAccountCodeTypeACC06(ApplicationConsts.ACCOUNT_TYPE_CUSTOMER); jrVO.setCreditAmountACC06(vo.getTotalValue()); } else { jrVO.setAccountCodeAcc02ACC06(vo.getDebitAccountCodeAcc02PUR01()); jrVO.setAccountCodeACC06(vo.getSupplierCodePUR01()); jrVO.setAccountCodeTypeACC06(ApplicationConsts.ACCOUNT_TYPE_SUPPLIER); jrVO.setDebitAmountACC06(vo.getTotalValue()); } jrVO.setDescriptionACC06(""); jrVO.setItemYearAcc05ACC06(jhVO.getItemYearACC05()); jrVO.setProgressiveAcc05ACC06(jhVO.getProgressiveACC05()); jhVO.addJournalRow(jrVO); jrVO = new JournalRowVO(); jrVO.setCompanyCodeSys01ACC06(jhVO.getCompanyCodeSys01ACC05()); jrVO.setAccountCodeAcc02ACC06(caseAccountCode); jrVO.setAccountCodeACC06(caseAccountCode); jrVO.setAccountCodeTypeACC06(ApplicationConsts.ACCOUNT_TYPE_ACCOUNT); if (vo.getDocTypeDOC19().equals(ApplicationConsts.SALE_GENERIC_INVOICE)) { jrVO.setDebitAmountACC06(vo.getTotalValue()); } else { jrVO.setCreditAmountACC06(vo.getTotalValue()); } jrVO.setDescriptionACC06(""); jrVO.setItemYearAcc05ACC06(jhVO.getItemYearACC05()); jrVO.setProgressiveAcc05ACC06(jhVO.getProgressiveACC05()); jhVO.addJournalRow(jrVO); Response proceedsRes = bean.insertItem(conn, jhVO, userSessionPars, request, response, userSession, context); if (proceedsRes.isError()) { conn.rollback(); return proceedsRes; } } } Response answer = responseVO; // fires the GenericEvent.BEFORE_COMMIT event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.BEFORE_COMMIT, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, answer)); conn.commit(); // fires the GenericEvent.AFTER_COMMIT event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.AFTER_COMMIT, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, answer)); return answer; } catch (Throwable ex) { Logger.error( userSessionPars.getUsername(), this.getClass().getName(), "executeCommand", "Error while inserting a new item in the journal", ex); try { conn.rollback(); } catch (Exception ex3) { } return new ErrorResponse(ex.getMessage()); } finally { try { pstmt.close(); } catch (Exception ex2) { } try { ConnectionManager.releaseConnection(conn, context); } catch (Exception ex1) { } } }
/** Business logic to execute. */ public final Response executeCommand( Object inputPar, UserSessionParameters userSessionPars, HttpServletRequest request, HttpServletResponse response, HttpSession userSession, ServletContext context) { String serverLanguageId = ((JAIOUserSessionParameters) userSessionPars).getServerLanguageId(); PreparedStatement pstmt = null; Connection conn = null; try { conn = ConnectionManager.getConnection(context); // fires the GenericEvent.CONNECTION_CREATED event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.CONNECTION_CREATED, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, null)); GridParams pars = (GridParams) inputPar; 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); Boolean productsOnly = (Boolean) pars.getOtherGridParams().get(ApplicationConsts.PRODUCTS_ONLY); Boolean compsOnly = (Boolean) pars.getOtherGridParams().get(ApplicationConsts.COMPONENTS_ONLY); HierarchyLevelVO vo = (HierarchyLevelVO) pars.getOtherGridParams().get(ApplicationConsts.TREE_FILTER); if (vo != null) { progressiveHIE01 = vo.getProgressiveHIE01(); progressiveHIE02 = vo.getProgressiveHie02HIE01(); } // retrieve companies list... ArrayList companiesList = ((JAIOUserSessionParameters) userSessionPars).getCompanyBa().getCompaniesList("ITM01"); String companies = ""; for (int i = 0; i < companiesList.size(); i++) companies += "'" + companiesList.get(i).toString() + "',"; companies = companies.substring(0, companies.length() - 1); String sql = "select ITM01_ITEMS.COMPANY_CODE_SYS01,ITM01_ITEMS.ITEM_CODE,SYS10_TRANSLATIONS.DESCRIPTION,ITM01_ITEMS.PROGRESSIVE_HIE02,ITM01_ITEMS.MIN_SELLING_QTY_UM_CODE_REG02," + "ITM01_ITEMS.PROGRESSIVE_HIE01,ITM01_ITEMS.SERIAL_NUMBER_REQUIRED,REG02_MEASURE_UNITS.DECIMALS " + " from ITM01_ITEMS,SYS10_TRANSLATIONS,REG02_MEASURE_UNITS where " + "ITM01_ITEMS.PROGRESSIVE_HIE02=? and " + "ITM01_ITEMS.PROGRESSIVE_SYS10=SYS10_TRANSLATIONS.PROGRESSIVE and " + "SYS10_TRANSLATIONS.LANGUAGE_CODE=? and " + "ITM01_ITEMS.COMPANY_CODE_SYS01 in (" + companies + ") and " + "ITM01_ITEMS.ENABLED='Y' and " + "ITM01_ITEMS.MIN_SELLING_QTY_UM_CODE_REG02=REG02_MEASURE_UNITS.UM_CODE "; if (productsOnly != null && productsOnly.booleanValue()) sql += " and ITM01_ITEMS.MANUFACTURE_CODE_PRO01 is not null "; if (compsOnly != null && compsOnly.booleanValue()) sql += " and ITM01_ITEMS.MANUFACTURE_CODE_PRO01 is null "; if (rootProgressiveHIE01 == null || !rootProgressiveHIE01.equals(progressiveHIE01)) { // retrieve all subnodes of the specified node... pstmt = conn.prepareStatement( "select HIE01_LEVELS.PROGRESSIVE,HIE01_LEVELS.PROGRESSIVE_HIE01,HIE01_LEVELS.LEV from HIE01_LEVELS " + "where 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); sql += " and PROGRESSIVE_HIE01 in (" + nodes + ")"; } Map attribute2dbField = new HashMap(); attribute2dbField.put("companyCodeSys01ITM01", "ITM01_ITEMS.COMPANY_CODE_SYS01"); attribute2dbField.put("itemCodeITM01", "ITM01_ITEMS.ITEM_CODE"); attribute2dbField.put("descriptionSYS10", "SYS10_TRANSLATIONS.DESCRIPTION"); attribute2dbField.put("progressiveHie02ITM01", "ITM01_ITEMS.PROGRESSIVE_HIE02"); attribute2dbField.put( "minSellingQtyUmCodeReg02ITM01", "ITM01_ITEMS.MIN_SELLING_QTY_UM_CODE_REG02"); attribute2dbField.put("progressiveHie01ITM01", "ITM01_ITEMS.PROGRESSIVE_HIE01"); attribute2dbField.put("serialNumberRequiredITM01", "ITM01_ITEMS.SERIAL_NUMBER_REQUIRED"); attribute2dbField.put("decimalsREG02", "REG02_MEASURE_UNITS.DECIMALS"); ArrayList values = new ArrayList(); values.add(progressiveHIE02); values.add(serverLanguageId); // read from ITM01 table... Response answer = QueryUtil.getQuery( conn, userSessionPars, sql, values, attribute2dbField, GridItemVO.class, "Y", "N", context, pars, 50, true); // fires the GenericEvent.BEFORE_COMMIT event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.BEFORE_COMMIT, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, answer)); return answer; } catch (Throwable ex) { Logger.error( userSessionPars.getUsername(), this.getClass().getName(), "executeCommand", "Error while fetching items list", ex); return new ErrorResponse(ex.getMessage()); } finally { try { pstmt.close(); } catch (Exception ex2) { } try { ConnectionManager.releaseConnection(conn, context); } catch (Exception ex1) { } } }
/** Business logic to execute. */ public VOListResponse loadOutDeliveryNotesForSaleDoc( GridParams pars, String serverLanguageId, String username, ArrayList companiesList) throws Throwable { PreparedStatement pstmt = null; Connection conn = null; try { if (this.conn == null) conn = getConn(); else conn = this.conn; // retrieve companies list... String companies = ""; for (int i = 0; i < companiesList.size(); i++) companies += "'" + companiesList.get(i).toString() + "',"; companies = companies.substring(0, companies.length() - 1); String sql = "select DOC08_DELIVERY_NOTES.COMPANY_CODE_SYS01,DOC08_DELIVERY_NOTES.DOC_TYPE," + "DOC08_DELIVERY_NOTES.DOC_YEAR,DOC08_DELIVERY_NOTES.DOC_NUMBER,DOC08_DELIVERY_NOTES.DOC_DATE, " + "DOC08_DELIVERY_NOTES.DESTINATION_CODE_REG18,DOC08_DELIVERY_NOTES.DESCRIPTION," + "DOC08_DELIVERY_NOTES.DOC_SEQUENCE " + " from DOC08_DELIVERY_NOTES where " + "DOC08_DELIVERY_NOTES.COMPANY_CODE_SYS01 in (" + companies + ") and " + "DOC08_DELIVERY_NOTES.ENABLED='Y' and " + "DOC08_DELIVERY_NOTES.DOC_TYPE=? and " + "DOC08_DELIVERY_NOTES.DOC_STATE=? and " + "(DOC08_DELIVERY_NOTES.COMPANY_CODE_SYS01,DOC08_DELIVERY_NOTES.DOC_TYPE,DOC08_DELIVERY_NOTES.DOC_YEAR,DOC08_DELIVERY_NOTES.DOC_NUMBER) " + " in (select DOC10_OUT_DELIVERY_NOTE_ITEMS.COMPANY_CODE_SYS01,DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_TYPE,DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_YEAR,DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_NUMBER " + " from DOC10_OUT_DELIVERY_NOTE_ITEMS where " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.COMPANY_CODE_SYS01=? and " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_TYPE_DOC01=? and " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_YEAR_DOC01=? and " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_NUMBER_DOC01=? "; DetailSaleDocVO docVO = (DetailSaleDocVO) pars.getOtherGridParams().get(ApplicationConsts.SALE_DOC_VO); // invoice document... if (docVO.getDocNumberDOC01() == null) sql += " and DOC10_OUT_DELIVERY_NOTE_ITEMS.QTY-DOC10_OUT_DELIVERY_NOTE_ITEMS.INVOICE_QTY>0)"; else sql += ")"; Map attribute2dbField = new HashMap(); attribute2dbField.put("companyCodeSys01DOC08", "DOC08_DELIVERY_NOTES.COMPANY_CODE_SYS01"); attribute2dbField.put("docTypeDOC08", "DOC08_DELIVERY_NOTES.DOC_TYPE"); attribute2dbField.put("docYearDOC08", "DOC08_DELIVERY_NOTES.DOC_YEAR"); attribute2dbField.put("docNumberDOC08", "DOC08_DELIVERY_NOTES.DOC_NUMBER"); attribute2dbField.put("docDateDOC08", "DOC08_DELIVERY_NOTES.DOC_DATE"); attribute2dbField.put( "destinationCodeReg18DOC08", "DOC08_DELIVERY_NOTES.DESTINATION_CODE_REG18"); attribute2dbField.put("descriptionDOC08", "DOC08_DELIVERY_NOTES.DESCRIPTION"); attribute2dbField.put("docSequenceDOC08", "DOC08_DELIVERY_NOTES.DOC_SEQUENCE"); ArrayList values = new ArrayList(); values.add(ApplicationConsts.OUT_DELIVERY_NOTE_DOC_TYPE); values.add(ApplicationConsts.CLOSED); values.add(docVO.getCompanyCodeSys01DOC01()); values.add(docVO.getDocTypeDoc01DOC01()); values.add(docVO.getDocYearDoc01DOC01()); values.add(docVO.getDocNumberDoc01DOC01()); // read from DOC08 table... Response res = QueryUtil.getQuery( conn, new UserSessionParameters(username), sql, values, attribute2dbField, OutDeliveryNotesVO.class, "Y", "N", null, pars, true); if (res.isError()) throw new Exception(res.getErrorMessage()); // check if the invoice document has been already created and there exists delivery notes // linked to it... if (docVO.getDocNumberDOC01() != null) { pstmt = conn.prepareStatement( "select DOC08_DELIVERY_NOTES.DOC_NUMBER from DOC08_DELIVERY_NOTES where " + "DOC08_DELIVERY_NOTES.COMPANY_CODE_SYS01 in (" + companies + ") and " + "DOC08_DELIVERY_NOTES.ENABLED='Y' and " + "DOC08_DELIVERY_NOTES.DOC_TYPE=? and " + "DOC08_DELIVERY_NOTES.DOC_STATE=? and " + "(DOC08_DELIVERY_NOTES.COMPANY_CODE_SYS01,DOC08_DELIVERY_NOTES.DOC_TYPE,DOC08_DELIVERY_NOTES.DOC_YEAR,DOC08_DELIVERY_NOTES.DOC_NUMBER) " + " in (select DOC10_OUT_DELIVERY_NOTE_ITEMS.COMPANY_CODE_SYS01,DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_TYPE,DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_YEAR,DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_NUMBER " + " from DOC10_OUT_DELIVERY_NOTE_ITEMS,DOC02_SELLING_ITEMS where " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.COMPANY_CODE_SYS01=? and " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_TYPE_DOC01=? and " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_YEAR_DOC01=? and " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.DOC_NUMBER_DOC01=? and " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.COMPANY_CODE_SYS01=DOC02_SELLING_ITEMS.COMPANY_CODE_SYS01 and " + " DOC02_SELLING_ITEMS.DOC_TYPE=? and " + " DOC02_SELLING_ITEMS.DOC_YEAR=? and " + " DOC02_SELLING_ITEMS.DOC_NUMBER=? and " + " DOC10_OUT_DELIVERY_NOTE_ITEMS.ITEM_CODE_ITM01=DOC02_SELLING_ITEMS.ITEM_CODE_ITM01)"); pstmt.setString(1, ApplicationConsts.OUT_DELIVERY_NOTE_DOC_TYPE); pstmt.setString(2, ApplicationConsts.CLOSED); pstmt.setString(3, docVO.getCompanyCodeSys01DOC01()); pstmt.setString(4, docVO.getDocTypeDoc01DOC01()); pstmt.setBigDecimal(5, docVO.getDocYearDoc01DOC01()); pstmt.setBigDecimal(6, docVO.getDocNumberDoc01DOC01()); pstmt.setString(7, docVO.getDocTypeDOC01()); pstmt.setBigDecimal(8, docVO.getDocYearDOC01()); pstmt.setBigDecimal(9, docVO.getDocNumberDOC01()); HashSet docNumberDOC08s = new HashSet(); ResultSet rset = pstmt.executeQuery(); while (rset.next()) docNumberDOC08s.add(rset.getBigDecimal(1)); rset.close(); java.util.List rows = ((VOListResponse) res).getRows(); OutDeliveryNotesVO vo = null; for (int i = 0; i < rows.size(); i++) { vo = (OutDeliveryNotesVO) rows.get(i); if (docNumberDOC08s.contains(vo.getDocNumberDOC08())) vo.setSelected(Boolean.TRUE); } } Response answer = res; 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 out delivery notes list, related to the specified sale document", 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) { } } }
/** Business logic to execute. */ public final Response executeCommand( Object inputPar, UserSessionParameters userSessionPars, HttpServletRequest request, HttpServletResponse response, HttpSession userSession, ServletContext context) { String serverLanguageId = ((JAIOUserSessionParameters) userSessionPars).getServerLanguageId(); Connection conn = null; try { conn = ConnectionManager.getConnection(context); // fires the GenericEvent.CONNECTION_CREATED event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.CONNECTION_CREATED, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, null)); String sql = "select SCH01_EMPLOYEES.COMPANY_CODE_SYS01,SCH01_EMPLOYEES.PROGRESSIVE_REG04,SCH01_EMPLOYEES.EMPLOYEE_CODE," + "REG07_TASKS.TASK_CODE,REG04_SUBJECTS.NAME_1,REG04_SUBJECTS.NAME_2,SYS10_TRANSLATIONS.DESCRIPTION,SCH01_EMPLOYEES.PHONE_NUMBER,SCH01_EMPLOYEES.OFFICE " + "from SCH01_EMPLOYEES,SYS10_TRANSLATIONS,REG07_TASKS,REG04_SUBJECTS where " + "SCH01_EMPLOYEES.COMPANY_CODE_SYS01=REG07_TASKS.COMPANY_CODE_SYS01 and " + "SCH01_EMPLOYEES.TASK_CODE_REG07=REG07_TASKS.TASK_CODE and " + "REG07_TASKS.PROGRESSIVE_SYS10=SYS10_TRANSLATIONS.PROGRESSIVE and " + "SYS10_TRANSLATIONS.LANGUAGE_CODE=? and " + "SCH01_EMPLOYEES.COMPANY_CODE_SYS01=REG04_SUBJECTS.COMPANY_CODE_SYS01 and " + "SCH01_EMPLOYEES.PROGRESSIVE_REG04=REG04_SUBJECTS.PROGRESSIVE and " + "SCH01_EMPLOYEES.ENABLED='Y'"; GridParams gridParams = (GridParams) inputPar; if (gridParams.getOtherGridParams().get(ApplicationConsts.COMPANY_CODE_SYS01) != null) { sql += " and SCH01_EMPLOYEES.COMPANY_CODE_SYS01='" + gridParams.getOtherGridParams().get(ApplicationConsts.COMPANY_CODE_SYS01) + "'"; } else { // retrieve companies list... ArrayList companiesList = ((JAIOUserSessionParameters) userSessionPars).getCompanyBa().getCompaniesList("SCH01"); String companies = ""; for (int i = 0; i < companiesList.size(); i++) companies += "'" + companiesList.get(i).toString() + "',"; companies = companies.substring(0, companies.length() - 1); sql += " and SCH01_EMPLOYEES.COMPANY_CODE_SYS01 in (" + companies + ")"; } Map attribute2dbField = new HashMap(); attribute2dbField.put("companyCodeSys01SCH01", "SCH01_EMPLOYEES.COMPANY_CODE_SYS01"); attribute2dbField.put("progressiveReg04SCH01", "SCH01_EMPLOYEES.PROGRESSIVE_REG04"); attribute2dbField.put("name_1REG04", "REG04_SUBJECTS.NAME_1"); attribute2dbField.put("name_2REG04", "REG04_SUBJECTS.NAME_2"); attribute2dbField.put("phoneNumberSCH01", "SCH01_EMPLOYEES.PHONE_NUMBER"); attribute2dbField.put("officeSCH01", "SCH01_EMPLOYEES.OFFICE"); attribute2dbField.put("employeeCodeSCH01", "SCH01_EMPLOYEES.EMPLOYEE_CODE"); attribute2dbField.put("descriptionSYS10", "SYS10_TRANSLATIONS.DESCRIPTION"); attribute2dbField.put("taskCodeReg07SCH01", "REG07_TASKS.TASK_CODE"); ArrayList values = new ArrayList(); values.add(serverLanguageId); if (gridParams.getOtherGridParams().get(ApplicationConsts.TASK_CODE_REG07) != null) { sql += " and SCH01_EMPLOYEES.TASK_CODE_REG07='" + gridParams.getOtherGridParams().get(ApplicationConsts.TASK_CODE_REG07) + "'"; } // read from SCH01 table... Response answer = QueryUtil.getQuery( conn, userSessionPars, sql, values, attribute2dbField, GridEmployeeVO.class, "Y", "N", context, gridParams, 50, true); // fires the GenericEvent.BEFORE_COMMIT event... EventsManager.getInstance() .processEvent( new GenericEvent( this, getRequestName(), GenericEvent.BEFORE_COMMIT, (JAIOUserSessionParameters) userSessionPars, request, response, userSession, context, conn, inputPar, answer)); return answer; } catch (Throwable ex) { Logger.error( userSessionPars.getUsername(), this.getClass().getName(), "executeCommand", "Error while fetching employees list", ex); return new ErrorResponse(ex.getMessage()); } finally { try { ConnectionManager.releaseConnection(conn, context); } catch (Exception ex1) { } } }
/** Business logic to execute. */ public VOListResponse loadLedger( GridParams gridParams, String serverLanguageId, String username, ArrayList companiesList, ArrayList customizedFields) throws Throwable { Connection conn = null; try { if (this.conn == null) conn = getConn(); else conn = this.conn; // retrieve companies list... String companies = ""; if (gridParams.getOtherGridParams().get(ApplicationConsts.COMPANY_CODE_SYS01) != null) { companies = "'" + gridParams.getOtherGridParams().get(ApplicationConsts.COMPANY_CODE_SYS01) + "'"; } else { for (int i = 0; i < companiesList.size(); i++) companies += "'" + companiesList.get(i).toString() + "',"; companies = companies.substring(0, companies.length() - 1); } String sql = "select ACC01_LEDGER.COMPANY_CODE_SYS01,ACC01_LEDGER.LEDGER_CODE,ACC01_LEDGER.PROGRESSIVE_SYS10,SYS10_TRANSLATIONS.DESCRIPTION,ACC01_LEDGER.ENABLED,ACC01_LEDGER.ACCOUNT_TYPE from ACC01_LEDGER,SYS10_TRANSLATIONS where " + "ACC01_LEDGER.PROGRESSIVE_SYS10=SYS10_TRANSLATIONS.PROGRESSIVE and " + "SYS10_TRANSLATIONS.LANGUAGE_CODE=? and " + "ACC01_LEDGER.ENABLED='Y' and ACC01_LEDGER.COMPANY_CODE_SYS01 in (" + companies + ")"; Map attribute2dbField = new HashMap(); attribute2dbField.put("ledgerCodeACC01", "ACC01_LEDGER.LEDGER_CODE"); attribute2dbField.put("descriptionSYS10", "SYS10_TRANSLATIONS.DESCRIPTION"); attribute2dbField.put("progressiveSys10ACC01", "ACC01_LEDGER.PROGRESSIVE_SYS10"); attribute2dbField.put("enabledACC01", "ACC01_LEDGER.ENABLED"); attribute2dbField.put("companyCodeSys01ACC01", "ACC01_LEDGER.COMPANY_CODE_SYS01"); attribute2dbField.put("accountTypeACC01", "ACC01_LEDGER.ACCOUNT_TYPE"); ArrayList values = new ArrayList(); values.add(serverLanguageId); // read from ACC01 table... Response answer = CustomizeQueryUtil.getQuery( conn, new UserSessionParameters(username), sql, values, attribute2dbField, LedgerVO.class, "Y", "N", null, gridParams, 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 the ledger", ex); throw new Exception(ex.getMessage()); } finally { try { if (this.conn == null && conn != null) { // close only local connection conn.commit(); conn.close(); } } catch (Exception exx) { } } }