|
|
|
|
@ -6,6 +6,7 @@ import 'package:mc_common_app/classes/consts.dart';
|
|
|
|
|
import 'package:mc_common_app/config/dependencies.dart';
|
|
|
|
|
import 'package:mc_common_app/config/routes.dart';
|
|
|
|
|
import 'package:mc_common_app/extensions/string_extensions.dart';
|
|
|
|
|
import 'package:mc_common_app/main.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/ads_bank_details_model.dart';
|
|
|
|
|
import 'package:mc_common_app/models/advertisment_models/ads_duration_model.dart';
|
|
|
|
|
@ -69,6 +70,9 @@ class AdVM extends BaseVM {
|
|
|
|
|
String adReservePriceError = "";
|
|
|
|
|
String adPhoneNumberError = "";
|
|
|
|
|
|
|
|
|
|
// Edit Variables Amir
|
|
|
|
|
bool isAdEdit = false;
|
|
|
|
|
|
|
|
|
|
List<AdDetailsModel> exploreAds = [];
|
|
|
|
|
List<AdDetailsModel> exploreAdsFilteredList = [];
|
|
|
|
|
List<AdDetailsModel> myAdsFilteredList = [];
|
|
|
|
|
@ -1593,7 +1597,82 @@ class AdVM extends BaseVM {
|
|
|
|
|
applyFilterOnExploreAds(createdByRoleFilter: CreatedByRoleEnum.allAds);
|
|
|
|
|
setState(ViewState.idle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
///// Edit Work Amir
|
|
|
|
|
|
|
|
|
|
void editUpdateAd(BuildContext context, AdDetailsModel previousDetails) {
|
|
|
|
|
isAdEdit = true;
|
|
|
|
|
navigateWithName(context, AppRoutes.selectAdTypeView, arguments: AppState().currentAppType == AppType.provider ? true : false);
|
|
|
|
|
checkVehicleStep1(previousDetails);
|
|
|
|
|
checkVehicleStep2(previousDetails);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void clearEditValues() {
|
|
|
|
|
isAdEdit = false;
|
|
|
|
|
if (vehicleTypes.isNotEmpty) vehicleTypes.unselectAll();
|
|
|
|
|
if (vehicleAdsDurations.isNotEmpty) vehicleAdsDurations.unselectAll();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
checkVehicleStep1(AdDetailsModel previousDetails) {
|
|
|
|
|
logger.d("Step 1");
|
|
|
|
|
if (vehicleTypes.isNotEmpty) {
|
|
|
|
|
for (var vehicle in vehicleTypes) {
|
|
|
|
|
if (vehicle.id == previousDetails.vehicle?.vehicleType) {
|
|
|
|
|
vehicle.isSelected = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
checkVehicleStep2(AdDetailsModel previousDetails) {
|
|
|
|
|
logger.d("Step 2");
|
|
|
|
|
if (vehicleAdsDurations.isNotEmpty) {
|
|
|
|
|
for (var adsDuration in vehicleAdsDurations) {
|
|
|
|
|
if (adsDuration.price == previousDetails.adsDurationPrice) {
|
|
|
|
|
adsDuration.isSelected = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
checkVehicleStep3(AdDetailsModel previousDetails) {
|
|
|
|
|
logger.d("Step 3");
|
|
|
|
|
if (vehicleBrands.isNotEmpty) {
|
|
|
|
|
for (var vBrands in vehicleBrands) {
|
|
|
|
|
if (vBrands.id == previousDetails.vehicle.) {
|
|
|
|
|
// BrandsId need to be matched here.
|
|
|
|
|
vBrands.isSelected = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
updateValues() {
|
|
|
|
|
if (isAdEdit) {
|
|
|
|
|
if (vehicleTypes.isNotEmpty) vehicleTypes.unselectAll();
|
|
|
|
|
if (vehicleAdsDurations.isNotEmpty) vehicleAdsDurations.unselectAll();
|
|
|
|
|
notifyListeners();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
extension ToggleSelected on List {
|
|
|
|
|
void unselectAll() {
|
|
|
|
|
for (var element in this) {
|
|
|
|
|
if (element.isSelected!) {
|
|
|
|
|
element.isSelected = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Edit Work End Amir
|
|
|
|
|
|
|
|
|
|
class VehicleDamageCard {
|
|
|
|
|
List<File>? partImages;
|
|
|
|
|
|