Struktur des Programmes umgebaut, so dass Umgebungsvariablen verwendet werden. Configs werden vor Objekterzeugung geladen und in den Objekten gesetzt

This commit is contained in:
2023-05-31 16:56:42 +02:00
parent 4e70f5a600
commit 1f0e4137f2
17 changed files with 272 additions and 9009 deletions
+27 -16
View File
@@ -1,6 +1,7 @@
import pandas as pd
import configparser
import os.path
import argparse
"""
Erstellung einer Excel-Datei mit aktuellen Preisen aus Sivas ist leicht möglich.
@@ -8,15 +9,7 @@ Diese soll in einer config-Datei für die Berechnung der rieter-eKalkulation ver
Den Parametern der rieter_ekalk werden die entsprechenden Sivas-Nummern zugewiesen, und damit die aktuellen Preise.
Diese Zuordnung von Parametern und ihren aktuellen Preisen wird wieder in eine config-Datei geschrieben, die mit den Preisen der Sivas_Daten.cfg-Datei abzugleichen ist, auf die rieter_ekalk zugreift.
"""
faktoren_sivas_Nummern = {
"zuleitung_75_m_unterverteiler_4x4mm2_400vac":75,
"zuleitung_75_m_unterverteiler_12x4mm2_24_vdc":75,
"zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc":75,
"zuleitung_55_m_klemmkasten_rsm_mitte_14g1_5_mm":55,
"zuleitung_55_m_klemmkasten_rsm_mitte_14g1_0_mm":55,
"schnittstellen_8x1mm2_30m":30
}
class Kosten():
"""
Liest die Sivas-Excel-Liste ein und schreibt eine neue config Datei mit den aktuellen Preisen der in rieter-ekalk verwendeten Sivas-IDs.
@@ -143,13 +136,31 @@ class Kosten():
df.to_excel(name, sheet_name="Preisänderungen", index_label="Sivas-Nummern")
# lies die alte config und die Excel-Liste mit den Sivas-Daten
costs = Kosten()
not_found_in_sivas = dict()
latest_costs = costs.getNewPricesAsDict(not_found_in_sivas)
# schreibe die neue config mit den aktuellen Preisen
costs.writeNewConfig('Sivas_Abgleich.cfg')
# schreibe die Preisänderungen in eine Excel-Datei
costs.writePriceIncrements('Preis_Increments.xlsx')
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='calculation of a system according to Bös', prog='ecalc')
parser.add_argument('-o', '--outfile', action='store', help='name of the output excel file', default="Preis_Increments.xlsx")
args = parser.parse_args()
zuordCfgFilePath = os.path.join(os.environ.get('ECALC_CFG'), "Zuordnung_Teilenummern.cfg")
sivasCfgFilePath = os.path.join(os.environ.get('ECALC_CFG'), "Sivas_Daten.cfg")
gridExportFilePath = os.path.join(os.environ.get('ECALC_CFG'), "grid_export.xlsx")
if not os.path.isfile(zuordCfgFilePath):
print("no Zuordnung_Teilenummern.cfg in ECALC_CFG")
if not os.path.isfile(sivasCfgFilePath):
print("no Sivas_Daten.cfg in ECALC_CFG")
if not os.path.isfile(gridExportFilePath):
print("no grid_export.xlsx with prices from SIVAS in ECALC_CFG")
# lies die alten config und die Excel-Liste mit den Sivas-Daten
costs = Kosten(zuordCfgFilePath, sivasCfgFilePath, gridExportFilePath)
not_found_in_sivas = dict()
latest_costs = costs.getNewPricesAsDict(not_found_in_sivas)
# schreibe die neue config mit den aktuellen Preisen
costs.writeNewConfig('Sivas_Abgleich.cfg')
# schreibe die Preisänderungen in eine Excel-Datei
outPath = os.path.join(os.environ.get('ECALC_WORK'), args.outfile)
costs.writePriceIncrements(outPath)