feat:生物由来データ参照系の修正

This commit is contained in:
yono 2025-05-29 15:40:46 +09:00
parent 13ac61c682
commit dee3a3b1cb
9 changed files with 239 additions and 284 deletions

View File

@ -4,5 +4,5 @@ from src.model.db.base_db_model import BaseDBModel
class PharmacyProductMasterModel(BaseDBModel):
mkr_cd: Optional[str]
mkr_cd_name: Optional[str]
prod_pkg_cd: Optional[str]
prod_pkg_cd_name: Optional[str]

View File

@ -4,45 +4,37 @@ from typing import Optional
from src.model.db.base_db_model import BaseDBModel
class BioSalesLotDBModel(BaseDBModel):
slip_mgt_num: Optional[str]
rec_whs_cd: Optional[str]
rec_whs_sub_cd: Optional[str]
rec_whs_org_cd: Optional[str]
rec_comm_cd: Optional[str]
rec_tran_kbn: Optional[str]
rev_hsdnymd_srk: Optional[str]
rec_urag_num: Optional[str]
rec_nonyu_fcl_name: Optional[str]
rec_nonyu_fcl_addr: Optional[str]
rec_lot_num: Optional[str]
rec_ymd: Optional[str]
v_tran_cd: Optional[int]
tran_kbn_name: Optional[str]
v_whsorg_cd: Optional[int]
whs_org_name: Optional[str]
v_whs_cd: Optional[int]
whs_name: Optional[str]
nonyu_fcl_cd: Optional[str]
product_name: Optional[str]
whs_rep_comm_name: Optional[str]
whs_rep_nonyu_fcl_name: Optional[str]
whs_rep_nonyu_fcl_addr: Optional[str]
mkr_cd: Optional[str]
qty: Optional[int]
bef_slip_mgt_num: Optional[str]
iko_flg: Optional[str]
ins_dt: Optional[datetime]
ins_usr: Optional[str]
inst_cd: Optional[str]
inst_name_form: Optional[str]
class TrnResultDataBioLotDBModel(BaseDBModel):
if_kind: Optional[str]
account_ym: Optional[str]
seq_no: Optional[int]
load_dt: Optional[datetime]
orig_whlslr_cd: Optional[str]
orig_whlslr_sub_cd: Optional[str]
cls_whlslr_nm: Optional[str]
edit_whlslr_org_cd: Optional[str]
orig_slip_no: Optional[str]
cnvs_sales_dt: Optional[datetime]
edit_deal_div_cd: Optional[str]
cls_deal_div_nm: Optional[str]
cnvs_prod_cd: Optional[str]
orig_univ_product_cd: Optional[str]
cls_prod_nm: Optional[str]
edit_endusr_cd: Optional[str]
orig_endusr_nm: Optional[str]
orig_jd45_addr_txt: Optional[str]
cnvs_lot_no: Optional[str]
cnvs_lot_sales_qty: Optional[int]
expr_dt: Optional[date]
data_kbn: Optional[str]
cnvs_inst_cd: Optional[str]
cls_inst_nm: Optional[str]
address: Optional[str]
tel_num: Optional[str]
data_kbn: Optional[str]
data_kind: Optional[str]
err_dtl_kind: Optional[str]
expr_dt: Optional[date]
cnvs_whlslr_cd: Optional[str]
cnvs_depo_cd: Optional[str]
cls_depo_nm: Optional[str]
cnvs_deal_div_cd: Optional[str]
class BioSalesLotCountDBModel(BaseDBModel):
count: Optional[int]

View File

