delivered status added.

design_3.0_loan_module
Sikander Saleem 24 hours ago
parent 66b8ea59d9
commit 6c6ba32997

@ -14,6 +14,8 @@ extension BuildContextExtension on BuildContext {
bool get isDark => Provider.of<SettingProvider>(this).theme == "dark";
bool get isDarkNotListen => Provider.of<SettingProvider>(this, listen: false).theme == "dark";
bool get isAr => Provider.of<SettingProvider>(this).language == "ar";
SettingProvider get settingProvider => Provider.of<SettingProvider>(this, listen: false);
@ -36,12 +38,12 @@ extension BuildContextExtension on BuildContext {
builder: (BuildContext cxt) => ConfirmDialog(message: message, onTap: onTap, title: title,okTitle: okTitle),
);
Future showBottomSheet(Widget childWidget, {bool? isDismissible, String? title}) => showModalBottomSheet(
Future showBottomSheet(Widget childWidget, {bool? isDismissible, String? title, bool showCancelButton = false}) => showModalBottomSheet(
context: this,
useSafeArea: true,
isScrollControlled: true,
isDismissible: true,
backgroundColor: Colors.transparent,
builder: (context) => SingleChildScrollView(padding: const EdgeInsets.all(0), child: childWidget.bottomSafeArea).bottomSheetContainerNew(context, title: title),
builder: (context) => SingleChildScrollView(padding: const EdgeInsets.all(0), child: childWidget.bottomSafeArea).bottomSheetContainerNew(context, title: title,showCancelButton: showCancelButton),
);
}

@ -23,7 +23,7 @@ extension TextStyles on String {
Text heading6(BuildContext context) => getTextWithStyle(this, AppTextStyles.heading6, context.isDark ? AppColor.neutral30 : AppColor.neutral50);
Text bodyText(BuildContext context) => getTextWithStyle(this, AppTextStyles.bodyText, context.isDark ? AppColor.neutral10 : AppColor.neutral20);
Text bodyText(BuildContext context) => getTextWithStyle(this, AppTextStyles.bodyText, context.isDarkNotListen ? AppColor.neutral10 : AppColor.neutral20);
Text bodyText2(BuildContext context) => getTextWithStyle(this, AppTextStyles.bodyText2, context.isDark ? AppColor.neutral10 : AppColor.neutral20);

@ -145,7 +145,7 @@ extension WidgetExtensions on Widget {
child: this,
);
Widget bottomSheetContainerNew(BuildContext context, {EdgeInsets? padding, String? title}) => Container(
Widget bottomSheetContainerNew(BuildContext context, {EdgeInsets? padding, String? title, bool showCancelButton = false}) => Container(
clipBehavior: Clip.antiAlias,
margin: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
decoration: BoxDecoration(
@ -164,7 +164,21 @@ extension WidgetExtensions on Widget {
).center,
16.height,
if (title != null) ...[
title.bottomSheetHeadingTextStyle(context),
Row(
children: [
title.bottomSheetHeadingTextStyle(context).expanded,
if (showCancelButton) ...[
8.width,
InkWell(
onTap: () => Navigator.pop(context),
child: Icon(
Icons.cancel_outlined,
color: context.isDarkNotListen ? AppColor.neutral30 : AppColor.black20,
),
)
]
],
),
16.height,
],
this

@ -219,8 +219,8 @@ class _InstallationPullOutFormViewState extends State<InstallationPullOutFormVie
_formData.loanAttachment!.add(LoanAttachments(id: 0, attachmentName: fileName, loanId: widget.loanData?.id));
}
Utils.showLoading(context);
LoanProvider incidentProvider = Provider.of<LoanProvider>(context, listen: false);
bool isSuccess = await incidentProvider.loanWorkflowAction(_formData.toPulloutJson());
LoanProvider loanProvider = Provider.of<LoanProvider>(context, listen: false);
bool isSuccess = await loanProvider.loanWorkflowAction(_formData.toPulloutJson());
Utils.hideLoading(context);
if (isSuccess) {
Navigator.pop(context, true);

@ -6,6 +6,7 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/helper/utils.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/modules/loan_module/models/loan_attachment_model.dart';
import 'package:test_sa/modules/loan_module/pages/installation_form_view.dart';
@ -13,6 +14,7 @@ import 'package:test_sa/modules/loan_module/pages/pullout_detail_page.dart';
import 'package:test_sa/modules/loan_module/provider/loan_provider.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/views/widgets/images/files_list.dart';
import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
@ -105,11 +107,59 @@ class _LoanEquipmentDetailPageState extends State<LoanEquipmentDetailPage> {
],
).expanded,
// @todo ask backend to add loanTypeValue, so we can show or hide the buttons
if (snapshot.data?.loanTypeName == "Standard" && context.userProvider.isEngineer && (snapshot.data?.loanStatusValue == 5 || snapshot.data?.loanStatusValue == 8))
if (snapshot.data?.loanTypeName == "Standard" &&
context.userProvider.isEngineer &&
(snapshot.data?.loanStatusValue == 4 || snapshot.data?.loanStatusValue == 5 || snapshot.data?.loanStatusValue == 8))
FooterActionButton.footerContainer(
context: context,
child: AppFilledButton(
onPressed: () async {
if (snapshot.data?.loanStatusValue == 4) {
String comment = "";
context.showBottomSheet(
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
'Estimated Date: ${snapshot.data?.installationEDD?.toAssetDetailsFormat ?? "-"}'.bodyText(context),
16.height,
AppTextFormField(
labelText: context.translation.comments,
showSpeechToText: true,
textInputType: TextInputType.multiline,
labelStyle: AppTextStyles.textFieldLabelStyle,
showWithoutDecoration: true,
backgroundColor: context.isDarkNotListen ? AppColor.neutral20 : AppColor.neutral100,
alignLabelWithHint: true,
onChange: (text) {
comment = text;
},
),
16.height,
AppFilledButton(
onPressed: () async {
Utils.showLoading(context);
LoanProvider loanProvider = Provider.of<LoanProvider>(context, listen: false);
bool isSuccess = await loanProvider.loanWorkflowAction({
"userId": context.userProvider.user!.userID,
"isFromMobile": true,
"commentsFromMobile": comment,
'loanId': snapshot.data?.id,
'loanStatusId': snapshot.data?.loanStatusValue,
});
Utils.hideLoading(context);
if (isSuccess) {
Navigator.pop(context, true);
setState(() {});
}
},
label: "Delivered"),
],
),
title: "EDD & Comments",
showCancelButton: true);
return;
}
if (snapshot.data?.loanStatusValue == 5) {
bool isSuccess = await Navigator.push(context, MaterialPageRoute(builder: (context) => InstallationFormView(loanData: snapshot.data))) ?? false;
if (isSuccess) {
@ -122,7 +172,11 @@ class _LoanEquipmentDetailPageState extends State<LoanEquipmentDetailPage> {
setState(() {});
}
},
label: snapshot.data?.loanStatusValue == 5 ? 'Installation Report' : 'PullOut Report',
label: snapshot.data?.loanStatusValue == 4
? "Delivered"
: snapshot.data?.loanStatusValue == 5
? 'Installation Report'
: 'PullOut Report',
),
)
],

Loading…
Cancel
Save