Fixing JIRA Issues

aamir_dev
Faiz Hashmi 1 year ago
parent 36351fc920
commit 31d0368e2a

@ -190,3 +190,5 @@ class MyApp extends StatelessWidget {
); );
} }
} }

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:developer';
import 'package:car_provider_app/view_models/schedule_view_model.dart'; import 'package:car_provider_app/view_models/schedule_view_model.dart';
import 'package:car_provider_app/views/branch_management/branch/dealer/widget/assign_dealer_user_sheet.dart'; import 'package:car_provider_app/views/branch_management/branch/dealer/widget/assign_dealer_user_sheet.dart';
@ -13,6 +14,7 @@ import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart';
import 'package:mc_common_app/models/provider_branches_models/profile/categroy.dart';
import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/utils/navigator.dart';
@ -296,7 +298,7 @@ class _BranchDetailPageState extends State<BranchDetailPage> {
.margin(right: 5), .margin(right: 5),
).onPress(() { ).onPress(() {
if (widget.branchData.branchStatus == BranchStatusEnum.pending || widget.branchData.branchStatus == BranchStatusEnum.rejected) { if (widget.branchData.branchStatus == BranchStatusEnum.pending || widget.branchData.branchStatus == BranchStatusEnum.rejected) {
Utils.showToast("Please wait for the branch verification."); Utils.showToast(LocaleKeys.waitForBranchVerification.tr());
return; return;
} }
context.read<ScheduleVM>().currentSelectedBranchName = widget.branchData.branchName.toString(); context.read<ScheduleVM>().currentSelectedBranchName = widget.branchData.branchName.toString();
@ -308,7 +310,7 @@ class _BranchDetailPageState extends State<BranchDetailPage> {
bgColor: MyColors.white, bgColor: MyColors.white,
onTap: () { onTap: () {
if (widget.branchData.branchStatus == BranchStatusEnum.pending || widget.branchData.branchStatus == BranchStatusEnum.rejected) { if (widget.branchData.branchStatus == BranchStatusEnum.pending || widget.branchData.branchStatus == BranchStatusEnum.rejected) {
Utils.showToast("Please wait for the branch verification."); Utils.showToast(LocaleKeys.waitForBranchVerification.tr());
return; return;
} }
navigateWithName( navigateWithName(
@ -367,7 +369,19 @@ class _BranchDetailPageState extends State<BranchDetailPage> {
return buildServiceTileWidget(pIndex, serviceVM).onPress(() { return buildServiceTileWidget(pIndex, serviceVM).onPress(() {
serviceVM.categories[pIndex].branchId = widget.branchData.id.toString(); serviceVM.categories[pIndex].branchId = widget.branchData.id.toString();
serviceVM.categories[pIndex].branchName = widget.branchData.branchName.toString(); serviceVM.categories[pIndex].branchName = widget.branchData.branchName.toString();
navigateWithName(context, AppRoutes.servicesList, arguments: serviceVM.categories[pIndex]); // CategoryData categoryData = serviceVM.categories[pIndex];
CategoryData categoryData = CategoryData(
id: serviceVM.categories[pIndex].id,
branchId: serviceVM.categories[pIndex].branchId,
branchName: serviceVM.categories[pIndex].branchName,
categoryName: serviceVM.categories[pIndex].categoryName,
categoryNameN: serviceVM.categories[pIndex].categoryNameN,
serviceCategoryIconUrl: serviceVM.categories[pIndex].serviceCategoryIconUrl,
serviceCategoryImageUrl: serviceVM.categories[pIndex].serviceCategoryImageUrl,
services: [],
);
navigateWithName(context, AppRoutes.servicesList, arguments: categoryData);
}); });
}, },
itemCount: serviceVM.categories.length, itemCount: serviceVM.categories.length,

@ -221,18 +221,17 @@ class _CreateItemPageState extends State<CreateItemPage> {
GenericRespModel mResponse = await itemsVM!.createServiceItem(map); GenericRespModel mResponse = await itemsVM!.createServiceItem(map);
Utils.hideLoading(context); Utils.hideLoading(context);
if (mResponse.messageStatus == 1) { if (mResponse.messageStatus == 1) {
itemsVM!.getServiceItems(itemData!.serviceProviderServiceId ?? 0); // itemsVM!.getServiceItems(itemData!.serviceProviderServiceId ?? 0);
pop(context); pop(context);
} }
Utils.showToast(mResponse.message ?? ""); Utils.showToast(mResponse.message ?? "");
} else { } else {
log("attachedIMag: $attachedFile");
Map map = { Map map = {
"id": itemData!.id, "id": itemData!.id,
"name": name, "name": name,
"price": price, "price": price,
"description": description, "description": description,
"itemImage": attachedFile ?? "", "itemImage": file == null ? "" : attachedFile,
"companyID": 1, "companyID": 1,
"manufactureDate": year, "manufactureDate": year,
"serviceProviderServiceID": itemData!.serviceProviderServiceId, "serviceProviderServiceID": itemData!.serviceProviderServiceId,
@ -245,11 +244,10 @@ class _CreateItemPageState extends State<CreateItemPage> {
GenericRespModel mResponse = await itemsVM!.updateServiceItem(map); GenericRespModel mResponse = await itemsVM!.updateServiceItem(map);
Utils.hideLoading(context); Utils.hideLoading(context);
if (mResponse.messageStatus == 1) { if (mResponse.messageStatus == 1) {
itemsVM!.getServiceItems(itemData!.serviceProviderServiceId ?? 0); // itemsVM!.getServiceItems(itemData!.serviceProviderServiceId ?? 0);
pop(context); pop(context);
} }
Utils.showToast(mResponse.message ?? ""); Utils.showToast(mResponse.message ?? "");
pop(context);
} }
} }
}, },

@ -71,7 +71,6 @@ class _CreateServicesPage3State extends State<CreateServicesPage3> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
log("categoryId: ${categoryId}");
return Scaffold( return Scaffold(
appBar: CustomAppBar(title: LocaleKeys.editServices.tr()), appBar: CustomAppBar(title: LocaleKeys.editServices.tr()),
body: SizedBox( body: SizedBox(
@ -291,6 +290,7 @@ class _CreateServicesPage3State extends State<CreateServicesPage3> {
Utils.showToast(mResponse.message ?? ""); Utils.showToast(mResponse.message ?? "");
if (mResponse.messageStatus == 1) { if (mResponse.messageStatus == 1) {
context.read<ServiceVM>().filterUserBranchCategories(); context.read<ServiceVM>().filterUserBranchCategories();
context.read<ServiceVM>().isNeedRefreshServicesList = true;
pop(context); pop(context);
} }
} }

@ -21,7 +21,7 @@ import 'package:easy_localization/easy_localization.dart';
class ItemsListPage extends StatelessWidget { class ItemsListPage extends StatelessWidget {
ServiceModel? serviceProviderService; ServiceModel? serviceProviderService;
ItemsListPage({Key? key}) : super(key: key); ItemsListPage({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -58,9 +58,12 @@ class ItemsListPage extends StatelessWidget {
children: [ children: [
model.serviceItems!.data![index].name.toString().toText(fontSize: 16, isBold: true), model.serviceItems!.data![index].name.toString().toText(fontSize: 16, isBold: true),
4.height, 4.height,
showItem("${LocaleKeys.availableforAppointment.tr()}:", (model.serviceItems!.data![index].isAllowAppointment ?? false) ? "Yes" : "No", valueColor: Colors.green), showItem("${LocaleKeys.availableforAppointment.tr()}:", (model.serviceItems!.data![index].isAllowAppointment ?? false) ? "Yes" : "No",
showItem("${LocaleKeys.allowingWorkshopService.tr()}:", (model.serviceItems!.data![index].isAppointmentCompanyLoc ?? false) ? "Yes" : "No", valueColor: Colors.green), valueColor: Colors.green),
showItem("${LocaleKeys.allowingHomeService.tr()}:", (model.serviceItems!.data![index].isAppointmentCustomerLoc ?? false) ? "Yes" : "No", valueColor: Colors.green), showItem("${LocaleKeys.allowingWorkshopService.tr()}:", (model.serviceItems!.data![index].isAppointmentCompanyLoc ?? false) ? "Yes" : "No",
valueColor: Colors.green),
showItem("${LocaleKeys.allowingHomeService.tr()}:", (model.serviceItems!.data![index].isAppointmentCustomerLoc ?? false) ? "Yes" : "No",
valueColor: Colors.green),
12.height, 12.height,
LocaleKeys.serviceAmount.tr().toText(fontSize: 13, color: MyColors.lightTextColor), LocaleKeys.serviceAmount.tr().toText(fontSize: 13, color: MyColors.lightTextColor),
Row( Row(

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'dart:developer';
import 'package:car_provider_app/views/branch_management/services/duplication/sheet/approved_branches_list_sheet.dart'; import 'package:car_provider_app/views/branch_management/services/duplication/sheet/approved_branches_list_sheet.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
@ -60,26 +61,53 @@ class _ServicesListPageState extends State<ServicesListPage> {
@override @override
void initState() { void initState() {
scheduleMicrotask(() async { scheduleMicrotask(() async {
await _fetchServices(); await _fetchServices(ServiceStatusEnum.approvedOrActive);
}); });
super.initState(); super.initState();
} }
Future<void> _fetchServices() async { Future<void> _fetchServices(ServiceStatusEnum status) async {
categoryData.services = await context.read<ServiceVM>().fetchProviderServicesModelByCategoryIdAndBranchID( categoryData.services = await context.read<ServiceVM>().fetchProviderServicesModelByCategoryIdAndBranchID(
branchID: categoryData.branchId.toString(), branchID: categoryData.branchId.toString(),
categoryId: categoryData.id.toString(), categoryId: categoryData.id.toString(),
); );
filteredServices = categoryData.services!.where((i) => i.serviceStatus == ServiceStatusEnum.approvedOrActive.index + 1).toList(); filteredServices = categoryData.services!.where((i) => i.serviceStatus == status.index + 1).toList();
screenState = ViewState.idle; screenState = ViewState.idle;
setState(() {}); setState(() {});
} }
Future<void> _onRefresh(ServiceStatusEnum status, int tab) async {
screenState = ViewState.busy;
selectedService = status;
selectedTab = tab;
setState(() {});
categoryData.services = await context.read<ServiceVM>().fetchProviderServicesModelByCategoryIdAndBranchID(
branchID: categoryData.branchId.toString(),
categoryId: categoryData.id.toString(),
);
if (selectedService == ServiceStatusEnum.approvedOrActive) {
filteredServices = categoryData.services!.where((i) => i.serviceStatus == ServiceStatusEnum.approvedOrActive.index + 1).toList();
} else {
filteredServices = categoryData.services!.where((i) => i.serviceStatus != ServiceStatusEnum.approvedOrActive.index + 1).toList();
}
screenState = ViewState.idle;
setState(() {});
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
categoryData = ModalRoute.of(context)!.settings.arguments as CategoryData; categoryData = ModalRoute.of(context)!.settings.arguments as CategoryData;
if (context.read<ServiceVM>().isNeedRefreshServicesList) {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted) {
_onRefresh(ServiceStatusEnum.pending, 1);
context.read<ServiceVM>().isNeedRefreshServicesList = false;
}
});
}
return Scaffold( return Scaffold(
appBar: CustomAppBar( appBar: CustomAppBar(
title: LocaleKeys.services.tr(), title: LocaleKeys.services.tr(),
@ -128,22 +156,7 @@ class _ServicesListPageState extends State<ServicesListPage> {
const SizedBox(height: 10), const SizedBox(height: 10),
Expanded( Expanded(
child: RefreshIndicator( child: RefreshIndicator(
onRefresh: () async { onRefresh: () async => _onRefresh(selectedService, selectedTab),
screenState = ViewState.busy;
setState(() {});
categoryData.services = await context.read<ServiceVM>().fetchProviderServicesModelByCategoryIdAndBranchID(
branchID: categoryData.branchId.toString(),
categoryId: categoryData.id.toString(),
);
if (selectedService == ServiceStatusEnum.approvedOrActive) {
filteredServices = categoryData.services!.where((i) => i.serviceStatus == ServiceStatusEnum.approvedOrActive.index + 1).toList();
} else {
filteredServices = categoryData.services!.where((i) => i.serviceStatus != ServiceStatusEnum.approvedOrActive.index + 1).toList();
}
screenState = ViewState.idle;
setState(() {});
},
child: screenState == ViewState.busy child: screenState == ViewState.busy
? const Center( ? const Center(
child: CircularProgressIndicator(), child: CircularProgressIndicator(),
@ -165,9 +178,7 @@ class _ServicesListPageState extends State<ServicesListPage> {
], ],
Row( Row(
children: [ children: [
Expanded( Expanded(child: (filteredServices[index].serviceDescription ?? "").toText(fontSize: 16)),
child: (filteredServices[index].serviceDescription ?? "").toText(fontSize: 16),
),
if (filteredServices[index].serviceStatus != 1) ...[ if (filteredServices[index].serviceStatus != 1) ...[
Padding( Padding(
padding: const EdgeInsets.all(4.0), padding: const EdgeInsets.all(4.0),
@ -176,7 +187,7 @@ class _ServicesListPageState extends State<ServicesListPage> {
width: 16, width: 16,
height: 16, height: 16,
), ),
).onPress(() { ).onPress(() async {
navigateWithName(context, AppRoutes.createServices3, navigateWithName(context, AppRoutes.createServices3,
arguments: CreateBranchModel( arguments: CreateBranchModel(
branchId: categoryData.branchId ?? '', branchId: categoryData.branchId ?? '',

@ -9,7 +9,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# followed by an optional build number separated by a +. # followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter # Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively. # build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode. # In Android, build-name is used as versionName while build-number used as versionCode.e
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at # Read more about iOS versioning at
@ -40,9 +40,9 @@ dependencies:
# path: C:/Users/mirza.shafique/AndroidStudioProjects/mc_common_app # path: C:/Users/mirza.shafique/AndroidStudioProjects/mc_common_app
mc_common_app: mc_common_app:
# path: D:\Development\car_common_app # path: D:\Development\car_common_app
# path: /Users/amir/StudioProjects/car_common_app # path: /Users/amir/StudioProjects/car_common_app
path: /Volumes/Data/Projects/Flutter/car_common_app path: /Volumes/Data/Projects/Flutter/car_common_app

Loading…
Cancel
Save