sender & receiver transfer fix.

main_design2.0
Sikander Saleem 2 years ago
parent 528a8301fa
commit 88108686d0

@ -49,6 +49,7 @@ import 'package:test_sa/new_views/pages/login_page.dart';
import 'package:test_sa/new_views/pages/report_bug_page.dart';
import 'package:test_sa/new_views/pages/settings_page.dart';
import 'package:test_sa/new_views/pages/splash_page.dart';
import 'package:test_sa/providers/asset_transfer/asset_transfer_status_provider.dart';
import 'package:test_sa/providers/department_provider.dart';
import 'package:test_sa/providers/gas_request_providers/cylinder_size_provider.dart';
import 'package:test_sa/providers/gas_request_providers/cylinder_type_provider.dart';
@ -161,6 +162,7 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => GasTypesProvider()),
ChangeNotifierProvider(create: (_) => GasRefillProvider()),
ChangeNotifierProvider(create: (_) => AssetTransferProvider()),
ChangeNotifierProvider(create: (_) => AssetTransferStatusProvider()),
ChangeNotifierProvider(create: (_) => AssignedToProvider()),
ChangeNotifierProvider(create: (_) => PentryTaskStatusProvider()),
ChangeNotifierProvider(create: (_) => PentryVisitStatusProvider()),

@ -0,0 +1,34 @@
import 'dart:convert';
import 'package:http/http.dart';
import '../../controllers/api_routes/api_manager.dart';
import '../../controllers/api_routes/urls.dart';
import '../../models/lookup.dart';
import '../loading_list_notifier.dart';
class AssetTransferStatusProvider extends LoadingListNotifier<Lookup> {
@override
Future getDate() async {
if (loading ?? false) return -2;
loading = true;
notifyListeners();
try {
Response response = await ApiManager.instance.get(URLs.getAssetTransferStatus);
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
List categoriesListJson = json.decode(response.body)["data"];
items = categoriesListJson.map((item) => Lookup.fromJson(item)).toList();
}
loading = false;
notifyListeners();
return response.statusCode;
} catch (error) {
loading = false;
stateCode = -1;
notifyListeners();
return -1;
}
}
}

@ -52,6 +52,7 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
return const ALoading();
} else {
_model = snapshot.data;
return Form(
key: _formKey,
child: LoadingManager(
@ -114,10 +115,10 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
// sender card
_buildCard(
isSender: true,
site: _model?.senderSiteName ?? "",
site: _model?.senderSiteName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "",
/// TBD
unit: _model?.senderDepartmentName ?? "",
unit: _model?.senderDepartmentName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "",
comment: _model?.senderComment ?? "",
/// TBD
@ -134,10 +135,10 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
// receiver card
_buildCard(
isSender: false,
site: _model?.destSiteName ?? "",
site: _model?.destSiteName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "",
/// TBD
unit: _model?.destDepartmentName ?? "",
unit: _model?.destDepartmentName?.cleanupWhitespace?.capitalizeFirstOfEach ?? "",
comment: _model?.receiverComment ?? "",
/// TBD
@ -169,6 +170,14 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
}
_buildCard({@required String site, @required String unit, @required String comment, @required bool isSender, StatusLabel statusLabel}) {
bool isCurrentEngineerEligibleForEdit = isSender ? _model.senderAssignedEmployeeId == _userProvider.user.userID : _model.receiverAssignedEmployeeId == _userProvider.user.userID;
print("isCurrentEngineerEligibleForEdit:$isCurrentEngineerEligibleForEdit:${_userProvider.user.username}");
bool isCurrentRequestCompletedOrClosed = isSender
? ((_model?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) || (_model?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false))
: ((_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) || (_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false));
print("isCurrentRequestCompletedOrClosed:$isSender:$isCurrentRequestCompletedOrClosed:${_userProvider.user.username}");
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -184,9 +193,14 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
],
),
if ((_userProvider.user?.type == UsersTypes.engineer))
if (isSender
? (!(_model?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false))
: ((!(_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false)) && (_userProvider.user?.username == _model.receiverAssignedEmployeeName)))
if(isCurrentEngineerEligibleForEdit && !isCurrentRequestCompletedOrClosed)
// if (isSender
// ? (!(_model?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false))
// : (!(_model?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) && !(_model?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false)))
//
"edit".toSvgAsset(height: 48, width: 48).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdateDeviceTransfer(model: _model, isSender: isSender)));
}),

