Code zu Aufgabe 1+2 - main.py

In [ ]:
%%writefile ....
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
main.py

@author: student
"""

from Unternehmen.Adressen import Koordinaten, Adresse
from Unternehmen.Person import Person
from Unternehmen.Organisation.Verwaltung import Mitarbeiter
from Unternehmen.Organisation import abteilungen
from Unternehmen.Produkte import Produkte, hersteller
from Unternehmen.Produkte.Gewinn import Gewinn
from Unternehmen.Finanzen.Gehalt import Gehaltssumme

for abteilung in abteilungen:
    print(abteilungen[abteilung].statusAbteilung())
    
for indx,von,zu in [(6,abteilungen["Verwaltung"],abteilungen["Verkauf"]),
                    (4,abteilungen["Verwaltung"],abteilungen["Produktion"]),
                    (5,abteilungen["Einkauf"],abteilungen["Produktion"])]:
    ma = von.mitarbeiter[indx]
    von.mitarbeiterWeggang(ma)
    zu.mitarbeiterZugang(ma)
    anrede = "Der Mitarbeiter" if ma.person.geschlecht == "M" else "Die Mitarbeiterin"
    print("{} {} {} ({}) verlässt die Abteilung {} und wechselt zur Abteilung {}".format(anrede,ma.person.vorname,ma.person.nachname,indx,von.name,zu.name))

print("betriebsinterner Wechsel:")
for abteilung in abteilungen:
    print(abteilungen[abteilung].statusAbteilung())

abteilungen["Verkauf"].mitarbeiterWeggang(abteilungen["Verkauf"].leiter)
abteilungen["Verkauf"].leiter = abteilungen["Verkauf"].stellvertreter
abteilungen["Verkauf"].stellvertreter = abteilungen["Verwaltung"].mitarbeiter[6]
koord=Koordinaten(48.312168,8.204793)
person = Person("Anna","Wolf","W","Oberharmersbach","21.05.74")    
adresse = Adresse("Oberharmersbach","Waldowstr. 38","77784",koord)
ma = Mitarbeiter(person,abteilungen["Verkauf"],"Mitarbeiter",2500)
ma.adresse = adresse
abteilungen["Verkauf"].mitarbeiterZugang(ma)

print("Leitungswechsel im Verkauf:")
for abteilung in abteilungen:
    print(abteilungen[abteilung].statusAbteilung())
    
    
gewinn = Gewinn(Produkte)
gehälter = Gehaltssumme(abteilungen)
print("Gewinn: {:.2f}".format(gewinn))
print("Gehalt: {:.2f}".format(gehälter))

print("Gehälter/Gewinn: {:.2f}".format(gehälter/gewinn))

for produkt in Produkte:
    p = Produkte[produkt]
    indx = list(Produkte.keys()).index(produkt)
    p.einkauf(round(gehälter/gewinn)+1,hersteller[indx])
    print("Vorhandene Anzahl von Produkt {} (ID:{}): {}".format(p.name,p.ID,p.anzahl))

Code zu Aufgabe 3 - Fertigung.py

In [ ]:
%%writefile ....
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Module Unternehmen/Produkte/Fertigung.py

@author: student
"""

from Unternehmen.Finanzen.Gehalt import Abrechnung

class Produkt():
    
    def __init__(self,name,ID,mannmonate=0,anzahl=0):
        self.name = name
        self.ID = ID
        self.mannmonate = mannmonate
        self.anzahl = anzahl

    def produktionspreis(self):
        makosten = Abrechnung(abteilungen["Produktion"])        
        self.preis = self.mannmonate * makosten
        
    def verkaufspreis(self,overhead=1.2):
        return self.preis * overhead
        
    def erstelle(self,anzahl):
        self.anzahl += anzahl
        
    def verkauf(self,anzahl,kunde):
        self.anzahl -= anzahl

Code zu Aufgabe 4 - Ergänzung zu main.py

In [ ]:
# Ergänzung zu main.py
FertigungsProdukte = [Produkt("Drohne",657846586,23),
                      Produkt("PiAuto",25634272,12),
                      Produkt("PiServer",6748959546,6)]

for produkt in FertigungsProdukte:
    produkt.erstelle(random.randint(2,10))
    print("Vorhandene Anzahl von Produkt {} (ID:{}): {} (VK: {})".format(produkt.name,produkt.ID,produkt.anzahl,produkt.verkaufspreis()))