json export gebaut. Weitere Ausgaben wie EMO hinzugefügt
This commit is contained in:
+88
-44
@@ -1,6 +1,7 @@
|
|||||||
import rieter_ekalk as rek
|
import rieter_ekalk as rek
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import argparse
|
import argparse
|
||||||
|
import json
|
||||||
import os
|
import os
|
||||||
import configparser
|
import configparser
|
||||||
|
|
||||||
@@ -237,6 +238,22 @@ order_eas = [
|
|||||||
'Summe Komponenten',
|
'Summe Komponenten',
|
||||||
'Summe Komponenten inkcl. Reserve',
|
'Summe Komponenten inkcl. Reserve',
|
||||||
]
|
]
|
||||||
|
order_emo = [
|
||||||
|
'Schaltschrank_aufstellen',
|
||||||
|
'Unterverteiler_montieren',
|
||||||
|
'Pritsche_montieren_umbauen_demontieren',
|
||||||
|
'Pritsche_in_RSM_montieren',
|
||||||
|
'Motor_verdrahten_und_anschliessen',
|
||||||
|
'Tableau_befestigen_und_anschliessen',
|
||||||
|
'Schnittstelle_Flyer_Putzmaschine',
|
||||||
|
'Sensoren_montieren',
|
||||||
|
'Seilzugschalter_installieren',
|
||||||
|
'Blitzleuchte_installieren',
|
||||||
|
'Weiche_Stopper_anschliessen',
|
||||||
|
'Erdung',
|
||||||
|
'Summe',
|
||||||
|
'Summe inkl. Mehraufwand',
|
||||||
|
]
|
||||||
class cfg():
|
class cfg():
|
||||||
"""
|
"""
|
||||||
Liest die config-Datei ein, in der Stückpreise und Zeiteinheiten pro Bauteil wie in der rieter_ekalk Excel-Datei verwendet angegeben sind, und schreibt sie in ein Dictionary.
|
Liest die config-Datei ein, in der Stückpreise und Zeiteinheiten pro Bauteil wie in der rieter_ekalk Excel-Datei verwendet angegeben sind, und schreibt sie in ein Dictionary.
|
||||||
@@ -287,8 +304,60 @@ class cfg():
|
|||||||
res[key] = val
|
res[key] = val
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
def to_dicts(eas:rek.EA, hw:rek.HW, emo:rek.EMO, dl:rek.Dienstleistung, erg:rek.Ergebnis):
|
||||||
|
dEas = eas.getSEAs(order_eas)
|
||||||
|
dEas['Summe Komponenten'] = [eas.gesamt_E(), eas.gesamt_A()]
|
||||||
|
dEas['Summe Komponenten inkcl. Reserve'] = [eas.gesamt_E_incl_reserve(), eas.gesamt_A_incl_reserve()]
|
||||||
|
|
||||||
def run_calc(infile, outfile, SivasConfig):
|
dhardware = hw.to_dict()
|
||||||
|
hoursEMO = emo.to_dict()
|
||||||
|
dDienstleistung = dl.to_dict()
|
||||||
|
|
||||||
|
dSummary = erg.summary_costs(hw)
|
||||||
|
return (dEas, dhardware, hoursEMO, dDienstleistung, dSummary)
|
||||||
|
|
||||||
|
def to_json(eas:rek.EA, hw:rek.HW, emo:rek.EMO, dl:rek.Dienstleistung, erg:rek.Ergebnis, outfile):
|
||||||
|
(dEas, hardware, hoursEMO, dienstleistung, ergebnisse) = to_dicts(eas, hw, emo, dl, erg)
|
||||||
|
dOut = {
|
||||||
|
'ergebnisse': ergebnisse,
|
||||||
|
'hardware': hardware,
|
||||||
|
'eas': dEas,
|
||||||
|
'dienstleistung': dienstleistung,
|
||||||
|
'emo': hoursEMO,
|
||||||
|
}
|
||||||
|
with open(outfile, 'w', encoding ='utf8') as json_file:
|
||||||
|
json.dump(dOut, json_file, ensure_ascii=False, indent=2)
|
||||||
|
|
||||||
|
def to_excel(eas:rek.EA, hw:rek.HW, emo:rek.EMO, dl:rek.Dienstleistung, erg:rek.Ergebnis, outfile):
|
||||||
|
|
||||||
|
(dEas, hardware, hoursEMO, dienstleistung, ergebnisse) = to_dicts(eas, hw, emo, dl, erg)
|
||||||
|
|
||||||
|
df_temp = pd.DataFrame.from_dict(data=dEas, orient='index', columns=['S.E', 'S.A'])
|
||||||
|
df_eas = pd.DataFrame(data=df_temp, index=order_eas)
|
||||||
|
|
||||||
|
df_temp = pd.DataFrame.from_dict(data=hardware, orient='index', columns=['Strück'])
|
||||||
|
df_hardware = pd.DataFrame(data=df_temp, index=order_hardware)
|
||||||
|
|
||||||
|
df_temp = pd.DataFrame.from_dict(data=hoursEMO, orient='index', columns=['Aufwand [h]'])
|
||||||
|
df_emo = pd.DataFrame(data=df_temp, index=order_emo)
|
||||||
|
|
||||||
|
df_temp = pd.DataFrame.from_dict(data=dienstleistung, orient='index', columns=['Aufwand [h]'])
|
||||||
|
df_dienst = pd.DataFrame(data=df_temp, index=order_dienstleistungen)
|
||||||
|
|
||||||
|
df_temp = pd.DataFrame.from_dict(data=ergebnisse, orient='index', columns=['Aufwand [€]'])
|
||||||
|
df_aufwand = pd.DataFrame(data=df_temp, index=order_ergebnisse)
|
||||||
|
|
||||||
|
#df = pd.DataFrame.from_dict(data=dienstleistung, orient='index', columns=['Dienstleistungen'])
|
||||||
|
|
||||||
|
with pd.ExcelWriter(outfile) as writer:
|
||||||
|
df_aufwand.to_excel(writer, sheet_name='Kostenaufstellung')
|
||||||
|
df_hardware.to_excel(writer, sheet_name='Hardware')
|
||||||
|
df_dienst.to_excel(writer, sheet_name='Dienstleistungen')
|
||||||
|
df_eas.to_excel(writer, sheet_name='EAs')
|
||||||
|
df_emo.to_excel(writer, sheet_name='EMO')
|
||||||
|
# TODO Mengengerüst, ev. Anschlussleistung und Ausgangsstrom
|
||||||
|
|
||||||
|
def run_calc(infile, SivasConfig):
|
||||||
|
|
||||||
|
|
||||||
infileCfg = cfg(infile)
|
infileCfg = cfg(infile)
|
||||||
@@ -330,69 +399,37 @@ def run_calc(infile, outfile, SivasConfig):
|
|||||||
|
|
||||||
Anzahl_EAS = infileCfg.getTypedDict("EAS")
|
Anzahl_EAS = infileCfg.getTypedDict("EAS")
|
||||||
eas = rek.EA(Anzahl_EAS, mg)
|
eas = rek.EA(Anzahl_EAS, mg)
|
||||||
dEas = eas.getSEAs(order_eas)
|
|
||||||
dEas['Summe Komponenten'] = [eas.gesamt_E(), eas.gesamt_A()]
|
|
||||||
dEas['Summe Komponenten inkcl. Reserve'] = [eas.gesamt_E_incl_reserve(), eas.gesamt_A_incl_reserve()]
|
|
||||||
|
|
||||||
df_temp = pd.DataFrame.from_dict(data=dEas, orient='index', columns=['S.E', 'S.A'])
|
|
||||||
df_eas = pd.DataFrame(data=df_temp, index=order_eas)
|
|
||||||
|
|
||||||
Anzahl_HW = infileCfg.getTypedDict("HW")
|
|
||||||
|
|
||||||
|
|
||||||
hwep = SivasConfig.getTypedDict("HW_Einzelpreise")
|
hwep = SivasConfig.getTypedDict("HW_Einzelpreise")
|
||||||
hwhp = SivasConfig.getTypedDict("HW_Zeiten Hardwareplanung")
|
hwhp = SivasConfig.getTypedDict("HW_Zeiten Hardwareplanung")
|
||||||
hwzew = SivasConfig.getTypedDict("HW_Zeiten Elektro-Werkstatt")
|
hwzew = SivasConfig.getTypedDict("HW_Zeiten Elektro-Werkstatt")
|
||||||
|
|
||||||
|
Anzahl_HW = infileCfg.getTypedDict("HW")
|
||||||
hw = rek.HW(hwep, hwhp, hwzew)
|
hw = rek.HW(hwep, hwhp, hwzew)
|
||||||
hw.calc(Anzahl_HW, mg, eas)
|
hw.calc(Anzahl_HW, mg, eas)
|
||||||
hardware = hw.get_anzahl()
|
|
||||||
hardware["Summe_vorOrt"] = hw.summe_vorort()
|
|
||||||
hardware["Summe_gesamt"] = hw.summe_gesamt()
|
|
||||||
hardware["Summe_Landsberg"] = hw.summe_in_LL()
|
|
||||||
hardware["Zeiten_Hardwareplanung"] = hw.summe_h_zeiten_hardwareplanung()
|
|
||||||
hardware["Zeiten_Unterverteiler_Werkstatt"] = hw.summe_h_unterverteiler_e_werkstatt()
|
|
||||||
df_temp = pd.DataFrame.from_dict(data=hardware, orient='index', columns=['Strück'])
|
|
||||||
df_hardware = pd.DataFrame(data=df_temp, index=order_hardware)
|
|
||||||
|
|
||||||
emoz = SivasConfig.getTypedDict("Elektro-Montagezeiten")
|
emoz = SivasConfig.getTypedDict("ElektSro-Montagezeiten")
|
||||||
emo = rek.EMO(emoz)
|
emo = rek.EMO(emoz)
|
||||||
emo.calc(eas, hw, mg)
|
emo.calc(eas, hw, mg)
|
||||||
|
|
||||||
Anzahl_DL = infileCfg.getTypedDict("DL")
|
Anzahl_DL = infileCfg.getTypedDict("DL")
|
||||||
dl = rek.Dienstleistung(Anzahl_DL, hw)
|
dl = rek.Dienstleistung(Anzahl_DL, hw)
|
||||||
dienstleistung = dl.get_hours()
|
|
||||||
dienstleistung["Summe_Dienstleistungen_Hardwareplanung"] = dl.stunden_diensleistung_hardwareplanung()
|
|
||||||
dienstleistung["Summe_Dienstleistungen_Elektrowerkstatt"] = dl.stunden_elektrowerkstatt()
|
|
||||||
dienstleistung["Summe_Dienstleistungen_in_LL"] = dl.summe_stunden_dienstleistung_in_landsberg()
|
|
||||||
df_temp = pd.DataFrame.from_dict(data=dienstleistung, orient='index', columns=['Aufwand [h]'])
|
|
||||||
df_dienst = pd.DataFrame(data=df_temp, index=order_dienstleistungen)
|
|
||||||
|
|
||||||
Anzahl_Ergebnis = infileCfg.getTypedDict("Ergebnis")
|
Anzahl_Ergebnis = infileCfg.getTypedDict("Ergebnis")
|
||||||
kph = SivasConfig.getTypedDict("Kosten pro h")
|
kph = SivasConfig.getTypedDict("Kosten pro h")
|
||||||
erg = rek.Ergebnis(kph)
|
erg = rek.Ergebnis(kph)
|
||||||
erg.calc(Anzahl_Ergebnis, hw, dl, emo)
|
erg.calc(Anzahl_Ergebnis, hw, dl, emo)
|
||||||
|
|
||||||
ergebnisse = erg.summary_costs(hw)
|
|
||||||
df_temp = pd.DataFrame.from_dict(data=ergebnisse, orient='index', columns=['Aufwand [€]'])
|
|
||||||
df_aufwand = pd.DataFrame(data=df_temp, index=order_ergebnisse)
|
|
||||||
|
|
||||||
|
return (eas, hw, emo, dl, erg)
|
||||||
|
|
||||||
#df = pd.DataFrame.from_dict(data=dienstleistung, orient='index', columns=['Dienstleistungen'])
|
|
||||||
|
|
||||||
with pd.ExcelWriter(outfile) as writer:
|
|
||||||
df_aufwand.to_excel(writer, sheet_name='Kostenaufstellung')
|
|
||||||
df_hardware.to_excel(writer, sheet_name='Hardware')
|
|
||||||
df_dienst.to_excel(writer, sheet_name='Dienstleistungen')
|
|
||||||
df_eas.to_excel(writer, sheet_name='EAs')
|
|
||||||
# TODO Mengengerüst, EMO, ev. Anschlussleistung und Ausgangsstrom
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='calculation of a system according to Bös', prog='ecalc')
|
parser = argparse.ArgumentParser(description='calculation of a system according to Bös', prog='ecalc')
|
||||||
parser.add_argument('-i', '--infile', action='store', help='name of the input file', default="jayjay.cfg")
|
parser.add_argument('-i', '--infile', action='store', help='name of the input file', default="jayjay.cfg")
|
||||||
parser.add_argument('-o', '--outfile', action='store', help='name of the output .xlsx file. If none given, name of the input file is used.')
|
parser.add_argument('-x', '--xlsx', action='store', help='name of the output .xlsx file. If none given, name of the input file is used.')
|
||||||
parser.add_argument('-c', '--config', action='store', help='name of the config file inside of cfg folder to use. Default is Sivas_Daten.cfg', default="Sivas_Daten.cfg")
|
parser.add_argument('-c', '--config', action='store', help='name of the config file inside of cfg folder to use. Default is Sivas_Daten.cfg', default="Sivas_Daten.cfg")
|
||||||
|
parser.add_argument('-j', '--json', action='store', help='name of the json file as output. If none given, name of the input file is used. ')
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
sivasCfgFilePath = os.path.join(os.environ.get('ECALC_CFG'), args.config)
|
sivasCfgFilePath = os.path.join(os.environ.get('ECALC_CFG'), args.config)
|
||||||
@@ -400,12 +437,19 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
inFilePath = os.path.join(os.environ.get('ECALC_WORK'), args.infile)
|
inFilePath = os.path.join(os.environ.get('ECALC_WORK'), args.infile)
|
||||||
if os.path.isfile(inFilePath):
|
if os.path.isfile(inFilePath):
|
||||||
if args.outfile:
|
(fname, ext) = os.path.splitext(args.infile)
|
||||||
outPath = os.path.join(os.environ.get('ECALC_WORK'), args.outfile)
|
(eas, hw, emo, dl, erg) = run_calc(inFilePath, RieterConfig)
|
||||||
|
if args.xlsx:
|
||||||
|
xlsPath = os.path.join(os.environ.get('ECALC_WORK'), args.xlsx)
|
||||||
else:
|
else:
|
||||||
(fname, ext) = os.path.splitext(args.infile)
|
xlsPath = os.path.join(os.environ.get('ECALC_WORK'), fname + '.xlsx')
|
||||||
outPath = os.path.join(os.environ.get('ECALC_WORK'), fname + '.xlsx')
|
to_excel(eas, hw, emo, dl, erg, xlsPath)
|
||||||
run_calc(inFilePath, outPath, RieterConfig)
|
if args.json:
|
||||||
|
jsonPath = os.path.join(os.environ.get('ECALC_WORK'), args.json)
|
||||||
|
else:
|
||||||
|
jsonPath = os.path.join(os.environ.get('ECALC_WORK'), fname + '.json')
|
||||||
|
to_json(eas, hw, emo, dl, erg, jsonPath)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
print("no such file in ECALC_WORK")
|
print("no such file in ECALC_WORK")
|
||||||
# os.environ.get('ECALC_BIN')
|
# os.environ.get('ECALC_BIN')
|
||||||
|
|||||||
+56
-13
@@ -2233,6 +2233,14 @@ class HW():
|
|||||||
summe_h_schaltschrank_hardware = self.summe_h_schaltschrank_hardware()
|
summe_h_schaltschrank_hardware = self.summe_h_schaltschrank_hardware()
|
||||||
summe_h_unterverteiler_hardware = self.summe_h_unterverteiler_hardware()
|
summe_h_unterverteiler_hardware = self.summe_h_unterverteiler_hardware()
|
||||||
return (summe_h_schaltschrank_hardware + summe_h_unterverteiler_hardware)
|
return (summe_h_schaltschrank_hardware + summe_h_unterverteiler_hardware)
|
||||||
|
def to_dict(self):
|
||||||
|
dhardware = self.get_anzahl()
|
||||||
|
dhardware["Summe_vorOrt"] = self.summe_vorort()
|
||||||
|
dhardware["Summe_Landsberg"] = self.summe_in_LL()
|
||||||
|
dhardware["Zeiten_Hardwareplanung"] = self.summe_h_zeiten_hardwareplanung()
|
||||||
|
dhardware["Zeiten_Unterverteiler_Werkstatt"] = self.summe_h_unterverteiler_e_werkstatt()
|
||||||
|
dhardware["Summe_gesamt"] = self.summe_gesamt()
|
||||||
|
return dhardware
|
||||||
|
|
||||||
class Dienstleistung():
|
class Dienstleistung():
|
||||||
# Angaben in h
|
# Angaben in h
|
||||||
@@ -2356,6 +2364,12 @@ class Dienstleistung():
|
|||||||
|
|
||||||
def stunden_elektro_Landsberg(self):
|
def stunden_elektro_Landsberg(self):
|
||||||
return 0
|
return 0
|
||||||
|
def to_dict(self):
|
||||||
|
dDienstleistung = self.get_hours()
|
||||||
|
dDienstleistung["Summe_Dienstleistungen_Hardwareplanung"] = self.stunden_diensleistung_hardwareplanung()
|
||||||
|
dDienstleistung["Summe_Dienstleistungen_Elektrowerkstatt"] = self.stunden_elektrowerkstatt()
|
||||||
|
dDienstleistung["Summe_Dienstleistungen_in_LL"] = self.summe_stunden_dienstleistung_in_landsberg()
|
||||||
|
return dDienstleistung
|
||||||
|
|
||||||
#EMO
|
#EMO
|
||||||
class EMO():
|
class EMO():
|
||||||
@@ -2379,6 +2393,7 @@ class EMO():
|
|||||||
def __init__(self, emoz=None):
|
def __init__(self, emoz=None):
|
||||||
if emoz:
|
if emoz:
|
||||||
self.set_config_data("Elektro-Montagezeiten", emoz)
|
self.set_config_data("Elektro-Montagezeiten", emoz)
|
||||||
|
self._Mengen = {}
|
||||||
|
|
||||||
def calc(self, ea: type[EA], hw: type[HW], mg: type[MG]):
|
def calc(self, ea: type[EA], hw: type[HW], mg: type[MG]):
|
||||||
#für jede Zeile (Eintrag im dict 'mengen') muss ein Wert übergeben werden, der aus den Klassen HW(), MG() oder EA() stammt
|
#für jede Zeile (Eintrag im dict 'mengen') muss ein Wert übergeben werden, der aus den Klassen HW(), MG() oder EA() stammt
|
||||||
@@ -2436,16 +2451,16 @@ class EMO():
|
|||||||
self._mehraufwand = PS
|
self._mehraufwand = PS
|
||||||
def dauer_emo_h(self):
|
def dauer_emo_h(self):
|
||||||
keys_tätigkeiten_1 = [
|
keys_tätigkeiten_1 = [
|
||||||
"Unterverteiler_montieren",
|
"Unterverteiler_montieren",
|
||||||
"Sensoren_montieren",
|
"Sensoren_montieren",
|
||||||
"Seilzugschalter_installieren",
|
"Seilzugschalter_installieren",
|
||||||
"Blitzleuchte_installieren",
|
"Blitzleuchte_installieren",
|
||||||
"Weiche_Stopper_anschliessen",
|
"Weiche_Stopper_anschliessen",
|
||||||
"Erdung",
|
"Erdung",
|
||||||
"Schaltschrank_aufstellen",
|
"Schaltschrank_aufstellen",
|
||||||
"Motor_verdrahten_und_anschliessen",
|
"Motor_verdrahten_und_anschliessen",
|
||||||
"Tableau_befestigen_und_anschliessen",
|
"Tableau_befestigen_und_anschliessen",
|
||||||
"Schnittstelle_Flyer_Putzmaschine"
|
"Schnittstelle_Flyer_Putzmaschine"
|
||||||
]
|
]
|
||||||
keys_1 = 0
|
keys_1 = 0
|
||||||
for k in keys_tätigkeiten_1:
|
for k in keys_tätigkeiten_1:
|
||||||
@@ -2460,10 +2475,38 @@ class EMO():
|
|||||||
for k in keys_tätigkeiten_2:
|
for k in keys_tätigkeiten_2:
|
||||||
dauer = self._Mengen.get(k) / self.montagezeiten.get(k)
|
dauer = self._Mengen.get(k) / self.montagezeiten.get(k)
|
||||||
keys_2 += dauer
|
keys_2 += dauer
|
||||||
|
|
||||||
return math.ceil((keys_1 + keys_2))
|
return math.ceil((keys_1 + keys_2))
|
||||||
def dauer_emo_h_incl_mehrauwand(self):
|
def dauer_emo_h_incl_mehraufwand(self):
|
||||||
return (self.dauer_emo_h() * (1 + self._mehraufwand))
|
return (self.dauer_emo_h() * (1 + self._mehraufwand))
|
||||||
|
def get_dict_of_hours(self):
|
||||||
|
res = dict()
|
||||||
|
keys_tätigkeiten_1 = [
|
||||||
|
"Unterverteiler_montieren",
|
||||||
|
"Sensoren_montieren",
|
||||||
|
"Seilzugschalter_installieren",
|
||||||
|
"Blitzleuchte_installieren",
|
||||||
|
"Weiche_Stopper_anschliessen",
|
||||||
|
"Erdung",
|
||||||
|
"Schaltschrank_aufstellen",
|
||||||
|
"Motor_verdrahten_und_anschliessen",
|
||||||
|
"Tableau_befestigen_und_anschliessen",
|
||||||
|
"Schnittstelle_Flyer_Putzmaschine"
|
||||||
|
]
|
||||||
|
for k in keys_tätigkeiten_1:
|
||||||
|
res[k] = self.montagezeiten.get(k) * self._Mengen.get(k)
|
||||||
|
|
||||||
|
keys_tätigkeiten_2 = [
|
||||||
|
"Pritsche_montieren_umbauen_demontieren",
|
||||||
|
"Pritsche_in_RSM_montieren"
|
||||||
|
]
|
||||||
|
for k in keys_tätigkeiten_2:
|
||||||
|
res[k] = self._Mengen.get(k) / self.montagezeiten.get(k)
|
||||||
|
return res
|
||||||
|
def to_dict(self):
|
||||||
|
hoursEMO = self.get_dict_of_hours()
|
||||||
|
hoursEMO['Summe'] = self.dauer_emo_h()
|
||||||
|
hoursEMO['Summe inkl. Mehraufwand'] = self.dauer_emo_h_incl_mehraufwand()
|
||||||
|
return hoursEMO
|
||||||
|
|
||||||
class Anschlussl():
|
class Anschlussl():
|
||||||
"""
|
"""
|
||||||
@@ -2631,7 +2674,7 @@ class Ergebnis():
|
|||||||
self._anzahl["Pflichtenheft"] = anzahl_h.get("Pflichtenheft", 0)
|
self._anzahl["Pflichtenheft"] = anzahl_h.get("Pflichtenheft", 0)
|
||||||
self._anzahl["SPS_Programmierung"] = anzahl_h.get("SPS_Programmierung", 0) * (1 + self._Abweichung_softwareerstellung)
|
self._anzahl["SPS_Programmierung"] = anzahl_h.get("SPS_Programmierung", 0) * (1 + self._Abweichung_softwareerstellung)
|
||||||
self._anzahl["PC_Programmierung_Visualisierung"] = anzahl_h.get("SPS_Programmierung", 0) * self._Anteil_PC_Visualisierung_an_SPS
|
self._anzahl["PC_Programmierung_Visualisierung"] = anzahl_h.get("SPS_Programmierung", 0) * self._Anteil_PC_Visualisierung_an_SPS
|
||||||
self._anzahl["Montage_elektrisch"] = emo.dauer_emo_h_incl_mehrauwand()
|
self._anzahl["Montage_elektrisch"] = emo.dauer_emo_h_incl_mehraufwand()
|
||||||
self._anzahl["Inbetriebnahmetest_Hardware_durch_Montage"] = anzahl_h.get("Montage_elektrisch", 0) * 0.1
|
self._anzahl["Inbetriebnahmetest_Hardware_durch_Montage"] = anzahl_h.get("Montage_elektrisch", 0) * 0.1
|
||||||
self._anzahl["SPS_Inbetriebsetzung"] = anzahl_h.get("SPS_Inbetriebsetzung", 0)
|
self._anzahl["SPS_Inbetriebsetzung"] = anzahl_h.get("SPS_Inbetriebsetzung", 0)
|
||||||
self._anzahl["PC_Inbetriebsetzung"] = anzahl_h.get("PC_Inbetriebsetzung", 0)
|
self._anzahl["PC_Inbetriebsetzung"] = anzahl_h.get("PC_Inbetriebsetzung", 0)
|
||||||
|
|||||||
+1
-1
@@ -1191,7 +1191,7 @@ class TestObjectMethods(unittest.TestCase):
|
|||||||
hw = rek.HW(Anzahl_HW, mg, eas)
|
hw = rek.HW(Anzahl_HW, mg, eas)
|
||||||
emo = rek.EMO(eas, hw, mg)
|
emo = rek.EMO(eas, hw, mg)
|
||||||
self.assertAlmostEqual(emo.dauer_emo_h(), 241)
|
self.assertAlmostEqual(emo.dauer_emo_h(), 241)
|
||||||
self.assertAlmostEqual(emo.dauer_emo_h_incl_mehrauwand(), 265.1)
|
self.assertAlmostEqual(emo.dauer_emo_h_incl_mehraufwand(), 265.1)
|
||||||
|
|
||||||
def test_dienstleistung(self):
|
def test_dienstleistung(self):
|
||||||
Anzahl_MG = {
|
Anzahl_MG = {
|
||||||
|
|||||||
Reference in New Issue
Block a user