Sto lavorando a una domanda in cui ho bisogno di pianificare automaticamente posti di lavoro per i membri a rotazione. Non sono molto bravo a spiegare le regole, quindi ecco alcuni dati per dare una mano:
Posizioni: un titolo di lavoro, con una normativa, come il lunedì e il mercoledì settimanali.
Categorie: un insieme di posizioni
Gruppi: Un'altra serie di posizioni. Posizioni dello stesso gruppo non possono essere assegnati lo stesso giorno
Membri: gli utenti assegnati a posizioni su una determinata data.
Per ogni data del mese, i membri vengono assegnati alle posizioni (sia in ordine ascendente). Se un membro è assegnato ad una posizione in una categoria, la prossima volta che una posizione nella stessa categoria viene in su, il prossimo membro in ordine alfabetico (o l'inizio della lista) ottiene per esempio assegnati.
Membri: M1, M2, M3, M4
posizioni nella Categoria C1: P1, P2, P3
membri nella posizione P1: M1, M2, M3, M4
membri nella posizione P2: M1, M2, M3
membri nella posizione P2: M1, M3, M4
Se M1 è assegnato per P1, P2 se viene dopo, verrà assegnato M2. Un ulteriore livello di complessità è introdotto in cui, se P3 viene dopo, invece, M3 viene assegnato. Il sistema deve tenere traccia del fatto che M2 è 'saltato' e assegnare M2 successiva se disponibile, quindi assegnare M4 prossimo, o attendere finché arriva a una posizione in cui M2 è disponibile (questo diventa inoltre complessa quando ci sono molti 'saltato dei membri).
Un membro sarà inoltre saltato se ha indicato che non sarà disponibile in quella data. Il sistema ha bisogno di inserire la priorità sui membri saltati, in qualche modo identificarli quando sono venuti fuori e poi passare alla persona successiva logica nella lista. Skipping vale anche per i gruppi a causa della data scontri.
Ho già una temporanea soluzione [e disordinato], che ho capito non è più anche se ho un sacco di commenti in esso che spiegano ogni passo. Le sue debolezze sono nel trattare con i membri saltati.
Se si dovesse andare a codificare questo come è possibile andare a questo proposito? Sto attuazione del presente in PHP, ma pseudocodice avrebbe funzionato pure.













