1 32 33 package com.knowgate.addrbook; 34 35 import java.util.Date ; 36 import java.sql.SQLException ; 37 import java.sql.PreparedStatement ; 38 import java.sql.CallableStatement ; 39 import java.sql.ResultSet ; 40 import java.sql.Timestamp ; 41 import java.sql.Types ; 42 43 import com.knowgate.jdc.JDCConnection; 44 import com.knowgate.dataobjs.DB; 45 import com.knowgate.dataobjs.DBPersist; 46 47 52 53 public class Room extends DBPersist { 54 public Room() { 55 super(DB.k_rooms, "Room"); 56 } 57 58 60 68 public boolean load(JDCConnection oConn, Object sNmRoom, Object sGuWorkArea) throws SQLException { 69 Object oCol; 70 clear(); 71 PreparedStatement oStmt = oConn.prepareStatement("SELECT "+DB.id_domain+","+DB.bo_available+","+DB.tp_room+","+DB.nu_capacity+","+DB.tx_company+","+DB.tx_location+","+DB.tx_comments+" FROM "+DB.k_rooms+ " WHERE "+DB.nm_room+"=? AND "+DB.gu_workarea+"=?", 72 ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); 73 oStmt.setObject(1, sNmRoom, Types.VARCHAR); 74 oStmt.setObject(2, sGuWorkArea, Types.CHAR); 75 ResultSet oRSet = oStmt.executeQuery(); 76 boolean bRetVal = oRSet.next(); 77 if (bRetVal) { 78 put(DB.nm_room, sNmRoom); 79 put(DB.gu_workarea, sGuWorkArea); 80 put(DB.id_domain, oRSet.getInt(1)); 81 put(DB.bo_available, oRSet.getShort(2)); 82 oCol = oRSet.getObject(3); 83 if (!oRSet.wasNull()) put(DB.tp_room, oCol); 84 oCol = oRSet.getObject(4); 85 if (!oRSet.wasNull()) put(DB.tp_room, oCol); 86 oCol = oRSet.getObject(5); 87 if (!oRSet.wasNull()) put(DB.tp_room, oCol); 88 oCol = oRSet.getObject(6); 89 if (!oRSet.wasNull()) put(DB.tp_room, oCol); 90 oCol = oRSet.getObject(7); 91 if (!oRSet.wasNull()) put(DB.tp_room, oCol); 92 } 93 oRSet.close(); 94 oStmt.close(); 95 return bRetVal; 96 } 98 100 107 public boolean load(JDCConnection oConn, Object [] NmRoomGuWrkA) 108 throws SQLException { 109 return load(oConn, NmRoomGuWrkA[0], NmRoomGuWrkA[1]); 110 } 111 112 114 public boolean delete(JDCConnection oConn) throws SQLException { 115 116 return Room.delete(oConn, getString(DB.nm_room), getString(DB.gu_workarea)); 117 } 118 119 121 130 public String getMeetingForDate(JDCConnection oConn, Date dtFrom, Date dtTo) 131 throws SQLException { 132 String sGuMeeting; 133 Timestamp tsFrom = new Timestamp (dtFrom.getTime()); 134 Timestamp tsTo = new Timestamp (dtTo.getTime()); 135 PreparedStatement oStmt = oConn.prepareStatement("SELECT x."+DB.gu_meeting+" FROM "+ 136 DB.k_rooms+" r,"+DB.k_x_meeting_room+" x WHERE r."+DB.nm_room+"=x."+DB.nm_room+ 137 " AND r."+DB.gu_workarea+"=? AND r."+DB.nm_room+"=? AND (x."+DB.dt_start+" BETWEEN ? AND ?"+ 138 "OR x."+DB.dt_end+" BETWEEN ? AND ? OR (x."+DB.dt_start+"<=? AND x."+DB.dt_end+">=?))", 139 ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); 140 oStmt.setString(1, getString(DB.gu_workarea)); 141 oStmt.setString(2, getString(DB.nm_room)); 142 oStmt.setTimestamp(3, tsFrom); 143 oStmt.setTimestamp(4, tsTo); 144 oStmt.setTimestamp(5, tsFrom); 145 oStmt.setTimestamp(6, tsTo); 146 oStmt.setTimestamp(7, tsFrom); 147 oStmt.setTimestamp(8, tsTo); 148 ResultSet oRset = oStmt.executeQuery(); 149 if (oRset.next()) 150 sGuMeeting = oRset.getString(1); 151 else 152 sGuMeeting = null; 153 oRset.close(); 154 oStmt.close(); 155 return sGuMeeting; 156 } 158 160 169 public boolean isAvailable(JDCConnection oConn, Date dtFrom, Date dtTo) 170 throws SQLException { 171 return (getMeetingForDate(oConn, dtFrom, dtTo)==null); 172 } 173 174 177 185 186 public static boolean delete(JDCConnection oConn, String sRoomNm, String sWrkAId) throws SQLException { 187 boolean bRetVal; 188 189 CallableStatement oCall = oConn.prepareCall("{call k_sp_del_room ('" + sRoomNm + "','" + sWrkAId + "')}"); 190 bRetVal = oCall.execute(); 191 oCall.close(); 192 193 return bRetVal; 194 } 196 199 public static final short ClassId = 21; 200 201 } | Popular Tags |