List of usage examples for java.lang StringBuffer setLength
@Override public synchronized void setLength(int newLength)
From source file:org.alfresco.jlan.server.filesys.db.DBDiskLDriver.java
/** * Convert a file id to a share relative path * // w w w .j a v a2 s . c om * @param sess * SrvSession * @param tree * TreeConnection * @param dirid * int * @param fileid * @return String * @exception FileNotFoundException */ public String buildPathForFileId(SrvSession sess, TreeConnection tree, int dirid, int fileid) throws FileNotFoundException { // Access the JDBC context String userName = sess.getClientInformation().getUserName(); String shareName = tree.getContext().getShareName(); log4j.error("\n\n\nDBD#buildPathForFileId ; shareName ??, shareName:" + shareName + ", userName:" + userName + "\n\n\n"); DBDeviceContext dbCtx = (DBDeviceContext) tree.getContext(); // Build an array of folder names working back from the files id ArrayList<String> names = new ArrayList<String>(16); log4j.debug("DBD#buildPathForFileId ; dirid:" + dirid + " , fileid:" + fileid + " , shareName:" + shareName + ", userName:" + userName); try { int userId = sess.getClientInformation().getUid(); // Loop, walking backwards up the tree until we hit root int curFid = fileid; int curDid = dirid; FileInfo finfo = null; do { // Search for the current file in the database log4j.debug("do: curDid:" + curDid + " , curFid:" + curFid); finfo = dbCtx.getDBInterface().getFileInformation(curDid, curFid, DBInterface.FileIds, userId, shareName, userName); if (finfo != null) { // Get the filename names.add(finfo.getFileName()); // The directory id becomes the next file id to search for curFid = finfo.getDirectoryId(); curDid = -1; } else { log4j.warn("FileNotFoundException ; curFid:" + curFid); throw new FileNotFoundException("" + curFid); } } while (curFid > 0); } catch (DBException ex) { log4j.error(ex); return null; } // Build the path string StringBuffer pathStr = new StringBuffer(256); pathStr.append(FileName.DOS_SEPERATOR_STR); for (int i = names.size() - 1; i >= 0; i--) { pathStr.append(names.get(i)); pathStr.append(FileName.DOS_SEPERATOR_STR); } // Remove the trailing slash from the path if (pathStr.length() > 0) pathStr.setLength(pathStr.length() - 1); // Return the path string return pathStr.toString(); }
From source file:net.sourceforge.squirrel_sql.fw.dialects.DialectUtils.java
private static List<String> createConstraints(ITableInfo ti, List<ITableInfo> tables, CreateScriptPreferences prefs, ISQLDatabaseMetaData md) throws SQLException { final List<String> result = new ArrayList<String>(); final StringBuffer sbToAppend = new StringBuffer(); final ConstraintInfo[] cis = getConstraintInfos(ti, md); for (final ConstraintInfo ci : cis) { if (!prefs.isIncludeExternalReferences()) { boolean found = false; for (final ITableInfo table : tables) { if (table.getSimpleName().equalsIgnoreCase(ci.pkTable)) { found = true;/*w ww . j a v a2 s. c o m*/ break; } } if (false == found) { continue; } } sbToAppend.append("ALTER TABLE " + formatQualifIntern(ci.fkTable, ci.fkTableSchema, prefs) + "\n"); sbToAppend.append("ADD CONSTRAINT " + ci.fkName + "\n"); if (ci.fkCols.size() == 1) { sbToAppend.append("FOREIGN KEY (").append(ci.fkCols.get(0)); for (int j = 1; j < ci.fkCols.size(); j++) { sbToAppend.append(",").append(ci.fkCols.get(j)); } sbToAppend.append(")\n"); sbToAppend.append("REFERENCES " + formatQualifIntern(ci.pkTable, ci.pkTableSchema, prefs) + "("); sbToAppend.append(ci.pkCols.get(0)); for (int j = 1; j < ci.pkCols.size(); j++) { sbToAppend.append(",").append(ci.pkCols.get(j)); } } else { sbToAppend.append("FOREIGN KEY\n"); sbToAppend.append("(\n"); for (int j = 0; j < ci.fkCols.size(); j++) { sbToAppend.append(" "); sbToAppend.append(ci.fkCols.get(j)); if (j < ci.fkCols.size() - 1) { sbToAppend.append(","); } sbToAppend.append("\n"); } sbToAppend.append(")\n"); sbToAppend.append("REFERENCES "); sbToAppend.append(formatQualifIntern(ci.pkTable, ci.pkTableSchema, prefs)); sbToAppend.append("\n"); sbToAppend.append("(\n"); for (int j = 0; j < ci.pkCols.size(); j++) { sbToAppend.append(" "); sbToAppend.append(ci.pkCols.get(j)); if (j < ci.pkCols.size() - 1) { sbToAppend.append(","); } sbToAppend.append("\n"); } } sbToAppend.append(")"); boolean overrideUpdate = prefs.isDeleteRefAction(); String conditionClause = " ON DELETE "; String overrideAction = prefs.getRefActionByType(prefs.getDeleteAction()); int rule = ci.deleteRule; final String onDeleteClause = constructFKContraintActionClause(overrideUpdate, conditionClause, overrideAction, rule); sbToAppend.append(onDeleteClause); overrideUpdate = prefs.isUpdateRefAction(); conditionClause = " ON UPDATE "; overrideAction = prefs.getRefActionByType(prefs.getUpdateAction()); rule = ci.updateRule; final String onUpdateClause = constructFKContraintActionClause(overrideUpdate, conditionClause, overrideAction, rule); sbToAppend.append(onUpdateClause); // sbToAppend.append("\n"); result.add(sbToAppend.toString()); sbToAppend.setLength(0); } return result; }
From source file:com.tremolosecurity.unison.openstack.KeystoneProvisioningTarget.java
@Override public void syncUser(User user, boolean addOnly, Set<String> attributes, Map<String, Object> request) throws ProvisioningException { int approvalID = 0; if (request.containsKey("APPROVAL_ID")) { approvalID = (Integer) request.get("APPROVAL_ID"); }// ww w . java 2 s .c om Workflow workflow = (Workflow) request.get("WORKFLOW"); HttpCon con = null; Gson gson = new Gson(); try { con = this.createClient(); KSToken token = this.getToken(con); UserAndID fromKS = this.lookupUser(user.getUserID(), attributes, request, token, con); if (fromKS == null) { this.createUser(user, attributes, request); } else { //check attributes HashMap<String, String> attrsUpdate = new HashMap<String, String>(); KSUser toPatch = new KSUser(); if (!rolesOnly) { if (attributes.contains("email")) { String fromKSVal = null; String newVal = null; if (fromKS.getUser().getAttribs().get("email") != null) { fromKSVal = fromKS.getUser().getAttribs().get("email").getValues().get(0); } if (user.getAttribs().get("email") != null) { newVal = user.getAttribs().get("email").getValues().get(0); } if (newVal != null && (fromKSVal == null || !fromKSVal.equalsIgnoreCase(newVal))) { toPatch.setEmail(newVal); attrsUpdate.put("email", newVal); } else if (!addOnly && newVal == null && fromKSVal != null) { toPatch.setEmail(""); attrsUpdate.put("email", ""); } } if (attributes.contains("enabled")) { String fromKSVal = null; String newVal = null; if (fromKS.getUser().getAttribs().get("enabled") != null) { fromKSVal = fromKS.getUser().getAttribs().get("enabled").getValues().get(0); } if (user.getAttribs().get("enabled") != null) { newVal = user.getAttribs().get("enabled").getValues().get(0); } if (newVal != null && (fromKSVal == null || !fromKSVal.equalsIgnoreCase(newVal))) { toPatch.setName(newVal); attrsUpdate.put("enabled", newVal); } else if (!addOnly && newVal == null && fromKSVal != null) { toPatch.setEnabled(false); attrsUpdate.put("enabled", ""); } } if (attributes.contains("description")) { String fromKSVal = null; String newVal = null; if (fromKS.getUser().getAttribs().get("description") != null) { fromKSVal = fromKS.getUser().getAttribs().get("description").getValues().get(0); } if (user.getAttribs().get("description") != null) { newVal = user.getAttribs().get("description").getValues().get(0); } if (newVal != null && (fromKSVal == null || !fromKSVal.equalsIgnoreCase(newVal))) { toPatch.setDescription(newVal); attrsUpdate.put("description", newVal); } else if (!addOnly && newVal == null && fromKSVal != null) { toPatch.setDescription(""); attrsUpdate.put("description", ""); } } if (!attrsUpdate.isEmpty()) { UserHolder holder = new UserHolder(); holder.setUser(toPatch); String json = gson.toJson(holder); StringBuffer b = new StringBuffer(); b.append(this.url).append("/users/").append(fromKS.getId()); json = this.callWSPotch(token.getAuthToken(), con, b.toString(), json); for (String attr : attrsUpdate.keySet()) { String val = attrsUpdate.get(attr); this.cfgMgr.getProvisioningEngine().logAction(user.getUserID(), false, ActionType.Replace, approvalID, workflow, attr, val); } } for (String group : user.getGroups()) { if (!fromKS.getUser().getGroups().contains(group)) { String groupID = this.getGroupID(token.getAuthToken(), con, group); StringBuffer b = new StringBuffer(); b.append(this.url).append("/groups/").append(groupID).append("/users/") .append(fromKS.getId()); if (this.callWSPutNoData(token.getAuthToken(), con, b.toString())) { this.cfgMgr.getProvisioningEngine().logAction(user.getUserID(), false, ActionType.Add, approvalID, workflow, "group", group); } else { throw new ProvisioningException("Could not add group " + group); } } } if (!addOnly) { for (String group : fromKS.getUser().getGroups()) { if (!user.getGroups().contains(group)) { String groupID = this.getGroupID(token.getAuthToken(), con, group); StringBuffer b = new StringBuffer(); b.append(this.url).append("/groups/").append(groupID).append("/users/") .append(fromKS.getId()); this.callWSDelete(token.getAuthToken(), con, b.toString()); this.cfgMgr.getProvisioningEngine().logAction(user.getUserID(), false, ActionType.Delete, approvalID, workflow, "group", group); } } } } if (attributes.contains("roles")) { HashSet<Role> currentRoles = new HashSet<Role>(); if (fromKS.getUser().getAttribs().get("roles") != null) { Attribute attr = fromKS.getUser().getAttribs().get("roles"); for (String jsonRole : attr.getValues()) { currentRoles.add(gson.fromJson(jsonRole, Role.class)); } } if (user.getAttribs().containsKey("roles")) { StringBuffer b = new StringBuffer(); Attribute attr = user.getAttribs().get("roles"); for (String jsonRole : attr.getValues()) { Role role = gson.fromJson(jsonRole, Role.class); if (!currentRoles.contains(role)) { if (role.getScope().equalsIgnoreCase("project")) { String projectid = this.getProjectID(token.getAuthToken(), con, role.getProject()); if (projectid == null) { throw new ProvisioningException( "Project " + role.getDomain() + " does not exist"); } String roleid = this.getRoleID(token.getAuthToken(), con, role.getName()); if (roleid == null) { throw new ProvisioningException( "Role " + role.getName() + " does not exist"); } b.setLength(0); b.append(this.url).append("/projects/").append(projectid).append("/users/") .append(fromKS.getId()).append("/roles/").append(roleid); if (this.callWSPutNoData(token.getAuthToken(), con, b.toString())) { this.cfgMgr.getProvisioningEngine().logAction(user.getUserID(), false, ActionType.Add, approvalID, workflow, "role", jsonRole); } else { throw new ProvisioningException("Could not add role " + jsonRole); } } else { String domainid = this.getDomainID(token.getAuthToken(), con, role.getDomain()); if (domainid == null) { throw new ProvisioningException( "Domain " + role.getDomain() + " does not exist"); } String roleid = this.getRoleID(token.getAuthToken(), con, role.getName()); if (roleid == null) { throw new ProvisioningException( "Role " + role.getName() + " does not exist"); } b.setLength(0); b.append(this.url).append("/domains/").append(domainid).append("/users/") .append(fromKS.getId()).append("/roles/").append(roleid); if (this.callWSPutNoData(token.getAuthToken(), con, b.toString())) { this.cfgMgr.getProvisioningEngine().logAction(user.getUserID(), false, ActionType.Add, approvalID, workflow, "role", jsonRole); } else { throw new ProvisioningException("Could not add role " + jsonRole); } } } } } } if (!addOnly) { if (attributes.contains("roles")) { HashSet<Role> currentRoles = new HashSet<Role>(); if (user.getAttribs().get("roles") != null) { Attribute attr = user.getAttribs().get("roles"); for (String jsonRole : attr.getValues()) { currentRoles.add(gson.fromJson(jsonRole, Role.class)); } } if (fromKS.getUser().getAttribs().containsKey("roles")) { StringBuffer b = new StringBuffer(); Attribute attr = fromKS.getUser().getAttribs().get("roles"); for (String jsonRole : attr.getValues()) { Role role = gson.fromJson(jsonRole, Role.class); if (!currentRoles.contains(role)) { if (role.getScope().equalsIgnoreCase("project")) { String projectid = this.getProjectID(token.getAuthToken(), con, role.getProject()); if (projectid == null) { throw new ProvisioningException( "Project " + role.getDomain() + " does not exist"); } String roleid = this.getRoleID(token.getAuthToken(), con, role.getName()); if (roleid == null) { throw new ProvisioningException( "Role " + role.getName() + " does not exist"); } b.setLength(0); b.append(this.url).append("/projects/").append(projectid).append("/users/") .append(fromKS.getId()).append("/roles/").append(roleid); this.callWSDelete(token.getAuthToken(), con, b.toString()); this.cfgMgr.getProvisioningEngine().logAction(user.getUserID(), false, ActionType.Delete, approvalID, workflow, "role", jsonRole); } else { String domainid = this.getDomainID(token.getAuthToken(), con, role.getDomain()); if (domainid == null) { throw new ProvisioningException( "Domain " + role.getDomain() + " does not exist"); } String roleid = this.getRoleID(token.getAuthToken(), con, role.getName()); if (roleid == null) { throw new ProvisioningException( "Role " + role.getName() + " does not exist"); } b.setLength(0); b.append(this.url).append("/domains/").append(domainid).append("/users/") .append(fromKS.getId()).append("/roles/").append(roleid); this.callWSDelete(token.getAuthToken(), con, b.toString()); this.cfgMgr.getProvisioningEngine().logAction(user.getUserID(), false, ActionType.Delete, approvalID, workflow, "role", jsonRole); } } } } } } } } catch (Exception e) { throw new ProvisioningException("Could not work with keystone", e); } finally { if (con != null) { con.getBcm().shutdown(); } } }
From source file:edu.ku.brc.specify.conversion.BasicSQLUtils.java
/** * @param fromConn//from w ww.j a v a 2 s. c om * @param toConn * @param sql * @param fromTableName * @param toTableName * @param colNewToOldMap * @param verbatimDateMapper * @param newColDefValues * @param sourceServerType * @param destServerType * @return */ public static boolean copyTable(final Connection fromConn, final Connection toConn, final String sql, final String countSQL, final String fromTableName, final String toTableName, final Map<String, String> colNewToOldMap, final Map<String, String> verbatimDateMapper, final Map<String, String> newColDefValues, final SERVERTYPE sourceServerType, final SERVERTYPE destServerType) { //Timestamp now = new Timestamp(System.currentTimeMillis()); IdMapperMgr idMapperMgr = IdMapperMgr.getInstance(); if (frame != null) { frame.setDesc("Copying Table " + fromTableName); } log.info("Copying Table " + fromTableName); List<String> fromFieldNameList = getFieldNamesFromSchema(fromConn, fromTableName); String sqlStr = sql + " ORDER BY " + fromTableName + "." + fromFieldNameList.get(0); log.debug(sqlStr); int numRecs; if (countSQL == null) { numRecs = getNumRecords(fromConn, fromTableName); } else { numRecs = getCountAsInt(fromConn, countSQL); } setProcess(0, numRecs); DBTableInfo tblInfo = DBTableIdMgr.getInstance().getInfoByTableName(toTableName); Statement updateStatement = null; String id = ""; try { updateStatement = toConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); if (BasicSQLUtils.myDestinationServerType != BasicSQLUtils.SERVERTYPE.MS_SQLServer) { BasicSQLUtils.removeForeignKeyConstraints(toConn, BasicSQLUtils.myDestinationServerType); } //HashMap<String, Integer> newDBFieldHash = new HashMap<String, Integer>(); List<FieldMetaData> newFieldMetaData = getFieldMetaDataFromSchema(toConn, toTableName); //int inx = 1; //for (FieldMetaData fmd : newFieldMetaData) //{ // newDBFieldHash.put(fmd.getName(), inx++); //} Statement stmt = fromConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); //System.out.println(sqlStr); ResultSet rs = stmt.executeQuery(sqlStr); ResultSetMetaData rsmd = rs.getMetaData(); Vector<Integer> dateColumns = new Vector<Integer>(); //System.out.println(toTableName); Hashtable<String, Integer> fromHash = new Hashtable<String, Integer>(); for (int i = 1; i <= rsmd.getColumnCount(); i++) { String colName = rsmd.getColumnName(i); fromHash.put(colName, i); //System.out.println(rsmd.getColumnName(i)+" -> "+i); if (rsmd.getColumnType(i) == java.sql.Types.DATE || colName.toLowerCase().endsWith("date") || colName.toLowerCase().startsWith("date")) { //System.out.println("Date: "+rsmd.getColumnName(i)+" -> "+i); dateColumns.add(i); } } Hashtable<String, String> oldNameToNewNameHash = new Hashtable<String, String>(); if (colNewToOldMap != null) { for (String newName : colNewToOldMap.keySet()) { String oldName = colNewToOldMap.get(newName); System.out .println("Mapping oldName[" + (oldName == null ? newName : oldName) + " -> " + newName); oldNameToNewNameHash.put(oldName == null ? newName : oldName, newName); } } // System.out.println("Num Cols: "+rsmd.getColumnCount()); Map<String, PartialDateConv> dateMap = new Hashtable<String, PartialDateConv>(); String insertSQL = null; // Get the columns that have dates in case we get a TimestampCreated date that is null // and then we can go looking for an older date to try to figure it out Integer timestampModifiedInx = fromHash.get("TimestampModified"); Integer timestampCreatedInx = fromHash.get("TimestampCreated"); boolean isAccessionTable = fromTableName.equals("accession"); boolean hasInstIdCol = fromTableName.equals("permit") || fromTableName.equals("journal") || fromTableName.equals("referencework"); StringBuffer str = new StringBuffer(1024); int count = 0; while (rs.next()) { boolean skipRecord = false; dateMap.clear(); // Start by going through the resultset and converting all dates from Integers // to real dates and keep the verbatium date information if it is a partial date for (int i : dateColumns) { String oldColName = rsmd.getColumnName(i); Integer oldColIndex = fromHash.get(oldColName); if (oldColIndex == null) { log.error("Couldn't find new column for old column for date for Table[" + fromTableName + "] Col Name[" + newFieldMetaData.get(i).getName() + "]"); continue; } if (oldColIndex > newFieldMetaData.size()) { continue; } String newColName = colNewToOldMap != null ? oldNameToNewNameHash.get(oldColName) : null; if (newColName == null) { newColName = oldColName; } Object dataObj = rs.getObject(i); if (dataObj instanceof Integer) { PartialDateConv datep = new PartialDateConv(); getPartialDate((Integer) dataObj, datep); // fills in Verbatim also dateMap.put(newColName, datep); } } // OK here we make sure that both the created dated ad modified date are not null // and we copy the date if one has a value and the other does not. Date timestampCreatedCached = now; Date timestampModifiedCached = now; if (timestampModifiedInx != null && timestampCreatedInx != null) { timestampModifiedCached = rs.getDate(timestampModifiedInx); timestampCreatedCached = rs.getDate(timestampCreatedInx); if (timestampModifiedCached == null && timestampCreatedCached == null) { timestampCreatedCached = Calendar.getInstance().getTime(); timestampModifiedCached = Calendar.getInstance().getTime(); } else if (timestampModifiedCached == null && timestampCreatedCached != null) { timestampModifiedCached = new Date(timestampCreatedCached.getTime()); } else { timestampCreatedCached = timestampModifiedCached != null ? new Date(timestampModifiedCached.getTime()) : new Date(); } } else { if (timestampModifiedInx != null) { timestampModifiedCached = rs.getDate(timestampModifiedInx); if (timestampModifiedCached == null) { timestampModifiedCached = now; } } if (timestampCreatedInx != null) { timestampCreatedCached = rs.getDate(timestampCreatedInx); if (timestampCreatedCached == null) { timestampCreatedCached = now; } } } str.setLength(0); if (insertSQL == null) { StringBuffer fieldList = new StringBuffer(); fieldList.append("( "); for (int i = 0; i < newFieldMetaData.size(); i++) { if ((i > 0) && (i < newFieldMetaData.size())) { fieldList.append(", "); } String newFieldName = newFieldMetaData.get(i).getName(); fieldList.append(newFieldName + " "); } fieldList.append(")"); str.append("INSERT INTO " + toTableName + " " + fieldList + " VALUES ("); insertSQL = str.toString(); log.debug(str); } else { str.append(insertSQL); } id = rs.getString(1); // For each column in the new DB table... for (int i = 0; i < newFieldMetaData.size(); i++) { FieldMetaData newFldMetaData = newFieldMetaData.get(i); String newColName = newFldMetaData.getName(); String oldMappedColName = null; //System.out.println("["+newColName+"]"); // Get the Old Column Index from the New Name // String oldName = colNewToOldMap != null ? colNewToOldMap.get(newColName) : newColName; Integer columnIndex = fromHash.get(newColName); if (columnIndex == null && colNewToOldMap != null) { oldMappedColName = colNewToOldMap.get(newColName); if (oldMappedColName != null) { columnIndex = fromHash.get(oldMappedColName); } else if (isOptionOn(SHOW_NAME_MAPPING_ERROR) && (ignoreMappingFieldNames == null || ignoreMappingFieldNames.get(newColName) == null)) { String msg = "No Map for table [" + fromTableName + "] from New Name[" + newColName + "] to Old Name[" + oldMappedColName + "]"; log.error(msg); writeErrLog(msg); } } else { oldMappedColName = newColName; } String verbatimDateFieldName = null; if (verbatimDateMapper != null) { verbatimDateFieldName = verbatimDateMapper.get(newColName); } //System.out.println("new["+newColName+"] old["+oldMappedColName+"]"); if (columnIndex != null) { if (i > 0) str.append(", "); Object dataObj = rs.getObject(columnIndex); if (idMapperMgr != null && oldMappedColName != null && oldMappedColName.endsWith("ID")) { IdMapperIFace idMapper = idMapperMgr.get(fromTableName, oldMappedColName); if (idMapper != null) { int showNullOption = SHOW_NULL_FK; int showFkLookUpOption = SHOW_FK_LOOKUP; int oldPrimaryKeyId = rs.getInt(columnIndex); if (oldMappedColName.equalsIgnoreCase(fromTableName + "id")) { showNullOption = SHOW_NULL_PM; showFkLookUpOption = SHOW_PM_LOOKUP; } // if the value was null, getInt() returns 0 // use wasNull() to distinguish real 0 from a null return if (rs.wasNull()) { dataObj = null; if (isOptionOn(showNullOption)) { String msg = "Unable to Map " + (showNullOption == SHOW_NULL_FK ? "Foreign" : "Primary") + " Key Id[NULL] old Name[" + oldMappedColName + "] colInx[" + columnIndex + "] newColName[" + newColName + "]"; log.error(msg); writeErrLog(msg); skipRecord = true; } } else { dataObj = idMapper.get(oldPrimaryKeyId); if (dataObj == null && isOptionOn(showFkLookUpOption)) { String msg = "Unable to Map Primary Id[" + oldPrimaryKeyId + "] old Name[" + oldMappedColName + "] table[" + fromTableName + "]"; log.error(msg); writeErrLog(msg); skipRecord = true; } } } else { if (isOptionOn(SHOW_NAME_MAPPING_ERROR) && (ignoreMappingFieldIDs == null || ignoreMappingFieldIDs.get(oldMappedColName) == null)) { // !!!!!!!!!!!!!!!!!!!!!!!!!!!!! // XXX Temporary fix so it doesn't hide other errors // Josh has promised his first born if he doesn't fix this! // !!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (!oldMappedColName.equals("RankID")) { //idMapperMgr.dumpKeys(); String msg = "No ID Map for [" + fromTableName + "] Old Column Name[" + oldMappedColName + "]"; log.error(msg); writeErrLog(msg); skipRecord = true; } } } } // First check to see if it is null if (dataObj == null) { if (newFldMetaData.getName().equals("TimestampCreated")) { if (timestampCreatedInx != null) { if (isAccessionTable) { Date date = UIHelper .convertIntToDate(rs.getInt(fromHash.get("DateAccessioned"))); str.append(date != null ? getStrValue(date) : getStrValue(timestampCreatedCached, newFldMetaData.getType())); } else { str.append(getStrValue(timestampCreatedCached, newFldMetaData.getType())); } } else { str.append(getStrValue(timestampCreatedCached, newFldMetaData.getType())); } } else if (newFldMetaData.getName().equals("TimestampModified")) { if (timestampModifiedInx != null) { if (isAccessionTable) { Date date = UIHelper .convertIntToDate(rs.getInt(fromHash.get("DateAccessioned"))); str.append(date != null ? getStrValue(date) : getStrValue(timestampCreatedCached, newFldMetaData.getType())); } else { str.append(getStrValue(timestampModifiedCached, newFldMetaData.getType())); } } else { str.append(getStrValue(timestampModifiedCached, newFldMetaData.getType())); } } else { str.append("NULL"); } } else if (dataObj instanceof Integer && (newFldMetaData.getSqlType() == java.sql.Types.DATE || newColName.toLowerCase().endsWith("date") || newColName.toLowerCase().startsWith("date"))) { PartialDateConv datePr = dateMap.get(newColName); if (datePr != null) { str.append(datePr.getDateStr()); } else { str.append("NULL"); } } else if (verbatimDateFieldName != null) { PartialDateConv datePr = dateMap.get(newColName); str.append(datePr != null ? datePr.getVerbatim() : "NULL"); } else if (dataObj instanceof Number) { DBFieldInfo fi = tblInfo.getFieldByColumnName(newColName); String type = newFldMetaData.getType().toLowerCase().startsWith("tiny") ? fi.getType() : newFldMetaData.getType(); str.append(getStrValue(dataObj, type)); } else { if (columnValueMapper != null) { BasicSQLUtilsMapValueIFace valueMapper = columnValueMapper.get(newColName); if (valueMapper != null) { dataObj = valueMapper.mapValue(dataObj); } } if (dataObj instanceof String && newFldMetaData.isString()) { DBFieldInfo fi = tblInfo.getFieldByColumnName(newColName); String s = (String) dataObj; if (s.length() > fi.getLength()) { String msg = String.format( "Truncating Table '%s' Field '%s' with Length %d, db len %d Value[%s]", toTableName, newColName, s.length(), fi.getLength(), s); tblWriter.logError(msg); log.error(msg); dataObj = s.substring(0, fi.getLength()); } } str.append(getStrValue(dataObj, newFldMetaData.getType())); } } else if (hasInstIdCol && newFldMetaData.getName().equals("InstitutionID")) { if (i > 0) str.append(", "); str.append("1"); } else if (newColName.endsWith("Version")) { if (i > 0) str.append(", "); str.append("0"); } else if (newColName.endsWith("DatePrecision")) { if (i > 0) str.append(", "); String cName = newColName.substring(0, newColName.length() - 9); PartialDateConv datePr = dateMap.get(cName); if (datePr != null) { str.append(datePr.getPartial()); } else { str.append("NULL"); } } else if (idMapperMgr != null && newColName.endsWith("ID") && oneToOneIDHash != null && oneToOneIDHash.get(newColName) != null) { IdMapperIFace idMapper = idMapperMgr.get(toTableName, newColName); if (idMapper != null) { idMapper.setShowLogErrors(false); Integer newPrimaryId = idMapper.get(Integer.parseInt(id)); if (newPrimaryId != null) { if (i > 0) str.append(", "); str.append(newPrimaryId); } else { if (i > 0) str.append(", "); str.append("NULL"); if (isOptionOn(SHOW_VAL_MAPPING_ERROR)) { String msg = "For Table[" + fromTableName + "] mapping new Column Name[" + newColName + "] ID[" + id + "] was not mapped"; log.error(msg); writeErrLog(msg); skipRecord = true; } } } } else // there was no old column that maps to this new column { String newColValue = null; if (newColDefValues != null) { newColValue = newColDefValues.get(newColName); } if (newColValue == null) { newColValue = "NULL"; //System.out.println("ignoreMappingFieldNames" + ignoreMappingFieldNames); //System.out.println("ignoreMappingFieldNames.get(colName)" + ignoreMappingFieldNames.get(colName)); if (isOptionOn(SHOW_NAME_MAPPING_ERROR) && (ignoreMappingFieldNames == null || ignoreMappingFieldNames.get(newColName) == null)) { String msg = "For Table[" + fromTableName + "] mapping new Column Name[" + newColName + "] was not mapped"; log.error(msg); writeErrLog(msg); skipRecord = true; } } if (i > 0) str.append(", "); BasicSQLUtilsMapValueIFace valueMapper = columnValueMapper.get(newFldMetaData.getName()); if (valueMapper != null) { newColValue = valueMapper.mapValue(newColValue); } str.append(newColValue); } } str.append(")"); if (frame != null) { if (count % 500 == 0) { frame.setProcess(count); } } else { if (count % 2000 == 0) { log.info(toTableName + " processed: " + count); } } //setQuotedIdentifierOFFForSQLServer(toConn, BasicSQLUtils.myDestinationServerType); //exeUpdateCmd(updateStatement, "SET FOREIGN_KEY_CHECKS = 0"); //if (str.toString().toLowerCase().contains("insert into locality")) //{ //log.debug(str.toString()); //} //String str2 = "SET QUOTED_IDENTIFIER ON"; //log.debug("executing: " + str); //updateStatement.execute(str2); // updateStatement.close(); if (!skipRecord) { if (isOptionOn(SHOW_COPY_TABLE)) { log.debug("executing: " + str); } int retVal = exeUpdateCmd(updateStatement, str.toString()); if (retVal == -1) { rs.close(); stmt.clearBatch(); stmt.close(); return false; } } count++; // if (count == 1) break; } if (frame != null) { frame.setProcess(count); } else { log.info(fromTableName + " processed " + count + " records."); } rs.close(); stmt.clearBatch(); stmt.close(); } catch (SQLException ex) { ex.printStackTrace(); edu.ku.brc.af.core.UsageTracker.incrSQLUsageCount(); edu.ku.brc.exceptions.ExceptionTracker.getInstance().capture(BasicSQLUtils.class, ex); //e.printStackTrace(); log.error(sqlStr); log.error(ex); log.error("ID: " + id); } finally { try { updateStatement.clearBatch(); updateStatement.close(); } catch (SQLException ex) { } } BasicSQLUtils.setFieldsToIgnoreWhenMappingNames(null);//meg added return true; }
From source file:org.ourbeehive.mbp.builder.OprImplBuilder.java
/** * deal with ormPor, generate java code//from www. j a v a2s. c om * @param ormMethod * @param ormOprList * @param father * @return */ private StringBuffer dealWithOrmPor(OrmMethod ormMethod, List<OrmOpr> ormOprList, OrmOpr father) { StringBuffer srcCode = new StringBuffer(); if (ormOprList == null || ormOprList.size() == 0) { return srcCode; } String indents = BuilderHelper.exportIndents(); List<String> list = ormMethod.getParameterList(); if (list == null || list.isEmpty()) { return srcCode; } // **dtox String ormName = ""; for (String name : list) { if (name.endsWith(JavaSrcElm.DTOX_NAME_SUFFIX)) { ormName = getOprAttributeName(name); } } srcCode.append(GlobalConst.LINE_SEPARATOR); for (OrmOpr target : ormOprList) { String oprType = target.getOprType(); // attribute operation type // exclude the not required attribute if (oprType.equals(NOT_REQUIRE)) { continue; } StringBuffer content = new StringBuffer(); String targetName = target.getTargetObjName(); String targetClass = target.getTargetObjClassName(); String left = generateGetAttribute(ormName, targetName, false).toString(); String fatherAttr = target.getFatherAttrName(); String sonAttr = target.getSonAttrName(); if (fatherAttr == null || sonAttr == null) { logger.warn("OPR INTF: CALL \"opr dealWithOrmPor: " + targetName + "->fatherAttr and sonAttr can't be null"); } String targetObjCollectionType = target.getTargetObjCollectionType(); // deal with List, 'sonAttr' likes '**vo.**pk', so need to separate it by '.' String sonVo = ""; String source = ormName; String indentsOfIF = indents; if (JavaSrcElm.UTIL_LIST_SIMPLE.equals(targetObjCollectionType)) { targetName = getOprAttributeName(targetClass.trim()); int index = sonAttr.indexOf(JavaSrcElm.DOT); if (index == -1) { logger.error("OPR ERROR: CALL \"opr dealWithOrmPor: " + targetName + "->sonAttr is Error"); continue; } // **vo sonVo = sonAttr.substring(0, index); // **pk sonAttr = JavaFormatter.getClassSimpleName(sonAttr.trim()); // **dotx.get**Vo() left = generateGetAttribute(targetName, sonVo, false).toString(); source = targetName; targetName = sonVo; indentsOfIF = ""; } // if (TARGET_TYPE_VO.equals(targetObjCollectionType)) { if (father != null) { String fatherTarget = generateGetAttribute(ormName, father.getTargetObjName(), false).toString(); String fatherPk = generateGetAttribute(fatherTarget, fatherAttr, false).toString(); String setAttr = generateSetAttribute(left, sonAttr, fatherPk, true).toString(); content.append(setAttr); content.append(JavaSrcElm.LINE_SEPARATOR); } // set information String crudType = target.getCrudType(); if (crudType.equals(JavaSrcElm.CRUD_TYPE_SAVE)) { StringBuffer saveSetStr = generateSaveSetBlock(source, targetName, ""); content.append(saveSetStr); } else if (crudType.equals(JavaSrcElm.CRUD_TYPE_UPDATE)) { StringBuffer updateSetStr = generateUpdateSetBlock(source, targetName, ""); content.append(updateSetStr); } else if (crudType.equals(JavaSrcElm.CRUD_TYPE_DEFUNCT)) { StringBuffer defunctSetStr = generateDefunctSetBlock(source, targetName, ""); content.append(defunctSetStr); } // call Dao method String daoName = target.getCallDaoName(); String daoMethod = target.getCallDaoMethod(); List<String> paramList = new ArrayList<String>(); paramList.add(left); StringBuffer daoMethodStr = generateDaoMethodBlock(daoName, daoMethod, paramList); content.append(daoMethodStr); // if if (oprType.equals(IF_REQUIRE)) { StringBuffer condition = generateIfCondition(left, JavaSrcElm.EXPR_OBJ_NOT_NULL); StringBuffer ifStr = generateIfBlock(condition.toString(), content.toString(), indentsOfIF); content.setLength(0); content.append(JavaSrcElm.LINE_SEPARATOR); content.append(ifStr); } else { srcCode.append(JavaSrcElm.LINE_SEPARATOR); content = rectifyContent(content.toString(), ""); } // foreach if (JavaSrcElm.UTIL_LIST_SIMPLE.equals(targetObjCollectionType)) { String listName = generateGetAttribute(ormName, target.getTargetObjName(), false).toString(); StringBuffer foreachStr = generateForeachBlock(targetClass, listName, content.toString(), indents); content.setLength(0); content.append(JavaSrcElm.LINE_SEPARATOR); content.append(foreachStr); } srcCode.append(content); // recursive call the son omrOprs srcCode.append(dealWithOrmPor(ormMethod, target.getSonOrmOprs(), target)); } return srcCode; }
From source file:com.pureinfo.studio.db.xls2srm.impl.XlsImportRunner.java
/** * @throws Exception//from ww w . ja v a2 s . c o m */ public int run(String _sFileName, List _errorDataList, List _repeatList, boolean _bBreakenIfError, int _nChooseIfRepeat) throws PureException { if (m_xmlConfig == null) { throw new PureException(PureException.SETTING_MISSING, "please call config() first"); } long lStart = System.currentTimeMillis(); IObjects objs = null; DolphinObject oldObj, newObj; Class clazz = m_entityMetadata.getEntityClass(); long lThisTime = System.currentTimeMillis(); String sThisTime = getNow(String.valueOf(lThisTime)); int nCount = 1; boolean isToTemp = isToTemp(); try { prepare(); objs = this.loadOld(_sFileName); String sViewProperty = m_xmlConfig.attributeValue("view-property"); if (sViewProperty == null || (sViewProperty = sViewProperty.trim()).length() == 0) { sViewProperty = "ID"; } else { // sViewProperty = sViewProperty.toUpperCase(); } while ((oldObj = objs.next()) != null) { List errorDataEachList = new ArrayList(); StringBuffer error = new StringBuffer(); if (checkObjIsNull(oldObj, sViewProperty)) continue; oldObj = ChangePropertysToString(oldObj, sViewProperty); // it will be checked in the last,so at the beganning ,we will // new an instance. newObj = (DolphinObject) clazz.newInstance(); beforeCopy(newObj); copy(oldObj, newObj, errorDataEachList); if (errorDataEachList != null) { if (errorDataEachList.size() > 0) { error.append("" + nCount + ":"); for (int i = 0; i < errorDataEachList.size(); i++) { error.append(errorDataEachList.get(i)); } } errorDataEachList.clear(); } convert(oldObj, newObj, errorDataEachList, _nChooseIfRepeat); fill(oldObj, newObj, _nChooseIfRepeat); // ====wind.li@2007-04-29 // =====BEGIN=========== errorDataEachList = checkMaybeRequiredCells(oldObj); if (errorDataEachList != null) { for (int i = 0; i < errorDataEachList.size(); i++) { error.append("" + nCount + ":").append(errorDataEachList.get(i) + ""); } errorDataEachList.clear(); } // ====END=========== if (errorDataEachList != null) { if (errorDataEachList.size() > 0) { if (error.length() <= 0) error.append("" + nCount + ":"); for (int i = 0; i < errorDataEachList.size(); i++) { error.append("" + errorDataEachList.get(i) + ","); } } errorDataEachList.clear(); } String errorEach = (error.length() > 0 ? error.toString() : ""); conversAuthors2insideAuthorInfo(newObj, oldObj); if (errorDataEachList == null) errorDataEachList = new ArrayList(); beforeSave(newObj, errorDataEachList); calcProbWeight(oldObj, newObj, _nChooseIfRepeat); if (errorDataEachList != null) { for (int i = 0; i < errorDataEachList.size(); i++) { String errorElement = errorDataEachList.get(i).toString(); if (errorEach.indexOf(errorElement) > 0) { errorDataEachList.remove(errorElement); } } if (errorDataEachList.size() > 0) { if (error.length() <= 0) error.append("" + nCount + ":"); for (int i = 0; i < errorDataEachList.size(); i++) { error.append("" + errorDataEachList.get(i) + " "); } } errorDataEachList.clear(); } convert2RelatedTable(newObj, oldObj, true, errorDataEachList, Xls2srmForm.COVERDATAWHENREPEAT); if (errorDataEachList != null) { if (errorDataEachList.size() > 0) { if (error.length() <= 0) error.append("" + nCount + ":"); for (int i = 0; i < errorDataEachList.size(); i++) { error.append(errorDataEachList.get(i)); } } errorDataEachList.clear(); } if (error.length() > 0) { _errorDataList.add(error.toString()); } if (error.length() > 0) { error.setLength(0); if (_bBreakenIfError) { logger.debug("" + nCount + ""); break; } nCount++; continue; } error.setLength(0); if (_nChooseIfRepeat == Xls2srmForm.JUSTFORCHECK) { // newObj = makeNewObject2(clazz, newObj, // Xls2srmForm.COVERDATAWHENREPEAT); } else { newObj = makeNewObject2(clazz, newObj, _nChooseIfRepeat, isToTemp); } if (newObj == null) { if (_nChooseIfRepeat == Xls2srmForm.MERGEDATAWHENREPEAT) { _repeatList.add("" + nCount + "!"); } else { _repeatList.add("" + nCount + "!"); } nCount++; continue; } if (_nChooseIfRepeat != Xls2srmForm.JUSTFORCHECK) { try { save(newObj, _errorDataList); } catch (Exception e) { logger.debug(":"); e.printStackTrace(); _repeatList.add("" + nCount + ":" + e.getMessage()); nCount++; continue; } convert2RelatedTable(newObj, oldObj, false, errorDataEachList, _nChooseIfRepeat); convertImpactFactorTo3index(newObj, oldObj); convertDupTagForHistory(newObj, oldObj, sThisTime); doAfterImport(oldObj, newObj, _nChooseIfRepeat); } nCount++; } // endwhile lastUpdate(); long lEnd = System.currentTimeMillis(); System.out.println(clazz.getName() + ": all finished - time used: " + (lEnd - lStart) + "ms"); } catch (Exception ex) { throw new PureException(PureException.DATABASE_ACCESS, "class=" + clazz.getName(), ex); } finally { if (objs != null) objs.clear(); } return nCount - 1; }
From source file:com.lp.webapp.zemecs.CommandZE.java
public synchronized String execute(HttpServletRequest request, HttpServletResponse response) throws Exception { super.execute(request, response); if (request.getCookies() != null) { for (int i = 0; i < request.getCookies().length; i++) { Cookie cookie = request.getCookies()[i]; cookie.setMaxAge(10000000);// w w w . j a v a2s.c o m response.addCookie(cookie); } } String mandant = request.getParameter("mandant"); Locale localeLogon = getMandantFac().getLocaleDesHauptmandanten(); String locale = request.getParameter("locale"); String localeCookie = getCookieValue("locale", request); if (localeCookie != null && localeCookie.length() > 3) { locale = localeCookie; } if (locale != null && locale.length() > 3) { localeLogon = new Locale(locale.substring(0, 2), locale.substring(2, 4)); } TheClientDto theclientDto = null; synchronized (mutex) { theclientDto = getLogonFac().logon(Helper.getFullUsername(sUser), Helper.getMD5Hash((sUser + new String("lpwebappzemecs")).toCharArray()), localeLogon, null, null, new Timestamp(System.currentTimeMillis())); if (mandant != null && mandant.length() > 0) { theclientDto = getLogonFac().logon(Helper.getFullUsername(sUser), Helper.getMD5Hash((sUser + "lpwebappzemecs").toCharArray()), localeLogon, mandant, theclientDto, new Timestamp(System.currentTimeMillis())); } else { BenutzerDto benutzerDto = getBenutzerFac().benutzerFindByCBenutzerkennung("lpwebappzemecs", new String(Helper.getMD5Hash("lpwebappzemecs" + "lpwebappzemecs"))); mandant = benutzerDto.getMandantCNrDefault(); } } getTheClient(request, response).setTheClientDto(theclientDto); if (command.equals(TheApp.CMD_ZE_BDESTATION)) { String ausweis = request.getParameter("ausweis"); getTheClient(request, response).setSMsg(""); if (ausweis != null && ausweis.length() > 1) { // Personal suchen PersonalDto personalDto = getPersonalFac().personalFindByCAusweis(ausweis.substring(2)); if (personalDto != null) { personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); HashMap<String, Serializable> hmParameter = new HashMap<String, Serializable>(); ZeitdatenDto zeitdatenDto = new ZeitdatenDto(); zeitdatenDto.setCWowurdegebucht("BDE-Station " + request.getRemoteHost()); zeitdatenDto.setPersonalIId(personalDto.getIId()); hmParameter.put("zeitdaten", zeitdatenDto); hmParameter.put("person", personalDto.getPartnerDto().formatFixTitelName1Name2()); getTheClient(request, response).setData(hmParameter); setSJSPNext("bdestation2.jsp"); return getSJSPNext(); } else { getTheClient(request, response) .setSMsg("Ausweis " + ausweis + " bei diesem Mandanten nicht gefunden! "); } } else { getTheClient(request, response).setSMsg(""); } } if (command.equals(TheApp.CMD_ZE_BDESTATION2)) { HashMap<String, Serializable> hmParameter = (HashMap<String, Serializable>) getTheClient(request, response).getData(); ZeitdatenDto zeitdatenDto = (ZeitdatenDto) hmParameter.get("zeitdaten"); zeitdatenDto.setTZeit(new Timestamp(System.currentTimeMillis())); String option = request.getParameter("option"); getTheClient(request, response).setSMsg(""); ParametermandantDto parameterBdeMitTaetigkeitDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_PERSONAL, ParameterFac.PARAMETER_BDE_MIT_TAETIGKEIT); Boolean bBdeMitTaetigkeit = (Boolean) parameterBdeMitTaetigkeitDto.getCWertAsObject(); com.lp.server.artikel.service.ArtikelDto artikelDtoDefaultArbeiztszeit = null; if (bBdeMitTaetigkeit == false) { ParametermandantDto parameterDtoDefaultarbeitszeit = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_DEFAULT_ARBEITSZEITARTIKEL); if (parameterDtoDefaultarbeitszeit != null && parameterDtoDefaultarbeitszeit.getCWert() != null && !parameterDtoDefaultarbeitszeit.getCWert().trim().equals("")) { try { artikelDtoDefaultArbeiztszeit = getArtikelFac() .artikelFindByCNr(parameterDtoDefaultarbeitszeit.getCWert(), theclientDto); zeitdatenDto.setArtikelIId(artikelDtoDefaultArbeiztszeit.getIId()); } catch (RemoteException ex2) { myLogger.error("Default-Arbeitszeitartikel " + parameterDtoDefaultarbeitszeit.getCWert() + " nicht vorhanden.", ex2); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } else { myLogger.error("Default-Arbeitszeitartikel " + parameterDtoDefaultarbeitszeit.getCWert() + " nicht definiert."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } if (option != null && option.length() > 2) { // Auftrag if (option.substring(0, 2).equals("$A") || option.substring(0, 3).equals("$EA")) { try { ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMERNFORMAT_STELLEN_GESCHAEFTSJAHR); if (parameterDto != null) { if (parameterDto.getCWert() != null && parameterDto.getCWert().equals("4")) { if (option.charAt(4) == 47) { option = "$A" + Helper.konvertiereDatum2StelligAuf4Stellig(option.substring(2, 4)) + option.substring(4); } } } AuftragDto auftragDto = null; if (option.substring(0, 2).equals("$A")) { auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, option.substring(2), theclientDto); } else { auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, option.substring(3), theclientDto); } AuftragpositionDto[] auftragpositionDtos = getAuftragpositionFac() .auftragpositionFindByAuftrag(auftragDto.getIId()); if (auftragDto.getAuftragstatusCNr() .equals(com.lp.server.auftrag.service.AuftragServiceFac.AUFTRAGSTATUS_ERLEDIGT)) { setSJSPNext("bdestation.jsp"); getTheClient(request, response).setSMsg("Auf Auftrag " + option.substring(2) + " mit Status " + auftragDto.getAuftragstatusCNr().trim() + " darf nicht gebucht werden! "); return getSJSPNext(); } else { if (auftragpositionDtos != null && auftragpositionDtos.length > 0) { zeitdatenDto.setIBelegartpositionid(auftragpositionDtos[0].getIId()); zeitdatenDto.setIBelegartid(auftragpositionDtos[0].getBelegIId()); zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_AUFTRAG); hmParameter.put("beleg", "A" + option.substring(2)); MaschineDto maschineDto = new MaschineDto(); maschineDto.setCBez(""); hmParameter.put("maschine", maschineDto); if (option.substring(0, 2).equals("$A")) { if (bBdeMitTaetigkeit == false) { setSJSPNext("bdestation.jsp"); getTheClient(request, response).setSMsg( getMeldungGebuchtFuerBDE(getTheClient(request, response).getData(), artikelDtoDefaultArbeiztszeit.getCNr(), theclientDto)); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); return getSJSPNext(); } else { setSJSPNext("bdestation4.jsp"); } } else { hmParameter.put("beleg", "A" + option.substring(3)); setSJSPNext("bdestation3gutschlecht.jsp"); } return getSJSPNext(); } else { getTheClient(request, response) .setSMsg("Auftrag " + option.substring(2) + " hat keine Positionen! "); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } } catch (EJBExceptionLP ex) { getTheClient(request, response).setSMsg( "Auftrag '" + option.substring(2) + "' bei diesem Mandanten nicht gefunden! "); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } // Los else if (option.substring(0, 2).equals("$L") || option.substring(0, 3).equals("$EL")) { try { ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_BELEGNUMMERNFORMAT_STELLEN_GESCHAEFTSJAHR); if (parameterDto != null) { if (parameterDto.getCWert() != null && parameterDto.getCWert().equals("4")) { if (option.charAt(4) == 47) { option = "$L" + Helper.konvertiereDatum2StelligAuf4Stellig(option.substring(2, 4)) + option.substring(4); } } } com.lp.server.fertigung.service.LosDto losDto = null; if (option.substring(0, 2).equals("$L")) { losDto = getFertigungFac().losFindByCNrMandantCNr(option.substring(2), mandant); } else { losDto = getFertigungFac().losFindByCNrMandantCNr(option.substring(3), mandant); } // WH 18-01-2006: Los benoetigt keine Positionen if (losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_ANGELEGT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_AUSGEGEBEN) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_GESTOPPT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_ERLEDIGT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_STORNIERT)) { getTheClient(request, response) .setSMsg("Auf Los " + option.substring(2) + " mit Status " + losDto.getStatusCNr().trim() + " darf nicht gebucht werden! "); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else { zeitdatenDto.setIBelegartid(losDto.getIId()); zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); if (option.substring(0, 2).equals("$L")) { hmParameter.put("beleg", "L" + option.substring(2)); if (bBdeMitTaetigkeit == false) { setSJSPNext("bdestation.jsp"); getTheClient(request, response).setSMsg( getMeldungGebuchtFuerBDE(getTheClient(request, response).getData(), artikelDtoDefaultArbeiztszeit.getCNr(), theclientDto)); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, true, theclientDto); return getSJSPNext(); } else { setSJSPNext("bdestation3.jsp"); } } else { hmParameter.put("beleg", "L" + option.substring(3)); setSJSPNext("bdestation3gutschlecht.jsp"); } return getSJSPNext(); } } catch (EJBExceptionLP ex) { getTheClient(request, response) .setSMsg("Los '" + option.substring(2) + "' bei diesem Mandanten nicht gefunden! "); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } // Kombi-Code else if (option.length() > 1 && option.substring(0, 2).equals("$V")) { setSJSPNext("bdestation.jsp"); if (option.length() < 12) { getTheClient(request, response).setSMsg("Kombicode muss 10-Stellig sein "); return getSJSPNext(); } try { ParametermandantDto parameter = getParameterFac().getMandantparameter( theclientDto.getMandant(), ParameterFac.KATEGORIE_FERTIGUNG, ParameterFac.PARAMETER_LOSNUMMER_AUFTRAGSBEZOGEN); int iVerlaengerungLosnummer = 0; if ((Integer) parameter.getCWertAsObject() >= 1) { iVerlaengerungLosnummer = 2; } com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(option.substring(2, 12 + iVerlaengerungLosnummer), mandant); // WH 18-01-2006: Los benoetigt keine Positionen if (losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_ANGELEGT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_AUSGEGEBEN) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_GESTOPPT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_ERLEDIGT) || losDto.getStatusCNr() .equals(com.lp.server.fertigung.service.FertigungFac.STATUS_STORNIERT)) { getTheClient(request, response) .setSMsg("Auf Los " + option.substring(2) + " mit Status " + losDto.getStatusCNr().trim() + " darf nicht gebucht werden! "); } else { zeitdatenDto.setIBelegartid(losDto.getIId()); zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); String maschine = option.substring(12 + iVerlaengerungLosnummer, 14 + iVerlaengerungLosnummer); String taetigkeit = option.substring(14 + iVerlaengerungLosnummer); MaschineDto maschineDto = new MaschineDto(); maschineDto.setCBez(maschine); hmParameter.put("maschine", maschineDto); hmParameter.put("beleg", "L" + option.substring(2, 12 + iVerlaengerungLosnummer)); com.lp.server.artikel.service.ArtikelDto artikelDto = null; try { artikelDto = getArtikelFac().artikelFindByCNr(taetigkeit, theclientDto); zeitdatenDto.setArtikelIId( getArtikelFac().artikelFindByCNr(taetigkeit, theclientDto).getIId()); } catch (RemoteException ex2) { getTheClient(request, response) .setSMsg("T\u00E4tigkeit '" + taetigkeit + "' nicht gefunden! "); return getSJSPNext(); } com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(losDto.getIId(), artikelDto.getIId()); if (dtos != null && dtos.length > 0) { if (!maschine.trim().equals("") && !maschine.equals("--")) { try { Integer maschineIId = getZeiterfassungsFac() .maschineFindByCIdentifikationsnr(maschine).getIId(); com.lp.server.fertigung.service.LossollarbeitsplanDto[] sollaDtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit( zeitdatenDto.getIBelegartid(), zeitdatenDto.getArtikelIId()); if (sollaDtos != null && sollaDtos.length > 0) { MaschinenzeitdatenDto maschinenzeitdatenDto = new MaschinenzeitdatenDto(); maschinenzeitdatenDto.setLossollarbeitsplanIId(sollaDtos[0].getIId()); maschinenzeitdatenDto.setMaschineIId(maschineIId); maschinenzeitdatenDto .setPersonalIIdGestartet(zeitdatenDto.getPersonalIId()); maschinenzeitdatenDto.setTVon(zeitdatenDto.getTZeit()); getZeiterfassungsFac().createMaschinenzeitdaten(maschinenzeitdatenDto, theclientDto); } } catch (RemoteException ex2) { getTheClient(request, response) .setSMsg("Maschine '" + maschine + "' nicht gefunden! "); return getSJSPNext(); } } // PJ 15388 if (maschine.equals("--")) { hmParameter.put("fertig", ""); if (dtos != null && dtos.length > 0) { LossollarbeitsplanDto dto = dtos[0]; dto.setBFertig(Helper.boolean2Short(true)); try { getFertigungFac().updateLossollarbeitsplan(dto, theclientDto); getTheClient(request, response).setSMsg(getMeldungGebuchtFuerBDE( getTheClient(request, response).getData(), taetigkeit.substring(2), theclientDto)); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } else { getTheClient(request, response).setSMsg("Das Los " + option.substring(2, 12 + iVerlaengerungLosnummer) + " hat keinen entsprechen Arbeitsgang mit der Artikelnummer " + taetigkeit.substring(2)); return getSJSPNext(); } } zeitdatenDto.setIBelegartpositionid(dtos[0].getIId()); } else { com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtosErstePosition = getFertigungFac() .lossollarbeitsplanFindByLosIId(losDto.getIId()); if (dtosErstePosition != null && dtosErstePosition.length > 0) { zeitdatenDto.setIBelegartpositionid(dtosErstePosition[0].getIId()); } else { // Bemerkung getTheClient(request, response) .setSMsg("Los " + option.substring(2) + " hat keine Positionen"); return getSJSPNext(); } } try { getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, true, theclientDto); getTheClient(request, response).setSMsg(getMeldungGebuchtFuerBDE( getTheClient(request, response).getData(), taetigkeit, theclientDto)); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } } catch (EJBExceptionLP ex) { getTheClient(request, response) .setSMsg("Los '" + option.substring(2) + "' bei diesem Mandanten nicht gefunden! "); return getSJSPNext(); } return getSJSPNext(); } // Sondertaetigkeit else { if (option.substring(1).equals("SALDO")) { java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis() - 3600000 * 24); ts = com.lp.util.Helper.cutTimestamp(ts); Calendar c = Calendar.getInstance(); c.setTimeInMillis(ts.getTime()); String saldoMitUrlaub = ""; try { saldoMitUrlaub = getZeiterfassungsFac().erstelleMonatsAbrechnungFuerBDE( zeitdatenDto.getPersonalIId(), new Integer(c.get(Calendar.YEAR)), new Integer(c.get(Calendar.MONTH)), false, new java.sql.Date(ts.getTime()), theclientDto, true, false); } catch (EJBExceptionLP ex7) { if (ex7.getCause() instanceof EJBExceptionLP) { EJBExceptionLP e = (EJBExceptionLP) ex7.getCause(); if (e != null && e .getCode() == EJBExceptionLP.FEHLER_PERSONAL_FEHLER_BEI_EINTRITTSDATUM) { getTheClient(request, response) .setSMsg(new String("FEHLER_PERSONAL_FEHLER_BEI_EINTRITTSDATUM")); return getSJSPNext(); } } getTheClient(request, response).setSMsg(new String(ex7.getMessage())); setSJSPNext("bdestation.jsp"); } getTheClient(request, response).setSMsg(saldoMitUrlaub); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else if (option.substring(1).equals("TAGESSALDO")) { java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis() - 3600000 * 24); Double d = getZeiterfassungsFac().berechneTagesArbeitszeit(zeitdatenDto.getPersonalIId(), new java.sql.Date(System.currentTimeMillis()), theclientDto); StringBuffer sb = new StringBuffer(); sb.append("Tagesarbeitszeit bis jetzt: " + Helper.rundeKaufmaennisch(new BigDecimal(d.doubleValue()), 2).doubleValue() + "h"); sb.append("\r\n"); getTheClient(request, response).setSMsg(new String(sb)); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else { try { TaetigkeitDto taetigkeitDto = getZeiterfassungsFac() .taetigkeitFindByCNr(option.substring(1), theclientDto); zeitdatenDto.setTaetigkeitIId(taetigkeitDto.getIId()); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, true, theclientDto); getTheClient(request, response).setSMsg( getMeldungGebuchtFuerBDE(hmParameter, option.substring(1), theclientDto)); } catch (EJBExceptionLP ex1) { getTheClient(request, response) .setSMsg("Sondert\u00E4tigkeit '" + option.substring(1) + "' nicht gefunden! "); } hmParameter.put("zeitdaten", zeitdatenDto); setSJSPNext("bdestation.jsp"); } getTheClient(request, response).setData(hmParameter); return getSJSPNext(); } } } else if (command.equals(TheApp.CMD_ZE_BDESTATION3)) { HashMap<String, Serializable> hmParameter = (HashMap<String, Serializable>) getTheClient(request, response).getData(); ZeitdatenDto zeitdatenDto = (ZeitdatenDto) hmParameter.get("zeitdaten"); zeitdatenDto.setTZeit(new Timestamp(System.currentTimeMillis())); String option = request.getParameter("option"); getTheClient(request, response).setSMsg(""); if (option != null && option.length() > 0) { if (option.equals("$PLUS")) { // CK: PJ5589 String beleg = (String) hmParameter.get("beleg"); if (beleg.substring(0, 1).equals("L")) { com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(beleg.substring(1), mandant); ZeitverteilungDto zeitverteilungDto = new ZeitverteilungDto(); zeitverteilungDto.setLosIId(losDto.getIId()); zeitverteilungDto.setTZeit(new Timestamp(System.currentTimeMillis())); zeitverteilungDto.setPersonalIId(zeitdatenDto.getPersonalIId()); try { getZeiterfassungsFac().createZeitverteilung(zeitverteilungDto, theclientDto); } catch (EJBExceptionLP e) { hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); getTheClient(request, response) .setSMsg("Los '" + losDto.getCNr() + "' wurde bereits mit $PLUS gebucht"); setSJSPNext("bdestation2.jsp"); return getSJSPNext(); } } else { getTheClient(request, response).setSMsg("$PLUS ist nur f\u00FCr Lose m\u00F6glich."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); setSJSPNext("bdestation2.jsp"); return getSJSPNext(); } else if (option.equals("$STORNO")) { getZeiterfassungsFac().removeZeitverteilungByPersonalIIdUndTag(zeitdatenDto.getPersonalIId(), new Timestamp(System.currentTimeMillis())); hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); setSJSPNext("bdestation2.jsp"); } else if (option.equals("$SPERREN")) { String beleg = (String) hmParameter.get("beleg"); if (beleg.substring(0, 1).equals("L")) { com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(beleg.substring(1), mandant); if (losDto.getStuecklisteIId() != null) { Integer artikelIId = getStuecklisteFac() .stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theclientDto) .getArtikelIId(); SperrenDto sDto = getArtikelFac().sperrenFindBDurchfertigung(theclientDto); if (sDto != null) { ArtikelsperrenDto aspDtoVorhanden = getArtikelFac() .artikelsperrenFindByArtikelIIdSperrenIIdOhneExc(artikelIId, sDto.getIId()); if (aspDtoVorhanden == null) { ArtikelsperrenDto spDto = new ArtikelsperrenDto(); spDto.setArtikelIId(artikelIId); spDto.setSperrenIId(sDto.getIId()); PersonalDto pDto = getPersonalFac() .personalFindByPrimaryKey(zeitdatenDto.getPersonalIId(), theclientDto); String grund = beleg + " " + pDto.getPartnerDto().getCName1nachnamefirmazeile1() + " " + pDto.getPartnerDto().getCName2vornamefirmazeile2(); if (grund.length() > 80) { grund = grund.substring(0, 79); } spDto.setCGrund(grund); getArtikelFac().createArtikelsperren(spDto, theclientDto); getTheClient(request, response) .setSMsg("Los " + losDto.getCNr() + " durch Fertigung gesperrt."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else { getTheClient(request, response) .setSMsg("St\u00FCckliste bereits durch Fertigung gesperrt."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } else { getTheClient(request, response) .setSMsg("Fertigungssperre in Grunddaten nicht definiert."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } else if (option.equals("$FERTIG")) { hmParameter.put("fertig", ""); MaschineDto maschineDto = new MaschineDto(); maschineDto.setCBez("Fertig"); hmParameter.put("maschine", maschineDto); getTheClient(request, response).setData(hmParameter); setSJSPNext("bdestation4.jsp"); return getSJSPNext(); } else { setSJSPNext("bdestation.jsp"); // MASCHINE if (option.substring(0, 2).equals("$M")) { String maschine = option.substring(2); try { MaschineDto maschineDto = getZeiterfassungsFac() .maschineFindByCIdentifikationsnr(maschine); hmParameter.put("zeitdaten", zeitdatenDto); hmParameter.put("maschine", maschineDto); setSJSPNext("bdestation4.jsp"); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Maschine '" + maschine + "' nicht gefunden! "); return getSJSPNext(); } } // TAETIGKEIT else { String taetigkeit = option.substring(2); com.lp.server.artikel.service.ArtikelDto artikelDto = null; try { artikelDto = getArtikelFac().artikelFindByCNr(taetigkeit, theclientDto); zeitdatenDto.setArtikelIId( getArtikelFac().artikelFindByCNr(taetigkeit, theclientDto).getIId()); } catch (EJBExceptionLP ex2) { getTheClient(request, response) .setSMsg("T\u00E4tigkeit '" + taetigkeit + "' nicht gefunden! "); return getSJSPNext(); } String beleg = (String) hmParameter.get("beleg"); if (beleg.substring(0, 1).equals("L")) { com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(beleg.substring(1), mandant); ZeitverteilungDto[] zvDtos = getZeiterfassungsFac() .zeitverteilungFindByPersonalIIdUndTag(zeitdatenDto.getPersonalIId(), new Timestamp(System.currentTimeMillis())); if (zvDtos != null & zvDtos.length > 0) { if (zvDtos[0].getArtikelIId() == null) { // Abschlussbuchung eintragen ZeitverteilungDto zv = zvDtos[0]; zv.setIId(null); zv.setLosIId(losDto.getIId()); zv.setArtikelIId(artikelDto.getIId()); try { getZeiterfassungsFac().createZeitverteilung(zv, theclientDto); } catch (EJBExceptionLP e) { hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); getTheClient(request, response).setSMsg( "Los '" + losDto.getCNr() + "' wurde bereits mit $PLUS gebucht"); setSJSPNext("bdestation2.jsp"); return getSJSPNext(); } hmParameter.remove("beleg"); getTheClient(request, response).setData(hmParameter); getTheClient(request, response) .setSMsg("Beginnbuchungen f\u00FCr 'Zeitverteilung' abgeschlossen"); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } } com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(losDto.getIId(), artikelDto.getIId()); if (dtos != null && dtos.length > 0) { zeitdatenDto.setIBelegartpositionid(dtos[0].getIId()); } else { com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtosErstePosition = getFertigungFac() .lossollarbeitsplanFindByLosIId(losDto.getIId()); if (dtosErstePosition != null && dtosErstePosition.length > 0) { zeitdatenDto.setIBelegartpositionid(dtosErstePosition[0].getIId()); } else { // Bemerkung getTheClient(request, response) .setSMsg("Los " + beleg.substring(1) + " hat keine Positionen"); return getSJSPNext(); } } } try { getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, true, theclientDto); getTheClient(request, response).setSMsg(getMeldungGebuchtFuerBDE( getTheClient(request, response).getData(), taetigkeit, theclientDto)); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } } } } else if (command.equals(TheApp.CMD_ZE_BDESTATION3GUTSCHLECHT)) { HashMap<Object, Object> hmParameter = (HashMap<Object, Object>) getTheClient(request, response) .getData(); ZeitdatenDto zeitdatenDto = (ZeitdatenDto) hmParameter.get("zeitdaten"); String gutstueck = request.getParameter("gutstueck"); if (gutstueck.equals("")) { gutstueck = "0"; } String schlechtstueck = request.getParameter("schlechtstueck"); if (schlechtstueck.equals("")) { schlechtstueck = "0"; } BigDecimal bdGutstueck = null; BigDecimal bdSchlechtstueck = null; try { bdGutstueck = new BigDecimal(gutstueck); bdSchlechtstueck = new BigDecimal(schlechtstueck); } catch (NumberFormatException ex9) { getTheClient(request, response) .setSMsg("Gut/Schlechtst\u00FCck d\u00FCrfen nur aus Zahlen bestehen."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } if (bdGutstueck.doubleValue() < 0 || bdSchlechtstueck.doubleValue() < 0) { getTheClient(request, response).setSMsg("Gut/Schlechtst\u00FCck m\u00FCssen Positiv sein."); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } Integer taetigkeitIId_Ende = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_ENDE, theclientDto).getIId(); ZeitdatenDto zeitdatenDtoEnde = new ZeitdatenDto(); zeitdatenDtoEnde.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime() + 1000)); zeitdatenDtoEnde.setTaetigkeitIId(taetigkeitIId_Ende); zeitdatenDtoEnde.setPersonalIId(zeitdatenDto.getPersonalIId()); // Hole letzten begonnenen Auftrag und hinterlege gut/schlechtstueck Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria liste = session.createCriteria(FLRZeitdaten.class); liste.add(Expression.eq(ZeiterfassungFac.FLR_ZEITDATEN_PERSONAL_I_ID, zeitdatenDto.getPersonalIId())); liste.add(Expression.gt(ZeiterfassungFac.FLR_ZEITDATEN_T_ZEIT, Helper.cutTimestamp(zeitdatenDto.getTZeit()))); liste.addOrder(Order.desc(ZeiterfassungFac.FLR_ZEITDATEN_T_ZEIT)); List<?> letzerAuftrag = liste.list(); Iterator<?> it = letzerAuftrag.iterator(); ZeitdatenDto letzterAuftrag = null; while (it.hasNext()) { FLRZeitdaten flrLetzerAuftrag = (FLRZeitdaten) it.next(); if (flrLetzerAuftrag.getC_belegartnr() != null && flrLetzerAuftrag.getI_belegartid() != null) { if (flrLetzerAuftrag.getC_belegartnr().equals(zeitdatenDto.getCBelegartnr()) && flrLetzerAuftrag.getI_belegartid().equals(zeitdatenDto.getIBelegartid())) { letzterAuftrag = getZeiterfassungsFac() .zeitdatenFindByPrimaryKey(flrLetzerAuftrag.getI_id(), theclientDto); break; } } else if (flrLetzerAuftrag.getTaetigkeit_i_id() != null && flrLetzerAuftrag.getTaetigkeit_i_id().equals(taetigkeitIId_Ende)) { break; } } if (letzterAuftrag != null) { // Hier eintragen // letzterAuftrag.setNGut(bdGutstueck); // letzterAuftrag.setNSchlecht(bdSchlechtstueck); getZeiterfassungsFac().updateZeitdaten(letzterAuftrag, theclientDto); // und buche ENDE getZeiterfassungsFac().createZeitdaten(zeitdatenDtoEnde, false, false, false, theclientDto); } else { // was nun? // Beginn und ende Buchen getZeiterfassungsFac().createZeitdaten(zeitdatenDto, false, false, false, theclientDto); getZeiterfassungsFac().createZeitdaten(zeitdatenDtoEnde, false, false, false, theclientDto); } session.close(); getTheClient(request, response).setSMsg( getMeldungGebuchtFuerBDE(getTheClient(request, response).getData(), null, theclientDto)); setSJSPNext("bdestation.jsp"); return getSJSPNext(); } else if (command.equals(TheApp.CMD_ZE_BDESTATION4)) { HashMap<?, ?> hmParameter = (HashMap<?, ?>) getTheClient(request, response).getData(); ZeitdatenDto zeitdatenDto = (ZeitdatenDto) hmParameter.get("zeitdaten"); zeitdatenDto.setTZeit(new Timestamp(System.currentTimeMillis())); String taetigkeit = request.getParameter("taetigkeit"); getTheClient(request, response).setSMsg(""); if (taetigkeit != null && taetigkeit.length() > 0) { setSJSPNext("bdestation.jsp"); com.lp.server.artikel.service.ArtikelDto artikelDto = null; try { artikelDto = getArtikelFac().artikelFindByCNr(taetigkeit.substring(2), theclientDto); zeitdatenDto.setArtikelIId(artikelDto.getIId()); } catch (EJBExceptionLP ex2) { getTheClient(request, response) .setSMsg("T\u00E4tigkeit '" + taetigkeit.substring(2) + "' nicht gefunden! "); return getSJSPNext(); } String beleg = (String) hmParameter.get("beleg"); if (beleg.substring(0, 1).equals("L")) { com.lp.server.fertigung.service.LosDto losDto = getFertigungFac() .losFindByCNrMandantCNr(beleg.substring(1), mandant); com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(losDto.getIId(), artikelDto.getIId()); if (hmParameter.containsKey("fertig")) { if (dtos != null && dtos.length > 0) { LossollarbeitsplanDto dto = dtos[0]; dto.setBFertig(Helper.boolean2Short(true)); ParametermandantDto parameterDtoTriggerTops = getParameterFac().getMandantparameter( mandant, ParameterFac.KATEGORIE_FERTIGUNG, ParameterFac.PARAMETER_TRIGGERT_TRUMPF_TOPS_ABLIEFERUNG); try { getFertigungFac().updateLossollarbeitsplan(dto, theclientDto); // PJ 17916 if (parameterDtoTriggerTops.getCWert() != null && parameterDtoTriggerTops.getCWert().trim().length() > 0) { ArtikelDto aDto = getArtikelFac().artikelFindByCNrMandantCNrOhneExc( parameterDtoTriggerTops.getCWert().trim(), theclientDto.getMandant()); if (aDto == null) { getTheClient(request, response).setSMsg( "Der Artikel, der im Parameter TRIGGERT_TRUMPF_TOPS_ABLIEFERUNG hinterlegt ist, exisitiert nicht! " + parameterDtoTriggerTops.getCWert()); return getSJSPNext(); } if (aDto != null && aDto.getIId().equals(artikelDto.getIId())) { getFertigungFac().bucheTOPSArtikelAufHauptLager(losDto.getIId(), theclientDto, null); } } getTheClient(request, response) .setSMsg(getMeldungGebuchtFuerBDE(getTheClient(request, response).getData(), taetigkeit.substring(2), theclientDto)); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } else { getTheClient(request, response).setSMsg("Das Los " + beleg.substring(1) + " hat keinen entsprechen Arbeitsgang mit der Artikelnummer " + taetigkeit.substring(2)); return getSJSPNext(); } } if (dtos != null && dtos.length > 0) { zeitdatenDto.setIBelegartpositionid(dtos[0].getIId()); } else { com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtosErstePosition = getFertigungFac() .lossollarbeitsplanFindByLosIId(losDto.getIId()); if (dtosErstePosition != null && dtosErstePosition.length > 0) { zeitdatenDto.setIBelegartpositionid(dtosErstePosition[0].getIId()); } else { // Bemerkung getTheClient(request, response) .setSMsg("Los " + beleg.substring(1) + " hat keine Positionen"); return getSJSPNext(); } } } // Maschinenzeitdaten buchen (geht nur auf Los) if (hmParameter.containsKey("maschine") && zeitdatenDto.getCBelegartnr() != null && zeitdatenDto.getCBelegartnr().equals(LocaleFac.BELEGART_LOS) && zeitdatenDto.getIBelegartid() != null) { MaschineDto maschineDto = (MaschineDto) hmParameter.get("maschine"); com.lp.server.fertigung.service.LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(zeitdatenDto.getIBelegartid(), zeitdatenDto.getArtikelIId()); if (dtos != null && dtos.length > 0) { MaschinenzeitdatenDto maschinenzeitdatenDto = new MaschinenzeitdatenDto(); maschinenzeitdatenDto.setPersonalIIdGestartet(zeitdatenDto.getPersonalIId()); maschinenzeitdatenDto.setTVon(zeitdatenDto.getTZeit()); maschinenzeitdatenDto.setLossollarbeitsplanIId(dtos[0].getIId()); maschinenzeitdatenDto.setMaschineIId(maschineDto.getIId()); getZeiterfassungsFac().createMaschinenzeitdaten(maschinenzeitdatenDto, theclientDto); } } try { getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); getTheClient(request, response).setSMsg(getMeldungGebuchtFuerBDE( getTheClient(request, response).getData(), taetigkeit.substring(2), theclientDto)); return getSJSPNext(); } catch (EJBExceptionLP ex2) { getTheClient(request, response).setSMsg("Fehler beim Buchen!"); return getSJSPNext(); } } } else if (command.equals(TheApp.CMD_ZE_MECS_ONLCHECK)) { String beleg = request.getParameter("beleg"); if (beleg == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'beleg' muss angegeben werden"); return null; } beleg = beleg.trim(); if (beleg.length() < 2) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'beleg' muss mindestens 2 Zeichen lang sein"); return null; } String status = null; BigDecimal offeneMenge = new BigDecimal(0); String ueberliefernErlaubt = "1"; try { if (beleg.substring(0, 2).equals("$A")) { AuftragDto auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, beleg.substring(2), theclientDto); status = auftragDto.getAuftragstatusCNr(); } else if (beleg.substring(0, 2).equals("$L")) { LosDto losDto = getFertigungFac().losFindByCNrMandantCNr(beleg.substring(2), mandant); status = losDto.getStatusCNr(); BigDecimal erledigteMenge = getFertigungFac().getErledigteMenge(losDto.getIId(), theclientDto); offeneMenge = losDto.getNLosgroesse().subtract(erledigteMenge); if (losDto.getStuecklisteIId() != null) { StuecklisteDto stkDto = getStuecklisteFac() .stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theclientDto); if (Helper.short2boolean(stkDto.getBUeberlieferbar()) == false) { ueberliefernErlaubt = "0"; } } } } catch (EJBExceptionLP ex8) { status = "Beleg existiert nicht"; } StringBuffer sb = new StringBuffer(); sb.append(Helper.fitString2Length(beleg, 40, ' ')); sb.append(Helper.fitString2Length(status, 40, ' ')); // Offene Menge 17 stellig DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(); dfs.setDecimalSeparator('.'); DecimalFormat dFormat = new DecimalFormat("0.0000", dfs); if (offeneMenge.doubleValue() < 0) { sb.append("-"); } else { sb.append(" "); } sb.append(Helper.fitString2LengthAlignRight(dFormat.format(offeneMenge.abs()), 16, ' ')); sb.append(ueberliefernErlaubt); sb.append("\r\n"); getTheClient(request, response).setSMsg(new String(sb)); } else if (command.equals(TheApp.CMD_ZE_MECS_ONLINECHECK_ABL)) { String beleg = request.getParameter("beleg"); String menge = request.getParameter("menge"); if (beleg == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'beleg' muss angegeben werden"); return null; } if (menge == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'menge' muss angegeben werden"); return null; } BigDecimal nMenge = new BigDecimal(menge.trim()); beleg = beleg.trim(); if (beleg.length() < 2) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'beleg' muss mindestens 2 Zeichen lang sein"); return null; } String status = null; BigDecimal offeneMenge = new BigDecimal(0); boolean ueberliefernErlaubt = true; try { if (beleg.substring(0, 2).equals("$A")) { AuftragDto auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, beleg.substring(2), theclientDto); status = auftragDto.getAuftragstatusCNr(); } else if (beleg.substring(0, 2).equals("$L")) { LosDto losDto = getFertigungFac().losFindByCNrMandantCNr(beleg.substring(2), mandant); status = losDto.getStatusCNr(); BigDecimal erledigteMenge = getFertigungFac().getErledigteMenge(losDto.getIId(), theclientDto); offeneMenge = losDto.getNLosgroesse().subtract(erledigteMenge); if (losDto.getStuecklisteIId() != null) { StuecklisteDto stkDto = getStuecklisteFac() .stuecklisteFindByPrimaryKey(losDto.getStuecklisteIId(), theclientDto); ueberliefernErlaubt = Helper.short2boolean(stkDto.getBUeberlieferbar()); } } } catch (EJBExceptionLP ex8) { status = "Beleg existiert nicht"; } StringBuffer sb = new StringBuffer(); // Zeile1 sb.append(Helper.fitString2Length(beleg, 40, ' ')); sb.append(Helper.fitString2Length(status, 40, ' ')); sb.append("\r\n"); // Offene Menge 17 stellig // Zeile2 // Zuerst 3 Stellen Fehlernummer: 000= Abliefern moeglich 001= // Status erlaubt kein Abliefern - 002= // Menge der Ablieferung zu gross String fehlercode = ""; String text1 = ""; String text2 = ""; if (status.equals(LocaleFac.STATUS_ERLEDIGT) || status.equals(LocaleFac.STATUS_STORNIERT) || status.equals(LocaleFac.STATUS_ANGELEGT) || status.equals(LocaleFac.STATUS_GESTOPPT)) { fehlercode = "001"; text1 = "Nicht erlaubt!"; text2 = "Status: " + status; } else { if (nMenge.doubleValue() <= offeneMenge.doubleValue()) { // Wenn Abliefermenge kleiner als Offene Menge, dann =OK fehlercode = "000"; text1 = "Ablieferung"; text2 = "erlaubt"; } else { if (ueberliefernErlaubt == false) { fehlercode = "002"; text1 = "Nicht erlaubt!"; DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(); dfs.setDecimalSeparator('.'); DecimalFormat dFormat = new DecimalFormat("#####0", dfs); text2 = "Nur " + Helper.fitString2LengthAlignRight(dFormat.format(offeneMenge), 6, ' ') + " Stk offen"; } else { fehlercode = "000"; text1 = "Ablieferung"; text2 = "erlaubt"; } } } sb.append(fehlercode); // 37 Leerstellen sb.append(Helper.fitString2Length("", 37, ' ')); // Text1 sb.append(Helper.fitString2Length(text1, 20, ' ')); // Text2 sb.append(Helper.fitString2Length(text2, 20, ' ')); sb.append("\r\n"); getTheClient(request, response).setSMsg(new String(sb)); } else if (command.equals(TheApp.CMD_ZE_MECS_AUSWEISE)) { String fingerprint = request.getParameter("fingerprint"); if (fingerprint != null) { StringBuffer sb = new StringBuffer(); PersonalfingerDto[] personalfingerDtos = getZutrittscontrollerFac().personalfingerFindAll(); for (int i = 0; i < personalfingerDtos.length; i++) { PersonalfingerDto personalfingerDto = personalfingerDtos[i]; String id = personalfingerDto.getIId() + ""; id = Helper.fitString2LengthAlignRight(id, 8, '0'); StringBuffer tmp = new StringBuffer(); // unbedingt nach ausweis sortieren tmp.setLength(0); tmp.append(Helper.fitString2Length(id, 20, ' ')); PersonalDto personalDto = getPersonalFac() .personalFindByPrimaryKey(personalfingerDto.getPersonalIId(), theclientDto); tmp.append(Helper.fitString2LengthAlignRight(personalDto.getCPersonalnr() + "", 5, '0')); // persnr tmp.append(Helper.fitString2Length("", 3, ' ')); // zutrkl String sVorname = personalDto.getPartnerDto().getCName2vornamefirmazeile2(); String sNachname = personalDto.getPartnerDto().getCName1nachnamefirmazeile1(); if (sVorname == null) { sVorname = ""; } tmp.append(Helper.fitString2Length(sVorname + " " + sNachname, 25, ' ')); // name sb.append(tmp).append("\r\n"); } getTheClient(request, response).setSMsg(new String(sb)); } else { // Ausweisnummern holen StringBuffer sb = new StringBuffer(); PersonalDto[] personalDtos = getPersonalFac().personalFindByCAusweisSortiertNachCAusweis(); ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_PERSONAL, ParameterFac.PARAMETER_LEAD_IN_AUSWEISNUMMER_MECS); String leadIn = ""; if (parameterDto.getCWert() != null) { leadIn = parameterDto.getCWert().trim(); } for (int i = 0; i < personalDtos.length; i++) { PersonalDto personalDto = personalDtos[i]; personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); StringBuffer tmp = new StringBuffer(); // unbedingt nach ausweis sortieren tmp.setLength(0); tmp.append(Helper.fitString2Length(leadIn + personalDto.getCAusweis(), 20, ' ')); // ausweis tmp.append(Helper.fitString2LengthAlignRight(personalDto.getCPersonalnr() + "", 5, '0')); // persnr tmp.append(Helper.fitString2Length("", 3, ' ')); // zutrkl String sVorname = personalDto.getPartnerDto().getCName2vornamefirmazeile2(); String sNachname = personalDto.getPartnerDto().getCName1nachnamefirmazeile1(); if (sVorname == null) { sVorname = ""; } tmp.append(Helper.fitString2Length(sVorname + " " + sNachname, 25, ' ')); // name sb.append(tmp).append("\r\n"); } getTheClient(request, response).setSMsg(new String(sb)); } } else if (command.equals(TheApp.CMD_ZE_MECS_ERLAUBTETAETIGKEITEN)) { Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria liste = session.createCriteria(FLRTaetigkeit.class); liste.add(Expression.eq(ZeiterfassungFac.FLR_TAETIGKEIT_B_BDEBUCHBAR, Helper.boolean2Short(true))); liste.addOrder(Order.asc("c_nr")); List<?> lReisezeiten = liste.list(); Iterator<?> it = lReisezeiten.iterator(); StringBuffer sb = new StringBuffer(); while (it.hasNext()) { FLRTaetigkeit flrTaetigkeit = (FLRTaetigkeit) it.next(); StringBuffer tmp = new StringBuffer(); tmp.setLength(0); tmp.append('$'); tmp.append(Helper.fitString2LengthAlignRight(flrTaetigkeit.getC_nr(), 14, ' ')); // persnr sb.append(tmp).append("\r\n"); } session.close(); getTheClient(request, response).setSMsg(new String(sb)); } else if (command.equals(TheApp.CMD_ZE_MECS_PERSSTAMM)) { // Personalstamm holen StringBuffer sb = new StringBuffer(); // unbedingt nach personalnummer sortieren PersonalDto[] personalDtos = getPersonalFac().personalFindByCAusweisSortiertNachPersonalnr(); for (int i = 0; i < personalDtos.length; i++) { PersonalDto personalDto = personalDtos[i]; personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); StringBuffer tmp = new StringBuffer(); tmp.setLength(0); tmp.append(Helper.fitString2LengthAlignRight(personalDto.getCPersonalnr() + "", 5, '0')); // persnr tmp.append(Helper.fitString2Length("", 3, ' ')); // zutrkl String sVorname = personalDto.getPartnerDto().getCName2vornamefirmazeile2(); String sNachname = personalDto.getPartnerDto().getCName1nachnamefirmazeile1(); if (sVorname == null) { sVorname = ""; } tmp.append(Helper.fitString2Length(sVorname + " " + sNachname, 25, ' ')); // name sb.append(tmp).append("\r\n"); } getTheClient(request, response).setSMsg(new String(sb)); } else if (command.equals(TheApp.CMD_ZE_MECS_SALDO)) { String ausweis = ""; try { ausweis = request.getParameter("ausweis"); } catch (Exception e) { getTheClient(request, response).setBResponseIsReady(true); response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Parameter 'ausweis' nicht angegeben"); myLogger.error("doPost; Exception aufgetreten", e); return null; } if (ausweis.startsWith("$P")) { ausweis = ausweis.substring(2); } ausweis = ausweis.trim(); ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_PERSONAL, ParameterFac.PARAMETER_LEAD_IN_AUSWEISNUMMER_MECS); String leadIn = ""; if (parameterDto.getCWert() != null) { leadIn = parameterDto.getCWert().trim(); int iLaenge = leadIn.length(); if (ausweis.length() > iLaenge) { ausweis = ausweis.substring(iLaenge); } } PersonalDto personalDto = getPersonalFac().personalFindByCAusweis(ausweis); personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); java.sql.Timestamp ts = new java.sql.Timestamp(System.currentTimeMillis() - 3600000 * 24); ts = com.lp.util.Helper.cutTimestamp(ts); Calendar c = Calendar.getInstance(); c.setTimeInMillis(ts.getTime()); String urlaub = null; try { urlaub = getZeiterfassungsFac().erstelleMonatsAbrechnungFuerBDE(personalDto.getIId(), new Integer(c.get(Calendar.YEAR)), new Integer(c.get(Calendar.MONTH)), false, new java.sql.Date(ts.getTime()), theclientDto, true, false); } catch (EJBExceptionLP ex7) { if (ex7.getCause() instanceof EJBExceptionLP) { EJBExceptionLP e = (EJBExceptionLP) ex7.getCause(); if (e != null && e.getCode() == EJBExceptionLP.FEHLER_PERSONAL_FEHLER_BEI_EINTRITTSDATUM) { getTheClient(request, response) .setSMsg(new String("FEHLER_PERSONAL_FEHLER_BEI_EINTRITTSDATUM")); return getSJSPNext(); } } getTheClient(request, response).setSMsg(new String(ex7.getMessage())); setSJSPNext("bdestation.jsp"); } getTheClient(request, response).setSMsg(urlaub); } else if (command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHEN) || command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHENFINGERPRINT)) { String record = null; if (command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHEN)) { record = request.getParameter("record"); } else { record = request.getParameter("recordfingerprint"); } record = Helper.fitString2Length(record, 200, ' '); String schluesselNr = record.substring(19, 39).trim(); String zeit = record.substring(5, 19); String taetigkeit = record.substring(3, 5); // SP753 String terminal = record.substring(64, 86); // Damit die Sollzeitenueberschreitungspruefeung nicht durchgefuehrt // wird: terminal = "ZT:" + terminal; terminal = terminal.trim(); boolean bAbliefern = false; ArtikelDto artikelDtoTaetigkeit = null; if (record.substring(130, 155).trim().equals("$ABLIEFERN")) { bAbliefern = true; } else { artikelDtoTaetigkeit = getArtikelFac().artikelFindByCNrOhneExc(record.substring(132, 155).trim(), theclientDto); } ZeitdatenDto zeitdatenDto = new ZeitdatenDto(); ZeitdatenDto zeitdatenDtoEnde = new ZeitdatenDto(); zeitdatenDto.setCWowurdegebucht(terminal); zeitdatenDtoEnde.setCWowurdegebucht(terminal); Calendar c = Calendar.getInstance(); c.set(Calendar.YEAR, new Integer(zeit.substring(0, 4)).intValue()); c.set(Calendar.MONTH, new Integer(zeit.substring(4, 6)).intValue() - 1); c.set(Calendar.DAY_OF_MONTH, new Integer(zeit.substring(6, 8)).intValue()); c.set(Calendar.HOUR_OF_DAY, new Integer(zeit.substring(8, 10)).intValue()); c.set(Calendar.MINUTE, new Integer(zeit.substring(10, 12)).intValue()); c.set(Calendar.SECOND, new Integer(zeit.substring(12, 14)).intValue()); zeitdatenDto.setTZeit(new java.sql.Timestamp(c.getTime().getTime())); zeitdatenDtoEnde.setTZeit(new java.sql.Timestamp(c.getTime().getTime() + 1000)); zeitdatenDto.setTAendern(zeitdatenDto.getTZeit()); zeitdatenDtoEnde.setTAendern(zeitdatenDtoEnde.getTZeit()); // Wenn hier NullPointerException, dann kann kein Personal mit // Ausweisnummer gefunden werden Integer personalIId = null; if (schluesselNr.startsWith("$P")) { try { personalIId = getPersonalFac().personalFindByCAusweis(schluesselNr.substring(2)).getIId(); } catch (NullPointerException ex11) { String msg = "Person mit Ausweis " + schluesselNr + " nicht vorhanden. ORIGINAL-Request:" + record; myLogger.error(msg, ex11); response.setStatus(HttpServletResponse.SC_OK); return getSJSPNext(); } } else { if (command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHEN)) { try { personalIId = getPersonalFac().personalFindByCAusweis(schluesselNr).getIId(); } catch (NullPointerException ex11) { String msg = "Person mit Ausweis " + schluesselNr + " nicht vorhanden. ORIGINAL-Request:" + record; myLogger.error(msg, ex11); response.setStatus(HttpServletResponse.SC_OK); return getSJSPNext(); } } else if (command.equals(TheApp.CMD_ZE_MECS_ZEITBUCHENFINGERPRINT)) { Integer i = new Integer(schluesselNr); getZutrittscontrollerFac().personalfingerFindByPrimaryKey(i).getPersonalIId(); personalIId = getZutrittscontrollerFac().personalfingerFindByPrimaryKey(i).getPersonalIId(); } } zeitdatenDto.setPersonalIId(personalIId); zeitdatenDtoEnde.setPersonalIId(personalIId); zeitdatenDtoEnde.setTaetigkeitIId(getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_ENDE, theclientDto).getIId()); // Taetigkeiten, die MECS liefert muessen in der Tabelle LP_KEYVALUE // uebersetzt werden (als String) // Bsp: MECSTERMINAL|B1|KOMMT|java.lang.String try { String sTaetigkeit = null; if (schluesselNr.startsWith("$P")) { sTaetigkeit = record.substring(110, 126); Integer taetigkeitIId_Ende = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_ENDE, theclientDto).getIId(); String gutStueck = record.substring(160, 172); String schlechtStueck = record.substring(173, 189); BigDecimal nGutStueck = new BigDecimal(gutStueck.trim()); BigDecimal nSchlechtStueck = new BigDecimal(schlechtStueck.trim()); Integer artikelIId = null; if (artikelDtoTaetigkeit == null) { ParametermandantDto parameterDto = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_DEFAULT_ARBEITSZEITARTIKEL); if (parameterDto != null && parameterDto.getCWert() != null && !parameterDto.getCWert().trim().equals("")) { try { artikelIId = getArtikelFac().artikelFindByCNr(parameterDto.getCWert(), theclientDto) .getIId(); } catch (RemoteException ex2) { myLogger.error("Default-Arbeitszeitartikel " + parameterDto.getCWert() + " nicht vorhanden.", ex2); return getSJSPNext(); } } else { myLogger.error( "Default-Arbeitszeitartikel " + parameterDto.getCWert() + " nicht definiert."); return getSJSPNext(); } } else { artikelIId = artikelDtoTaetigkeit.getIId(); } if (sTaetigkeit.startsWith("$A")) { AuftragDto auftragDto = null; try { if (sTaetigkeit.startsWith("$A")) { auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, sTaetigkeit.substring(2).trim(), theclientDto); } else { auftragDto = getAuftragFac().auftragFindByMandantCNrCNr(mandant, sTaetigkeit.substring(3).trim(), theclientDto); } } catch (RemoteException ex8) { zeitdatenDto.setCBemerkungZuBelegart( "Auftrag " + sTaetigkeit.substring(2).trim() + " konnte nicht gefunden werden"); zeitdatenDto.setTaetigkeitIId(taetigkeitIId_Ende); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); return getSJSPNext(); } // Wenn Auftragsbeginn -> if (sTaetigkeit.startsWith("$A")) { AuftragpositionDto[] auftragpositionDtos = getAuftragpositionFac() .auftragpositionFindByAuftrag(auftragDto.getIId()); if (auftragpositionDtos.length > 0) { zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_AUFTRAG); zeitdatenDto.setArtikelIId(artikelIId); zeitdatenDto.setIBelegartid(auftragDto.getIId()); zeitdatenDto.setIBelegartpositionid(auftragpositionDtos[0].getIId()); } else { myLogger.error("Buchung von MECS-TERMINAL, Ausweis: " + schluesselNr + ", Auftrag" + sTaetigkeit + " hat keine Positionen."); return getSJSPNext(); } } } else if (sTaetigkeit.startsWith("$EL") || sTaetigkeit.startsWith("$L")) { com.lp.server.fertigung.service.LosDto losDto = null; try { if (sTaetigkeit.startsWith("$L")) { losDto = getFertigungFac().losFindByCNrMandantCNr( sTaetigkeit.substring(2).trim(), mandant); } else { losDto = getFertigungFac().losFindByCNrMandantCNr( sTaetigkeit.substring(3).trim(), mandant); } } catch (EJBExceptionLP ex10) { zeitdatenDto.setCBemerkungZuBelegart( "Los " + sTaetigkeit.substring(2).trim() + " konnte nicht gefunden werden"); zeitdatenDto.setTaetigkeitIId(taetigkeitIId_Ende); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); return getSJSPNext(); } if (bAbliefern == true) { LosablieferungDto losablieferungDto = new LosablieferungDto(); losablieferungDto.setLosIId(losDto.getIId()); String menge = record.substring(155, 170); BigDecimal nMenge = new BigDecimal(menge.trim()); losablieferungDto.setNMenge(nMenge); losablieferungDto.setTAendern(zeitdatenDto.getTZeit()); if (nMenge.doubleValue() > 0) { // lt. FM BigDecimal bdBisherErledigt = getFertigungFac().getErledigteMenge(losDto.getIId(), theclientDto); if (bdBisherErledigt.add(nMenge).doubleValue() > losDto.getNLosgroesse() .doubleValue()) { getFertigungFac().aendereLosgroesse(losDto.getIId(), bdBisherErledigt.add(nMenge).intValue(), false, theclientDto); // SP933 losDto.setNLosgroesse(bdBisherErledigt.add(nMenge)); } try { getFertigungFac().bucheMaterialAufLos(losDto, nMenge, false, false, true, theclientDto, null, false); } catch (Exception e1) { // Terminal darf keinen Fehler bekommen } getFertigungFac().createLosablieferungFuerTerminalOhnePreisberechnung( losablieferungDto, theclientDto, false); try { getFertigungFac().aktualisiereNachtraeglichPreiseAllerLosablieferungen( losDto.getIId(), theclientDto, true); } catch (Exception e) { // PREISBERECHNUNG FEHLGESCHLAGEN myLogger.error("Preisberechnung der Ablieferungen f\u00FCr Los " + losDto.getCNr() + " fehlgeschlagen. Bitte manuell ausfuehren", e); } } // PJ17748 ParametermandantDto parameterAblieferungBuchtEndeDto = getParameterFac() .getMandantparameter(mandant, ParameterFac.KATEGORIE_FERTIGUNG, ParameterFac.PARAMETER_ABLIEFERUNG_BUCHT_ENDE); Boolean bAblieferungBuchtEndeDto = (Boolean) parameterAblieferungBuchtEndeDto .getCWertAsObject(); if (bAblieferungBuchtEndeDto == true) { zeitdatenDto.setTaetigkeitIId(taetigkeitIId_Ende); zeitdatenDto.setCBelegartnr(null); zeitdatenDto.setArtikelIId(null); zeitdatenDto.setIBelegartid(null); zeitdatenDto.setIBelegartpositionid(null); Integer zeitdatenIId = getZeiterfassungsFac().createZeitdaten(zeitdatenDto, false, false, false, theclientDto); // PJ17797 if (nMenge.doubleValue() > 0) { if (getMandantFac().darfAnwenderAufZusatzfunktionZugreifen( MandantFac.ZUSATZFUNKTION_STUECKRUECKMELDUNG, theclientDto)) { Integer lossollarbeitsplanIId = null; LossollarbeitsplanDto[] sollDtos = getFertigungFac() .lossollarbeitsplanFindByLosIId(losDto.getIId()); if (sollDtos.length > 0) { lossollarbeitsplanIId = sollDtos[sollDtos.length - 1].getIId(); } else { lossollarbeitsplanIId = getFertigungFac() .defaultArbeitszeitartikelErstellen(losDto, theclientDto); } LosgutschlechtDto losgutschlechtDto = new LosgutschlechtDto(); losgutschlechtDto.setZeitdatenIId(zeitdatenIId); losgutschlechtDto.setLossollarbeitsplanIId(lossollarbeitsplanIId); losgutschlechtDto.setNGut(nMenge); losgutschlechtDto.setNSchlecht(new BigDecimal(0)); losgutschlechtDto.setNInarbeit(new BigDecimal(0)); getFertigungFac().createLosgutschlecht(losgutschlechtDto, theclientDto); } } } return getSJSPNext(); } // Wenn Auftragsbeginn -> if (sTaetigkeit.startsWith("$L")) { zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); zeitdatenDto.setArtikelIId(artikelIId); zeitdatenDto.setIBelegartid(losDto.getIId()); LossollarbeitsplanDto[] sollDtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(losDto.getIId(), artikelIId); if (sollDtos.length > 0) { zeitdatenDto.setIBelegartpositionid(sollDtos[0].getIId()); } } else { // Hole letzten begonnenen Auftrag und hinterlege // gut/schlechtstueck Session session = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria liste = session.createCriteria(FLRZeitdaten.class); liste.add(Expression.eq(ZeiterfassungFac.FLR_ZEITDATEN_PERSONAL_I_ID, personalIId)); /* * liste.add(Expression.eq(ZeiterfassungFac. * FLR_ZEITDATEN_C_BELEGARTNR , * LocaleFac.BELEGART_LOS)); liste.add(Expression.eq * (ZeiterfassungFac.FLR_ZEITDATEN_I_BELEGARTID, * losDto.getIId())); */ liste.add(Expression.gt(ZeiterfassungFac.FLR_ZEITDATEN_T_ZEIT, Helper.cutTimestamp(zeitdatenDto.getTZeit()))); liste.addOrder(Order.desc(ZeiterfassungFac.FLR_ZEITDATEN_T_ZEIT)); // liste.setMaxResults(1); List<?> lReisezeiten = liste.list(); Iterator<?> it = lReisezeiten.iterator(); zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); zeitdatenDto.setArtikelIId(artikelIId); zeitdatenDto.setIBelegartid(losDto.getIId()); ZeitdatenDto letzterAuftrag = null; while (it.hasNext()) { FLRZeitdaten flrLetzerAuftrag = (FLRZeitdaten) it.next(); if (flrLetzerAuftrag.getC_belegartnr() != null && flrLetzerAuftrag.getI_belegartid() != null) { if (flrLetzerAuftrag.getC_belegartnr().equals(zeitdatenDto.getCBelegartnr()) && flrLetzerAuftrag.getI_belegartid() .equals(zeitdatenDto.getIBelegartid())) { letzterAuftrag = getZeiterfassungsFac().zeitdatenFindByPrimaryKey( flrLetzerAuftrag.getI_id(), theclientDto); break; } } else if (flrLetzerAuftrag.getTaetigkeit_i_id() != null && flrLetzerAuftrag.getTaetigkeit_i_id().equals(taetigkeitIId_Ende)) { break; } } if (letzterAuftrag != null) { // Hier eintragen ZeitdatenDto auftragsbeginn = getZeiterfassungsFac() .zeitdatenFindByPrimaryKey(letzterAuftrag.getIId(), theclientDto); // auftragsbeginn.setNGut(nGutStueck); // auftragsbeginn.setNSchlecht(nSchlechtStueck); getZeiterfassungsFac().updateZeitdaten(auftragsbeginn, theclientDto); // und buche ENDE zeitdatenDto = zeitdatenDtoEnde; } else { zeitdatenDto.setCBelegartnr(LocaleFac.BELEGART_LOS); zeitdatenDto.setArtikelIId(artikelIId); zeitdatenDto.setIBelegartid(losDto.getIId()); // zeitdatenDto.setNGut(nGutStueck); // zeitdatenDto.setNSchlecht(nSchlechtStueck); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); zeitdatenDto = zeitdatenDtoEnde; } session.close(); /* * if (lReisezeiten.size() > 0) { FLRZeitdaten * flrZeitdaten = (FLRZeitdaten) * lReisezeiten.iterator().next(); * * ZeitdatenDto losbeginn = getZeiterfassungsFac(). * zeitdatenFindByPrimaryKey(flrZeitdaten.getI_id(), * cNrUser); * * losbeginn.setNGut(nGutStueck); * losbeginn.setNSchlecht(nSchlechtStueck); * getZeiterfassungsFac().updateZeitdaten(losbeginn, * cNrUser); //und buche ENDE zeitdatenDto = * zeitdatenDtoEnde; } else { * zeitdatenDto.setCBelegartnr * (LocaleFac.BELEGART_LOS); * zeitdatenDto.setArtikelIId(artikelIId); * zeitdatenDto.setIBelegartid(losDto.getIId()); * zeitdatenDto.setNGut(nGutStueck); * zeitdatenDto.setNSchlecht(nSchlechtStueck); * getZeiterfassungsFac * ().createZeitdaten(zeitdatenDto, true, true, * cNrUser); zeitdatenDto = zeitdatenDtoEnde; } * * session.close(); */ } } else { zeitdatenDto.setTaetigkeitIId(getZeiterfassungsFac().taetigkeitFindByCNr( Helper.fitString2Length(sTaetigkeit.substring(1), 15, ' '), theclientDto).getIId()); } } else { sTaetigkeit = getSystemServicesFac() .keyvalueFindByPrimaryKey(SystemServicesFac.KEYVALUE_MECSTERMINAL, taetigkeit) .getCValue(); if (sTaetigkeit != null && !sTaetigkeit.equals(ZeiterfassungFac.TAETIGKEIT_REISE.trim())) { zeitdatenDto.setTaetigkeitIId(getZeiterfassungsFac() .taetigkeitFindByCNr(Helper.fitString2Length(sTaetigkeit, 15, ' '), theclientDto) .getIId()); } } // Resezeiten wenn Taetigkeit REISE if (sTaetigkeit != null && sTaetigkeit.equals(ZeiterfassungFac.TAETIGKEIT_REISE.trim())) { ReiseDto reiseDto = new ReiseDto(); reiseDto.setPersonalIId(personalIId); // Letzte Reise von HEUTE holen // Heute 00:00 Uhr Calendar cTemp = Calendar.getInstance(); cTemp.setTimeInMillis(zeitdatenDto.getTZeit().getTime()); cTemp.set(Calendar.HOUR_OF_DAY, 0); cTemp.set(Calendar.MINUTE, 0); cTemp.set(Calendar.SECOND, 0); cTemp.set(Calendar.MILLISECOND, 0); Session sessReise = FLRSessionFactory.getFactory().openSession(); org.hibernate.Criteria reisezeiten = sessReise.createCriteria(FLRReise.class); reisezeiten.add(Expression.eq(ZeiterfassungFac.FLR_REISE_PERSONAL_I_ID, personalIId)); reisezeiten.add(Expression.ge(ZeiterfassungFac.FLR_REISE_T_ZEIT, new Timestamp(cTemp.getTimeInMillis()))); reisezeiten.add(Expression.lt(ZeiterfassungFac.FLR_REISE_T_ZEIT, zeitdatenDto.getTZeit())); reisezeiten.addOrder(Order.desc(ZeiterfassungFac.FLR_REISE_T_ZEIT)); reisezeiten.setMaxResults(1); List<?> lReisezeiten = reisezeiten.list(); if (lReisezeiten.size() == 0) { reiseDto.setBBeginn(Helper.boolean2Short(true)); } else { FLRReise flrReise = (FLRReise) lReisezeiten.get(0); if (Helper.short2boolean(flrReise.getB_beginn()) == true) { reiseDto.setBBeginn(Helper.boolean2Short(false)); } else { reiseDto.setBBeginn(Helper.boolean2Short(true)); } } reiseDto.setTZeit(zeitdatenDto.getTZeit()); Integer partnerMandant = getMandantFac().mandantFindByPrimaryKey(mandant, theclientDto) .getPartnerIId(); PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(partnerMandant, theclientDto); if (partnerDto.getLandplzortIId() == null) { throw new Exception("Mandant hat kein Land hinterlegt"); } DiaetenDto[] dtos = getZeiterfassungsFac() .diaetenFindByLandIId(partnerDto.getLandplzortDto().getIlandID()); if (dtos.length == 0) { // Einen anlegen DiaetenDto dto = new DiaetenDto(); dto.setCBez(partnerDto.getLandplzortDto().getLandDto().getCName()); dto.setLandIId(partnerDto.getLandplzortDto().getIlandID()); reiseDto.setDiaetenIId(getZeiterfassungsFac().createDiaeten(dto)); } else { reiseDto.setDiaetenIId(dtos[0].getIId()); } getZeiterfassungsFac().createReise(reiseDto, theclientDto); response.setStatus(HttpServletResponse.SC_OK); response.flushBuffer(); getTheClient(request, response).setBResponseIsReady(true); return getSJSPNext(); } } catch (Exception ex3) { ex3.printStackTrace(); // lt. FM darf an das MECS-Terminal nur Status=200 // zurueckgegeben werden response.setStatus(HttpServletResponse.SC_OK); return getSJSPNext(); } getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); response.setStatus(HttpServletResponse.SC_OK); response.flushBuffer(); getTheClient(request, response).setBResponseIsReady(true); } else if (command.equals(TheApp.CMD_ZE_QUICKZE)) { } else if (command.equals(TheApp.CMD_ZE_RECHNERSTART1)) { int i = 0; } else if (command.equals(TheApp.CMD_ZE_QUICKZEITERFASSUNG)) { if (getTheClient(request, response).getSMsg() == null) { getTheClient(request, response).setSMsg(""); } String username = getCookieValue("anmeldename", request); String password = getCookieValue("pass", request); if (localeCookie != null && localeCookie.length() > 3) { localeLogon = new Locale(localeCookie.substring(0, 2), localeCookie.substring(2, 4)); } if (username == null || password == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Es wurde kein Benutzername oder Kennwort angegeben. Bitte verwenden Sie http://?????cmd=quickze"); } try { theclientDto = getLogonFac().logon(Helper.getFullUsername(username), Helper.getMD5Hash((username + password).toCharArray()), localeLogon, null, null, new Timestamp(System.currentTimeMillis())); } catch (EJBExceptionLP ex12) { int code = ex12.getCode(); if (code == EJBExceptionLP.FEHLER_BEI_FINDBYPRIMARYKEY) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzername '" + username + "' konnte im System nicht gefunden werden"); } else if (code == EJBExceptionLP.FEHLER_FALSCHES_KENNWORT) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Kennwort f\u00FCr Benutzername '" + username + "' ist falsch."); } else if (code == EJBExceptionLP.FEHLER_BENUTZER_IST_GESPERRT) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzername '" + username + "' ist gesperrt."); } else if (code == EJBExceptionLP.FEHLER_BENUTZER_IST_NICHT_MEHR_GUELTIG) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzername '" + username + "' ist nicht mehr g\u00FCltig."); } else if (code == EJBExceptionLP.FEHLER_BENUTZER_DARF_SICH_BEI_DIESEM_MANDANTEN_NICHT_ANMELDEN) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzername '" + username + "' darf sich bei dem Mandanten nicht anmelden."); } else if (code == EJBExceptionLP.FEHLER_BENUTZER_KEIN_EINTRAG_IN_BENUTZERMANDANT) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Kein Eintrag in Benutzermandant f\u00FCr Benutzername '" + username + "'."); } else if (ex12.getCode() == EJBExceptionLP.FEHLER_MAXIMALE_BENUTZERANZAHL_UEBERSCHRITTEN) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Maximale Benutzeranzahl \u00FCberschritten '" + username + "'."); return null; } else if (code == EJBExceptionLP.FEHLER_BENUTZER_DARF_SICH_IN_DIESER_SPRACHE_NICHT_ANMELDEN) { ArrayList<?> al = ((EJBExceptionLP) ex12.getCause()).getAlInfoForTheClient(); String zusatz = ""; if (al.size() > 0 && al.get(0) instanceof Locale) { Locale loc = (Locale) al.get(0); zusatz = "(" + loc.getDisplayLanguage() + "|" + loc.getDisplayCountry() + ")"; } response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Benutzer '" + username + "' darf sich in '" + zusatz + "' nicht anmelden."); } return null; } PersonalDto personalDto = getPersonalFac().personalFindByPrimaryKey(theclientDto.getIDPersonal(), theclientDto); personalDto.setPartnerDto( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto)); HashMap<String, Object> hmData = new HashMap<String, Object>(); TextDto textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.sondertaetigkeit", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_sondertaetigkeit", textDto.getCText()); } else { hmData.put("bezeichnung_sondertaetigkeit", "Sondert\u00E4tigkeit"); } // Belegarten holen Map<String, String> b = getZeiterfassungsFac().getBebuchbareBelegarten(theclientDto); hmData.put("belegarten", b); String firstBelegart = (String) b.keySet().iterator().next(); String belegart = null; if (request.getParameter("belegart") == null) { belegart = firstBelegart; } else { belegart = request.getParameter("belegart"); } if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.offenerauftrag", theclientDto.getMandant(), theclientDto.getLocUiAsString()); } else if (belegart.equals(LocaleFac.BELEGART_LOS)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.offeneslos", theclientDto.getMandant(), theclientDto.getLocUiAsString()); } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.offenesangebot", theclientDto.getMandant(), theclientDto.getLocUiAsString()); } else if (belegart.equals(LocaleFac.BELEGART_PROJEKT)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.offenesprojekt", theclientDto.getMandant(), theclientDto.getLocUiAsString()); } if (textDto != null) { hmData.put("bezeichnung_offenerauftrag", textDto.getCText()); } else { hmData.put("bezeichnung_offenerauftrag", "Offener Beleg"); } textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.taetigkeit", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_taetigkeit", textDto.getCText()); } else { hmData.put("bezeichnung_taetigkeit", "T\u00E4tigkeit"); } textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.kunde", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_kunde", textDto.getCText()); } else { hmData.put("bezeichnung_kunde", "Kunde"); } textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.belegart", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_belegart", textDto.getCText()); } else { hmData.put("bezeichnung_belegart", "Belegart"); } textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.bemerkung", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { hmData.put("bezeichnung_bemerkung", textDto.getCText()); } else { hmData.put("bezeichnung_bemerkung", "Bemerkung"); } hmData.put("locale", Helper.locale2String(localeLogon).trim()); hmData.put("mandant", mandant); hmData.put("person", personalDto.getPartnerDto().formatAnrede()); // Kunden mit offenen Auftraegen holen Session session = FLRSessionFactory.getFactory().openSession(); String sQuery = ""; if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { sQuery = "SELECT flrkunde.flrpartner.c_name1nachnamefirmazeile1, flrkunde.flrpartner.c_name2vornamefirmazeile2, flrkunde.flrpartner.i_id " + " FROM FLRAuftrag AS auftrag WHERE (auftrag.auftragstatus_c_nr='" + LocaleFac.STATUS_OFFEN + "' OR auftrag.auftragstatus_c_nr='" + LocaleFac.STATUS_TEILERLEDIGT + "') AND auftrag.mandant_c_nr='" + theclientDto.getMandant() + "'" + " GROUP BY flrkunde.flrpartner.c_name1nachnamefirmazeile1, flrkunde.flrpartner.c_name2vornamefirmazeile2, flrkunde.flrpartner.i_id ORDER BY flrkunde.flrpartner.c_name1nachnamefirmazeile1 ASC"; } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { sQuery = "SELECT flrkunde.flrpartner.c_name1nachnamefirmazeile1, flrkunde.flrpartner.c_name2vornamefirmazeile2, flrkunde.flrpartner.i_id " + " FROM FLRAngebot AS angebot WHERE (angebot.angebotstatus_c_nr='" + LocaleFac.STATUS_OFFEN + "') AND angebot.mandant_c_nr='" + theclientDto.getMandant() + "'" + " GROUP BY flrkunde.flrpartner.c_name1nachnamefirmazeile1, flrkunde.flrpartner.c_name2vornamefirmazeile2, flrkunde.flrpartner.i_id ORDER BY flrkunde.flrpartner.c_name1nachnamefirmazeile1 ASC"; } else if (belegart.equals(LocaleFac.BELEGART_PROJEKT)) { sQuery = "SELECT flrpartner.c_name1nachnamefirmazeile1, flrpartner.c_name2vornamefirmazeile2, flrpartner.i_id " + " FROM FLRProjekt AS projekt WHERE projekt.status_c_nr<>'" + ProjektServiceFac.PROJEKT_STATUS_STORNIERT + "' AND projekt.t_erledigungsdatum IS NULL AND projekt.mandant_c_nr='" + theclientDto.getMandant() + "'" + " GROUP BY flrpartner.c_name1nachnamefirmazeile1, flrpartner.c_name2vornamefirmazeile2, flrpartner.i_id ORDER BY flrpartner.c_name1nachnamefirmazeile1 ASC"; } LinkedHashMap<Object, Object> tmKunden = new LinkedHashMap<Object, Object>(); Integer firstKunde = null; if (!belegart.equals(LocaleFac.BELEGART_LOS)) { Query kunden = session.createQuery(sQuery); List<?> resultList = kunden.list(); Iterator<?> resultListIterator = resultList.iterator(); int row = 0; while (resultListIterator.hasNext()) { Object o[] = (Object[]) resultListIterator.next(); if (row == 0) { firstKunde = (Integer) o[2]; } if (o[1] == null) { tmKunden.put(o[2], o[0]); } else { tmKunden.put(o[2], o[0] + " " + o[1]); } row++; } session.close(); } else { sQuery = "SELECT los " + " FROM FLRLosReport AS los WHERE (los.status_c_nr='" + LocaleFac.STATUS_AUSGEGEBEN + "' OR los.status_c_nr='" + LocaleFac.STATUS_IN_PRODUKTION + "' OR los.status_c_nr='" + LocaleFac.STATUS_TEILERLEDIGT + "') AND los.mandant_c_nr='" + theclientDto.getMandant() + "' AND ( los.flrauftrag IS NOT NULL OR los.flrkunde IS NOT NULL) "; Query kunden = session.createQuery(sQuery); List<?> resultList = kunden.list(); Iterator<?> resultListIterator = resultList.iterator(); int row = 0; while (resultListIterator.hasNext()) { FLRLosReport los = (FLRLosReport) resultListIterator.next(); Integer partnerIId = null; String kundenname = ""; if (los.getFlrauftrag() != null) { partnerIId = los.getFlrauftrag().getFlrkunde().getFlrpartner().getI_id(); kundenname += los.getFlrauftrag().getFlrkunde().getFlrpartner() .getC_name1nachnamefirmazeile1(); if (los.getFlrauftrag().getFlrkunde().getFlrpartner() .getC_name2vornamefirmazeile2() != null) { kundenname += " " + los.getFlrauftrag().getFlrkunde().getFlrpartner() .getC_name2vornamefirmazeile2(); } } else { partnerIId = los.getFlrkunde().getFlrpartner().getI_id(); kundenname += los.getFlrkunde().getFlrpartner().getC_name1nachnamefirmazeile1(); if (los.getFlrkunde().getFlrpartner().getC_name2vornamefirmazeile2() != null) { kundenname += " " + los.getFlrkunde().getFlrpartner().getC_name2vornamefirmazeile2(); } } if (row == 0) { firstKunde = partnerIId; } if (!tmKunden.containsKey(partnerIId)) { tmKunden.put(partnerIId, kundenname); } row++; } tmKunden = (LinkedHashMap) Helper.sortByValue(tmKunden); // leeren Kunden einfuegen tmKunden.put("", "--KEIN--"); session.close(); } hmData.put("kunden", tmKunden); // Sondertaetigkeiten holen Map<Integer, String> m = getZeiterfassungsFac() .getAllSprSondertaetigkeitenNurBDEBuchbar(theclientDto.getLocUiAsString()); hmData.put("taetigkeiten", m); // Kunden holen Integer kunde = null; if (request.getParameter("kunde") == null) { kunde = firstKunde; } else { if (!request.getParameter("kunde").equals("")) { if (!request.getParameter("kunde").equals(" ")) { if (!request.getParameter("kunde").trim().equals("null")) { kunde = new Integer(request.getParameter("kunde").trim()); } } } } hmData.put("selectedbelegart", belegart); session = FLRSessionFactory.getFactory().openSession(); if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { sQuery = "SELECT auftrag.i_id, auftrag.c_nr, auftrag.c_bez, auftrag.t_liefertermin, auftrag.flrkunde.flrpartner.i_id " + " FROM FLRAuftrag AS auftrag WHERE (auftrag.auftragstatus_c_nr='" + LocaleFac.STATUS_OFFEN + "' OR auftrag.auftragstatus_c_nr='" + LocaleFac.STATUS_TEILERLEDIGT + "') AND auftrag.flrkunde.flrpartner.i_id=" + kunde + " AND auftrag.b_versteckt=0 ORDER BY auftrag.c_nr ASC"; } else if (belegart.equals(LocaleFac.BELEGART_LOS)) { sQuery = "SELECT los.i_id, los.c_nr, los.c_projekt, los.t_produktionsende, coalesce(auftragpartner.i_id,kundepartner.i_id) " + " FROM FLRLosReport AS los LEFT OUTER JOIN los.flrauftrag.flrkunde.flrpartner as auftragpartner LEFT OUTER JOIN los.flrkunde.flrpartner as kundepartner WHERE (los.status_c_nr='" + LocaleFac.STATUS_AUSGEGEBEN + "' OR los.status_c_nr='" + LocaleFac.STATUS_IN_PRODUKTION + "' OR los.status_c_nr='" + LocaleFac.STATUS_TEILERLEDIGT + "') "; if (kunde != null) { sQuery += " AND ( auftragpartner.i_id=" + kunde + " OR kundepartner.i_id=" + kunde + ")"; } else { sQuery += " AND ( auftragpartner.i_id IS NULL AND kundepartner.i_id IS NULL)"; } sQuery += " ORDER BY los.c_nr ASC"; } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { sQuery = "SELECT angebot.i_id, angebot.c_nr, angebot.c_bez, angebot.t_realisierungstermin, angebot.flrkunde.flrpartner.i_id " + " FROM FLRAngebot AS angebot WHERE angebot.angebotstatus_c_nr='" + LocaleFac.STATUS_OFFEN + "' AND angebot.flrkunde.flrpartner.i_id=" + kunde + " ORDER BY angebot.c_nr ASC"; } else if (belegart.equals(LocaleFac.BELEGART_PROJEKT)) { sQuery = "SELECT projekt.i_id, projekt.c_nr, projekt.c_titel, projekt.t_zielwunschdatum, projekt.partner_i_id " + " FROM FLRProjekt AS projekt WHERE projekt.status_c_nr<>'" + ProjektServiceFac.PROJEKT_STATUS_STORNIERT + "' AND projekt.t_erledigungsdatum IS NULL AND projekt.partner_i_id=" + kunde + " ORDER BY projekt.c_nr ASC"; } Query auftraege = session.createQuery(sQuery); List<?> resultList = auftraege.list(); Iterator resultListIterator = resultList.iterator(); LinkedHashMap<Object, Object> tmAuftraege = new LinkedHashMap<Object, Object>(); Object partnerIId = null; String selectedAuftragId = null; while (resultListIterator.hasNext()) { Object o[] = (Object[]) resultListIterator.next(); partnerIId = (Integer) o[4]; if (o[2] == null) { tmAuftraege.put(o[0], o[1]); } else { tmAuftraege.put(o[0], o[1] + " " + o[2]); } if (selectedAuftragId == null) { selectedAuftragId = o[0].toString(); } } session.close(); hmData.put("auftraege", tmAuftraege); hmData.put("selectedkunde", partnerIId); if (request.getParameter("auftrag") != null && request.getParameter("auftrag").length() > 0) { selectedAuftragId = request.getParameter("auftrag"); } // Artikel zu Auftrag holen session = FLRSessionFactory.getFactory().openSession(); if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { sQuery = "SELECT a.i_id, a.flrartikel.i_id FROM FLRAuftragposition AS a WHERE a.flrauftrag.i_id=" + selectedAuftragId + " AND a.flrartikel.artikelart_c_nr='" + ArtikelFac.ARTIKELART_ARBEITSZEIT + "'"; } else if (belegart.equals(LocaleFac.BELEGART_LOS)) { sQuery = "SELECT a.i_id, a.flrartikel.i_id FROM FLRLossollarbeitsplan AS a WHERE a.los_i_id=" + selectedAuftragId + " AND a.flrartikel.artikelart_c_nr='" + ArtikelFac.ARTIKELART_ARBEITSZEIT + "'"; } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { sQuery = "SELECT a.i_id, a.flrartikel.i_id FROM FLRAngebotposition AS a WHERE a.flrangebot.i_id=" + selectedAuftragId + " AND a.flrartikel.artikelart_c_nr='" + ArtikelFac.ARTIKELART_ARBEITSZEIT + "'"; } LinkedHashMap<Object, Object> tmArtikel = new LinkedHashMap<Object, Object>(); if (!belegart.equals(LocaleFac.BELEGART_PROJEKT)) { Query artikelListe = session.createQuery(sQuery); resultList = artikelListe.list(); resultListIterator = resultList.iterator(); if (resultList.size() > 0) { tmArtikel.put(-1, " - - - - - - Beleg - - - - - -"); } while (resultListIterator.hasNext()) { Object[] zeile = (Object[]) resultListIterator.next(); Integer artikelIId = (Integer) zeile[1]; String sollIst = ""; if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { BigDecimal bdSoll = getAuftragpositionFac() .auftragpositionFindByPrimaryKey((Integer) zeile[0]).getNMenge(); sollIst = "; Soll: " + Helper.formatZahl(bdSoll, 2, theclientDto.getLocUi()); Double dIst; try { boolean bZuvieleZeitbuchungen = getZeiterfassungsFac() .sindZuvieleZeitdatenEinesBelegesVorhanden(belegart, new Integer(selectedAuftragId), theclientDto); if (bZuvieleZeitbuchungen == false) { dIst = getZeiterfassungsFac().getSummeZeitenEinesBeleges(belegart, new Integer(selectedAuftragId), (Integer) zeile[0], null, null, null, theclientDto); sollIst += " Ist: " + Helper.formatZahl(dIst, 2, theclientDto.getLocUi()); } } catch (Exception e) { sollIst += " Ist: ERR"; } } String artikel = getArtikelFac().artikelFindByPrimaryKey(artikelIId, theclientDto) .formatArtikelbezeichnung() + sollIst; if (!tmArtikel.containsKey(artikelIId)) { tmArtikel.put(artikelIId, artikel); } } session.close(); } // Artikel des Auftrags + Artikel aus Personalverfuegbarkeit holen if (selectedAuftragId != null) { PersonalverfuegbarkeitDto[] personalverfuegbarkeitDtos = getPersonalFac() .personalverfuegbarkeitFindByPersonalIId(personalDto.getIId()); if (personalverfuegbarkeitDtos.length > 0) { tmArtikel.put(-2, " - - - Verf\u00FCgbarkeit - - - "); } for (int i = 0; i < personalverfuegbarkeitDtos.length; i++) { PersonalverfuegbarkeitDto v = personalverfuegbarkeitDtos[i]; String artikel = getArtikelFac().artikelFindByPrimaryKey(v.getArtikelIId(), theclientDto) .formatArtikelbezeichnung(); tmArtikel.put(v.getArtikelIId(), artikel); } hmData.put("selectedauftrag", selectedAuftragId); } ParametermandantDto parameterDtoDefaultarbeitszeit = getParameterFac().getMandantparameter(mandant, ParameterFac.KATEGORIE_ALLGEMEIN, ParameterFac.PARAMETER_DEFAULT_ARBEITSZEITARTIKEL); if (parameterDtoDefaultarbeitszeit != null && parameterDtoDefaultarbeitszeit.getCWert() != null && !parameterDtoDefaultarbeitszeit.getCWert().trim().equals("")) { ArtikelDto artikelDtoDefaultArbeiztszeit = getArtikelFac() .artikelFindByCNr(parameterDtoDefaultarbeitszeit.getCWert(), theclientDto); tmArtikel.put(-3, " - - - Default-Arbeitszeitartikel - - -"); tmArtikel.put(artikelDtoDefaultArbeiztszeit.getIId(), artikelDtoDefaultArbeiztszeit.formatArtikelbezeichnung()); } hmData.put("artikel", tmArtikel); // Zeitbuchen String bucheauftrag = request.getParameter("bucheauftrag"); String buchesondertaetigkeit = request.getParameter("buchesondertaetigkeit"); // Zeit buchen ZeitdatenDto zeitdatenDto = new ZeitdatenDto(); zeitdatenDto.setPersonalIId(personalDto.getIId()); Timestamp tZeit = new Timestamp(System.currentTimeMillis()); zeitdatenDto.setCWowurdegebucht("Quick-ZE " + request.getRemoteHost()); String meldung = ""; zeitdatenDto.setTZeit(tZeit); String bemerkung = request.getParameter("bemerkung"); zeitdatenDto.setCBemerkungZuBelegart(bemerkung); if (bucheauftrag != null && bucheauftrag.length() > 0) { if (request.getParameter("artikel") != null) { Integer artikelId = new Integer(request.getParameter("artikel")); if (artikelId > 0) { Integer auftragIId = new Integer(selectedAuftragId.trim()); String s = "Auf "; if (kunde != null) { PartnerDto partnerDto = getPartnerFac().partnerFindByPrimaryKey(kunde, theclientDto); s += partnerDto.formatFixName1Name2() + ", "; } if (belegart.equals(LocaleFac.BELEGART_AUFTRAG)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("quickze.auftrag", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { s += textDto.getCText() + " "; } else { s += "Auftrag "; } com.lp.server.auftrag.service.AuftragDto auftragDto = getAuftragFac() .auftragFindByPrimaryKey(auftragIId); s += auftragDto.getCNr(); if (auftragDto.getCBezProjektbezeichnung() != null) { s += " " + auftragDto.getCBezProjektbezeichnung(); } com.lp.server.auftrag.service.AuftragpositionDto[] auftragpositionDtos = getAuftragpositionFac() .auftragpositionFindByAuftrag(auftragIId); if (auftragpositionDtos.length > 0) { zeitdatenDto.setIBelegartpositionid(auftragpositionDtos[0].getIId()); } } else if (belegart.equals(LocaleFac.BELEGART_ANGEBOT)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc("angb.angebot", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { s += textDto.getCText() + " "; } else { s += "Angebot "; } com.lp.server.angebot.service.AngebotDto auftragDto = getAngebotFac() .angebotFindByPrimaryKey(auftragIId, theclientDto); s += auftragDto.getCNr(); if (auftragDto.getCBez() != null) { s += " " + auftragDto.getCBez(); } } else if (belegart.equals(LocaleFac.BELEGART_PROJEKT)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc( "lp.projekt.modulname", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { s += textDto.getCText() + " "; } else { s += "Projekt "; } com.lp.server.projekt.service.ProjektDto auftragDto = getProjektFac() .projektFindByPrimaryKey(auftragIId); s += auftragDto.getCNr(); if (auftragDto.getCTitel() != null) { s += " " + auftragDto.getCTitel(); } } else if (belegart.equals(LocaleFac.BELEGART_LOS)) { textDto = getSystemMultilanguageFac().textFindByPrimaryKeyOhneExc( "fert.tab.unten.los.title", theclientDto.getMandant(), theclientDto.getLocUiAsString()); if (textDto != null) { s += textDto.getCText() + " "; } else { s += "Los "; } LosDto auftragDto = getFertigungFac().losFindByPrimaryKey(auftragIId); s += auftragDto.getCNr(); if (auftragDto.getCProjekt() != null) { s += " " + auftragDto.getCProjekt(); } LossollarbeitsplanDto[] dtos = getFertigungFac() .lossollarbeitsplanFindByLosIIdArtikelIIdTaetigkeit(auftragIId, artikelId); if (dtos.length > 0) { zeitdatenDto.setIBelegartpositionid(dtos[0].getIId()); } } zeitdatenDto.setPersonalIId(personalDto.getIId()); zeitdatenDto.setCBelegartnr(belegart); zeitdatenDto.setIBelegartid(auftragIId); zeitdatenDto.setArtikelIId(artikelId); ArtikelDto artikelDto = getArtikelFac().artikelFindByPrimaryKey(artikelId, theclientDto); meldung += s + ", " + artikelDto.formatArtikelbezeichnung(); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); meldung += " um " + Helper.formatTime(tZeit, localeLogon) + " gebucht."; getTheClient(request, response).setSMsg(meldung); } } else { getTheClient(request, response).setSMsg("Keine Auftragsposition ausgew\u00E4hlt"); } } else if (buchesondertaetigkeit != null && buchesondertaetigkeit.length() > 0) { String zusatz = request.getParameter("zusatz"); if (zusatz != null && zusatz.length() > 0) { // Zeit ist immer jetzt Calendar c = Calendar.getInstance(); c.setTimeInMillis(zeitdatenDto.getTZeit().getTime()); ZeitdatenDto[] letzeBuchungen = getZeiterfassungsFac() .zeitdatenFindZeitdatenEinesTagesUndEinerPersonOnheBelegzeiten( zeitdatenDto.getPersonalIId(), Helper.cutTimestamp(zeitdatenDto.getTZeit()), zeitdatenDto.getTZeit()); Integer taetigkeitIId_Kommt = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_KOMMT, theclientDto).getIId(); Integer taetigkeitIId_Unter = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_UNTER, theclientDto).getIId(); Integer taetigkeitIId_Geht = getZeiterfassungsFac() .taetigkeitFindByCNr(ZeiterfassungFac.TAETIGKEIT_GEHT, theclientDto).getIId(); if (zusatz.equals("spezialkommt")) { if (letzeBuchungen.length == 0) { // Zuerst Kommt und dann UNTER ZeitdatenDto dtoKommt = new ZeitdatenDto(); dtoKommt.setTaetigkeitIId(taetigkeitIId_Kommt); dtoKommt.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoKommt.setCWowurdegebucht("Spezial-Kommt"); // Zeit 100 MS vorher dtoKommt.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoKommt, false, false, false, theclientDto); // Taetigkeit GEHT Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Kommt"); // Zeit 100 MS nachher dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime() + 96)); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } else if (letzeBuchungen.length == 1) { Integer letztetaetigkeit = letzeBuchungen[0].getTaetigkeitIId(); // Wenn nur Kommt, dann Unter buchen if (taetigkeitIId_Kommt.equals(letztetaetigkeit)) { // Taetigkeit UNTER Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Kommt"); dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } } else if (letzeBuchungen.length > 1) { Integer letztetaetigkeit = letzeBuchungen[letzeBuchungen.length - 1].getTaetigkeitIId(); if (taetigkeitIId_Kommt.equals(letztetaetigkeit)) { // Taetigkeit UNTER Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Kommt"); dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } else { // Wenn letzte Taetigkeit ein Geht ist wird // Kommt // und Unter gebucht if (!taetigkeitIId_Geht.equals(letztetaetigkeit)) { int iSondertaetigkeitenHintereinander = 1; for (int i = letzeBuchungen.length - 2; i >= 0; i--) { ZeitdatenDto dto = letzeBuchungen[i]; if (letztetaetigkeit.equals(dto.getTaetigkeitIId())) { iSondertaetigkeitenHintereinander++; } else { break; } letztetaetigkeit = dto.getTaetigkeitIId(); } if (iSondertaetigkeitenHintereinander % 2 == 0) { // Taetigkeit UNTER Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Geht"); dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); /** * @todo 100ms vorher Projekt-ENDE * buchen */ } } else { // Taetigkeit KOMMT Buchen ZeitdatenDto dtoKommt = new ZeitdatenDto(); dtoKommt.setTaetigkeitIId(taetigkeitIId_Kommt); dtoKommt.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoKommt.setCWowurdegebucht("Spezial-Kommt"); dtoKommt.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoKommt, false, false, false, theclientDto); // Taetigkeit UNTER Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Unter); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Kommt"); // Zeit 100 MS nachher dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime() + 96)); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } } } } else if (zusatz.equals("spezialgeht")) { if (letzeBuchungen.length > 1) { Integer letztetaetigkeit = letzeBuchungen[letzeBuchungen.length - 1].getTaetigkeitIId(); // Wenn letzte Taetigkeit kein geht ist, sonst wird // geht verschmissen if (!taetigkeitIId_Geht.equals(letztetaetigkeit)) { int iSondertaetigkeitenHintereinander = 1; for (int i = letzeBuchungen.length - 2; i >= 0; i--) { ZeitdatenDto dto = letzeBuchungen[i]; if (letztetaetigkeit.equals(dto.getTaetigkeitIId())) { iSondertaetigkeitenHintereinander++; } else { break; } letztetaetigkeit = dto.getTaetigkeitIId(); } if (iSondertaetigkeitenHintereinander % 2 == 1) { // Sondertaetigkeit Ende Buchen ZeitdatenDto dtoSonderEnde = new ZeitdatenDto(); dtoSonderEnde.setTaetigkeitIId(letztetaetigkeit); dtoSonderEnde.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoSonderEnde.setCWowurdegebucht("Spezial-Geht"); // Zeit 100 MS vorher dtoSonderEnde.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime() - 96)); getZeiterfassungsFac().createZeitdaten(dtoSonderEnde, false, false, false, theclientDto); // Taetigkeit GEHT Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Geht); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Geht"); // Zeit 100 MS vorher dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } else { // Taetigkeit GEHT Buchen ZeitdatenDto dtoUnter = new ZeitdatenDto(); dtoUnter.setTaetigkeitIId(taetigkeitIId_Geht); dtoUnter.setPersonalIId(zeitdatenDto.getPersonalIId()); dtoUnter.setCWowurdegebucht("Spezial-Geht"); // Zeit 100 MS vorher dtoUnter.setTZeit(new Timestamp(zeitdatenDto.getTZeit().getTime())); getZeiterfassungsFac().createZeitdaten(dtoUnter, false, false, false, theclientDto); } } } } else { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "zusatz '" + zusatz + "' unbekannt"); } setSJSPNext("mecs.jsp"); return getSJSPNext(); } else { if (request.getParameter("taetigkeit") != null) { Integer taetigkeitId = new Integer(request.getParameter("taetigkeit")); zeitdatenDto.setTaetigkeitIId(taetigkeitId); TaetigkeitDto dto = getZeiterfassungsFac().taetigkeitFindByPrimaryKey(taetigkeitId, theclientDto); meldung += dto.getBezeichnung(); getZeiterfassungsFac().createZeitdaten(zeitdatenDto, true, true, false, theclientDto); meldung += " um " + Helper.formatTime(tZeit, localeLogon) + " gebucht."; getTheClient(request, response).setSMsg(meldung); } else { getTheClient(request, response).setSMsg("Keine T\u00E4tigkeit ausgew\u00E4hlt"); } } } getTheClient(request, response).setData(hmData); // AD+CK logout wegen usercount synchronized (mutex) { // PJ 15986 getLogonFac().logout(theclientDto); } } else if (command.equals(TheApp.CMD_ZU_MECS_TERMINAL)) { // Personalstamm holen String master = request.getParameter("master"); try { ZutrittscontrollerDto zutrittscontrollerDto = getZutrittscontrollerFac() .zutrittscontrollerFindByCNr(master); ZutrittsobjektDto[] zutrittsobjektDtos = getZutrittscontrollerFac() .zutrittsobjektFindByZutrittscontrollerIId(zutrittscontrollerDto.getIId()); StringBuffer objekte = new StringBuffer(); for (int i = 0; i < zutrittsobjektDtos.length; i++) { objekte.append(Helper.fitString2Length(zutrittsobjektDtos[i].getCNr(), 6, ' ')); // terminal- // id objekte.append(Helper.fitString2Length(zutrittsobjektDtos[i].getCAdresse(), 100, ' ')); // adresse objekte.append("\r\n"); } myLogger.info(command + ":" + new String(objekte)); getTheClient(request, response).setSMsg(new String(objekte)); } catch (RemoteException ex5) { if (ex5.getCause() instanceof EJBExceptionLP) { EJBExceptionLP lpex = (EJBExceptionLP) ex5.getCause(); if (lpex.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { myLogger.error("Zutrittscontroller '" + master + "' nicht angelegt", ex5); } else { myLogger.error(ex5.getMessage(), ex5); } } } } else if (command.equals(TheApp.CMD_ZU_MECS_RELAIS)) { // Personalstamm holen String termid = request.getParameter("termid"); if (termid == null || termid.length() == 0) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Es ist der Parameter termid='LanPortName' erforderlich"); return null; } try { ZutrittsobjektDto zutrittsobjektDto = getZutrittscontrollerFac().zutrittsobjektFindByCNr(termid); StringBuffer objekte = new StringBuffer(); objekte.append("10"); // readerid objekte.append("0"); // port objekte.append(zutrittsobjektDto.getCRelais()); // relais String oeffnungszeit = zutrittsobjektDto.getFOeffnungszeit().toString(); oeffnungszeit = oeffnungszeit.replaceAll(",", "."); objekte.append(Helper.fitString2LengthAlignRight(oeffnungszeit, 4, ' ')); // oeffnungszeit objekte.append(zutrittsobjektDto.getZutrittsleserCNr().trim()); // readerid objekte.append("\r\n"); myLogger.info(command + ":" + new String(objekte)); getTheClient(request, response).setSMsg(new String(objekte)); } catch (EJBExceptionLP ex4) { if (ex4.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Zutrittsobjekt '" + termid + "' nicht angelegt"); return null; } else { ex4.printStackTrace(); myLogger.error(ex4.getMessage(), ex4); } } } else if (command.equals(TheApp.CMD_ZU_MECS_ZUTRITT)) { String termid = request.getParameter("termid"); try { ZutrittsobjektDto dto = getZutrittscontrollerFac().zutrittsobjektFindByCNr(termid); String s = getZutrittscontrollerFac().getZutrittsdatenFuerEinObjektFuerMecs(dto.getIId(), theclientDto); myLogger.info(command + ":" + new String(s)); getTheClient(request, response).setSMsg(new String(s)); } catch (EJBExceptionLP ex4) { if (ex4.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { myLogger.error("Zutrittsobjekt '" + termid + "' nicht angelegt", ex4); response.sendError(HttpServletResponse.SC_NOT_FOUND, "Zutrittsobjekt '" + termid + "' nicht angelegt"); } else { myLogger.error(ex4.getMessage(), ex4); response.sendError(HttpServletResponse.SC_NOT_FOUND, ex4.getMessage()); } } } else if (command.equals(TheApp.CMD_ZU_MECS_AUSWEISE_ZUTRITT)) { PersonalzutrittsklasseDto[] dtos = getZutrittscontrollerFac().personalzutrittsklassenFindByTGueltigab( new Timestamp(System.currentTimeMillis()), theclientDto); ArrayList<StringBuffer> alDaten = new ArrayList<StringBuffer>(); for (int i = 0; i < dtos.length; i++) { StringBuffer sb = new StringBuffer(); sb.append("10"); // Hole personalDto PersonalDto personalDto = getPersonalFac().personalFindByPrimaryKeySmall(dtos[i].getPersonalIId()); sb.append(Helper.fitString2Length(personalDto.getCAusweis(), 20, ' ')); sb.append(Helper.fitString2Length(personalDto.getCPersonalnr().toString(), 10, ' ')); sb.append(Helper.fitString2Length("", 24, ' ')); // Hole Zutrittsklasse ZutrittsklasseDto zutrittsklasseDto = getZutrittscontrollerFac() .zutrittsklasseFindByPrimaryKey(dtos[i].getZutrittsklasseIId()); sb.append(Helper.fitString2Length(zutrittsklasseDto.getCNr(), 3, ' ')); alDaten.add(sb); } // Besucherausweise String[] ausweise = getZutrittscontrollerFac() .zutrittonlinecheckAusweiseFindByTGueltigab(new Timestamp(System.currentTimeMillis())); for (int i = 0; i < ausweise.length; i++) { StringBuffer sb = new StringBuffer(); sb.append("10"); sb.append(Helper.fitString2Length(ausweise[i], 20, ' ')); sb.append(Helper.fitString2Length("", 10, ' ')); sb.append(Helper.fitString2Length("", 24, ' ')); sb.append(Helper.fitString2Length(ZutrittscontrollerFac.ZUTRITTSKLASSE_ONLINECHECK, 3, ' ')); alDaten.add(sb); } // sortieren String datenGesamt = ""; for (int i = alDaten.size() - 1; i > 0; --i) { for (int j = 0; j < i; ++j) { if ((new String(alDaten.get(j))).compareTo(new String(alDaten.get(j + 1))) > 0) { StringBuffer lagerbewegungDtoTemp = alDaten.get(j); alDaten.set(j, alDaten.get(j + 1)); alDaten.set(j + 1, lagerbewegungDtoTemp); } } } for (int i = 0; i < alDaten.size(); i++) { StringBuffer sbTemp = alDaten.get(i); sbTemp.append("\r\n"); datenGesamt += new String(sbTemp); } myLogger.info(command + ":" + datenGesamt); getTheClient(request, response).setSMsg(datenGesamt); } else if (command.startsWith(TheApp.CMD_ZU_MECS_ZUTRITT_ONLINE_CHECK)) { String termid = request.getParameter("termid"); String card = request.getParameter("card"); String pin = request.getParameter("pin"); try { ZutrittsobjektDto dto = getZutrittscontrollerFac().zutrittsobjektFindByCNr(termid); boolean b = getZutrittscontrollerFac().onlineCheck(card, pin, new Timestamp(System.currentTimeMillis()), dto.getIId()); if (b == true) { myLogger.info(command + ": ZUTRITT ERLAUBT"); getTheClient(request, response).setSMsg("A"); } else { myLogger.info(command + ": ZUTRITT VERWEIGERT"); getTheClient(request, response).setSMsg("Z"); } } catch (EJBExceptionLP ex4) { if (ex4.getCause() instanceof EJBExceptionLP) { EJBExceptionLP lpex = (EJBExceptionLP) ex4.getCause(); if (lpex.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Zutrittsobjekt '" + termid + "' nicht angelegt"); myLogger.error("Zutrittsobjekt '" + termid + "' nicht angelegt", ex4); } else { myLogger.error(ex4.getMessage(), ex4); response.sendError(HttpServletResponse.SC_NOT_FOUND, ex4.getMessage()); } } } } else if (command.startsWith(TheApp.CMD_ZU_MECS_ZUTRITT_EVENTS)) { String termid = request.getParameter("termid"); if (termid == null || termid.length() == 0) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Es ist der Parameter termid='LanPortName' erforderlich"); return null; } ZutrittsobjektDto dto = null; try { dto = getZutrittscontrollerFac().zutrittsobjektFindByCNr(termid); } catch (EJBExceptionLP e) { if (e.getCode() == EJBExceptionLP.FEHLER_BEI_FIND) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Zutrittsobjekt '" + termid + "' nicht angelegt"); return null; } else { e.printStackTrace(); response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Unerwarteter Fehler aufgetreten."); return null; } } String s = getZutrittscontrollerFac().getZutrittsEventsFuerMecs(dto.getIId(), theclientDto); myLogger.info(command + ":" + s); getTheClient(request, response).setSMsg(s); } else if (command.startsWith(TheApp.CMD_ZU_MECS_MAXTRANSNR)) { getTheClient(request, response).setSMsg("999"); } else if (command.startsWith(TheApp.CMD_ZU_MECS_LOG)) { String record = command.substring(17); ZutrittslogDto dto = new ZutrittslogDto(); Calendar c = Calendar.getInstance(); String zeitpunkt = record.substring(5, 19); int iJahr = new Integer(zeitpunkt.substring(0, 4)); int iMonat = new Integer(zeitpunkt.substring(4, 6)) - 1; int iTag = new Integer(zeitpunkt.substring(6, 8)); int iStunden = new Integer(zeitpunkt.substring(8, 10)); int iMinuten = new Integer(zeitpunkt.substring(10, 12)); int iSekunden = new Integer(zeitpunkt.substring(12, 14)); c.set(iJahr, iMonat, iTag, iStunden, iMinuten, iSekunden); dto.setTZeitpunkt(new Timestamp(c.getTimeInMillis())); String personalnr = record.substring(19, 24); String erlaubt = record.substring(24, 27); String objekt = record.substring(46, 67).trim(); String ausweis = record.substring(106, 135).trim(); String event = record.substring(126, 137).trim(); PersonalDto personalDto = getPersonalFac().personalFindByCAusweis(ausweis); if (personalDto != null || event.equals("PINONLINE") || personalnr.equals("?????") || personalnr.equals(" ")) { if (personalDto != null) { dto.setCPerson( getPartnerFac().partnerFindByPrimaryKey(personalDto.getPartnerIId(), theclientDto) .formatFixAnredeTitelName2Name1()); dto.setMandantCNr(personalDto.getMandantCNr()); } else if (personalnr.equals(" ")) { dto.setCPerson("Besucher"); dto.setMandantCNr(mandant); } else if (event != null && event.equals("PINONLINE")) { dto.setCPerson("Tempor\u00E4rer Pin-Code"); dto.setMandantCNr(mandant); } else { dto.setCPerson("Unbekannt"); dto.setMandantCNr(mandant); } if (erlaubt.equals("ZZ1")) { dto.setBErlaubt(Helper.boolean2Short(true)); } else { dto.setBErlaubt(Helper.boolean2Short(false)); } dto.setCAusweis(ausweis); dto.setCZutrittscontroller(null); try { ZutrittsobjektDto zutrittsobjektDto = getZutrittscontrollerFac() .zutrittsobjektFindByCNr(objekt); dto.setCZutrittsobjekt( zutrittsobjektDto.getBezeichnung() + "-" + zutrittsobjektDto.getCAdresse()); dto.setCZutrittscontroller(getZutrittscontrollerFac() .zutrittscontrollerFindByPrimaryKey(zutrittsobjektDto.getZutrittscontrollerIId()) .getCNr()); dto.setMandantCNrObjekt(zutrittsobjektDto.getMandantCNr()); } catch (RemoteException ex6) { dto.setCZutrittsobjekt("Zutrittsobjekt unbekannt"); } getZutrittscontrollerFac().createZutrittslog(dto); } myLogger.info(command); } else if (command.startsWith(TheApp.CMD_ZU_MECS_TEMPLATES)) { String sAendern = request.getParameter("changedsince"); PersonalfingerDto[] personalfingerDtos = null; if (sAendern == null) { personalfingerDtos = getZutrittscontrollerFac().personalfingerFindAll(); } else { Calendar c = Calendar.getInstance(); int iJahr = new Integer(sAendern.substring(0, 4)); int iMonat = new Integer(sAendern.substring(4, 6)) - 1; int iTag = new Integer(sAendern.substring(6, 8)); int iStunden = new Integer(sAendern.substring(8, 10)); int iMinuten = new Integer(sAendern.substring(10, 12)); c.set(iJahr, iMonat, iTag, iStunden, iMinuten, 0); c.set(Calendar.MILLISECOND, 0); personalfingerDtos = getZutrittscontrollerFac() .personalfingerFindByTAendern(new java.sql.Timestamp(c.getTimeInMillis()), theclientDto); } StringBuffer sb = new StringBuffer(); // Zuerts alle loeschen sb.append(Helper.fitString2LengthAlignRight("0", 5, ' ')); sb.append(Helper.fitString2LengthAlignRight("0", 2, ' ')); sb.append(Helper.fitString2Length("X", 512, 'X')); StringBuffer zeit = new StringBuffer(); Calendar cAendern = Calendar.getInstance(); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.YEAR) + "", 4, '0')); zeit.append(Helper.fitString2Length((cAendern.get(Calendar.MONTH) + 1) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.DAY_OF_MONTH) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.HOUR_OF_DAY) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.MINUTE) + "", 2, '0')); sb.append(zeit); sb.append("\r\n"); for (int i = 0; i < personalfingerDtos.length; i++) { PersonalfingerDto personalfingerDto = personalfingerDtos[i]; sb.append(Helper.fitString2LengthAlignRight(personalfingerDto.getIId() + "", 5, ' ')); sb.append(Helper.fitString2LengthAlignRight("1", 2, ' ')); String templateBase64 = new String( org.apache.commons.codec.binary.Base64.encodeBase64(personalfingerDto.getOTemplate1())); sb.append(Helper.fitString2Length(templateBase64, 512, ' ')); cAendern = Calendar.getInstance(); cAendern.setTimeInMillis(personalfingerDto.getTAendern().getTime()); zeit = new StringBuffer(); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.YEAR) + "", 4, '0')); zeit.append(Helper.fitString2Length((cAendern.get(Calendar.MONTH) + 1) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.DAY_OF_MONTH) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.HOUR_OF_DAY) + "", 2, '0')); zeit.append(Helper.fitString2Length(cAendern.get(Calendar.MINUTE) + "", 2, '0')); sb.append(zeit); sb.append("\r\n"); if (personalfingerDto.getOTemplate2() != null) { sb.append(Helper.fitString2LengthAlignRight(personalfingerDto.getIId() + "", 5, ' ')); sb.append(Helper.fitString2LengthAlignRight("2", 2, ' ')); templateBase64 = new String( org.apache.commons.codec.binary.Base64.encodeBase64(personalfingerDto.getOTemplate2())); sb.append(Helper.fitString2Length(templateBase64, 512, ' ')); sb.append(zeit); if (i == personalfingerDtos.length - 1) { // sb.append("\r"); } else { sb.append("\r\n"); } } } getTheClient(request, response).setSMsg(new String(sb)); } return getSJSPNext(); }
From source file:org.eclipse.php.internal.core.format.DefaultIndentationStrategy.java
private void placeMatchingBlanksForStructuredDocument(final IStructuredDocument document, final StringBuffer result, final int lineNumber, final int forOffset, String commandText) throws BadLocationException { if (forOffset == 0) { return;/*from w w w . j ava2 s .c o m*/ } if (indentationObject == null) { indentationObject = new IndentationObject(document); } boolean enterKeyPressed = document.getLineDelimiter().equals(result.toString()); int lineOfOffset = document.getLineOfOffset(forOffset); IRegion lineInformationOfOffset = document.getLineInformation(lineOfOffset); int lastNonEmptyLineIndex; final int indentationBaseLineIndex; final int newForOffset; // code for not formatting comments if (enterKeyPressed && document.get(lineInformationOfOffset.getOffset(), lineInformationOfOffset.getLength()).trim() .startsWith("//")) { //$NON-NLS-1$ lastNonEmptyLineIndex = lineOfOffset; indentationBaseLineIndex = lineOfOffset; int i = lineInformationOfOffset.getOffset(); for (; i < lineInformationOfOffset.getOffset() + lineInformationOfOffset.getLength() && document.getChar(i) != '/'; i++) ; newForOffset = (i < forOffset) ? i : forOffset; } // end else { newForOffset = forOffset; IndentationBaseDetector indentationDetector = new IndentationBaseDetector(document, lineNumber, newForOffset); lastNonEmptyLineIndex = indentationDetector.getIndentationBaseLine(false); indentationBaseLineIndex = indentationDetector.getIndentationBaseLine(true); } final IRegion lastNonEmptyLine = document.getLineInformation(lastNonEmptyLineIndex); final IRegion indentationBaseLine = document.getLineInformation(indentationBaseLineIndex); final String blanks = FormatterUtils.getLineBlanks(document, indentationBaseLine); result.append(blanks); final int lastLineEndOffset = lastNonEmptyLine.getOffset() + lastNonEmptyLine.getLength(); int offset; int line; if (newForOffset < lastLineEndOffset) { offset = newForOffset; line = lineNumber; } else { offset = lastLineEndOffset; line = lastNonEmptyLineIndex; } if (shouldIndent(document, offset, line)) { indent(document, result, indentationObject.getIndentationChar(), indentationObject.getIndentationSize()); } else { boolean intended = indentMultiLineCase(document, lineNumber, newForOffset, enterKeyPressed, result, blanks, commandText, indentationObject); if (!intended) { lastNonEmptyLineIndex = lineNumber; if (!enterKeyPressed && lastNonEmptyLineIndex > 0) { lastNonEmptyLineIndex--; } while (lastNonEmptyLineIndex >= 0) { IRegion lineInfo = document.getLineInformation(lastNonEmptyLineIndex); String content = document.get(lineInfo.getOffset(), lineInfo.getLength()); if (StringUtils.isNotBlank(content)) { break; } lastNonEmptyLineIndex--; } if (!isEndOfStatement(document, offset, lastNonEmptyLineIndex)) { if (indentationBaseLineIndex == lastNonEmptyLineIndex) { // this only deal with "$a = 'aaa'.|","|" is the // cursor // position when we press enter key placeStringIndentation(document, lastNonEmptyLineIndex, result, indentationObject); } // if (enterKeyPressed) { // this line is one of multi line statement // in multi line statement,when user press enter // key, // we use the same indentation of the last non-empty // line. boolean shouldNotChangeIndent = false; if (newForOffset != document.getLength()) { final IRegion lineInfo = document.getLineInformation(lineNumber); int nonEmptyOffset = newForOffset; if (!enterKeyPressed) { if (nonEmptyOffset == lineInfo.getOffset()) { nonEmptyOffset = IndentationUtils.moveLineStartToNonBlankChar(document, nonEmptyOffset, lineNumber, false); } } char lineStartChar = document.getChar(nonEmptyOffset); if (lineStartChar == PHPHeuristicScanner.RBRACE // || lineStartChar == // PHPHeuristicScanner.RBRACKET || lineStartChar == PHPHeuristicScanner.RPAREN) { PHPHeuristicScanner scanner = PHPHeuristicScanner.createHeuristicScanner(document, nonEmptyOffset, true); if (lineStartChar == PHPHeuristicScanner.RBRACE) { int peer = scanner.findOpeningPeer(nonEmptyOffset - 1, PHPHeuristicScanner.UNBOUND, PHPHeuristicScanner.LBRACE, PHPHeuristicScanner.RBRACE); if (peer != PHPHeuristicScanner.NOT_FOUND) { shouldNotChangeIndent = true; } } else if (lineStartChar == PHPHeuristicScanner.RBRACKET) { int peer = scanner.findOpeningPeer(nonEmptyOffset - 1, PHPHeuristicScanner.UNBOUND, PHPHeuristicScanner.LBRACKET, PHPHeuristicScanner.RBRACKET); if (peer != PHPHeuristicScanner.NOT_FOUND) { shouldNotChangeIndent = true; } } else if (lineStartChar == PHPHeuristicScanner.RPAREN) { int peer = scanner.findOpeningPeer(nonEmptyOffset - 1, PHPHeuristicScanner.UNBOUND, PHPHeuristicScanner.LPAREN, PHPHeuristicScanner.RPAREN); if (peer != PHPHeuristicScanner.NOT_FOUND) { shouldNotChangeIndent = true; } } } } if (!shouldNotChangeIndent) { result.setLength(result.length() - blanks.length()); IRegion lineInfo = document.getLineInformation(lastNonEmptyLineIndex); result.append(FormatterUtils.getLineBlanks(document, lineInfo)); } // } } else {// current is a new statement,check if we should indent // it based on indentationBaseLine if (result.length() == blanks.length()) { final int baseLineEndOffset = indentationBaseLine.getOffset() + indentationBaseLine.getLength(); offset = baseLineEndOffset; line = indentationBaseLineIndex; // check if after braceless if (shouldIndent(document, offset, line)) { indent(document, result, indentationObject.getIndentationChar(), indentationObject.getIndentationSize()); } } } } } }
From source file:gov.nih.nci.cadsr.sentinel.database.DBAlertOracle.java
/** * Build the concatenated strings for the Class Scheme Items display. * * @param rec_/*from w w w .j a v a 2 s .c om*/ * The data returned from Oracle. * @return An array of the full concatenated names for sorting later. */ private schemeTree[] buildSchemeItemList(Results3 rec_) { // Get the maximum number of levels and the maximum length of a single // name. int maxLvl = 0; int maxLen = 0; for (int ndx = 1; ndx < rec_._data.length; ++ndx) { if (maxLvl < rec_._data[ndx]._id3) maxLvl = rec_._data[ndx]._id3; if (rec_._data[ndx]._label1 != null && maxLen < rec_._data[ndx]._label1.length()) maxLen = rec_._data[ndx]._label1.length(); if (rec_._data[ndx]._label2 != null && maxLen < rec_._data[ndx]._label2.length()) maxLen = rec_._data[ndx]._label2.length(); } ++maxLvl; // Build and array of prefixes for the levels. String prefix[] = new String[maxLvl]; prefix[0] = ""; if (maxLvl > 1) { prefix[1] = ""; for (int ndx = 2; ndx < prefix.length; ++ndx) { prefix[ndx] = prefix[ndx - 1] + " "; } } // In addition to creating the display labels we must also // create an array used to sort everything alphabetically. // The easiest is to create a fully concatenated label of a // individuals hierarchy. _schemeItemList = new String[rec_._data.length]; maxLvl *= maxLen; StringBuffer fullBuff = new StringBuffer(maxLvl); fullBuff.setLength(maxLvl); schemeTree tree[] = new schemeTree[_schemeItemList.length]; // Loop through the name list. _schemeItemList[0] = rec_._data[0]._label1; tree[0] = new schemeTree("", 0); for (int ndx = 1; ndx < _schemeItemList.length; ++ndx) { // Create the concatenated sort string. int buffOff = (rec_._data[ndx]._id3 < 2) ? 0 : (rec_._data[ndx]._id3 * maxLen); fullBuff.replace(buffOff, maxLvl, rec_._data[ndx]._label1); fullBuff.setLength(maxLvl); // Create the display label. if (rec_._data[ndx]._id3 == 1) { if (rec_._data[ndx]._label2 == null) { _schemeItemList[ndx] = rec_._data[ndx]._label1; } else { _schemeItemList[ndx] = rec_._data[ndx]._label1 + " (" + rec_._data[ndx]._label2 + ")"; fullBuff.replace(buffOff + maxLen, maxLvl, rec_._data[ndx]._label2); fullBuff.setLength(maxLvl); } } else { _schemeItemList[ndx] = prefix[rec_._data[ndx]._id3] + rec_._data[ndx]._label1; } tree[ndx] = new schemeTree(fullBuff.toString(), ndx); } return tree; }
From source file:com.vuze.plugin.azVPN_Air.Checker.java
private boolean callRPCforPort(InetAddress bindIP, StringBuilder sReply) { InetAddress[] resolve = null; try {//from w ww . j av a2s. co m String user = getDefaultUsername(); String pass = null; if (user == null || user.length() == 0) { user = config.getPluginStringParameter(PluginAir.CONFIG_USER); pass = new String(config.getPluginByteParameter(PluginAir.CONFIG_P, new byte[0]), "utf-8"); } else { pass = getPassword(); } if (user == null || user.length() == 0 || pass == null || pass.length() == 0) { addReply(sReply, CHAR_WARN, "airvpn.rpc.nocreds"); return false; } // If Vuze has a proxy set up (Tools->Options->Connection->Proxy), then // we'll need to disable it for the URL AEProxySelector selector = AEProxySelectorFactory.getSelector(); if (selector != null) { resolve = SystemDefaultDnsResolver.INSTANCE.resolve(VPN_DOMAIN); for (InetAddress address : resolve) { selector.setProxy(new InetSocketAddress(address, 443), Proxy.NO_PROXY); } } RequestConfig requestConfig; StringBuffer token = new StringBuffer(); boolean skipLoginPage = false; boolean alreadyLoggedIn = false; PortInfo[] ports = null; if (httpClientContext == null) { httpClientContext = HttpClientContext.create(); } else { PluginAir.log("Have existing context. Trying to grab port list without logging in."); ports = scrapePorts(bindIP, token); // assume no token means we aren't logged in if (token.length() > 0) { PluginAir.log("Valid ports page. Skipping Login"); skipLoginPage = true; alreadyLoggedIn = true; } else { ports = null; } } if (!skipLoginPage) { String loginURL = null; String authKey = null; PluginAir.log("Getting Login post URL and auth_key"); HttpGet getLoginPage = new HttpGet(VPN_LOGIN_URL); requestConfig = RequestConfig.custom().setLocalAddress(bindIP).setConnectTimeout(10000).build(); getLoginPage.setConfig(requestConfig); CloseableHttpClient httpClientLoginPage = HttpClients.createDefault(); CloseableHttpResponse loginPageResponse = httpClientLoginPage.execute(getLoginPage, httpClientContext); BufferedReader rd = new BufferedReader( new InputStreamReader(loginPageResponse.getEntity().getContent())); Pattern patAuthKey = Pattern.compile(REGEX_AuthKey); String line = ""; while ((line = rd.readLine()) != null) { if (line.contains("<form") && line.matches(".*id=['\"]login['\"].*")) { Matcher matcher = Pattern.compile(REGEX_ActionURL).matcher(line); if (matcher.find()) { loginURL = matcher.group(1); if (authKey != null) { break; } } } Matcher matcherAuthKey = patAuthKey.matcher(line); if (matcherAuthKey.find()) { authKey = matcherAuthKey.group(1); if (loginURL != null) { break; } } if (line.contains("['member_id']") && line.matches(".*parseInt\\s*\\(\\s*[1-9][0-9]*\\s*.*")) { alreadyLoggedIn = true; } } rd.close(); if (loginURL == null) { PluginAir.log("Could not scrape Login URL. Using default"); loginURL = "https://airvpn.org/index.php?app=core&module=global§ion=login&do=process"; } if (authKey == null) { addReply(sReply, CHAR_WARN, "airvpn.rpc.noauthkey"); return false; } loginURL = UrlUtils.unescapeXML(loginURL); /////////////////////////////// if (alreadyLoggedIn) { PluginAir.log("Already Logged In"); } else { PluginAir.log("Login URL:" + loginURL); //https://airvpn.org/index.php?app=core&module=global§ion=login&do=process //https://airvpn.org/index.php?app=core&module=global§ion=login&do=process HttpPost httpPostLogin = new HttpPost(loginURL); requestConfig = RequestConfig.custom().setLocalAddress(bindIP).setConnectTimeout(10000).build(); httpPostLogin.setConfig(requestConfig); CloseableHttpClient httpClient = HttpClients.createDefault(); List<NameValuePair> urlParameters = new ArrayList<NameValuePair>(); urlParameters.add(new BasicNameValuePair("ips_username", user)); urlParameters.add(new BasicNameValuePair("ips_password", pass)); urlParameters.add(new BasicNameValuePair("auth_key", authKey)); urlParameters.add(new BasicNameValuePair("invisible", "1")); urlParameters.add(new BasicNameValuePair("inline_invisible", "1")); httpPostLogin.setEntity(new UrlEncodedFormEntity(urlParameters)); CloseableHttpResponse response = httpClient.execute(httpPostLogin, httpClientContext); rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); line = ""; while ((line = rd.readLine()) != null) { } PluginAir.log("Login Result: " + response.getStatusLine().toString()); } } //////////////////////////// if (ports == null) { ports = scrapePorts(bindIP, token); } PluginAir.log("Found Ports: " + Arrays.toString(ports)); int existingIndex = ourPortInList(ports); if (existingIndex >= 0) { addReply(sReply, CHAR_GOOD, "airvpn.port.from.rpc.match", new String[] { ports[existingIndex].port }); return true; } boolean gotPort = false; // There's a limit of 20 ports. If [0] isn't ours and 20 of them are // created, then assume our detection of "ours" is broke and just use // the first one if ((ports.length > 0 && ports[0].ourBinding) || ports.length == 20) { int port = Integer.parseInt(ports[0].port); gotPort = true; addReply(sReply, CHAR_GOOD, "airvpn.port.from.rpc", new String[] { Integer.toString(port) }); changePort(port, sReply); } else { // create port ports = createPort(bindIP, token); if (ports.length == 0) { // form post should have got the new port, but if it didn't, try // reloading the ports page again. token.setLength(0); ports = scrapePorts(bindIP, token); } PluginAir.log("Added a port. Ports: " + Arrays.toString(ports)); existingIndex = ourPortInList(ports); if (existingIndex >= 0) { addReply(sReply, CHAR_GOOD, "airvpn.port.from.rpc.match", new String[] { ports[existingIndex].port }); return true; } if ((ports.length > 0 && ports[0].ourBinding) || ports.length == 20) { int port = Integer.parseInt(ports[0].port); gotPort = true; addReply(sReply, CHAR_GOOD, "airvpn.port.from.rpc", new String[] { Integer.toString(port) }); changePort(port, sReply); } } if (!gotPort) { addReply(sReply, CHAR_WARN, "airvpn.rpc.no.connect", new String[] { bindIP.toString() }); return false; } } catch (Exception e) { e.printStackTrace(); addReply(sReply, CHAR_BAD, "airvpn.rpc.no.connect", new String[] { bindIP + ": " + e.getMessage() }); return false; } finally { AEProxySelector selector = AEProxySelectorFactory.getSelector(); if (selector != null && resolve != null) { for (InetAddress address : resolve) { AEProxySelectorFactory.getSelector().removeProxy(new InetSocketAddress(address, 443)); } } } return true; }