Example usage for java.lang Byte parseByte

List of usage examples for java.lang Byte parseByte

Introduction

In this page you can find the example usage for java.lang Byte parseByte.

Prototype

public static byte parseByte(String s) throws NumberFormatException 

Source Link

Document

Parses the string argument as a signed decimal byte .

Usage

From source file:com.ltmonitor.jt808.service.impl.CommandService.java

 /**
 * ??????/*  ww w  .j  ava  2  s .com*/
 * 
 * @param tc
 * @return
 * @throws Exception
 */
private final T808Message Parse(TerminalCommand tc) throws Exception {
   if (Tools.isNullOrEmpty(tc.getPlateNo()) == false
         && Tools.isNullOrEmpty(tc.getSimNo())) {
      String hql = "from VehicleData where plateNo = ?";
      VehicleData vd = (VehicleData) this.baseDao.find(hql,
            tc.getPlateNo());
      if (vd != null) {
         tc.setSimNo(vd.getSimNo());
      } else {
         tc.setRemark("?");
         return null;
      }
   }
   // ????
   if (tc.getCmdType() == JT808Constants.CMD_POLYGON_CONFIG
         || tc.getCmdType() == JT808Constants.CMD_RECT_CONFIG
         || tc.getCmdType() == JT808Constants.CMD_CIRCLE_CONFIG
         || tc.getCmdType() == JT808Constants.CMD_ROUTE_CONFIG
         || tc.getCmdType() == JT808Constants.CMD_DELETE_ROUTE
         || tc.getCmdType() == JT808Constants.CMD_DELETE_CIRCLE
         || tc.getCmdType() == JT808Constants.CMD_DELETE_RECT
         || tc.getCmdType() == JT808Constants.CMD_DELETE_POLYGON) {
      T808Message tmsg = ParseAreaConfig(tc);
      return tmsg;
   }
   T808Message ts = new T808Message();
   ts.setHeader(new T808MessageHeader());
   ts.getHeader().setSimId("0" + tc.getSimNo());
   // ts.getHeader().setMessageSerialNo((short)T808Manager.getSerialNo());
   ts.getHeader().setIsPackage(false);
   tc.setStatus(TerminalCommand.STATUS_PROCESSING);
   tc.setSN(ts.getHeader().getMessageSerialNo());
   ts.getHeader().setMessageType(tc.getCmdType()); // 
   if (tc.getCmdType() == JT808Constants.CMD_REAL_MONITOR) {
      // ??-??
      JT_8201 cmdData = new JT_8201();
      ts.setMessageContents(cmdData);
   } else if (tc.getCmdType() == JT808Constants.CMD_MEDIA_SEARCH) {
      // 
      JT_8802 cmdData = new JT_8802();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      cmdData.setMultimediaType(Byte.parseByte(fields[0]));
      cmdData.setChannelId(Byte.parseByte(fields[1]));
      cmdData.setEventCode(Byte.parseByte(fields[2]));
      Date startDate = DateUtil.toDateByFormat(fields[3], "yyyy-MM-dd HH:mm:ss");
      cmdData.setStartTime(startDate);
      Date endDate = DateUtil.toDateByFormat(fields[4], "yyyy-MM-dd HH:mm:ss");
      cmdData.setEndTime(endDate);
      //cmdData.setStartTime(new java.util.Date(java.util.Date
            //.parse(fields[3])));
      //cmdData.setEndTime(new java.util.Date(java.util.Date
            //.parse(fields[4])));
   } else if (tc.getCmdType() == JT808Constants.CMD_MEDIA_UPLOAD) {
      // 
      JT_8803 cmdData = new JT_8803();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      cmdData.setMultimediaType(Byte.parseByte(fields[0]));
      cmdData.setChannelId(Byte.parseByte(fields[1]));
      cmdData.setEventCode(Byte.parseByte(fields[2]));
      Date startDate = DateUtil.toDateByFormat(fields[3], "yyyy-MM-dd HH:mm:ss");
      cmdData.setStartTime(startDate);
      Date endDate = DateUtil.toDateByFormat(fields[4], "yyyy-MM-dd HH:mm:ss");
      cmdData.setEndTime(endDate);
      cmdData.setDeleteFlag(Byte.parseByte(fields[5]));
   } else if (tc.getCmdType() == JT808Constants.CMD_MEDIA_UPLOAD_SINGLE) {
      // ??
      JT_8805 cmdData = new JT_8805();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      cmdData.setMultimediaId(Byte.parseByte(fields[0]));
      cmdData.setDeleteFlag(Byte.parseByte(fields[1]));
   } else if (tc.getCmdType() == JT808Constants.CMD_LOCATION_MONITOR) {
      // ?
      //  WORD ? DWORD
      JT_8202 cmdData = new JT_8202();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      cmdData.setTimeInterval(Short.parseShort(fields[0]));
      cmdData.setTrackExpire(Short.parseShort(fields[1]));
   } else if (tc.getCmdType() == JT808Constants.CMD_SEND_TEXT) {
      JT_8300 cmdData = new JT_8300();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);

      cmdData.setFlag(Byte.parseByte(fields[0]));
      cmdData.setText(fields[1]);

   } else if (tc.getCmdType() == JT808Constants.CMD_CONFIG_PARAM) {
      // ?
      JT_8103 cmdData = new JT_8103();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);

      java.util.ArrayList<ParameterItem> paramItems = new java.util.ArrayList<ParameterItem>();
      for (String field : fields) {
         if (StringHelper.isNullOrEmpty(field) == false) {
            String[] items = field.split("[,]", -1);
            ParameterItem pi = new ParameterItem();
            pi.setParameterId(Integer.parseInt(items[0]));
            pi.setParameterValue(items[1]);
            paramItems.add(pi);
         }
      }
      cmdData.setParameters(paramItems);
      cmdData.setParametersCount((byte) paramItems.size());
   } else if (tc.getCmdType() == JT808Constants.CMD_QUERY_PARAM) {
      // ?
      JT_8104 cmdData = new JT_8104();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      // C# TO JAVA CONVERTER WARNING: Unsigned integer types have no
      // direct equivalent in Java:
      // ORIGINAL LINE: List<uint> parameters = new List<uint>();
      java.util.ArrayList<Integer> parameters = new java.util.ArrayList<Integer>();
      for (String field : fields) {
         if (StringHelper.isNullOrEmpty(field) == false) {
            String[] strP = field.split("[,]", -1);
            parameters.add(Integer.parseInt(strP[0]));
         }
      }
      cmdData.setParametersIDs(parameters);
      cmdData.setParametersCount((byte) parameters.size());
   } else if (tc.getCmdType() == JT808Constants.CMD_CONTROL_TERMINAL) {
      // 
      JT_8105 cmdData = new JT_8105();
      ts.setMessageContents(cmdData);
      // string[] fields = tc.getCmdData().split(';');
      cmdData.setCommandWord(Byte.parseByte(tc.getCmd())); // 
      cmdData.setCommandParameters(tc.getCmdData());
   } else if (tc.getCmdType() == JT808Constants.CMD_TAKE_PHOTO) {
      // ??
      JT_8801 cmdData = new JT_8801();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      cmdData.setChannelId(Byte.parseByte(fields[0]));
      short cmdWord = (short) Integer.parseInt(fields[1]);// ?0xFFFFshort
      cmdData.setPhotoCommand(cmdWord);
      cmdData.setPhotoTimeInterval(Short.parseShort(fields[2]));
      cmdData.setStoreFlag(Byte.parseByte(fields[3]));
      cmdData.setResolution(Byte.parseByte(fields[4]));
      cmdData.setQuality(Byte.parseByte(fields[5]));
      cmdData.setBrightness((byte) (Integer.parseInt(fields[6])));
      cmdData.setContrast((byte) (Integer.parseInt(fields[7])));

      cmdData.setSaturation((byte) (Integer.parseInt(fields[8])));
      cmdData.setChroma((byte) (Integer.parseInt(fields[9])));
   } else if (tc.getCmdType() == JT808Constants.CMD_EVENT_SET) {
      // 
      JT_8301 cmdData = new JT_8301();
      cmdData.setSettingType(Byte.parseByte(tc.getCmd()));
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);

      java.util.ArrayList<EventSettingItem> paramItems = new java.util.ArrayList<EventSettingItem>();
      for (String field : fields) {
         if (StringHelper.isNullOrEmpty(field)) {
            continue;
         }

         String[] items = field.split("[,]", -1);
         EventSettingItem pi = new EventSettingItem();
         pi.setEventId(Byte.parseByte(items[0]));
         pi.setEventContent(items[1]); // GBK?
            
         eventIdMap.put((int)pi.getEventId(), pi.getEventContent());
         // pi.EventLength = byte.Parse(items[1]);
         paramItems.add(pi);
      }
      cmdData.setEvents(paramItems);
      cmdData.setEventsCount((byte) paramItems.size());
   } else if (tc.getCmdType() == JT808Constants.CMD_QUESTION) {
      // ???
      JT_8302 cmdData = new JT_8302();
      cmdData.setFlag(Byte.parseByte(tc.getCmd())); // 
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);

      java.util.ArrayList<AnswerItem> paramItems = new java.util.ArrayList<AnswerItem>();
      for (String field : fields) {
         if (StringHelper.isNullOrEmpty(field)) {
            continue;
         }
         String[] items = field.split("[,]", -1);
         AnswerItem pi = new AnswerItem();
         pi.setAnswerId(Byte.parseByte(items[0]));
         pi.setAnswerLength((byte) StringHelper.getByteLength(items[1]));
         pi.setAnswerContent(items[1]); // GBK?
         paramItems.add(pi);
      }
      cmdData.setCandidateAnswers(paramItems);
      cmdData.setQuestion(tc.getRemark()); // 
      // cmdData.QuestionLength = (byte)tc.Remark.Length; //GBK???
   } else if (tc.getCmdType() == JT808Constants.CMD_SET_MENU) {
      // ??
      JT_8303 cmdData = new JT_8303();
      cmdData.setSettingType(Byte.parseByte(tc.getCmd())); // 
      ts.setMessageContents(cmdData);
      java.util.ArrayList<PointcastMessageItem> paramItems = new java.util.ArrayList<PointcastMessageItem>();
      if (StringUtil.isNullOrEmpty(tc.getCmdData()) == false) {
         String[] fields = tc.getCmdData().split("[;]", -1);
         for (String field : fields) {
            if (StringHelper.isNullOrEmpty(field)) {
               continue;
            }
            String[] items = field.split("[,]", -1);
            PointcastMessageItem pi = new PointcastMessageItem();
            pi.setMessageType(Byte.parseByte(items[0]));
            pi.setMessage(items[1]); // GBK?
            paramItems.add(pi);
         }
         cmdData.setMessages(paramItems);
      }
      cmdData.setInfoItemsCount((byte) paramItems.size()); // GBK???
   } else if (tc.getCmdType() == JT808Constants.CMD_INFORMATION) {
      // ??
      JT_8304 cmdData = new JT_8304();
      ts.setMessageContents(cmdData);
      if (StringHelper.isNullOrEmpty(tc.getCmdData()))
         throw new Exception("?");
      String[] fields = tc.getCmdData().split("[;]", -1);
      cmdData.setMessageType(Byte.parseByte(fields[0]));
         
      cmdData.setMessage(fields[1]);
   } else if (tc.getCmdType() == JT808Constants.CMD_DIAL_BACK) {
      // ?
      JT_8400 cmdData = new JT_8400();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      cmdData.setFlag(Byte.parseByte(fields[0]));
      cmdData.setPhoneNo(fields[1]);
   } else if (tc.getCmdType() == JT808Constants.CMD_PHONE_BOOK) {
      // ?
      JT_8401 cmdData = new JT_8401();
      cmdData.setSettingType(Byte.parseByte(tc.getCmd())); // 
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);

      java.util.ArrayList<PhoneNoItem> paramItems = new java.util.ArrayList<PhoneNoItem>();
      for (String field : fields) {
         if (StringHelper.isNullOrEmpty(field)) {
            continue;
         }
         String[] items = field.split("[,]", -1);
         PhoneNoItem pi = new PhoneNoItem();
         pi.setDailFlag(Byte.parseByte(items[0]));
         // pi.PhoneNoLength = byte.Parse(items[1]);
         pi.setPhoneNo(items[1]);
         // pi.ContactLength = byte.Parse(items[3]);
         pi.setContact(items[2]); // GBK?
         paramItems.add(pi);
      }
      cmdData.setContacts(paramItems);
      cmdData.setPhoneNosCount((byte) paramItems.size());
   } else if (tc.getCmdType() == JT808Constants.CMD_CONTROL_VEHICLE) {
      // 
      JT_8500 cmdData = new JT_8500();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      cmdData.setFlag(Byte.parseByte(fields[0]));
   } else if (tc.getCmdType() == JT808Constants.CMD_AUDIO_RECORDER) {
      // 
      JT_8804 cmdData = new JT_8804();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      cmdData.setRecordCommad(Byte.parseByte(fields[0]));
      cmdData.setRecordTimePeriod(Short.parseShort(fields[1]));
      cmdData.setStoreFlag(Byte.parseByte(fields[2]));
      cmdData.setFrequency(Byte.parseByte(fields[3]));
   } else if (tc.getCmdType() == JT808Constants.CMD_VEHICLE_RECORDER) {
      // ?
      if(vehicleRecorderVersion!=null && vehicleRecorderVersion.equals("2012"))
      {
         //2012
         JT2012_8700  cmdData = new JT2012_8700();
         ts.setMessageContents(cmdData);
         String[] fields = tc.getCmdData().split("[;]", -1);
         cmdData.setCommandWord(Byte.parseByte(fields[0])); // 
      } else {
         //2003
         JT_8700 cmdData = new JT_8700();
         ts.setMessageContents(cmdData);
         String[] fields = tc.getCmdData().split("[;]", -1);
         cmdData.setCommandWord(Byte.parseByte(fields[0])); // 
         // cmdDat = uShort.parseShort(fields[1]);
         cmdData.setRepassPacketsCount((byte) 0); // ???
      }
   } else if (tc.getCmdType() == JT808Constants.CMD_VEHICLE_RECORDER_CONFIG) {
      // ?
      JT_8701 cmdData = new JT_8701();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);

      cmdData.setCommandWord((byte) Integer.parseInt(fields[0])); // 
      // cmdDat = uShort.parseShort(fields[1]);
      Integer cmdWord = Integer.parseInt(fields[0]);
      if (cmdWord == 0x81) {
         // ?????
         Recorder_DriverVehicleCode rd = new Recorder_DriverVehicleCode();
         cmdData.setData(rd);
         rd.setDriverCode(fields[1]);
         rd.setDriverLicenseNo(fields[2]);
      } else if (cmdWord == 0x82) {
         // VIN?????
         Recorder_VehicleLicenseInfo rd = new Recorder_VehicleLicenseInfo();
         rd.setVinNo(fields[1]);
         rd.setVehicleLicenseNo(fields[2]);
         rd.setPlateType(fields[3]);
         cmdData.setData(rd);
      } else if (cmdWord == 0xC2) {
         //  YY-MM-DD-hh-mm-ss
         Recorder_RealTimeClock rd = new Recorder_RealTimeClock();
         SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
         rd.setRealTimeClock(sdf.parse(fields[1]));
         cmdData.setData(rd);
      } else if (cmdWord == 0xC3) {
         // ? ()
         Recorder_FeatureFactor rd = new Recorder_FeatureFactor();
         rd.setFeatureFactor(Integer.parseInt(fields[1]));
         cmdData.setData(rd);
      } else {
         throw new Exception("?:" + cmdWord);
      }

   } else if (tc.getCmdType() == JT808Constants.CMD_TRANS) {
      // ?
      JT_8900 cmdData = new JT_8900();
      ts.setMessageContents(cmdData);
      String[] fields = tc.getCmdData().split("[;]", -1);
      String format = fields[0];
      String messageCotent = fields[2];
      byte[] messageBytes = null;
      if (format == "hex") {
         // 16
         messageBytes = Tools.HexString2Bytes(messageCotent);
      } else {
         messageBytes = BitConverter.getBytes(messageCotent);
         messageBytes = Base64.encodeBase64(messageBytes);
      }
      cmdData.setMessageType(Byte.parseByte(fields[1]));

      cmdData.setMessageContent(messageBytes);
   }else if (tc.getCmdType() == JT808Constants.CMD_CLEAR_ALARM) {

      String[] fields = tc.getCmdData().split("[;]", -1);
      int sn = Integer.parseInt(fields[0]);
      int msgType = Integer.parseInt(fields[1]);
      int ackResult = Integer.parseInt(fields[2]);
      /**
      JT_8001 cmdData = new JT_8001();
      ts.setMessageContents(cmdData);
      cmdData.setResponseMessageSerialNo((short)sn);
      cmdData.setResponseMessageId((short) msgType);
      cmdData.setResponseResult((byte) ackResult); // ?
      */
      JT_8203 cmdData = new JT_8203();
      ts.getHeader().setMessageType(0x8203);
      ts.setMessageContents(cmdData);
      cmdData.setResponseMessageSerialNo((short)sn);
      cmdData.setAlarmType(1);//
   } else {
      tc.setStatus(TerminalCommand.STATUS_INVALID);
   }
   // BaseDao.saveOrUpdate(tc); //??
   return ts;
}

