private void saveOrUpdateStockInOutLine(
      PalletModel palletModel, int stockInOutId, MSLocationModel toLocationId) {
    // jowjo
    StockInOutLineModel stockInOutLineModel = null;

    stockInOutLineModel =
        stockInOutLineDAO.findByPalletIdAndStockInOutId(palletModel.getId(), stockInOutId);
    int staffModel = (int) FacesUtil.getSession(false).getAttribute(AttributeName.STAFF.getName());

    try {
      if (!Utils.isNull(stockInOutLineModel) && !Utils.isZero(stockInOutLineModel.getId())) {
        log.debug("Update Stock In Out Line");
        stockInOutLineModel.setUpdateBy(staffModel);
        stockInOutLineModel.setUpdateDate(Utils.currentDate());
        stockInOutLineModel.setMsItemModel(palletModel.getMsItemModel());
        stockInOutLineModel.setPalletModel(palletModel);
        stockInOutLineModel.setMsLocationModel(toLocationId);
        stockInOutLineModel.setBarcode(palletModel.getPalletBarcode());
        stockInOutLineModel.setPreviousLocationId(palletModel.getMsLocationModel().getId());
        stockInOutLineDAO.update(stockInOutLineModel);
      } else {
        log.debug("Prsist Stock In Out Line");
        stockInOutLineModel = new StockInOutLineModel();

        stockInOutLineModel.setCreateBy(staffModel);
        stockInOutLineModel.setCreateDate(Utils.currentDate());
        stockInOutLineModel.setUpdateBy(staffModel);
        stockInOutLineModel.setUpdateDate(Utils.currentDate());
        stockInOutLineModel.setMsItemModel(palletModel.getMsItemModel());
        stockInOutLineModel.setPalletModel(palletModel);
        stockInOutLineModel.setMsLocationModel(toLocationId);
        stockInOutLineModel.setBarcode(palletModel.getPalletBarcode());
        stockInOutLineModel.setStockInOutModel(stockInOutDAO.findByID(stockInOutId));
        stockInOutLineModel.setPreviousLocationId(palletModel.getMsLocationModel().getId());
        stockInOutLineModel.setIsValid(1);
        stockInOutLineModel.setVersion(1);
        //               stockInOutLineModel.setQty(0);
        stockInOutLineDAO.persist(stockInOutLineModel);
      }
    } catch (Exception e) {
      log.debug("Exception error saveOrUpdateStockInOutLine : ", e);
    }
  }
  public void onUpdateByPrintTag(PalletTransferView palletManagementView, String redirect) {
    log.debug("onSaveByPrintTag().");
    PalletModel palletModel = null;
    int staffModel = (int) FacesUtil.getSession(false).getAttribute(AttributeName.STAFF.getName());
    try {
      if (!Utils.isNull(palletManagementView)) {
        palletModel = palletDAO.findByID(palletManagementView.getId());

        if (palletModel.getStatus() == 2) {
          palletModel.setStatus(palletModel.getStatus() + 1);
        } else {
          palletModel.setStatus(palletModel.getStatus());
        }
        palletModel.setUpdateBy(staffModel);
        palletModel.setUpdateDate(new Date());
      }

      palletDAO.update(palletModel);
    } catch (Exception e) {
      log.debug("Exception : {}", e);
    }
  }