feat: 生物由来ロット分解処理の雛形を実装。クエリ実装はこれから

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-06-01 15:54:15 +09:00
parent 5a92b2c263
commit 65ccc61f13

View File

@ -1,4 +1,6 @@
from src.batch.common.batch_context import BatchContext
from src.db.database import Database
from src.error.exceptions import BatchOperationException
from src.logging.get_logger import get_logger
batch_context = BatchContext.get_instance()
@ -7,19 +9,56 @@ logger = get_logger('生物由来卸販売ロット分解')
def exec():
"""生物由来卸販売ロット分解"""
logger.debug('生物由来卸販売ロット分解:起動')
logger.debug('生物由来卸販売ロット分解処理開始')
# 営業日ではない場合、処理をスキップする
if batch_context.is_not_business_day:
logger.info('営業日ではないため、生物由来卸販売ロット分解処理をスキップします。')
return
db = Database.get_instance()
try:
db.connect()
db.begin()
# 生物由来ロット分解データの未確定データを削除する
_delete_not_confirm_data_in_bio_sales_lot(db)
# 生物由来ロット分解データを作成する
_insert_bio_sales_lot(db)
# 生物由来ロット分解データの不要レコードを削除する
_delete_empty_lot_record(db)
# 製造ロット管理番号マスタから有効期限を生物由来ロット分解データにセットする
_set_expr_dt_from_lot_num_mst(db)
# Veeva取引区分が返品(2)の場合、数量をマイナスに反転する
_reverse_qty_if_returns(db)
db.commit()
logger.debug('生物由来卸販売ロット分解処理終了')
return
except Exception as e:
db.rollback()
raise BatchOperationException(e)
finally:
db.disconnect()
# # 非同期処理のサンプル
# import time
# for _ in range(50):
# logger.info('処理中')
# time.sleep(0.5)
# TODO: ここに処理を追記していく
def _delete_not_confirm_data_in_bio_sales_lot(db: Database):
# 生物由来ロット分解データの未確定データ削除
pass
logger.debug('生物由来卸販売ロット分解:終了')
return
def _insert_bio_sales_lot(db: Database):
# 生物由来ロット分解データを作成
pass
def _delete_empty_lot_record(db: Database):
# 生物由来ロット分解データの製造番号が空のレコードを削除
pass
def _set_expr_dt_from_lot_num_mst(db: Database):
# 製造ロット管理番号マスタから有効期限をセット
pass
def _reverse_qty_if_returns(db: Database):
# Veeva取引区分が返品(2)の場合、数量をマイナスに反転する
pass