Merge remote-tracking branch 'origin/sikander-development' into zaid_development_new

main_design2.0
zaid_daoud 2 years ago
commit 6d6fc30806

@ -614,6 +614,20 @@ class ServiceRequestsProvider extends ChangeNotifier {
} }
} }
Future<ServiceRequest> getServiceRequestObjectById({@required String requestId}) async {
try {
Response response = await ApiManager.instance.get(URLs.getServiceRequestById + "?callRequestId=$requestId");
if (response.statusCode >= 200 && response.statusCode < 300) {
return ServiceRequest.fromJson(json.decode(response.body)["data"]);
} else {
return null;
}
} catch (error) {
print(error);
return null;
}
}
Future<Map<String, dynamic>> getServiceRequestById({@required String requestId}) async { Future<Map<String, dynamic>> getServiceRequestById({@required String requestId}) async {
Response response; Response response;
try { try {

@ -84,9 +84,11 @@ class ServiceRequest {
factory ServiceRequest.fromJson(Map<String, dynamic> parsedJson) { factory ServiceRequest.fromJson(Map<String, dynamic> parsedJson) {
List<String> images = []; List<String> images = [];
print(parsedJson["attachmentsCallRequest"]);
if (parsedJson["attachmentsCallRequest"] != null) if (parsedJson["attachmentsCallRequest"] is List) { if (parsedJson["attachmentsCallRequest"] != null) if (parsedJson["attachmentsCallRequest"] is List) {
List list = parsedJson["attachmentsCallRequest"]; List list = parsedJson["attachmentsCallRequest"];
images = list.map((e) => URLs.getFileUrl(e["attachmentsCallRequest"])).toList(); images = list.map((e) => URLs.getFileUrl(e["name"])).toList();
print(images);
} }
return ServiceRequest( return ServiceRequest(
id: parsedJson["id"].toString(), id: parsedJson["id"].toString(),
@ -123,7 +125,7 @@ class ServiceRequest {
reviewComment: parsedJson["reviewComment"], reviewComment: parsedJson["reviewComment"],
type: Lookup.fromJson(parsedJson['typeofRequest']), type: Lookup.fromJson(parsedJson['typeofRequest']),
defectType: Lookup.fromJson(parsedJson['defectType']), defectType: Lookup.fromJson(parsedJson['defectType']),
loanAvailability: Lookup.fromJson(parsedJson['loanAvailability']), loanAvailability: Lookup.fromJson(parsedJson['loanAvailablity']),
firstAction: Lookup.fromJson(parsedJson['firstAction']), firstAction: Lookup.fromJson(parsedJson['firstAction']),
requestedThrough: Lookup.fromJson(parsedJson['requestedThrough']), requestedThrough: Lookup.fromJson(parsedJson['requestedThrough']),
priority: Lookup.fromJson(parsedJson['priority']), priority: Lookup.fromJson(parsedJson['priority']),

@ -74,14 +74,33 @@ class CreateRequestPageState extends State<CreateRequestPage> {
_device = _serviceRequest.device; _device = _serviceRequest.device;
_deviceImages.addAll(_serviceRequest.devicePhotos.map((e) => File(e)).toList()); _deviceImages.addAll(_serviceRequest.devicePhotos.map((e) => File(e)).toList());
_showDatePicker = _serviceRequest.firstAction != null && _serviceRequest.firstAction.name == "Need a visit"; _showDatePicker = _serviceRequest.firstAction != null && _serviceRequest.firstAction.name == "Need a visit";
if (_showDatePicker && _serviceRequest.visitDate != null) {
_dateTime = DateTime.tryParse(_serviceRequest.visitDate);
}
} else { } else {
_serviceRequest = ServiceRequest(); _serviceRequest = ServiceRequest();
} }
_isLoading = true;
super.initState(); super.initState();
} }
getServiceRequestById(String id) async { getServiceRequestById(String id) async {
await _serviceRequestsProvider.getServiceRequestById(requestId: id) ?? ""; try {
ServiceRequest request = await _serviceRequestsProvider.getServiceRequestObjectById(requestId: id) ?? "";
_serviceRequest = request;
_device = _serviceRequest.device;
_deviceImages.addAll(_serviceRequest.devicePhotos.map((e) {
return File(e);
}).toList());
_showDatePicker = _serviceRequest.firstAction != null && _serviceRequest.firstAction.name == "Need a visit";
if (_showDatePicker && _serviceRequest.visitDate != null) {
_dateTime = DateTime.tryParse(_serviceRequest.visitDate);
}
_isLoading = false;
} catch (ex) {
_isLoading = false;
}
setState(() {});
} }
@override @override
@ -101,8 +120,11 @@ class CreateRequestPageState extends State<CreateRequestPage> {
_height = MediaQuery.of(context).size.height; _height = MediaQuery.of(context).size.height;
_userProvider = Provider.of<UserProvider>(context); _userProvider = Provider.of<UserProvider>(context);
_settingProvider = Provider.of<SettingProvider>(context); _settingProvider = Provider.of<SettingProvider>(context);
_serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
_subtitle = AppLocalization.of(context).subtitle; _subtitle = AppLocalization.of(context).subtitle;
if (_serviceRequestsProvider == null) {
_serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context);
getServiceRequestById(widget.serviceRequest.id);
}
return Scaffold( return Scaffold(
key: _scaffoldKey, key: _scaffoldKey,

@ -130,6 +130,9 @@ class _MultiFilesPickerState extends State<MultiFilesPicker> with TickerProvider
return MultiFilesPickerItem( return MultiFilesPickerItem(
file: _image, file: _image,
onRemoveTap: (image) { onRemoveTap: (image) {
if (!widget.enabled) {
return;
}
widget.files.remove(image); widget.files.remove(image);
setState(() {}); setState(() {});
}, },

@ -23,7 +23,7 @@ class MultiFilesPickerItem extends StatelessWidget {
boxShadow: [BoxShadow(color: isImage ? Colors.black38 : AColors.cyan.withOpacity(0.5), blurRadius: 2)], boxShadow: [BoxShadow(color: isImage ? Colors.black38 : AColors.cyan.withOpacity(0.5), blurRadius: 2)],
image: DecorationImage( image: DecorationImage(
image: isImage image: isImage
? FileImage(file) ? (_isLocalUrl(file.path) ? FileImage(file) : NetworkImage(file.path))
: AssetImage("assets/images/${isPdf ? "pdf" : isExcel ? "excel" : "doc"}.png"), : AssetImage("assets/images/${isPdf ? "pdf" : isExcel ? "excel" : "doc"}.png"),
fit: BoxFit.cover, fit: BoxFit.cover,
), ),
@ -39,7 +39,7 @@ class MultiFilesPickerItem extends StatelessWidget {
body: SafeArea( body: SafeArea(
child: Stack( child: Stack(
children: [ children: [
Center(child: isImage ? InteractiveViewer(child: Image(image: FileImage(file))) : const SizedBox.shrink()), Center(child: isImage ? InteractiveViewer(child: Image(image: (_isLocalUrl(file.path) ? FileImage(file) : NetworkImage(file.path)))) : const SizedBox.shrink()),
const ABackButton(), const ABackButton(),
], ],
), ),
@ -69,4 +69,9 @@ class MultiFilesPickerItem extends StatelessWidget {
), ),
); );
} }
bool _isLocalUrl(String url) {
if (url?.isEmpty != false) return false;
return url.startsWith("/") || url.startsWith("file://") || url.substring(1).startsWith(':\\');
}
} }

Loading…
Cancel
Save