|
|
|
@ -41,12 +41,21 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
|
|
|
|
bool isMissingSwipeLoading = true;
|
|
|
|
bool isMissingSwipeLoading = true;
|
|
|
|
int missingSwipeCounter = 0;
|
|
|
|
int missingSwipeCounter = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool isMyRequestLoading = true;
|
|
|
|
|
|
|
|
ListMenu? myRequest;
|
|
|
|
|
|
|
|
|
|
|
|
//Leave and Ticket Balance
|
|
|
|
//Leave and Ticket Balance
|
|
|
|
bool isLeaveTicketBalanceLoading = true;
|
|
|
|
bool isLeaveTicketBalanceLoading = true;
|
|
|
|
List<GetAccrualBalancesList>? accrualList;
|
|
|
|
List<GetAccrualBalancesList>? accrualList;
|
|
|
|
|
|
|
|
|
|
|
|
GetAccrualBalancesList? leaveBalanceAccrual;
|
|
|
|
GetAccrualBalancesList? leaveBalanceAccrual;
|
|
|
|
|
|
|
|
|
|
|
|
double get leaveBalance => leaveBalanceAccrual?.accrualNetEntitlement ?? 0;
|
|
|
|
double get leaveBalance => leaveBalanceAccrual?.accrualNetEntitlement ?? 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GetAccrualBalancesList? businessTripAccrual;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double get businessTrip => businessTripAccrual?.accrualNetEntitlement ?? 0;
|
|
|
|
|
|
|
|
|
|
|
|
double ticketBalance = 0;
|
|
|
|
double ticketBalance = 0;
|
|
|
|
|
|
|
|
|
|
|
|
//Menu Entries
|
|
|
|
//Menu Entries
|
|
|
|
@ -87,12 +96,18 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
|
|
|
|
isWorkListLoading = true;
|
|
|
|
isWorkListLoading = true;
|
|
|
|
workListCounter = 0;
|
|
|
|
workListCounter = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isMyRequestLoading = true;
|
|
|
|
|
|
|
|
myRequest = null;
|
|
|
|
|
|
|
|
|
|
|
|
isMissingSwipeLoading = true;
|
|
|
|
isMissingSwipeLoading = true;
|
|
|
|
missingSwipeCounter = 0;
|
|
|
|
missingSwipeCounter = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
isWorkListLoading = true;
|
|
|
|
|
|
|
|
|
|
|
|
isLeaveTicketBalanceLoading = true;
|
|
|
|
isLeaveTicketBalanceLoading = true;
|
|
|
|
accrualList = null;
|
|
|
|
accrualList = null;
|
|
|
|
leaveBalanceAccrual = null;
|
|
|
|
leaveBalanceAccrual = null;
|
|
|
|
|
|
|
|
businessTripAccrual = null;
|
|
|
|
|
|
|
|
|
|
|
|
ticketBalance = 0;
|
|
|
|
ticketBalance = 0;
|
|
|
|
isServicesMenusLoading = true;
|
|
|
|
isServicesMenusLoading = true;
|
|
|
|
@ -193,7 +208,8 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
accrualList = await DashboardApiClient().getAccrualBalances(DateFormat("MM/dd/yyyy", "en_US").format(date));
|
|
|
|
accrualList = await DashboardApiClient().getAccrualBalances(DateFormat("MM/dd/yyyy", "en_US").format(date));
|
|
|
|
isLeaveTicketBalanceLoading = false;
|
|
|
|
isLeaveTicketBalanceLoading = false;
|
|
|
|
leaveBalanceAccrual = accrualList![0];
|
|
|
|
leaveBalanceAccrual = accrualList!.singleWhere((element) => element.accuralPlanName == 'Annual Vacation Accrual' || element.accuralPlanName == "خطة استحقاق الاجازة الاعتيادية", orElse: null);
|
|
|
|
|
|
|
|
businessTripAccrual = accrualList!.singleWhere((element) => element.accuralPlanName == 'Business Trip Accrual' || element.accuralPlanName == "خطة استحقاق الإنتدابات", orElse: null);
|
|
|
|
ticketBalance = (accrualList![1].accrualNetEntitlement ?? 0.0) + (accrualList![2].accrualNetEntitlement ?? 0.0) + (accrualList![3].accrualNetEntitlement ?? 0.0);
|
|
|
|
ticketBalance = (accrualList![1].accrualNetEntitlement ?? 0.0) + (accrualList![2].accrualNetEntitlement ?? 0.0) + (accrualList![3].accrualNetEntitlement ?? 0.0);
|
|
|
|
notifyListeners();
|
|
|
|
notifyListeners();
|
|
|
|
} catch (ex) {
|
|
|
|
} catch (ex) {
|
|
|
|
@ -211,17 +227,19 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
|
|
|
|
void fetchListMenu() async {
|
|
|
|
void fetchListMenu() async {
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
List<ListMenu> menuList = await DashboardApiClient().getListMenu();
|
|
|
|
List<ListMenu> menuList = await DashboardApiClient().getListMenu();
|
|
|
|
List findMyRequest = menuList.where((element) => element.menuType == "E").toList();
|
|
|
|
for (var menu in menuList) {
|
|
|
|
if (findMyRequest.isNotEmpty) {
|
|
|
|
if (menu.menuType == "E") {
|
|
|
|
drawerMenuItemList.add(DrawerMenuItem("assets/images/drawer/my_requests.svg", LocaleKeys.myRequest.tr(), AppRoutes.myRequests));
|
|
|
|
myRequest = menu;
|
|
|
|
}
|
|
|
|
} else if (menu.menuType == "M") {
|
|
|
|
List findMyTeam = menuList.where((element) => element.menuType == "M").toList();
|
|
|
|
|
|
|
|
if (findMyTeam.isNotEmpty) {
|
|
|
|
|
|
|
|
AppState().setempStatusIsManager = true;
|
|
|
|
AppState().setempStatusIsManager = true;
|
|
|
|
drawerMenuItemList.add(DrawerMenuItem("assets/images/drawer/my_team.svg", LocaleKeys.myTeamMembers.tr(), AppRoutes.myTeam));
|
|
|
|
drawerMenuItemList.add(DrawerMenuItem("assets/images/drawer/my_team.svg", LocaleKeys.myTeamMembers.tr(), AppRoutes.myTeam));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
isMyRequestLoading = false;
|
|
|
|
|
|
|
|
notifyListeners();
|
|
|
|
} catch (ex) {
|
|
|
|
} catch (ex) {
|
|
|
|
logger.wtf(ex);
|
|
|
|
logger.wtf(ex);
|
|
|
|
|
|
|
|
notifyListeners();
|
|
|
|
Utils.handleException(ex, null, null);
|
|
|
|
Utils.handleException(ex, null, null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|