demo request cancellation added.

design_3.0_demo_module
Sikander Saleem 1 day ago
parent 4d5f001cd2
commit 4b44a41598

@ -497,6 +497,8 @@ class URLs {
static get getDemoRequestById => "$_baseUrl/DemoRequest";
static get cancelDemoRequest => "$_baseUrl/DemoRequest/Cancel";
static get updateDemoRequestByAssessor => "$_baseUrl/DemoRequest/UpdateDemoRequestByAssessor";
static get updateDemoPeriodByRequester => "$_baseUrl/DemoRequest/UpdateDemoPeriodByRequester";

@ -4,6 +4,7 @@ import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/helper/utils.dart';
import 'package:test_sa/models/enums/demo_request_step.dart';
import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
@ -13,6 +14,7 @@ import 'package:test_sa/modules/demo_module/provider/demo_provider.dart';
import 'package:test_sa/modules/loan_module/models/loan_attachment_model.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/swipe_module/dialoge/acknowledge_work_dialog.dart';
import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
import '../../controllers/api_routes/urls.dart';
@ -141,12 +143,43 @@ class _DemoDetailViewPageState extends State<DemoDetailViewPage> {
],
).toShadowContainer(context, padding: 12),
).expanded,
FooterActionButton.demoRequestDetailsFooterWidget(
demoRequestStage: demoData.status!.demoRequestStepEnum!,
dataModel: demoData,
status: demoData.status!,
if (context.userProvider.isNurse && context.settingProvider.isUserFlowMedical && (demoData.status!.value == 2))
FooterActionButton.footerContainer(
context: context,
refreshData: () => setState(() {})).toShadowContainer(context, padding: 0, showShadow: false, borderRadius: 0),
child: AppFilledButton(
label: context.translation.cancel,
buttonColor: AppColor.white60,
textColor: AppColor.black10,
loading: false,
onPressed: () async {
showDialog(
context: context,
builder: (BuildContext cxt) => AcknowledgeWorkDialog(
message: "Are you sure, you want to cancel request?",
confirmButtonText: 'Confirm',
cancelButtonText: 'Cancel',
onSave: () async {
Utils.showLoading(context);
DemoProvider demoProvider = Provider.of<DemoProvider>(context, listen: false);
bool isSuccess = await demoProvider.cancelRequest(demoData.id!);
Utils.hideLoading(context);
if (isSuccess) {
setState(() {});
}
},
onDiscard: () {},
),
);
},
),
)
else
FooterActionButton.demoRequestDetailsFooterWidget(
demoRequestStage: demoData.status!.demoRequestStepEnum!,
dataModel: demoData,
status: demoData.status!,
context: context,
refreshData: () => setState(() {})).toShadowContainer(context, padding: 0, showShadow: false, borderRadius: 0),
],
);
}));

@ -54,6 +54,20 @@ class DemoProvider extends ChangeNotifier {
}
}
Future<bool> cancelRequest(int requestId) async {
try {
Response response = await ApiManager.instance.post(URLs.cancelDemoRequest + "?demoRequestId=$requestId", body: {}, showToast: false);
if (response.statusCode >= 200 && response.statusCode < 300) {
String message = (jsonDecode(response.body)["message"] ?? "");
Fluttertoast.showToast(msg: message ?? "", toastLength: Toast.LENGTH_LONG);
return true;
}
return false;
} catch (error) {
return false;
}
}
Future<bool> updateDemoRequest(Map<String, dynamic> body) async {
try {
Response response = await ApiManager.instance.post(URLs.updateDemoRequest, body: body, showToast: false);

Loading…
Cancel
Save