gas refill flow added.

main_design2.0
Sikander Saleem 2 years ago
parent c96f611051
commit 7ecd90a556

@ -94,6 +94,7 @@ class URLs {
static get requestGasRefill => "$_baseUrl/GazRefill/AddGazRefill"; // get static get requestGasRefill => "$_baseUrl/GazRefill/AddGazRefill"; // get
static get updateGasRefill => "$_baseUrl/GazRefill/UpdateGazRefill"; // get static get updateGasRefill => "$_baseUrl/GazRefill/UpdateGazRefill"; // get
static get getGasRefill => "$_baseUrl/GazRefill/GetGazRefills"; // get static get getGasRefill => "$_baseUrl/GazRefill/GetGazRefills"; // get
static get getGasRefillById => "$_baseUrl/GazRefill/GetGazRefillById"; // get
//device transfer //device transfer
static get requestDeviceTransfer => "$_baseUrl/AssetTransfer/AddAssetTransfer"; // get static get requestDeviceTransfer => "$_baseUrl/AssetTransfer/AddAssetTransfer"; // get

@ -45,6 +45,19 @@ class GasRefillProvider extends ChangeNotifier {
// failed _loading = false // failed _loading = false
bool isLoading; bool isLoading;
Future<GasRefillModel> getGasRefillObjectById(num id) async {
try {
Response response = await ApiManager.instance.get(URLs.getGasRefillById + "?gazRefillId=$id");
if (response.statusCode >= 200 && response.statusCode < 300) {
return GasRefillModel.fromJson(json.decode(response.body)["data"]);
} else {
return null;
}
} catch (error) {
return null;
}
}
/// return -2 if request in progress /// return -2 if request in progress
/// return -1 if error happen when sending request /// return -1 if error happen when sending request
/// return state code if request complete may be 200, 404 or 403 /// return state code if request complete may be 200, 404 or 403

@ -5,8 +5,10 @@ import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart'; import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/gas_refill_model.dart';
import 'package:test_sa/views/app_style/colors.dart'; import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/pages/user/gas_refill/gas_refill_details.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart';
class GasRefillItemView extends StatelessWidget { class GasRefillItemView extends StatelessWidget {
@ -61,6 +63,11 @@ class GasRefillItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, showShadow: showShadow).onPress(() {}); ).toShadowContainer(context, showShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => GasRefillDetailsPage(
model: GasRefillModel(id: request.id),
)));
});
} }
} }

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/gas_refill_provider.dart';
import 'package:test_sa/controllers/providers/api/user_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';
@ -8,7 +9,9 @@ import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/views/app_style/sizing.dart'; import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/pages/user/gas_refill/request_gas_refill.dart'; import 'package:test_sa/views/pages/user/gas_refill/request_gas_refill.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/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/loaders/no_item_found.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart'; import 'package:test_sa/views/widgets/requests/request_status.dart';
import '../../../../extensions/text_extensions.dart'; import '../../../../extensions/text_extensions.dart';
@ -37,35 +40,44 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
@override @override
void initState() { void initState() {
_model.fromGasRefillModel(widget.model); // _model.fromGasRefillModel(gasRefillModel);
super.initState(); super.initState();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
_userProvider = Provider.of<UserProvider>(context); _userProvider = Provider.of<UserProvider>(context);
GasRefillProvider _gasRefillProvider = Provider.of<GasRefillProvider>(context);
return Scaffold( return Scaffold(
appBar: DefaultAppBar(title: context.translation.gasRefillDetails), appBar: DefaultAppBar(title: context.translation.gasRefillDetails),
key: _scaffoldKey, key: _scaffoldKey,
body: SafeArea( body: SafeArea(
child: Form( child: FutureBuilder(
key: _formKey, future: _gasRefillProvider.getGasRefillObjectById(widget.model.id),
child: LoadingManager( builder: (context, snap) {
isLoading: _isLoading, if (snap.connectionState == ConnectionState.waiting) {
isFailedLoading: false, return const ALoading();
stateCode: 200, } else if (!snap.hasData) {
onRefresh: () async {}, _model = snap.data;
child: Column( return Column(
children: [informationCard()], crossAxisAlignment: CrossAxisAlignment.start,
), children: [
), SingleChildScrollView(
padding: const EdgeInsets.all(16),
child: informationCard(_model),
).expanded,
],
);
}
return NoItemFound(message: context.translation.noDataFound);
},
), ),
), ),
); );
} }
Widget informationCard() { Widget informationCard(GasRefillModel gasRefillModel) {
return Column( return Column(
children: [ children: [
Column( Column(
@ -87,24 +99,24 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
//), //),
// 8.width, // 8.width,
StatusLabel( StatusLabel(
label: widget.model.status?.name ?? "", label: gasRefillModel.status?.name ?? "",
textColor: AColors.getRequestStatusTextColor(widget.model.status?.value ?? 0), textColor: AColors.getRequestStatusTextColor(gasRefillModel.status?.value ?? 0),
backgroundColor: AColors.getRequestStatusColor(widget.model.status?.value ?? 0)), backgroundColor: AColors.getRequestStatusColor(gasRefillModel.status?.value ?? 0)),
8.height, 8.height,
context.translation.gasRefillRequest.heading5(context), context.translation.gasRefillRequest.heading5(context),
8.height, 8.height,
///TBD ///TBD
context.translation.gasRequest.bodyText(context), context.translation.gasRequest.bodyText(context),
'${context.translation.cylinderSize}: ${widget.model.gazRefillDetails[0].cylinderSize.value}'.bodyText(context), '${context.translation.cylinderSize}: ${gasRefillModel.gazRefillDetails[0].cylinderSize.value}'.bodyText(context),
'${context.translation.site}: ${widget.model.site.name}'.bodyText(context), '${context.translation.site}: ${gasRefillModel.site.name}'.bodyText(context),
], ],
), ),
1.width.expanded, 1.width.expanded,
Column( Column(
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,
children: [ children: [
if (_userProvider.user.type == UsersTypes.engineer && (widget.model.status?.value ?? 0) != 2) if (_userProvider.user.type == UsersTypes.engineer && (gasRefillModel.status?.value ?? 0) != 2)
CircleAvatar( CircleAvatar(
radius: 25, radius: 25,
backgroundColor: AppColor.neutral30, backgroundColor: AppColor.neutral30,
@ -118,13 +130,13 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
), ),
).onPress( ).onPress(
() async { () async {
_model?.fromGasRefillModel(widget.model); _model?.fromGasRefillModel(gasRefillModel);
// setState(() {}); // setState(() {});
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => RequestGasRefill( builder: (context) => RequestGasRefill(
gasRefillModel: widget.model, gasRefillModel: gasRefillModel,
), ),
), ),
).then((value) { ).then((value) {
@ -135,7 +147,7 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
setState(() {}); setState(() {});
}, },
), ),
Text(widget.model.startDate?.toServiceRequestCardFormat ?? "", textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: const Color(0xFF3B3D4A))), Text(gasRefillModel.startDate?.toServiceRequestCardFormat ?? "", textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: const Color(0xFF3B3D4A))),
], ],
) )
], ],
@ -143,8 +155,8 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
8.height, 8.height,
const Divider(color: Color(0xFFEAF1F4), height: 1, thickness: 1), const Divider(color: Color(0xFFEAF1F4), height: 1, thickness: 1),
8.height, 8.height,
'${context.translation.requestedQuantity}: ${widget.model.gazRefillDetails[0].requestedQty}'.bodyText(context), '${context.translation.requestedQuantity}: ${gasRefillModel.gazRefillDetails[0].requestedQty}'.bodyText(context),
'${context.translation.deliveredQuantity}: ${widget.model.gazRefillDetails[0].deliverdQty}'.bodyText(context), '${context.translation.deliveredQuantity}: ${gasRefillModel.gazRefillDetails[0].deliverdQty}'.bodyText(context),
8.height, 8.height,
], ],
).paddingAll(16), ).paddingAll(16),
@ -173,7 +185,7 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
color: AppColor.neutral50.withOpacity(.6), color: AppColor.neutral50.withOpacity(.6),
), ),
).expanded, ).expanded,
SvgPicture.asset("assets/images/comment_send.svg", width: 24 * AppStyle.getScaleFactor(context), height: 24 * AppStyle.getScaleFactor(context), color: AppColor.primary70), SvgPicture.asset("assets/images/comment_send.svg", width: 24 * AppStyle.getScaleFactor(context), height: 20 * AppStyle.getScaleFactor(context), color: AppColor.primary70),
], ],
), ),
) )
@ -202,6 +214,6 @@ class _GasRefillDetailsPageState extends State<GasRefillDetailsPage> {
).paddingOnly(bottom: 16, start: 16, end: 16)) ).paddingOnly(bottom: 16, start: 16, end: 16))
.onPress(() {}), .onPress(() {}),
], ],
).toShadowContainer(context).paddingAll(16); ).toShadowContainer(context, padding: 0);
} }
} }

Loading…
Cancel
Save