86 lines
2.8 KiB
Python
86 lines
2.8 KiB
Python
import sys
|
|
import os
|
|
from playwright.sync_api import sync_playwright
|
|
|
|
import download_reports
|
|
import download_ip_destruction
|
|
import download_shipments_report
|
|
import download_shipment_details
|
|
import create_accountability_report
|
|
|
|
BASE_URL = "https://janssen.4gclinical.com"
|
|
EMAIL = "vbuzalka@its.jnj.com"
|
|
PASSWORD = "Vlado123++-+"
|
|
|
|
STUDIES = {
|
|
"1": "77242113UCO3001",
|
|
"2": "42847922MDD3003",
|
|
}
|
|
|
|
|
|
def pick_study():
|
|
print("Vyber studii:")
|
|
for k, v in STUDIES.items():
|
|
print(f" {k}) {v}")
|
|
while True:
|
|
choice = input("Volba (1/2): ").strip()
|
|
if choice in STUDIES:
|
|
return STUDIES[choice]
|
|
print(" Neplatna volba, zkus znovu.")
|
|
|
|
|
|
def login_and_select_study(page, study):
|
|
print(f"\n[1/5] Prihlaseni a vyber studie {study}...")
|
|
page.goto(BASE_URL)
|
|
page.wait_for_load_state("networkidle")
|
|
page.get_by_label("Email *").fill(EMAIL)
|
|
page.get_by_label("Password *").fill(PASSWORD)
|
|
page.locator('#login__submit').click()
|
|
page.wait_for_load_state("networkidle")
|
|
page.get_by_label("Study *").click()
|
|
page.get_by_role("option", name=study).click()
|
|
page.get_by_role("button", name="SELECT").click()
|
|
page.wait_for_load_state("networkidle")
|
|
print(" OK")
|
|
|
|
|
|
def main():
|
|
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
study = pick_study()
|
|
|
|
with sync_playwright() as p:
|
|
browser = p.chromium.launch(headless=False)
|
|
context = browser.new_context(accept_downloads=True)
|
|
page = context.new_page()
|
|
|
|
login_and_select_study(page, study)
|
|
|
|
print(f"\n[2/5] Stahuji inventory reporty...")
|
|
download_reports.run(page, study)
|
|
|
|
print(f"\n[3/5] Stahuji IP destruction reporty...")
|
|
download_ip_destruction.run(page, study)
|
|
|
|
print(f"\n[4/5] Stahuji shipments report...")
|
|
download_shipments_report.run(page, study)
|
|
|
|
print(f"\n[5/5] Stahuji shipment details...")
|
|
download_shipment_details.run(page, study)
|
|
|
|
browser.close()
|
|
|
|
print(f"\n[6/6] Generuji accountability report...")
|
|
create_accountability_report.STUDY = study
|
|
create_accountability_report.INVENTORY_DIR = __import__("pathlib").Path(f"xls_reports_{study}")
|
|
create_accountability_report.DESTRUCTION_DIR= __import__("pathlib").Path(f"xls_ip_destruction_{study}")
|
|
create_accountability_report.SHIPMENTS_FILE = __import__("pathlib").Path(f"xls_shipments_{study}/shipments_report_{study}.xlsx")
|
|
create_accountability_report.DETAILS_DIR = __import__("pathlib").Path(f"xls_shipment_details_{study}")
|
|
create_accountability_report.OUTPUT_FILE = create_accountability_report.OUTPUT_DIR / f"{__import__('datetime').date.today().strftime('%Y-%m-%d')} {study} CZ IWRS overview.xlsx"
|
|
create_accountability_report.main()
|
|
|
|
print("\nVse hotovo!")
|
|
|
|
|
|
main()
|