ticket changes moved to dashboard

flutter_upgrade_with_timesheet_changes
aamir-csol 2 months ago
parent c8fa64171e
commit 1bcecde59b

@ -56,6 +56,7 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
List<GetMenuEntriesList>? getMenuEntriesList; List<GetMenuEntriesList>? getMenuEntriesList;
EventActivityList? eventActivity; EventActivityList? eventActivity;
TicketBookingResult? ticketBookingResponse;
//Offers And Discounts //Offers And Discounts
bool isOffersLoading = true; bool isOffersLoading = true;
@ -285,19 +286,19 @@ class DashboardProviderModel with ChangeNotifier, DiagnosticableTreeMixin {
} }
} }
Future<TicketBookingResult> fetchTicketBooking() async { void fetchTicketBooking() async {
try { try {
GenericResponseModel? genericResponseModel = await DashboardApiClient().getTicketBookingRedirection(); GenericResponseModel? genericResponseModel = await DashboardApiClient().getTicketBookingRedirection();
if (genericResponseModel?.portalDirectionData?.pRedirection!.toLowerCase() == "alma") { if (genericResponseModel?.portalDirectionData?.pRedirection!.toLowerCase() == "alma") {
return TicketBookingResult(true, genericResponseModel?.portalDirectionData?.clientID); ticketBookingResponse = TicketBookingResult(true, genericResponseModel?.portalDirectionData?.clientID);
} }
return TicketBookingResult(false, null); ticketBookingResponse = TicketBookingResult(false, null);
} catch (ex) { } catch (ex) {
logger.wtf(ex); logger.wtf(ex);
isEventLoadingLoading = false; isEventLoadingLoading = false;
notifyListeners(); notifyListeners();
Utils.handleException(ex, null, null); Utils.handleException(ex, null, null);
return TicketBookingResult(false, null); // Ensure a return value in case of an exception ticketBookingResponse = TicketBookingResult(false, null); // Ensure a return value in case of an exception
} }
} }

