InPatient advance payment history implemented

Dev_3.3_InPatient_CR
haroon amjad 1 year ago
parent 5c5ed35df8
commit 4a7ca9cd46

@ -608,6 +608,8 @@ var CHECK_IF_INPATIENT = 'Services/Patients.svc/REST/GetInPatientAdmissionInfo';
var CHECK_IF_PATIENT_ADMITTED = 'Services/Inps.svc/REST/checkIsPatientAdmittedOrAdmissionRequest';
// Get General Instructions API
var GET_GENERAL_INSTRUCTIONS = 'Services/INPs.svc/REST/getGeneralInstructions';
@ -616,6 +618,8 @@ var GET_MEDICAL_INSTRUCTIONS = 'Services/INPs.svc/REST/getPatientAdmissionReques
var GET_INPATIENT_ADVANCE_PAYMENT_REQUESTS = 'Services/INPs.svc/REST/getInpatientAdvancePendingPayment';
var GET_INPATIENT_PAID_ADVANCE_PAYMENT = 'Services/INPs.svc/REST/getInpatientAdvanceHistory';
var GET_INPATIENT_ADVANCE_PAYMENT_LINK = 'Services/PayFort_Serv.svc/REST/InsertInPatientAdvanceDetails';
var INSERT_INPATIENT_ORDER = 'Services/INPs.svc/REST/Inpcp_insertOrder';

