Kaynağa Gözat

ReportOutput mit Filter

gc-server3 11 ay önce
ebeveyn
işleme
0bf13eda43
2 değiştirilmiş dosya ile 18 ekleme ve 2 silme
  1. 3 2
      c11.py
  2. 15 0
      cognos11/c11_export.py

+ 3 - 2
c11.py

@@ -24,11 +24,12 @@ def export(folder="", overwrite="0"):
 
 
 @app.command()
-def reportoutput(folder=""):
+def reportoutput(folder="", mail_csv=""):
     exp = cognos11.c11_export(cfg)
     # folder2 = exp.get_folder(folder)
     req_plan = exp.get_folder_pdf_request_plan(folder)
-    exp.execute_request_plan(req_plan)
+    req_plan_filtered = exp.filter_request_plan(cfg.xml_dir + "/" + mail_csv)
+    exp.execute_request_plan(req_plan_filtered)
     pdf_test.missing_data(cfg.cognos11.reportoutput_dir + "/" + folder)
     merge_group = exp.get_merge_group(req_plan)
     pdf_merge.pdf_merge_files(merge_group)

+ 15 - 0
cognos11/c11_export.py

@@ -149,6 +149,21 @@ class c11_export:
         params.update(optional_params)
         return params
 
+    def filter_request_plan(req_plan: list[list[ReportRequest]], mail_csv: str):
+        if not Path(mail_csv).exists():
+            return req_plan
+        required_files = []
+        with open(Path(mail_csv), "r", encoding="latin-1") as rfh:
+            for row in rfh.readlines():
+                filename, mailto = row.removesuffix("\r\n").split(";")
+                if mailto == "":
+                    continue
+                required_files.append(filename)
+        res = []
+        for req_group in required_files:
+            res.append([req for req in req_group if req.filename in required_files])
+        return res
+
     def execute_request_plan(self, req_plan: list[list[ReportRequest]]):
         for req_group in req_plan:
             for report_req in req_group: