|
|
|
|
@ -1,246 +1,11 @@
|
|
|
|
|
// import 'dart:convert';
|
|
|
|
|
// import 'dart:io';
|
|
|
|
|
//
|
|
|
|
|
// import 'package:car_provider_app/repositories/branch_repo.dart';
|
|
|
|
|
// import 'package:mc_common_app/models/m_response.dart';
|
|
|
|
|
//
|
|
|
|
|
// import 'package:mc_common_app/models/model/provider_model.dart';
|
|
|
|
|
// import 'package:mc_common_app/models/profile/categroy.dart';
|
|
|
|
|
// import 'package:mc_common_app/models/profile/document.dart';
|
|
|
|
|
// import 'package:mc_common_app/models/profile/services.dart';
|
|
|
|
|
// import 'package:mc_common_app/models/services/branch_model.dart';
|
|
|
|
|
// import 'package:mc_common_app/models/services/item_model.dart';
|
|
|
|
|
// import 'package:mc_common_app/models/services/service_model.dart';
|
|
|
|
|
// import 'package:mc_common_app/models/user/cities.dart';
|
|
|
|
|
// import 'package:mc_common_app/models/user/country.dart';
|
|
|
|
|
// import 'package:mc_common_app/repositories/common_repo.dart';
|
|
|
|
|
// import 'package:mc_common_app/services/common_services.dart';
|
|
|
|
|
// import 'package:mc_common_app/utils/enums.dart';
|
|
|
|
|
// import 'package:mc_common_app/utils/utils.dart';
|
|
|
|
|
// import 'package:mc_common_app/view_models/base_view_model.dart';
|
|
|
|
|
// import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
|
|
|
|
|
// import 'package:file_picker/file_picker.dart';
|
|
|
|
|
//
|
|
|
|
|
// class ServiceVM extends BaseVM {
|
|
|
|
|
// final BranchRepo branchRepo;
|
|
|
|
|
// final CommonAppServices commonServices;
|
|
|
|
|
// final CommonRepo commonRepo;
|
|
|
|
|
//
|
|
|
|
|
// ServiceVM({required this.branchRepo, required this.commonServices, required this.commonRepo});
|
|
|
|
|
//
|
|
|
|
|
// //Documents & Branches
|
|
|
|
|
// int selectedBranchStatus = 3;
|
|
|
|
|
// Document? document;
|
|
|
|
|
// ProviderModel? branchs;
|
|
|
|
|
// Country? country;
|
|
|
|
|
// Cities? cities;
|
|
|
|
|
// DropValue? countryValue;
|
|
|
|
|
// DropValue? cityValue;
|
|
|
|
|
// List<DropValue> countryDropList = [];
|
|
|
|
|
// List<DropValue> citiesDropList = [];
|
|
|
|
|
// double latitude = 0, longitude = 0;
|
|
|
|
|
// int role = -1, countryId = -1, cityId = -1;
|
|
|
|
|
// String countryCode = "", address = "", branchName = "", branchDescription = "";
|
|
|
|
|
//
|
|
|
|
|
// getServiceProviderDocument(int providerId) async {
|
|
|
|
|
// setState(ViewState.busy);
|
|
|
|
|
// document = await branchRepo.getServiceProviderDocument(providerId);
|
|
|
|
|
// setState(ViewState.idle);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// selectFile(int index) async {
|
|
|
|
|
// File? file = await commonServices.pickFile(fileType: FileType.custom, allowedExtensions: ['png', 'pdf', 'jpeg']);
|
|
|
|
|
//
|
|
|
|
|
// if (file != null) {
|
|
|
|
|
// int sizeInBytes = file.lengthSync();
|
|
|
|
|
// // double sizeInMb = sizeInBytes / (1024 * 1024);
|
|
|
|
|
// if (sizeInBytes > 1000) {
|
|
|
|
|
// Utils.showToast("File is larger then 1KB");
|
|
|
|
|
// } else {
|
|
|
|
|
// document!.data![index].document = Utils.convertFileToBase64(file);
|
|
|
|
|
// document!.data![index].fileExt = Utils.checkFileExt(file.path);
|
|
|
|
|
// document!.data![index].documentUrl = file.path;
|
|
|
|
|
// setState(ViewState.idle);
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// // User canceled the picker
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Future<MResponse> updateDocument(List<DocumentData>? data) async {
|
|
|
|
|
// return await branchRepo.serviceProviderDocumentsUpdate(data);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// //Create new branch
|
|
|
|
|
// getBranchAndServices() async {
|
|
|
|
|
// setState(ViewState.busy);
|
|
|
|
|
// branchs = await branchRepo.getBranchAndServices();
|
|
|
|
|
// setState(ViewState.idle);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// getAllCountriesList(BranchModel? branchData, String countryCode) async {
|
|
|
|
|
// setState(ViewState.busy);
|
|
|
|
|
// resetValues();
|
|
|
|
|
// country = await commonRepo.getAllCountries();
|
|
|
|
|
// country!.data?.forEach((element) {
|
|
|
|
|
// if (branchData != null) if (branchData.id != null) {
|
|
|
|
|
// if (element.id == branchData.countryID) {
|
|
|
|
|
// countryValue = DropValue(element.id ?? 0, countryCode == "SA" ? (element.countryNameN ?? "") : (element.countryName ?? ""), element.countryCode ?? "");
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// countryDropList.add(DropValue(element.id ?? 0, countryCode == "SA" ? (element.countryNameN ?? "") : (element.countryName ?? ""), element.countryCode ?? ""));
|
|
|
|
|
// });
|
|
|
|
|
// if (branchData != null) if (branchData.id != null) getAllCities(branchData, countryCode);
|
|
|
|
|
// setState(ViewState.idle);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// getAllCities(BranchModel? branchData, String countryCode) async {
|
|
|
|
|
// setState(ViewState.busy);
|
|
|
|
|
// citiesDropList.clear();
|
|
|
|
|
// cities = null;
|
|
|
|
|
// cityId = -1;
|
|
|
|
|
// cities = await commonRepo.getAllCites(countryId.toString());
|
|
|
|
|
// cities!.data?.forEach((element) {
|
|
|
|
|
// if (branchData != null && branchData.id != null) {
|
|
|
|
|
// if (element.id == branchData.cityId) {
|
|
|
|
|
// address = branchData.address!;
|
|
|
|
|
// branchName = branchData.branchName!;
|
|
|
|
|
// branchDescription = branchData.branchDescription!;
|
|
|
|
|
// latitude = double.parse(branchData.latitude ?? "");
|
|
|
|
|
// longitude = double.parse(branchData.longitude ?? "");
|
|
|
|
|
// countryId = branchData.countryID!;
|
|
|
|
|
// cityId = branchData.cityId!;
|
|
|
|
|
// cityValue = DropValue(element.id ?? 0, countryCode == "SA" ? (element.cityNameN ?? "") : (element.cityName ?? ""), element.id.toString() ?? "");
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// citiesDropList.add(DropValue(element.id ?? 0, countryCode == "SA" ? (element.cityNameN ?? "") : (element.cityName ?? ""), element.id.toString() ?? ""));
|
|
|
|
|
// });
|
|
|
|
|
// setState(ViewState.idle);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Future<MResponse> createBranch(String branchName, String branchDescription, String cityId, String address, String latitude, String longitude) async {
|
|
|
|
|
// return await branchRepo.createBranch(branchName, branchDescription, cityId.toString(), address, latitude.toString(), longitude.toString());
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Future<MResponse> updateBranch(int id, String branchName, String branchDescription, String cityId, String address, String latitude, String longitude, {bool isNeedToDelete = true}) async {
|
|
|
|
|
// return await branchRepo.updateBranch(id ?? 0, branchName, branchDescription, cityId.toString(), address, latitude.toString(), longitude.toString());
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// resetValues() {
|
|
|
|
|
// countryCode = "";
|
|
|
|
|
// address = "";
|
|
|
|
|
// branchName = "";
|
|
|
|
|
// branchDescription = "";
|
|
|
|
|
// latitude = 0;
|
|
|
|
|
// longitude = 0;
|
|
|
|
|
// role = -1;
|
|
|
|
|
// countryId = -1;
|
|
|
|
|
// cityId = -1;
|
|
|
|
|
// countryDropList.clear();
|
|
|
|
|
// countryId = -1;
|
|
|
|
|
// cityId = -1;
|
|
|
|
|
// cities = null;
|
|
|
|
|
// categoryDropList = [];
|
|
|
|
|
// servicesDropList = [];
|
|
|
|
|
// services = null;
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// //Create Services
|
|
|
|
|
// Services? services;
|
|
|
|
|
// List<DropValue> categoryDropList = [];
|
|
|
|
|
// List<DropValue> servicesDropList = [];
|
|
|
|
|
//
|
|
|
|
|
// fetchBranchCategory(String countryCode) async {
|
|
|
|
|
// categoryDropList.clear();
|
|
|
|
|
// servicesDropList = [];
|
|
|
|
|
// services = null;
|
|
|
|
|
// setState(ViewState.busy);
|
|
|
|
|
// Category? category = await branchRepo.fetchBranchCategory();
|
|
|
|
|
// category.data?.forEach((element) {
|
|
|
|
|
// categoryDropList.add(DropValue(
|
|
|
|
|
// element.id ?? 0,
|
|
|
|
|
// ((element.categoryName!.isEmpty
|
|
|
|
|
// ? "N/A"
|
|
|
|
|
// : countryCode == "SA"
|
|
|
|
|
// ? element.categoryNameN
|
|
|
|
|
// : element.categoryName) ??
|
|
|
|
|
// "N/A"),
|
|
|
|
|
// ""));
|
|
|
|
|
// });
|
|
|
|
|
// setState(ViewState.idle);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// fetchServicesByCategoryId(String categoryId) async {
|
|
|
|
|
// servicesDropList = [];
|
|
|
|
|
// setState(ViewState.busy);
|
|
|
|
|
// services = await branchRepo.fetchServicesByCategoryId(categoryId);
|
|
|
|
|
//
|
|
|
|
|
// for (var element in services!.data!) {
|
|
|
|
|
// servicesDropList.add(DropValue(element.id ?? 0, element.description ?? "N/aA", ""));
|
|
|
|
|
// }
|
|
|
|
|
// setState(ViewState.idle);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Future<MResponse> createService(List<Map<String, dynamic>> map) async {
|
|
|
|
|
// return await branchRepo.createService(map);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Future<MResponse> updateServices(List<Map<String, dynamic>> map) async {
|
|
|
|
|
// return await branchRepo.updateService(map);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// updateSelectedBranchType(int status) {
|
|
|
|
|
// selectedBranchStatus = status;
|
|
|
|
|
// notifyListeners();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// List<ServiceModel>? matchedServices;
|
|
|
|
|
// bool isAllSelected = false;
|
|
|
|
|
//
|
|
|
|
|
// getAllMatchedServices(int oldBranchId, int newBranchId, int categoryId) async {
|
|
|
|
|
// matchedServices = null;
|
|
|
|
|
// MResponse response = await branchRepo.getMatchedServices(oldBranchId, newBranchId, categoryId);
|
|
|
|
|
// matchedServices = [];
|
|
|
|
|
// if (response.messageStatus == 1) {
|
|
|
|
|
// matchedServices = List<ServiceModel>.from(response.data.map((x) => ServiceModel.fromJson(x)));
|
|
|
|
|
// }
|
|
|
|
|
// notifyListeners();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// selectAllServices(bool value) {
|
|
|
|
|
// for (var element in matchedServices!) {
|
|
|
|
|
// element.isExpandedOrSelected = value;
|
|
|
|
|
// for (var item in element.serviceItems!) {
|
|
|
|
|
// item.isUpdateOrSelected = value;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// isAllSelected = value;
|
|
|
|
|
// notifyListeners();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// updateServiceItem(int serviceIndex, bool value) {
|
|
|
|
|
// for (var element in matchedServices![serviceIndex].serviceItems!) {
|
|
|
|
|
// element.isUpdateOrSelected = value;
|
|
|
|
|
// }
|
|
|
|
|
// notifyListeners();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// copyItems(int index, List<ItemData> copiedItems) {
|
|
|
|
|
// matchedServices![index].serviceItems = copiedItems;
|
|
|
|
|
// notifyListeners();
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// Future<MResponse> duplicateItems(Map<String, dynamic> map) async {
|
|
|
|
|
// return await branchRepo.duplicateItems(map);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
import 'dart:io';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:mc_common_app/classes/app_state.dart';
|
|
|
|
|
import 'package:mc_common_app/generated/locale_keys.g.dart';
|
|
|
|
|
import 'package:mc_common_app/models/general_models/generic_resp_model.dart';
|
|
|
|
|
import 'package:mc_common_app/repositories/branch_repo.dart';
|
|
|
|
|
import 'package:file_picker/file_picker.dart';
|
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
|
import 'package:mc_common_app/models/general_models/m_response.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/models/provider_branches_models/profile/document.dart';
|
|
|
|
|
@ -255,7 +20,9 @@ import 'package:mc_common_app/repositories/common_repo.dart';
|
|
|
|
|
import 'package:mc_common_app/services/common_services.dart';
|
|
|
|
|
import 'package:mc_common_app/utils/app_permission_handler.dart';
|
|
|
|
|
import 'package:mc_common_app/utils/enums.dart';
|
|
|
|
|
import 'package:mc_common_app/utils/navigator.dart';
|
|
|
|
|
import 'package:mc_common_app/utils/utils.dart';
|
|
|
|
|
import 'package:mc_common_app/view_models/ad_view_model.dart';
|
|
|
|
|
import 'package:mc_common_app/view_models/base_view_model.dart';
|
|
|
|
|
import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart';
|
|
|
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
|
|
|
@ -291,12 +58,49 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
String branchName = "";
|
|
|
|
|
String branchDescription = "";
|
|
|
|
|
|
|
|
|
|
double getDistanceFromMe({
|
|
|
|
|
required String destLatitude,
|
|
|
|
|
required String destLongitude,
|
|
|
|
|
}) {
|
|
|
|
|
double distance = commonServices.getDistanceBetween(
|
|
|
|
|
curLatitude: AppState().currentLocation.latitude,
|
|
|
|
|
curLongitude: AppState().currentLocation.longitude,
|
|
|
|
|
destLatitude: double.parse(destLatitude),
|
|
|
|
|
destLongitude: double.parse(destLongitude),
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return distance;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> getServiceProviderDocument(int providerId) async {
|
|
|
|
|
setState(ViewState.busy);
|
|
|
|
|
document = await branchRepo.getServiceProviderDocument(providerId);
|
|
|
|
|
setState(ViewState.idle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<ImageModel> pickedBranchImages = [];
|
|
|
|
|
String branchImageError = "";
|
|
|
|
|
|
|
|
|
|
void removeImageFromList(String filePath) {
|
|
|
|
|
int index = pickedBranchImages.indexWhere((element) => element.filePath == filePath);
|
|
|
|
|
if (index == -1) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
pickedBranchImages.removeAt(index);
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void pickMultipleImages() async {
|
|
|
|
|
List<ImageModel> imageModels = [];
|
|
|
|
|
List<File> images = await commonServices.pickMultipleImages();
|
|
|
|
|
for (var element in images) {
|
|
|
|
|
imageModels.add(ImageModel(filePath: element.path, isFromNetwork: false));
|
|
|
|
|
}
|
|
|
|
|
pickedBranchImages.addAll(imageModels);
|
|
|
|
|
if (pickedBranchImages.isNotEmpty) branchImageError = "";
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> selectFile(BuildContext context, int index) async {
|
|
|
|
|
final status = await AppPermissions.checkStoragePermissions(context);
|
|
|
|
|
if (status) {
|
|
|
|
|
@ -305,23 +109,6 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
fileType: FileType.custom,
|
|
|
|
|
allowedExtensions: ['png', 'pdf', 'jpeg'],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// if (result != null) {
|
|
|
|
|
// final File file = File(result.files.single.path!);
|
|
|
|
|
// final int sizeInBytes = file.lengthSync();
|
|
|
|
|
//
|
|
|
|
|
// if (sizeInBytes > 1000) {
|
|
|
|
|
// Utils.showToast("File is larger than 1KB");
|
|
|
|
|
// } else {
|
|
|
|
|
// document!.data![index].document = Utils.convertFileToBase64(file);
|
|
|
|
|
// document!.data![index].fileExt = Utils.checkFileExt(file.path);
|
|
|
|
|
// document!.data![index].documentUrl = file.path;
|
|
|
|
|
// setState(ViewState.idle);
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// // User canceled the picker
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
if (file != null) {
|
|
|
|
|
int sizeInBytes = file.lengthSync();
|
|
|
|
|
// double sizeInMb = sizeInBytes / (1024 * 1024);
|
|
|
|
|
@ -339,7 +126,7 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<MResponse> updateDocument(List<DocumentData>? data) async {
|
|
|
|
|
Future<GenericRespModel> updateDocument(List<DocumentData>? data) async {
|
|
|
|
|
return await branchRepo.serviceProviderDocumentsUpdate(data);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -362,9 +149,7 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
countryId = element.id ?? -1;
|
|
|
|
|
countryValue = DropValue(
|
|
|
|
|
element.id ?? 0,
|
|
|
|
|
countryCode == "SA"
|
|
|
|
|
? (element.countryNameN ?? "")
|
|
|
|
|
: (element.countryName ?? ""),
|
|
|
|
|
countryCode == "SA" ? (element.countryNameN ?? "") : (element.countryName ?? ""),
|
|
|
|
|
element.countryCode ?? "",
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
@ -372,9 +157,7 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
countryDropList.add(
|
|
|
|
|
DropValue(
|
|
|
|
|
element.id ?? 0,
|
|
|
|
|
countryCode == "SA"
|
|
|
|
|
? (element.countryNameN ?? "")
|
|
|
|
|
: (element.countryName ?? ""),
|
|
|
|
|
countryCode == "SA" ? (element.countryNameN ?? "") : (element.countryName ?? ""),
|
|
|
|
|
element.countryCode ?? "",
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
@ -404,43 +187,34 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
cityId = branchData.cityId!;
|
|
|
|
|
cityValue = DropValue(
|
|
|
|
|
element.id ?? 0,
|
|
|
|
|
countryCode == "SA"
|
|
|
|
|
? (element.cityNameN ?? "")
|
|
|
|
|
: (element.cityName ?? ""),
|
|
|
|
|
element.id.toString() ?? "",
|
|
|
|
|
countryCode == "SA" ? (element.cityNameN ?? "") : (element.cityName ?? ""),
|
|
|
|
|
(element.id ?? "").toString(),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
citiesDropList.add(
|
|
|
|
|
DropValue(
|
|
|
|
|
element.id ?? 0,
|
|
|
|
|
countryCode == "SA"
|
|
|
|
|
? (element.cityNameN ?? "")
|
|
|
|
|
: (element.cityName ?? ""),
|
|
|
|
|
element.id.toString() ?? "",
|
|
|
|
|
countryCode == "SA" ? (element.cityNameN ?? "") : (element.cityName ?? ""),
|
|
|
|
|
(element.id ?? "").toString(),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
setState(ViewState.idle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<MResponse> createBranch(String branchName, String branchDescription,
|
|
|
|
|
String cityId, String address, String latitude, String longitude) async {
|
|
|
|
|
return await branchRepo.createBranch(branchName, branchDescription,
|
|
|
|
|
cityId.toString(), address, latitude.toString(), longitude.toString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<MResponse> updateBranch(int id,
|
|
|
|
|
String branchName,
|
|
|
|
|
String branchDescription,
|
|
|
|
|
String cityId,
|
|
|
|
|
String address,
|
|
|
|
|
String latitude,
|
|
|
|
|
String longitude, {
|
|
|
|
|
bool isNeedToDelete = true,
|
|
|
|
|
}) async {
|
|
|
|
|
Future<GenericRespModel> updateBranch(
|
|
|
|
|
int id,
|
|
|
|
|
String branchName,
|
|
|
|
|
String branchDescription,
|
|
|
|
|
String cityId,
|
|
|
|
|
String address,
|
|
|
|
|
String latitude,
|
|
|
|
|
String longitude, {
|
|
|
|
|
bool isNeedToDelete = true,
|
|
|
|
|
}) async {
|
|
|
|
|
return await branchRepo.updateBranch(
|
|
|
|
|
id ?? 0,
|
|
|
|
|
id,
|
|
|
|
|
branchName,
|
|
|
|
|
branchDescription,
|
|
|
|
|
cityId.toString(),
|
|
|
|
|
@ -485,10 +259,10 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
DropValue(
|
|
|
|
|
element.id ?? 0,
|
|
|
|
|
((element.categoryName!.isEmpty
|
|
|
|
|
? "N/A"
|
|
|
|
|
: countryCode == "SA"
|
|
|
|
|
? element.categoryNameN
|
|
|
|
|
: element.categoryName) ??
|
|
|
|
|
? "N/A"
|
|
|
|
|
: countryCode == "SA"
|
|
|
|
|
? element.categoryNameN
|
|
|
|
|
: element.categoryName) ??
|
|
|
|
|
"N/A"),
|
|
|
|
|
"",
|
|
|
|
|
),
|
|
|
|
|
@ -500,8 +274,7 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
Future<void> fetchServicesByCategoryId(int categoryId) async {
|
|
|
|
|
servicesDropList = [];
|
|
|
|
|
setState(ViewState.busy);
|
|
|
|
|
services = await branchRepo.fetchServicesByCategoryId(
|
|
|
|
|
serviceCategoryId: categoryId); // to get all the services
|
|
|
|
|
services = await branchRepo.fetchServicesByCategoryId(serviceCategoryId: categoryId); // to get all the services
|
|
|
|
|
for (var element in services!.data!) {
|
|
|
|
|
servicesDropList.add(
|
|
|
|
|
DropValue(
|
|
|
|
|
@ -532,11 +305,11 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
setState(ViewState.idle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<MResponse> createService(List<Map<String, dynamic>> map) async {
|
|
|
|
|
Future<GenericRespModel> createService(List<Map<String, dynamic>> map) async {
|
|
|
|
|
return await branchRepo.createService(map);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<MResponse> updateServices(List<Map<String, dynamic>> map) async {
|
|
|
|
|
Future<GenericRespModel> updateServices(List<Map<String, dynamic>> map) async {
|
|
|
|
|
return await branchRepo.updateService(map);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -550,13 +323,11 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
|
|
|
|
|
Future<void> getAllMatchedServices(int oldBranchId, int newBranchId, int categoryId) async {
|
|
|
|
|
matchedServices = null;
|
|
|
|
|
final MResponse response = await branchRepo.getMatchedServices(
|
|
|
|
|
oldBranchId, newBranchId, categoryId);
|
|
|
|
|
final GenericRespModel response = await branchRepo.getMatchedServices(oldBranchId, newBranchId, categoryId);
|
|
|
|
|
matchedServices = [];
|
|
|
|
|
|
|
|
|
|
if (response.messageStatus == 1) {
|
|
|
|
|
matchedServices = List<ServiceModel>.from(
|
|
|
|
|
response.data.map((x) => ServiceModel.fromJson(x)));
|
|
|
|
|
matchedServices = List<ServiceModel>.from(response.data.map((x) => ServiceModel.fromJson(x)));
|
|
|
|
|
}
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
@ -584,7 +355,7 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<MResponse> duplicateItems(Map<String, dynamic> map) async {
|
|
|
|
|
Future<GenericRespModel> duplicateItems(Map<String, dynamic> map) async {
|
|
|
|
|
return await branchRepo.duplicateItems(map);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -594,38 +365,89 @@ class ServiceVM extends BaseVM {
|
|
|
|
|
|
|
|
|
|
getAllProviderDealers(Map<String, dynamic> map) async {
|
|
|
|
|
setState(ViewState.busy);
|
|
|
|
|
MResponse response = await branchRepo.getAllProviderDealers(map);
|
|
|
|
|
GenericRespModel response = await branchRepo.getAllProviderDealers(map);
|
|
|
|
|
if (response.messageStatus == 1) {
|
|
|
|
|
allProviderDealersList = [];
|
|
|
|
|
allProviderDealersList = List<BranchUser>.from(
|
|
|
|
|
response.data.map((x) => BranchUser.fromJson(x)));
|
|
|
|
|
allProviderDealersList = List<BranchUser>.from(response.data.map((x) => BranchUser.fromJson(x)));
|
|
|
|
|
}
|
|
|
|
|
setState(ViewState.idle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> getBranchUsers(Map<String, dynamic> map) async {
|
|
|
|
|
setState(ViewState.busy);
|
|
|
|
|
MResponse response = await branchRepo.getBranchUsers(map);
|
|
|
|
|
GenericRespModel response = await branchRepo.getBranchUsers(map);
|
|
|
|
|
if (response.messageStatus == 1) {
|
|
|
|
|
branchUserList = [];
|
|
|
|
|
branchUserList = List<BranchUser>.from(
|
|
|
|
|
response.data.map((x) => BranchUser.fromJson(x)));
|
|
|
|
|
branchUserList = List<BranchUser>.from(response.data.map((x) => BranchUser.fromJson(x)));
|
|
|
|
|
}
|
|
|
|
|
setState(ViewState.idle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<MResponse> assignDealerToBranch(Map<String, dynamic> map) async {
|
|
|
|
|
MResponse response = await branchRepo.assignDealerToBranch(map);
|
|
|
|
|
Future<GenericRespModel> assignDealerToBranch(Map<String, dynamic> map) async {
|
|
|
|
|
GenericRespModel response = await branchRepo.assignDealerToBranch(map);
|
|
|
|
|
return response;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<MResponse> removeDealerFromBranch(Map<String, dynamic> map) async {
|
|
|
|
|
MResponse response = await branchRepo.removeDealerFromBranch(map);
|
|
|
|
|
Future<GenericRespModel> removeDealerFromBranch(Map<String, dynamic> map) async {
|
|
|
|
|
GenericRespModel response = await branchRepo.removeDealerFromBranch(map);
|
|
|
|
|
return response;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<MResponse> addNewServiceInAppointment(Map<String, dynamic> map) async {
|
|
|
|
|
MResponse response = await branchRepo.addNewServicesInAppointment(map);
|
|
|
|
|
Future<GenericRespModel> addNewServiceInAppointment(Map<String, dynamic> map) async {
|
|
|
|
|
GenericRespModel response = await branchRepo.addNewServicesInAppointment(map);
|
|
|
|
|
return response;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> onCreateBranchPressed({
|
|
|
|
|
required BuildContext context,
|
|
|
|
|
required String branchName,
|
|
|
|
|
required String branchDesc,
|
|
|
|
|
required int cityID,
|
|
|
|
|
required String address,
|
|
|
|
|
required double latitude,
|
|
|
|
|
required double longitude,
|
|
|
|
|
}) async {
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
GenericRespModel res = await branchRepo.createBranch(branchName, branchDesc, cityID.toString(), address, latitude.toString(), longitude.toString());
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
if (res.messageStatus == 1) {
|
|
|
|
|
Utils.showToast(LocaleKeys.branch_created.tr());
|
|
|
|
|
updateSelectedBranchType(1);
|
|
|
|
|
pop(context);
|
|
|
|
|
getBranchAndServices();
|
|
|
|
|
} else {
|
|
|
|
|
Utils.showToast(res.message ?? "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> onUpdateBranchPressed({
|
|
|
|
|
required BuildContext context,
|
|
|
|
|
required int branchID,
|
|
|
|
|
required String branchName,
|
|
|
|
|
required String branchDesc,
|
|
|
|
|
required int cityID,
|
|
|
|
|
required String address,
|
|
|
|
|
required double latitude,
|
|
|
|
|
required String longitude,
|
|
|
|
|
}) async {
|
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
GenericRespModel res = await updateBranch(
|
|
|
|
|
branchID ?? 0,
|
|
|
|
|
branchName,
|
|
|
|
|
branchDescription,
|
|
|
|
|
cityId.toString(),
|
|
|
|
|
address,
|
|
|
|
|
latitude.toString(),
|
|
|
|
|
longitude.toString(),
|
|
|
|
|
);
|
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
if (res.messageStatus == 1) {
|
|
|
|
|
Utils.showToast(LocaleKeys.branch_updated.tr());
|
|
|
|
|
pop(context);
|
|
|
|
|
pop(context);
|
|
|
|
|
getBranchAndServices();
|
|
|
|
|
} else {
|
|
|
|
|
Utils.showToast(res.message ?? "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|