@ -104,7 +104,7 @@ class _RequestDeviceTransferState extends State<RequestDeviceTransfer> {
AppTextFormField(
controller: _receiverNameController,
labelText: context.translation.receiverName,
validator: (text) => Validator.hasValue(text) ? null : context.translation.requiredField,
//validator: (text) => Validator.hasValue(text) ? null : context.translation.requiredField,
onSaved: (text) {},
),
8.height,
@ -159,6 +159,17 @@ class _RequestDeviceTransferState extends State<RequestDeviceTransfer> {
},
),
8.height,
// SingleItemDropDownMenu<Department, NullableLoadingProvider>(
// context: context,
// title: context.translation.room,
// initialValue: _assetDestination?.department,
// enabled: _assetDestination?.floor?.departments?.isNotEmpty ?? false,
// staticData: _assetDestination?.floor?.departments ?? [],
// onSelect: (value) {
// _assetDestination?.department = value;
// },
// ),
8.height,
AppTextFormField(
labelText: context.translation.room,
onSaved: (text) {

@ -13,8 +13,10 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/device/asset_transfer.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/providers/asset_transfer/asset_transfer_status_provider.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/status/asset_status.dart';
import '../../../controllers/validator/validator.dart';
import '../../../extensions/text_extensions.dart';
@ -90,6 +92,11 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
_userProvider = Provider.of<UserProvider>(context);
_settingProvider = Provider.of<SettingProvider>(context);
_deviceTransferProvider = Provider.of<AssetTransferProvider>(context, listen: false);
bool isTimerEnable = widget.isSender
? (!(_formModel?.senderMachineStatusName?.toLowerCase()?.contains("close") ?? false) || !(_formModel?.senderMachineStatusName?.toLowerCase()?.contains("complete") ?? false))
: (!(_formModel?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false) || !(_formModel?.receiverMachineStatusName?.toLowerCase()?.contains("complete") ?? false));
return Scaffold(
appBar: DefaultAppBar(title: context.translation.updateRequest),
key: _scaffoldKey,
@ -114,22 +121,22 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
initialValue: widget.isSender ? _formModel.senderTravelingHours : _formModel.receiverTravelingHours,
labelText: context.translation.travelingHours,
onChange: (text) {
log(widget.isSender ? _formModel.senderStartDate : _formModel.receiverStartDate);
log(widget.isSender ? _formModel.senderEndDate : _formModel.receiverEndDate);
widget.isSender ? _formModel.senderTravelingHours = text : _formModel.receiverTravelingHours = text;
},
onSaved: (value) {
widget.isSender ? _formModel.senderTravelingHours : _formModel.receiverTravelingHours = value;
widget.isSender ? _formModel.senderTravelingHours = value : _formModel.receiverTravelingHours = value;
//_formModel?.workingHours = double.tryParse(value);
// _formModel.travelingHours = value;
},
textInputType: TextInputType.number,
validator: (value) => Validator.isNumeric(value) ? null : "allow numbers only",
//validator: (value) => Validator.isNumeric(value) ? null : "allow numbers only",
),
8.height,
AppTimer(
label: context.translation.workingHours,
timer: widget.isSender ? _formModel.senderTimer : _formModel.receiverTimer,
enabled: widget.isSender ? _formModel.senderEndDate == null : _formModel.receiverEndDate == null,
enabled: isTimerEnable,
// enabled: widget.isSender ? _formModel.senderEndDate == null : (_formModel?.receiverMachineStatusName?.toLowerCase()?.contains("close") ?? false),
timerProgress: (isRunning) {
isTimerRunning = isRunning;
},
@ -143,10 +150,8 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
},
),
8.height,
///TBD
Consumer<GasStatusProvider>(builder: (context, snapshot, _) {
return SingleItemDropDownMenu<Lookup, GasStatusProvider>(
Consumer<AssetTransferStatusProvider>(builder: (context, snapshot, _) {
return SingleItemDropDownMenu<Lookup, AssetTransferStatusProvider>(
context: context,
title: context.translation.reportStatus,
initialValue: snapshot.items
@ -155,7 +160,6 @@ class _UpdateDeviceTransferState extends State<UpdateDeviceTransfer> {
if (widget.isSender) {
_formModel.senderMachineStatusName = value.name;
_formModel.senderMachineStatusId = value.id;
print("${value.id}");
} else {
_formModel.receiverMachineStatusName = value.name;
_formModel.receiverMachineStatusId = value.id;

Loading…
Cancel
Save