1 14 package org.compiere.model; 15 16 import java.util.*; 17 import java.sql.*; 18 import java.math.*; 19 20 import org.compiere.util.*; 21 22 28 public class UOM extends X_C_UOM 29 { 30 35 public UOM (Properties ctx, int C_UOM_ID) 36 { 37 super (ctx, C_UOM_ID); 38 } 40 45 public UOM (Properties ctx, ResultSet rs) 46 { 47 super (ctx, rs); 48 } 50 public String toString() 51 { 52 StringBuffer sb = new StringBuffer ("UOM["); 53 sb.append("ID=").append(getID()) 54 .append(", Name=").append(getName()); 55 return sb.toString(); 56 } 57 58 public BigDecimal round (BigDecimal qty) 59 { 60 return qty.setScale(getStdPrecision(), BigDecimal.ROUND_HALF_UP); 61 } 62 63 public boolean isMinute() 64 { 65 return X12_MINUTE.equals(getX12DE355()); 66 } 67 public boolean isHour() 68 { 69 return X12_HOUR.equals(getX12DE355()); 70 } 71 public boolean isDay() 72 { 73 return X12_DAY.equals(getX12DE355()); 74 } 75 public boolean isWorkDay() 76 { 77 return X12_DAY_WORK.equals(getX12DE355()); 78 } 79 public boolean isWeek() 80 { 81 return X12_WEEK.equals(getX12DE355()); 82 } 83 public boolean isMonth() 84 { 85 return X12_MONTH.equals(getX12DE355()); 86 } 87 public boolean isWorkMonth() 88 { 89 return X12_MONTH_WORK.equals(getX12DE355()); 90 } 91 public boolean isYear() 92 { 93 return X12_YEAR.equals(getX12DE355()); 94 } 95 96 97 98 99 static final String X12_MINUTE = "MJ"; 100 101 static final String X12_HOUR = "HR"; 102 103 static final String X12_DAY = "DA"; 104 105 static final String X12_DAY_WORK = "WD"; 106 107 static final String X12_WEEK = "WK"; 108 109 static final String X12_MONTH = "MO"; 110 111 static final String X12_MONTH_WORK = "WM"; 112 113 static final String X12_YEAR = "YR"; 114 115 116 121 public static int getMinute_UOM_ID (Properties ctx) 122 { 123 if (Ini.isClient()) 124 { 125 Iterator it = s_cache.values().iterator(); 126 while (it.hasNext()) 127 { 128 UOM uom = (UOM)it.next(); 129 if (uom.isMinute()) 130 return uom.getC_UOM_ID(); 131 } 132 } 133 int C_UOM_ID = 0; 135 String sql = "SELECT C_UOM_ID FROM C_UOM " 136 + "WHERE IsActive='Y' AND X12DE355='MJ'"; try 138 { 139 PreparedStatement pstmt = DB.prepareStatement(sql); 140 ResultSet rs = pstmt.executeQuery(); 141 if (rs.next()) 142 C_UOM_ID = rs.getInt(1); 143 rs.close(); 144 pstmt.close(); 145 } 146 catch (SQLException e) 147 { 148 Log.error("getMinute_UOM_ID", e); 149 } 150 return C_UOM_ID; 151 } 153 154 155 156 private static CCache s_cache = new CCache("uom", 30); 157 158 164 public static UOM get (Properties ctx, int C_UOM_ID) 165 { 166 if (s_cache.size() == 0) 167 loadUOMs (ctx); 168 Integer ii = new Integer (C_UOM_ID); 170 UOM uom = (UOM)s_cache.get(ii); 171 if (uom != null) 172 return uom; 173 uom = new UOM (ctx, C_UOM_ID); 175 s_cache.put(new Integer (C_UOM_ID), uom); 176 return uom; 177 } 179 183 private static void loadUOMs (Properties ctx) 184 { 185 String sql = MRole.getDefault(ctx, false).addAccessSQL( 186 "SELECT * FROM C_UOM " 187 + "WHERE IsActive='Y'", 188 "C_UOM", MRole.SQL_NOTQUALIFIED, MRole.SQL_RO); 189 try 190 { 191 PreparedStatement pstmt = DB.prepareStatement(sql); 192 ResultSet rs = pstmt.executeQuery(); 193 while (rs.next()) 194 { 195 UOM uom = new UOM(ctx, rs); 196 s_cache.put (new Integer (uom.getC_UOM_ID()), uom); 197 } 198 rs.close(); 199 pstmt.close(); 200 } 201 catch (SQLException e) 202 { 203 Log.error("UOM.loadUOMs", e); 204 } 205 } 207 } | Popular Tags |