@ -9,18 +9,17 @@ from src.util.string_util import is_not_empty
@sanitize
class BioModel(BaseModel):
rec_whs_cd: Optional[str]
rec_whs_sub_cd: Optional[str]
whs_name: Optional[str]
slip_org_kbn: Optional[str]
rec_ymd_from: Optional[str]
rec_ymd_to: Optional[str]
rec_lot_num: Optional[str]
data_kbn: Optional[str]
mkr_cd: Optional[str]
rev_hsdnymd_srk_from: Optional[str]
rev_hsdnymd_srk_to: Optional[str]
iko_flg: Optional[str]
orig_whlslr_cd: Optional[str]
orig_whlslr_sub_cd: Optional[str]
cls_whlslr_nm: Optional[str]
if_kind: Optional[str]
load_dt_from: Optional[str]
load_dt_to: Optional[str]
cnvs_lot_no: Optional[str]
result_cd: Optional[str]
cnvs_prod_cd: Optional[str]
cnvs_sales_dt_from: Optional[str]
cnvs_sales_dt_to: Optional[str]
pageNumber: Optional[int]
pageSize: Optional[int]
@ -29,14 +28,13 @@ class BioModel(BaseModel):
cls,
ctrl_wholesaler: str = Form(None),
ctrl_org_kbn: str = Form(None),
ctrl_rec_ymd_from: str = Form(None),
ctrl_rec_ymd_to: str = Form(None),
ctrl_rec_lot_num: str = Form(None),
ctrl_data_kbn: str = Form(None),
ctrl_load_dt_from: str = Form(None),
ctrl_load_dt_to: str = Form(None),
ctrl_cnvs_lot_no: str = Form(None),
ctrl_result_cd: str = Form(None),
ctrl_maker_cd: str = Form(None),
ctrl_rev_hsdnymd_srk_from: str = Form(None),
ctrl_rev_hsdnymd_srk_to: str = Form(None),
ikoFlg: str = Form(None),
ctrl_cnvs_sales_dt_from: str = Form(None),
ctrl_cnvs_sales_dt_to: str = Form(None),
pageNumber: int = Form(None),
pageSize: int = Form(None)
):
@ -45,14 +43,13 @@ class BioModel(BaseModel):
cls,
ctrl_wholesaler,
ctrl_org_kbn,
ctrl_rec_ymd_from,
ctrl_rec_ymd_to,
ctrl_rec_lot_num,
ctrl_data_kbn,
ctrl_load_dt_from,
ctrl_load_dt_to,
ctrl_cnvs_lot_no,
ctrl_result_cd,
ctrl_maker_cd,
ctrl_rev_hsdnymd_srk_from,
ctrl_rev_hsdnymd_srk_to,
ikoFlg,
ctrl_cnvs_sales_dt_from,
ctrl_cnvs_sales_dt_to,
pageNumber,
pageSize
)
@ -62,42 +59,39 @@ class BioModel(BaseModel):
cls,
ctrl_wholesaler: str = Body(None),
ctrl_org_kbn: str = Body(None),
ctrl_rec_ymd_from: str = Body(None),
ctrl_rec_ymd_to: str = Body(None),
ctrl_rec_lot_num: str = Body(None),
ctrl_data_kbn: str = Body(None),
ctrl_load_dt_from: str = Body(None),
ctrl_load_dt_to: str = Body(None),
ctrl_cnvs_lot_no: str = Body(None),
ctrl_result_cd: str = Body(None),
ctrl_maker_cd: str = Body(None),
ctrl_rev_hsdnymd_srk_from: str = Body(None),
ctrl_rev_hsdnymd_srk_to: str = Body(None),
ikoFlg: str = Body(None)
ctrl_cnvs_sales_dt_from: str = Body(None),
ctrl_cnvs_sales_dt_to: str = Body(None)
):
return cls.__convert_request_param(
cls,
ctrl_wholesaler,
ctrl_org_kbn,
ctrl_rec_ymd_from,
ctrl_rec_ymd_to,
ctrl_rec_lot_num,
ctrl_data_kbn,
ctrl_load_dt_from,
ctrl_load_dt_to,
ctrl_cnvs_lot_no,
ctrl_result_cd,
ctrl_maker_cd,
ctrl_rev_hsdnymd_srk_from,
ctrl_rev_hsdnymd_srk_to,
ikoFlg
ctrl_cnvs_sales_dt_from,
ctrl_cnvs_sales_dt_to
)
def __convert_request_param(
cls,
ctrl_wholesaler: str,
ctrl_org_kbn: str,
ctrl_rec_ymd_from: str,
ctrl_rec_ymd_to: str,
ctrl_rec_lot_num: str,
ctrl_data_kbn: str,
ctrl_load_dt_from: str,
ctrl_load_dt_to: str,
ctrl_cnvs_lot_no: str,
ctrl_result_cd: str,
ctrl_maker_cd: str,
ctrl_rev_hsdnymd_srk_from: str,
ctrl_rev_hsdnymd_srk_to: str,
ikoFlg: str,
ctrl_cnvs_sales_dt_from: str,
ctrl_cnvs_sales_dt_to: str,
pageNumber: int = None,
pageSize: int = None
):
@ -113,34 +107,33 @@ class BioModel(BaseModel):
wholesaler_sub_code = wholesaler_without_name.split('-')[1]
# 処理日
rec_ymd_from = None
rec_ymd_to = None
if is_not_empty(ctrl_rec_ymd_from):
rec_ymd_from = ctrl_rec_ymd_from.replace('/', '')
if is_not_empty(ctrl_rec_ymd_to):
rec_ymd_to = ctrl_rec_ymd_to.replace('/', '')
load_dt_from = None
load_dt_to = None
if is_not_empty(ctrl_load_dt_from):
load_dt_from = ctrl_load_dt_from.replace('/', '')
if is_not_empty(ctrl_load_dt_to):
load_dt_to = ctrl_load_dt_to.replace('/', '')
# 発伝年月日
rev_hsdnymd_srk_from = None
rev_hsdnymd_srk_to = None
if is_not_empty(ctrl_rev_hsdnymd_srk_from):
rev_hsdnymd_srk_from = ctrl_rev_hsdnymd_srk_from.replace('/', '')
if is_not_empty(ctrl_rev_hsdnymd_srk_to):
rev_hsdnymd_srk_to = ctrl_rev_hsdnymd_srk_to.replace('/', '')
cnvs_sales_dt_from = None
cnvs_sales_dt_to = None
if is_not_empty(ctrl_cnvs_sales_dt_from):
cnvs_sales_dt_from = ctrl_cnvs_sales_dt_from.replace('/', '')
if is_not_empty(ctrl_cnvs_sales_dt_to):
cnvs_sales_dt_to = ctrl_cnvs_sales_dt_to.replace('/', '')
return cls(
rec_whs_cd=wholesaler_code,
rec_whs_sub_cd=wholesaler_sub_code,
whs_name=wholesaler_name,
slip_org_kbn=ctrl_org_kbn,
rec_ymd_from=rec_ymd_from,
rec_ymd_to=rec_ymd_to,
rec_lot_num=ctrl_rec_lot_num,
data_kbn=ctrl_data_kbn,
mkr_cd=ctrl_maker_cd,
rev_hsdnymd_srk_from=rev_hsdnymd_srk_from,
rev_hsdnymd_srk_to=rev_hsdnymd_srk_to,
iko_flg=ikoFlg,
orig_whlslr_cd=wholesaler_code,
orig_whlslr_sub_cd=wholesaler_sub_code,
cls_whlslr_nm=wholesaler_name,
if_kind=ctrl_org_kbn,
load_dt_from=load_dt_from,
load_dt_to=load_dt_to,
cnvs_lot_no=ctrl_cnvs_lot_no,
result_cd=ctrl_result_cd,
cnvs_prod_cd=ctrl_maker_cd,
cnvs_sales_dt_from=cnvs_sales_dt_from,
cnvs_sales_dt_to=cnvs_sales_dt_to,
pageNumber=pageNumber,
pageSize=pageSize
)

