You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudsolutions-atoms/lib/views/widgets/requests/service_request_update_dial...

153 lines
5.0 KiB
Dart

3 years ago
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
3 years ago
import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart';
import '../../../api/user_api_client.dart';
import '../../../controllers/http_status_manger/http_status_manger.dart';
import '../../../controllers/localization/localization.dart';
import '../../../controllers/providers/api/service_requests_provider.dart';
import '../../../controllers/providers/settings/setting_provider.dart';
import '../../../controllers/providers/user_provider.dart';
import '../../../models/lookup.dart';
import '../../../models/service_request/service_request.dart';
import '../../../models/subtitle.dart';
import '../../app_style/sizing.dart';
import '../buttons/app_small_button.dart';
import '../date_and_time/date_picker.dart';
import '../status/employee/employee_mune.dart';
3 years ago
class ServiceRequestsUpdateDialog extends StatefulWidget {
final ServiceRequest request;
3 years ago
const ServiceRequestsUpdateDialog({
Key? key,
required this.request,
3 years ago
}) : super(key: key);
3 years ago
@override
State<ServiceRequestsUpdateDialog> createState() => _ServiceRequestsUpdateDialogState();
3 years ago
}
class _ServiceRequestsUpdateDialogState extends State<ServiceRequestsUpdateDialog> with TickerProviderStateMixin {
DateTime? _dateTime;
Lookup? _employee;
Subtitle? _subtitle;
UserProvider? _userProvider;
SettingProvider? _settingProvider;
ServiceRequestsProvider? _serviceRequestsProvider;
3 years ago
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
_update() async {
if (_dateTime == null && _employee == null) {
Fluttertoast.showToast(msg: _subtitle?.noDateFound ?? '');
3 years ago
return;
}
showDialog<void>(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return CupertinoAlertDialog(
title: Text(_subtitle?.updatingDots ?? ''),
content: const Center(child: CircularProgressIndicator()),
3 years ago
);
},
);
int? status = await _serviceRequestsProvider?.updateDate(
user: UserApiClient().user,
host: _settingProvider?.host,
request: widget.request,
newDate: _dateTime?.toString().split(" ").first,
employee: _employee,
3 years ago
);
if (status == 200) Navigator.of(context).pop();
3 years ago
Navigator.of(context).pop();
Fluttertoast.showToast(
msg: HttpStatusManger.getStatusMessage(
status: status,
subtitle: _subtitle,
) ??
'',
3 years ago
);
}
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
_subtitle = AppLocalization.of(context)?.subtitle;
_userProvider = Provider.of<UserProvider>(context, listen: false);
_settingProvider = Provider.of<SettingProvider>(context, listen: false);
_serviceRequestsProvider = Provider.of<ServiceRequestsProvider>(context, listen: false);
return Column(
3 years ago
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(
// height: MediaQuery.of(context).size.height / 1.2,
3 years ago
child: Form(
key: _formKey,
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
ASmallButton(
text: _subtitle?.cancel,
onPressed: () {
3 years ago
Navigator.of(context).pop();
},
),
ASmallButton(
text: _subtitle?.update,
3 years ago
onPressed: _update,
)
],
),
SizedBox(height: 8.0 * AppStyle.getScaleFactor(context)),
3 years ago
Row(
children: [
Expanded(
child: Text(
_subtitle?.date ?? '',
3 years ago
style: Theme.of(context).textTheme.subtitle1,
textScaleFactor: AppStyle.getScaleFactor(context),
),
),
ADatePicker(
date: _dateTime!,
3 years ago
from: DateTime.now(),
onDatePicker: (date) {
3 years ago
_dateTime = date;
setState(() {});
},
),
],
),
SizedBox(
height: 8.0 * AppStyle.getScaleFactor(context),
),
3 years ago
EmployeeMenu(
initialValue: _employee,
onSelect: (employee) {
3 years ago
_employee = employee;
},
),
SizedBox(
height: 8.0 * AppStyle.getScaleFactor(context),
),
3 years ago
],
),
),
),
),
],
);
}
}