existing loan check api added.

design_3.0_loan_module
Sikander Saleem 2 weeks ago
parent 3d77a96fda
commit 8f2e9db062

@ -390,6 +390,7 @@ class URLs {
static get getMedDepartmentBasedOnSite => "$_baseUrl/TRAFDataSource/GetDepartmentBasedOnSite"; static get getMedDepartmentBasedOnSite => "$_baseUrl/TRAFDataSource/GetDepartmentBasedOnSite";
static get getLoanById => '$_baseUrl/Loan/GetLoanById'; static get getLoanById => '$_baseUrl/Loan/GetLoanById';
static get getLoanByWorkOrderId => '$_baseUrl/Loan/GetLoanByWorkOrderId';
static get addLoan => '$_baseUrl/Loan/AddLoan'; static get addLoan => '$_baseUrl/Loan/AddLoan';
} }

@ -6,6 +6,7 @@ import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_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/models/enums/user_types.dart'; import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/models/enums/work_order_next_step.dart'; import 'package:test_sa/models/enums/work_order_next_step.dart';
import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart'; import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart';
@ -16,6 +17,8 @@ import 'package:test_sa/modules/cx_module/chat/chat_provider.dart';
import 'package:test_sa/modules/cx_module/chat/chat_widget.dart'; import 'package:test_sa/modules/cx_module/chat/chat_widget.dart';
import 'package:test_sa/modules/cx_module/survey/survey_page.dart'; import 'package:test_sa/modules/cx_module/survey/survey_page.dart';
import 'package:test_sa/modules/loan_module/pages/create_loan_request_page.dart'; import 'package:test_sa/modules/loan_module/pages/create_loan_request_page.dart';
import 'package:test_sa/modules/loan_module/pages/loan_equipment_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/app_style/app_color.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/loaders/no_data_found.dart'; import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
@ -104,7 +107,9 @@ class _CMDetailPageState extends State<CMDetailPage> {
(provider.currentWorkOrder?.data?.workOrderContactPerson?.isNotEmpty ?? false)) { (provider.currentWorkOrder?.data?.workOrderContactPerson?.isNotEmpty ?? false)) {
return ChatWidget( return ChatWidget(
moduleId: widget.moduleId, moduleId: widget.moduleId,
isShow: context.settingProvider.isUserFlowMedical && (context.userProvider.isEngineer || context.userProvider.isNurse) && provider.currentWorkOrder?.data?.assignedEmployee != null, isShow: context.settingProvider.isUserFlowMedical &&
(context.userProvider.isEngineer || context.userProvider.isNurse) &&
provider.currentWorkOrder?.data?.assignedEmployee != null,
isReadOnly: _requestProvider.isReadOnlyRequest, isReadOnly: _requestProvider.isReadOnlyRequest,
requestId: widget.requestId.toInt(), requestId: widget.requestId.toInt(),
assigneeEmployeeNumber: provider.currentWorkOrder?.data?.assignedEmployee!.employeeId!, assigneeEmployeeNumber: provider.currentWorkOrder?.data?.assignedEmployee!.employeeId!,
@ -115,23 +120,64 @@ class _CMDetailPageState extends State<CMDetailPage> {
return const SizedBox(); return const SizedBox();
} }
}), }),
isNurse if (isNurse)
? IconButton( IconButton(
icon: 'qr'.toSvgAsset( icon: 'qr'.toSvgAsset(height: 24, width: 24),
height: 24, onPressed: () {
width: 24, ServiceRequestBottomSheet.getQRCodeBottomSheet(context: context);
), },
onPressed: () { )
ServiceRequestBottomSheet.getQRCodeBottomSheet(context: context); else ...[
}, Selector<CMDetailProvider, bool>(
) selector: (_, myModel) => myModel.isLoading, // Selects only the userName
: IconButton( builder: (_, isLoading, __) {
icon: const Icon(Icons.home), if (isLoading) {
onPressed: () { return const SizedBox();
// stopTimer(); } else {
Navigator.pop(context); CMDetailProvider provider = Provider.of<CMDetailProvider>(context, listen: false);
}, //TODO need to verify the check with backend workOrderNextStepEnum
), int? statusValue = provider.currentWorkOrder?.data?.status?.value;
WorkOrderNextStepEnum? workOrderNextStepEnum = provider.currentWorkOrder?.data?.nextStep?.workOrderNextStepEnum;
if (statusValue == 2 && workOrderNextStepEnum == WorkOrderNextStepEnum.activity) {
return Container(
padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 6),
margin: const EdgeInsets.only(left: 2),
decoration: BoxDecoration(color: context.isDark ? AppColor.neutral50 : AppColor.neutral30, borderRadius: BorderRadius.circular(16)),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
const Icon(Icons.add, size: 20, color: AppColor.black1E),
Text(
"Loan",
style: AppTextStyles.bodyText2.copyWith(color: AppColor.black1E),
),
4.width,
],
),
).onPress(() async {
LoanProvider loanProvider = Provider.of<LoanProvider>(context, listen: false);
Utils.showLoading(context);
var data = await loanProvider.getLoanByWorkOrderId(widget.requestId);
Utils.hideLoading(context);
if (data == null) {
CMDetailProvider cmProvider = Provider.of<CMDetailProvider>(context, listen: false);
Navigator.push(context, MaterialPageRoute(builder: (context) => CreateLoanRequestPage(workOrderId: widget.requestId, workOrder: cmProvider.currentWorkOrder!.data)));
} else {
Navigator.push(context, MaterialPageRoute(builder: (context) => LoanEquipmentDetailPage(loanId: data.id!)));
}
});
}
return const SizedBox();
}
}),
IconButton(
icon: const Icon(Icons.home),
onPressed: () {
// stopTimer();
Navigator.pop(context);
},
)
],
], ],
), ),
body: DefaultTabController( body: DefaultTabController(

@ -453,8 +453,8 @@ class _CreateLoanRequestPageState extends State<CreateLoanRequestPage> with Tick
color: AppColor.primary10, // or AppColor.blueStatus(context) color: AppColor.primary10, // or AppColor.blueStatus(context)
), ),
alignment: Alignment.center, alignment: Alignment.center,
child: Icon( child: Icon(
!_loanFormModel.isNewVendor? Icons.add:Icons.search, !_loanFormModel.isNewVendor ? Icons.add : Icons.search,
color: Colors.white, color: Colors.white,
size: 16, size: 16,
), ),
@ -469,6 +469,10 @@ class _CreateLoanRequestPageState extends State<CreateLoanRequestPage> with Tick
), ),
], ],
).onPress(() async { ).onPress(() async {
_loanFormModel.supplier = null;
_loanFormModel.vendorName = null;
_loanFormModel.supEngineer = null;
_loanFormModel.vendorRepresentativeName = null;
setState(() { setState(() {
_loanFormModel.isNewVendor = !_loanFormModel.isNewVendor; _loanFormModel.isNewVendor = !_loanFormModel.isNewVendor;
}); });

@ -87,25 +87,25 @@ class LoanEquipmentDetailPage extends StatelessWidget {
).toShadowContainer(context, padding: 12), ).toShadowContainer(context, padding: 12),
], ],
).expanded, ).expanded,
if (context.userProvider.isEngineer && (snapshot.data?.loanStatusValue == 5 || snapshot.data?.loanStatusValue == 8)) // if (context.userProvider.isEngineer && (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 == 5) { // if (snapshot.data?.loanStatusValue == 5) {
Navigator.push( // Navigator.push(
context, // context,
MaterialPageRoute( // MaterialPageRoute(
builder: (context) => PullOutDetailsPage( // builder: (context) => PullOutDetailsPage(
loanData: snapshot.data, // loanData: snapshot.data,
))); // )));
return; // return;
} // }
Navigator.push(context, MaterialPageRoute(builder: (context) => const InstallationPullOutFormView(isPullout: false))); // Navigator.push(context, MaterialPageRoute(builder: (context) => const InstallationPullOutFormView(isPullout: false)));
}, // },
label: snapshot.data?.loanStatusValue == 5 ? 'Installation Report' : 'PullOut Report', // label: snapshot.data?.loanStatusValue == 5 ? 'Installation Report' : 'PullOut Report',
), // ),
) // )
], ],
); );
}), }),

@ -35,4 +35,17 @@ class LoanProvider extends ChangeNotifier {
} }
return loanData; return loanData;
} }
Future<LoanRequestModel?> getLoanByWorkOrderId(int id) async {
LoanRequestModel? loanData;
try {
Response response = await ApiManager.instance.get(URLs.getLoanByWorkOrderId + "?woId=$id", enableToastMessage: false);
if (response.statusCode >= 200 && response.statusCode < 300) {
loanData = LoanRequestModel.fromJson(json.decode(response.body)["data"]);
}
} catch (error) {
print(error);
}
return loanData;
}
} }

Loading…
Cancel
Save