View File

@ -1,8 +1,8 @@
from src.model.db.trn_result_data_bio_lot import BioSalesLotDBModel
from src.model.db.trn_result_data_bio_lot import TrnResultDataBioLotDBModel
from src.util.sanitize import sanitize
@sanitize
class BioDisplayModel(BioSalesLotDBModel):
def __init__(self, param: BioSalesLotDBModel) -> None:
class BioDisplayModel(TrnResultDataBioLotDBModel):
def __init__(self, param: TrnResultDataBioLotDBModel) -> None:
super().__init__(**param.model_dump())

View File

@ -26,9 +26,10 @@ class BioViewModel(BaseModel):
return OrderedDict(
{
'': '',
'J': 'JD-NET',
'N': 'NHI',
'H': '手入力'
'1':'VAN',
'2':'手入力',
'3':'VAN-Web',
'S':'SCSK-VAN'
}
)
@ -36,10 +37,10 @@ class BioViewModel(BaseModel):
return OrderedDict(
{
'': '',
'0': '正常',
'1': 'ロットエラー',
'3': 'ロット不明',
'9': 'エラー(解消済み',
'2': '除外'
'1':'正常',
'2':'卸間転送除外対象データ',
'E':'エラー',
'D':'エラー(重複',
'Z':'エラー(想定外)'
}
)