From source file:nl.knaw.dans.common.ldap.repo.LdapMapper.java

private Object getPrimitive(Class<?> type, String s) throws NamingException {
    Object value = s;//from www.  ja v a  2  s.  c  o m
    if (Integer.TYPE.equals(type)) {
        value = Integer.parseInt(s);
    } else if (Boolean.TYPE.equals(type)) {
        value = new Boolean("TRUE".equals(s));
    } else if (Long.TYPE.equals(type)) {
        value = Long.parseLong(s);
    } else if (Float.TYPE.equals(type)) {
        value = Float.parseFloat(s);
    } else if (Double.TYPE.equals(type)) {
        value = Double.parseDouble(s);
    } else if (Byte.TYPE.equals(type)) {
        value = Byte.parseByte(s);
    } else if (Short.TYPE.equals(type)) {
        value = Short.parseShort(s);
    }
    return value;
}

From source file:com.zlfun.framework.excel.ExcelUtils.java

private static void set(Object obj, Field field, String value) {

    if (value == null) {
        return;//from w  w w.jav a 2 s  . c o  m
    }
    try {
        if (!field.isAccessible()) {
            field.setAccessible(true);
        }
        Object val = value;

        if (field.getType() == int.class) {
            try {
                val = Integer.parseInt(value);
            } catch (Exception ex) {
                val = -1;
            }
        } else if (field.getType() == long.class) {
            try {
                val = Long.parseLong(value);
            } catch (Exception ex) {
                val = -1l;
            }

        } else if (field.getType() == double.class) {
            val = Double.parseDouble(value);
        } else if (field.getType() == byte.class) {
            val = Byte.parseByte(value);
        } else if (field.getType() == boolean.class) {
            val = Boolean.parseBoolean(value);
        }

        field.set(obj, val);

    } catch (Exception e) {

    }
}

