-
Notifications
You must be signed in to change notification settings - Fork 1
/
ModularEarlyData.R
74 lines (55 loc) · 2.07 KB
/
ModularEarlyData.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# MODULE Server
EarlyDataServer <- function(input,
output,
session,
pgsrc,
table,
inpt_date,
inpt_group,
inpt_unit,
inpt_mins,
inpt_interval,
cfg.costcenters) {
EarlyWorkingData <- reactive({
dat <- dplyr::tbl(pgsrc, table) %>%
dplyr::filter(PunchDate_UTC > inpt_date[1] &
PunchDate_UTC < inpt_date[2] &
MinutesEarly > inpt_mins[1] &
MinutesEarly < inpt_mins[2] &
CostCenter %in% inpt_group) %>%
select(-row.names)
if( inpt_unit != "All Units" ) {
dat <- dat %>%
filter(CostCenter == cfg.costcenters[cfg.costcenters$UnitName == inpt_unit, "CostCenter"])
}
collect(dat)
})
EarlyTrendData <- reactive({
if( inpt_interval != "payperiod" ) {
working_data <- EarlyWorkingData() %>%
dplyr::mutate(Date = floor_date(PunchDate_UTC, unit = inpt_interval)) %>%
dplyr::group_by(Date) %>%
dplyr::summarise(Minutes = sum(MinutesEarly)) %>%
dplyr::mutate(Hours = round(Minutes/60, 2), Cost = 30 * Hours)
}else{
working_data <-EarlyWorkingData() %>%
dplyr::mutate(Date = ppend(PunchDate_UTC)) %>%
dplyr::group_by(Date) %>%
dplyr::summarise(Minutes = sum(MinutesEarly)) %>%
dplyr::mutate(Hours = round(Minutes/60, 2), Cost = 30 * Hours)
}
working_data
})
EarlyUnitData <- reactive({
EarlyWorkingData() %>%
inner_join(cfg.costcenters, "CostCenter") %>%
mutate(Date = floor_date(ymd_hms(PunchDate_UTC), unit = "month")) %>%
arrange(Date) %>%
group_by(Date, UnitName) %>%
summarise(Minutes = sum(MinutesEarly)) %>%
spread(UnitName, Minutes)
})
list(Raw = EarlyWorkingData,
Trend = EarlyTrendData,
Unit = EarlyUnitData)
}