View File

@ -8,24 +8,18 @@ logger = get_logger('製品取得')
class PharmacyProductMasterRepository(BaseRepository):
FETCH_SQL = """\
SELECT
t1.mkr_cd,
CONCAT(IFNULL(t1.mkr_cd, ''), ' ', IFNULL(t1.mkr_inf_1, '')) AS mkr_cd_name
FROM
src05.phm_prd_mst_v t1
INNER JOIN
(
SELECT
prd_cd, MAX(sub_num) AS sno
FROM
src05.phm_prd_mst_v
WHERE rec_sts_kbn <> '9'
GROUP BY prd_cd
) fmv2
ON t1.prd_cd = fmv2.prd_cd AND t1.sub_num = fmv2.sno
WHERE
t1.mkr_cd IS NOT NULL
ORDER BY mkr_cd
SELECT
prod_pkg_cd,
CONCAT(IFNULL(prod_pkg_cd, ''), ' ', IFNULL(prod_pkg_nm_kj, '')) AS prod_pkg_cd_name
FROM (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY prod_pkg_cd ORDER BY eff_start_ym DESC) AS rn
FROM
src07.mst_prod_pkg
) AS ranked
WHERE
rn = 1;
"""
def fetch_all(self) -> list[PharmacyProductMasterModel]:

View File