From source file:com.google.cloud.dataflow.examples.opinionanalysis.IndexerPipelineUtils.java

public static byte[] extractRecordDelimiters(String paramValue) {
    String[] delimiters = paramValue.split(",");
    ArrayList<Byte> resList = new ArrayList<Byte>();
    for (String d : delimiters)
        resList.add(Byte.parseByte(d));
    Byte[] resArray = new Byte[resList.size()];
    resList.toArray(resArray);// w ww .j  av  a  2s. c o m
    byte[] result = ArrayUtils.toPrimitive(resArray);
    return result;
}

From source file:com.netcrest.pado.tools.pado.command.put.java

@SuppressWarnings("rawtypes")
private void updateObject(Map<String, Method> setterMap, Object obj, String field, String value)
        throws Exception {
    String setterMethodName = "set" + field.trim();
    Method setterMethod = setterMap.get(setterMethodName);
    if (setterMethod == null) {
        return;//from w ww . j a va2s. com
    }

    Class types[] = setterMethod.getParameterTypes();
    Class arg = types[0];
    if (arg == byte.class || arg == Byte.class) {
        setterMethod.invoke(obj, Byte.parseByte(value));
    } else if (arg == char.class || arg == Character.class) {
        setterMethod.invoke(obj, value.charAt(0));
    } else if (arg == short.class || arg == Short.class) {
        setterMethod.invoke(obj, Short.parseShort(value));
    } else if (arg == int.class || arg == Integer.class) {
        setterMethod.invoke(obj, Integer.parseInt(value));
    } else if (arg == long.class || arg == Long.class) {
        setterMethod.invoke(obj, Long.parseLong(value));
    } else if (arg == float.class || arg == Float.class) {
        setterMethod.invoke(obj, Float.parseFloat(value));
    } else if (arg == double.class || arg == Double.class) {
        setterMethod.invoke(obj, Double.parseDouble(value));
    } else if (arg == Date.class) {
        Date date = padoShell.getDate(value);
        if (date == null) {
            PadoShell.println("   Unable to parse date.");
        } else {
            setterMethod.invoke(obj, date);
        }
    } else if (arg == String.class) {
        setterMethod.invoke(obj, value);
    } else {
        PadoShell.println("   Unsupported type: " + setterMethod.getName() + "(" + arg.getName() + ")");
        return;
    }
}

From source file:microsoft.exchange.webservices.data.property.complex.UserConfigurationDictionary.java

/**
 * Constructs a dictionary object (key or entry value) from the specified
 * type and string list./*from  w ww  .j  ava  2s .c  o  m*/
 *
 * @param type   Object type to construct.
 * @param value  Value of the dictionary object as a string list
 * @param reader The reader.
 * @return Dictionary object.
 */
private Object constructObject(UserConfigurationDictionaryObjectType type, List<String> value,
        EwsServiceXmlReader reader) {
    EwsUtilities.ewsAssert(value != null, "UserConfigurationDictionary.ConstructObject", "value is null");
    EwsUtilities.ewsAssert((value.size() == 1 || type == UserConfigurationDictionaryObjectType.StringArray),

            "UserConfigurationDictionary.ConstructObject", "value is array but type is not StringArray");
    EwsUtilities.ewsAssert(reader != null, "UserConfigurationDictionary.ConstructObject", "reader is null");

    Object dictionaryObject = null;
    if (type.equals(UserConfigurationDictionaryObjectType.Boolean)) {
        dictionaryObject = Boolean.parseBoolean(value.get(0));
    } else if (type.equals(UserConfigurationDictionaryObjectType.Byte)) {
        dictionaryObject = Byte.parseByte(value.get(0));
    } else if (type.equals(UserConfigurationDictionaryObjectType.ByteArray)) {
        dictionaryObject = Base64.decodeBase64(value.get(0));
    } else if (type.equals(UserConfigurationDictionaryObjectType.DateTime)) {
        Date dateTime = DateTimeUtils.convertDateTimeStringToDate(value.get(0));
        if (dateTime != null) {
            dictionaryObject = dateTime;
        } else {
            EwsUtilities.ewsAssert(false, "UserConfigurationDictionary.ConstructObject", "DateTime is null");
        }
    } else if (type.equals(UserConfigurationDictionaryObjectType.Integer32)) {
        dictionaryObject = Integer.parseInt(value.get(0));
    } else if (type.equals(UserConfigurationDictionaryObjectType.Integer64)) {
        dictionaryObject = Long.parseLong(value.get(0));
    } else if (type.equals(UserConfigurationDictionaryObjectType.String)) {
        dictionaryObject = String.valueOf(value.get(0));
    } else if (type.equals(UserConfigurationDictionaryObjectType.StringArray)) {
        dictionaryObject = value.toArray();
    } else if (type.equals(UserConfigurationDictionaryObjectType.UnsignedInteger32)) {
        dictionaryObject = Integer.parseInt(value.get(0));
    } else if (type.equals(UserConfigurationDictionaryObjectType.UnsignedInteger64)) {
        dictionaryObject = Long.parseLong(value.get(0));
    } else {
        EwsUtilities.ewsAssert(false, "UserConfigurationDictionary.ConstructObject",
                "Type not recognized: " + type.toString());
    }

    return dictionaryObject;
}

From source file:org.jboss.dashboard.commons.misc.ReflectionUtils.java

public static byte toByte(String parameter) throws Exception {
    return Byte.parseByte(parameter);
}

From source file:com.palantir.opensource.sysmon.linux.LinuxDiskspaceJMXWrapper.java

private static Byte parseByteIgnorePcnt(String byteValue) {
    try {/*from  w w  w.j a  va2  s. c om*/
        return Byte.parseByte(byteValue.replaceAll("%", ""));
    } catch (NumberFormatException e) {
        if (log.isDebugEnabled()) {
            log.debug("Error parsing value: " + byteValue, e);
        }
    }
    return null;
}

From source file:com.amalto.core.storage.StorageMetadataUtils.java

