SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 13.03.2004, 01:45:54
Benutzerbild von flobee
flobee flobee ist offline
Junior Member
 
Registriert seit: Apr 2002
Beiträge: 284
kalender, arbeitsplanungs generator

hallo, in der hoffnung das dieses das richtige forum ist....

ich habe eine frage die mich schön etwas länger beschäftigt, aber "gedanklich" nicht weiterkomme und hoffe das vielleicht jemand mir lösungsvorschläge anbieten kann!?

es geht dabei um die erstellung eines termin/arbeits plans.
(ich arbeite in der gastronomie und jeden monat gibt es einen termin plan. gedanklich ist die erstellung eigentl. recht komplex und ich frage mich wie komplex die technische umsetzung wirklich ist!)

die variablen:
* x arbeitstage sind bekannt (öffnungszeiten: z.b. wochenende sowie mögl. feiertage)
* ich habe N mitarbeiter
* die anz. der mitarbeiter pro öffnungstag ist variabel
* tage an denen ein mitarbeiter nicht zur verfügung steht kenne ich.
* ich habe eine liste (preset) wie oft ich einen mitarbeiter pro öffnungstag einsetzen möchte
** optional: ein mitarbeiter soll nicht unbedingt zwei tage hintereinander arbeiten

ausgabe:
es soll ein monatsplan angezeigt werden bzw. alle möglichen variationen.


kann jemand helfen oder eine einschätzung geben?
gruß flobee
__________________
~~~~~~~~~~
Mit Zitat antworten
  #2  
Alt 20.03.2004, 09:42:08
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Soll der ganze Plan mit Hilfe eines Zufallsgenerators erstellt werden oder willst du die Daten selbst eintragen?
Mit Zitat antworten
  #3  
Alt 20.03.2004, 10:02:30
Wauzy Wauzy ist offline
Anfänger
 
Registriert seit: Sep 2002
Beiträge: 84
Also so wie ich ihn vertsehe soll das Script den Plan anhand der Parameter generieren.

Das würde bestimmt funktionieren, ist aber sicherlich nicht ganz einfach. Den Plan dynamisch erstellen lassen mit den obigen Parametern geht bestimmt noch ganz gut, aber wenn dann eine Änderung drin gemacht wird kommt es ja schnell zu Verschiebungen und das wird dann kompliziert.

Hast du dich schon mal auf Seiten umgeschaut wo fertige Scripte angeboten werden?

hotscripts.com zB hat sehr viel Auswahl.

Gruß
Wauzy
Mit Zitat antworten
  #4  
Alt 20.03.2004, 10:55:32
Benutzerbild von flobee
flobee flobee ist offline
Junior Member
 
Registriert seit: Apr 2002
Beiträge: 284
Zitat:
Original geschrieben von xabbuh
... willst du die Daten selbst eintragen?
Hallo!
also bei einem Monat gibts ja nicht "so" viele datensätze und dadurch das ich vorherweis wer an welchem tag nicht arbeiten soll macht es ja in eine richtung schon leicht.
ja: und die freien tage sollen dann zufällig gewählt werden.
und je nach anzahl der mitarbeiter müsst sich das alles im rahmen bleiben. allerdings steh ich hier wie der ochs vorm berg... :-) sowas als freies script gibts wohl eher nicht.

vielleicht kann jemand helfen wie ich mich am besten an diese aufgabe herantasten kann. denn einfach loslegen wird ein endlos langes script und wer weiss ob das dann auch läuft :-)
mir ist die mögliche strucktur nicht ganz klar und wie ich die objekte der dinge zusammen bringen kann.

gruß flobee
__________________
~~~~~~~~~~
Mit Zitat antworten
  #5  
Alt 20.03.2004, 13:44:18
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Vielleicht etwas in diese Richtung hier:

PHP-Code:
//ARRAY, IN DEM DIE TAGE GESPEICHERT SIND, AN DENEN DAS RESTAURANT GESCHLOSSEN IST
$urlaubstage=array("31.03.""05.03")

