Hallo Leute,
ich habe folgendes Problem:
Zuerst einmal vielleicht, dass die Datentabellen noch nicht produktiv aufgebaut sind also kann hier noch das Richtige gesetzt bzw. ver�ndert werden.
Ich muss eine Produktionsdauerberechnung durchf�hren die folgende Randbedingungen enth�lt.
Es gibt eine Tabelle in der die aktive Produktionsdauer hinterlegt ist (z.B Startzeit 08:00 / Endzeit 22:00 ), k�nnte ich also dementsprechend als TIME Feld hinterlegen.
Ich kann die Produktionsdauer nicht in einem TIME Feld erfassen, da sie �ber 24 Stunden sein kann. ( z.B 30:00 h )
Der Planer verplant nun die Produktion anhand des Datums und einer Startzeit (z.B 02.02.2012 / 11:00 Uhr )
Und jetzt genau steh ich auf dem Schlauch da ich mir nicht im klaren bin, wie ich die Produktionsdauer so hinbiegen kann, dass ich auch mit ihr rechnen kann.
Sprich mir fehlt das Speicherformat der Produktionsdauer und die dann folgende Typumwandlung, damit ich damit auch rechnen kann.
Also, die Produktion würde von heute 08Uhr bis morgen 22Uhr gehen, die Maschinenzeit ist aber nur 8-22, der Bereich von heute 22 bis morgen 22Uhr bleibt übrig, das ist:
Version 9.1
Mein Problem ist die Produktionsdauer, da ich die ja nicht in ein TIME Feld reinpacken kann, da sie größer als 24h sein kann.
Anhand meiner Beispieldaten nochmals das Szenario
In der Stammdatenpflege wird die Produktionsdauer x festgelegt.
Die Planung bekommt den Datensatz und schaut sich den Produktionsplan an.
Sie setzen den Produktionsstart auf 02.02.2012 / 11:00 Uhr
Jetzt will er natürlich sehen wann die Produktion fertig ist
Dh: unter Berücksichtigung der realen Arbeitszeit 08:00 - 22:00 Uhr
02.02 / 11:00 - 22:00 / 11h / Rest 19h
03.02 / 08:00 - 22:00 / 14h / Rest 5h
04.02 / 08:00 - 13:00 / Ende
dh. ich muss ihm 04:02 / 13:00 auf den Schrim bringen, wobei ich wie gesagt ein Problem habe mit dem Format der Produktionsdauer, da diese ja größer 24:00 sein kann.
Da ich keine Chance habe auf den RANGE Wert zu warten hätte ich vielleicht doch noch eine Frage.
Die Logik dahinter denke ich mal ist mir klar, nur an der Umsetzung in Postgres habert es noch.
Ausgehend von meinem obigen Beispiel würde ich ja jetzt meiner Meinung nach folgendes berechnen
Wenn die Startzeit ( 11:00 ) + Produktionsdauer ( 30:00 ) > als Schichtende ( 22:00 Uhr ) ist,
setze Datum = Datum +1
Produktionsende = Schichtende ( 22:00 ) - Startzeit (11:00 ) + ( Schichtende (22:00) - Schichtanfang (08:00) )
damit hab ich dann den Tag durch und den Rest der Produktionszeit.
Wie kann ich das verpacken, dass ich so lange weiterrechne bis das Produktionsende < dem Schichtende ist damit ich das tatsächlieche Enddatum/Zeit habe ?
Du könntest das in eine Funktion packen. Du könntest auch z.B. mit INT-Werten für die Minuten (oder Sekunden, ich kenne Deine Zeitauflösung nicht) rechnen und dann mit numerischen Operatoren wie / und % arbeiten. Mindestens tausend Wege …