delivered status added.

design_3.0_demo_module
Sikander Saleem 3 weeks ago
parent 66b8ea59d9
commit 6c6ba32997

@ -14,6 +14,8 @@ extension BuildContextExtension on BuildContext {
bool get isDark => Provider.of<SettingProvider>(this).theme == "dark"; 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"; bool get isAr => Provider.of<SettingProvider>(this).language == "ar";
SettingProvider get settingProvider => Provider.of<SettingProvider>(this, listen: false); 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), 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, context: this,
useSafeArea: true, useSafeArea: true,
isScrollControlled: true, isScrollControlled: true,
isDismissible: true, isDismissible: true,
backgroundColor: Colors.transparent, 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 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); Text bodyText2(BuildContext context) => getTextWithStyle(this, AppTextStyles.bodyText2, context.isDark ? AppColor.neutral10 : AppColor.neutral20);

@ -145,7 +145,7 @@ extension WidgetExtensions on Widget {
child: this, 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, clipBehavior: Clip.antiAlias,
margin: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom), margin: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
decoration: BoxDecoration( decoration: BoxDecoration(
@ -164,7 +164,21 @@ extension WidgetExtensions on Widget {
).center, ).center,
16.height, 16.height,
if (title != null) ...[ 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, 16.height,
], ],
this this

@ -219,8 +219,8 @@ class _InstallationPullOutFormViewState extends State<InstallationPullOutFormVie
_formData.loanAttachment!.add(LoanAttachments(id: 0, attachmentName: fileName, loanId: widget.loanData?.id)); _formData.loanAttachment!.add(LoanAttachments(id: 0, attachmentName: fileName, loanId: widget.loanData?.id));
} }
Utils.showLoading(context); Utils.showLoading(context);
LoanProvider incidentProvider = Provider.of<LoanProvider>(context, listen: false); LoanProvider loanProvider = Provider.of<LoanProvider>(context, listen: false);
bool isSuccess = await incidentProvider.loanWorkflowAction(_formData.toPulloutJson()); bool isSuccess = await loanProvider.loanWorkflowAction(_formData.toPulloutJson());
Utils.hideLoading(context); Utils.hideLoading(context);
if (isSuccess) { if (isSuccess) {
Navigator.pop(context, true); 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/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/helper/utils.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.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/models/loan_attachment_model.dart';
import 'package:test_sa/modules/loan_module/pages/installation_form_view.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/modules/loan_module/provider/loan_provider.dart';
import 'package:test_sa/new_views/app_style/app_color.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_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/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/views/widgets/images/files_list.dart'; import 'package:test_sa/views/widgets/images/files_list.dart';
import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
@ -105,11 +107,59 @@ class _LoanEquipmentDetailPageState extends State<LoanEquipmentDetailPage> {
], ],
).expanded, ).expanded,
// @todo ask backend to add loanTypeValue, so we can show or hide the buttons // @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( FooterActionButton.footerContainer(
context: context, context: context,
child: AppFilledButton( child: AppFilledButton(
onPressed: () async { 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) { if (snapshot.data?.loanStatusValue == 5) {
bool isSuccess = await Navigator.push(context, MaterialPageRoute(builder: (context) => InstallationFormView(loanData: snapshot.data))) ?? false; bool isSuccess = await Navigator.push(context, MaterialPageRoute(builder: (context) => InstallationFormView(loanData: snapshot.data))) ?? false;
if (isSuccess) { if (isSuccess) {
@ -122,7 +172,11 @@ class _LoanEquipmentDetailPageState extends State<LoanEquipmentDetailPage> {
setState(() {}); 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