public static Object convert(String dataAsString, String type) {
    if (Types.STRING.equals(type) || Types.TOKEN.equals(type) || Types.DURATION.equals(type)) {
        return dataAsString;
    } else if (Types.INTEGER.equals(type) || Types.POSITIVE_INTEGER.equals(type)
            || Types.NEGATIVE_INTEGER.equals(type) || Types.NON_NEGATIVE_INTEGER.equals(type)
            || Types.NON_POSITIVE_INTEGER.equals(type) || Types.INT.equals(type)
            || Types.UNSIGNED_INT.equals(type)) {
        return Integer.parseInt(dataAsString);
    } else if (Types.DATE.equals(type)) {
        // Be careful here: DateFormat is not thread safe
        synchronized (DateConstant.DATE_FORMAT) {
            try {
                DateFormat dateFormat = DateConstant.DATE_FORMAT;
                Date date = dateFormat.parse(dataAsString);
                return new Timestamp(date.getTime());
            } catch (Exception e) {
                throw new RuntimeException("Could not parse date string", e);
            }/*from w ww.  j  a va  2s . c  o  m*/
        }
    } else if (Types.DATETIME.equals(type)) {
        // Be careful here: DateFormat is not thread safe
        synchronized (DateTimeConstant.DATE_FORMAT) {
            try {
                DateFormat dateFormat = DateTimeConstant.DATE_FORMAT;
                Date date = dateFormat.parse(dataAsString);
                return new Timestamp(date.getTime());
            } catch (Exception e) {
                throw new RuntimeException("Could not parse date time string", e);
            }
        }
    } else if (Types.BOOLEAN.equals(type)) {
        // Boolean.parseBoolean returns "false" if content isn't a boolean string value. Callers of this method
        // expect call to fail if data is malformed.
        if ("0".equals(dataAsString)) { //$NON-NLS-1$
            return false;
        } else if ("1".equals(dataAsString)) { //$NON-NLS-1$
            return true;
        }
        if (!"false".equalsIgnoreCase(dataAsString) && !"true".equalsIgnoreCase(dataAsString)) { //$NON-NLS-1$ //$NON-NLS-2$
            throw new IllegalArgumentException("Value '" + dataAsString + "' is not valid for boolean");
        }
        return Boolean.parseBoolean(dataAsString);
    } else if (Types.DECIMAL.equals(type)) {
        try {
            return new BigDecimal(dataAsString);
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException("'" + dataAsString + "' is not a number.", e);
        }
    } else if (Types.FLOAT.equals(type)) {
        return Float.parseFloat(dataAsString);
    } else if (Types.LONG.equals(type) || Types.UNSIGNED_LONG.equals(type)) {
        return Long.parseLong(dataAsString);
    } else if (Types.ANY_URI.equals(type)) {
        return dataAsString;
    } else if (Types.SHORT.equals(type) || Types.UNSIGNED_SHORT.equals(type)) {
        return Short.parseShort(dataAsString);
    } else if (Types.QNAME.equals(type)) {
        return dataAsString;
    } else if (Types.BASE64_BINARY.equals(type)) {
        return dataAsString;
    } else if (Types.HEX_BINARY.equals(type)) {
        return dataAsString;
    } else if (Types.BYTE.equals(type) || Types.UNSIGNED_BYTE.equals(type)) {
        return Byte.parseByte(dataAsString);
    } else if (Types.DOUBLE.equals(type) || Types.UNSIGNED_DOUBLE.equals(type)) {
        return Double.parseDouble(dataAsString);
    } else if (Types.TIME.equals(type)) {
        // Be careful here: DateFormat is not thread safe
        synchronized (TimeConstant.TIME_FORMAT) {
            try {
                DateFormat dateFormat = TimeConstant.TIME_FORMAT;
                Date date = dateFormat.parse(dataAsString);
                return new Timestamp(date.getTime());
            } catch (ParseException e) {
                throw new RuntimeException("Could not parse time string", e);
            }
        }
    } else {
        throw new NotImplementedException("No support for type '" + type + "'");
    }
}

From source file:forseti.nomina.JNomMovDirDlg.java

