|
|
|
@ -1,4 +1,7 @@
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
|
|
|
import 'package:fluttertoast/fluttertoast.dart';
|
|
|
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
import 'package:test_sa/controllers/providers/api/user_provider.dart';
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/text_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/text_extensions.dart';
|
|
|
|
@ -20,6 +23,7 @@ import 'package:test_sa/providers/gas_request_providers/gas_types_provider.dart'
|
|
|
|
import 'package:test_sa/providers/gas_request_providers/site_provider.dart';
|
|
|
|
import 'package:test_sa/providers/gas_request_providers/site_provider.dart';
|
|
|
|
import 'package:test_sa/providers/loading_list_notifier.dart';
|
|
|
|
import 'package:test_sa/providers/loading_list_notifier.dart';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import '../../controllers/providers/api/gas_refill_provider.dart';
|
|
|
|
import '../../controllers/validator/validator.dart';
|
|
|
|
import '../../controllers/validator/validator.dart';
|
|
|
|
import '../common_widgets/default_app_bar.dart';
|
|
|
|
import '../common_widgets/default_app_bar.dart';
|
|
|
|
|
|
|
|
|
|
|
|
@ -105,34 +109,44 @@ class _NewGasRefillRequestPageState extends State<NewGasRefillRequestPage> {
|
|
|
|
SingleItemDropDownMenu<Site, SiteProvider>(
|
|
|
|
SingleItemDropDownMenu<Site, SiteProvider>(
|
|
|
|
context: context,
|
|
|
|
context: context,
|
|
|
|
title: TranslationKeys.destinationSite,
|
|
|
|
title: TranslationKeys.destinationSite,
|
|
|
|
|
|
|
|
initialValue: _gasModel.site,
|
|
|
|
onSelect: (value) {
|
|
|
|
onSelect: (value) {
|
|
|
|
_gasModel.site = value;
|
|
|
|
setState(() {
|
|
|
|
|
|
|
|
_gasModel.site = value;
|
|
|
|
|
|
|
|
});
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
8.height,
|
|
|
|
8.height,
|
|
|
|
SingleItemDropDownMenu<Building, NullableLoadingProvider>(
|
|
|
|
SingleItemDropDownMenu<Building, NullableLoadingProvider>(
|
|
|
|
context: context,
|
|
|
|
context: context,
|
|
|
|
title: TranslationKeys.building,
|
|
|
|
title: TranslationKeys.building,
|
|
|
|
|
|
|
|
initialValue: _gasModel.building,
|
|
|
|
enabled: _gasModel.site?.buildings?.isNotEmpty ?? false,
|
|
|
|
enabled: _gasModel.site?.buildings?.isNotEmpty ?? false,
|
|
|
|
staticData: _gasModel.site?.buildings ?? [],
|
|
|
|
staticData: _gasModel.site?.buildings ?? [],
|
|
|
|
onSelect: (value) {
|
|
|
|
onSelect: (value) {
|
|
|
|
_gasModel.building = value;
|
|
|
|
setState(() {
|
|
|
|
|
|
|
|
_gasModel.building = value;
|
|
|
|
|
|
|
|
});
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
8.height,
|
|
|
|
8.height,
|
|
|
|
SingleItemDropDownMenu<Floor, NullableLoadingProvider>(
|
|
|
|
SingleItemDropDownMenu<Floor, NullableLoadingProvider>(
|
|
|
|
context: context,
|
|
|
|
context: context,
|
|
|
|
title: TranslationKeys.floor,
|
|
|
|
title: TranslationKeys.floor,
|
|
|
|
|
|
|
|
initialValue: _gasModel.floor,
|
|
|
|
enabled: _gasModel.building?.floors?.isNotEmpty ?? false,
|
|
|
|
enabled: _gasModel.building?.floors?.isNotEmpty ?? false,
|
|
|
|
staticData: _gasModel.building?.floors ?? [],
|
|
|
|
staticData: _gasModel.building?.floors ?? [],
|
|
|
|
onSelect: (value) {
|
|
|
|
onSelect: (value) {
|
|
|
|
_gasModel.floor = value;
|
|
|
|
setState(() {
|
|
|
|
|
|
|
|
_gasModel.floor = value;
|
|
|
|
|
|
|
|
});
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
8.height,
|
|
|
|
8.height,
|
|
|
|
SingleItemDropDownMenu<Department, NullableLoadingProvider>(
|
|
|
|
SingleItemDropDownMenu<Department, NullableLoadingProvider>(
|
|
|
|
context: context,
|
|
|
|
context: context,
|
|
|
|
title: TranslationKeys.department,
|
|
|
|
title: TranslationKeys.department,
|
|
|
|
|
|
|
|
initialValue: _gasModel.department,
|
|
|
|
enabled: _gasModel.floor?.departments?.isNotEmpty ?? false,
|
|
|
|
enabled: _gasModel.floor?.departments?.isNotEmpty ?? false,
|
|
|
|
staticData: _gasModel.floor?.departments ?? [],
|
|
|
|
staticData: _gasModel.floor?.departments ?? [],
|
|
|
|
onSelect: (value) {
|
|
|
|
onSelect: (value) {
|
|
|
|
@ -213,7 +227,7 @@ class _NewGasRefillRequestPageState extends State<NewGasRefillRequestPage> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void _add() async {
|
|
|
|
void _add() async {
|
|
|
|
if (_formKey.currentState.validate() && await _currentDetails.validate(context)) {
|
|
|
|
if (_formKey.currentState.validate() && await _currentDetails.validate(context) && await _gasModel.validate(context)) {
|
|
|
|
_formKey.currentState.save();
|
|
|
|
_formKey.currentState.save();
|
|
|
|
_gasModel.gazRefillDetails.add(_currentDetails);
|
|
|
|
_gasModel.gazRefillDetails.add(_currentDetails);
|
|
|
|
_quantityController.clear();
|
|
|
|
_quantityController.clear();
|
|
|
|
@ -227,7 +241,15 @@ class _NewGasRefillRequestPageState extends State<NewGasRefillRequestPage> {
|
|
|
|
setState(() {});
|
|
|
|
setState(() {});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void _submit() {
|
|
|
|
Future<void> _submit() async {
|
|
|
|
Navigator.pop(context);
|
|
|
|
final status = await Provider.of<GasRefillProvider>(context, listen: false).createModel(
|
|
|
|
|
|
|
|
user: Provider.of<UserProvider>(context, listen: false).user,
|
|
|
|
|
|
|
|
model: _gasModel,
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
if (status >= 200 && status < 300) {
|
|
|
|
|
|
|
|
Fluttertoast.showToast(msg: context.translate(TranslationKeys.createdSuccessfully));
|
|
|
|
|
|
|
|
Navigator.of(context).pop();
|
|
|
|
|
|
|
|
setState(() {});
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|