예제 #1
0
  /**
   * 删除出库单或出库单详细 (non-Javadoc)
   *
   * @see
   *     com.wms3.bms.standard.business.outbound.IOutBoundBus#deleteOutBoundInvoice(java.lang.String,
   *     java.lang.String, java.lang.String)
   */
  public String deleteOutBoundInvoice(
      String strOutBoundId, String strOutBoundDetailId, String strFlag) throws Exception {

    String strMsg = "操作成功!";
    // 同步  单据号
    synchronized (strOutBoundId) {
      OutboundInvoiceHeader invoice = getOutBoundById(strOutBoundId);
      if (invoice != null) {
        if (strFlag != null && strFlag.trim().equals("1")) { // 1:删除单据
          if (invoice.getOutstatus().equals("0")
              && !isFinishJobByOutIdAndCId(strOutBoundId)) { // 单据状态为开单状态;是否存在已完成作业
            outBoundDAO.deleteOutBound(strOutBoundId);
          } else {
            strMsg =
                "单据["
                    + strOutBoundId
                    + "]状态("
                    + invoice.getOutstatus()
                    + ")不为开单状态0,或者 存在已经完成的作业,不能删除出库单!";
          }
        } else if (strFlag != null && strFlag.trim().equals("2")) { // 2:删除单据详细
          // 出库单详细的状态
          OutboundInvoiceDetail outBoundDetail = getOutBoundDetailById(strOutBoundDetailId);
          if (outBoundDetail != null) {
            if (outBoundDetail.getLinestatus().equals("0")) { // 为开单状态时才能删除
              outBoundDAO.deleteOutBoundDetail(strOutBoundDetailId);
            } else {
              strMsg =
                  "出库单["
                      + strOutBoundId
                      + "]的出库详细["
                      + strOutBoundDetailId
                      + "]状态("
                      + outBoundDetail.getLinestatus()
                      + ")不为开单状态0,不能删除出库单详细!";
            }
          } else {
            strMsg = "出库单[" + strOutBoundId + "]的出库单详细[" + strOutBoundDetailId + "]不存在,无法做删除操作!";
          }
        }
      } else {
        strMsg = "出库单[" + strOutBoundId + "]不存在,无法做删除操作!";
      }
    }
    return strMsg;
  }