def _main(cmd): from _TFL.load_config_file import load_config_file globs = globals() for cf in cmd.Config: load_config_file(cf, globs) if cmd.year: ptf = cmd.ptf year = cmd.year Y = CAL.Year(year) days = Y.days cm_d = Y.dmap[(year, 12, 24)] d_range = "" if cmd.after: days = tuple(d for d in days if d.date >= cmd.after) if cm_d.date < cmd.after: cm_d = None d = cmd.after d_range = "%02d.%02d." % (d.date.day, d.date.month) if not cmd.before: d_range = "%s-31.12." % (d_range,) if cmd.before: days = tuple(d for d in days if d.date <= cmd.before) if cm_d and cm_d.date > cmd.before: cm_d = None if not cmd.after: d_range = "01.01" d = cmd.before d_range = "%s-%02d.%02d" % (d_range, d.date.day, d.date.month) if d_range: d_range = " [%s]" % (d_range,) holidays = sum((d.is_weekday and bool(d.is_holiday)) for d in days) * ptf workdays = sum((d.is_weekday and not d.is_holiday) for d in days) * ptf vp = sum(float(d.is_weekday and not d.is_holiday) for d in days) / sum( float(d.is_weekday and not d.is_holiday) for d in Y.days ) vacation = cmd.vacation * vp * ptf christmas = 0 if cm_d: christmas = 2 * (cm_d.is_weekday and not cm_d.is_holiday) holidays += christmas workdays -= christmas workdays -= vacation form = "%s%s: %.0f Arbeitstage, %.0f Feiertage" ", %.0f Urlaubstage, %.0f Soll-Stunden" print(form % (year, d_range, workdays, holidays, vacation, workdays * cmd.hpd)) if cmd.argv: splitter = TFL.Getter.date.week if cmd.Weekly else TFL.Getter.date.month P = load_periods(cmd.argv, splitter, cmd.before, cmd.after) tot = str(P) print(P.format % ("Periode", "Arbeit [h]", "Krank [h]", "Total [h]", "Urlaubstage")) if not cmd.quiet: for d in P.entries: print(d) print("=" * len(tot)) print(tot)
def load_user_config (* config_fn) : from _TFL import sos from _TFL.load_config_file import load_config_file if not config_fn : config_fn = ("~", "PMA", ".config.py") load_config_file (sos.path.join (* config_fn), dict (PMA = PMA))
def _main (cmd) : from _TFL.load_config_file import load_config_file globs = globals () for cf in cmd.Config : load_config_file (cf, globs) if cmd.year : ptf = cmd.ptf year = cmd.year Y = CAL.Year (year) days = Y.days cm_d = Y.dmap [(year, 12, 24)] d_range = "" if cmd.after : days = tuple (d for d in days if d.date >= cmd.after) if cm_d.date < cmd.after : cm_d = None d = cmd.after d_range = "%02d.%02d." % (d.date.day, d.date.month) if not cmd.before : d_range = "%s-31.12." % (d_range, ) if cmd.before : days = tuple (d for d in days if d.date <= cmd.before) if cm_d and cm_d.date > cmd.before : cm_d = None if not cmd.after : d_range = "01.01" d = cmd.before d_range = "%s-%02d.%02d" % (d_range, d.date.day, d.date.month) if d_range : d_range = " [%s]" % (d_range, ) holidays = sum \ ((d.is_weekday and bool (d.is_holiday)) for d in days) * ptf workdays = sum \ ((d.is_weekday and not d.is_holiday) for d in days) * ptf vp = \ ( sum (float (d.is_weekday and not d.is_holiday) for d in days) / sum (float (d.is_weekday and not d.is_holiday) for d in Y.days) ) vacation = cmd.vacation * vp * ptf christmas = 0 if cm_d : christmas = 2 * (cm_d.is_weekday and not cm_d.is_holiday) holidays += christmas workdays -= christmas workdays -= vacation form = \ ( "%s%s: %.0f Arbeitstage, %.0f Feiertage" ", %.0f Urlaubstage, %.0f Soll-Stunden" ) print \ ( form % (year, d_range, workdays, holidays, vacation, workdays * cmd.hpd) ) if cmd.argv : splitter = TFL.Getter.date.week if cmd.Weekly else TFL.Getter.date.month P = load_periods (cmd.argv, splitter, cmd.before, cmd.after) tot = str (P) print \ ( P.format % ("Periode", "Arbeit [h]", "Krank [h]", "Total [h]", "Urlaubstage") ) if not cmd.quiet : for d in P.entries : print (d) print ("=" * len (tot)) print (tot)