@ -2,7 +2,7 @@ from src.db import sql_condition as condition
from src.db.sql_condition import SQLCondition
from src.logging.get_logger import get_logger
from src.model.db.trn_result_data_bio_lot import (BioSalesLotCountDBModel,
BioSalesLotDBModel)
TrnResultDataBioLotDBModel)
from src.model.request.bio import BioModel
from src.repositories.base_repository import BaseRepository
from src.system_var import environment
@ -14,58 +14,50 @@ logger = get_logger('生物由来参照')
class BioSalesLotRepository(BaseRepository):
FETCH_SQL = """\
SELECT
data_kind,
slip_mgt_num,
rec_ymd,
rec_whs_cd,
rec_whs_sub_cd,
whs_name,
rec_whs_org_cd,
rec_urag_num,
rev_hsdnymd_srk,
rec_tran_kbn,
tran_kbn_name,
mkr_cd,
rec_comm_cd,
product_name,
whs_rep_comm_name,
nonyu_fcl_cd,
rec_nonyu_fcl_name,
whs_rep_nonyu_fcl_name,
rec_nonyu_fcl_addr,
whs_rep_nonyu_fcl_addr,
rec_lot_num,
qty,
if_kind,
account_ym,
seq_no,
load_dt,
orig_whlslr_cd,
orig_whlslr_sub_cd,
cls_whlslr_nm,
edit_whlslr_org_cd,
orig_slip_no,
cnvs_sales_dt,
edit_deal_div_cd,
cls_deal_div_nm,
cnvs_prod_cd,
orig_univ_product_cd,
cls_prod_nm,
edit_endusr_cd,
orig_endusr_nm,
orig_jd45_addr_txt,
cnvs_lot_no,
cnvs_lot_sales_qty,
expr_dt,
data_kbn,
err_dtl_kind,
bef_slip_mgt_num,
ins_usr,
ins_dt,
inst_cd,
inst_name_form,
cnvs_inst_cd,
cls_inst_nm,
address,
tel_num,
-- Excel出力のため数値型のコード値を文字列として取得(Veeva卸コードVeeva卸組織コードVeeva取引区分コード)
CAST(v_whs_cd AS CHAR) AS v_whs_cd,
CAST(v_whsorg_cd AS CHAR) AS v_whsorg_cd,
whs_org_name,
CAST(v_tran_cd AS CHAR) AS v_tran_cd,
iko_flg
cnvs_whlslr_cd,
cnvs_depo_cd,
cls_depo_nm,
cnvs_deal_div_cd
FROM
src07.trn_result_data_bio_lot
WHERE
{where_clause}
ORDER BY
rec_whs_cd,
rec_whs_sub_cd,
rev_hsdnymd_srk,
slip_mgt_num
orig_whlslr_cd,
orig_whlslr_sub_cd,
cnvs_sales_dt,
orig_slip_no
ASC
LIMIT {limit}\
"""
def fetch_many(self, parameter: BioModel) -> list[BioSalesLotDBModel]:
def fetch_many(self, parameter: BioModel) -> list[TrnResultDataBioLotDBModel]:
try:
logger.debug('DB参照実行')
where_clause = self.__build_condition(parameter)
@ -74,7 +66,7 @@ class BioSalesLotRepository(BaseRepository):
query = self.FETCH_SQL.format(where_clause=where_clause, limit=limit_clause)
logger.debug(f'SQL: {query}')
result = self._database.execute_select(query, parameter.model_dump())
models = [BioSalesLotDBModel(**r) for r in result]
models = [TrnResultDataBioLotDBModel(**r) for r in result]
return models
except Exception as e:
logger.exception(f"DB Error : Exception={e.args}")
@ -107,7 +99,7 @@ class BioSalesLotRepository(BaseRepository):
) AS t\
"""
def fetch_count(self, parameter: BioModel) -> list[BioSalesLotDBModel]:
def fetch_count(self, parameter: BioModel) -> list[TrnResultDataBioLotDBModel]:
try:
logger.debug('DB参照実行')
where_clause = self.__build_condition(parameter)
@ -130,43 +122,44 @@ class BioSalesLotRepository(BaseRepository):
where_clauses.append(SQLCondition('', '', '1 = 1', literal=True))
# 卸(コード/サブコード)
if is_not_empty(parameter.rec_whs_cd) and is_not_empty(parameter.rec_whs_sub_cd):
where_clauses.append(SQLCondition('rec_whs_cd', condition.EQ, 'rec_whs_cd'))
where_clauses.append(SQLCondition('rec_whs_sub_cd', condition.EQ, 'rec_whs_sub_cd'))
# データ種別
if is_not_empty(parameter.slip_org_kbn):
where_clauses.append(SQLCondition('slip_org_kbn', condition.EQ, 'slip_org_kbn'))
if is_not_empty(parameter.orig_whlslr_cd) and is_not_empty(parameter.orig_whlslr_sub_cd):
where_clauses.append(SQLCondition('orig_whlslr_cd', condition.EQ, 'orig_whlslr_cd'))
where_clauses.append(SQLCondition('orig_whlslr_sub_cd', condition.EQ, 'orig_whlslr_sub_cd'))
# 連携種別
if is_not_empty(parameter.if_kind):
where_clauses.append(SQLCondition('if_kind', condition.EQ, 'if_kind'))
# 処理日 開始日
if is_not_empty(parameter.rec_ymd_from):
where_clauses.append(SQLCondition('rec_ymd', condition.GE, 'rec_ymd_from'))
if is_not_empty(parameter.load_dt_from):
where_clauses.append(SQLCondition('load_dt', condition.GE, 'load_dt_from'))
# 処理日 終了日
if is_not_empty(parameter.rec_ymd_to):
where_clauses.append(SQLCondition('rec_ymd', condition.LE, 'rec_ymd_to'))
if is_not_empty(parameter.load_dt_to):
where_clauses.append(SQLCondition('load_dt', condition.LE, 'load_dt_to'))
# ロット番号
if is_not_empty(parameter.rec_lot_num):
rec_lot_num = parameter.rec_lot_num
if is_not_empty(parameter.cnvs_lot_no):
cnvs_lot_no = parameter.cnvs_lot_no
# あいまい検索文字列('%')が含まれる場合は'LIKE'、でなければ'='で検索
rec_lot_num_comparator = condition.LIKE if '%' in rec_lot_num else condition.EQ
where_clauses.append(SQLCondition('TRIM(rec_lot_num)', rec_lot_num_comparator, 'rec_lot_num'))
cnvs_lot_no_comparator = condition.LIKE if '%' in cnvs_lot_no else condition.EQ
where_clauses.append(SQLCondition('TRIM(cnvs_lot_no)', cnvs_lot_no_comparator, 'cnvs_lot_no'))
# データ区分
if is_not_empty(parameter.data_kbn):
where_clauses.append(SQLCondition('data_kbn', condition.EQ, 'data_kbn'))
if is_not_empty(parameter.result_cd):
where_clauses.append(SQLCondition('result_cd', condition.EQ, 'result_cd'))
# 製品
if is_not_empty(parameter.mkr_cd):
where_clauses.append(SQLCondition('mkr_cd', condition.EQ, 'mkr_cd'))
if is_not_empty(parameter.cnvs_prod_cd):
where_clauses.append(SQLCondition('cnvs_prod_cd', condition.EQ, 'cnvs_prod_cd'))
# 発伝年月日 開始日
if is_not_empty(parameter.rev_hsdnymd_srk_from):
where_clauses.append(SQLCondition('rev_hsdnymd_srk', condition.GE, 'rev_hsdnymd_srk_from'))
if is_not_empty(parameter.cnvs_sales_dt_from):
where_clauses.append(SQLCondition('cnvs_sales_dt', condition.GE, 'cnvs_sales_dt_from'))
# 発伝年月日 終了日
if is_not_empty(parameter.rev_hsdnymd_srk_to):
where_clauses.append(SQLCondition('rev_hsdnymd_srk', condition.LE, 'rev_hsdnymd_srk_to'))
# 移行フラグ
# チェックが入っていない場合、移行対象(IKO_FLG = '*')を省く
if parameter.iko_flg is None:
where_clauses.append(SQLCondition('iko_flg', condition.IS, 'NULL', literal=True))
if is_not_empty(parameter.cnvs_sales_dt_to):
where_clauses.append(SQLCondition('cnvs_sales_dt', condition.LE, 'cnvs_sales_dt_to'))
# TODO: 削除 # 移行フラグ
# # チェックが入っていない場合、移行対象(IKO_FLG = '*')を省く
# if parameter.iko_flg is None:
# where_clauses.append(SQLCondition('iko_flg', condition.IS, 'NULL', literal=True))
# 固定条件
# Viewで返されるロット番号9件をNull以外で抽出
where_clauses.append(SQLCondition('LENGTH(TRIM(rec_lot_num))', condition.GT, '0', literal=True))
# ロット番号9件をNull以外で抽出
# 現在の仕組みだと存在有り得ないので削除
# where_clauses.append(SQLCondition('LENGTH(TRIM(cnvs_lot_no))', condition.GT, '0', literal=True))
where_clauses_str = ' AND '.join([condition.apply() for condition in where_clauses])

View File

@ -20,10 +20,10 @@ class WholesalerMasterRepository(BaseRepository):
ws_cd,
ws_nm_kj
FROM src07.mst_whlslr
WHERE src07.get_syor_date() BETWEEN start_date AND end_date
WHERE src07.get_syor_date() BETWEEN str_to_date(concat(eff_start_ym, '01'), '%Y%m%d') AND str_to_date(concat(eff_end_ym, '01'), '%Y%m%d')
) v2
ON b.ws_cd = v2.ws_cd
ORDER BY b.rec_whs_cd, b.rec_whs_sub_cd , b.whs_name DESC
ON b.orig_whlslr_cd = v2.ws_cd
ORDER BY b.orig_whlslr_cd, b.orig_whlslr_sub_cd , b.cls_whlslr_nm DESC
"""
def fetch_all(self) -> list[WholesalerMasterModel]:

