/**
   * Void Document. Same as Close.
   *
   * @return true if success
   */
  @Override
  public boolean voidIt() {
    log.info(toString());

    // Before Void
    m_processMsg =
        ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_BEFORE_VOID);
    if (m_processMsg != null) return false;

    // metas: tsa: begin: 2181
    // boolean retValue = reverseIt();
    // metas: tsa: changed
    if (DOCSTATUS_Closed.equals(getDocStatus())
        || DOCSTATUS_Reversed.equals(getDocStatus())
        || DOCSTATUS_Voided.equals(getDocStatus())) {
      m_processMsg = "Document Closed: " + getDocStatus();
      setDocAction(DOCACTION_None);
      return false;
    }
    //	Not Processed
    else if (DOCSTATUS_Drafted.equals(getDocStatus())
        || DOCSTATUS_Invalid.equals(getDocStatus())
        || DOCSTATUS_InProgress.equals(getDocStatus())
        || DOCSTATUS_Approved.equals(getDocStatus())
        || DOCSTATUS_NotApproved.equals(getDocStatus())) {
      voidIt0();
    } else {
      reverseCorrectIt0();
    }

    // metas: tsa: end: 2181

    // After Void
    m_processMsg =
        ModelValidationEngine.get().fireDocValidate(this, ModelValidator.TIMING_AFTER_VOID);
    if (m_processMsg != null) return false;

    setDocAction(DOCACTION_None);

    return true;
  } //	voidIt
 /**
  * Document Status is Complete or Closed
  *
  * @return true if CO, CL or RE
  */
 public boolean isComplete() {
   String ds = getDocStatus();
   return DOCSTATUS_Completed.equals(ds)
       || DOCSTATUS_Closed.equals(ds)
       || DOCSTATUS_Reversed.equals(ds);
 } //	isComplete