/*
 * MosP - Mind Open Source Project    http://www.mosp.jp/
 * Copyright (C) MIND Co., Ltd.       http://www.e-mind.co.jp/
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
package jp.mosp.common.part;

import jp.mosp.common.dao.MosPUserDao;
import jp.mosp.common.dto.CmUserDto;
import jp.mosp.common.utils.VariousUtil;

/**
 * MosP利用ユーザに関するPartクラス
 * @author yoshida
 * 	@version	0.0.1
 */
public class MosPUserPart extends BasePart {
	
	/**
	 * コンストラクタ
	 */
	public MosPUserPart() {
		super();
	}
	
	/**
	 * コンストラクタ
	 * @param partInfo Partを利用する際に必要な情報
	 */
	public MosPUserPart(PartInfo partInfo) {
		super(partInfo);
	}
	

	private MosPUserDao	userDao;
	

	/**
	 * CM_USERテーブル用のDAO取得
	 * @return	初期化済みMosPUserDaoインスタンス
	 * @throws Exception 例外処理が発生した場合
	 */
	public MosPUserDao getMosPUserDao() throws Exception {
		if (VariousUtil.isNull(userDao)) {
			userDao = (MosPUserDao)getPreparedDao(MosPUserDao.class.getCanonicalName());
		}
		return userDao;
	}
	
	/**
	 * ユーザー情報取得(CM_USER)
	 * @param userId 情報取得対象ユーザーID
	 * @return ユーザー情報(CmUserDto)
	 * @throws Exception  例外処理が発生した場合
	 */
	public CmUserDto getUserInfo(String userId) throws Exception {
		// 情報の取得
		return getMosPUserDao().findForKey(userId);
	}
	
	/**
	 * ユーザー情報取得(CM_USER)
	 * @param kcode		情報取得対象社員コード
	 * @return ユーザー情報(CmUserDto)
	 * @throws Exception  例外処理が発生した場合
	 */
	public CmUserDto getUserInfoForKCode(String kcode) throws Exception {
		// 情報の取得
		return getMosPUserDao().findForKCode(kcode);
	}
	
	/**
	 * ユーザー社員コード取得
	 * @param userId 対象ユーザーID
	 * @return 社員コード
	 * @throws Exception 例外処理が発生した場合
	 */
	public String getUserKCode(String userId) throws Exception {
		CmUserDto dto = getUserInfo(userId);
		if (VariousUtil.isNotNull(dto)) {
			return dto.getKCode();
		}
		return "";
	}
	
}
