import os.path as path

# 各画面の権限:有効時の値
PERMISSION_ENABLED = 1
# 各画面の権限:無効時の値
PERMISSION_DISABLED = 0

# 日付テーブル.バッチ処理ステータス：未処理
BATCH_STATUS_PROCESSING = '1'
# 日付テーブル.dump取得状態区分：未処理
DUMP_STATUS_UNPROCESSED = '0'

# 生物由来照会

BIO_TEMPORARY_FILE_DIR_PATH = path.join(path.curdir, 'src', 'data')
BIO_EXCEL_TEMPLATE_FILE_PATH = path.join(BIO_TEMPORARY_FILE_DIR_PATH, 'BioData_template.xlsx')

BIO_CSV_HEADER = [
    'データ種別',
    '伝票管理NO',
    '処理日',
    '卸コード',
    '卸サブコード',
    '卸名',
    '卸組織コード',
    '伝票番号',
    '発伝年月日',
    '卸取引区分',
    '取引区分名',
    '製品コード',
    '統一商品コード',
    '商品名',
    '卸報告商品名',
    '納入先コード',
    '納入先名',
    '卸報告納入先名',
    '納入先住所',
    '卸報告納入先住所',
    'ロット番号',
    '数量',
    '有効期限',
    'データ区分',
    'エラー詳細種別',
    '訂正前伝票管理NO',
    '修正者',
    '修正日時',
    '施設コード',
    '施設名',
    '施設住所',
    '施設電話番号',
    'Veeva卸コード',
    'Veeva卸組織コード',
    '卸組織名',
    'Veeva取引区分コード',
    '2017年11月以前データ'
]

LOGOUT_REASON_DO_LOGOUT = 'do_logout'
LOGOUT_REASON_LOGIN_ERROR = 'login_error'
LOGOUT_REASON_BATCH_PROCESSING = 'batch_processing'
LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE = 'batch_processing_ult'
LOGOUT_REASON_BACKUP_PROCESSING = 'dump_processing'
LOGOUT_REASON_NOT_LOGIN = 'not_login'
LOGOUT_REASON_DB_ERROR = 'db_error'
LOGOUT_REASON_UNEXPECTED = 'unexpected'

LOGOUT_REASON_MESSAGE_MAP = {
    LOGOUT_REASON_DO_LOGOUT: 'Logoutしました。',
    LOGOUT_REASON_LOGIN_ERROR: '存在しないユーザー、<br>またはパスワードが違います。',
    LOGOUT_REASON_BATCH_PROCESSING: '日次バッチ処理中なので、<br>生物由来データ参照は使用出来ません。',
    LOGOUT_REASON_BATCH_PROCESSING_FOR_MAINTE: '日次バッチ処理中のため、<br>マスタ－メンテは使用出来ません。',
    LOGOUT_REASON_BACKUP_PROCESSING: 'バックアップ取得を開始しました。<br>日次バッチ更新が終了するまでマスターメンテは使用できません',
    LOGOUT_REASON_NOT_LOGIN: 'Loginしてからページにアクセスしてください。',
    LOGOUT_REASON_DB_ERROR: 'DB接続に失敗しました。<br>再度Loginするか、<br>管理者にお問い合わせください。',
    LOGOUT_REASON_UNEXPECTED: '予期しないエラーが発生しました。<br>再度Loginするか、<br>管理者に問い合わせてください。'
}

# 新規施設担当者登録CSV(マスターメンテ)
NEW_INST_EMP_CSV_LOGICAL_NAMES = [
    '施設コード',
    '施設名',
    '領域コード',
    'MUID',
    '担当者名（姓）',
    '担当者名（名）',
    'ビジネスユニットコード',
    '適用開始日',
    '適用終了日'
]
# 施設コードの列No
CSV_NEW_INST_CD_COL_NO = 0
# 施設名の列No
CSV_NEW_INST_NAME_COL_NO = 1
# 領域コードの列No
CSV_NEW_TA_CD_COL_NO = 2
# MUIDの列No
CSV_NEW_EMP_CD_COL_NO = 3
# 担当者名（姓）の列No
CSV_NEW_EMP_NAME_FAMILY_COL_NO = 4
# 担当者名（名）の列No
CSV_NEW_EMP_NAME_FIRST_COL_NO = 5
# ビジネスユニットコードの列No
CSV_NEW_BU_CD_COL_NO = 6
# 適用開始日の列No
CSV_NEW_START_DATE = 7
# 適用終了日の列No
CSV_NEW_END_DATE = 8

