From b2a5f52b6385488bf4a6eb0f7c4b7382314b34a7 Mon Sep 17 00:00:00 2001
From: Ute Becker <ute.becker@ptb.de>
Date: Tue, 9 Apr 2024 13:33:41 +0200
Subject: [PATCH] Kalibrierschein TL1 und das cer-dokument werden erstellt

---
 file-to-couchdb_tl1_cL.py |  72 +++----
 file-to-couchdb_tl2.py    |   2 +-
 tl1.ini                   |   8 +
 writeLaTex-ks-TL1.py      | 418 ++++++++++++++++++++------------------
 4 files changed, 266 insertions(+), 234 deletions(-)
 create mode 100644 tl1.ini

diff --git a/file-to-couchdb_tl1_cL.py b/file-to-couchdb_tl1_cL.py
index 7454705..55a6a24 100644
--- a/file-to-couchdb_tl1_cL.py
+++ b/file-to-couchdb_tl1_cL.py
@@ -25,9 +25,9 @@ db = couch['vl_db'] # existing
 
 
 
-cal_cert = "75573"
+cal_cert = "75561"
 year = "2024"
-no = "0001"
+no = "0002"
 QMS="ja"   ######### ja beim Scan
 kk_ik_pn= "kk" ######## kk,ik oder pn
 
@@ -37,9 +37,11 @@ json_file = "cal-" + year + "-fm1-kk-" + cal_cert + "_" + no
 doc = db.get(json_file) 
 print(json_file)
 
+path='C:\\Users\\becker07\\python\\TL1\\'
 
-dateiTab = cal_cert 
-#print(dateiTab)
+dateiTab =  path + cal_cert 
+#dateiTab='C:\\Users\\becker07\\python\\TL1\\75561'
+print(dateiTab)
 
 
 dateiTab=pd.read_csv(dateiTab,  sep="\t", decimal = ',' )
@@ -54,10 +56,10 @@ print('Leitwer : ',L)
 gauge = float(doc["Calibration"]["CustomerObject"]["Setup"]["CDG"])
 print(gauge)
 
-fileQMS = "QMS" +  cal_cert + ".txt" 
+fileQMS = path + "QMS" +  cal_cert + ".txt" 
 dateiQMS =fileQMS
-ScanQMS="Scan"+cal_cert + ".txt"
-ScanOffsQMS="Scan_Offs"+cal_cert + ".txt"
+ScanQMS= path + "Scan"+cal_cert + ".txt"
+ScanOffsQMS= path + "ScanOffs"+cal_cert + ".txt"
 print(ScanQMS)
 
 # Die Daten aus dem File mit der entsprechenden Kalibrierscheinnummer werden eingelesen:
@@ -517,17 +519,17 @@ if L == 1 :
     lis_h = h.tolist()
     
     
