@@ -126,69 +126,112 @@ export class TimePlanningsTableComponent implements OnInit, OnChanges {
126126
127127 getCellClass ( row : any , field : string ) : string {
128128 try {
129- const planHours = row . planningPrDayModels [ field ] ?. planHours ;
130- const nettoHoursOverrideActive = row . planningPrDayModels [ field ] ?. nettoHoursOverrideActive ;
131- const plannedStarted = row . planningPrDayModels [ field ] ?. plannedStartOfShift1 ;
132- let workDayStarted = row . planningPrDayModels [ field ] ?. start1StartedAt || row . planningPrDayModels [ field ] ?. start2StartedAt ;
133- let workDayEnded = row . planningPrDayModels [ field ] ?. workDayEnded ;
134- if ( nettoHoursOverrideActive && nettoHoursOverrideActive ) {
135- // If netto hours override is active, use the override value
129+ const cellData = row . planningPrDayModels [ field ] ;
130+ if ( ! cellData ) {
131+ return '' ;
132+ }
133+
134+ const { planHours, nettoHoursOverrideActive, plannedStartOfShift1, message, workerComment } = cellData ;
135+ let workDayStarted = cellData . start1StartedAt || cellData . start2StartedAt ;
136+ let workDayEnded = cellData . workDayEnded ;
137+
138+ // If netto hours override is active, use the override value
139+ if ( nettoHoursOverrideActive ) {
136140 workDayStarted = true ;
137141 workDayEnded = true ;
138142 }
139- const message = row . planningPrDayModels [ field ] ?. message ;
140- const workerComment = row . planningPrDayModels [ field ] ?. workerComment ;
143+
144+ // Case 1: Has planned hours
141145 if ( planHours > 0 ) {
142146 if ( workDayStarted ) {
143- //console.log('getCellClass', row, field, planHours, workDayStarted, workDayEnded);
144147 return workDayEnded ? 'green-background' : 'grey-background' ;
145- }
146- else {
148+ } else {
147149 return 'grey-background' ;
148150 }
149151 }
150- else {
151- return workDayStarted ? workDayEnded ? 'green-background' : 'red-background' : plannedStarted ? 'grey-background' : message || workerComment ? 'grey-background' : 'white-background' ;
152- }
153- }
154- catch ( e ) {
155- //console.error(e);
152+
153+ // Case 2: No planned hours
154+ return this . getCellClassForNoPlanHours ( workDayStarted , workDayEnded , plannedStartOfShift1 , message , workerComment ) ;
155+ } catch ( e ) {
156156 return '' ;
157157 }
158158 }
159159
160+ private getCellClassForNoPlanHours (
161+ workDayStarted : boolean ,
162+ workDayEnded : boolean ,
163+ plannedStarted : any ,
164+ message : any ,
165+ workerComment : any
166+ ) : string {
167+ if ( workDayStarted ) {
168+ return workDayEnded ? 'green-background' : 'red-background' ;
169+ }
170+
171+ if ( plannedStarted ) {
172+ return 'grey-background' ;
173+ }
174+
175+ if ( message || workerComment ) {
176+ return 'grey-background' ;
177+ }
178+
179+ return 'white-background' ;
180+ }
181+
160182 getCellTextColor ( row : any , field : string ) : string {
161- const planHours = row . planningPrDayModels [ field ] ?. planHours ;
162- const nettoHoursOverrideActive = row . planningPrDayModels [ field ] ?. nettoHoursOverrideActive ;
163- const plannedStarted = row . planningPrDayModels [ field ] ?. plannedStartOfShift1
164- let workDayStarted = row . planningPrDayModels [ field ] ?. start1StartedAt || row . planningPrDayModels [ field ] ?. start2StartedAt ;
165- let workDayEnded = row . planningPrDayModels [ field ] ?. workDayEnded ;
166- if ( nettoHoursOverrideActive && nettoHoursOverrideActive ) {
167- // If netto hours override is active, use the override value
183+ const cellData = row . planningPrDayModels [ field ] ;
184+ if ( ! cellData ) {
185+ return 'black-text' ;
186+ }
187+
188+ const { planHours, nettoHoursOverrideActive, plannedStartOfShift1, message, workerComment, date } = cellData ;
189+ let workDayStarted = cellData . start1StartedAt || cellData . start2StartedAt ;
190+ let workDayEnded = cellData . workDayEnded ;
191+
192+ // If netto hours override is active, use the override value
193+ if ( nettoHoursOverrideActive ) {
168194 workDayStarted = true ;
169195 workDayEnded = true ;
170196 }
171- const isInOlderThanToday = new Date ( row . planningPrDayModels [ field ] ?. date ) < new Date ( ) ;
172- const message = row . planningPrDayModels [ field ] ?. message ;
173- const workerComment = row . planningPrDayModels [ field ] ?. workerComment ;
197+
198+ const isInOlderThanToday = new Date ( date ) < new Date ( ) ;
199+
200+ // Case 1: Has planned hours
174201 if ( planHours > 0 ) {
175202 if ( workDayStarted ) {
176- //console.log('getCellTextColor', row, field, planHours, workDayStarted, workDayEnded);
177203 return workDayEnded ? 'white-text' : 'red-text' ;
178- }
179- else {
204+ } else {
180205 return isInOlderThanToday ? 'red-text' : 'black-text' ;
181206 }
182- } else {
183- return workDayStarted ? workDayEnded ? 'black-text' : 'white-text' : plannedStarted ? message || workerComment ? 'black-text' : 'white-text' : message || workerComment ? 'black-text' : 'white-text' ;
184- // if (workDayStarted) {
185- // return 'black-text';
186- // }
187- // else {
188- // return isInOlderThanToday ? 'red-text' : 'black-text';
189- // }
190207 }
191- // return 'black-text';
208+
209+ // Case 2: No planned hours
210+ return this . getCellTextColorForNoPlanHours (
211+ workDayStarted ,
212+ workDayEnded ,
213+ plannedStartOfShift1 ,
214+ message ,
215+ workerComment
216+ ) ;
217+ }
218+
219+ private getCellTextColorForNoPlanHours (
220+ workDayStarted : boolean ,
221+ workDayEnded : boolean ,
222+ plannedStarted : any ,
223+ message : any ,
224+ workerComment : any
225+ ) : string {
226+ if ( workDayStarted ) {
227+ return workDayEnded ? 'black-text' : 'white-text' ;
228+ }
229+
230+ if ( plannedStarted ) {
231+ return ( message || workerComment ) ? 'black-text' : 'white-text' ;
232+ }
233+
234+ return ( message || workerComment ) ? 'black-text' : 'white-text' ;
192235 }
193236
194237 getCellTextColorForDay ( row : any , field : string ) : string {
0 commit comments