@ -0,0 +1,71 @@
class InPatientAdvanceHistoryResponseModel {
int advanceNumber;
int errorCode;
String message;
List<ResponseInpatientAdvanceInfo> responseInpatientAdvanceInfo;
int statusCode;
InPatientAdvanceHistoryResponseModel({this.advanceNumber, this.errorCode, this.message, this.responseInpatientAdvanceInfo, this.statusCode});
InPatientAdvanceHistoryResponseModel.fromJson(Map<String, dynamic> json) {
advanceNumber = json['advanceNumber'];
errorCode = json['errorCode'];
message = json['message'];
if (json['responseInpatientAdvanceInfo'] != null) {
responseInpatientAdvanceInfo = <ResponseInpatientAdvanceInfo>[];
json['responseInpatientAdvanceInfo'].forEach((v) {
responseInpatientAdvanceInfo.add(new ResponseInpatientAdvanceInfo.fromJson(v));
});
}
statusCode = json['statusCode'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['advanceNumber'] = this.advanceNumber;
data['errorCode'] = this.errorCode;
data['message'] = this.message;
if (this.responseInpatientAdvanceInfo != null) {
data['responseInpatientAdvanceInfo'] = this.responseInpatientAdvanceInfo.map((v) => v.toJson()).toList();
}
data['statusCode'] = this.statusCode;
return data;
}
}
class ResponseInpatientAdvanceInfo {
int admissionNo;
int admissionReqNo;
String createdOn;
int patientId;
int projectId;
num requestedAmount;
String setupId;
int status;
ResponseInpatientAdvanceInfo({this.admissionNo, this.admissionReqNo, this.createdOn, this.patientId, this.projectId, this.requestedAmount, this.setupId, this.status});
ResponseInpatientAdvanceInfo.fromJson(Map<String, dynamic> json) {
admissionNo = json['admissionNo'];
admissionReqNo = json['admissionReqNo'];
createdOn = json['createdOn'];
patientId = json['patientId'];
projectId = json['projectId'];
requestedAmount = json['requestedAmount'];
setupId = json['setupId'];
status = json['status'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['admissionNo'] = this.admissionNo;
data['admissionReqNo'] = this.admissionReqNo;
data['createdOn'] = this.createdOn;
data['patientId'] = this.patientId;
data['projectId'] = this.projectId;
data['requestedAmount'] = this.requestedAmount;
data['setupId'] = this.setupId;
data['status'] = this.status;
return data;
}
}

@ -1,4 +1,14 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/InPatientServices/get_inpatient_advance_history_response_model.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/my_rich_text.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class InPatientPaidAdvancePayment extends StatefulWidget {
const InPatientPaidAdvancePayment({Key key}) : super(key: key);
@ -8,8 +18,87 @@ class InPatientPaidAdvancePayment extends StatefulWidget {
}
class _InPatientPaidAdvancePaymentState extends State<InPatientPaidAdvancePayment> {
ProjectViewModel projectViewModel;
InPatientAdvanceHistoryResponseModel inPatientAdvanceHistoryResponseModel;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
getInPatientAdvancePaymentHistory();
});
}
@override
Widget build(BuildContext context) {
return const Placeholder();
projectViewModel = Provider.of(context);
return Padding(
padding: const EdgeInsets.all(16.0),
child: inPatientAdvanceHistoryResponseModel.responseInpatientAdvanceInfo.isNotEmpty
? ListView.separated(
itemCount: inPatientAdvanceHistoryResponseModel.responseInpatientAdvanceInfo.length,
itemBuilder: (BuildContext context, int index) {
return Container(
decoration: cardRadius(12),
padding: EdgeInsets.all(12),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
MyRichText(TranslationBase.of(context).insuranceCompany + ": ", inPatientAdvanceHistoryResponseModel.responseInpatientAdvanceInfo[index].admissionNo.toString(),
projectViewModel.isArabic),
MyRichText(TranslationBase.of(context).insuranceCompany + ": ", inPatientAdvanceHistoryResponseModel.responseInpatientAdvanceInfo[index].admissionReqNo.toString(),
projectViewModel.isArabic),
MyRichText(
TranslationBase.of(context).date + ": ",
DateUtil.formatDateToDate(DateUtil.convertStringToDate(inPatientAdvanceHistoryResponseModel.responseInpatientAdvanceInfo[index].createdOn), false),
projectViewModel.isArabic),
MyRichText(
TranslationBase.of(context).amount_ + ": ", inPatientAdvanceHistoryResponseModel.responseInpatientAdvanceInfo[index].requestedAmount.toString(), projectViewModel.isArabic),
MyRichText(TranslationBase.of(context).status + ": ", getStatus(inPatientAdvanceHistoryResponseModel.responseInpatientAdvanceInfo[index]), projectViewModel.isArabic),
],
),
);
},
separatorBuilder: (BuildContext context, int index) {
return Padding(
padding: const EdgeInsets.only(left: 14, right: 14),
child: mDivider(CustomColors.devider),
);
},
)
: getNoDataWidget(context),
);
}
String getStatus(ResponseInpatientAdvanceInfo responseInpatientAdvanceInfo) {
switch (responseInpatientAdvanceInfo.status) {
case 1:
return "Hold";
break;
case 2:
return "Active";
break;
case 4:
return "Cancelled";
break;
default:
return "";
}
}
void getInPatientAdvancePaymentHistory() {
ClinicListService service = new ClinicListService();
GifLoaderDialogUtils.showMyDialog(context);
service
.getInPatientAdvancePaymentHistory(projectViewModel.inPatientProjectID, projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionNo : 0,
projectViewModel.isPatientAdmitted ? projectViewModel.getAdmissionInfoResponseModel.admissionRequestNo : projectViewModel.getAdmissionRequestInfoResponseModel.admissionRequestNo, context)
.then((res) {
GifLoaderDialogUtils.hideDialog(context);
inPatientAdvanceHistoryResponseModel = InPatientAdvanceHistoryResponseModel.fromJson(res["responseInpatient"]);
print(inPatientAdvanceHistoryResponseModel.responseInpatientAdvanceInfo[0].requestedAmount);
}).catchError((err) {
GifLoaderDialogUtils.hideDialog(context);
print(err);
});
}
}

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/models/InPatientServices/get_inpatient_advance_requests_response_model.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/components/inpatient_paid_advance_payment.dart';
import 'package:diplomaticquarterapp/pages/InPatientServices/components/inpatient_pending_advance_payment.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
@ -58,7 +59,7 @@ class _InPatientAdvancePaymentState extends State<InPatientAdvancePayment> with
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
),
tabs: [Text(TranslationBase.of(context).pending), Text(TranslationBase.of(context).paid)],
tabs: [Text(TranslationBase.of(context).pending), Text(TranslationBase.of(context).history)],
),
Expanded(
child: TabBarView(
@ -66,7 +67,7 @@ class _InPatientAdvancePaymentState extends State<InPatientAdvancePayment> with
controller: _tabController,
children: [
InPatientPendingAdvancePayment(inPatientAdvanceResponseModel: widget.inPatientAdvanceResponseModel),
Container(),
InPatientPaidAdvancePayment(),
],
),
)

@ -349,6 +349,20 @@ class ClinicListService extends BaseService {
return Future.value(localRes);
}
Future<Map> getInPatientAdvancePaymentHistory(int projectID, int admissionNo, int admissionReqNo, context) async {
Map<String, dynamic> request;
request = {"ProjectID": projectID, "AdmissionNo": admissionNo, "AdmissionReqNo": admissionReqNo};
dynamic localRes;
await baseAppClient.post(GET_INPATIENT_PAID_ADVANCE_PAYMENT, onSuccess: (response, statusCode) async {
localRes = response;
}, onFailure: (String error, int statusCode) {
throw error;
}, body: request, isAllowAny: true);
return Future.value(localRes);
}
Future<Map> getCurrentWeekIDAndDay(BuildContext context) async {
dynamic localRes;
await baseAppClient.get(GET_CURRENT_WEEKID_WEEKDAY, isExternal: false, isRCService: false, onSuccess: (response, statusCode) async {

Loading…
Cancel
Save