|
|
|
@ -3,7 +3,6 @@
|
|
|
|
import 'dart:convert';
|
|
|
|
import 'dart:convert';
|
|
|
|
import 'dart:developer';
|
|
|
|
import 'dart:developer';
|
|
|
|
import 'dart:io';
|
|
|
|
import 'dart:io';
|
|
|
|
|
|
|
|
|
|
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
import 'package:mc_common_app/classes/app_state.dart';
|
|
|
|
import 'package:mc_common_app/classes/app_state.dart';
|
|
|
|
@ -112,14 +111,6 @@ class RequestsVM extends BaseVM {
|
|
|
|
requestStatusIdApi = requestStatusId.selectedId;
|
|
|
|
requestStatusIdApi = requestStatusId.selectedId;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// log("requestTypeIdApi: $requestTypeIdApi");
|
|
|
|
|
|
|
|
// log("requestCityIdApi: $requestCityIdApi");
|
|
|
|
|
|
|
|
// log("requestConditionIdApi: $requestConditionIdApi");
|
|
|
|
|
|
|
|
// log("requestVehicleBrandApi: $brand");
|
|
|
|
|
|
|
|
// log("requestVehicleModelApi: $model");
|
|
|
|
|
|
|
|
// log("requestVehicleYearIdApi: $requestVehicleYearIdApi");
|
|
|
|
|
|
|
|
// log("requestStatusIdApi: $requestStatusIdApi");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// try {
|
|
|
|
// try {
|
|
|
|
myFilteredRequests = await requestRepo.getRequestsBasedOnFilters(
|
|
|
|
myFilteredRequests = await requestRepo.getRequestsBasedOnFilters(
|
|
|
|
requestTypeId: requestTypeIdApi,
|
|
|
|
requestTypeId: requestTypeIdApi,
|
|
|
|
@ -724,7 +715,7 @@ class RequestsVM extends BaseVM {
|
|
|
|
Utils.showToast(LocaleKeys.requestSuccessfullyCreated.tr());
|
|
|
|
Utils.showToast(LocaleKeys.requestSuccessfullyCreated.tr());
|
|
|
|
Navigator.pop(context);
|
|
|
|
Navigator.pop(context);
|
|
|
|
resetRequestCreationForm();
|
|
|
|
resetRequestCreationForm();
|
|
|
|
await getRequests();
|
|
|
|
await applyFilterOnRequestsVM(requestsTypeEnum: requestTypeId.selectedId == 1 ? RequestsTypeEnum.specialCarRequest : RequestsTypeEnum.serviceRequest);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
Utils.showToast(respModel.message.toString());
|
|
|
|
Utils.showToast(respModel.message.toString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -892,10 +883,27 @@ class RequestsVM extends BaseVM {
|
|
|
|
serviceItem = "";
|
|
|
|
serviceItem = "";
|
|
|
|
serviceItemCreatedOn = "";
|
|
|
|
serviceItemCreatedOn = "";
|
|
|
|
itemManufacturer = "";
|
|
|
|
itemManufacturer = "";
|
|
|
|
|
|
|
|
isDeliveryAvailableStatus = false;
|
|
|
|
pickedVehicleImages.clear();
|
|
|
|
pickedVehicleImages.clear();
|
|
|
|
notifyListeners();
|
|
|
|
notifyListeners();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MessageImageModel convertFileToMessageImageModel({required File file, required int latestOfferId}) {
|
|
|
|
|
|
|
|
List<int> imageBytes = file.readAsBytesSync();
|
|
|
|
|
|
|
|
String image = base64Encode(imageBytes);
|
|
|
|
|
|
|
|
MessageImageModel vehiclePostingImages = MessageImageModel(imageStr: image, id: 0, isFromNetwork: false, reqOfferID: latestOfferId, imagePath: file.path);
|
|
|
|
|
|
|
|
return vehiclePostingImages;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<MessageImageModel> getMessagesImageList({required int latestOfferId}) {
|
|
|
|
|
|
|
|
List<MessageImageModel> requestImages = [];
|
|
|
|
|
|
|
|
for (var image in pickedVehicleImages) {
|
|
|
|
|
|
|
|
var value = convertFileToMessageImageModel(file: File(image.filePath!), latestOfferId: latestOfferId);
|
|
|
|
|
|
|
|
requestImages.add(value);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return requestImages;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Future<void> onSendOfferPressed({
|
|
|
|
Future<void> onSendOfferPressed({
|
|
|
|
required BuildContext context,
|
|
|
|
required BuildContext context,
|
|
|
|
required String receiverId,
|
|
|
|
required String receiverId,
|
|
|
|
@ -906,32 +914,31 @@ class RequestsVM extends BaseVM {
|
|
|
|
required int manufacturedById,
|
|
|
|
required int manufacturedById,
|
|
|
|
required String manufacturedOn,
|
|
|
|
required String manufacturedOn,
|
|
|
|
required RequestModel requestModel,
|
|
|
|
required RequestModel requestModel,
|
|
|
|
|
|
|
|
required bool isDeliveryAvailable,
|
|
|
|
required int requestIndex,
|
|
|
|
required int requestIndex,
|
|
|
|
required bool isFromChatScreen,
|
|
|
|
required bool isFromChatScreen,
|
|
|
|
}) async {
|
|
|
|
}) async {
|
|
|
|
if (isSendOfferValidated()) {
|
|
|
|
if (isSendOfferValidated()) {
|
|
|
|
final chatVM = context.read<ChatVM>();
|
|
|
|
final chatVM = context.read<ChatVM>();
|
|
|
|
|
|
|
|
List<MessageImageModel> images = getMessagesImageList(latestOfferId: context.read<ChatVM>().latestOfferId);
|
|
|
|
Utils.showLoading(context);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<RequestPostingImages> vehicleImages = await getVehiclePostingImageList();
|
|
|
|
|
|
|
|
List offerImages = [];
|
|
|
|
List offerImages = [];
|
|
|
|
vehicleImages.forEach((element) {
|
|
|
|
images.forEach((element) {
|
|
|
|
offerImages.add(element.toJson());
|
|
|
|
offerImages.add(element.toJson());
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
bool status = await chatVM.onOfferSendForRequest(
|
|
|
|
bool status = await chatVM.onOfferSendForRequest(
|
|
|
|
receiverId: receiverId,
|
|
|
|
receiverId: receiverId,
|
|
|
|
chatMessageType: ChatMessageTypeEnum.offer,
|
|
|
|
chatMessageType: ChatMessageTypeEnum.offer,
|
|
|
|
message: message,
|
|
|
|
message: message,
|
|
|
|
requestId: requestId,
|
|
|
|
requestId: requestId,
|
|
|
|
offerPrice: offerPrice,
|
|
|
|
offerPrice: offerPrice,
|
|
|
|
|
|
|
|
isDeliveryAvailable: isDeliveryAvailable,
|
|
|
|
manufacturedById: manufacturedById,
|
|
|
|
manufacturedById: manufacturedById,
|
|
|
|
manufacturedOn: manufacturedOn,
|
|
|
|
manufacturedOn: manufacturedOn,
|
|
|
|
serviceItemName: serviceItemName,
|
|
|
|
serviceItemName: serviceItemName,
|
|
|
|
offerImages: offerImages,
|
|
|
|
offerImages: offerImages,
|
|
|
|
context: context,
|
|
|
|
context: context,
|
|
|
|
);
|
|
|
|
);
|
|
|
|
Utils.hideLoading(context);
|
|
|
|
|
|
|
|
log("status from onOfferSendForRequest: $status");
|
|
|
|
log("status from onOfferSendForRequest: $status");
|
|
|
|
|
|
|
|
|
|
|
|
if (!status) {
|
|
|
|
if (!status) {
|
|
|
|
@ -957,12 +964,14 @@ class RequestsVM extends BaseVM {
|
|
|
|
offerStatus: RequestOfferStatusEnum.offer.getIdFromRequestOfferStatusEnum(),
|
|
|
|
offerStatus: RequestOfferStatusEnum.offer.getIdFromRequestOfferStatusEnum(),
|
|
|
|
requestID: requestModel.id,
|
|
|
|
requestID: requestModel.id,
|
|
|
|
price: double.parse(offerPrice),
|
|
|
|
price: double.parse(offerPrice),
|
|
|
|
|
|
|
|
isDeliveryAvailable: isDeliveryAvailable,
|
|
|
|
manufacturedById: manufacturedById,
|
|
|
|
manufacturedById: manufacturedById,
|
|
|
|
manufacturedOn: manufacturedOn,
|
|
|
|
manufacturedOn: manufacturedOn,
|
|
|
|
serviceItemName: serviceItemName,
|
|
|
|
serviceItemName: serviceItemName,
|
|
|
|
requestOfferStatusEnum: RequestOfferStatusEnum.offer,
|
|
|
|
requestOfferStatusEnum: RequestOfferStatusEnum.offer,
|
|
|
|
comment: message,
|
|
|
|
comment: message,
|
|
|
|
offerStatusText: "",
|
|
|
|
offerStatusText: "",
|
|
|
|
|
|
|
|
reqOfferImages: images,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
);
|
|
|
|
context.read<ChatVM>().onNewMessageReceivedForRequestOffer(messages: [chatMessageModel], requestsVM: this, isMyOwnOffer: true);
|
|
|
|
context.read<ChatVM>().onNewMessageReceivedForRequestOffer(messages: [chatMessageModel], requestsVM: this, isMyOwnOffer: true);
|
|
|
|
|