@ -2,6 +2,7 @@ import 'package:easy_localization/easy_localization.dart';
 
		
	
		
			
				import  ' package:easy_localization/src/public_ext.dart ' ;  
		
	
		
			
				import  ' package:flutter/material.dart ' ;  
		
	
		
			
				import  ' package:flutter/painting.dart ' ;  
		
	
		
			
				import  ' package:flutter/scheduler.dart ' ;  
		
	
		
			
				import  ' package:mohem_flutter_app/api/monthlyAttendance_api_client.dart ' ;  
		
	
		
			
				import  ' package:mohem_flutter_app/classes/colors.dart ' ;  
		
	
		
			
				import  ' package:mohem_flutter_app/classes/utils.dart ' ;  
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -17,6 +18,10 @@ import 'package:syncfusion_flutter_calendar/calendar.dart';
 
		
	
		
			
				import  ' package:mohem_flutter_app/generated/locale_keys.g.dart ' ;  
		
	
		
			
				import  ' package:flutter/cupertino.dart ' ;  
		
	
		
			
				import  ' package:pie_chart/pie_chart.dart ' ;  
		
	
		
			
				import  ' package:flutter_localizations/flutter_localizations.dart ' ;  
		
	
		
			
				import  ' package:intl/intl.dart ' ;  
		
	
		
			
				import  ' package:month_year_picker/month_year_picker.dart ' ;  
		
	
		
			
				import  ' package:month_picker_dialog/month_picker_dialog.dart ' ;  
		
	
		
			
				
 
		
	
		
			
				class  MonthlyAttendance  extends  StatefulWidget  {  
		
	
		
			
				  MonthlyAttendance ( { Key ?  key } )  :  super ( key:  key ) ; 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -28,12 +33,12 @@ class MonthlyAttendance extends StatefulWidget {
 
		
	
		
			
				}  
		
	
		
			
				
 
		
	
		
			
				class  _MonthlyAttendanceState  extends  State < MonthlyAttendance >  {  
		
	
		
			
				  bool  isPresent  =  tru e; 
 
		
	
		
			
				  bool  isAbsent  =  tru e; 
 
		
	
		
			
				  bool  isMissing Days =  tru  e; 
 
		
	
		
			
				  bool  isOff Days =  tru  e; 
 
		
	
		
			
				  bool  isPresent  =  fals e; 
 
		
	
		
			
				  bool  isAbsent  =  fals e; 
 
		
	
		
			
				  bool  isMissing  =  fals  e; 
 
		
	
		
			
				  bool  isOff  =  fals  e; 
 
		
	
		
			
				  DateTime  date  =  DateTime . now ( ) ; 
 
		
	
		
			
				  late  var formattedDate ; 
 
		
	
		
			
				  late  DateTime formattedDate ; 
 
		
	
		
			
				  var  currentMonth  =  DateTime . now ( ) . month ; 
 
		
	
		
			
				  String  searchMonth  =  getMonth ( DateTime . now ( ) . month ) ; 
 
		
	
		
			
				  int  searchYear  =  DateTime . now ( ) . year ; 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -41,84 +46,42 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				
 
		
	
		
			
				  List < GetDayHoursTypeDetailsList >  getDayHoursTypeDetailsList  =  [ ] ; 
 
		
	
		
			
				  GetTimeCardSummaryList ?  getTimeCardSummaryList ; 
 
		
	
		
			
				
 
		
	
		
			
				  / /  GetDayHoursTypeDetailsList ?  getDayHoursTypeDetailsList ; 
 
		
	
		
			
				  GetScheduleShiftsDetailsList ?  getScheduleShiftsDetailsList ; 
 
		
	
		
			
				
 
		
	
		
			
				  @ override 
 
		
	
		
			
				  void  initState ( )  { 
 
		
	
		
			
				    super . initState ( ) ; 
 
		
	
		
			
				    getTimeCardSummary ( searchMonth ,  searchYear ) ; 
 
		
	
		
			
				    getDayHoursTypeDetails ( date . day ,  searchMonth ,  searchYear ) ; 
 
		
	
		
			
				    formattedDate  =  DateFormat ( ' MMM-yyyy ' ) . format ( date ) ; 
 
		
	
		
			
				    formattedDate  =  date ; 
 
		
	
		
			
				    callTimeCardAndHourDetails ( date . day ,  searchMonth ,  searchYear ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				  void  getTimeCardSummary(  searchMonth ,  searchYear )  async  { 
 
		
	
		
			
				  void  callTimeCardAndHourDetails( index ,   searchMonth ,  searchYear )  async  { 
 
		
	
		
			
				    try  { 
 
		
	
		
			
				      Utils . showLoading ( context ) ; 
 
		
	
		
			
				      getTimeCardSummaryList  =  await  MonthlyAttendanceApiClient ( ) . getTimeCardSummary ( searchMonth ,  searchYear ) ; 
 
		
	
		
			
				      Utils . hideLoading ( context ) ; 
 
		
	
		
			
				      setState ( ( )  { } ) ; 
 
		
	
		
			
				    }  catch  ( ex )  { 
 
		
	
		
			
				      Utils . hideLoading ( context ) ; 
 
		
	
		
			
				      Utils . handleException ( ex ,  context ,  null ) ; 
 
		
	
		
			
				    } 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				  void  getDayHoursTypeDetails ( index ,  searchMonth ,  searchYear )  async  { 
 
		
	
		
			
				    try  { 
 
		
	
		
			
				      Utils . showLoading ( context ) ; 
 
		
	
		
			
				      getDayHoursTypeDetailsList  =  await  MonthlyAttendanceApiClient ( ) . getDayHoursTypeDetails ( searchMonth ,  searchYear ) ; 
 
		
	
		
			
				      Utils . hideLoading ( context ) ; 
 
		
	
		
			
				      pRTPID =  getDayHoursTypeDetailsList [ index ] . rTPID  ; 
 
		
	
		
			
				      _calendarController . displayDate  =  formattedDate ; 
 
		
	
		
			
				      setState ( ( )  { } ) ; 
 
		
	
		
			
				    }  catch  ( ex )  { 
 
		
	
		
			
				      Utils . hideLoading ( context ) ; 
 
		
	
		
			
				      Utils . handleException ( ex ,  context ,  null ) ; 
 
		
	
		
			
				    } 
 
		
	
		
			
				    countAllAttendDays ( ) ; 
 
		
	
		
			
				    getScheduleShiftsDetails ( pRTPID ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				  getScheduleShiftsDetails ( pRTPID )  async  { 
 
		
	
		
			
				
 
		
	
		
			
				  Future  getScheduleShiftsDetails ( index ,  pRTPID )  async  { 
 
		
	
		
			
				    try  { 
 
		
	
		
			
				      Utils . showLoading ( context ) ; 
 
		
	
		
			
				      getScheduleShiftsDetailsList  =  await  MonthlyAttendanceApiClient ( ) . getScheduleShiftsDetails ( pRTPID ) ; 
 
		
	
		
			
				      Utils . hideLoading ( context ) ; 
 
		
	
		
			
				      setState ( ( )  { } ) ; 
 
		
	
		
			
				      / / setState ( ( )  { } ) ; 
 
		
	
		
			
				    }  catch  ( ex )  { 
 
		
	
		
			
				      Utils . hideLoading ( context ) ; 
 
		
	
		
			
				      Utils . handleException ( ex ,  context ,  null ) ; 
 
		
	
		
			
				    } 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				  countAllAttendDays ( )  { 
 
		
	
		
			
				    / /  print ( getDayHoursTypeDetailsList . length ) ; 
 
		
	
		
			
				    for  ( int  i  =  0 ;  i  <  getDayHoursTypeDetailsList . length ;  i + + )  { 
 
		
	
		
			
				      if  ( getDayHoursTypeDetailsList [ i ] . aTTENDEDFLAG  = =  ' Y ' )  { 
 
		
	
		
			
				        isPresent  =  true ; 
 
		
	
		
			
				        isAbsent  =  false ; 
 
		
	
		
			
				        isMissingDays  =  false ; 
 
		
	
		
			
				        isOffDays  =  false ; 
 
		
	
		
			
				      }  else  if  ( getDayHoursTypeDetailsList [ i ] . aTTENDEDFLAG  = =  ' N '  & &  getDayHoursTypeDetailsList [ i ] . aBSENTFLAG  = =  ' Y ' )  { 
 
		
	
		
			
				        isPresent  =  false ; 
 
		
	
		
			
				        isAbsent  =  true ; 
 
		
	
		
			
				        isMissingDays  =  false ; 
 
		
	
		
			
				        isOffDays  =  false ; 
 
		
	
		
			
				      }  else  if  ( getDayHoursTypeDetailsList [ i ] . aTTENDEDFLAG  = =  ' N '  & &  getDayHoursTypeDetailsList [ i ] . dAYTYPE  = =  ' OFF ' )  { 
 
		
	
		
			
				        isPresent  =  false ; 
 
		
	
		
			
				        isAbsent  =  false ; 
 
		
	
		
			
				        isMissingDays  =  false ; 
 
		
	
		
			
				        isOffDays  =  true ; 
 
		
	
		
			
				      }  else  { 
 
		
	
		
			
				        isPresent  =  false ; 
 
		
	
		
			
				        isAbsent  =  false ; 
 
		
	
		
			
				        isMissingDays  =  true ; 
 
		
	
		
			
				        isOffDays  =  false ; 
 
		
	
		
			
				      } 
 
		
	
		
			
				    } 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				  final  CalendarController  _calendarController  =  CalendarController ( ) ; 
 
		
	
		
			
				
 
		
	
		
			
				  final  List < Color >  _colorList  =  [ Color ( 0xff2AB2AB ) ,  Color ( 0xff202529 ) ] ; 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -126,8 +89,8 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				  @ override 
 
		
	
		
			
				  Widget  build ( BuildContext  context )  { 
 
		
	
		
			
				    Map < String ,  double >  dataMap  =  { 
 
		
	
		
			
				      " Present " :  getTimeCardSummaryList . aTTENDEDDAYS ! . toDouble ( ) , 
 
		
	
		
			
				      " Absent " :  getTimeCardSummaryList . aBSENTDAYS ! . toDouble ( ) , 
 
		
	
		
			
				      " Present " :  getTimeCardSummaryList ?. aTTENDEDDAYS  ! =  null  ?  getTimeCardSummaryList  !. aTTENDEDDAYS ! . toDouble ( )  :  0  , 
 
		
	
		
			
				      " Absent " :  getTimeCardSummaryList ?. aBSENTDAYS  ! =  null  ?  getTimeCardSummaryList  !. aBSENTDAYS ! . toDouble ( )  :  0  , 
 
		
	
		
			
				    } ; 
 
		
	
		
			
				    return  Scaffold ( 
 
		
	
		
			
				      appBar:  AppBar ( 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -150,61 +113,42 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				              Column ( 
 
		
	
		
			
				                crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                children:  [ 
 
		
	
		
			
				                  " Attendance " . toText24 ( isBold:  true ,  color:  MyColors . darkIconColor ) , 
 
		
	
		
			
				                  LocaleKeys . attendance . tr ( ) . toText24 ( isBold:  true ,  color:  MyColors . darkIconColor ) , 
 
		
	
		
			
				                  Row ( 
 
		
	
		
			
				                    children:  [ 
 
		
	
		
			
				                      Text ( formattedDate ) , 
 
		
	
		
			
				                      " ${ DateFormat ( " MMMM-yyyy " ) . format ( formattedDate ) } " . toText16 ( color:  MyColors . greyACColor ) , 
 
		
	
		
			
				                      const  Icon ( Icons . keyboard_arrow_down_rounded ,  color:  MyColors . greyACColor ) , 
 
		
	
		
			
				                    ] , 
 
		
	
		
			
				                  ) . onPress ( ( )  async  { 
 
		
	
		
			
				                    await  showDate ( 
 
		
	
		
			
				                      context:  context , 
 
		
	
		
			
				                      initialDate:  DateTime. now ( )  , 
 
		
	
		
			
				                      firstDate:  DateTime ( 2 021 ) , 
 
		
	
		
			
				                    showMonth ( 
 
		
	
		
			
				                      context:  context ,  / / locale:  EasyLocalization . of ( context ) ? . locale ,  
 
		
	
		
			
				                      initialDate:  formattedDate , 
 
		
	
		
			
				                      firstDate:  DateTime ( searchYear  -  2 ) , 
 
		
	
		
			
				                      lastDate:  DateTime . now ( ) , 
 
		
	
		
			
				                      builder:  ( context ,  child )  { 
 
		
	
		
			
				                        return  Theme ( 
 
		
	
		
			
				                          data:  ThemeData . dark ( ) . copyWith ( 
 
		
	
		
			
				                            colorScheme:  const  ColorScheme . dark ( 
 
		
	
		
			
				                              primary:  MyColors . lightGreenColor , 
 
		
	
		
			
				                              onPrimary:  MyColors . white , 
 
		
	
		
			
				                              surface:  MyColors . lightGreenColor , 
 
		
	
		
			
				                              onSurface:  MyColors . darkTextColor , 
 
		
	
		
			
				                            ) , 
 
		
	
		
			
				                            dialogBackgroundColor:  Colors . white , 
 
		
	
		
			
				                          ) , 
 
		
	
		
			
				                          child:  child ! , 
 
		
	
		
			
				                        ) ; 
 
		
	
		
			
				                      } , 
 
		
	
		
			
				                    ) . then ( ( selectedDate )  { 
 
		
	
		
			
				                      if  ( selectedDate  ! =  null )  { 
 
		
	
		
			
				                        var  selectedMonth  =  DateFormat ( ' MMMM ' ) . format ( selectedDate ) ; 
 
		
	
		
			
				                        var  selectedYear  =  DateFormat ( ' yyyy ' ) . format ( selectedDate ) ; 
 
		
	
		
			
				                        searchMonth  =  selectedMonth ; 
 
		
	
		
			
				                        searchYear  =  int . parse ( selectedYear ) ; 
 
		
	
		
			
				                        setState ( ( )  { 
 
		
	
		
			
				                          / /      date  =  selectedDate ; 
 
		
	
		
			
				                          formattedDate  =  DateFormat ( ' MMMM-yyyy ' ) . format ( selectedDate ) ; 
 
		
	
		
			
				                          getTimeCardSummary ( searchMonth ,  searchYear ) ; 
 
		
	
		
			
				                          getDayHoursTypeDetails ( selectedDate . day ,  searchMonth ,  searchYear ) ; 
 
		
	
		
			
				                        } ) ; 
 
		
	
		
			
				                        searchMonth  =  getMonth ( selectedDate . month ) ; 
 
		
	
		
			
				                        searchYear  =  selectedDate . year ; 
 
		
	
		
			
				                        formattedDate  =  selectedDate ;  / / DateFormat ( ' MMMM-yyyy ' ) . format ( selectedDate ) ; 
 
		
	
		
			
				                        / /   _calendarController . selectedDate  =  formattedDate ; 
 
		
	
		
			
				                        callTimeCardAndHourDetails ( selectedDate . day ,  searchMonth ,  searchYear ) ; 
 
		
	
		
			
				                      } 
 
		
	
		
			
				                    } ) ; 
 
		
	
		
			
				                  } ) 
 
		
	
		
			
				                ] , 
 
		
	
		
			
				              ) . paddingOnly ( left:  21 ,  right:  21 ) , 
 
		
	
		
			
				              18. height , 
 
		
	
		
			
				              AspectRatio ( aspectRatio:  333  /  270 ,  child:  calendarWidget ( ) ) . paddingOnly ( left:  21,  right:  21  ) , 
 
		
	
		
			
				              AspectRatio ( aspectRatio:  333  /  270 ,  child:  calendarWidget ( ) ) . paddingOnly ( left:  18 ,  right:  25 ) , 
 
		
	
		
			
				              Row ( 
 
		
	
		
			
				                mainAxisAlignment:  MainAxisAlignment . start , 
 
		
	
		
			
				                children:  [ 
 
		
	
		
			
				                  optionUI ( " Schedule \n Days " ,  " ${ getTimeCardSummaryList ! . sCHEDULEDAYS } " ) , 
 
		
	
		
			
				                  optionUI ( LocaleKeys . scheduleDays . tr ( ) ,  " ${ getTimeCardSummaryList ? . sCHEDULEDAYS } " ) , 
 
		
	
		
			
				                  6. width , 
 
		
	
		
			
				                  optionUI ( " Off \n Days " ,  " ${ getTimeCardSummaryList ! . oFFDAYS } " ) , 
 
		
	
		
			
				                  optionUI ( LocaleKeys . offDays . tr ( ) ,  " ${ getTimeCardSummaryList ? . oFFDAYS } " ) , 
 
		
	
		
			
				                  6. width , 
 
		
	
		
			
				                  optionUI ( " Non \n Analyzed " ,  " ${ getTimeCardSummaryList ! . uNAUTHORIZEDLEAVE } " ) , 
 
		
	
		
			
				                  optionUI ( LocaleKeys . nonAnalyzed . tr ( ) ,  " ${ getTimeCardSummaryList ? . uNAUTHORIZEDLEAVE } " ) , 
 
		
	
		
			
				                  6. width , 
 
		
	
		
			
				                  optionUI ( " Shortage \n Hour " ,  " ${ getTimeCardSummaryList ! . sHORTAGEHRS } " ) , 
 
		
	
		
			
				                  optionUI ( LocaleKeys . shortageHour . tr ( ) ,  " ${ getTimeCardSummaryList ? . sHORTAGEHRS } " ) , 
 
		
	
		
			
				                ] , 
 
		
	
		
			
				              ) . paddingOnly ( left:  21 ,  right:  21 ) , 
 
		
	
		
			
				              35. height , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -229,10 +173,10 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                      children:  < Widget > [ 
 
		
	
		
			
				                        Column ( 
 
		
	
		
			
				                          children:  [ 
 
		
	
		
			
				                            " Attendance " . toText12 ( isBold:  true ,  color:  MyColors . grey3AColor ) , 
 
		
	
		
			
				                            " Stats " . toText24 ( isBold:  true ,  color:  MyColors . grey3AColor ) , 
 
		
	
		
			
				                            LocaleKeys . attendance . tr ( ) . toText12 ( isBold:  true ,  color:  MyColors . grey3AColor ) , 
 
		
	
		
			
				                            LocaleKeys . stats . tr ( ) . toText24 ( isBold:  true ,  color:  MyColors . grey3AColor ) , 
 
		
	
		
			
				                          ] , 
 
		
	
		
			
				                        ) . paddingOnly ( left:  21 ,  top:  29 ,  bottom:  36 , 
 
		
	
		
			
				                        ) . paddingOnly ( left:  21 ,  top:  29 ,  bottom:  36 , right:  23  ), 
 
		
	
		
			
				                        Row ( 
 
		
	
		
			
				                          children:  [ 
 
		
	
		
			
				                            Container ( 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -245,7 +189,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                            ) , 
 
		
	
		
			
				                            Container ( 
 
		
	
		
			
				                              margin:  const  EdgeInsets . only ( left:  5 ,  right:  5 ) , 
 
		
	
		
			
				                              child:  " PRESENT  ${ getTimeCardSummaryList ! . aTTENDEDDAYS } " . toText16 ( isBold:  true ,  color:  MyColors . lightGreenColor ) , 
 
		
	
		
			
				                              child:  " ${ LocaleKeys . present . tr ( ) } ${ getTimeCardSummaryList ! . aTTENDEDDAYS } " . toText16 ( isBold:  true ,  color:  MyColors . lightGreenColor ) , 
 
		
	
		
			
				                            ) , 
 
		
	
		
			
				                          ] , 
 
		
	
		
			
				                        ) . paddingOnly ( left:  21 ,  right:  23 ) , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -262,13 +206,13 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                            ) , 
 
		
	
		
			
				                            Container ( 
 
		
	
		
			
				                              margin:  const  EdgeInsets . only ( left:  5 ,  right:  5 ) , 
 
		
	
		
			
				                              child:  " ABSENT  ${ getTimeCardSummaryList ! . aBSENTDAYS } " . toText16 ( 
 
		
	
		
			
				                              child:  " ${ LocaleKeys . absent . tr ( ) } ${ getTimeCardSummaryList ! . aBSENTDAYS } " . toText16 ( 
 
		
	
		
			
				                                isBold:  true , 
 
		
	
		
			
				                                color:  MyColors . backgroundBlackColor , 
 
		
	
		
			
				                              ) , 
 
		
	
		
			
				                            ) 
 
		
	
		
			
				                          ] , 
 
		
	
		
			
				                        ) . paddingOnly ( left:  21 ,  top:  8 , 
 
		
	
		
			
				                        ) . paddingOnly ( left:  21 ,  top:  8 , right:  23  ), 
 
		
	
		
			
				                      ] , 
 
		
	
		
			
				                    ) , 
 
		
	
		
			
				                    Column ( 
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -342,70 +286,116 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				  Widget  calendarWidget ( )  { 
 
		
	
		
			
				    return  SfCalendar ( 
 
		
	
		
			
				      view:  CalendarView . month , 
 
		
	
		
			
				      / /  onViewChanged:  viewChanged , 
 
		
	
		
			
				      showDatePickerButton:  false , 
 
		
	
		
			
				      controller:  _calendarController , 
 
		
	
		
			
				      headerHeight:  0 , 
 
		
	
		
			
				      todayHighlightColor:  MyColors . grey3AColor , 
 
		
	
		
			
				      showNavigationArrow:  false , 
 
		
	
		
			
				      showCurrentTimeIndicator:  false , 
 
		
	
		
			
				      showWeekNumber:  false , 
 
		
	
		
			
				      cellBorderColor:  Colors . white , 
 
		
	
		
			
				      selectionDecoration:  BoxDecoration ( 
 
		
	
		
			
				        border:  Border . all ( color:  MyColors . white ,  width:  10 ) , 
 
		
	
		
			
				        borderRadius:  const  BorderRadius . all ( Radius . circular ( 100 ) ) , 
 
		
	
		
			
				        shape:  BoxShape . circle , 
 
		
	
		
			
				      ) , 
 
		
	
		
			
				      dataSource:  MeetingDataSource ( _getDataSource ( ) ) , 
 
		
	
		
			
				      onTap:  calendarTapped , 
 
		
	
		
			
				      monthViewSettings:  const  MonthViewSettings ( 
 
		
	
		
			
				        dayFormat:  ' EEE ' , 
 
		
	
		
			
				        showTrailingAndLeadingDates:  false , 
 
		
	
		
			
				        showAgenda:  false , 
 
		
	
		
			
				        navigationDirection:  MonthNavigationDirection . horizontal , 
 
		
	
		
			
				        monthCellStyle:  MonthCellStyle ( 
 
		
	
		
			
				          textStyle:  TextStyle ( 
 
		
	
		
			
				            fontStyle:  FontStyle . normal , 
 
		
	
		
			
				            fontSize:  13 , 
 
		
	
		
			
				            color:  Colors . white , 
 
		
	
		
			
				          ) , 
 
		
	
		
			
				        ) , 
 
		
	
		
			
				      ) , 
 
		
	
		
			
				      viewHeaderStyle:  const  ViewHeaderStyle ( 
 
		
	
		
			
				        dayTextStyle:  TextStyle ( color:  MyColors . grey3AColor ,  fontSize:  13 ,  fontWeight:  FontWeight . w600 ) , 
 
		
	
		
			
				      ) , 
 
		
	
		
			
				      monthCellBuilder:  ( cxt ,  build )  { 
 
		
	
		
			
				        int  val  =  build . date . day ; 
 
		
	
		
			
				        val  = =  countAllAttendDays ( ) ; 
 
		
	
		
			
				        if  ( isPresent )  { 
 
		
	
		
			
				          return  Container ( 
 
		
	
		
			
				            margin:  const  EdgeInsets . all ( 4 ) , 
 
		
	
		
			
				            decoration:  BoxDecoration ( 
 
		
	
		
			
				              gradient:  const  LinearGradient ( 
 
		
	
		
			
				                transform:  GradientRotation ( . 46 ) , 
 
		
	
		
			
				                begin:  Alignment . topRight , 
 
		
	
		
			
				                end:  Alignment . bottomLeft , 
 
		
	
		
			
				                colors:  [ MyColors . gradiantEndColor ,  MyColors . gradiantStartColor ] , 
 
		
	
		
			
				      monthCellBuilder:  ( build ,  details )  { 
 
		
	
		
			
				        if  ( details . date . month  = =  formattedDate . month  & &  details . date . year  = =  formattedDate . year )  { 
 
		
	
		
			
				          int  val  =  details . date . day ; 
 
		
	
		
			
				          / / check  day  is  off 
 
		
	
		
			
				          if  ( getDayHoursTypeDetailsList [ val  -  1 ] . aTTENDEDFLAG  = =  ' N '  & &  getDayHoursTypeDetailsList [ val  -  1 ] . dAYTYPE  = =  ' OFF ' )  { 
 
		
	
		
			
				            return  Container ( 
 
		
	
		
			
				              margin:  const  EdgeInsets . all ( 4 ) , 
 
		
	
		
			
				              decoration:  BoxDecoration ( 
 
		
	
		
			
				                color:  MyColors . greyACColor . withOpacity ( . 12 ) , 
 
		
	
		
			
				                shape:  BoxShape . circle , 
 
		
	
		
			
				              ) , 
 
		
	
		
			
				              shape:  BoxShape . circle , 
 
		
	
		
			
				              boxShadow:  [ 
 
		
	
		
			
				                BoxShadow ( 
 
		
	
		
			
				                  offset:  const  Offset ( 0 ,  2 ) , 
 
		
	
		
			
				                  blurRadius:  26 , 
 
		
	
		
			
				                  color:  MyColors . blackColor . withOpacity ( 0.100 ) , 
 
		
	
		
			
				              alignment:  Alignment . center , 
 
		
	
		
			
				              child:  Text ( 
 
		
	
		
			
				                " ${ val } " , 
 
		
	
		
			
				                style:  const  TextStyle ( 
 
		
	
		
			
				                  fontSize:  13 , 
 
		
	
		
			
				                  fontWeight:  FontWeight . w500 , 
 
		
	
		
			
				                  color:  MyColors . greyA5Color , 
 
		
	
		
			
				                ) , 
 
		
	
		
			
				              ] , 
 
		
	
		
			
				            ) , 
 
		
	
		
			
				            alignment:  Alignment . center , 
 
		
	
		
			
				            child:  Text ( 
 
		
	
		
			
				              " ${ build . date . day } " , 
 
		
	
		
			
				              style:  const  TextStyle ( 
 
		
	
		
			
				                fontSize:  13 , 
 
		
	
		
			
				                fontWeight:  FontWeight . w500 , 
 
		
	
		
			
				                color:  MyColors . white , 
 
		
	
		
			
				              ) , 
 
		
	
		
			
				            ) , 
 
		
	
		
			
				          ) ; 
 
		
	
		
			
				        }  else  if  ( isAbsent )  { 
 
		
	
		
			
				          return  Container ( 
 
		
	
		
			
				            margin:  const  EdgeInsets . all ( 4 ) , 
 
		
	
		
			
				            decoration:  BoxDecoration ( 
 
		
	
		
			
				              color:  MyColors . backgroundBlackColor , 
 
		
	
		
			
				              shape:  BoxShape . circle , 
 
		
	
		
			
				              boxShadow:  [ 
 
		
	
		
			
				                BoxShadow ( 
 
		
	
		
			
				                  offset:  const  Offset ( 0 ,  2 ) , 
 
		
	
		
			
				                  blurRadius:  26 , 
 
		
	
		
			
				                  color:  MyColors . blackColor . withOpacity ( 0.100 ) , 
 
		
	
		
			
				            ) ; 
 
		
	
		
			
				          } 
 
		
	
		
			
				          / / check  day  is  Present 
 
		
	
		
			
				          else  if  ( getDayHoursTypeDetailsList [ val  -  1 ] . aTTENDEDFLAG  = =  ' Y ' )  { 
 
		
	
		
			
				            return  Container ( 
 
		
	
		
			
				              margin:  const  EdgeInsets . all ( 4 ) , 
 
		
	
		
			
				              decoration:  BoxDecoration ( 
 
		
	
		
			
				                gradient:  const  LinearGradient ( 
 
		
	
		
			
				                  transform:  GradientRotation ( . 46 ) , 
 
		
	
		
			
				                  begin:  Alignment . topRight , 
 
		
	
		
			
				                  end:  Alignment . bottomLeft , 
 
		
	
		
			
				                  colors:  [ MyColors . gradiantEndColor ,  MyColors . gradiantStartColor ] , 
 
		
	
		
			
				                ) , 
 
		
	
		
			
				              ] , 
 
		
	
		
			
				            ) , 
 
		
	
		
			
				            alignment:  Alignment . center , 
 
		
	
		
			
				            child:  Text ( 
 
		
	
		
			
				              " ${ build . date . day } " , 
 
		
	
		
			
				              style:  const  TextStyle ( 
 
		
	
		
			
				                fontSize:  13 , 
 
		
	
		
			
				                fontWeight:  FontWeight . w500 , 
 
		
	
		
			
				                color:  MyColors . white , 
 
		
	
		
			
				                shape:  BoxShape . circle , 
 
		
	
		
			
				                boxShadow:  [ 
 
		
	
		
			
				                  BoxShadow ( 
 
		
	
		
			
				                    offset:  const  Offset ( 0 ,  2 ) , 
 
		
	
		
			
				                    blurRadius:  26 , 
 
		
	
		
			
				                    color:  MyColors . blackColor . withOpacity ( 0.100 ) , 
 
		
	
		
			
				                  ) , 
 
		
	
		
			
				                ] , 
 
		
	
		
			
				              ) , 
 
		
	
		
			
				            ) , 
 
		
	
		
			
				          ) ; 
 
		
	
		
			
				        }  else  if  ( isMissingDays )  { 
 
		
	
		
			
				              alignment:  Alignment . center , 
 
		
	
		
			
				              child:  Text ( 
 
		
	
		
			
				                " ${ val } " , 
 
		
	
		
			
				                style:  const  TextStyle ( 
 
		
	
		
			
				                  fontSize:  13 , 
 
		
	
		
			
				                  fontWeight:  FontWeight . w500 , 
 
		
	
		
			
				                  color:  MyColors . white , 
 
		
	
		
			
				                ) , 
 
		
	
		
			
				              ) , 
 
		
	
		
			
				            ) ; 
 
		
	
		
			
				          } 
 
		
	
		
			
				          / / check  day  is  Absent 
 
		
	
		
			
				          else  if  ( getDayHoursTypeDetailsList [ val  -  1 ] . aTTENDEDFLAG  = =  ' N '  & &  getDayHoursTypeDetailsList [ val  -  1 ] . aBSENTFLAG  = =  ' Y ' )  { 
 
		
	
		
			
				            return  Container ( 
 
		
	
		
			
				              margin:  const  EdgeInsets . all ( 4 ) , 
 
		
	
		
			
				              decoration:  BoxDecoration ( 
 
		
	
		
			
				                color:  MyColors . backgroundBlackColor , 
 
		
	
		
			
				                shape:  BoxShape . circle , 
 
		
	
		
			
				                boxShadow:  [ 
 
		
	
		
			
				                  BoxShadow ( 
 
		
	
		
			
				                    offset:  const  Offset ( 0 ,  2 ) , 
 
		
	
		
			
				                    blurRadius:  26 , 
 
		
	
		
			
				                    color:  MyColors . blackColor . withOpacity ( 0.100 ) , 
 
		
	
		
			
				                  ) , 
 
		
	
		
			
				                ] , 
 
		
	
		
			
				              ) , 
 
		
	
		
			
				              alignment:  Alignment . center , 
 
		
	
		
			
				              child:  Text ( 
 
		
	
		
			
				                " ${ val } " , 
 
		
	
		
			
				                style:  const  TextStyle ( 
 
		
	
		
			
				                  fontSize:  13 , 
 
		
	
		
			
				                  fontWeight:  FontWeight . w500 , 
 
		
	
		
			
				                  color:  MyColors . white , 
 
		
	
		
			
				                ) , 
 
		
	
		
			
				              ) , 
 
		
	
		
			
				            ) ; 
 
		
	
		
			
				          } 
 
		
	
		
			
				          return  Container ( 
 
		
	
		
			
				            margin:  const  EdgeInsets . all ( 4 ) , 
 
		
	
		
			
				            decoration:  BoxDecoration ( 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -421,7 +411,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				            ) , 
 
		
	
		
			
				            alignment:  Alignment . center , 
 
		
	
		
			
				            child:  Text ( 
 
		
	
		
			
				              " ${ build. date . day  } " , 
 
		
	
		
			
				              " ${ val } " , 
 
		
	
		
			
				              style:  const  TextStyle ( 
 
		
	
		
			
				                fontSize:  13 , 
 
		
	
		
			
				                fontWeight:  FontWeight . w500 , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -429,66 +419,35 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				              ) , 
 
		
	
		
			
				            ) , 
 
		
	
		
			
				          ) ; 
 
		
	
		
			
				        }  else  if  ( isOffDays )  { 
 
		
	
		
			
				          return  Container ( 
 
		
	
		
			
				            margin:  const  EdgeInsets . all ( 4 ) , 
 
		
	
		
			
				            decoration:  BoxDecoration ( 
 
		
	
		
			
				              color:  MyColors . greyACColor . withOpacity ( . 12 ) , 
 
		
	
		
			
				              shape:  BoxShape . circle , 
 
		
	
		
			
				            ) , 
 
		
	
		
			
				            alignment:  Alignment . center , 
 
		
	
		
			
				            child:  Text ( 
 
		
	
		
			
				              " ${ build . date . day } " , 
 
		
	
		
			
				              style:  const  TextStyle ( 
 
		
	
		
			
				                fontSize:  13 , 
 
		
	
		
			
				                fontWeight:  FontWeight . w500 , 
 
		
	
		
			
				                color:  MyColors . greyA5Color , 
 
		
	
		
			
				              ) , 
 
		
	
		
			
				            ) , 
 
		
	
		
			
				          ) ; 
 
		
	
		
			
				          / /  return  Container ( 
 
		
	
		
			
				          / /    alignment:  Alignment . center , 
 
		
	
		
			
				          / /    child:  Text ( " $ val " ) , 
 
		
	
		
			
				          / /  ) ; 
 
		
	
		
			
				        }  else  { 
 
		
	
		
			
				          return  Container ( ) ; 
 
		
	
		
			
				          return  const  SizedBox ( ) ; 
 
		
	
		
			
				        } 
 
		
	
		
			
				      } , 
 
		
	
		
			
				      monthViewSettings:  const  MonthViewSettings ( 
 
		
	
		
			
				        dayFormat:  ' EEE ' , 
 
		
	
		
			
				        showTrailingAndLeadingDates:  false , 
 
		
	
		
			
				        appointmentDisplayMode:  MonthAppointmentDisplayMode . appointment , 
 
		
	
		
			
				        showAgenda:  false , 
 
		
	
		
			
				        navigationDirection:  MonthNavigationDirection . horizontal , 
 
		
	
		
			
				        monthCellStyle:  MonthCellStyle ( 
 
		
	
		
			
				          textStyle:  TextStyle ( 
 
		
	
		
			
				            fontStyle:  FontStyle . normal , 
 
		
	
		
			
				            fontSize:  13 , 
 
		
	
		
			
				            color:  Colors . white , 
 
		
	
		
			
				          ) , 
 
		
	
		
			
				        ) , 
 
		
	
		
			
				      ) , 
 
		
	
		
			
				      showNavigationArrow:  false , 
 
		
	
		
			
				      showDatePickerButton:  false , 
 
		
	
		
			
				      showCurrentTimeIndicator:  false , 
 
		
	
		
			
				      showWeekNumber:  false , 
 
		
	
		
			
				      cellBorderColor:  Colors . white , 
 
		
	
		
			
				      selectionDecoration:  BoxDecoration ( 
 
		
	
		
			
				        border:  Border . all ( color:  MyColors . white ,  width:  10 ) , 
 
		
	
		
			
				        borderRadius:  const  BorderRadius . all ( Radius . circular ( 100 ) ) , 
 
		
	
		
			
				        shape:  BoxShape . circle , 
 
		
	
		
			
				      ) , 
 
		
	
		
			
				      dataSource:  MeetingDataSource ( _getDataSource ( ) ) , 
 
		
	
		
			
				      onTap:  calendarTapped , 
 
		
	
		
			
				    ) ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				  calendarTapped ( CalendarTapDetails  details )  { 
 
		
	
		
			
				    dynamic  string  =  getScheduleShiftsDetailsList ! . pERCENTAGE ; 
 
		
	
		
			
				    dynamic  percentage  =  string ! . indexOf ( ' % ' ) ; 
 
		
	
		
			
				    print ( percentage ) ; 
 
		
	
		
			
				    print ( details . date ? . day . toString ( ) ) ; 
 
		
	
		
			
				    int ?  index  =  details . date ? . day ; 
 
		
	
		
			
				  calendarTapped ( CalendarTapDetails  details )  async  { 
 
		
	
		
			
				    dynamic  index  =  details . date ? . day ; 
 
		
	
		
			
				    if  ( index  ! =  null )  { 
 
		
	
		
			
				      index  =  index  -  1 ; 
 
		
	
		
			
				    } 
 
		
	
		
			
				    getDayHoursTypeDetails ( index ,  getMonth ( details . date ! . month ) ,  details . date ? . year ) ; 
 
		
	
		
			
				    pRTPID  =  getDayHoursTypeDetailsList [ index ] . rTPID ; 
 
		
	
		
			
				    await  getScheduleShiftsDetails ( index ,  pRTPID ) ; 
 
		
	
		
			
				    dynamic  value  =  getScheduleShiftsDetailsList ! . pERCENTAGE ; 
 
		
	
		
			
				    dynamic  percentage ; 
 
		
	
		
			
				    if  ( value ! . indexOf ( ' % ' )  = =  3 )  { 
 
		
	
		
			
				      percentage  =  int . parse ( value ! . substring ( 0 ,  3 ) ) ; 
 
		
	
		
			
				    }  else  if  ( value ! . indexOf ( ' % ' )  = =  2 )  { 
 
		
	
		
			
				      percentage  =  int . parse ( value ! . substring ( 0 ,  2 ) ) ; 
 
		
	
		
			
				    }  else  if  ( value ! . indexOf ( ' % ' )  = =  1  & &  value ! . indexOf ( ' % ' )  ! =  0  & &  value ! . indexOf ( ' % ' )  ! =  " " )  { 
 
		
	
		
			
				      percentage  =  int . parse ( value ! . substring ( 0 ,  1 ) ) ; 
 
		
	
		
			
				    }  else  if  ( value ! . indexOf ( ' % ' )  = =  0  | |  value ! . indexOf ( ' % ' )  = =  " " )  { 
 
		
	
		
			
				      percentage  =  0 ; 
 
		
	
		
			
				    } 
 
		
	
		
			
				    showModalBottomSheet ( 
 
		
	
		
			
				      context:  context , 
 
		
	
		
			
				      shape:  RoundedRectangleBorder ( borderRadius:  BorderRadius . circular ( 25 ) ) , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -499,6 +458,8 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				          maxChildSize:  0.9 , 
 
		
	
		
			
				          expand:  false , 
 
		
	
		
			
				          builder:  ( _ ,  controller )  { 
 
		
	
		
			
				            dynamic   dmyString  =  getScheduleShiftsDetailsList ! . sCHEDULEDATE ; 
 
		
	
		
			
				            DateTime   dateTime1  =  DateFormat ( " MM/dd/yyyy hh:mm:ss a " ) . parse ( dmyString ) ; 
 
		
	
		
			
				            return  Column ( 
 
		
	
		
			
				              children:  [ 
 
		
	
		
			
				                Container ( 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -524,11 +485,12 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                      child:  Column ( 
 
		
	
		
			
				                        crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                        children:  [ 
 
		
	
		
			
				                          Column ( children:  [ 
 
		
	
		
			
				                            " ${ getScheduleShiftsDetailsList ! . sCHEDULEDATE ! . substring ( 0 ,  9 ) } " . toText24 ( isBold:  true ,  color:  Colors . white ) , 
 
		
	
		
			
				                            " Attendance Details " . tr ( ) . toText16 ( color:  MyColors . lightGreyEFColor ) , 
 
		
	
		
			
				                            21. height , 
 
		
	
		
			
				                          ] ) . paddingOnly ( top:  25 ,  left:  21 ,  right:  21 ,  bottom:  10 ) , 
 
		
	
		
			
				                          Container ( child: 
 
		
	
		
			
				                            " ${ DateFormat ( " MMMM-dd-yyyy " ) . format ( dateTime1 ) . replaceAll ( ' - ' ,  "    " ) } " . toText24 ( isBold:  true ,  color:  Colors . white ) , 
 
		
	
		
			
				                          ) . paddingOnly ( top:  26 ,  left:  21 ,  right:  21 ) , 
 
		
	
		
			
				                          Container ( 
 
		
	
		
			
				                            child:  LocaleKeys . attendanceDetails . tr ( ) . toText16 ( color:  MyColors . greyACColor ) . paddingOnly ( left:  21 , bottom:  16 ) , 
 
		
	
		
			
				                          ) , 
 
		
	
		
			
				                          Center ( 
 
		
	
		
			
				                            child:  CircularStepProgressBar ( 
 
		
	
		
			
				                              totalSteps:  16  *  4 , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -542,9 +504,9 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                                  mainAxisSize:  MainAxisSize . min , 
 
		
	
		
			
				                                  children:  [ 
 
		
	
		
			
				                                    " ${ getScheduleShiftsDetailsList ! . pERCENTAGE } " . toText44 ( color:  Colors . white ,  isBold:  true ) , 
 
		
	
		
			
				                                    " Completed " . tr ( ) . toText11 ( color:  MyColors . greyACColor ) , 
 
		
	
		
			
				                                    LocaleKeys . completed . tr ( ) . toText11 ( color:  MyColors . greyACColor ) , 
 
		
	
		
			
				                                    19. height , 
 
		
	
		
			
				                                    " Shift Time " . tr ( ) . toText11 ( color:  MyColors . greyACColor ) , 
 
		
	
		
			
				                                    LocaleKeys . shiftTime . tr ( ) . toText11 ( color:  MyColors . greyACColor ) , 
 
		
	
		
			
				                                    " ${ getScheduleShiftsDetailsList ! . sHTNAME } " . toText22 ( color:  Colors . white ,  isBold:  true ) , 
 
		
	
		
			
				                                  ] , 
 
		
	
		
			
				                                ) , 
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -574,11 +536,13 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                                          child:  Column ( 
 
		
	
		
			
				                                            crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                                            children:  [ 
 
		
	
		
			
				                                              " Actual Check In  " . tr ( ) . toText11 ( 
 
		
	
		
			
				                                              LocaleKeys . actualCheckIn . tr ( ) . toText11 ( 
 
		
	
		
			
				                                                    color:  MyColors . grey67Color , 
 
		
	
		
			
				                                                  ) , 
 
		
	
		
			
				                                              8. height , 
 
		
	
		
			
				                                              " ${ getScheduleShiftsDetailsList ! . sHTACTUALSTARTTIME } " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                              " ${ getScheduleShiftsDetailsList ! . sHTACTUALSTARTTIME } "  ! = " " 
 
		
	
		
			
				                                             ?  " ${ getScheduleShiftsDetailsList ! . sHTACTUALSTARTTIME } " . toText22 ( color:  Colors . black ,  isBold:  true ) 
 
		
	
		
			
				                                                  :  " __ " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                            ] , 
 
		
	
		
			
				                                          ) , 
 
		
	
		
			
				                                        ) , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -586,11 +550,13 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                                        Column ( 
 
		
	
		
			
				                                          crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                                          children:  [ 
 
		
	
		
			
				                                            " Actual Check Out " . tr ( ) . toText11 ( 
 
		
	
		
			
				                                            LocaleKeys . actualCheckOut . tr ( ) . toText11 ( 
 
		
	
		
			
				                                                  color:  MyColors . grey67Color , 
 
		
	
		
			
				                                                ) , 
 
		
	
		
			
				                                            8. height , 
 
		
	
		
			
				                                            " ${ getScheduleShiftsDetailsList ! . sHTACTUALENDTIME } " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                            " ${ getScheduleShiftsDetailsList ! . sHTACTUALENDTIME } "  ! =  " " 
 
		
	
		
			
				                                            ?  " ${ getScheduleShiftsDetailsList ! . sHTACTUALENDTIME } " . toText22 ( color:  Colors . black ,  isBold:  true ) 
 
		
	
		
			
				                                                :  " __ " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                          ] , 
 
		
	
		
			
				                                        ) , 
 
		
	
		
			
				                                      ] , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -609,11 +575,13 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                                          child:  Column ( 
 
		
	
		
			
				                                            crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                                            children:  [ 
 
		
	
		
			
				                                              " Approved Check In " . tr ( ) . toText11 ( 
 
		
	
		
			
				                                              LocaleKeys . approvedCheckIn . tr ( ) . toText11 ( 
 
		
	
		
			
				                                                    color:  MyColors . grey67Color , 
 
		
	
		
			
				                                                  ) , 
 
		
	
		
			
				                                              8. height , 
 
		
	
		
			
				                                              " ${ getScheduleShiftsDetailsList ! . aPPROVEDSTARTTIME } " . toText22 ( color:  MyColors . greenColor ,  isBold:  true ) , 
 
		
	
		
			
				                                              " ${ getScheduleShiftsDetailsList ! . aPPROVEDSTARTTIME } "  ! = " " 
 
		
	
		
			
				                                             ?  " ${ getScheduleShiftsDetailsList ! . aPPROVEDSTARTTIME } " . toText22 ( color:  MyColors . greenColor ,  isBold:  true ) 
 
		
	
		
			
				                                                  : " __ " . toText22 ( color:  MyColors . greenColor ,  isBold:  true ) , 
 
		
	
		
			
				                                            ] , 
 
		
	
		
			
				                                          ) , 
 
		
	
		
			
				                                        ) , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -621,11 +589,13 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                                        Column ( 
 
		
	
		
			
				                                          crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                                          children:  [ 
 
		
	
		
			
				                                            " Approved Check Out " . tr ( ) . toText11 ( 
 
		
	
		
			
				                                            LocaleKeys . approvedCheckOut . tr ( ) . toText11 ( 
 
		
	
		
			
				                                                  color:  MyColors . grey67Color , 
 
		
	
		
			
				                                                ) , 
 
		
	
		
			
				                                            8. height , 
 
		
	
		
			
				                                            " ${ getScheduleShiftsDetailsList ! . aPPROVEDENDTIME } " . toText22 ( color:  MyColors . greenColor ,  isBold:  true ) , 
 
		
	
		
			
				                                            " ${ getScheduleShiftsDetailsList ! . aPPROVEDENDTIME } " ! =  " " 
 
		
	
		
			
				                                           ?  " ${ getScheduleShiftsDetailsList ! . aPPROVEDENDTIME } " . toText22 ( color:  MyColors . greenColor ,  isBold:  true ) 
 
		
	
		
			
				                                            : " __ " . toText22 ( color:  MyColors . greenColor ,  isBold:  true ) , 
 
		
	
		
			
				                                          ] , 
 
		
	
		
			
				                                        ) , 
 
		
	
		
			
				                                      ] , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -644,11 +614,11 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                                          child:  Column ( 
 
		
	
		
			
				                                            crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                                            children:  [ 
 
		
	
		
			
				                                              " Late In " . tr ( ) . toText11 ( 
 
		
	
		
			
				                                              LocaleKeys . lateIn . tr ( ) . toText11 ( 
 
		
	
		
			
				                                                    color:  MyColors . grey67Color , 
 
		
	
		
			
				                                                  ) , 
 
		
	
		
			
				                                              8. height , 
 
		
	
		
			
				                                              " ${ getDayHoursTypeDetailsList [ i ] . lATEINHRS } " . toText22 ( color:  MyColors . redColor ,  isBold:  true ) , 
 
		
	
		
			
				                                              " ${ getDayHoursTypeDetailsList [ i ndex ] . lATEINHRS } " . toText22 ( color:  MyColors . redColor ,  isBold:  true ) , 
 
		
	
		
			
				                                            ] , 
 
		
	
		
			
				                                          ) , 
 
		
	
		
			
				                                        ) , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -656,11 +626,11 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                                        Column ( 
 
		
	
		
			
				                                          crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                                          children:  [ 
 
		
	
		
			
				                                            " Excess " . tr ( ) . toText11 ( 
 
		
	
		
			
				                                            LocaleKeys . excess . tr ( ) . toText11 ( 
 
		
	
		
			
				                                                  color:  MyColors . grey67Color , 
 
		
	
		
			
				                                                ) , 
 
		
	
		
			
				                                            8. height , 
 
		
	
		
			
				                                            " ${ getDayHoursTypeDetailsList [ i ] . eXCESSHRS } " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                            " ${ getDayHoursTypeDetailsList [ i ndex ] . eXCESSHRS } " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                          ] , 
 
		
	
		
			
				                                        ) , 
 
		
	
		
			
				                                      ] , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -679,11 +649,11 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                                          child:  Column ( 
 
		
	
		
			
				                                            crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                                            children:  [ 
 
		
	
		
			
				                                              " Shortage " . tr ( ) . toText11 ( 
 
		
	
		
			
				                                              LocaleKeys . shortage . tr ( ) . toText11 ( 
 
		
	
		
			
				                                                    color:  MyColors . grey67Color , 
 
		
	
		
			
				                                                  ) , 
 
		
	
		
			
				                                              8. height , 
 
		
	
		
			
				                                              " ${ getDayHoursTypeDetailsList [ i ] . sHORTAGEHRS } " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                              " ${ getDayHoursTypeDetailsList [ i ndex ] . sHORTAGEHRS } " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                            ] , 
 
		
	
		
			
				                                          ) , 
 
		
	
		
			
				                                        ) , 
 
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
			
			@ -691,11 +661,11 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				                                        Column ( 
 
		
	
		
			
				                                          crossAxisAlignment:  CrossAxisAlignment . start , 
 
		
	
		
			
				                                          children:  [ 
 
		
	
		
			
				                                            " Early Out " . tr ( ) . toText11 ( 
 
		
	
		
			
				                                            LocaleKeys . earlyOut . tr ( ) . toText11 ( 
 
		
	
		
			
				                                                  color:  MyColors . grey67Color , 
 
		
	
		
			
				                                                ) , 
 
		
	
		
			
				                                            8. height , 
 
		
	
		
			
				                                            " ${ getDayHoursTypeDetailsList [ i ] . eARLYOUTHRS } " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                            " ${ getDayHoursTypeDetailsList [ i ndex ] . eARLYOUTHRS } " . toText22 ( color:  Colors . black ,  isBold:  true ) , 
 
		
	
		
			
				                                          ] , 
 
		
	
		
			
				                                        ) , 
 
		
	
		
			
				                                      ] , 
 
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
			
			@ -751,6 +721,35 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
 
		
	
		
			
				        return  " December " ; 
 
		
	
		
			
				    } 
 
		
	
		
			
				  } 
 
		
	
		
			
				
 
		
	
		
			
				  static  getMonthAr ( int  month ) { 
 
		
	
		
			
				  switch  ( month )  { 
 
		
	
		
			
				  case  1 : 
 
		
	
		
			
				  return  ' يناير ' ; 
 
		
	
		
			
				  case  2 : 
 
		
	
		
			
				  return  '  فبراير ' ; 
 
		
	
		
			
				  case  3 : 
 
		
	
		
			
				  return  ' مارس ' ; 
 
		
	
		
			
				  case  4 : 
 
		
	
		
			
				  return  ' أبريل ' ; 
 
		
	
		
			
				  case  5 : 
 
		
	
		
			
				  return  ' مايو ' ; 
 
		
	
		
			
				  case  6 : 
 
		
	
		
			
				  return  ' يونيو ' ; 
 
		
	
		
			
				  case  7 : 
 
		
	
		
			
				  return  ' يوليو ' ; 
 
		
	
		
			
				  case  8 : 
 
		
	
		
			
				  return  ' أغسطس ' ; 
 
		
	
		
			
				  case  9 : 
 
		
	
		
			
				  return  ' سبتمبر ' ; 
 
		
	
		
			
				  case  10 : 
 
		
	
		
			
				  return  '  اكتوبر ' ; 
 
		
	
		
			
				  case  11 : 
 
		
	
		
			
				  return  '  نوفمبر ' ; 
 
		
	
		
			
				  case  12 : 
 
		
	
		
			
				  return  ' ديسمبر ' ; 
 
		
	
		
			
				  } 
 
		
	
		
			
				  } 
 
		
	
		
			
				}  
		
	
		
			
				
 
		
	
		
			
				class  MeetingDataSource  extends  CalendarDataSource  {