/** * Is standard Period closed for all Document Base Types * * @param ctx context for AD_Client * @param DateAcct accounting date * @return true if closed */ public static boolean isClosed(Ctx ctx, Timestamp DateAcct) { if (DateAcct == null) return false; MAcctSchema as = MClient.get(ctx, ctx.getAD_Client_ID()).getAcctSchema(); if (as.isAutoPeriodControl()) return !as.isAutoPeriodControlOpen(DateAcct); // Get all Calendars in line with Organizations MClientInfo cInfo = MClientInfo.get(ctx, ctx.getAD_Client_ID(), null); ArrayList<Integer> calendars = new ArrayList<Integer>(); MOrg[] orgs = MOrg.getOfClient(cInfo); for (MOrg org : orgs) { MOrgInfo info = MOrgInfo.get(ctx, org.getAD_Org_ID(), null); int C_Calendar_ID = info.getC_Calendar_ID(); if (C_Calendar_ID == 0) C_Calendar_ID = cInfo.getC_Calendar_ID(); if (!calendars.contains(C_Calendar_ID)) calendars.add(C_Calendar_ID); } // Should not happen if (calendars.size() == 0) throw new IllegalArgumentException("@NotFound@ @C_Calendar_ID@"); // For all Calendars get Periods for (int i = 0; i < calendars.size(); i++) { int C_Calendar_ID = calendars.get(i); MPeriod period = MPeriod.getOfCalendar(ctx, C_Calendar_ID, DateAcct); // Period not found if (period == null) return false; if (!period.isClosed()) return false; } return true; // closed } // isClosed
/** * Se encarga de desactivar las paginas asociadas. Esto se hace cuando se desactiva el Folleto. * * @param ctx contexto * @param WindowNo número de la ventana * @param mTab pestaña de la ventana * @param mField campo al cual se le aplica el callout * @param value valor que se está introdución * @param oldValue valor que había anteriormente * @return String mensaje de error si hubo un problema, nulo si no. * @throws SQLException */ public String deactivateBrochure( Ctx ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) throws SQLException { Integer folleto; folleto = ctx.getContextAsInt(WindowNo, "XX_VMA_Brochure_ID"); // Se comprueba que el folleto existe if (folleto != 0) { // Se verifica que se haya seleccionado desactivar el folleto if (ctx.getContext(WindowNo, "IsActive").equals("N")) { XX_VME_GeneralFunctions.processBrochure(folleto, false, true); } // if active else { XX_VME_GeneralFunctions.processBrochure(folleto, true, true); } } // folleto return ""; } // fin deactivateBrochure
/** * Set Environment * * @param prop * @param WindowNo included Window variables */ public void setEnvironment(Ctx prop, int WindowNo) { if (prop == null) prop = Env.getCtx(); m_ctx = new HashMap<String, Object>(); // Convert properties to HashMap Iterator<String> it = prop.keySet().iterator(); while (it.hasNext()) { String key = it.next(); // filter if (key == null || key.length() == 0 || key.startsWith("P") // Preferences || (key.indexOf("|") != -1 && !key.startsWith(String.valueOf(WindowNo))) // other Window Settings ) continue; String value = prop.getContext(key); setEnvironment(key, value); } } // setEnvironment
/** * Get User Goals * * @param ctx context * @param AD_User_ID user * @return array of goals */ public static MGoal[] getUserGoals(Ctx ctx) { int AD_Role_ID = ctx.getAD_Role_ID(); MRole role = MRole.get(ctx, AD_Role_ID); int AD_User_ID = ctx.getAD_User_ID(); if (AD_User_ID < 0) return getTestGoals(ctx); ArrayList<MGoal> list = new ArrayList<MGoal>(); String sql = "SELECT * FROM PA_Goal g " + "WHERE IsActive='Y'" + " AND AD_Client_ID=?" // #1 + " AND ("; if (!role.isWebStoreRole()) sql += " (AD_User_ID IS NULL AND AD_Role_ID IS NULL) OR "; sql += " AD_User_ID=?" // #2 + " OR EXISTS (SELECT * FROM AD_User_Roles ur " + "WHERE ?=ur.AD_User_ID AND g.AD_Role_ID=ur.AD_Role_ID AND ur.IsActive='Y')) " + "ORDER BY SeqNo"; PreparedStatement pstmt = null; ResultSet rs = null; try { pstmt = DB.prepareStatement(sql, (Trx) null); pstmt.setInt(1, ctx.getAD_Client_ID()); pstmt.setInt(2, AD_User_ID); pstmt.setInt(3, AD_User_ID); rs = pstmt.executeQuery(); while (rs.next()) { MGoal goal = new MGoal(ctx, rs, null); goal.updateGoal(false); list.add(goal); } } catch (Exception e) { s_log.log(Level.SEVERE, sql, e); } finally { DB.closeResultSet(rs); DB.closeStatement(pstmt); } MGoal[] retValue = new MGoal[list.size()]; list.toArray(retValue); return retValue; } // getUserGoals
/** * Initialize Panel * * @param WindowNo window * @param frame frame */ public void init(int WindowNo, FormFrame frame) { m_WindowNo = WindowNo; m_frame = frame; log.info( "WinNo=" + m_WindowNo + " - AD_Client_ID=" + m_AD_Client_ID + ", AD_Org_ID=" + m_AD_Org_ID + ", By=" + m_by); Env.getCtx().setIsSOTrx(m_WindowNo, false); Ctx aux = Env.getCtx(); int header_id = aux.getContextAsInt("#XX_VMR_PRINTLABEL_DiscountRequest_ID"); printer_flat = aux.getContextAsInt("#XX_VMR_PRINTLABEL_Hanging"); printer_glued = aux.getContextAsInt("#XX_VMR_PRINTLABEL_Glued"); System.out.println(printer_glued + " " + printer_flat); // Remove the no longer necessary items on the context aux.remove("#XX_VMR_PRINTLABEL_DiscountRequest_ID"); aux.remove("#XX_VMR_PRINTLABEL_Hanging"); aux.remove("#XX_VMR_PRINTLABEL_Glued"); // Creates the Header with the necessary information header = new X_XX_VMR_DiscountRequest(aux, header_id, null); try { // UI jbInit(); dynInit(); frame.getContentPane().add(mainPanel, BorderLayout.CENTER); frame.getContentPane().add(statusBar, BorderLayout.SOUTH); } catch (Exception e) { log.log(Level.SEVERE, "", e); } } // init
public String priceBandBeco( Ctx ctx, int WindowNo, GridTab mTab, GridField mField, Object value, Object oldValue) { System.out.println("pricebandBeco"); PreparedStatement pstmtC = null; ResultSet rsC = null; try { MVMRPOLineRefProv lineRefProv = new MVMRPOLineRefProv(ctx, (Integer) mTab.getValue("XX_VMR_PO_LineRefProv_ID"), null); MOrder order = new MOrder(ctx, lineRefProv.getC_Order_ID(), null); // String conceptoProducto = ctx.getContext(WindowNo, "XX_ConceptValue_ID"); Integer conceptoProducto = lineRefProv.getXX_VME_ConceptValue_ID(); // String seccionProducto = ctx.getContext(WindowNo,"XX_SECTION_ID"); Integer seccionProducto = lineRefProv.getXX_VMR_Section_ID(); // String lineaProducto = ctx.getContext(WindowNo,"XX_LINE_ID"); Integer lineaProducto = lineRefProv.getXX_VMR_Line_ID(); // String departamentoProducto = ctx.getContext(WindowNo,"XX_VMR_DEPARTMENT_ID"); Integer departamentoProducto = order.getXX_VMR_DEPARTMENT_ID(); /** Agregado por Javier Pino, para que funcione en distribucion */ if (mTab.getValue("M_Product_ID") != null) { MProduct producto = new MProduct(ctx, (Integer) mTab.getValue("M_Product_ID"), null); conceptoProducto = producto.getXX_VME_ConceptValue_ID(); departamentoProducto = producto.getXX_VMR_Department_ID(); seccionProducto = producto.getXX_VMR_Section_ID(); lineaProducto = producto.getXX_VMR_Line_ID(); } /** Fin agregado Javier Pino */ String conceptoComparar = null; String SQLA = "select P.xx_comparisonvalue_id " + "from xx_vme_priceband P , xx_vme_conceptvalue C " + "where C.XX_VME_ConceptValue_ID = " + conceptoProducto + " and " + // "where C.XX_VME_ConceptValue_ID = 1000002 and " + // "where C.XX_VME_ConceptValue_ID = 1000002 and " + "C.XX_VME_ConceptValue_id = P.xx_conceptvalue_id"; // System.out.println("sqla "+SQLA); PreparedStatement pstmtA = DB.prepareStatement(SQLA, null); ResultSet rsA = pstmtA.executeQuery(); if (rsA.next()) { conceptoComparar = rsA.getString("xx_comparisonvalue_id"); // conceptoComparar="1000002"; } rsA.close(); pstmtA.close(); Double promedioSeccion = 0.0; Double promedioLinea = 0.0; Double promedioDepartamento = 0.0; String SQL = "SELECT AVG(AUX.A) valor FROM " + "(SELECT MAX(P.XX_SALEPRICE) A, P.M_PRODUCT_ID " + "FROM XX_VMR_PRICECONSECUTIVE P, M_PRODUCT M " + "WHERE "; if (conceptoComparar == null) { SQL += "M.XX_VME_ConceptValue_ID IS NULL and "; } else { SQL += "M.XX_VME_ConceptValue_ID=" + conceptoComparar + " and "; } SQL += "M.XX_VMR_Section_ID = " + seccionProducto + " " + // "P.m_product_id <> "+ctx.getContext(WindowNo, "M_Product_ID")+" and "+ "AND P.M_PRODUCT_ID = M.M_PRODUCT_ID " + "group by P.M_PRODUCT_ID) AUX"; PreparedStatement pstmt = DB.prepareStatement(SQL, null); ResultSet rs = pstmt.executeQuery(); // System.out.println("sql "+SQL); if (rs.next()) { promedioSeccion = rs.getDouble("valor"); } rs.close(); pstmt.close(); if (promedioSeccion == 0.0) { String SQL2 = "SELECT AVG(AUX.A) valor FROM " + "(SELECT MAX(P.XX_SALEPRICE) A, P.M_PRODUCT_ID " + "FROM XX_VMR_PRICECONSECUTIVE P, M_PRODUCT M " + "WHERE "; if (conceptoComparar == null) { SQL2 += "M.XX_VME_ConceptValue_ID IS NULL and "; } else { SQL2 += "M.XX_VME_ConceptValue_ID=" + conceptoComparar + " and "; } SQL2 += "M.XX_VMR_Line_ID = " + lineaProducto + " " + // "P.m_product_id <> "+ctx.getContext(WindowNo, "M_Product_ID")+" and "+ "AND P.M_PRODUCT_ID = M.M_PRODUCT_ID " + "group by P.M_PRODUCT_ID) AUX"; PreparedStatement pstmt2 = DB.prepareStatement(SQL2, null); ResultSet rs2 = pstmt2.executeQuery(); // System.out.println("sql2"+SQL2); if (rs2.next()) { promedioLinea = rs2.getDouble("valor"); } rs2.close(); pstmt2.close(); if (promedioLinea == 0.0) { String SQL3 = "SELECT AVG(AUX.A) valor FROM " + "(SELECT MAX(P.XX_SALEPRICE) A, P.M_PRODUCT_ID " + "FROM XX_VMR_PRICECONSECUTIVE P, m_product M " + "WHERE "; if (conceptoComparar == null) { SQL2 += "M.XX_VME_ConceptValue_ID IS NULL and "; } else { SQL2 += "M.XX_VME_ConceptValue_ID=" + conceptoComparar + " and "; } SQL3 += "M.XX_VMR_Department_ID = " + departamentoProducto + " " + // "P.m_product_id <> "+ctx.getContext(WindowNo, "M_Product_ID")+" and // "+ "AND P.M_PRODUCT_ID = M.M_PRODUCT_ID " + "group by P.M_PRODUCT_ID) AUX"; PreparedStatement pstmt3 = DB.prepareStatement(SQL3, null); ResultSet rs3 = pstmt3.executeQuery(); // System.out.println("TRES"); if (rs3.next()) { promedioDepartamento = rs3.getDouble("valor"); } rs3.close(); pstmt3.close(); } } Double promedio = promedioSeccion + promedioLinea + promedioDepartamento; System.out.println("Promedio -> " + promedio); // Si no tiene precio en depart, linea y seccion if (promedio == 0.0) { return ""; } String SQLC = "SELECT * " + "FROM xx_vme_priceband P , xx_vme_conceptvalue C " + "WHERE C.xx_vme_conceptvalue_id = " + conceptoProducto + " AND " + "C.xx_vme_conceptvalue_id = P.xx_conceptvalue_id"; pstmtC = DB.prepareStatement(SQLC, null); rsC = pstmtC.executeQuery(); System.out.println(SQLC); if (rsC.next()) { Double precioProducto = new Double(ctx.getContext(WindowNo, "XX_SalePricePlusTax")); Double low = rsC.getDouble("xx_lowrank"); Double high = rsC.getDouble("xx_highrank"); // if((low-rsC.getDouble("xx_percentagevalue")) < 0 ) // { // low = new Double(0); // } Double percentage = rsC.getDouble("xx_percentagevalue"); Double incrementaBanda = promedio * (percentage / 100); String operador = rsC.getString("xx_operating"); DB.closeStatement(pstmtC); DB.closeResultSet(rsC); // Menor que 10000012 // Mayor que 10000013 C_OrderCallout precio = new C_OrderCallout(); System.out.println(operador); if (operador.equals("Minor")) { // Double bandaMayor = (promedio - promedio*(low/100))+incrementaBanda; // Double bandaMenor = (promedio - promedio*(high/(100)))-incrementaBanda; BigDecimal doubleAux = new BigDecimal((promedio - promedio * (low / 100)) + incrementaBanda); doubleAux = doubleAux.setScale(2, BigDecimal.ROUND_HALF_UP); Double bandaMayor = doubleAux.doubleValue(); doubleAux = new BigDecimal((promedio - promedio * (high / (100))) - incrementaBanda); doubleAux = doubleAux.setScale(2, BigDecimal.ROUND_HALF_UP); Double bandaMenor = doubleAux.doubleValue(); if ((precioProducto <= bandaMayor) && (precioProducto >= bandaMenor)) { System.out.println(1); mTab.setValue("XX_CanSetDefinitive", "Y"); return ""; } else { // Si el precio no esta entre las bandas entonces no lo dejo colocar el precio como // definitivo mTab.setValue("XX_CanSetDefinitive", "N"); return "Advertencia, el precio debe estar entre las bandas " + bandaMenor + " y " + bandaMayor + " Precio BECO bandas " + precio.priceBeco(new BigDecimal(bandaMenor)) + " y " + PrecioBecoRebaja(new BigDecimal(bandaMayor)); } } if (operador.equals("higher")) { // Double bandaMayor = (promedio + promedio*(high/(100))+incrementaBanda); // Double bandaMenor = (promedio + promedio*(low/100))-incrementaBanda; BigDecimal doubleAux = new BigDecimal((promedio + promedio * (high / (100)) + incrementaBanda)); doubleAux = doubleAux.setScale(2, BigDecimal.ROUND_HALF_UP); Double bandaMayor = doubleAux.doubleValue(); doubleAux = new BigDecimal((promedio + promedio * (low / 100)) - incrementaBanda); doubleAux = doubleAux.setScale(2, BigDecimal.ROUND_HALF_UP); Double bandaMenor = doubleAux.doubleValue(); if ((precioProducto <= bandaMayor) && (precioProducto >= bandaMenor)) { System.out.println(2); mTab.setValue("XX_CanSetDefinitive", "Y"); return ""; } else { // Si el precio no esta entre las bandas entonces no lo dejo colocar el precio como // definitivo mTab.setValue("XX_CanSetDefinitive", "N"); String message = "Advertencia, el precio deberia estar entre las bandas " + "" + bandaMenor + " y " + bandaMayor + "Precio BECO bandas"; // +precio.priceBeco(new BigDecimal(bandaMenor))+" y "; // + PrecioBecoRebaja(new BigDecimal(bandaMayor)); return message; } } } return ""; } catch (Exception e) { System.out.println("Error an la base de datos " + e.getMessage()); } finally { DB.closeStatement(pstmtC); DB.closeResultSet(rsC); } return ""; }
private void tableInit() { m_sql = new StringBuffer(); m_sql2 = new StringBuffer(); // Mostrar todos los ACC y AAP if (tableInit_option == 0) { m_sql.append( "select cb.value ||'-'|| cb.name vendor, co.name country, extract(month from cn.CREATED) month," + " extract (year from cn.CREATED) year, NVL(round(sum(cn.XX_UNITPURCHASEPRICEBS),2),0) total," + " dep.value || '-' || dep.name department, cat.value || '-' || cat.name category," + " o.XX_VMR_DEPARTMENT_ID, o.XX_VMR_CATEGORY_ID, o.C_BPARTNER_ID vendorID" + " from XX_CREDITNOTIFYRETURN cn, C_BPARTNER cb, C_COUNTRY co, C_ORDER o, XX_VMR_DEPARTMENT dep, XX_VMR_CATEGORY cat" + " where o.C_BPARTNER_ID=cb.C_BPARTNER_ID and co.C_COUNTRY_ID=o.C_COUNTRY_ID and" + " cn.XX_NOTIFICATIONTYPE='ACC'and cn.C_ORDER_ID=o.C_ORDER_ID and" + " dep.XX_VMR_DEPARTMENT_ID=o.XX_VMR_DEPARTMENT_ID and o.XX_VMR_CATEGORY_ID=cat.XX_VMR_CATEGORY_ID and o.AD_CLIENT_ID=" + ctx.getAD_Client_ID() + " AND o.ISSOTRX = 'N'"); m_groupBy = " group by cb.value ||'-'|| cb.name, co.name, extract(month from cn.CREATED), extract (year from cn.CREATED), dep.value || '-' || dep.name," + " cat.value || '-' || cat.name,o.XX_VMR_DEPARTMENT_ID, o.XX_VMR_CATEGORY_ID, o.C_BPARTNER_ID"; m_sql2.append( "select cb.value ||'-'|| cb.name vendor, co.name country, det.XX_MONTH month," + " det.XX_YEAR year, round(cn.XX_UNITPURCHASEPRICEBS,2) total, o.C_BPARTNER_ID vendorID," + " o.XX_VMR_DEPARTMENT_ID, o.XX_VMR_CATEGORY_ID, cn.XX_CREDITNOTIFYRETURN_ID creditNotID, cn.XX_NOTIFICATIONTYPE tipo" + " from XX_CREDITNOTIFYRETURN cn, C_BPARTNER cb, C_COUNTRY co, C_ORDER o, XX_VMR_DEPARTMENT dep, XX_VMR_CATEGORY cat, XX_VCN_DETAILADVICE det" + " where o.C_BPARTNER_ID=cb.C_BPARTNER_ID and co.C_COUNTRY_ID=o.C_COUNTRY_ID and cn.XX_NOTIFICATIONTYPE<>'ACC'" + " and cn.C_ORDER_ID=o.C_ORDER_ID and dep.XX_VMR_DEPARTMENT_ID=o.XX_VMR_DEPARTMENT_ID" + " and o.XX_VMR_CATEGORY_ID=cat.XX_VMR_CATEGORY_ID and det.XX_CREDITNOTIFYRETURN_ID=cn.XX_CREDITNOTIFYRETURN_ID and o.AD_CLIENT_ID=" + ctx.getAD_Client_ID() + " AND o.ISSOTRX = 'N'"); m_groupBy2 = " group by cb.value ||'-'|| cb.name, co.name, det.XX_MONTH, det.XX_YEAR, cn.XX_UNITPURCHASEPRICEBS," + " o.XX_VMR_DEPARTMENT_ID, o.XX_VMR_CATEGORY_ID, o.C_BPARTNER_ID, cn.XX_CREDITNOTIFYRETURN_ID, cn.XX_NOTIFICATIONTYPE"; // Búsqueda por mes if (monthCombo.getSelectedIndex() != 0 && monthCombo.getSelectedItem() != null) { m_sql .append(" AND ") .append("extract(month from cn.created)=") .append(monthCombo.getSelectedIndex()); m_sql2.append(" AND ").append("det.XX_MONTH=").append(monthCombo.getSelectedIndex()); } // Búsqueda por año if (yearField.getValue() != null) { m_sql .append(" AND ") .append("extract(year from cn.created)=") .append(((BigDecimal) yearField.getValue()).intValue()); m_sql2 .append(" AND ") .append("det.XX_YEAR=") .append(((BigDecimal) yearField.getValue()).intValue()); } // Búsqueda por proveedor if (comboBPartner.getSelectedIndex() != 0 && comboBPartner.getSelectedItem() != null) { if (((KeyNamePair) comboBPartner.getSelectedItem()).getKey() != 0) { int clave_vendor = ((KeyNamePair) comboBPartner.getSelectedItem()).getKey(); m_sql.append(" AND ").append("o.C_BPartner_ID=").append(clave_vendor); m_sql2.append(" AND ").append("o.C_BPartner_ID=").append(clave_vendor); } } // agrego la categoria if (categoryCombo.getValue() != null) { KeyNamePair cat = (KeyNamePair) categoryCombo.getValue(); if (cat.getKey() != -1) { m_sql.append(" AND o.XX_VMR_CATEGORY_ID = ").append(cat.getKey()).append(" "); m_sql2.append(" AND o.XX_VMR_CATEGORY_ID = ").append(cat.getKey()).append(" "); } } // agrego el departamento al query if (departmentCombo.getValue() != null) { KeyNamePair dep = (KeyNamePair) departmentCombo.getValue(); if (dep.getKey() != -1) { m_sql.append(" AND o.XX_VMR_DEPARTMENT_ID = ").append(dep.getKey()).append(" "); m_sql2.append(" AND o.XX_VMR_DEPARTMENT_ID = ").append(dep.getKey()).append(" "); } } } String SQL = m_sql.toString() + m_groupBy; int i = 0; xTableACC.setRowCount(i); PreparedStatement pstmt = null; ResultSet rs = null; try { pstmt = DB.prepareStatement(SQL, null); rs = pstmt.executeQuery(); while (rs.next()) { xTableACC.setRowCount(i + 1); // Proveedor xTableACC.setValueAt(rs.getString("vendor"), i, 0); // 1 // País xTableACC.setValueAt(rs.getString("country"), i, 1); // Departamento xTableACC.setValueAt(rs.getString("department"), i, 2); // Categoría xTableACC.setValueAt(rs.getString("category"), i, 3); // Mes xTableACC.setValueAt(rs.getInt("month"), i, 4); // Año xTableACC.setValueAt(rs.getInt("year"), i, 5); // Compras hechas xTableACC.setValueAt(rs.getBigDecimal("total"), i, 6); // Se calculan los avisos cerrados(CER) de el mismo mes, año, proveedor, depto y categoría String SQL2 = "select nvl(round(sum(cn.XX_AMOUNT),2),0) totalDesc" + " from XX_CREDITNOTIFYRETURN cn, C_BPARTNER cb, C_COUNTRY co, C_ORDER o, XX_VMR_DEPARTMENT dep, XX_VMR_CATEGORY cat" + " where o.C_BPARTNER_ID=cb.C_BPARTNER_ID and co.C_COUNTRY_ID=o.C_COUNTRY_ID" + " and cn.XX_NOTIFICATIONTYPE='ACC' and cn.C_ORDER_ID=o.C_ORDER_ID" + " and dep.XX_VMR_DEPARTMENT_ID=o.XX_VMR_DEPARTMENT_ID and o.XX_VMR_CATEGORY_ID=cat.XX_VMR_CATEGORY_ID" + " and XX_STATUS='CER' and extract(month from cn.CREATED)=" + rs.getInt("month") + " and extract (year from cn.CREATED)=" + rs.getInt("year") + " and o.C_BPARTNER_ID=" + rs.getInt("vendorID") + " and o.AD_CLIENT_ID=" + ctx.getAD_Client_ID() + " AND o.ISSOTRX = 'N'"; PreparedStatement pstmt2 = null; ResultSet rs2 = null; try { pstmt2 = DB.prepareStatement(SQL2, null); rs2 = pstmt2.executeQuery(); if (rs2.next()) xTableACC.setValueAt(rs2.getBigDecimal("totalDesc"), i, 7); else xTableACC.setValueAt(0, i, 7); } catch (SQLException e) { System.out.print(e.getMessage()); } finally { DB.closeResultSet(rs2); DB.closeStatement(pstmt2); } // Se calculan los avisos pendientes(ACT) de el mismo mes, año, proveedor, depto y categoría String SQL3 = "select nvl(round(sum(cn.XX_AMOUNT),2),0) totalDesc" + " from XX_CREDITNOTIFYRETURN cn, C_BPARTNER cb, C_COUNTRY co, C_ORDER o, XX_VMR_DEPARTMENT dep, XX_VMR_CATEGORY cat" + " where o.C_BPARTNER_ID=cb.C_BPARTNER_ID and co.C_COUNTRY_ID=o.C_COUNTRY_ID" + " and cn.XX_NOTIFICATIONTYPE='ACC' and cn.C_ORDER_ID=o.C_ORDER_ID" + " and dep.XX_VMR_DEPARTMENT_ID=o.XX_VMR_DEPARTMENT_ID and o.XX_VMR_CATEGORY_ID=cat.XX_VMR_CATEGORY_ID" + " and XX_STATUS='ACT' and extract(month from cn.CREATED)=" + rs.getInt("month") + " and extract (year from cn.CREATED)=" + rs.getInt("year") + " and o.C_BPARTNER_ID=" + rs.getInt("vendorID") + " and o.AD_CLIENT_ID=" + ctx.getAD_Client_ID() + " AND o.ISSOTRX = 'N'"; PreparedStatement pstmt3 = null; ResultSet rs3 = null; try { pstmt3 = DB.prepareStatement(SQL3, null); rs3 = pstmt3.executeQuery(); if (rs3.next()) xTableACC.setValueAt(rs3.getBigDecimal("totalDesc"), i, 8); else xTableACC.setValueAt(0, i, 8); } catch (SQLException e) { System.out.print(e.getMessage()); } finally { DB.closeResultSet(rs3); DB.closeStatement(pstmt3); } i++; } } catch (SQLException e) { e.getMessage(); } finally { DB.closeResultSet(rs); DB.closeStatement(pstmt); } String sqlAAP = m_sql2.toString() + m_groupBy2; i = 0; xTableAAP.setRowCount(i); pstmt = null; rs = null; try { pstmt = DB.prepareStatement(sqlAAP, null); rs = pstmt.executeQuery(); while (rs.next()) { xTableAAP.setRowCount(i + 1); // Proveedor xTableAAP.setValueAt( new KeyNamePair(rs.getInt("vendorID"), rs.getString("vendor")), i, 0); // 1 // País xTableAAP.setValueAt( new KeyNamePair(rs.getInt("creditNotID"), rs.getString("country")), i, 1); // Mes xTableAAP.setValueAt(rs.getInt("month"), i, 2); // Año xTableAAP.setValueAt(rs.getInt("year"), i, 3); // Tipo xTableAAP.setValueAt(rs.getString("tipo"), i, 4); // Compras hechas xTableAAP.setValueAt(rs.getBigDecimal("total"), i, 5); // Se calculan los avisos cerrados(CER) de el mismo mes, año, proveedor, depto y categoría String SQL2 = "select nvl(round(sum(cn.XX_AMOUNT),2),0) totalDesc" + " from XX_CREDITNOTIFYRETURN cn, C_BPARTNER cb, C_COUNTRY co, C_ORDER o, XX_VMR_DEPARTMENT dep, XX_VMR_CATEGORY cat" + " where o.C_BPARTNER_ID=cb.C_BPARTNER_ID and co.C_COUNTRY_ID=o.C_COUNTRY_ID" + " and cn.XX_NOTIFICATIONTYPE<>'ACC' and cn.C_ORDER_ID=o.C_ORDER_ID" + " and dep.XX_VMR_DEPARTMENT_ID=o.XX_VMR_DEPARTMENT_ID and o.XX_VMR_CATEGORY_ID=cat.XX_VMR_CATEGORY_ID" + " and XX_STATUS='CER' and cn.XX_CREDITNOTIFYRETURN_ID=" + rs.getInt("creditNotID") + " and o.C_BPARTNER_ID=" + rs.getInt("vendorID") + " and o.AD_CLIENT_ID=" + ctx.getAD_Client_ID() + " AND o.ISSOTRX = 'N'"; PreparedStatement pstmt2 = null; ResultSet rs2 = null; try { pstmt2 = DB.prepareStatement(SQL2, null); rs2 = pstmt2.executeQuery(); if (rs2.next()) xTableAAP.setValueAt(rs2.getBigDecimal("totalDesc"), i, 6); else xTableAAP.setValueAt(0, i, 6); } catch (SQLException e) { System.out.print(e.getMessage()); } finally { DB.closeResultSet(rs2); DB.closeStatement(pstmt2); } // Se calculan los avisos pendientes(ACT) de el mismo mes, año, proveedor, depto y categoría String SQL3 = "select nvl(round(sum(cn.XX_AMOUNT),2),0) totalDesc" + " from XX_CREDITNOTIFYRETURN cn, C_BPARTNER cb, C_COUNTRY co, C_ORDER o, XX_VMR_DEPARTMENT dep, XX_VMR_CATEGORY cat" + " where o.C_BPARTNER_ID=cb.C_BPARTNER_ID and co.C_COUNTRY_ID=o.C_COUNTRY_ID" + " and cn.XX_NOTIFICATIONTYPE<>'ACC' and cn.C_ORDER_ID=o.C_ORDER_ID" + " and dep.XX_VMR_DEPARTMENT_ID=o.XX_VMR_DEPARTMENT_ID and o.XX_VMR_CATEGORY_ID=cat.XX_VMR_CATEGORY_ID" + " and XX_STATUS='ACT' and cn.XX_CREDITNOTIFYRETURN_ID=" + rs.getInt("creditNotID") + " and o.C_BPARTNER_ID=" + rs.getInt("vendorID") + " and o.AD_CLIENT_ID=" + ctx.getAD_Client_ID() + " AND o.ISSOTRX = 'N'"; PreparedStatement pstmt3 = null; ResultSet rs3 = null; try { pstmt3 = DB.prepareStatement(SQL3, null); rs3 = pstmt3.executeQuery(); if (rs3.next()) xTableAAP.setValueAt(rs3.getBigDecimal("totalDesc"), i, 7); else xTableAAP.setValueAt(0, i, 7); } catch (SQLException e) { System.out.print(e.getMessage()); } finally { DB.closeResultSet(rs3); DB.closeStatement(pstmt3); } i++; } } catch (SQLException e) { e.getMessage(); } finally { DB.closeResultSet(rs); DB.closeStatement(pstmt); } } // tableInit