@ -159,6 +159,9 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
} }
if (!cProvider.disbaleChatForThisUser && !isFromInit) checkHubCon(); if (!cProvider.disbaleChatForThisUser && !isFromInit) checkHubCon();
_refreshController.refreshCompleted(); _refreshController.refreshCompleted();
data.fetchTicketBooking();
//continue here
} }
int ermIndex = 0; int ermIndex = 0;
@ -175,10 +178,11 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
if (list[ermIndex].notificationType == "Survey") { if (list[ermIndex].notificationType == "Survey") {
await Navigator.pushNamed(context, AppRoutes.survey, arguments: response.mohemmItgResponseItem!.result!.data!.first); await Navigator.pushNamed(context, AppRoutes.survey, arguments: response.mohemmItgResponseItem!.result!.data!.first);
} else { } else {
await Navigator.pushNamed(context, AppRoutes.advertisement, arguments: { await Navigator.pushNamed(
"masterId": list[ermIndex].notificationMasterId, context,
"advertisement": response.mohemmItgResponseItem!.result!.data!.first.advertisement, AppRoutes.advertisement,
}); arguments: {"masterId": list[ermIndex].notificationMasterId, "advertisement": response.mohemmItgResponseItem!.result!.data!.first.advertisement},
);
} }
} }
ermIndex++; ermIndex++;
@ -241,20 +245,15 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
children: [ children: [
Row( Row(
children: [ children: [
Builder(builder: (BuildContext context) { Builder(
builder: (BuildContext context) {
return Row( return Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
Image.memory( Image.memory(
Utils.dataFromBase64String( Utils.dataFromBase64String(AppState().memberInformationList!.eMPLOYEEIMAGE ?? ""),
AppState().memberInformationList!.eMPLOYEEIMAGE ?? "",
),
errorBuilder: (BuildContext context, Object error, StackTrace? stackTrace) { errorBuilder: (BuildContext context, Object error, StackTrace? stackTrace) {
return SvgPicture.asset( return SvgPicture.asset("assets/images/user.svg", height: 34, width: 34);
"assets/images/user.svg",
height: 34,
width: 34,
);
}, },
width: 34, width: 34,
height: 34, height: 34,
@ -271,23 +270,19 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
).onPress(() { ).onPress(() {
_scaffoldState.currentState!.openDrawer(); _scaffoldState.currentState!.openDrawer();
}); });
}), },
),
Image.asset("assets/images/logos/main_mohemm_logo.png", width: 134, height: 28).expanded, Image.asset("assets/images/logos/main_mohemm_logo.png", width: 134, height: 28).expanded,
SvgPicture.asset( SvgPicture.asset("assets/images/announcements.svg", matchTextDirection: true).onPress(() async {
"assets/images/announcements.svg",
matchTextDirection: true,
).onPress(() async {
await Navigator.pushNamed(context, AppRoutes.announcements); await Navigator.pushNamed(context, AppRoutes.announcements);
}) }),
], ],
).paddingOnly(left: 21, right: 21, top: 48, bottom: 7), ).paddingOnly(left: 21, right: 21, top: 48, bottom: 7),
Expanded( Expanded(
child: SmartRefresher( child: SmartRefresher(
enablePullDown: true, enablePullDown: true,
enablePullUp: false, enablePullUp: false,
header: const MaterialClassicHeader( header: const MaterialClassicHeader(color: MyColors.gradiantEndColor),
color: MyColors.gradiantEndColor,
),
controller: _refreshController, controller: _refreshController,
onRefresh: () { onRefresh: () {
_onRefresh(false); _onRefresh(false);
@ -313,10 +308,12 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
: Container( : Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(15), borderRadius: BorderRadius.circular(15),
gradient: const LinearGradient(transform: GradientRotation(.46), begin: Alignment.topRight, end: Alignment.bottomLeft, colors: [ gradient: const LinearGradient(
MyColors.gradiantEndColor, transform: GradientRotation(.46),
MyColors.gradiantStartColor, begin: Alignment.topRight,
]), end: Alignment.bottomLeft,
colors: [MyColors.gradiantEndColor, MyColors.gradiantStartColor],
),
), ),
child: Stack( child: Stack(
alignment: Alignment.center, alignment: Alignment.center,
@ -371,9 +368,10 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
LocaleKeys.checkIn.tr().toText12(color: Colors.white), LocaleKeys.checkIn.tr().toText12(color: Colors.white),
(model.attendanceTracking!.pSwipeIn == null ? "--:--" : model.attendanceTracking!.pSwipeIn) (model.attendanceTracking!.pSwipeIn == null ? "--:--" : model.attendanceTracking!.pSwipeIn).toString().toText14(
.toString() color: Colors.white,
.toText14(color: Colors.white, isBold: true), isBold: true,
),
4.height, 4.height,
], ],
).paddingOnly(left: 12, right: 12), ).paddingOnly(left: 12, right: 12),
@ -392,11 +390,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
), ),
child: SvgPicture.asset(model.isTimeRemainingInSeconds == 0 ? "assets/images/biometrics.svg" : "assets/images/biometrics.svg"), child: SvgPicture.asset(model.isTimeRemainingInSeconds == 0 ? "assets/images/biometrics.svg" : "assets/images/biometrics.svg"),
).onPress(() { ).onPress(() {
showMyBottomSheet( showMyBottomSheet(context, callBackFunc: () {}, child: MarkAttendanceWidget(model, isFromDashboard: true));
context,
callBackFunc: () {},
child: MarkAttendanceWidget(model, isFromDashboard: true),
);
}), }),
], ],
), ),
@ -404,26 +398,23 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
), ),
], ],
), ),
).onPress( ).onPress(() {
() {
Navigator.pushNamed(context, AppRoutes.todayAttendance); Navigator.pushNamed(context, AppRoutes.todayAttendance);
}, }))
))
.animatedSwither(); .animatedSwither();
}, },
), ),
), ),
), ),
9.width, 9.width,
Expanded( Expanded(child: MenusWidget()),
child: MenusWidget(),
),
], ],
), ),
], ],
).paddingOnly(left: 21, right: 21, top: 7, bottom: 21), ).paddingOnly(left: 21, right: 21, top: 7, bottom: 21),
eventActivityWidget(context), eventActivityWidget(context),
Consumer<DashboardProviderModel>(builder: (BuildContext context, DashboardProviderModel model, Widget? child) { Consumer<DashboardProviderModel>(
builder: (BuildContext context, DashboardProviderModel model, Widget? child) {
if (!model.isOffersLoading && model.getOffersList.isEmpty) { if (!model.isOffersLoading && model.getOffersList.isEmpty) {
return const SizedBox(); return const SizedBox();
} }
@ -446,11 +437,9 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
6.width, 6.width,
Container( Container(
padding: const EdgeInsets.only(left: 8, right: 8), padding: const EdgeInsets.only(left: 8, right: 8),
decoration: BoxDecoration( decoration: BoxDecoration(color: MyColors.yellowColor, borderRadius: BorderRadius.circular(10)),
color: MyColors.yellowColor, child: LocaleKeys.newString.tr().toText10(isBold: true),
borderRadius: BorderRadius.circular(10),
), ),
child: LocaleKeys.newString.tr().toText10(isBold: true)),
], ],
), ),
], ],
@ -458,7 +447,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
), ),
LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true).onPress(() { LocaleKeys.viewAllOffers.tr().toText12(isUnderLine: true).onPress(() {
Navigator.pushNamed(context, AppRoutes.offersAndDiscounts); Navigator.pushNamed(context, AppRoutes.offersAndDiscounts);
}) }),
], ],
).paddingOnly(left: 21, right: 21), ).paddingOnly(left: 21, right: 21),
Consumer<DashboardProviderModel>( Consumer<DashboardProviderModel>(
@ -487,28 +476,22 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
height: 73, height: 73,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(Radius.circular(100)),
Radius.circular(100),
),
border: Border.all(color: MyColors.lightGreyE3Color, width: 1), border: Border.all(color: MyColors.lightGreyE3Color, width: 1),
), ),
child: ClipRRect( child: ClipRRect(
borderRadius: const BorderRadius.all( borderRadius: const BorderRadius.all(Radius.circular(50)),
Radius.circular(50),
),
child: Hero( child: Hero(
tag: "ItemImage" + data.getOffersList[index].offersDiscountId.toString()!, tag: "ItemImage" + data.getOffersList[index].offersDiscountId.toString()!,
transitionOnUserGestures: true, transitionOnUserGestures: true,
child: Image.network( child: Image.network(data.getOffersList[index].logo ?? "", fit: BoxFit.contain),
data.getOffersList[index].logo ?? "",
fit: BoxFit.contain,
),
), ),
), ),
), ),
4.height, 4.height,
Expanded( Expanded(
child: AppState().isArabic(context) child:
AppState().isArabic(context)
? data.getOffersList[index].titleAr!.toText12(isCenter: true, maxLine: 1) ? data.getOffersList[index].titleAr!.toText12(isCenter: true, maxLine: 1)
: data.getOffersList[index].titleEn!.toText12(isCenter: true, maxLine: 1), : data.getOffersList[index].titleEn!.toText12(isCenter: true, maxLine: 1),
), ),
@ -518,13 +501,15 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
); );
}, },
separatorBuilder: (BuildContext cxt, int index) => 8.width, separatorBuilder: (BuildContext cxt, int index) => 8.width,
itemCount: 9), itemCount: 9,
),
); );
}, },
), ),
], ],
); );
}), },
),
Container( Container(
width: double.infinity, width: double.infinity,
padding: const EdgeInsets.only(top: 31), padding: const EdgeInsets.only(top: 31),
@ -588,38 +573,24 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
), ),
), ),
), ),
)
],
), ),
drawer: SafeArea( ],
child: AppDrawer(onLanguageChange: _onRefresh),
), ),
drawer: SafeArea(child: AppDrawer(onLanguageChange: _onRefresh)),
bottomNavigationBar: SizedBox( bottomNavigationBar: SizedBox(
height: Platform.isAndroid ? 70 : 100, height: Platform.isAndroid ? 70 : 100,
child: BottomNavigationBar( child: BottomNavigationBar(
items: <BottomNavigationBarItem>[ items: <BottomNavigationBarItem>[
BottomNavigationBarItem(icon: SvgPicture.asset("assets/icons/home.svg", color: currentIndex == 0 ? MyColors.grey3AColor : MyColors.grey98Color).paddingAll(4), label: LocaleKeys.home.tr()),
BottomNavigationBarItem( BottomNavigationBarItem(
icon: SvgPicture.asset( icon: SvgPicture.asset("assets/icons/create_req.svg", color: currentIndex == 1 ? MyColors.grey3AColor : MyColors.grey98Color).paddingAll(4),
"assets/icons/home.svg",
color: currentIndex == 0 ? MyColors.grey3AColor : MyColors.grey98Color,
).paddingAll(4),
label: LocaleKeys.home.tr(),
),
BottomNavigationBarItem(
icon: SvgPicture.asset(
"assets/icons/create_req.svg",
color: currentIndex == 1 ? MyColors.grey3AColor : MyColors.grey98Color,
).paddingAll(4),
label: LocaleKeys.mowadhafhiRequest.tr(), label: LocaleKeys.mowadhafhiRequest.tr(),
), ),
BottomNavigationBarItem( BottomNavigationBarItem(
icon: Stack( icon: Stack(
alignment: Alignment.centerLeft, alignment: Alignment.centerLeft,
children: [ children: [
SvgPicture.asset( SvgPicture.asset("assets/icons/work_list.svg", color: currentIndex == 2 ? MyColors.grey3AColor : MyColors.grey98Color).paddingAll(4),
"assets/icons/work_list.svg",
color: currentIndex == 2 ? MyColors.grey3AColor : MyColors.grey98Color,
).paddingAll(4),
Consumer<DashboardProviderModel>( Consumer<DashboardProviderModel>(
builder: (BuildContext cxt, DashboardProviderModel data, Widget? child) { builder: (BuildContext cxt, DashboardProviderModel data, Widget? child) {
if (data.workListCounter == 0) { if (data.workListCounter == 0) {
@ -642,10 +613,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
label: LocaleKeys.workList.tr(), label: LocaleKeys.workList.tr(),
), ),
BottomNavigationBarItem( BottomNavigationBarItem(
icon: SvgPicture.asset( icon: SvgPicture.asset("assets/icons/item_for_sale.svg", color: currentIndex == 3 ? MyColors.grey3AColor : MyColors.grey98Color).paddingAll(4),
"assets/icons/item_for_sale.svg",
color: currentIndex == 3 ? MyColors.grey3AColor : MyColors.grey98Color,
).paddingAll(4),
label: LocaleKeys.itemsForSale.tr(), label: LocaleKeys.itemsForSale.tr(),
), ),
BottomNavigationBarItem( BottomNavigationBarItem(
@ -654,7 +622,8 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
children: [ children: [
SvgPicture.asset( SvgPicture.asset(
"assets/icons/chat/chat.svg", "assets/icons/chat/chat.svg",
color: !checkIfPrivilegedForChat() color:
!checkIfPrivilegedForChat()
? MyColors.lightGreyE3Color ? MyColors.lightGreyE3Color
: currentIndex == 4 : currentIndex == 4
? MyColors.grey3AColor ? MyColors.grey3AColor
@ -712,7 +681,7 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
Widget eventActivityWidget(BuildContext context) { Widget eventActivityWidget(BuildContext context) {
return (context.watch<DashboardProviderModel>().isEventLoadingLoading) return (context.watch<DashboardProviderModel>().isEventLoadingLoading)
? const MarathonBannerShimmer().paddingOnly(left: 21, right: 21, bottom: 21, top: 0) ? const MarathonBannerShimmer().paddingOnly(left: 21, right: 21, bottom: 21, top: 0)
: (context.watch<DashboardProviderModel>().eventActivity != null && context.watch<DashboardProviderModel>().eventActivity!.isActive ==true) : (context.watch<DashboardProviderModel>().eventActivity != null && context.watch<DashboardProviderModel>().eventActivity!.isActive == true)
? const EventActivityBanner().paddingOnly(left: 21, right: 21, bottom: 21, top: 0) ? const EventActivityBanner().paddingOnly(left: 21, right: 21, bottom: 21, top: 0)
: const SizedBox(); : const SizedBox();
} }

@ -255,10 +255,9 @@ class ServicesWidget extends StatelessWidget {
} else { } else {
if (menuEntry.menuName == "HMG_TICKET_REQUESTS") { if (menuEntry.menuName == "HMG_TICKET_REQUESTS") {
Utils.showLoading(context); Utils.showLoading(context);
TicketBookingResult response = await pro.fetchTicketBooking(); //Ticket Work
if (pro.ticketBookingResponse != null && pro.ticketBookingResponse!.success) {
if (response.success) { SSOAuthModel? ssoToken = await pro.fetchSSOAuthRedirection(clientID: pro.ticketBookingResponse!.clientId);
SSOAuthModel? ssoToken = await pro.fetchSSOAuthRedirection(clientID: response.clientId);
if (ssoToken != null) { if (ssoToken != null) {
logger.d(ssoToken.data!.toJson()); logger.d(ssoToken.data!.toJson());
logger.d(ssoToken.data!.accessToken); logger.d(ssoToken.data!.accessToken);

Loading…
Cancel
Save