# monthly report # by Vladimir Batagelj, January 2024 # parameters # U <- c("L","P"," ") ustanova <- "Inštitut za matematiko, fiziko in mehaniko"; U <- c("L"); CSV <- "batageljIMFMjan24.csv"; TEX <- "batageljIMFMjan24.tex"; # ustanova <- "Univerza na Primorskem"; U <- c("P"); # CSV <- "batageljUPjan24.csv"; TEX <- "batageljUPjan24.tex"; delavec <- "Vladimir Batagelj" mesec <- "Januar"; leto <- "2024" wdir <- "C:/Users/vlado/docs/papers/2024/biro" setwd(wdir) hmin <- function(h,m) paste(h,formatC(m,width=2,flag="0"),sep=":") D <- read.table("jan.csv",sep="|",skip=1,head=TRUE) D <- D[!is.na(D$sh),] dc <- D$d[1]; mc <- D$m[1]; yc <- D$y[1] Mode <- c(D="delo od doma",O="dopust",B="bolniška",P="službena pot", I="delo na IMFM") Dweek <- c(Po="ponedeljek",To="torek",Sr="sreda",Če="četrtek", Pe="petek",So="sobota",Ne="nedelja") csv <- file(CSV,"w",encoding="UTF-8") tex <- file(TEX,"w",encoding="UTF-8") BOM <- '\xEF\xBB\xBF'; cat(BOM,file=tex); cat(BOM,file=csv) # pieces of text dhead <- r"(% poročilo IMFM \documentclass[11pt]{article} \usepackage[utf8]{inputenc} \usepackage{geometry} \geometry{a4paper,landscape,margin=12mm} \usepackage{graphicx} \begin{document} \centerline{\textbf{\Large EVIDENCA O IZRABI DELOVNEGA ČASA}}\hspace{12pt} \noindent )" thead <- r"( Delavčev mesečni fond ur:\\[4mm] \setlength{\arrayrulewidth}{0.25mm} \begin{tabular}{l|l|l|r|c|c|c|c|c|} \hline\hline Datum & Dan & Vrsta dela& Pričetek & Odmor & Zaključek & Opravljeno & Presežek & Skupaj \\ & & & ur:min & & ur:min & ur:min & primanjkljaj & \\ \hline\hline )" dtail <- r"( \hline \end{tabular}\medskip \noindent Delavec s podpisom potrjujem verodostojnost evidence o izrabi delovnega časa \end{document} )" # processing cat(ustanova,": ",delavec," - ",mesec," ",leto,'\n',sep='',file=csv) cat('d,dw,m,s,p,e,w,r,t\n',file=csv) cat(dhead, "Delodajalec: \\textbf{",ustanova,"}\\\\\n", "Delavec: ",delavec,"\\\\Mesec: ",mesec,"\\\\Leto: ",leto,"\\\\", thead,sep="",file=tex) sP <- 0; sL <- 0; sO <- 0; ww <- 0; wt <- 0 dc <- D$d[1]; mc <- D$m[1]; yc <- D$y[1] for(i in 1:nrow(D)){ if((D$dw[i]=="Po")&&(i>1)) {week <- hmin(ww%/%60,ww%%60) cat("\\hline \\multicolumn{6}{r|}{Tedenski seštevek} ", " & ",week," & & \\\\ \\hline\n",sep="",file=tex); ww <- 0} if(!is.na(D$d[i])) {dc <- D$d[i]; dwc <- D$dw[i]} wh <- D$eh[i]-D$sh[i] if(D$sh[i]>D$eh[i]) wh <- wh+24 wm <- D$em[i]-D$sm[i]; w <- wh*60 + wm cat(i,D$sh[i],D$sm[i],D$eh[i],D$em[i],D$t[i],wh,wm,w,w/60,"\n") datum <- paste(dc,mc,yc,sep="."); work <- hmin(w%/%60,w%%60) start <- hmin(D$sh[i],D$sm[i]); end <- hmin(D$eh[i],D$em[i]) if(D$t[i] %in% U) { cat(datum," & ",Dweek[dwc]," & ",Mode[D$v[i]], " & ",start," & NE & ",end," & ",work," & & \\\\", sep="",file=tex); ww <- ww+w; wt <- wt+w cat(datum,",",Dweek[dwc],",",Mode[D$v[i]],",",start,",NE,",end, ",",work,",,\n",sep='',file=csv)} if(D$t[i]=="P") sP <- sP+w else if(D$t[i]=="L") sL <- sL+w else sO <- sO+w } cat("\\hline \\multicolumn{6}{l|}{SKUPAJ mesečni seštevek} ", " & ",hmin(wt%/%60,wt%%60)," & & \\\\ \\hline\n",sep="",file=tex) cat("sP = ",hmin(sP%/%60,sP%%60)," sL = ",hmin(sL%/%60,sL%%60), " sO = ",hmin(sO%/%60,sO%%60),"\n") cat(dtail,file=tex) close(tex); close(csv)