-    doc["Calibration"]["Measurement"]["Values"]={"Temperature": [{"Unit": "C","Type": "T-FM ","Comment":"Temperatur T ","Value": lis_T_fm},
+    doc["Calibration"]["Measurement"]["Values"]={"Temperature": [{"Unit": "C","Type": "T-FM","Comment":"Temperatur T ","Value": lis_T_fm},
                                                                 {"Unit": "C","Type": "T-Room","Comment":"Temperatur T","Value": lis_T_room},
-                                                                {"Unit": "C","Type": "T-TL1 ","Comment":"Temperatur T","Value": lis_T_tl1},
-                                                               {"Unit": "C","Type": "T-TL2 ","Comment":"Temperatur T","Value":lis_T_tl2},
-                                                               {"Unit": "C","Type": "T-TL2 ","Comment":"Temperatur T","Value":lis_T_tl3},
-                                                               {"Unit": "C","Type": "T-TL3 ","Comment":"Temperatur T","Value": lis_T_tl4}],
-                                                "Pressure": [{"Unit": "Pa","Type": "Offset pressure ","Value":lis_p_offs},
-                                                             {"Unit": "Pa","Type": " pressure mean","Value":lis_p_fill},
+                                                                {"Unit": "C","Type": "T-TL1","Comment":"Temperatur T","Value": lis_T_tl1},
+                                                               {"Unit": "C","Type": "T-TL2","Comment":"Temperatur T","Value":lis_T_tl2},
+                                                               {"Unit": "C","Type": "T-TL2","Comment":"Temperatur T","Value":lis_T_tl3},
+                                                               {"Unit": "C","Type": "T-TL3","Comment":"Temperatur T","Value": lis_T_tl4}],
+                                                "Pressure": [{"Unit": "Pa","Type": "Offset pressure","Value":lis_p_offs},
+                                                             {"Unit": "Pa","Type": "pressure mean","Value":lis_p_fill},
                                                              {"Unit": "bar","Type": "TL1 pressure ","Value":lis_p_ig}],
-                                                "Date": [{"Unit": "year-month-day","Type": "Datum ","Value":lis_datum},
-                                                             {"Unit": "hh:mm:ss","Type": "Messzeit ","Value":lis_time}],
+                                                "Date": [{"Unit": "year-month-day","Type": "Datum","Value":lis_datum},
+                                                             {"Unit": "hh:mm:ss","Type": "Messzeit","Value":lis_time}],
                                                 "Valve": [{"Unit": "1","Type": "Connection", "Comment":"Connection of the leak" ,"Value":lis_valve}],
                                                 "Current": [{"Unit": "mbar","Type": "I-TL","Value": lis_I_TL},
                                                           {"Unit": "mbar","Type": "I-FM","Value": lis_I_FM}, 
@@ -573,17 +575,17 @@ else:
     if gauge == 0.01 :
         doc["Calibration"]["Measurement"]["Values"]={"Temperature": [{"Unit": "C","Type": "T-FM ","Comment":"Temperatur T ","Value": lis_T_fm},
                                                                     {"Unit": "C","Type": "T-Room","Comment":"Temperatur T","Value": lis_T_room},
-                                                                    {"Unit": "C","Type": "T-TL1 ","Comment":"Temperatur T","Value": lis_T_tl1},
-                                                                   {"Unit": "C","Type": "T-TL2 ","Comment":"Temperatur T","Value":lis_T_tl2},
-                                                                   {"Unit": "C","Type": "T-TL2 ","Comment":"Temperatur T","Value":lis_T_tl3},
-                                                                   {"Unit": "C","Type": "T-TL3 ","Comment":"Temperatur T","Value": lis_T_tl4}],
+                                                                    {"Unit": "C","Type": "T-TL1","Comment":"Temperatur T","Value": lis_T_tl1},
+                                                                   {"Unit": "C","Type": "T-TL2","Comment":"Temperatur T","Value":lis_T_tl2},
+                                                                   {"Unit": "C","Type": "T-TL2","Comment":"Temperatur T","Value":lis_T_tl3},
+                                                                   {"Unit": "C","Type": "T-TL3","Comment":"Temperatur T","Value": lis_T_tl4}],
                                                     "Pressure": [{"Unit": "DCR","Type": "Offset pressure SRG","Value":lis_p_offs_srg},
                                                                  {"Unit": "DCR","Type": "Fill pressure SRG ","Value":lis_p_fill_srg},
                                                                  {"Unit": "Pa","Type": "Offset pressure 01Torr","Value":lis_p_offs_01},
                                                                  {"Unit": "Pa","Type": "Fill pressure 01Torr","Value":lis_p_fill_01},
-                                                                 {"Unit": "bar","Type": "TL1 pressure ","Value":lis_p_ig}],
-                                                    "Date": [{"Unit": "year-month-day","Type": "Datum ","Value":lis_datum},
-                                                                 {"Unit": "hh:mm:ss","Type": "Messzeit ","Value":lis_time}],
+                                                                 {"Unit": "mbar","Type": "TL1 pressure ","Value":lis_p_ig}],
+                                                    "Date": [{"Unit": "year-month-day","Type": "Datum","Value":lis_datum},
+                                                                 {"Unit": "hh:mm:ss","Type": "Messzeit","Value":lis_time}],
                                                     "Valve": [{"Unit": "1","Type": "Connection", "Comment":"Connection of the leak" ,"Value":lis_valve}],
                                                     "Current": [{"Unit": "mbar","Type": "I-TL","Value": lis_I_TL},
                                                               {"Unit": "mbar","Type": "I-FM","Value": lis_I_FM}, 
@@ -596,18 +598,18 @@ else:
         print("SRG")
         
     else:
-        doc["Calibration"]["Measurement"]["Values"]={"Temperature": [{"Unit": "C","Type": "T-FM ","Comment":"Temperatur T ","Value": lis_T_fm},
+        doc["Calibration"]["Measurement"]["Values"]={"Temperature": [{"Unit": "C","Type": "T-FM","Comment":"Temperatur T ","Value": lis_T_fm},
                                                                     {"Unit": "C","Type": "T-Room","Comment":"Temperatur T","Value": lis_T_room},
-                                                                    {"Unit": "C","Type": "T-TL1 ","Comment":"Temperatur T","Value": lis_T_tl1},
-                                                                   {"Unit": "C","Type": "T-TL2 ","Comment":"Temperatur T","Value":lis_T_tl2},
-                                                                   {"Unit": "C","Type": "T-TL2 ","Comment":"Temperatur T","Value":lis_T_tl3},
-                                                                   {"Unit": "C","Type": "T-TL3 ","Comment":"Temperatur T","Value": lis_T_tl4}],
-                                                    "Pressure": [{"Unit": "Pa","Type": "Offset pressure ","Value":lis_p_offs},
+                                                                    {"Unit": "C","Type": "T-TL1","Comment":"Temperatur T","Value": lis_T_tl1},
+                                                                   {"Unit": "C","Type": "T-TL2","Comment":"Temperatur T","Value":lis_T_tl2},
+                                                                   {"Unit": "C","Type": "T-TL2","Comment":"Temperatur T","Value":lis_T_tl3},
+                                                                   {"Unit": "C","Type": "T-TL3","Comment":"Temperatur T","Value": lis_T_tl4}],
+                                                    "Pressure": [{"Unit": "Pa","Type": "Offset pressure","Value":lis_p_offs},
                                                                  {"Unit": "Pa","Type": " pressure fill","Value":lis_p_fill},
                                                                 
-                                                                 {"Unit": "bar","Type": "TL1 pressure ","Value":lis_p_ig}],
-                                                    "Date": [{"Unit": "year-month-day","Type": "Datum ","Value":lis_datum},
-                                                                 {"Unit": "hh:mm:ss","Type": "Messzeit ","Value":lis_time}],
+                                                                 {"Unit": "mbar","Type": "TL1 pressure","Value":lis_p_ig}],
+                                                    "Date": [{"Unit": "year-month-day","Type": "Datum","Value":lis_datum},
+                                                                 {"Unit": "hh:mm:ss","Type": "Messzeit","Value":lis_time}],
                                                     "Valve": [{"Unit": "1","Type": "Connection", "Comment":"Connection of the leak" ,"Value":lis_valve}],
                                                     "Current": [{"Unit": "mbar","Type": "I-TL","Value": lis_I_TL},
                                                               {"Unit": "mbar","Type": "I-FM","Value": lis_I_FM}, 
@@ -617,7 +619,7 @@ else:
                                                               {"Unit": "dd.mm.yy hh:mm:ss -dd.mm.yy hh:mm:ss","Type": "I-FM","Value": lis_I_FM_time}, 
                                                              {"Unit": "dd.mm.yy hh:mm:ss -dd.mm.yy hh:mm:ss","Type": "I-Offs","Value": lis_I_Offs_time}]
                                                    }
-        doc["Calibration"]["Measurement"]["Values"]["Conductance"]={  "C": [{"Unit": "m^3/s","Type": "Constanter Leitwert ","Value": lis_c}]}
+        doc["Calibration"]["Measurement"]["Values"]["Conductance"]={  "C": [{"Unit": "m^3/s","Type": "Constanter Leitwert","Value": lis_c}]}
     print("Constanter Leitwert")
     
                                                             
@@ -645,10 +647,10 @@ key_value_offs=dict(zip(def_key_offs, def_value_offs))
 
 
 
-doc["Calibration"]["Measurement"]["AuxValues"]={"ScanQMS": [{"Unit": "Mass","Type": "QMS ","Comment":"Masse ","Value":lis_mass_no},
+doc["Calibration"]["Measurement"]["AuxValues"]={"ScanQMS": [{"Unit": "Mass","Type": "QMS","Comment":"Masse ","Value":lis_mass_no},
                                                             {"Unit": "mbar","Type": "Current","Comment":"Wert / Masse","Value": lis_mass_value},
                                                             {"Unit": "mbar","Type": "Current Offset","Comment":"Wert / Masse","Value": lis_mass_value_offs}],
-                                                "DefQMS": [{"Type": "Scan QMS ","Value":key_value},
+                                                "DefQMS": [{"Type": "Scan QMS","Value":key_value},
                                                            {"Type": "Scan Offset QMS","Value": key_value_offs}]}
 
 
diff --git a/file-to-couchdb_tl2.py b/file-to-couchdb_tl2.py
index fa4f7ee..992ce17 100644
--- a/file-to-couchdb_tl2.py
+++ b/file-to-couchdb_tl2.py
@@ -26,7 +26,7 @@ db = couch['vl_db'] # existing
 
 
 
-cal_cert = "75556"
+cal_cert = "75586"
 year = "2024"
 no = "0001"
 
diff --git a/tl1.ini b/tl1.ini
new file mode 100644
index 0000000..16023f1
--- /dev/null
+++ b/tl1.ini
@@ -0,0 +1,8 @@
+[cert]
+cal_cert = 75560
+year = 2024
+no = 0001
+
+[path]
+path=C:\\Users\\becker07\\kalibrierschein\\ks-
+
diff --git a/writeLaTex-ks-TL1.py b/writeLaTex-ks-TL1.py
index 4f31d8e..f7ddd03 100644
--- a/writeLaTex-ks-TL1.py
+++ b/writeLaTex-ks-TL1.py
@@ -1,35 +1,35 @@
-# -*- coding: utf-8 -*-
-"""
-Created on Tue Aug 23 09:45:09 2022
-
-@author: becker07
-"""
-
 import time
 import couchdb 
 from datetime import date
+try:
+    from configparser import ConfigParser
+except ImportError:
+    from ConfigParser import ConfigParser  # ver. < 3.0
+    
+    
 couch = couchdb.Server('http://a73434.berlin.ptb.de:5984')
 db = couch['vl_db'] # existing
 
+config = ConfigParser()
+# parse existing file
+config.read('tl1.ini')
+# read values from a section
 
-## Eingabe von:
-#    - Kalibrierscheinnummer
-#    - Jahr der Kalibrierung 
-#    - laufende Nummer der Kalibrierung
+cal_cert = config.get('cert', 'cal_cert')
+year = config.get('cert',  'year')
+no = config.get('cert', 'no')
+path=config.get('path', 'path')
 
-cal_cert = "75552"
-year = "2024"
-year_Mark=year[2:]
-print(year_Mark)
-no = "0001"
-CertificateDate = str(date.today())
 
+CertificateDate = str(date.today())
 
 json_file_cer = "cer-" + year + "-" + cal_cert 
 
 print(json_file_cer)
 
 
+### Kontrolle ob schon ein cer existiert #########
+
 id_cer = 0   
     
 mango = {'selector': {'_id':json_file_cer}}
@@ -41,10 +41,11 @@ print(id_cer)
 
 doc = {'_id': json_file_cer}
 
+
 if id_cer == 0:
     db.save(doc)
-    print ( "Warten! 30 Sekunden" )
-    time.sleep ( 30 )
+    print ( "Warten! 5 Sekunden" )
+    time.sleep ( 5 )
     print ( json_file_cer," ist in der Couch angelegt" )
     
 else:
@@ -52,8 +53,7 @@ else:
 
 
 id_ = "cal-" + year + "-fm1-kk-" + cal_cert + "_" + no
-ks = "C:\\Users\\becker07\\kalibrierschein\\ks-" + cal_cert + "-" + year + ".tex"
-
+ks = path + cal_cert + "-" + year + ".tex"
 cer = "cer-" + year + "-" + cal_cert
 
 json_file_cal = id_
@@ -62,19 +62,24 @@ doc_cal = db.get(json_file_cal)
 doc_cer = db.get(json_file_cer) 
 
 
-print(json_file_cal)
-
-
 
-##### Meta #######
+ ##### Daten aus dem cal Dokument werden eingelesen#######
 
+std = doc_cal["Calibration"]["ToDo"]["Standard"]
 kind = doc_cal["Calibration"]["ToDo"]["Type"]
 gas = doc_cal["Calibration"]["ToDo"]["Gas"]
 lang = doc_cal["Calibration"]["Customer"]["Lang"]
+todo = doc_cal["Calibration"]["ToDo"]["Type"]
+
+
+
+
+ 
+
+print(lang)
 calibration_type = "KK"
 last_cert_no = doc_cal["Calibration"]["Presettings"]
 
-
 ###### überprüfen ob eine letztes Cal-Zeichen gibt  #########################
 
 if "LastCalibrationYear" in last_cert_no:
@@ -92,21 +97,6 @@ else:
 
 
 
-
-
-
-##### Titlepage #######
-
-
-MeasurementDateBegin = doc_cal["Calibration"]["Measurement"]["Date"][0]["Value"]
-MeasurementDateBegin = MeasurementDateBegin[0]
-MeasurementDateEnd = doc_cal["Calibration"]["Measurement"]["Date"][0]["Value"]
-MeasurementDateEnd = MeasurementDateEnd[0]
-
-
-CountryCode= lang
-DeviceClass= "TLV"
-
 Standard = doc_cal["Calibration"]["ToDo"]["Standard"]
 Land= doc_cal["Calibration"]["Customer"]["Address"]["Land"]
 
@@ -121,156 +111,194 @@ Zipcode= doc_cal["Calibration"]["Customer"]["Address"]["Zipcode"]
 ObjectOfCalibration= doc_cal["Calibration"]["CustomerObject"]["Type"]
 Producer= doc_cal["Calibration"]["CustomerObject"]["Device"]["Producer"]
 Type= doc_cal["Calibration"]["CustomerObject"]["Device"]["Type"]                ##########   Type
-Object= doc_cal["Calibration"]["CustomerObject"]["NameCer"]                        ##########   Gegenstand/Object
+Object= doc_cal["Calibration"]["CustomerObject"]["Type"]                        ##########   Gegenstand/Object
 Serial= doc_cal["Calibration"]["CustomerObject"]["Name"]                        ##########   Kennummer   
 Examiner= doc_cal["Calibration"]["Measurement"]["Maintainer"]
 ByOrder= "Dr. Matthias Bernien"
 MeasurementDate= doc_cal["Calibration"]["Result"]["Formula"]["MeasurementDate"]
 QMS= doc_cal["Calibration"]["Result"]["Formula"]["QMS"]
 
-print(MeasurementDate)
+
 
 obj ='\\object{'+ Object + '}\n'
 manufacturer = '\\manufacturer{' + Producer +' }\n'
 typ = '\\type{' +  Type + '}\n'
 serialNo = '\\serialNo{' + Serial + '}\n'
-applicant = '\\applicant{{' + Name + '}\n {' + Street + '} \n {' + Zipcode +' ' + Town +'}\n {' + Land+'}}\n'
+applicant = '\\applicant{{' + Name + '}\n {' + Street + '} \n {' + Zipcode + Town +'}\n {' + Land+'}}\n'
 refNo = '\\refNo{ ' + ReferenceNo + '}\n'
-calibMark = '\\calibMark{ ' + Certificate + ' PTB '  + year_Mark + '}\n'
-print(calibMark)
+calibMark = '\\calibMark{ ' +' ' + Certificate + ' PTB 23}\n'
 calibDate = '\\calibDate{' + MeasurementDate + '}\n'
 examiner = '\\examiner{' + Examiner + '}\n'
 certificateDate = '\\certificateDate{' + CertificateDate + '}\n'
 
-##################section Beschreibung zum Kalibriergerät
-
 
-if (sectionDiscription_noyes!= 'yes'):
-    
-    sectionDiscription_2= " Dies ist die erste von der PTB durchgeführte Kalibrierung."
-    sectionDiscription_2_en= "This is the first calibration at PTB."
-    print(" 1. durchgeführte Kalibrierung")
 
-else:
-   
-    sectionDiscription_2= " Die von der PTB zuletzt durchgeführten Kalibrierung ist im Kalibrierschein " +  last_cert + " beschrieben."
-    sectionDiscription_2_en= " The previous calibration at PTB had been carried out " +  last_cert_year + ' with the calibration mark ' + last_cert + " ."
 
+##################  Ergebnisse ###################################################
+NoOfMeasurements= doc_cal["Calibration"]["Result"]["Formula"]["NoOfMeasurements"]
+FlowMol= doc_cal["Calibration"]["Result"]["Formula"]["FlowMol"]
+FlowpV23= doc_cal["Calibration"]["Result"]["Formula"]["FlowpV23"]
+FlowpV2X= doc_cal["Calibration"]["Result"]["Formula"]["FlowpV2X"]
+TemperatureTL= doc_cal["Calibration"]["Result"]["Formula"]["TemperatureTL"]
+TemperatureTLx= doc_cal["Calibration"]["Result"]["Formula"]["TemperatureTLx"]
 
+Gauge= doc_cal["Calibration"]["Result"]["Formula"]["Gauge"]
+LeakUncertainty= doc_cal["Calibration"]["Result"]["Formula"]["LeakUncertainty"]
+print("TLX= ",TemperatureTLx)
 TextDE= doc_cal["Calibration"]["CustomerObject"]["Text"]["description"]["de"]
 TextEN= doc_cal["Calibration"]["CustomerObject"]["Text"]["description"]["en"]
 
-sectionText_title_de = 'Beschreibung zum Kalibriergerät '
-sectionText_title_en = 'Description relating to calibration device'
-sectionTitleText_de = '\\section{' + sectionText_title_de  + '\\linebreak {\\small \\emph{' + sectionText_title_en + 'Description relating to calibration device}}}\n' + TextDE + sectionDiscription_2+'\n' + '\\begin{english}' + TextEN + sectionDiscription_2_en +'\\end{english} \n'
-sectionTitleText_en = '\\section{' + sectionText_title_en  + ' }\n' + TextEN +sectionDiscription_2_en +'\n' 
 
+###############################################################################################################################################################
 
 
 
 
 
+#######  Überschriften ######################
 
-#########################  Messverfahren #########################################################################
+########   Deutsch ##########################
 
+sectionDescriptionTitle = 'Beschreibung zum Kalibriergerät'
 sectionTitelProcedure = 'Kalibrierverfahren '
-sectionTitelProcedure_en = 'Calibration procedure'
-sectionTitelProcedure_text_en = '\\section{' + sectionTitelProcedure_en + '}\n '
-sectionTitelProcedure_text = '\\section{' + sectionTitelProcedure + '\\linebreak {\\small \\emph{' + sectionTitelProcedure_en + '}}}\n '
+sectionTitelResult = 'Messergebnis '
+sectionTitelUncertainty = 'Unsicherheit '
 
-sectionProcedure1='Der aus dem thermostatisierten Testleck TL austretende Gasfluss wird mit Hilfe  eines Massenspektrometers mit einem annähernd gleich groß eingestellten  Gasfluss \\(q_{\\text{mol, FM}}\\) verglichen, dessen Größe mit einem  Durchflussmesser (Flowmeter FM) bestimmt wird. Die Durchflussmessung erfolgt  bei konstantem Druck \\(p_\\text{FM}\\) und konstanter Temperatur  \\(T_{\\text{FM}}\\).\n '
-sectionProcedure1_en ='The gas flow from the leak TL is compared with a gas flow \\(q_{\\text{mol, FM}}\\) of about the same flow rate from a flow meter FM by a mass spectrometer. The flow measurement is operated at constant pressure  \\(p_{\\text{FM}}\\) and constant (absolute) temperature \\(T_{\\text{FM}}\\). \n'
-sectionProcedureE1 = ' \\[ q_{\\text{mol, FM}}  = p_{\\text{FM}} \\cdot C \\cdot \\frac{1}{R \\cdot  T_{\\text{FM}}} \\]  '
-sectionProcedure2=' Der Druck \\(p_{\\text{FM}}\\) wurde mit einem kapazitiven  Membranvakuummeter gemessen. Dieses Gerät ist durch Vergleich mit einem  Primärnormal der PTB kalibriert worden. Der Leitwert \\(C\\) wird aus der  zeitlichen Volumenänderung (\\(\\Delta V/\\Delta t\\)) eines zusammendrückbaren,  kalibrierten Federbalgs (\\(\\Delta V\\)) und einer elektronischen Uhr (\\(\\Delta  t\\)) ermittelt. Die molare Gaskonstante \\(R\\) hat den Wert  83,145~\\(\\text{mbar}\\)~\\(\\text{l}\\)~\\(\\text{mol}^{-1}\\)~\\(\\text{K}^{-1}\\). \n '
-sectionProcedure2_en='  The pressure \\(p_{\\text{FM}}\\) is measured with a capacitance diaphragm gauge. This gauge is calibrated by comparison with a primary standard of PTB. The conductance \\(C\\) of the capillary integrated in the flow meter is obtained from the temporal volume change (\\(\\Delta V/\\Delta t\\)) that is needed to keep \\(p_\\text{FM}\\) constant. It is measured by means of a calibrated bellow and an electronic clock. The molar gas constant \\(R\\) has the value 83.145~\\(\\text{mbar}\\)~\\(\\text{l}\\)~\\(\\text{mol}^{-1}\\)~\\(\\text{K}^{-1}\\). '
-sectionProcedureE3 = ' \\[ q_{\\text{mol, TL}} = q_{\\text{mol, FM}} \\cdot \\frac{S_{\\text{TL}}}{S_{\\text{FM}}} \\]  '
-sectionProcedure3=' Die Leckrate \\(q_{\\text{mol, TL}}\\)  des Testlecks wird nach folgender Beziehung berechnet:'
-sectionProcedure3_en=' The molar leak rate \\(q_{\\text{mol, TL}}\\) of the test leak can be calculated by the following equation:'
-sectionProcedure4=' mit \\(S_\\text{TL}\\) dem Signal am Massenspektrometer für den Gasfluss des  Testlecks und \\(S_\\text{FM}\\) dem Signal am Massenspektrometer für den  eingestellten Vergleichsgasfluss.'
-sectionProcedure4_en=' whereby \\(S_{\\text{TL}}\\) is the signal at the mass spectrometer for the gas flow from the test leak and \\(S_{\\text{FM}}\\) the signal at the mass spectrometer for the gas flow from the flow meter.'
 
 
 
-sectionProcedure_text= sectionProcedure1 + sectionProcedure2 +'\\begin{english}' + sectionProcedure1_en + sectionProcedure2_en + '\\end{english}' + sectionProcedureE1   + sectionProcedure3  + '\\begin{english}' + sectionProcedure3_en + '\\end{english} '+ sectionProcedureE3 + sectionProcedure4 + '\\begin{english}' +  sectionProcedure4_en + '\\end{english} '
-sectionProcedure_text_en= sectionProcedure1_en  + sectionProcedure2_en + sectionProcedureE1  + sectionProcedure3_en  + sectionProcedureE3  + sectionProcedure4_en + '\n'
+########   Englisch ##########################
 
+sectionDescriptionTitle_en = 'Description relating to calibration device'
+sectionTitelProcedure_en = 'Calibration procedure '
+sectionTitelResult_en = 'Measurement results'
+sectionTitelUncertainty_en = 'Uncertainty of Calibration'
 
 
 
-##################  Ergebnisse ###################################################
+#######  Überschriften         Ende   ######################
 
-NoOfMeasurements= doc_cal["Calibration"]["Result"]["Formula"]["NoOfMeasurements"]
-FlowMol= doc_cal["Calibration"]["Result"]["Formula"]["FlowMol"]
-FlowpV23= doc_cal["Calibration"]["Result"]["Formula"]["FlowpV23"]
-FlowpV2X= doc_cal["Calibration"]["Result"]["Formula"]["FlowpV2X"]
-TemperatureTL= doc_cal["Calibration"]["Result"]["Formula"]["TemperatureTL"]
-TemperatureTLx= doc_cal["Calibration"]["Result"]["Formula"]["TemperatureTLx"]
 
+#######                 Formeln                     ####################
+q_mol_FM_allg = ' \\[ q_\\text{mol, FM} = p_{\\text{FM}} ~ C ~  \\frac{1}{RT_{\\text{FM}}}\\]  '
+q_mol_TL_allg = ' \\[ q_\\text{mol, TL} = q_\\text{mol, FM} ~ \\frac{S_\\text{TL}}{S_\\text{FM}}\\] \n '
+q_mol_Val= 'q_\\text{mol}(\\vartheta_\\text{TL}) =\\SI{   ' + FlowMol + ' }{\\mol\\per\\second}'
+q_pV_allg = ' \\[ q_{pV}(\\vartheta_\\text{Ch}) = q_{\\text{mol}} ~ R ~ (\\vartheta_\\text{Ch} + T_0) \\]  '    
+q_pV_23C = 'q_{pV}(\\SI{23}{\\degreeCelsius})= \\num{' + FlowpV23 + '} ~\\text{Pa}~\\text{m}^3~\\text{s}^{-1}'
+q_pV_2X = 'q_{pV}(\\SI{23}{\\degreeCelsius})= \\num{' + FlowpV2X + '} ~\\text{Pa}~\\text{m}^3~\\text{s}^{-1}'  
 
-QMS= doc_cal["Calibration"]["Result"]["Formula"]["QMS"]
-Gauge= doc_cal["Calibration"]["Result"]["Formula"]["Gauge"]
-LeakUncertainty= doc_cal["Calibration"]["Result"]["Formula"]["LeakUncertainty"]
-print("TLX= ",TemperatureTLx)
+######## Tabellen um die Formeln zu zentriert. Bei den deutsch englischen Kalibrierschein stehen beide Ergebnisse direkt untereinander###########################
 
-sectionTitelMeasurement = 'Messergebnis '
-sectionTitelMeasurement_en = 'Measurement results'
-sectionTitelMeasurement_text_en = '\\section{' + sectionTitelMeasurement_en + '}\n '
-sectionTitelMeasurement_text = '\\section{' + sectionTitelMeasurement + '\\linebreak {\\small \\emph{' + sectionTitelMeasurement_en + '}}}\n '
+tab_q_mol_Val= '\\begin{center}\\begin{tabular}[h]{c} $$$' + q_mol_Val + '$$$  \\\\ $$$\\begin{english} ' + q_mol_Val + ' \\end{english}$$$  \\end{tabular}\\end{center} '
+tab_q_mol_Val_en= ' \\[ ' + q_mol_Val + '\\] \n'
 
+tab_q_pV_Val= '\\begin{center}\\begin{tabular}[h]{c} $$$' + q_pV_23C + '$$$  \\\\ $$$\\begin{english} '+ q_pV_23C + '\\end{english}$$$  \\end{tabular}\\end{center}'
+tab_q_pV_Val_en= ' \\[ '  + q_pV_23C + '\\] \n'
 
-sectionResultMol = 'Mit dem thermostatisierten Testleck wurden insgesamt ' +  NoOfMeasurements + '~Leckratenbestimmungen bei einer Testlecktemperatur von  \\( \\vartheta_\\text{TL}= \\SI{' + TemperatureTL + '}{\\degreeCelsius} \\) durchgeführt. Der Mittelwert ergab die (molare) Leckrate:   '
-sectionResultMol_en = NoOfMeasurements + '~measurements were carried out at a leak temperature of \\( \\vartheta_\\text{TL}= \\SI{' + TemperatureTL + '}{\\degreeCelsius} \\) (thermostated). The mean leak rate (molar flow) was determined to: '
-sectionResultMol_pup_en = NoOfMeasurements + '~measurements were carried out at a leak temperature of \\( \\vartheta_\\text{TL}= \\SI{' + TemperatureTL + '}{\\degreeCelsius} \\) (thermostated). The mean leak rate (molar flow) for relativ pressure \\( p_{\\text{up}}=\\SI{0.0}{\\bar} \\) (leak indication) at the upstream pressure side was determined to: '
 
-sectionResultMolVal= '\\[ q_\\text{mol}(\\vartheta_\\text{TL}) =\\SI{' + FlowMol + '}{\\mol\\per\\second} \\]  '
-sectionResultMolVal_en= '\\( q_\\text{mol}(\\vartheta_\\text{TL}) =\\SI{' + FlowMol + '}{\\mol\\per\\second} \\)  '
-sectionResultpV = 'Daraus kann für den Ort mit einer Temperatur \\(\\vartheta_\\text{Ch}\\) in \\si{\\degreeCelsius}, an dem sich der Prüfling befindet und mit \\(T_0 = \\SI{273.15}{\\kelvin}\\), der \\(pV\\)-Durchfluss nach folgender Beziehung berechnet werden.' 
-sectionResultpV_en = 'From this the \\(pV\\)-flow  can be calculated for a place at a temperature \\(\\vartheta_\\text{Ch}\\) (in \\si{\\degreeCelsius}), where a device under test is mounted and  \\(T_0 = \\SI{273.15}{\\kelvin}\\), by the equation:' 
-sectionResultpVVal = '\\[q_{pV}(\\vartheta_\\text{Ch}) = q_{\\text{mol}}(\\vartheta_\\text{TL})\\cdot R \\cdot (\\vartheta_\\text{Ch} + T_0)\\] '
- 
-sectionResultpV_T = 'Bei einer Kammertemperatur von \\( \\vartheta_\\text{TL}= \\SI{23}{\\degreeCelsius} \\) beträgt die Leckrate \\( q_{pV}(\\SI{23}{\\degreeCelsius}) \\):'
-sectionResultpV_T_en = 'At a chamber temperature \\(\\vartheta_\\text{Ch}=\\SI{23}{\\degreeCelsius}\\) the leak rate \\(q_{pV}(\\SI{23}{\\degreeCelsius})\\) will be:'
+########        Formeln        Ende                 ######################
+
 
-sectionResultpV_Tx = 'und bei einer Kammertemperatur von \\( \\vartheta_\\text{TL}= \\SI{'+ TemperatureTLx +'}{\\degreeCelsius} \\) beträgt die Leckrate \\( q_{pV}(\\SI{'+ TemperatureTLx +'}{\\degreeCelsius}) \\):'
-sectionResultpV_Tx_en = 'and at a chamber temperature \\(\\vartheta_\\text{Ch}=\\SI{'+ TemperatureTLx +'}{\\degreeCelsius}\\) the leak rate \\(q_{pV}(\\SI{'+ TemperatureTLx +'}{\\degreeCelsius})\\) will be:'
 
-sectionResultpVVal_T23 = ' \\[q_{pV}(\\SI{23}{\\degreeCelsius})= \\num{' + FlowpV23 + '} ~\\text{Pa}~\\text{m}^3~\\text{s}^{-1}\\]'
-sectionResultpVVal_T23_en = '\\( q_{pV}(\\SI{23}{\\degreeCelsius})= \\num{' + FlowpV23 + '} ~\\text{Pa}~\\text{m}^3~\\text{s}^{-1}\\)'
-sectionResultpVVal_Tx = ' \\[q_{pV}(\\SI{' + TemperatureTLx + '}{\\degreeCelsius})= \\num{' + FlowpV2X + '} ~\\text{Pa}~\\text{m}^3~\\text{s}^{-1}\\]'
-sectionResultpVVal_Tx_en = ' \\( q_{pV}(\\SI{'+ TemperatureTLx +'}{\\degreeCelsius})= \\num{' + FlowpV2X + '} ~\\text{Pa}~\\text{m}^3~\\text{s}^{-1}\\)'
+###### 1. Section: Beschreibung zum Kalibriergerät  ###################
 
 
-sectionResultU = 'Die relative Unsicherheit \\(U\\) der angegebenen Leckraten beträgt  \\( \\SI{'+ LeakUncertainty +'}{\\percent} \\).' 
-sectionResultU_en = 'The relative uncertainty \\(U\\) of the stated leak rate is    \\( \\SI{'+ LeakUncertainty +'}{\\percent} \\). ' 
+sectionDiscription_1= TextDE ###### Beschreibung aus dem cal-Dokument
+sectionDiscription_1_en= TextEN ###### Beschreibung aus dem cal-Dokument
+
+
+if (sectionDiscription_noyes!= 'yes'):
+    
+    sectionDiscription_2= " Dies ist die erste von der PTB durchgeführte Kalibrierung."
+    sectionDiscription_2_en= "This is the previous calibration at PTB."
+    print(" 1. durchgeführte Kalibrierung")
 
+else:
+   
+    sectionDiscription_2= " Die von der PTB zuletzt durchgeführten Kalibrierung ist im Kalibrierschein " +  last_cert + " beschrieben."
+    sectionDiscription_2_en= " The previous calibration at PTB had been carried out " +  last_cert_year + ' with the calibration mark ' + last_cert + " ."
+    
+    
+    
 
-sectionResult = sectionResultMol + sectionResultMolVal  +'\\begin{english}' + sectionResultMol_en + sectionResultMolVal_en + '\\end{english}'  + sectionResultpV + '\\begin{english}' + sectionResultpV_en +'\\end{english}' + sectionResultpVVal + '\\linebreak ' + sectionResultpV_T + sectionResultpVVal_T23   + '\\begin{english}' + sectionResultpV_T_en + sectionResultpVVal_T23_en  + '\\end{english}' +   sectionResultU + '\\begin{english}' +  sectionResultU + '\\end{english}'
-sectionResult_Tx = sectionResultMol + sectionResultMolVal  +'\\begin{english}' + sectionResultMol_en + sectionResultMolVal_en + '\\end{english}'  + sectionResultpV + '\\begin{english}' + sectionResultpV_en +'\\end{english}' + sectionResultpVVal + sectionResultpV_T + sectionResultpVVal_T23   + sectionResultpV_Tx + sectionResultpVVal_Tx + '\\begin{english}' + sectionResultpV_T_en + sectionResultpVVal_T23_en + sectionResultpV_Tx_en + sectionResultpVVal_Tx_en + '\\end{english}' + sectionResultU + '\\begin{english}' +  sectionResultU + '\\end{english}'
+sectionDiscription_1_en= TextEN ###### Beschreibung aus dem cal-Dokument
 
+sectionDiscription = '\\section{' + sectionDescriptionTitle + '\\linebreak {\\small \\emph{' + sectionDescriptionTitle_en + '}}}\n' + sectionDiscription_1 + sectionDiscription_2 + '\n' + '\\begin{english}' + TextEN + sectionDiscription_2_en + '\\end{english} \n'
+sectionDiscription_en = '\\section{'  + sectionDescriptionTitle_en +'}\n'  + TextEN + sectionDiscription_2_en 
 
-sectionResult_en = sectionResultMol_en + sectionResultMolVal + sectionResultpV_en + sectionResultpVVal  + sectionResultpV_T_en + sectionResultpVVal_T23
-#sectionResult_en = sectionResultMol_pup_en + sectionResultMolVal + sectionResultpV_en + sectionResultpVVal  + sectionResultpV_T_en + sectionResultpVVal_T23
 
-######################################## Unsicherheit ######################################################
+print(sectionDiscription, " Discription funktioniert")
 
-sectionU = 'Angegeben ist die erweiterte Messunsicherheit \\(U\\), die sich aus der Standardmessunsicherheit durch Multiplikation mit dem Erweiterungsfaktor \\(k = 2\\)  ergibt. Sie wurde gemäß dem „Guide to the Expression of Uncertainty in Measurement (GUM)“ ermittelt. Der Wert der Messgröße liegt dann im Regelfall mit einer Wahrscheinlichkeit von annähernd \\SI{95}{\\percent} im zugeordneten Überdeckungsintervall.\\n '
-sectionU_en = 'The uncertainty \\(U\\) stated is the expanded measurement uncertainty obtained by multiplying the standard measurement uncertainty by the coverage factor \\(k = 2\\). It has been determined in accordance with the  “Guide to the Expression of Uncertainty in Measurement (GUM)”. The value of the measurand then normally lies, with a probability of approximately \\SI{95}{\\percent} within the attributed coverage interval.'
 
-sectionU_text = sectionU + '\\begin{english} ' + sectionU_en + '\\end{english}'
-sectionU_text_en = sectionU_en
+#######     2. Section: Procedure   ###################################
 
-sectionTitelUncertainty = 'Unsicherheit '
-sectionTitelUncertainty_en = 'Uncertainty of Calibration'
-sectionTitelUncertainty_text_en = '\\section{' + sectionTitelUncertainty_en + '} '
-sectionTitelUncertainty_text = '\\section{' + sectionTitelUncertainty + '\\linebreak {\\small \\emph{' + sectionTitelUncertainty_en + '}}}'
 
+sectionProcedure1='''Der aus dem thermostatisierten Testleck TL austretende Gasfluss \\(q_{\\text{mol, TL}}\\) wird mit Hilfe eines Massenspektrometers mit einem annähernd gleich groß eingestellten Gasfluss \\(q_{\\text{mol, FM}}\\) 
+verglichen, dessen Größe mit einem Durchflussmesser (Flowmeter FM) bestimmt wird. Die Durchflussmessung erfolgt bei konstantem Druck \\(p_{\\text{FM}}\\) und konstanter Temperatur \\(T_{\\text{FM}}\\). Der Druck \\(p_{\\text{FM}}\\) wird
+ mit einem kapazitiven Membranvakuummeter gemessen. Dieses Gerät ist durch einen Vergleich mit einem Primärnormal der PTB kalibriert worden. Der Leitwert \\(C\\) wird aus der zeitlichen Volumenänderung (\\(\\Delta V/\\Delta t\\))
+ eines zusammendrückbaren, kalibrierten Federbalgs (\\(\\Delta V\\)) und einer elektronischen Uhr (\\(\\Delta t\\)) ermittelt. Die molare Gaskonstante \\(R\\) hat den Wert 8,3145~\\(\\text{Pa}\\)~\\(\\text{m}^3\\)~\\(\\text{mol}^{-1}\\)~\\(\\text{K}^{-1}\\).'''
+
+sectionProcedure2=' Die Leckrate \\(q_{\\text{mol, TL}}\\) des Testlecks wird nach folgender Beziehung berechnet:\n '
+sectionProcedure3=' mit \\(S_{\\text{TL}}\\) dem Signal am Massenspektrometer für den Gasfluss des Testlecks und \\(S_{\\text{FM}}\\) dem Signal am Massenspektrometer für den eingestellten Vergleichsgasfluss.'
+
+
+sectionProcedure1_en ='''The gas flow from the leak TL \\(q_{\\text{mol, TL}}\\) is compared with a gas flow \\(q_{\\text{mol, FM}}\\) of about the same flow rate from a flow meter FM by a
+mass spectrometer. The flow measurement is operated at constant pressure \\(p_{\\text{FM}}\\) and constant (absolute) temperature \\(T_{\\text{FM}}\\).
+The pressure \\(p_{\\text{FM}}\\) is measured with a capacitance diaphragm gauge. This gauge is calibrated by comparison with a primary
+standard of PTB. The conductance \\(C\\) of the capillary integrated in the flow meter is obtained from the temporal volume change
+(\\(\\Delta V/\\Delta t\\)) that is needed to keep \\(p_{\\text{FM}}\\) constant. It is measured by means of a calibrated bellow (\\(\\Delta V\\)) and an electronic clock (\\(\\Delta t\\)). The
+molar gas constant \\(R\\) has the value 8.3145~\\(\\text{Pa}\\)~\\(\\text{m}^3\\)~\\(\\text{mol}^{-1}\\)~\\(\\text{K}^{-1}\\). '''
+sectionProcedure2_en='The molar leak rate \\(q_{\\text{mol, TL}}\\) of the test leak can be calculated by the following equation:'
+sectionProcedure3_en=' whereby \\(S_{\\text{TL}}\\) is the signal at the mass spectrometer for the gas flow from the test leak and \\(S_{\\text{FM}}\\) the signal at the mass spectrometer for the gas flow from the flow meter.'
+
+
+sectionProcedure = '\\section{' + sectionTitelProcedure + '\\linebreak {\\small \\emph{' + sectionTitelProcedure_en + '}}}\n' + sectionProcedure1 + '\\begin{english}' + sectionProcedure1_en + '\\end{english} \n' + q_mol_FM_allg + sectionProcedure2 + '\\begin{english}' + sectionProcedure2_en + '\\end{english} \n' + q_mol_TL_allg + sectionProcedure3 + '\\begin{english}' + sectionProcedure3_en +'\\end{english} \n'
+sectionProcedure_en = '\\section{' + sectionTitelProcedure_en + '}\n'  + sectionProcedure1_en  + q_mol_FM_allg + sectionProcedure2_en  + q_mol_TL_allg  + sectionProcedure3_en 
+
+
+#######     3. Section: Result   ###################################
+
+sectionResult1 = 'Mit dem thermostatisierten Testleck wurden insgesamt ' + NoOfMeasurements + ' Leckratenbestimmungen bei einer Testlecktemperatur von \\( \\vartheta_\\text{TL}= \\num{ ' + TemperatureTL + '}\\pm \\SI{0.1}{\\degreeCelsius} \\) durchgeführt.\n Der Mittelwert ergab die (molare) Leckrate:'
+sectionResult2 = 'Daraus kann für den Ort mit einer Temperatur \\(\\vartheta_\\text{Ch}\\) in \\si{\\degreeCelsius}, an dem sich das Testleck befindet, mit \\(T_0 = \\SI{273.15}{\\kelvin}\\), der \\(pV\\)-Durchfluss nach folgender Beziehung berechnet werden.'
+sectionResult3 = 'Bei einer Kammertemperatur von \\( \\vartheta_\\text{Ch}= \\SI{ 23 }{\\degreeCelsius} \\) ergibt sich ein \\(pV\\)-Durchfluss \\(q_{pV}\\) '
+sectionResult3_TX = 'Bei Kammertemperaturen von \\( \\vartheta_\\text{Ch}= \\SI{ 23 }{\\degreeCelsius} \\) und \\( \\vartheta_\\text{Ch}= \\SI{' + TemperatureTLx + ' }{\\degreeCelsius} \\) ergeben sich \\(pV\\)-Durchflüsse \\(q_{pV}\\) von' 
+sectionResult4 = 'Die relative Unsicherheit \\(U\\) der angegebenen Leckraten beträgt  \\( \\SI{'+ LeakUncertainty +'}{\\percent} \\).' 
+
+
+sectionResult1_en = NoOfMeasurements  + ' measurements were carried out at a leak temperature \\( \\vartheta_\\text{TL}= \\num{ ' + TemperatureTL + '}\\pm \\SI{0.1}{\\degreeCelsius} \\) (thermostated). The mean leak rate (molar flow) was determined to:'
+sectionResult2_en = ' From this the \\(pV\\)-flow  can be calculated for a place at a temperature \\(\\vartheta_\\text{Ch}\\) (in \\si{\\degreeCelsius}), where a device under test is mounted and  \\(T_0 = \\SI{273.15}{\\kelvin}\\), by the equation ' 
+sectionResult3_en = 'At the temperature \\( \\vartheta_\\text{Ch}= \\SI{ 23 }{\\degreeCelsius} \\) the flow rate is'
+sectionResult3_TX_en = 'At the temperatures \\( \\vartheta_\\text{Ch}= \\SI{ 23 }{\\degreeCelsius} \\) and \\( \\vartheta_\\text{Ch}= \\SI{ 23 }{\\degreeCelsius} \\) the flow rates are'
+sectionResult4_en = 'The relative uncertainty \\(U\\) of the stated leak rate are    \\( \\SI{'+ LeakUncertainty +'}{\\percent} \\).'
+
+sectionResult_en = '\\section{' + sectionTitelResult_en + '}\n'  + sectionResult1_en 
+        
+
+        
+
+    
+sectionResult = '\\section{' + sectionTitelResult + '\\linebreak {\\small \\emph{' + sectionTitelResult_en + '}}}\n'    + sectionResult1         + '\\begin{english}' + sectionResult1_en   + '\\end{english} ' + tab_q_mol_Val + sectionResult2  + '\\begin{english}' + sectionResult2_en + '\\end{english} ' + q_pV_allg  + sectionResult3 + '\\begin{english}' + sectionResult3_en  + '\\end{english} ' +  tab_q_pV_Val + sectionResult4 + '\\begin{english}' + sectionResult4_en + '\\end{english} \n'
+sectionResult_en = sectionResult_en + sectionResult2_en  +   sectionResult4_en 
+
+
+
+
+    
+#######     4. Section: Uncertainty   ###################################
+
+sectionU1 = 'Angegeben ist die erweiterte Messunsicherheit \\(U\\), die sich aus der Standardmessunsicherheit durch Multiplikation mit dem Erweiterungsfaktor \\(k = 2\\)  ergibt. Sie wurde gemäß dem „Guide to the Expression of Uncertainty in Measurement (GUM)“ ermittelt. Der Wert der Messgröße liegt dann im Regelfall mit einer Wahrscheinlichkeit von annähernd \\SI{95}{\\percent} im zugeordneten Überdeckungsintervall.\n '
+sectionU1_en = 'The uncertainty \\(U\\) stated is the expanded measurement uncertainty obtained by multiplying the standard measurement uncertainty by the coverage factor \\(k = 2\\). It has been determined in accordance with the  “Guide to the Expression of Uncertainty in Measurement (GUM)”. The value of the measurand then normally lies, with a probability of approximately \\SI{95}{\\percent} within the attributed coverage interval.'
+
+sectionU = '\\section{' + sectionTitelUncertainty + '\\linebreak {\\small \\emph{' + sectionTitelUncertainty_en + '}}}\n' + sectionU1 + '\\begin{english}' + sectionU1_en + '\\end{english} \n'
+sectionU_en = '\\section{' + sectionTitelUncertainty_en + '}\n' + sectionU1_en 
 
 
 
 if(lang!='en'):
-    print("de",lang)
-    with open(ks,'w', encoding='utf-8') as file:
+    print("Kalibrierschein in deutsch",lang)
     
+    with open(ks,'w', encoding='utf-8') as file:
+        
         file.write('\\listfiles\n')
         file.write('\\documentclass[de,KK,CMC]{kalibrierschein}\n ')
         file.write(obj)
@@ -284,47 +312,32 @@ if(lang!='en'):
         file.write('\\byOrder{Dr. M.Bernien}\n')
         file.write(examiner)
         file.write(certificateDate)
-    
-        file.write('\\begin{document}\n')
-    
-        file.write('\\printFirstPage\n')
-    
-        file.write(sectionTitleText_de)
-        sectionText = sectionTitleText_de
-    
-        file.write(sectionTitelProcedure_text)
-        file.write(sectionProcedure_text)
-        file.write('\\pagebreak')
-        file.write(sectionTitelMeasurement_text)
-        
         
-        if(TemperatureTLx!=23):
-            file.write(sectionResult_Tx)
-            print("nicht 23")
-
-        else:
-            file.write(sectionResult)
-            print(" 23 ToDo", sectionResult)
-            
-          
-            
-            
-        file.write('\\section{Unsicherheit \\linebreak {\\small \\emph{Uncertainty of Calibration}}} ')
-        file.write(sectionU_text)
-    
-        file.write('\\printLastPage')
-        file.write('\\end{document}\\n')
+        file.write('\\begin{document}\n')
         
+        file.write('\\printFirstPage\n')
+        file.write(sectionDiscription)
         
         
         
+        file.write(sectionProcedure)
+        file.write('\\pagebreak ')
+        file.write(sectionResult)
+        file.write(sectionU)
         
         
         
+        file.write('\\pagebreak ')
+                
+        file.write('\\printLastPage')
+        file.write('\\end{document}\n')
+        print("bis hier funktioniert")
 else:
-    print("en Kal",lang)
-    with open(ks,'w', encoding='utf-8') as file:
+    print('"Kalibrierschein in ',lang, "en")
     
+
+    with open(ks,'w', encoding='utf-8') as file:
+        
         file.write('\\listfiles\n')
         file.write('\\documentclass[en,KK,CMC]{kalibrierschein}\n ')
         file.write(obj)
@@ -338,48 +351,49 @@ else:
         file.write('\\byOrder{Dr. M.Bernien}\n')
         file.write(examiner)
         file.write(certificateDate)
-    
+        
         file.write('\\begin{document}\n')
-    
+        
         file.write('\\printFirstPage\n')
-    
-        file.write(sectionTitleText_en)
-        sectionText = sectionTitleText_en
-    
-        file.write(sectionTitelProcedure_text_en)
-        file.write(sectionProcedure_text_en)
+        file.write(sectionDiscription_en)
         
-        file.write(sectionTitelMeasurement_text_en)
-        file.write(sectionResult_en)
-        file.write(sectionResultU_en)
         
-        if(TemperatureTLx == 23):
-            file.write(sectionResult_Tx)
-            print("nicht 23",TemperatureTLx)
-
-        else:
-            
-            print(" 23 ToDo")
         
-        #file.write(sectionTitelUncertainty_text_en)
-        #file.write(sectionU_text_en)
-    
-        file.write('\\printLastPage')
-        file.write('\\end{document}')
+        file.write(sectionProcedure_en)
+        file.write(sectionResult_en)
+        file.write(sectionU_en)
         
         
+        
+        file.write('\\pagebreak ')
+                
+        file.write('\\printLastPage')
+        file.write('\\end{document}\n')
+        print("bis hier funktioniert")
+
+
+ ####################Erstellung des cer-Dokuments ##########################
+ 
 
  
-doc_cer["Certificate"]={"Meta":{"std": ["FM1"],
+ ##### Doukument "cer" wird erstellt#######
+ 
+
+MeasurementDateBegin = doc_cal["Calibration"]["Measurement"]["Date"][0]["Value"]
+MeasurementDateBegin = MeasurementDateBegin[0]
+MeasurementDateEnd = doc_cal["Calibration"]["Measurement"]["Date"][0]["Value"]
+MeasurementDateEnd = MeasurementDateEnd[0]
+DeviceClass= "TLA"
+
+
+doc_cer["Certificate"]={"Meta":{"std": ["TL2"],
                                  "id":[id_], 
                                  "kind" :[kind], 
                                  "gas": [gas], 
                                  "lang":lang,
-                                 "calibration_type":calibration_type,
-                                 }}
-
-
-
+                                 "calibration_type":calibration_type, 
+                                 "last_cert":last_cert}}
+     
 doc_cer["Certificate"]["Titlepage"]={"CertificateDate" :CertificateDate, 
                                      "FullYear": "2024",
                                      "ShortYear": "24",
@@ -406,30 +420,38 @@ doc_cer["Certificate"]["Titlepage"]={"CertificateDate" :CertificateDate,
                                  "ByOrder": ByOrder,
                                   } 
 
-
-
-
-
-doc_cer["Certificate"]["Section"]= [{"Heading": "Description relating to calibration device","Paragraph":sectionText},
-                                    {"Heading": "Calibration procedure","Paragraph":sectionProcedure_text},
+if(lang!='en'):
+    doc_cer["Certificate"]["Section"]= [{"Heading": "Description relating to calibration device","Paragraph":sectionDiscription},
+                                    {"Heading": "Calibration procedure","Paragraph":sectionProcedure},
                                     {"Heading": "Measurement results","Paragraph":sectionResult},
                                     {"Heading": "Uncertainty of Calibration","Paragraph":sectionU}],
 
+else:
+      doc_cer["Certificate"]["Section"]= [{"Heading": "Description relating to calibration device","Paragraph":sectionDiscription_en},
+                                      {"Heading": "Calibration procedure","Paragraph":sectionProcedure_en},
+                                      {"Heading": "Measurement results","Paragraph":sectionResult_en},
+                                      {"Heading": "Uncertainty of Calibration","Paragraph":sectionU_en}],  
+
 doc_cer["Certificate"]["Formula"]={"NoOfMeasurements": NoOfMeasurements,
                                 "FlowMol": FlowMol,
-                                "FlowpV23": FlowpV23,
+                                "FlowpV23":FlowpV23,
                                 "FlowpV2X":FlowpV2X,
-                                "Gauge": Gauge,
                                 "TemperatureTL": TemperatureTL,
                                 "TemperatureTLx": TemperatureTLx,
-                                "LeakUncertainty": LeakUncertainty,
-                                "MeasurementDate": MeasurementDate,
-                                "QMS": QMS,
-                                
+                                "LeakUncertainty": LeakUncertainty
                                 } 
+
+
+                                  
+                           
+ #
+ #
+
 db.save(doc_cer)
 
 
 
 
 
+
+ 
\ No newline at end of file
-- 
GitLab