View File

@ -43,7 +43,7 @@
{% endfor %}
</select>
</td>
<td>データ種別:</td>
<td>連携種別:</td>
<td class="search_tb">
<select class="text search_dropdown" name="ctrl_org_kbn" onChange="formBtDisabled();applySearchParam(this)" value="">
{% for org_kbn_code, org_kbn_value in bio.display_org_kbn().items() %}
@ -55,12 +55,12 @@
</td>
<td>処理日:</td>
<td colspan="2">
<input type="text" id="shoribi_start" class="date_picker" name="ctrl_rec_ymd_from" maxlength="10"
<input type="text" id="shoribi_start" class="date_picker" name="ctrl_load_dt_from" maxlength="10"
value=""
onchange="formBtDisabled();applySearchParam(this)"
>
<input type="text" id="shoribi_end" class="date_picker" name="ctrl_rec_ymd_to" maxlength="10"
<input type="text" id="shoribi_end" class="date_picker" name="ctrl_load_dt_to" maxlength="10"
value=""
onchange="formBtDisabled();applySearchParam(this)"
>
@ -69,13 +69,13 @@
<tr>
<td>ロット番号:</td>
<td class="search_tb">
<input class="text" type="text" id="lot_tb" name="ctrl_rec_lot_num" style="ime-mode:disabled" maxlength="10"
<input class="text" type="text" id="lot_tb" name="ctrl_cnvs_lot_no" style="ime-mode:disabled" maxlength="10"
value=""
oninput="checkSpaceForm(this); checkAimaiSearhForm(this); formBtDisabled();applySearchParam(this)">
</td>
<td>データ区分:</td>
<td class="search_tb">
<select class="text search_dropdown" name="ctrl_data_kbn" onchange="formBtDisabled();applySearchParam(this)">
<select class="text search_dropdown" name="ctrl_result_cd" onchange="formBtDisabled();applySearchParam(this)">
{% for data_kbn_code, data_kbn_value in bio.display_data_kbn().items() %}
<option option value="{{data_kbn_value}}">
{{data_kbn_value}}
@ -88,8 +88,8 @@
<select class="text search_dropdown" name="ctrl_maker_cd" value="" onChange="formBtDisabled();applySearchParam(this);">
<option value=""></option>
{% for phm in bio.phm_models %}
<option value="{{phm['mkr_cd']}}">
{{phm['mkr_cd_name']}}
<option value="{{phm['prod_pkg_cd']}}">
{{phm['prod_pkg_cd_name']}}
</option>
{% endfor %}
</select>
@ -98,19 +98,17 @@
<tr>
<td>発伝年月日:</td>
<td colspan="3">
<input type="text" id="hsdnymd_start" class="date_picker" name="ctrl_rev_hsdnymd_srk_from" maxlength="10"
<input type="text" id="hsdnymd_start" class="date_picker" name="ctrl_cnvs_sales_dt_from" maxlength="10"
value=""
onchange="formBtDisabled();applySearchParam(this)"
>
<input type="text" id="hsdnymd_end" class="date_picker" name="ctrl_rev_hsdnymd_srk_to" maxlength="10"
<input type="text" id="hsdnymd_end" class="date_picker" name="ctrl_cnvs_sales_dt_to" maxlength="10"
value=""
onchange="formBtDisabled();applySearchParam(this)"
>
</td>
<td colspan="2">
<input type="checkbox" id="ikoFlg" name="ikoFlg" value="true" oninput="applySearchParam(this)">
<label for="ikoFlg">2017年11月以前のデータを含める</label>
</td>
<td>
<input class="buttonSize" id="clear" type="button" name="clear_bt" value="クリア" onclick="clr();clearHidden('bioSearchHidden')">
@ -133,8 +131,9 @@
<table class="tablesorter search_longtextbox" _fixedhead='rows:1; cols:0;'>
<thead>
<tr>
<th>データ種別</th>
<th>伝票管理NO</th>
<th>連携種別</th>
<th>計上年月</th>
<th>管理番号</th>
<th>処理日</th>
<th>卸コード</th>
<th>卸サブコード</th>
@ -147,29 +146,21 @@
<th>製品コード</th>
<th>統一商品コード</th>
<th>商品名</th>
<th>卸報告商品名</th>
<th>納入先コード</th>
<th>納入先名</th>
<th>卸報告納入先名</th>
<th>納入先住所</th>
<th>卸報告納入先住所</th>
<th>ロット番号</th>
<th>数量</th>
<th>有効期限</th>
<th>データ区分</th>
<th>エラー詳細種別</th>
<th>訂正前伝票管理NO</th>
<th>修正者</th>
<th>修正日時</th>
<th>施設コード</th>
<th>施設名</th>
<th>施設住所</th>
<th>施設電話番号</th>
<th>Veeva卸コード</th>
<th>Veeva卸組織コード</th>
<th>卸組織名</th>
<th>Veeva取引区分コード</th>
<th>2017年11月以前データ</th>
<th>tebra卸コード</th>
<th>tebraデポコード</th>
<th>デポ名</th>
<th>tebra取引区分コード</th>
</tr>
</thead>
<tbody id="result_data" class="result_data"></tbody>
@ -180,26 +171,24 @@
<form id="search_param_hidden" name="bioSearchHidden">
<input type="hidden" name="ctrl_wholesaler" value="">
<input type="hidden" name="ctrl_org_kbn" value="">
<input type="hidden" name="ctrl_rec_ymd_from" value="">
<input type="hidden" name="ctrl_rec_ymd_to" value="">
<input type="hidden" name="ctrl_rec_lot_num" value="">
<input type="hidden" name="ctrl_data_kbn" value="">
<input type="hidden" name="ctrl_load_dt_from" value="">
<input type="hidden" name="ctrl_load_dt_to" value="">
<input type="hidden" name="ctrl_cnvs_lot_no" value="">
<input type="hidden" name="ctrl_result_cd" value="">
<input type="hidden" name="ctrl_maker_cd" value="">
<input type="hidden" name="ctrl_rev_hsdnymd_srk_from" value="">
<input type="hidden" name="ctrl_rev_hsdnymd_srk_to" value="">
<input type="checkbox" name="ikoFlg" value="true" style="display: none;">
<input type="hidden" name="ctrl_cnvs_sales_dt_from" value="">
<input type="hidden" name="ctrl_cnvs_sales_dt_to" value="">
</form>
<form id="download_hidden" name="bioDownloadHidden">
<input type="hidden" name="ctrl_wholesaler" value="">
<input type="hidden" name="ctrl_org_kbn" value="">
<input type="hidden" name="ctrl_rec_ymd_from" value="">
<input type="hidden" name="ctrl_rec_ymd_to" value="">
<input type="hidden" name="ctrl_rec_lot_num" value="">
<input type="hidden" name="ctrl_data_kbn" value="">
<input type="hidden" name="ctrl_load_dt_from" value="">
<input type="hidden" name="ctrl_load_dt_to" value="">
<input type="hidden" name="ctrl_cnvs_lot_no" value="">
<input type="hidden" name="ctrl_result_cd" value="">
<input type="hidden" name="ctrl_maker_cd" value="">
<input type="hidden" name="ctrl_rev_hsdnymd_srk_from" value="">
<input type="hidden" name="ctrl_rev_hsdnymd_srk_to" value="">
<input type="checkbox" name="ikoFlg" value="true" style="display: none;">
<input type="hidden" name="ctrl_cnvs_sales_dt_from" value="">
<input type="hidden" name="ctrl_cnvs_sales_dt_to" value="">
</form>
<script type="text/javascript">
@ -422,43 +411,36 @@
function pagination_content(datas) {
const display_keys = [
'data_kind',
'slip_mgt_num',
'rec_ymd',
'rec_whs_cd',
'rec_whs_sub_cd',
'whs_name',
'rec_whs_org_cd',
'rec_urag_num',
'rev_hsdnymd_srk',
'rec_tran_kbn',
'tran_kbn_name',
'mkr_cd',
'rec_comm_cd',
'product_name',
'whs_rep_comm_name',
'nonyu_fcl_cd',
'rec_nonyu_fcl_name',
'whs_rep_nonyu_fcl_name',
'rec_nonyu_fcl_addr',
'whs_rep_nonyu_fcl_addr',
'rec_lot_num',
'qty',
'if_kind',
'account_ym',
'seq_no',
'load_dt',
'orig_whlslr_cd',
'orig_whlslr_sub_cd',
'cls_whlslr_nm',
'edit_whlslr_org_cd',
'orig_slip_no',
'cnvs_sales_dt',
'edit_deal_div_cd',
'cls_deal_div_nm',
'cnvs_prod_cd',
'orig_univ_product_cd',
'cls_prod_nm',
'edit_endusr_cd',
'orig_endusr_nm',
'orig_jd45_addr_txt',
'cnvs_lot_no',
'cnvs_lot_sales_qty',
'expr_dt',
'data_kbn',
'err_dtl_kind',
'bef_slip_mgt_num',
'ins_usr',
'ins_dt',
'inst_cd',
'inst_name_form',
'cnvs_inst_cd',
'cls_inst_nm',
'address',
'tel_num',
'v_whs_cd',
'v_whsorg_cd',
'whs_org_name',
'v_tran_cd',
'iko_flg',
'cnvs_whlslr_cd',
'cnvs_depo_cd',
'cls_depo_nm',
'cnvs_deal_div_cd',
];
return datas.map(function (data) {
const td = display_keys.map((key) =>{