//ARRAY, IN DEM DIE NAMEN DER MITARBEITER GESPEICHERT SIND
$mitarbeiter=array("Manfred""Helmut""Frauke""flobee");

//ZUFALLESGENERATOR STARTEN
mt_srand((double)microtime()*1000000);

echo 
"<table>";
//KALENDER ERZEUGEN
for($i=1$i<=date("t"); $i++){
    echo 
"<tr>";
    echo 
"<td>" str_pad($i2"0"STR_PAD_LEFT) . "</td>";

    
//WENN RESTAURANT GESCHLOSSEN
    
if($in_array(str_pad($i2"0"STR_PAD_LEFT), $urlaubstage)){
        echo 
"<td>Restaurant geschlossen</td>";
        }
    
//SONST MITARBEITER EINFÜGEN
    
else{
        
$x=mt_rand(1count($mitarbeiter));
        echo 
"<td>" $mitarbeiter[$x-1] . "</td>";
        }

    echo 
"</tr>";
    }
echo 
"</table>"
Mit Zitat antworten
  #6  
Alt 20.03.2004, 14:48:18
Benutzerbild von flobee
flobee flobee ist offline
Junior Member
 
Registriert seit: Apr 2002
Beiträge: 284
yo so leicht kommts!... :-) aber die zufallszahlen stimmen nicht:
den es gibt zwei regeln: tage an denen der mitarbeiter nicht kann oder nicht soll , die öffnungs tage und ein mitarbeiten soll nach möglichkeit keine folge tage bekommen... und da wird komplitziert...

aber schon mal vielen dank!

ps: str_pad() sehr cool! das habe ich gesucht!!! round($x, 2) :-)
__________________
~~~~~~~~~~

Geändert von flobee (20.03.2004 um 14:51:07 Uhr)
Mit Zitat antworten
  #7  
Alt 21.03.2004, 09:57:54
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
Eine umständliche Möglichkeit zwar, das Problem zu lösen, dass ein Mitarbeiter nur eingeteilt wird, wenn er auch kann. Es wird ein Array $mitarbeiter gebildet. In dem Array ist ein Array für jeden Tag des Monats enthalten. Und in diesem Array müssen jeweils alle Mitarbeiter aufgeführt werden, die an diesem Tag auch könnten:

PHP-Code:
$mitarbeiter[01]=array("Manfred""Heinz""Marianne");
$mitarbeiter[02]=array("Manfred""Marianne");        //HEINZ HAT AM 2. DES MONATS ALSO FREI
$mitarbeiter[03]=array("Marianne");

// USW. FÜR DIE RESTLICHEN TAGE DES MONATS 
Anschließend kannst du den Mitarbeiter so auswählen:

PHP-Code:
if($in_array(str_pad($i2"0"STR_PAD_LEFT), $urlaubstage)){
        echo 
"<td>Restaurant geschlossen</td>";
        }
    
//SONST MITARBEITER EINFÜGEN
    
else{
        
$x=mt_rand(1count($mitarbeiter[str_pad($i2"0"STR_PAD_LEFT)]));
        
$schicht=$mitarbeiter[str_pad($i2"0"STR_PAD_LEFT)][$x-1]
        echo 
"<td>" $schicht "</td>";
        } 
Um dann zu verhindern, dass dieser Mitarbeiter am nächsten Tag wieder eine Schicht bekommt, müsstest du aus dem Array für den nächsten Tag das Element mit diesem Mitarbeiter entfernen:

PHP-Code:
$z=$i+1;
$akt_array=$mitarbeiter[str_pad($z2"0"STR_PAD_LEFT)];
if(
in_array($schicht$akt_array){
        
$pos=array_search($schicht$akt_array);
        unset(
$array[$pos]);
        } 
Das Beispiel ist nicht getestet, aber eigentlich sollte es so funktionieren, denke ich.

Geändert von xabbuh (21.03.2004 um 13:27:16 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:23:38 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt