entweder oder bei Klemmen und Unterverteilern ergänzt; versch. Motor-Arten ergänzt
This commit is contained in:
File diff suppressed because one or more lines are too long
+83
-21
@@ -2,6 +2,9 @@ import unittest
|
||||
import test_jayjay
|
||||
import math
|
||||
import json
|
||||
|
||||
|
||||
|
||||
JSON_IDENT = 5
|
||||
|
||||
class MG():
|
||||
@@ -1235,11 +1238,12 @@ class HW():
|
||||
"korrektur_et200_sp_eingangskarte_8_do":0,
|
||||
"et200_sp_eingangskarte_16_do":0,
|
||||
# "et200_sp_base_unit_neue_last_mit_potKlemmen":0,
|
||||
"et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last":"et200_sp_base_unit_neue_last_mit_potKlemmen",###
|
||||
"korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen":0,
|
||||
# "et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen":0,
|
||||
# "et200_sp_base_unit_neue_last":0,
|
||||
"korrektur_et200_sp_base_unit_neue_last":-15, ### dann ist die anzahl aber bei -1!
|
||||
# "et200_sp_base_unit_links_gebrueckt":0, ### gesamtkosten müssten doch eigtl bei 11 sein oder?
|
||||
"korrektur_et200_sp_base_unit_neue_last":-15,
|
||||
# "et200_sp_base_unit_links_gebrueckt":0,
|
||||
"korrektur_et200_sp_base_unit_links_gebrueckt":0,
|
||||
|
||||
"SLIO":0,
|
||||
@@ -1285,7 +1289,7 @@ class HW():
|
||||
# "kabel_fuer_klemmkasten_und_bts_60m":0,
|
||||
# "kabel_fuer_1fach_bts_zug_wechseln":0,
|
||||
# "zuleitung_75_m_unterverteiler_4x4mm2_400vac":0,
|
||||
# "zuleitung_75_m_unterverteiler_12x4mm2_24_vdc":0, ### anzahl ist -1
|
||||
# "zuleitung_75_m_unterverteiler_12x4mm2_24_vdc":0,
|
||||
"korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc":-6,
|
||||
# "zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc":0,
|
||||
"korrektur_zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc": 0,
|
||||
@@ -1345,7 +1349,7 @@ class HW():
|
||||
"unterverteiler_fuer_12_rsm_direct": 8258, # 790820302
|
||||
# korrektur_12_rsm_zusaetzlich_im_unterverteiler
|
||||
|
||||
"unterverteiler_fuer_8_rsm_direct": 6736, # 790820301 ### immer 800 abgezogen?
|
||||
"unterverteiler_fuer_8_rsm_direct": 6736, # 790820301
|
||||
# korrektur_8_rsm_zusaetzlich_im_unterverteiler
|
||||
|
||||
"busverteiler_6_rsm_direct": 1747.53, # 790801002
|
||||
@@ -1737,19 +1741,28 @@ class HW():
|
||||
self._anzahl["korrektur_et200_sp_eingangskarte_8_do"] = self.mengen.get("korrektur_et200_sp_eingangskarte_8_do", 0)
|
||||
self._anzahl["et200_sp_eingangskarte_16_do"] = anzahl.get("et200_sp_eingangskarte_16_do", 0)
|
||||
self._anzahl["et200_sp_base_unit_neue_last_mit_potKlemmen"] = anzahl.get("ET200_SP", 0) * (anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0) * 2 +
|
||||
anzahl.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0))
|
||||
self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0)
|
||||
anzahl.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0)) ### entweder oder und bei dem das nicht verwendet wird wird im korrekturfaktor "et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45" * 2 abgezogen
|
||||
if self.mengen.get("et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last" == "et200_sp_base_unit_neue_last"):
|
||||
self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0)
|
||||
self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last", 0) -\
|
||||
anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2
|
||||
elif self.mengen.get("et200_sp_base_unit_neue_last_mit_potKlemmen_or_et200_sp_base_unit_neue_last" == "et200_sp_base_unit_neue_last_mit_potKlemmen"):
|
||||
self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0) -\
|
||||
anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45") * 2
|
||||
self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last", 0)
|
||||
else:
|
||||
self._anzahl["korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last_mit_potKlemmen", 0)
|
||||
self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last", 0)
|
||||
self._anzahl["et200_sp_base_unit_links_gebrueckt_mit_pot_klemmen"] = anzahl.get("ET200_SP", 0) * (math.ceil((anzahl.get("et200_sp_eingangskarte_8_de", 0) +
|
||||
anzahl.get("et200_sp_eingangskarte_8_do", 0))) -
|
||||
anzahl.get("et200_sp_base_unit_neue_last_mit_potKlemmen", 0))
|
||||
self._anzahl["korrektur_et200_sp_base_unit_neue_last"] = self.mengen.get("korrektur_et200_sp_base_unit_neue_last", 0)
|
||||
self._anzahl["et200_sp_base_unit_neue_last"] = anzahl.get("ET200_SP", 0) * (anzahl.get("et_200sp_bundle_profinet_im_155_6pn_st_ba_2xrj45", 0) * 2 +
|
||||
anzahl.get("korrektur_et200_sp_base_unit_neue_last", 0))
|
||||
|
||||
self._anzahl["et200_sp_base_unit_links_gebrueckt"] = anzahl.get("ET200_SP", 0) * (math.ceil((anzahl.get("et200_sp_eingangskarte_16_de", 0) +
|
||||
anzahl.get("et200_sp_eingangskarte_16_do", 0))) -
|
||||
anzahl.get("et200_sp_base_unit_neue_last", 0) +
|
||||
anzahl.get("korrektur_et200_sp_base_unit_links_gebrueckt", 0))
|
||||
anzahl.get("korrektur_et200_sp_base_unit_links_gebrueckt", 0))
|
||||
self._anzahl["korrektur_et200_sp_base_unit_links_gebrueckt"] = self.mengen.get("korrektur_et200_sp_base_unit_links_gebrueckt", 0)
|
||||
|
||||
self._anzahl["SLIO"] = self.mengen.get("SLIO", 0)
|
||||
@@ -1908,7 +1921,7 @@ class HW():
|
||||
anzahl.get("bedienstation_4fach_kpl", 0) +\
|
||||
anzahl.get("bedienstation_6fach_kpl", 0)
|
||||
self._anzahl["kabel_fuer_1fach_bts_zug_wechseln"] = anzahl.get("bedienstation_1fach_kpl", 0)
|
||||
self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = self.mengen.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0)
|
||||
self._anzahl["korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = self.mengen.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0) ###entweder oder
|
||||
self._anzahl["zuleitung_75_m_unterverteiler_12x4mm2_24_vdc"] = anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) +\
|
||||
anzahl.get("unterverteiler_fuer_1flyer", 0) +\
|
||||
anzahl.get("unterverteiler_fuer_2flyer", 0) +\
|
||||
@@ -1921,7 +1934,7 @@ class HW():
|
||||
anzahl.get("unterverteiler_fuer_12_rsm_direct", 0) +\
|
||||
anzahl.get("unterverteiler_fuer_8_rsm_direct", 0) +\
|
||||
anzahl.get("busverteiler_8_rsm_direct", 0) +\
|
||||
anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0)
|
||||
anzahl.get("korrektur_zuleitung_75_m_unterverteiler_12x4mm2_24_vdc", 0) ### entweder oder bei dem, das nicht vcerwendet wird ist der korrakturfaktor self._anzahl["zuleitung_75_m_unterverteiler_4x4mm2_400vac"]
|
||||
self._anzahl["zuleitung_75_m_unterverteiler_12x2_5mm2_24_vdc"] = anzahl.get("unterverteiler_fuer_1neuenhauser_pm", 0) +\
|
||||
anzahl.get("unterverteiler_fuer_1flyer", 0) +\
|
||||
anzahl.get("unterverteiler_fuer_2flyer", 0) +\
|
||||
@@ -2375,14 +2388,31 @@ class EMO():
|
||||
def dauer_emo_incl_mehrauwand(self):
|
||||
return (self.dauer_emo() * (1 + self._mehraufwand))
|
||||
|
||||
class Anschlussl():
|
||||
class Anschlussl(): ### stimmt das so?
|
||||
antrieb_cos_phi = {
|
||||
0.09:0.77,
|
||||
0.12:0.77,
|
||||
0.18:0.77,
|
||||
0.37:0.7,
|
||||
0.55:0.77,
|
||||
0.75:0.73,
|
||||
1.1:0.81
|
||||
}
|
||||
antrieb_strom = {
|
||||
0.09:0.4,
|
||||
0.12:0.55,
|
||||
0.18:0.75,
|
||||
0.37:1.24,
|
||||
0.55:1.62,
|
||||
0.75:1.75,
|
||||
1.1:2.55
|
||||
}
|
||||
mengen = {
|
||||
#auskommentiert, was später berechnet wird
|
||||
#"Anschlussspannung":400, #Volt
|
||||
"Motor_Art":0.12, #kilo Watt ### dasselbe wie Antrieb? und eigtl regelmäßig oder immer anders?
|
||||
"Motor_Art":0.12, #kilo Watt
|
||||
#"Anzahl_Motor":48,
|
||||
"Antrieb":0.12, #kilo Watt
|
||||
"Strom_Motor":0.55, #Ampere
|
||||
#"Strom_Motor":0.55, #Ampere
|
||||
#"Summe_Strom_Motor":26.4,
|
||||
#"cos_phi":0.77,
|
||||
#"Versorgung_SPS_und_Peripherie":3, #Ampere
|
||||
@@ -2401,7 +2431,7 @@ class Anschlussl():
|
||||
self._GZE_Faktor = 0.5
|
||||
self._Res_Faktor = 0.1
|
||||
self._Anschlussspannung = 400
|
||||
self._cos_phi = 0.77 ### wird nicht verwendet
|
||||
self._cos_phi = self.antrieb_cos_phi.get(self.mengen.get("Motor_Art")) ### wird nicht verwendet, Leistungsfaktor
|
||||
self._x_Wurzel_3 = 1.732
|
||||
self._Versorgung_SPS_und_Peripherie = 3
|
||||
self._ANZAHL = anzahl
|
||||
@@ -2412,7 +2442,7 @@ class Anschlussl():
|
||||
mg.zusammenfassung().get("RA_bi_ohne_SPS-Ansteuerung", 0) +\
|
||||
mg.zusammenfassung().get("RA_bi_abhebbar", 0) +\
|
||||
mg.zusammenfassung().get("Doppelstreckenantrieb", 0)
|
||||
self._ANZAHL["Summe_Strom_Motor"] = self.mengen.get("Strom_Motor") *\
|
||||
self._ANZAHL["Summe_Strom_Motor"] = self.antrieb_strom.get(self.mengen.get("Motor_Art")) *\
|
||||
anzahl.get("Anzahl_Motor")
|
||||
self._ANZAHL["Summe_Strom_Motor_SPS_Peripherie"] = anzahl.get("Summe_Strom_Motor") +\
|
||||
self._Versorgung_SPS_und_Peripherie
|
||||
@@ -2443,7 +2473,7 @@ class Anschlussl():
|
||||
if PS > 1 or PS < 0:
|
||||
raise Exception("Falsche Spanne")
|
||||
self._Res_Faktor = PS
|
||||
class Ergebnis(): ###f was sind die grünen zahlen auf dem deckblatt?
|
||||
class Ergebnis():
|
||||
preis_kostenart_h = {
|
||||
"E_Werkstatt": 32,
|
||||
"Schaltschrankbau_extern_Mehrkosten": 0, #Wenn Schaltschrankbau extern die Mehrkosten eintragen Standard = 18 € Hier wird nur die Diverenz zwischen Kosten intern(32€) und dem externen Kosten eingetragen. Beispiel: extern = 50€ intern 32 € = Wert: 18€
|
||||
@@ -2551,7 +2581,7 @@ class Ergebnis(): ###f was sind die grünen zahlen auf dem deckblatt?
|
||||
def get_cost_of(self, partname):
|
||||
return (self._anzahl.get(partname) * self.preis_kostenart_h.get(partname))
|
||||
def summary_costs(self, hw):
|
||||
summary = {}
|
||||
summary = {}
|
||||
keys_costs = {
|
||||
"E_Werkstatt",
|
||||
"Schaltschrankbau_extern_Mehrkosten",
|
||||
@@ -2575,10 +2605,40 @@ class Ergebnis(): ###f was sind die grünen zahlen auf dem deckblatt?
|
||||
for k in keys_costs:
|
||||
cost = self._anzahl[k] * self.preis_kostenart_h[k]
|
||||
summary.update({k: round(cost, 2)})
|
||||
|
||||
summary.update({"Installationsmaterial_vor_Ort": round(hw.summe_vorort(), 2)})
|
||||
summary.update({"Material_in_LL": round(hw.summe_in_LL(), 2)})
|
||||
summary.update({"GESAMT": round(self.get_sum_of_costs(hw), 2)})
|
||||
print(summary)
|
||||
return summary
|
||||
|
||||
#def deckblatt(self):
|
||||
# keys_sivas = (
|
||||
# ("E_Werkstatt","10"),
|
||||
# ("Schaltschrankbau_extern_Mehrkosten","121"),
|
||||
# ("Dienstleistung_in_LL","43"),
|
||||
# ("Pflichtenheft","40"),
|
||||
# ("SPS_Programmierung","46/100"),
|
||||
# ("PC_Programmierung_Visualisierung","49/110"),
|
||||
# ("Montage_elektrisch","25"),
|
||||
# ("Inbetriebnahmetest_Hardware_durch_Montage","26"),
|
||||
# ("SPS_Inbetriebsetzung","47/101"),
|
||||
# ("PC_Inbetriebsetzung","49"),
|
||||
# ("Inbetriebnahmeunterstützung_durch_Montage","26"),
|
||||
# ("Dokumentation","65"),
|
||||
# ("Bedienungsanleitung_Emmert","65"),
|
||||
# ("Schulung_vor_Ort_beim_Kunden","26"),
|
||||
# ("Abnahme","26"),
|
||||
# ("SPS_Anlagenbetreuung","46"),
|
||||
# ("PC_Anlagenbetreuung","49"),
|
||||
# ("Anlagenbetreuung_durch_Montage","26")
|
||||
# )
|
||||
#for row in keys_sivas: ###ergänzen
|
||||
#summary.setdefault(row[0],[]).append(row[1])
|
||||
#siv = keys_sivas.get(k)
|
||||
#summary.append(siv)
|
||||
#df = pd.DataFrame.from_dict(data=summary, orient='index', columns=['Kostenart', 'Aufwand'])
|
||||
#df.to_excel("output.xlsx", sheet_name="Kostenaufstellung")
|
||||
|
||||
|
||||
class TestObjectMethods(unittest.TestCase):
|
||||
|
||||
@@ -4142,9 +4202,11 @@ class TestObjectMethods(unittest.TestCase):
|
||||
self.assertEqual(erg.get_cost_of("SPS_Anlagenbetreuung"), 0)
|
||||
self.assertEqual(erg.get_cost_of("PC_Anlagenbetreuung"), 0)
|
||||
self.assertEqual(erg.get_cost_of("Anlagenbetreuung_durch_Montage"), 0)
|
||||
self.assertEqual(erg.get_sum_of_costs(hw), 104833.16666666666)
|
||||
erg.summary_costs(hw)
|
||||
self.assertAlmostEqual(erg.get_sum_of_costs(hw), 104833.16666666666)
|
||||
summary = erg.summary_costs(hw) ### soll ich pro Register noch eine Möglichkeit ergänzen, manuell Kosten abzuziehen? Bei Jayjay zb in der HW waren es 800€ weniger als zu erwarten
|
||||
|
||||
# df = pd.DataFrame.from_dict(data=summary, orient='index', columns=['Aufwand'])
|
||||
# df.to_excel("output.xlsx", sheet_name="Kostenaufstellung")
|
||||
def test_Unittests():
|
||||
unittest.main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user