# 施設担当者変更登録CSV(マスターメンテ)
CHANGE_INST_CSV_LOGICAL_NAMES = [
    'ビジネスユニットコード',
    'ビジネスユニット名',
    '組織コード',
    '組織名略称',
    '施設コード',
    '施設名',
    '領域コード',
    '説明',
    'MUID',
    '担当者名',
    '施設担当_開始日',
    '施設担当_終了日',
    '終了日の変更',
    'コメント'
]
# ビジネスユニットコードの列No
CSV_CHANGE_BU_CD_COL_NO = 0
# ビジネスユニット名の列No
CSV_CHANGE_BU_NAME_COL_NO = 1
# 組織コードの列No
CSV_CHANGE_ORG_CD_COL_NO = 2
# 組織名略称の列No
CSV_CHANGE_ORG_SHORT_NAME_COL_NO = 3
# 施設コードの列No
CSV_CHANGE_INST_CD_COL_NO = 4
# 施設名の列No
CSV_CHANGE_INST_NAME_COL_NO = 5
# 領域コードの列No
CSV_CHANGE_TA_CD_COL_NO = 6
# 説明の列No
CSV_CHANGE_EXPLAIN_COL_NO = 7
# MUIDの列No
CSV_CHANGE_EMP_CD_COL_NO = 8
# 担当者名の列No
CSV_CHANGE_EMP_FULL_NAME_COL_NO = 9
# 施設担当_開始日の列No
CSV_CHANGE_INST_EMP_START_DATE_COL_NO = 10
# 施設担当_終了日の列No
CSV_CHANGE_INST_EMP_END_DATE_COL_NO = 11
# 終了日の変更の列No
CSV_CHANGE_CHANGE_END_DATE_COL_NO = 12
# コメントの列No
CSV_CHANGE_COMMENT = 13

# CSVアップロードテーブル名(マスターメンテ)
CSV_REAL_TABLE_NAME = '本番テーブル'
CSV_CHANGE_TABLE_NAME = 'ダミーテーブル'

MENTE_CSV_TEMPORARY_FILE_DIR_PATH = path.join(path.curdir, 'src', 'data')

MENTE_CSV_DOWNLOAD_EXTRACT_COLUMNS = [
    'inst_cd',
    'inst_name',
    'ta_cd',
    'emp_cd',
    'emp_name_full',
    'bu_cd',
    'bu_name',
    'start_date',
    'end_date',
    'creater',
    'create_date',
    'updater',
    'update_date'
]

MENTE_CSV_DOWNLOAD_HEADER = [
    '施設コード',
    '施設名',
    '領域コード',
    'MUID',
    '担当者名',
    'ビジネスユニットコード',
    'ビジネスユニット名',
    '適用開始日',
    '適用終了日',
    '作成者',
    '作成日',
    '更新者',
    '更新日'
]

MENTE_CSV_DOWNLOAD_FILE_NAME = 'instEmpData.csv'

# CSVアップロードの制限サイズ＝20MB
MENTE_CSV_UPLOAD_MAX_FILE_SIZE_BYTE = 20971520

# 利用停止区分
DISPLAY_USER_STOP_DIV = {
    '01': '全面的に利用停止',
    '03': '特定の項目について利用停止',
    '04': '全てのＤＭ等利用停止'
}

DISPLAY_USER_STOP_DIV_SHORT = {
    '01': '全面停止',
    '03': '特定項目停止',
    '04': '全ＤＭ停止'
}
