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/pages/device_transfer/device_transfer_details.dart

206 lines
9.4 KiB
Dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/models/asset/asset_transfer.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
import 'package:test_sa/views/widgets/buttons/app_small_button.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/requests/info_row.dart';
import '../../../models/enums/user_types.dart';
class DeviceTransferDetails extends StatefulWidget {
final AssetTransfer model;
const DeviceTransferDetails({Key key, this.model}) : super(key: key);
@override
State<DeviceTransferDetails> createState() => _DeviceTransferDetailsState();
}
class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
AssetTransfer _model;
bool _isSender = false;
bool _isReceiver = false;
UserProvider _userProvider;
bool _isLoading = false;
Subtitle _subtitle;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
_model = widget.model;
super.initState();
}
Future<void> _getDeviceTransfer() async {
_model = await Provider.of<AssetTransferProvider>(context).getRequestById(assetTransferId: widget.model.id);
}
@override
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
body: SafeArea(
child: FutureBuilder(
future: _getDeviceTransfer(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return const ALoading();
} else {
_subtitle = AppLocalization.of(context).subtitle;
_userProvider = Provider.of<UserProvider>(context);
// _isSender = _userProvider.user.userID == _model.sender?.userId;
// _isReceiver = _userProvider.user.userID == _model.receiver?.userId;
return Form(
key: _formKey,
child: LoadingManager(
isLoading: _isLoading,
isFailedLoading: false,
stateCode: 200,
onRefresh: () async {},
child: Column(
children: [
Container(
color: Theme.of(context).colorScheme.primary,
padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 4),
child: Row(
children: [
const ABackButton(),
Expanded(
child: Center(
child: Text(
_subtitle.details,
style: Theme.of(context).textTheme.headline6.copyWith(color: AColors.white, fontStyle: FontStyle.italic),
),
),
),
const SizedBox(width: 58),
],
),
),
Expanded(
child: SingleChildScrollView(
padding: EdgeInsets.all(16 * AppStyle.getScaleFactor(context)),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
RequestInfoRow(
title: "Transfer Id",
info: "_model.title?.toString()",
),
RequestInfoRow(
title: _subtitle.assetName,
info: "_model.device.assetName",
),
RequestInfoRow(
title: _subtitle.assetSN,
info: "_model.device.serialNumber",
),
RequestInfoRow(
title: _subtitle.assetNumber,
info: "_model.device.number",
),
RequestInfoRow(
title: _subtitle.destinationSite,
info: "_model.device.destSiteName",
),
RequestInfoRow(
title: _subtitle.building,
info: " _model.device.destBuildingName",
),
RequestInfoRow(
title: _subtitle.floor,
info: "_model.device.destFloor",
),
RequestInfoRow(
title: _subtitle.department,
info: "_model.device.destDepartmentName",
),
RequestInfoRow(
title: _subtitle.room,
info: "_model.device.destRoom",
),
RequestInfoRow(
title: _subtitle.actions,
info: "",
),
const SizedBox(height: 8),
Row(
children: [
Expanded(
child: Text("Sender", style: Theme.of(context).textTheme.headline6),
),
if (_userProvider.user?.type == UsersTypes.engineer)
ASmallButton(
text: _subtitle.edit,
// onPressed: (_isSender)
// ? (_model.sender.status?.name == "Closed"
// ? null
// : () {
// Navigator.of(context).push(MaterialPageRoute(
// builder: (_) => UpdateDeviceTransfer(
// model: _model,
// isSender: true,
// )));
// })
// : null,
),
],
),
const SizedBox(height: 12),
// DeviceTransferInfoSection(
// info: _model.sender,
// isSender: true,
// ),
const SizedBox(height: 8),
Row(
children: [
Expanded(
child: Text("Receiver", style: Theme.of(context).textTheme.headline6),
),
if (_userProvider.user?.type == UsersTypes.engineer)
ASmallButton(
text: _subtitle.edit,
// onPressed: (_isReceiver)
// ? (_model.receiver.status?.name == "Closed"
// ? null
// : () {
// Navigator.of(context).push(MaterialPageRoute(
// builder: (_) => UpdateDeviceTransfer(
// model: _model,
// isSender: false,
// )));
// })
// : null,
),
],
),
const SizedBox(height: 12),
// DeviceTransferInfoSection(
// info: _model.receiver,
// isSender: false,
// ),
],
),
),
),
],
),
),
);
}
},
),
),
);
}
}