Skip to content

Instantly share code, notes, and snippets.

@cuciferus
Created August 12, 2015 09:37
Show Gist options
  • Save cuciferus/b293788a1eea81776c20 to your computer and use it in GitHub Desktop.
Save cuciferus/b293788a1eea81776c20 to your computer and use it in GitHub Desktop.
programZi([Zi, Luna, An], DurataConsultului) ->
Programari = boss_db:find(programare, [{data, 'equals', string:join([An, Luna, Zi], "-")}], [{order_by, ora}]),
Pacienti = [ boss_db:find(PacientId) || {programare, _,_,_,_,PacientId} <-Programari],
OreInterval = [{Ora, Minut, DurataConsultului} || Ora<-lists:seq(1,12), Minut<-lists:seq(1,60,DurataConsultului)],
ProgramulZileiCuProgramari = lists:zipwith(combinaOreleCuProgramarile(OreInterval, Programari),OreInterval, Programari),
{json, [{programari, Programari}, {pacienti, Pacienti}, {program, ProgramulZileiCuProgramari} ]}.
combinaOreleCuProgramarile(OraGenerata = {OraMomentului, MinutulMomentului, DurataConsultului},
Programare = {programare, _Id, _Data, {OraProgramarii, MinutulProgramarii, _SecundaProgramarii}, DurataProgramarii, Pacient})
when OraMomentului == OraProgramarii ->
if
(MinutulMomentului+DurataConsultului < MinutulProgramarii) and (MinutulMomentului > MinutulProgramarii)-> Programare;
true -> OraGenerata
end;
combinaOreleCuProgramarile(OraGenerata, _Programare) -> OraGenerata.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment