import 'dart:io'; import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/svg.dart'; import 'package:generp/Notifiers/ordersProvider/dispatchOrderProvider.dart'; import 'package:generp/Notifiers/ordersProvider/pagesDashboardProvider.dart'; import 'package:generp/Utils/dropdownTheme.dart'; import 'package:generp/screens/screensExports.dart'; import 'package:provider/provider.dart'; import '../../Utils/app_colors.dart'; import '../../Utils/commonWidgets.dart'; import '../finance/FileViewer.dart'; import 'editOrderAccountDetails.dart'; import 'package:generp/Models/ordersModels/ordersDetailsDispatchOrderViewResponse.dart'; class Ordersdetailsbymodes extends StatefulWidget { final pageTitleName; final orderId; final mode; const Ordersdetailsbymodes({ super.key, required this.pageTitleName, required this.orderId, required this.mode, }); @override State createState() => _OrdersdetailsbymodesState(); } class _OrdersdetailsbymodesState extends State { Dropdowntheme ddtheme = Dropdowntheme(); @override void initState() { // TODO: implement initState super.initState(); WidgetsBinding.instance.addPostFrameCallback((timeStamp) { var provider = Provider.of( context, listen: false, ); provider.showMoreDetails = false; var disproved = Provider.of(context,listen: false); provider.ordersDetailsByModeAPIFunction( context, widget.orderId, widget.mode, ); }); } @override Widget build(BuildContext context) { return Consumer2( builder: (context, provider,disProvider, child) { var orderDetails = provider.orderDetails; var Headings1 = [ "Order Number", "Account Name", "Sales Person Name", "Order Received Date", ]; var subHeadings1 = [ provider.orderDetails.orderNumber ?? "-", provider.orderDetails.accountName ?? "-", provider.orderDetails.salesPersonEmpName ?? "-", provider.orderDetails.orderReceivedDate ?? "-", ]; var Headings2 = [ "Billing State", "Billing District", "Billing Sub Location", "Billing Pincode", "Billing Address", "Entered By", "Dispatch State", "Dispatch District", "District Sub Location", "Dispatch Pincode", "Dispatch Address", "GST Number", "Unloading Scope", "Freight Scope", "Erection Scope", "CGST Amount", "SGST Amount", "IGST Amount", "OTP", "Basic Amount", "Paid Amount", "Balance Amount", "Total Amount", "TPC Applicable", "TPC Agent", "TPC Requested Amount", "TPC Level 1 Approved Amount", "TPC Level 2 Approved Amount", "TPC Payment Mode", "TPC Payment Reference No", "TPC Payment Attachment", "TPC Status", "Purchase Order", "Created Datetime", "Note", "Status", ]; var subHeadings2 = [ provider.orderDetails.billingState ?? "-", provider.orderDetails.billingDistrict ?? "-", provider.orderDetails.billingSubLocality ?? "-", provider.orderDetails.billingPincode ?? "-", provider.orderDetails.billingAddress ?? "-", provider.orderDetails.enteredEmpName ?? "-", provider.orderDetails.stateName ?? "-", provider.orderDetails.districtName ?? "-", provider.orderDetails.subLocationName ?? "-", provider.orderDetails.dispatchPincode ?? "-", provider.orderDetails.dispatchAddress ?? "-", provider.orderDetails.gstNumber ?? "-", provider.orderDetails.unloadingScope ?? "-", provider.orderDetails.freightScope ?? "-", provider.orderDetails.erectionScope ?? "-", provider.orderDetails.cgstAmount ?? "-", provider.orderDetails.sgstAmount ?? "-", provider.orderDetails.igstAmount ?? "-", provider.orderDetails.otp ?? "-", provider.orderDetails.basicAmount ?? "-", provider.orderDetails.paidAmount ?? "-", provider.orderDetails.balanceAmount ?? "-", provider.orderDetails.totalAmount ?? "-", provider.orderDetails.tpcApplicable ?? "-", provider.orderDetails.tpcaAgentName ?? "-", provider.orderDetails.requestedTpcAmount ?? "-", provider.orderDetails.level1TpcApprovedAmount ?? "-", provider.orderDetails.level2TpcApprovedAmount ?? "-", provider.orderDetails.tpcPaymentMode ?? "-", provider.orderDetails.tpcPaymentReferenceNo ?? "-", provider.orderDetails.tpcPaymentAttachementViewFileName ?? "-", provider.orderDetails.tpcStatus ?? "-", provider.orderDetails.tpcPaymentAttachmentDirFilePath ?? "-", provider.orderDetails.createdDatetime ?? "-", provider.orderDetails.note ?? "-", provider.orderDetails.status ?? "-", ]; var Headings = [...Headings1]; var subHeadings = [...subHeadings1]; if(provider.showMoreDetails){ Headings = [...Headings1,...Headings2]; subHeadings = [...subHeadings1,...subHeadings2]; } return WillPopScope( child: SafeArea( top: false, bottom: Platform.isIOS?false:true, child: Scaffold( resizeToAvoidBottomInset: true, appBar: appbar2( context, widget.mode!=""?"Order Details": "Order Details (${widget.mode})", provider.resetAll, InkResponse( onTap: () { _showOptionsSheet(context); }, child: SvgPicture.asset("assets/svg/ic_more.svg", height: 30), ), ), backgroundColor: AppColors.scaffold_bg_color, body: Container( child: SingleChildScrollView( child: Container( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(16), ), margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10), padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10), child: Column( children: [ Row( children: [ Expanded( flex: 1, child: Container( height: 50, width: 35, padding: EdgeInsets.all(8.0), decoration: BoxDecoration( color: Color(0xFFFFF3CE), borderRadius: BorderRadius.circular(8), ), child: SvgPicture.asset("assets/svg/fin_ic.svg"), ), ), SizedBox(width: 10), Expanded( flex: 4, child: SizedBox( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( orderDetails.accountName ?? "-", style: TextStyle( fontFamily: "JakartaMedium", fontSize: 14, color: AppColors.semi_black, ), ), Text( "₹${orderDetails.balanceAmount}", style: TextStyle( fontFamily: "JakartaMedium", fontSize: 14, color: AppColors.app_blue, ), ), ], ), ), ), Expanded( flex: 2, child: Container( padding: EdgeInsets.symmetric( horizontal: 5, vertical: 10, ), decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), color: Color(0xFFE3FFE0), ), child: Center( child: Text( orderDetails.status ?? "-", textAlign: TextAlign.center, style: TextStyle( fontFamily: "JakartaMedium", fontSize: 14, color: Color(0xFF0D9C00), ), ), ), ), ), ], ), Divider(thickness: 0.5, color: Color(0xFFD7D7D7)), ...List.generate(subHeadings.length, (j) { return Container( padding: EdgeInsets.symmetric(vertical: 7), child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( child: Text( Headings[j], style: TextStyle( fontFamily: "JakartaMedium", fontSize: 14, color: AppColors.semi_black, ), ), ), Expanded( child: InkResponse( onTap: () { if (Headings[j] == "Purchase Order") { Navigator.push( context, MaterialPageRoute( builder: (context) => Fileviewer( fileName: orderDetails .tpcPaymentAttachementViewFileName!, fileUrl: orderDetails .tpcPaymentAttachmentDirFilePath!, ), ), ); } }, child: Text( Headings[j] == "Purchase Order" ? "View" :subHeadings[j]==""?"-":"${subHeadings[j]}", style: TextStyle( fontSize: 14, color: Headings[j] == "Purchase Order" ? AppColors.app_blue : Color(0xFF818181), decoration: Headings[j] == "Purchase Order" ? TextDecoration.underline : TextDecoration.none, decorationColor: Headings[j] == "Purchase Order" ? AppColors.app_blue : AppColors.white, ), ), ), ), ], ), ); }), InkResponse( onTap: () async { provider.showMoreDetails = !provider.showMoreDetails; }, child: Container( padding: EdgeInsets.symmetric( vertical: 5, ), child: Row( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: [ Text( provider.showMoreDetails?"- Show Less": "+ More Details", style: TextStyle( fontFamily: "JakartaMedium", fontSize: 14, color: AppColors.app_blue, ), ), ], ), ), ), ], ), ), ), ), bottomNavigationBar: ["self", "pending_approval"].contains(widget.mode) ? Container(height: 0) : Container( margin: EdgeInsets.symmetric(horizontal: 10), alignment: Alignment.bottomCenter, height: 60, child: Container( margin: EdgeInsets.only(bottom: 10), alignment: Alignment.center, height: 45, child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ if ([ "level_one_approval", "level_two_approval", "level_two_rejected", ].contains(widget.mode)) ...[ Expanded( child: InkResponse( onTap: () { _showLevelApprovalRejectionSheet( context, "Reject", ); }, child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), color: Color(0xFFFFEFEF), border: Border.all( color: Color(0xFFED3424), width: 0.5, ), ), child: Center( child: Text( "Reject", style: TextStyle( color: Color(0xFFED3424), ), ), ), ), ), ), ], SizedBox(width: 10), if ([ "level_one_approval", "level_two_approval", "level_two_rejected", "sales_order_registered", ].contains(widget.mode)) ...[ Expanded( child: InkResponse( onTap: () { // provider // .approveRejectPaymentRequestAPIFunction( // context, // provider.requestsDetails.id, // ); _showLevelApprovalRejectionSheet( context, "Approve", ); }, child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), color: Color(0xFFE7FFE5), border: Border.all( color: Color(0xFF0D9C00), width: 0.5, ), ), child: Center( child: Text( "Approve", style: TextStyle( color: Color(0xFF0D9C00), ), ), ), ), ), ), ], if (["admin"].contains(widget.mode)) ...[ Expanded( child: InkResponse( onTap: () { _showLevelDeletionSheet(context); }, child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), color: Color(0xFFFFEFEF), border: Border.all( color: Color(0xFFED3424), width: 0.5, ), ), child: Center( child: Text( "Delete", style: TextStyle( color: Color(0xFFED3424), ), ), ), ), ), ), ], if (widget.mode == "dispatched") ...[ Expanded( child: InkResponse( onTap: () { disProvider.initializeForm(context); disProvider.ordersDetailsDispatchOrderViewFunction(context,widget.orderId); _showDispatchSheet(context, "Dispatch"); }, child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(8), color: Color(0xFFFFEFEF), border: Border.all( color: Color(0xFFED3424), width: 0.5, ), ), child: Center( child: Text( "Dispatch", style: TextStyle( color: Color(0xFFED3424), ), ), ), ), ), ), ], ], ), ), ), ), ), onWillPop: () { return onBackPressed(context); }, ); }, ); } Future _showOptionsSheet(BuildContext context) { return showModalBottomSheet( useSafeArea: true, isDismissible: true, isScrollControlled: true, showDragHandle: true, backgroundColor: Colors.white, enableDrag: true, context: context, builder: (context) { return StatefulBuilder( builder: (context, setState) { return SafeArea( child: Consumer( builder: (context, provider, child) { return Container( margin: EdgeInsets.only( bottom: 15, left: 15, right: 15, top: 10, ), padding: EdgeInsets.only( bottom: MediaQuery.of(context).viewInsets.bottom, ), child: SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.min, children: [ SizedBox(height: 15), ...List.generate(4, (index) { final assetnames = [ "crm_contact_edit", "order_list_svg_2", "order_list_svg_3", "order_list_svg_3", ]; final Headingnames = [ "Edit Order", "Payment History", "Products Details", "Feedback History", ]; return ListTile( onTap: () async { switch (index) { case 0: Navigator.pop(context); Navigator.push( context, MaterialPageRoute( builder: ( context, ) => Editorderaccountdetails( mode: widget.mode, pageTitleName: "Edit Order (${widget.mode})", orderID: provider.orderDetails.id, ), ), ); break; case 1: Navigator.pop(context); Navigator.push( context, MaterialPageRoute( builder: (context) => Orderdetailspaymenthistory(), ), ); break; case 2: Navigator.pop(context); Navigator.push( context, MaterialPageRoute( builder: (context) => Orderdetailsproductshistory(), ), ); break; case 3: Navigator.pop(context); Navigator.push( context, MaterialPageRoute( builder: (context) => Orderdetailsfeedbackhistory(), ), ); break; } }, leading: SvgPicture.asset( "assets/svg/${assetnames[index]}.svg", ), title: Text( Headingnames[index], style: TextStyle(fontFamily: "JakartaMedium"), ), trailing: SvgPicture.asset( "assets/svg/arrow_right_new.svg", ), ); }), ], ), ), ); }, ), ); }, ); }, ); } Future _showLevelApprovalRejectionSheet(BuildContext context, type) { return showModalBottomSheet( useSafeArea: true, isDismissible: true, isScrollControlled: true, showDragHandle: true, backgroundColor: Colors.white, enableDrag: true, context: context, builder: (context) { return StatefulBuilder( builder: (context, setState) { return SafeArea( child: Consumer( builder: (context, provider, child) { final details = provider.orderDetails; return Container( margin: EdgeInsets.only( bottom: 15, left: 15, right: 15, top: 10, ), padding: EdgeInsets.only( bottom: MediaQuery.of(context).viewInsets.bottom, ), child: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Align( alignment: Alignment.topLeft, child: Text( type == "Approve" ? "${provider.approvalSheetHeading}" : "${provider.rejecetionSheetHeading}", style: TextStyle( color: AppColors.app_blue, fontSize: 16, ), ), ), if (widget.mode == "sales_order_registered") ...[ Padding( padding: const EdgeInsets.only( bottom: 5.0, top: 8.0, ), child: Text("Company Name"), ), Container( height: 50, alignment: Alignment.center, decoration: BoxDecoration( color: Color(0xFFE9E9E9), borderRadius: BorderRadius.circular(14), ), child: Padding( padding: const EdgeInsets.fromLTRB( 10.0, 0.0, 10, 0, ), child: TextFormField( controller: provider.editCompanyController, readOnly: true, keyboardType: TextInputType.text, maxLines: 1, onChanged: provider.onChangeEditCompanyName, style: TextStyle( color: Color(0xFF818181), fontSize: 14, ), decoration: InputDecoration( hintText: "Enter Company Name", hintStyle: TextStyle( fontWeight: FontWeight.w400, color: Color(0xFFB4BEC0), fontSize: 14, ), enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, ), ), ), ), if (provider.companyNameError != null) ...[ Container( alignment: Alignment.topLeft, margin: EdgeInsets.only(top: 2.5, left: 25), child: Text( "${provider.companyNameError}", style: TextStyle( color: Colors.red, fontSize: 10, ), ), ), ], Padding( padding: const EdgeInsets.only( bottom: 5.0, top: 8.0, ), child: Text("Sale Order Number"), ), Container( height: 50, alignment: Alignment.center, decoration: BoxDecoration( color: Color(0xFFE9E9E9), borderRadius: BorderRadius.circular(14), ), child: Padding( padding: const EdgeInsets.fromLTRB( 10.0, 0.0, 10, 0, ), child: TextFormField( controller: provider.saleOrderNumberController, readOnly: true, keyboardType: TextInputType.text, maxLines: 1, onChanged: provider.onChangeSaleOrderNumber, style: TextStyle( color: Color(0xFF818181), fontSize: 14, ), decoration: InputDecoration( hintText: "Enter Order Number", hintStyle: TextStyle( fontWeight: FontWeight.w400, color: Color(0xFFB4BEC0), fontSize: 14, ), enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, ), ), ), ), if (provider.saleOrderNumberError != null) ...[ Container( alignment: Alignment.topLeft, margin: EdgeInsets.only(top: 2.5, left: 25), child: Text( "${provider.saleOrderNumberError}", style: TextStyle( color: Colors.red, fontSize: 10, ), ), ), ], ], Padding( padding: const EdgeInsets.only( bottom: 5.0, top: 8.0, ), child: Text("Remarks"), ), Container( height: 150, alignment: Alignment.center, decoration: BoxDecoration( color: Color(0xFFE9E9E9), borderRadius: BorderRadius.circular(14), ), child: Padding( padding: const EdgeInsets.fromLTRB( 10.0, 0.0, 10, 0, ), child: TextFormField( controller: provider.approveRejectFeedbackController, readOnly: true, keyboardType: TextInputType.text, maxLines: 60, onChanged: provider.onChangeApproveRejection, style: TextStyle( color: Color(0xFF818181), fontSize: 14, ), decoration: InputDecoration( hintText: "Write Remarks", hintStyle: TextStyle( fontWeight: FontWeight.w400, color: Color(0xFFB4BEC0), fontSize: 14, ), enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, ), ), ), ), if (provider.approveRejectFeedbackError != null) ...[ Container( alignment: Alignment.topLeft, margin: EdgeInsets.only(top: 2.5, left: 25), child: Text( "${provider.approveRejectFeedbackError}", style: TextStyle( color: Colors.red, fontSize: 10, ), ), ), ], InkWell( onTap:provider.submitClicked?null: () { provider.submitClicked = true; provider.approvalRejectionAPIFunction( context, details.status, details.id, type == "Approve" ? "Approved" : "Rejected", details.tpcApplicable, details.tpcApplicable == "Yes" ? (widget.mode == "level_one_approval" ? details.level1TpcApprovedAmount : details.level2TpcApprovedAmount) : "", widget.mode == "dispatched" ? details.invoiceNumber : "", widget.mode == "dispatched" ? details.vehicleNumber : "", widget.mode == "dispatched" ? details.driverName : "", widget.mode == "dispatched" ? details.driverMobileNumber : "", widget.mode == "dispatched" ? [] : [], widget.mode, ); }, child: Container( alignment: Alignment.center, height: 45, margin: EdgeInsets.only( left: 5.0, right: 5.0, top: 5.0, bottom: 5.0, ), decoration: BoxDecoration( color: AppColors.app_blue, //1487C9 borderRadius: BorderRadius.circular(14.0), ), child: Center( child:provider.submitClicked?CircularProgressIndicator.adaptive( valueColor: AlwaysStoppedAnimation(Colors.white), ): Text( "Submit", textAlign: TextAlign.center, style: TextStyle(color: Colors.white), ), ), ), ), ], ), ), ); }, ), ); }, ); }, ); } Future _showDispatchSheet(BuildContext context, type) { return showModalBottomSheet( useSafeArea: true, isDismissible: true, isScrollControlled: true, showDragHandle: true, backgroundColor: Colors.white, enableDrag: true, context: context, builder: (context) { return StatefulBuilder( builder: (context, setState) { return SafeArea( child: Consumer2( builder: (context, provider, disProvider, child) { final details = provider.orderDetails; return Container( margin: EdgeInsets.only( bottom: 15, left: 15, right: 15, top: 10, ), padding: EdgeInsets.only( bottom: MediaQuery.of(context).viewInsets.bottom, ), child: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Align( alignment: Alignment.topLeft, child: Text( "Dispatch", style: TextStyle( color: AppColors.app_blue, fontSize: 16, ), ), ), textControllerWidget( context, disProvider.invoiceNumberController, "Invoice Number", "Enter Invoice Number", disProvider.onChangedinvoiceNumber, TextInputType.text, false, null, ), errorWidget(context, disProvider.invoiceNumberError), textControllerWidget( context, disProvider.vehicleNumberController, "Vehicle Number", "Enter Vehicle Number", disProvider.onChangedvehicleNumber, TextInputType.text, false, null, ), errorWidget(context, disProvider.vehicleNumberError), textControllerWidget( context, disProvider.driverNameController, "Driver Name", "Enter Driver Name", disProvider.onChangeddriverName, TextInputType.text, false, null, ), errorWidget(context, disProvider.driverNameError), textControllerWidget( context, disProvider.driverMobileNumberController, "Driver Mobile Number", "Enter Driver Mobile Number", disProvider.onChangeddriverMobileNumber, TextInputType.text, false, null, ), errorWidget(context, disProvider.driverMobileNumberError), InkResponse( onTap: () { disProvider.editAddNewRow(); }, child: Container( margin: const EdgeInsets.symmetric(vertical: 10), height: 45, width: MediaQuery.of(context).size.width, decoration: BoxDecoration( color: const Color(0xFFE6F6FF), borderRadius: BorderRadius.circular(12), border: Border.all( color: AppColors.app_blue, width: 0.5, ), ), child: Center( child: Text( "+ Add Product", style: TextStyle( fontFamily: "JakartaMedium", color: AppColors.app_blue, ), ), ), ), ), if (disProvider.leadProductsList.isNotEmpty || disProvider.engineNumberControllers.isNotEmpty)...[ ListView.builder( itemCount: disProvider.engineNumberControllers.length, physics: const NeverScrollableScrollPhysics(), shrinkWrap: true, itemBuilder: (context, j) { return Container( padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 10), margin: const EdgeInsets.symmetric(vertical: 10), decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(20), ), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ TextWidget(context, "Product"), DropdownButtonHideUnderline( child: Row( children: [ Expanded( child: DropdownButton2( isExpanded: true, hint: const Text( 'Select Product', style: TextStyle(fontSize: 14), overflow: TextOverflow.ellipsis, ), items: disProvider.productsList .map((ord) => DropdownMenuItem( value: ord, child: Text( "(Product Name: ${ord.productName})", style: const TextStyle(fontSize: 14), overflow: TextOverflow.ellipsis, ), )) .toList(), value: disProvider.selectedProductIds[j] != null ? disProvider.productsList.firstWhere( (ord) => ord.id == disProvider.selectedProductIds[j], orElse: () => disProvider.productsList[0], ) : null, onChanged: (Products? value) { if (value != null) { disProvider.updateSelectedProductIds(j, value); disProvider.selectedProductIds[j] = value.id?.toString() ?? ''; disProvider.updateTotalAmount(j); } }, buttonStyleData: ddtheme.buttonStyleData, iconStyleData: ddtheme.iconStyleData, menuItemStyleData: ddtheme.menuItemStyleData, dropdownStyleData: ddtheme.dropdownStyleData, ), ), ], ), ), const SizedBox(height: 10), Row( children: [ Expanded( flex: 2, child: textControllerWidget( context, disProvider.engineNumberControllers[j], "Engine Number", "Enter Engine Number", (p0) { if(disProvider.engineNumberControllers[j].text.trim().isEmpty){ disProvider.pdiIDControllers[j].clear(); } disProvider.updateTotalAmount(j); disProvider.ordersPDIIDByEngineNumberFunction(context,j); }, TextInputType.text, false, null, ), ), ], ), const SizedBox(height: 10), Row( children: [ Expanded( flex: 2, child: textControllerWidget( context, disProvider.pdiIDControllers[j], "PDI ID", "Enter PDI ID", (value) => disProvider.updateTotalAmount(j), TextInputType.text, true, null, ), ), ], ), const SizedBox(height: 10), // IconButton( // icon: const Icon(Icons.delete), // onPressed: disProvider.editProductPriceControllers.length > 1 // ? () => disProvider.editRemoveRow(j) // : null, // ), ], ), ); }, ), ], InkWell( onTap:provider.submitClicked?null: () { provider.submitClicked = false; final data = disProvider.getFormData(); print(data); disProvider.approvalRejectionAPIFunction( context, details.status, details.id, type == "Dispatch", provider.approveRejectFeedbackController.text, details.tpcApplicable, details.tpcApplicable == "Yes" ? (widget.mode == "level_one_approval" ? details.level1TpcApprovedAmount : details.level2TpcApprovedAmount) : "", provider.saleOrderNumberController.text, provider.editCompanyController.text, data, widget.mode ); }, child: Container( alignment: Alignment.center, height: 45, margin: EdgeInsets.only( left: 5.0, right: 5.0, top: 5.0, bottom: 5.0, ), decoration: BoxDecoration( color: AppColors.app_blue, //1487C9 borderRadius: BorderRadius.circular(14.0), ), child: Center( child:provider.submitClicked?CircularProgressIndicator.adaptive( valueColor: AlwaysStoppedAnimation(Colors.white), ): Text( "Submit", textAlign: TextAlign.center, style: TextStyle(color: Colors.white), ), ), ), ), ], ), ), ); }, ), ); }, ); }, ); } Future _showLevelDeletionSheet(BuildContext context) { return showModalBottomSheet( useSafeArea: true, isDismissible: true, isScrollControlled: true, showDragHandle: true, backgroundColor: Colors.white, enableDrag: true, context: context, builder: (context) { return StatefulBuilder( builder: (context, setState) { return SafeArea( child: Consumer( builder: (context, provider, child) { return Container( margin: EdgeInsets.only( bottom: 15, left: 15, right: 15, top: 10, ), padding: EdgeInsets.only( bottom: MediaQuery.of(context).viewInsets.bottom, ), child: SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Align( alignment: Alignment.topLeft, child: Text( "${provider.deletionSheetHeading}", style: TextStyle( color: AppColors.app_blue, fontSize: 16, ), ), ), Padding( padding: const EdgeInsets.only( bottom: 5.0, top: 8.0, ), child: Text("Remarks"), ), Container( height: 150, alignment: Alignment.center, decoration: BoxDecoration( color: Color(0xFFE9E9E9), borderRadius: BorderRadius.circular(14), ), child: Padding( padding: const EdgeInsets.fromLTRB( 10.0, 0.0, 10, 0, ), child: TextFormField( controller: provider.deleteFeedbackController, readOnly: true, keyboardType: TextInputType.text, maxLines: 60, onChanged: provider.onChangeDeletion, style: TextStyle( color: Color(0xFF818181), fontSize: 14, ), decoration: InputDecoration( hintText: "Write Remarks", hintStyle: TextStyle( fontWeight: FontWeight.w400, color: Color(0xFFB4BEC0), fontSize: 14, ), enabledBorder: InputBorder.none, focusedBorder: InputBorder.none, ), ), ), ), if (provider.deleteFeedbackError != null) ...[ Container( alignment: Alignment.topLeft, margin: EdgeInsets.only(top: 2.5, left: 25), child: Text( "${provider.deleteFeedbackError}", style: TextStyle( color: Colors.red, fontSize: 10, ), ), ), ], InkWell( onTap:provider.submitClicked ?null: () { provider.submitClicked = true; provider.delectionAPIFunction( context, provider.orderDetails.id, ); }, child: Container( alignment: Alignment.center, height: 45, margin: EdgeInsets.only( left: 5.0, right: 5.0, top: 5.0, bottom: 5.0, ), decoration: BoxDecoration( color: AppColors.app_blue, //1487C9 borderRadius: BorderRadius.circular(14.0), ), child: Center( child:provider.submitClicked ?CircularProgressIndicator.adaptive( valueColor: AlwaysStoppedAnimation(Colors.white), ): Text( "Submit", textAlign: TextAlign.center, style: TextStyle(color: Colors.white), ), ), ), ), ], ), ), ); }, ), ); }, ); }, ); } }