@SuppressWarnings({ "rawtypes", "unchecked" })
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    super.doPost(request, response);

    String nom_nomina_dlg = "";
    request.setAttribute("nom_nomina_dlg", nom_nomina_dlg);

    String mensaje = "";
    short idmensaje = -1;
    String usuario = getSesion(request).getID_Usuario();

    if (request.getContentType() != null
            && request.getContentType().toLowerCase().indexOf("multipart/form-data") > -1) {
        if (!getSesion(request).getRegistrado()) {
            irApag("/forsetiweb/errorAtributos.jsp", request, response);
            return;
        } else {//from w  w  w.  j a  va 2  s .c o m
            try {
                HttpSession ses = request.getSession(true);
                JFacturasXML nomrecxml = (JFacturasXML) ses.getAttribute("nom_rec_xml");
                Vector archivos = new Vector();
                DiskFileUpload fu = new DiskFileUpload();
                List items = fu.parseRequest(request);
                Iterator iter = items.iterator();
                while (iter.hasNext()) {
                    FileItem item = (FileItem) iter.next();
                    if (item.isFormField())
                        nomrecxml.getParametros().put(item.getFieldName(), item.getString());
                    else
                        archivos.addElement(item);
                }

                // revisa por las entidades
                JNominaEntidadesSetIds setids = new JNominaEntidadesSetIds(request, usuario,
                        getSesion(request).getSesion("NOM_NOMINA").getEspecial());
                setids.Open();

                if (setids.getNumRows() < 1) {
                    idmensaje = 3;
                    mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                            "NOM_NOMINA", "NNOM||||", mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }

                SubirArchivosCFD(request, response, nomrecxml, archivos);
                return;
            } catch (FileUploadException e) {
                e.printStackTrace();
                return;
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }
        }
    }

    if (request.getParameter("proceso") != null && !request.getParameter("proceso").equals("")) {
        // revisa por las entidades
        JNominaEntidadesSetIds setids = new JNominaEntidadesSetIds(request, usuario,
                getSesion(request).getSesion("NOM_NOMINA").getEspecial());
        setids.Open();

        if (setids.getNumRows() < 1) {
            idmensaje = 3;
            mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(), "NOM_NOMINA",
                    "NNOM||||", mensaje);
            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
            return;
        }

        request.setAttribute("idmod", "NOM_NOMINA");
        request.setAttribute("fact_xml", "NOMINA");

        // Revisa por intento de intrusion (Salto de permiso de entidad)
        if (!request.getParameter("proceso").equals("AGREGAR_NOMINA") && request.getParameter("id") != null) {
            JNominasModuloSet set = new JNominasModuloSet(request);
            set.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            set.Open();
            if (set.getNumRows() < 1) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "AL", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM|" + request.getParameter("id") + "|"
                                + setids.getAbsRow(0).getID_Sucursal() + "||",
                        mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        }

        if (request.getParameter("proceso").equals("ENLAZAR_RECIBO")) {
            //System.out.println("Enlazar Recibos");
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setids.getAbsRow(0).getCFD()
                    || (setnom.getAbsRow(0).getTipo() != 1 && setnom.getAbsRow(0).getTipo() != 2
                            && setnom.getAbsRow(0).getTipo() != 5 && setnom.getAbsRow(0).getTipo() != 6
                            && setnom.getAbsRow(0).getTipo() != 7 && setnom.getAbsRow(0).getTipo() != 8)) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede enlazar ningun CFDI porque esta entidad de nmina genera sus propios CFDIs, o  porque esta nmina es del tipo especial, la cual no es compatible para sellar.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("subproceso") == null) // Como el subproceso no es ENVIAR ni ENLAZAR,
            {
                //System.out.println("Subproceso Nulo");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/fact_dlg_xmls.jsp", request, response);
                return;
            } else {
                //System.out.println("Subproceso NO Nulo");
                if (request.getParameter("subproceso").equals("ENLAZAR")) {
                    // Se supone que el recibo aun no estar ligado a un recibo existente...
                    JCFDCompSet comprobante = new JCFDCompSet(request, "NOMINA");
                    comprobante.m_Where = "UUID = '" + p(request.getParameter("uuid")) + "'";
                    comprobante.Open();

                    if (comprobante.getNumRows() < 1 || !comprobante.getAbsRow(0).getFSI_Tipo().equals("ENT")
                            || comprobante.getAbsRow(0).getFSI_ID() != Integer
                                    .parseInt(getSesion(request).getSesion("NOM_NOMINA").getEspecial())) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se ha cargado el CFDI del recibo, ste ya esta ligado a otro recibo,  el CFDI se carg en otra entidad<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    HttpSession ses = request.getSession(true);
                    JFacturasXML nomrecxml = (JFacturasXML) ses.getAttribute("nom_rec_xml");

                    if (nomrecxml == null) {
                        nomrecxml = new JFacturasXML();
                        ses.setAttribute("nom_rec_xml", nomrecxml);
                    } else {
                        nomrecxml = null;
                        nomrecxml = new JFacturasXML();
                        ses.setAttribute("nom_rec_xml", nomrecxml);
                    }

                    StringBuffer sb_mensaje = new StringBuffer();
                    if (!JForsetiCFD.CargarDocumentoCFDI(request, nomrecxml, sb_mensaje,
                            request.getParameter("uuid"), "N")) {
                        idmensaje = 3;
                        mensaje += sb_mensaje.toString();
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (nomrecxml.getComprobante().getProperty("tipoDeComprobante").equals("ingreso")
                            || nomrecxml.getComprobante().getProperty("tipoDeComprobante").equals("traslado")) {
                        idmensaje = 3;
                        mensaje += "ERROR: El tipo de comprobante fiscal digital CFDI, No corresponde con el tipo de documento a enlazar.<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    //Verifica que el RFC del Emisor sea igual al RFC registrado, o que sea rfc generico
                    JBDSSet set = new JBDSSet(request);
                    set.ConCat(true);
                    set.m_Where = "Nombre = 'FSIBD_" + p(getSesion(request).getBDCompania()) + "'";
                    set.Open();
                    if (!nomrecxml.getRFC_Emisor().equalsIgnoreCase(set.getAbsRow(0).getRFC())) {
                        idmensaje = 3;
                        mensaje = "ERROR: El RFC del emisor en el XML no pertenece a la compaia";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (request.getParameter("idempleado") == null) // Significa que debe agregar un nuevo recibo 
                    {
                        if (setnom.getAbsRow(0).getCerrado()) {
                            idmensaje = 3;
                            mensaje += "ERROR: No se puede enlazar el CFDI a un recibo nuevo porque la nmina ya esta protegida <br>";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }
                        //float descuento = Float.parseFloat(nomrecxml.getComprobante().getProperty("descuento"));
                        //float totalImpuestosRetenidos = Float.parseFloat(nomrecxml.getImpuestos().getProperty("totalImpuestosRetenidos"));
                        JMasempSet setemp = new JMasempSet(request);
                        setemp.m_Where = "ID_Compania = '0' and ID_Sucursal = '"
                                + getSesion(request).getSesion("NOM_NOMINA").getEspecial()
                                + "' and ( RFC_Letras || RFC_Fecha || RFC_Homoclave ) ~~* '"
                                + p(nomrecxml.getRFC_Receptor()) + "'";
                        setemp.Open();
                        //System.out.println(setemp.getSQL());
                        if (setemp.getNumRows() == 0) {
                            idmensaje = 1;
                            mensaje = "PRECAUCION: No existe el empleado dado de alta en el sistema, est dado de alta en otra entidad o el RFC del empleado no coincide con el del recibo";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                        JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg");
                        if (rec == null) {
                            rec = new JNomMovDirSes();
                            ses.setAttribute("nom_nomina_dlg", rec);
                        } else
                            rec.resetear();

                        JProcessSet setRec = new JProcessSet(request);
                        setRec.setSQL("select Recibo from VIEW_NOM_CALCULO_NOMINA_ESP where ID_Nomina = '"
                                + p(request.getParameter("id")) + "' order by Recibo desc limit 1");
                        setRec.Open();

                        if (setRec.getNumRows() > 0)
                            rec.setRecibo(Integer.valueOf(setRec.getAbsRow(0).getSTS("Col1")) + 1);
                        else
                            rec.setRecibo(1);

                        //Llena el recibo
                        rec.setUUID(nomrecxml.getTFD().getProperty("UUID"));
                        rec.setID_Empleado(setemp.getAbsRow(0).getID_Empleado());
                        rec.setNombre(setemp.getAbsRow(0).getNombre() + " "
                                + setemp.getAbsRow(0).getApellido_Paterno() + " "
                                + setemp.getAbsRow(0).getApellido_Materno());

                        JCalculoNominaDetSet dset = new JCalculoNominaDetSet(request);
                        dset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                                + p(request.getParameter("idempleado")) + "'";
                        dset.Open();

                        for (int i = 0; i < nomrecxml.getPercepciones().size(); i++) {
                            Properties percepcion = (Properties) nomrecxml.getPercepciones().elementAt(i);
                            int clave;
                            String descripcion;
                            boolean esDeduccion;
                            int idmovimiento;
                            try {
                                idmovimiento = Integer.parseInt(percepcion.getProperty("Clave"));
                            } catch (NumberFormatException e) {
                                idmovimiento = 0;
                            }
                            JMovimientosNomSet cat = new JMovimientosNomSet(request);
                            cat.m_Where = "ID_Movimiento = '" + idmovimiento + "'";
                            //System.out.println(cat.getSQL());
                            cat.Open();
                            if (cat.getNumRows() > 0) {
                                clave = cat.getAbsRow(0).getID_Movimiento();
                                descripcion = cat.getAbsRow(0).getDescripcion();
                                esDeduccion = cat.getAbsRow(0).getDeduccion();
                            } else // Si no existe la clave en el catalogo, enlaza desde catlogo intermediario 
                            {
                                clave = 0;
                                descripcion = percepcion.getProperty("Concepto");
                                esDeduccion = false;
                            }
                            float gravado = Float.parseFloat(percepcion.getProperty("ImporteGravado"));
                            float exento = Float.parseFloat(percepcion.getProperty("ImporteExento"));

                            rec.agregaPartida(clave, descripcion, gravado, exento, 0.00F, esDeduccion);
                        }

                        for (int i = 0; i < nomrecxml.getDeducciones().size(); i++) {
                            Properties deduccion = (Properties) nomrecxml.getDeducciones().elementAt(i);
                            int clave;
                            String descripcion;
                            boolean esDeduccion;

                            JMovimientosNomSet cat = new JMovimientosNomSet(request);
                            cat.m_Where = "ID_Movimiento = '" + p(deduccion.getProperty("Clave")) + "'";
                            //System.out.println(cat.getSQL());
                            cat.Open();
                            if (cat.getNumRows() > 0) {
                                clave = cat.getAbsRow(0).getID_Movimiento();
                                descripcion = cat.getAbsRow(0).getDescripcion();
                                esDeduccion = cat.getAbsRow(0).getDeduccion();
                            } else // Si no existe la clave en el catalogo, enlaza desde catlogo intermediario 
                            {
                                clave = 0;
                                descripcion = deduccion.getProperty("Concepto");
                                esDeduccion = true;
                            }
                            float gravado = Float.parseFloat(deduccion.getProperty("ImporteGravado"));
                            float exento = Float.parseFloat(deduccion.getProperty("ImporteExento"));

                            rec.agregaPartida(clave, descripcion, 0.00F, 0.00F, -(gravado + exento),
                                    esDeduccion);
                        }

                        for (int i = 0; i < nomrecxml.getIncapacidades().size(); i++) {
                            Properties incapacidad = (Properties) nomrecxml.getIncapacidades().elementAt(i);

                            float dias = Float.parseFloat(incapacidad.getProperty("DiasIncapacidad"));
                            int tipo = Integer.parseInt(incapacidad.getProperty("TipoIncapacidad"));
                            if (tipo == 1)
                                rec.setIXA(dias);
                            else if (tipo == 2)
                                rec.setIXE(dias);
                            else
                                rec.setIXM(dias);

                        }

                        for (int i = 0; i < nomrecxml.getHorasExtras().size(); i++) {
                            Properties horasextra = (Properties) nomrecxml.getHorasExtras().elementAt(i);

                            byte dias = Byte.parseByte(horasextra.getProperty("Dias"));
                            String tipo = horasextra.getProperty("TipoHoras");
                            float horas = Float.parseFloat(horasextra.getProperty("HorasExtra"));

                            rec.setDiasHorasExtras(dias);
                            if (tipo.equals("Dobles") || tipo.equals("dobles"))
                                rec.setHE(horas);
                            else // Triples o triples
                                rec.setHT(horas);

                        }

                        rec.establecerResultados();

                        if ((JUtil.redondear(rec.getSumGravado() + rec.getSumExento() + rec.getSumDeduccion(),
                                2)
                                - JUtil.redondear(
                                        Float.parseFloat(nomrecxml.getComprobante().getProperty("total")),
                                        2)) > 0.1
                                || (JUtil.redondear(
                                        rec.getSumGravado() + rec.getSumExento() + rec.getSumDeduccion(), 2)
                                        - JUtil.redondear(
                                                Float.parseFloat(
                                                        nomrecxml.getComprobante().getProperty("total")),
                                                2)) < -0.1) {
                            idmensaje = 3;
                            mensaje = "ERROR: El total en el CFDI no corresponde al Total calculado en el registro a partir de este CFDI. No se puede agregar. DOC: "
                                    + JUtil.redondear(
                                            rec.getSumGravado() + rec.getSumExento() + rec.getSumDeduccion(), 2)
                                    + " XML: "
                                    + JUtil.redondear(
                                            Float.parseFloat(nomrecxml.getComprobante().getProperty("total")),
                                            2);
                            getSesion(request).setID_Mensaje(idmensaje, mensaje.toString());
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;

                    } else // Significa que debe Enlazar a un recibo existente
                    {
                        if (setnom.getAbsRow(0).getFormaPago().equals("N")) //Si no est ya pagada la nomina lo rechaza porque no hay poliza para enlazar el cfdi a la contabilidad electronica
                        {
                            idmensaje = 3;
                            mensaje += "ERROR: No se puede enlazar el CFDI a un recibo existente porque la nmina no esta pagada an, lo que significa que no existe una pliza asociada para el enlace a la contabilidad elecrnica <br>";
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                        String[] valoresParam = request.getParameterValues("idempleado");
                        if (valoresParam.length == 1) {
                            JCalculoNominaEspSet cset = new JCalculoNominaEspSet(request);
                            cset.m_Where = "ID_Nomina = '" + p(request.getParameter("id"))
                                    + "' and ID_Empleado = '" + p(request.getParameter("idempleado")) + "'";
                            cset.Open();
                            //System.out.println(setemp.getSQL());

                            if (cset.getAbsRow(0).getID_CFD() != 0) {
                                idmensaje = 1;
                                mensaje += "PRECAUCION: Este recibo ya tiene un CFDI asociado. No puedes asociar otro CFDI al mismo recibo<br>";
                                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                                return;
                            }

                            JMasempSetCons setemp = new JMasempSetCons(request);
                            setemp.m_Where = "ID_Empleado = '" + p(request.getParameter("idempleado")) + "'";
                            setemp.Open();

                            if (JUtil.redondear(
                                    cset.getAbsRow(0).getGravado() + cset.getAbsRow(0).getExento()
                                            + cset.getAbsRow(0).getDeduccion(),
                                    2) != JUtil.redondear(
                                            Float.parseFloat(nomrecxml.getComprobante().getProperty("total")),
                                            2)
                                    || !(setemp.getAbsRow(0).getRFC_Letras()
                                            + setemp.getAbsRow(0).getRFC_Fecha()
                                            + setemp.getAbsRow(0).getRFC_Homoclave())
                                                    .equals(nomrecxml.getRFC_Receptor())) {
                                idmensaje = 1;
                                mensaje += "PRECAUCION: Los totales o los RFCs del recibo y el CFDI no coinciden. No se puede asociar este CFDI al registro<br>";
                                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                                return;
                            }

                            // Aqui asocia.
                            Enlazar(request, response);
                            return;
                        } else {
                            idmensaje = 1;
                            mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }
                    }

                } else if (request.getParameter("subproceso").equals("ENVIAR")) {
                    if (AgregarRecursos(request, response) == -1) {
                        AgregarCambiarEmp(request, response);
                        return;
                    }

                    irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                    return;
                }
            }
        } else if (request.getParameter("proceso").equals("AGREGAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_AGREGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JAdmCompaniasSet setcom = new JAdmCompaniasSet(request);
            setcom.m_Where = "ID_Compania = '0' and ID_Sucursal = '"
                    + getSesion(request).getSesion("NOM_NOMINA").getEspecial() + "'";
            setcom.Open();

            Byte numero_nomina = new Byte(setcom.getAbsRow(0).getNumero());
            Date desde = new Date(setcom.getAbsRow(0).getFecha().getTime());
            Calendar hast = new GregorianCalendar();
            hast.setTime(setcom.getAbsRow(0).getFecha());
            Integer ano = new Integer(JUtil.obtAno(hast));
            Integer tipo_de_nomina = new Integer(-1);

            if (setcom.getAbsRow(0).getPeriodo().equals("sem"))
                hast.add(Calendar.DATE, 6);
            else if (setcom.getAbsRow(0).getPeriodo().equals("qui"))
                hast.add(Calendar.DATE, 14);
            else {
                hast.add(Calendar.MONTH, 1);
                hast.add(Calendar.DATE, -1);
            }
            Date hasta = hast.getTime();

            request.setAttribute("numero_nomina", numero_nomina);
            request.setAttribute("ano", ano);
            request.setAttribute("desde", desde);
            request.setAttribute("hasta", hasta);
            request.setAttribute("tipo_de_nomina", tipo_de_nomina);

            // Solicitud de envio a procesar
            if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ENVIAR")) {
                // Verificacion
                if (VerificarParametros(request, response)) {
                    AgregarCambiarCabecero(request, response);
                    return;
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg.jsp", request, response);
                return;
            } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de AGREGADO para agregar `por primera vez
            {
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/nomina/nom_nomina_dlg.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CAMBIAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (setnom.getAbsRow(0).getCerrado()) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede cambiar la n&oacute;mina porque ya esta protegida<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (setnom.getAbsRow(0).getTipo() != 1 && setnom.getAbsRow(0).getTipo() != 2) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede cambiar la nmina porque no es una nmina normal<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }
                    Byte numero_nomina = new Byte((byte) setnom.getAbsRow(0).getNumero_Nomina());
                    Integer ano = new Integer(setnom.getAbsRow(0).getAno());
                    Date desde = new Date(setnom.getAbsRow(0).getFecha_Desde().getTime());
                    Date hasta = new Date(setnom.getAbsRow(0).getFecha_Hasta().getTime());
                    Integer tipo_de_nomina = new Integer(setnom.getAbsRow(0).getTipo());

                    request.setAttribute("numero_nomina", numero_nomina);
                    request.setAttribute("ano", ano);
                    request.setAttribute("desde", desde);
                    request.setAttribute("hasta", hasta);
                    request.setAttribute("tipo_de_nomina", tipo_de_nomina);

                    // Solicitud de envio a procesar
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {
                        // Verificacion
                        if (VerificarParametros(request, response)) {
                            AgregarCambiarCabecero(request, response);
                            return;
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg.jsp", request, response);
                        return;
                    } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de AGREGADO para agregar `por primera vez
                    {
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/nomina/nom_nomina_dlg.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("ELIMINAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_ELIMINAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_ELIMINAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_ELIMINAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (setnom.getAbsRow(0).getCerrado()) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede eliminar la n&oacute;mina porque ya esta protegida <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JCalculoNominaEspSet cset = new JCalculoNominaEspSet(request);
                    cset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and TFD >= 2";
                    cset.Open();
                    if (cset.getNumRows() > 0) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede eliminar la nmina porque por lo menos un recibo ya tiene su CFDI enlazado. Primero debes desenlazar el CFDI desde el mdulo de CFDI y CE del centro de control<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    Eliminar(request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CALCULAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_AGREGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (setnom.getAbsRow(0).getCerrado()) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede calcular la n&oacute;mina porque ya est protegida <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (setnom.getAbsRow(0).getTipo() == 1 || setnom.getAbsRow(0).getTipo() == 2) {
                        if (request.getParameter("subproceso") != null
                                && request.getParameter("subproceso").equals("ENVIAR")) {
                            //Normales
                            Calcular(request, response, 12);
                            return;
                        } else // Como el subproceso no es ENVIAR, abre la ventana del proceso de AGREGADO para agregar `por primera vez
                        {
                            getSesion(request).setID_Mensaje(idmensaje, mensaje);
                            irApag("/forsetiweb/nomina/nom_nomina_dlg_calcular.jsp", request, response);
                            return;
                        }
                    } else if (setnom.getAbsRow(0).getTipo() == 5 || setnom.getAbsRow(0).getTipo() == 6) {
                        //Aguinaldo
                        Calcular(request, response, 56);
                        return;
                    } else {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede calcular la nmina porque el tipo de nmina no es calculable <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 1;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("GENERAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_AGREGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (!setnom.getAbsRow(0).getCerrado() || setnom.getAbsRow(0).getStatus().equals("P")
                            || setnom.getAbsRow(0).getStatus().equals("C")) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede generar pago de n&oacute;mina porque no esta protegida, ya esta pagada o esta cancelada <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    Generar(request, response);
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CARGAR_RECIBO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("ADM_CFDI_CARGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "ADM_CFDI_CARGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "ADM_CFDI_CARGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setids.getAbsRow(0).getCFD()
                    || (setnom.getAbsRow(0).getTipo() != 1 && setnom.getAbsRow(0).getTipo() != 2
                            && setnom.getAbsRow(0).getTipo() != 5 && setnom.getAbsRow(0).getTipo() != 6)) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede cargar ningun CFDI porque esta entidad de nmina genera sus propios CFDIs, o  porque el tipo, no es compatible para sellar.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            Integer subir_archivos = new Integer(2);
            request.setAttribute("subir_archivos", subir_archivos);

            HttpSession ses = request.getSession(true);
            JFacturasXML rec = (JFacturasXML) ses.getAttribute("nom_rec_xml");

            if (rec == null) {
                rec = new JFacturasXML();
                ses.setAttribute("nom_rec_xml", rec);
            } else {
                rec = null;
                rec = new JFacturasXML();
                ses.setAttribute("nom_rec_xml", rec);
            }

            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            irApag("/forsetiweb/subir_archivos.jsp?verif=/servlet/CEFNomMovDirDlg&archivo_1=xml&archivo_2=pdf&proceso=CARGAR_RECIBO&subproceso=ENVIAR",
                    request, response);
            return;

        } else if (request.getParameter("proceso").equals("SELLAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_AGREGAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_AGREGAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_AGREGAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    if (setids.getAbsRow(0).getCFD() == false) {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Esta entidad de nmina no est&aacute; establecida como CFDI. No se pueden sellar los registros<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();

                    if (!setnom.getAbsRow(0).getCerrado() || !setnom.getAbsRow(0).getStatus().equals("P")
                            || setnom.getAbsRow(0).getStatus().equals("C")) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede sellar esta nmina porque no esta protegida, no esta pagada o est cancelada <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    if (setnom.getAbsRow(0).getTipo() == 1 || setnom.getAbsRow(0).getTipo() == 2
                            || setnom.getAbsRow(0).getTipo() == 5 || setnom.getAbsRow(0).getTipo() == 6
                            || setnom.getAbsRow(0).getTipo() == 7 || setnom.getAbsRow(0).getTipo() == 8) {
                        JCalculoNominaEspSet SetMod = new JCalculoNominaEspSet(request);
                        SetMod.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                        SetMod.m_OrderBy = "Recibo ASC";
                        SetMod.Open();

                        for (int i = 0; i < SetMod.getNumRows(); i++) {
                            if (SetMod.getAbsRow(i).getTFD() == 3)
                                continue;

                            StringBuffer sb_mensaje = new StringBuffer(254);
                            idmensaje = generarCFDI(request, response, "NOMINA",
                                    Integer.parseInt(request.getParameter("id")),
                                    SetMod.getAbsRow(i).getID_Empleado(), setids, SetMod.getAbsRow(i).getTFD(),
                                    sb_mensaje);
                            mensaje += SetMod.getAbsRow(i).getID_Empleado() + " " + sb_mensaje.toString()
                                    + "<br>";
                            if (idmensaje == 3)
                                break;
                        }

                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    } else {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede sellar la n&oacute;mina porque se trata de una n&oacute;mina especial. <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("PROTEGER_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    JNominasModuloSet setnom = new JNominasModuloSet(request);
                    setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
                    setnom.Open();
                    if (!setnom.getAbsRow(0).getFormaPago().equals("N")
                            || setnom.getAbsRow(0).getStatus().equals("C")) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede desproteger la nmina porque ya esta pagada o esta cancelada.<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    Proteger(request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CONSULTAR_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/nomina/nom_nomina_dlg_cons.jsp", request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("MOVER_NOMINA")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("id") != null) {
                String[] valoresParam = request.getParameterValues("id");
                if (valoresParam.length == 1) {
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/nomina/nom_nomina_dlg_cons.jsp", request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("AGR_EMP")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }
            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setnom.getAbsRow(0).getCerrado() || setnom.getAbsRow(0).getStatus().equals("C")) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede agregar el empleado porque la nmina ya est protegida o est cancelada.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            // Solicitud de envio a procesar
            if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("ENVIAR")) {
                if (AgregarCabeceroRecibo(request, response) == -1) {
                    AgregarCambiarEmp(request, response);
                    return;
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("AGR_PART")) {
                if (AgregarCabeceroRecibo(request, response) == -1) {
                    if (VerificarParametrosPartida(request, response))
                        AgregarPartida(request, response);
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("EDIT_PART")) {
                if (AgregarCabeceroRecibo(request, response) == -1) {
                    if (VerificarParametrosPartida(request, response))
                        EditarPartida(request, response);
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            } else if (request.getParameter("subproceso") != null
                    && request.getParameter("subproceso").equals("BORR_PART")) {
                if (AgregarCabeceroRecibo(request, response) == -1) {
                    BorrarPartida(request, response);
                }
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            } else // Como el subproceso no es ENVIAR ni AGR_PART ni EDIT_PART ni BORR_PART, abre la ventana del proceso de AGREGADO para agregar `por primera vez
            {
                HttpSession ses = request.getSession(true);
                JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg");
                if (rec == null) {
                    rec = new JNomMovDirSes();
                    ses.setAttribute("nom_nomina_dlg", rec);
                } else
                    rec.resetear();

                JProcessSet setRec = new JProcessSet(request);
                setRec.setSQL("select Recibo from VIEW_NOM_CALCULO_NOMINA_ESP where ID_Nomina = '"
                        + p(request.getParameter("id")) + "' order by Recibo desc limit 1");
                setRec.Open();

                if (setRec.getNumRows() > 0)
                    rec.setRecibo(Integer.valueOf(setRec.getAbsRow(0).getSTS("Col1")) + 1);
                else
                    rec.setRecibo(1);

                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                return;
            }
        } else if (request.getParameter("proceso").equals("CAM_EMP")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setnom.getAbsRow(0).getCerrado() || setnom.getAbsRow(0).getStatus().equals("C")) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede cambiar el recibo porque la nmina ya est protegida o est cancelada.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    JCalculoNominaEspSet cset = new JCalculoNominaEspSet(request);
                    cset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    cset.Open();
                    if (cset.getAbsRow(0).getTFD() >= 2) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede cambiar el recibo porque ya tiene un CFDI enlazado.<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }
                    //Solicitud de envio a procesar
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("ENVIAR")) {
                        // Verificacion
                        if (AgregarCabeceroRecibo(request, response) == -1) {
                            AgregarCambiarEmp(request, response);
                            return;
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    } else if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("AGR_PART")) {
                        if (AgregarCabeceroRecibo(request, response) == -1) {
                            if (VerificarParametrosPartida(request, response))
                                AgregarPartida(request, response);
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    } else if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("EDIT_PART")) {
                        if (AgregarCabeceroRecibo(request, response) == -1) {
                            if (VerificarParametrosPartida(request, response))
                                EditarPartida(request, response);
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    } else if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("BORR_PART")) {
                        if (AgregarCabeceroRecibo(request, response) == -1) {
                            BorrarPartida(request, response);
                        }
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    } else // Como el subproceso no es ENVIAR ni AGR_PART ni EDIT_PART ni BORR_PART, abre la ventana del proceso de AGREGADO para agregar `por primera vez
                    {
                        HttpSession ses = request.getSession(true);
                        JNomMovDirSes rec = (JNomMovDirSes) ses.getAttribute("nom_nomina_dlg");
                        if (rec == null) {
                            rec = new JNomMovDirSes();
                            ses.setAttribute("nom_nomina_dlg", rec);
                        } else
                            rec.resetear();

                        //Llena el empleado
                        JCalculoNominaEspSet set = new JCalculoNominaEspSet(request);
                        set.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                                + p(request.getParameter("idempleado")) + "'";
                        set.Open();

                        rec.setID_Empleado(set.getAbsRow(0).getID_Empleado());
                        rec.setNombre(set.getAbsRow(0).getNombre());
                        rec.setFaltas(set.getAbsRow(0).getFaltas());
                        rec.setHE(set.getAbsRow(0).getHE());
                        rec.setHD(set.getAbsRow(0).getHD());
                        rec.setHT(set.getAbsRow(0).getHT());
                        rec.setIXA(set.getAbsRow(0).getIXA());
                        rec.setIXE(set.getAbsRow(0).getIXE());
                        rec.setIXM(set.getAbsRow(0).getIXM());
                        rec.setRecibo(set.getAbsRow(0).getRecibo());
                        rec.setDiasHorasExtras(set.getAbsRow(0).getDiasHorasExtras());

                        JCalculoNominaDetSet dset = new JCalculoNominaDetSet(request);
                        dset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                                + p(request.getParameter("idempleado")) + "'";
                        dset.Open();

                        for (int i = 0; i < dset.getNumRows(); i++) {
                            rec.agregaPartida(dset.getAbsRow(i).getID_Movimiento(),
                                    dset.getAbsRow(i).getDescripcion(), dset.getAbsRow(i).getGravado(),
                                    dset.getAbsRow(i).getExento(), dset.getAbsRow(i).getDeduccion(),
                                    dset.getAbsRow(i).getEsDeduccion());
                        }
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/nomina/nom_nomina_dlg_emp.jsp", request, response);
                        return;
                    }

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("BORR_EMP")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA_CAMBIAR")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA_CAMBIAR");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA_CAMBIAR", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            JNominasModuloSet setnom = new JNominasModuloSet(request);
            setnom.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "'";
            setnom.Open();

            if (setnom.getAbsRow(0).getCerrado() || setnom.getAbsRow(0).getStatus().equals("C")) {
                idmensaje = 3;
                mensaje += "ERROR: No se puede borrar el recibo porque la nmina ya est protegida o est cancelada.<br>";
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    JCalculoNominaEspSet cset = new JCalculoNominaEspSet(request);
                    cset.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    cset.Open();
                    if (cset.getAbsRow(0).getTFD() >= 2) {
                        idmensaje = 3;
                        mensaje += "ERROR: No se puede eliminar el recibo porque ya tiene un CFDI enlazado.<br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    EliminarEmp(request, response);
                    return;
                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("IMPRIMIR")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    //Solicitud de envio a procesar
                    if (request.getParameter("subproceso") != null
                            && request.getParameter("subproceso").equals("IMPRESION")) {
                        // Impresion
                        StringBuffer bsmensaje = new StringBuffer(254);
                        String SQLCab = "select * from view_nomina_recibos_impcab where ID_Nomina = "
                                + request.getParameter("id") + " and ID_Empleado = '"
                                + request.getParameter("idempleado") + "'";
                        String SQLDet = "select * from view_nomina_recibos_impdet where ID_Nomina = "
                                + request.getParameter("id") + " and ID_Empleado = '"
                                + request.getParameter("idempleado")
                                + "' order by esdeduccion asc, id_movimiento asc";

                        idmensaje = Imprimir(SQLCab, SQLDet, request.getParameter("idformato"), bsmensaje,
                                request, response);

                        if (idmensaje != -1) {
                            getSesion(request).setID_Mensaje(idmensaje, bsmensaje.toString());
                            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                            return;
                        }

                    } else {
                        request.setAttribute("impresion", "CEFNomMovDirDlg");
                        request.setAttribute("tipo_imp", "NOM_NOMINA");
                        request.setAttribute("formato_default", setids.getAbsRow(0).getFmt_Recibo());

                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/impresion_dlg.jsp", request, response);
                        return;
                    }

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("ENVIAR_RECIBO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    //Solicitud de envio a procesar
                    JCalculoNominaEspSet SetMod = new JCalculoNominaEspSet(request);
                    SetMod.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    SetMod.Open();

                    if (SetMod.getAbsRow(0).getTFD() != 3) {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Este recibo no est&aacute; sellado completamente, no se puede enviar <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JMasempSet set = new JMasempSet(request);
                    set.m_Where = "ID_Empleado = '" + p(request.getParameter("idempleado")) + "'";
                    set.Open();
                    if (set.getAbsRow(0).getSMTP() == 0) // Maneja smtp manual o automtico
                    {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Este empleado no esta confgurado para recibir sus recibos por correo <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;

                    }

                    JFsiSMTPClient smtp = new JFsiSMTPClient();
                    smtp.enviarCFDIMPE(request, "NOM", request.getParameter("id"),
                            request.getParameter("idempleado"), set.getAbsRow(0).getNombre(),
                            set.getAbsRow(0).getEMail());
                    if (smtp.getStatusSMTP() == JFsiSMTPClient.ERROR) {
                        idmensaje = 3;
                        mensaje += "ERROR: " + smtp.getError();
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    getSesion(request).setID_Mensaje((short) 0, "El correo se ha mandado satisfactoriamente");
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("XML_RECIBO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    //Solicitud de envio a procesar
                    JCalculoNominaEspSet SetMod = new JCalculoNominaEspSet(request);
                    SetMod.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    SetMod.Open();

                    if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_CFD() == 0) {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Este recibo no est&aacute; sellado completamente, no hay nada que bajar <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JCFDCompSet cfd = new JCFDCompSet(request, "NOMINA");
                    cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'";
                    cfd.Open();

                    String nombre, destino;

                    if (cfd.getNumRows() > 0)
                        nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/nom/TFDs/"
                                + cfd.getAbsRow(0).getUUID() + ".xml";
                    else // Es CFDI generado internamente
                    {
                        nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania()
                                + "/TFDs/SIGN_NOM-" + request.getParameter("id") + "-"
                                + request.getParameter("idempleado") + ".xml";
                    }

                    destino = "NOM-" + SetMod.getAbsRow(0).getID_Nomina() + "-"
                            + SetMod.getAbsRow(0).getRecibo() + ".xml";

                    JBajarArchivo fd = new JBajarArchivo();

                    fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino);

                    idmensaje = 0;
                    mensaje = "El recibo se bajo satisfactoriamente";
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else if (request.getParameter("proceso").equals("PDF_RECIBO")) {
            // Revisa si tiene permisos
            if (!getSesion(request).getPermiso("NOM_NOMINA")) {
                idmensaje = 3;
                mensaje += MsjPermisoDenegado(request, "CEF", "NOM_NOMINA");
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                RDP("CEF", getSesion(request).getConBD(), "NA", getSesion(request).getID_Usuario(),
                        "NOM_NOMINA", "NNOM||||", mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

            if (request.getParameter("idempleado") != null) {
                String[] valoresParam = request.getParameterValues("idempleado");
                if (valoresParam.length == 1) {
                    //Solicitud de envio a procesar
                    JCalculoNominaEspSet SetMod = new JCalculoNominaEspSet(request);
                    SetMod.m_Where = "ID_Nomina = '" + p(request.getParameter("id")) + "' and ID_Empleado = '"
                            + p(request.getParameter("idempleado")) + "'";
                    SetMod.Open();

                    if (SetMod.getAbsRow(0).getTFD() != 3 || SetMod.getAbsRow(0).getID_CFD() == 0) {
                        idmensaje = 1;
                        mensaje += "PRECAUCION: Este recibo no est&aacute; sellado completamente, no hay nada que bajar <br>";
                        getSesion(request).setID_Mensaje(idmensaje, mensaje);
                        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                        return;
                    }

                    JCFDCompSet cfd = new JCFDCompSet(request, "NOMINA");
                    cfd.m_Where = "ID_CFD = '" + SetMod.getAbsRow(0).getID_CFD() + "'";
                    cfd.Open();

                    String nombre, destino;

                    if (cfd.getNumRows() > 0)
                        nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/nom/PDFs/"
                                + cfd.getAbsRow(0).getUUID() + ".pdf";
                    else
                        nombre = "/usr/local/forseti/emp/" + getSesion(request).getBDCompania() + "/PDFs/NOM-"
                                + request.getParameter("id") + "-" + request.getParameter("idempleado")
                                + ".pdf";

                    destino = "NOM-" + SetMod.getAbsRow(0).getID_Nomina() + "-"
                            + SetMod.getAbsRow(0).getRecibo() + ".pdf";

                    JBajarArchivo fd = new JBajarArchivo();

                    fd.doDownload(response, getServletConfig().getServletContext(), nombre, destino);

                    idmensaje = 0;
                    mensaje = "El recibo se bajo satisfactoriamente";
                    return;

                } else {
                    idmensaje = 1;
                    mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 2);
                    getSesion(request).setID_Mensaje(idmensaje, mensaje);
                    irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                    return;
                }
            } else {
                idmensaje = 3;
                mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 1);
                getSesion(request).setID_Mensaje(idmensaje, mensaje);
                irApag("/forsetiweb/caja_mensajes.jsp", request, response);
                return;
            }

        } else {
            idmensaje = 3;
            mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3);
            getSesion(request).setID_Mensaje(idmensaje, mensaje);
            irApag("/forsetiweb/caja_mensajes.jsp", request, response);
            return;
        }

    } else // si no se mandan parametros, manda a error
    {
        idmensaje = 3;
        mensaje += JUtil.Msj("GLB", "VISTA", "GLB", "SELEC-PROC", 3);
        getSesion(request).setID_Mensaje(idmensaje, mensaje);
        irApag("/forsetiweb/caja_mensajes.jsp", request, response);
        return;
    }

}