import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/viewModel/InsuranceViewModel.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/screens/patients/insurance_approvals_details.dart'; import 'package:doctor_app_flutter/util/date-utils.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart'; import 'package:doctor_app_flutter/widgets/shared/Text.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/doctor_card.dart'; import 'package:doctor_app_flutter/widgets/shared/doctor_card_insurance.dart'; import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../base/base_view.dart'; class InsuranceApprovalScreenNew extends StatefulWidget { final int appointmentNo; InsuranceApprovalScreenNew({this.appointmentNo}); @override _InsuranceApprovalScreenNewState createState() => _InsuranceApprovalScreenNewState(); } class _InsuranceApprovalScreenNewState extends State { @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); final routeArgs = ModalRoute.of(context).settings.arguments as Map; PatiantInformtion patient = routeArgs['patient']; patient = routeArgs['patient']; String patientType = routeArgs['patientType']; return BaseView( onModelReady: patient.appointmentNo != null ? (model) => model.getInsuranceApproval(patient, appointmentNo: patient.appointmentNo) : (model) => model.getInsuranceApproval(patient), builder: (BuildContext context, InsuranceViewModel model, Widget child) => AppScaffold( appBar: PatientProfileHeaderNewDesignAppBar( patient, patientType.toString() ?? "0", patientType), isShowAppBar: true, baseViewModel: model, appBarTitle: TranslationBase.of(context).approvals, body: SingleChildScrollView( child: Container( margin: EdgeInsets.only( left: SizeConfig.screenWidth * 0.004, right: SizeConfig.screenWidth * 0.004, top: SizeConfig.screenWidth * 0.04, ), child: model.insuranceApproval.length != 0 ? Column( children: [ // Container( // width: double.infinity, // height: SizeConfig.screenHeight * 0.09, // color: Color(0xffEEEEEE), // child: Row( // mainAxisAlignment: MainAxisAlignment.spaceAround, // children: [ // Texts( // TranslationBase.of(context).totalApproval, // color: Color(0xff60688B), // fontSize: 19.0, // fontWeight: FontWeight.w600, // ), // if (model.insuranceApproval.length > 0) // Container( // width: 60, // height: 40, // decoration: BoxDecoration( // color: Theme.of(context).primaryColor, // borderRadius: BorderRadius.circular(19.0)), // child: Center( // child: Texts( // model.insuranceApproval[0].unUsedCount // .toString(), // color: Colors.white, // fontSize: 17.0, // ), // )) // ], // )), Padding( padding: const EdgeInsets.all(8.0), child: Column( children: [ Row( children: [ AppText( 'Insurance', fontSize: 15.0, fontWeight: FontWeight.w600, fontFamily: 'Poppins', ), ], ), Row( children: [ AppText( 'Approvals', fontSize: 30.0, fontWeight: FontWeight.w700, ), ], ), ], ), ), ...List.generate( model.insuranceApproval.length, (index) => Container( child: InkWell( onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => InsuranceApprovalsDetails( patient: patient, indexInsurance: index, )), ); }, child: DoctorCardInsurance( patientOut: model.insuranceApproval[index] .patientDescription, profileUrl: model.insuranceApproval[index].doctorImage, clinic: model.insuranceApproval[index].clinicName, doctorName: model.insuranceApproval[index].doctorName, branch: model .insuranceApproval[index].approvalNo .toString(), isPrescriptions: true, approvalStatus: model.insuranceApproval[index] .approvalDetails?.status??'', ), ), ), // (index) => Container( // width: double.maxFinite, // height: MediaQuery.of(context).size.height * .20, // margin: EdgeInsets.all(10), // padding: // EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5), // decoration: BoxDecoration( // borderRadius: BorderRadius.circular(15), // color: Colors.white, // ), // child: Padding( // padding: const EdgeInsets.all(8.0), // child: Container( // child: Row( // mainAxisAlignment: MainAxisAlignment.start, // children: [ // Container( // height: MediaQuery.of(context).size.height * .20, // width: 5, // decoration: BoxDecoration( // borderRadius: BorderRadius.only( // topLeft: Radius.circular(10), // bottomLeft: Radius.circular(10), // ), // color: model.insuranceApproval[index] // .approvalStatusDescption != // "Approved" // ? Colors.red[500] // : Colors.green, // ), // ), // Expanded( // child: Container( // padding: EdgeInsets.only( // left: projectViewModel.isArabic ? 0 : 15, // right: projectViewModel.isArabic ? 15 : 0), // child: InkWell( // child: Column( // crossAxisAlignment: // CrossAxisAlignment.start, // children: [ // Row( // // mainAxisAlignment: // // MainAxisAlignment.spaceBetween, // children: [ // Column( // crossAxisAlignment: // CrossAxisAlignment.start, // children: [ // Texts( // model.insuranceApproval[index] // .approvalDetails.status, // color: model // .insuranceApproval[ // index] // .approvalStatusDescption == // "Approved" // ? Colors.green // : Colors.red[800], // fontWeight: FontWeight.w600, // ), // SizedBox( // height: 5, // ), // AppText(model // .insuranceApproval[index] // .doctorName), // Container( // child: LargeAvatar( // url: model // .insuranceApproval[index] // .doctorImage, // ), // width: 55, // height: 55, // ), // ], // ), // Column( // crossAxisAlignment: // CrossAxisAlignment.start, // children: [ // Row( // children: [ // Texts( // 'Clinic: ', // color: Colors.grey[500], // ), // Texts( // model // .insuranceApproval[ // index] // .clinicName, // ), // ], // ), // Row( // children: [ // Texts( // 'Approval No', // color: Colors.grey[500], // ), // Texts( // model // .insuranceApproval[ // index] // .approvalNo // .toString(), // ), // ], // ), // ], // ), // SizedBox( // width: 5, // ), // ], // ), // Column( // crossAxisAlignment: // CrossAxisAlignment.start, // children: [ // Row( // children: [ // Texts( // 'Clinic: ', // color: Colors.grey[500], // ), // Texts( // model // .insuranceApproval[ // index] // .clinicName, // ), // ], // ), // Row( // children: [ // Texts( // 'Approval No', // color: Colors.grey[500], // ), // Texts( // model // .insuranceApproval[ // index] // .approvalNo // .toString(), // ), // ], // ), // ], // ), // Row( // mainAxisAlignment: // MainAxisAlignment.end, // children: [ // Icon(Icons.remove_red_eye_outlined) // ], // ) // ], // ), // ), // ), // ), // ], // ), // ), // ), // ), // RoundedContainer( // backgroundColor: Colors.white, // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // ExpansionTile( // title: Container( // //height: 120.0, // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // model.insuranceApproval[index] // .patientDescription == // "In Patient" // ? Container( // decoration: BoxDecoration( // color: // Theme.of(context).primaryColor, // borderRadius: // BorderRadius.circular(16.0)), // width: 115.0, // padding: EdgeInsets.only(left: 11.5), // child: Center( // child: Texts( // TranslationBase.of(context) // .inPatient, // color: Colors.white, // ), // ), // ) // : Container( // decoration: BoxDecoration( // color: Color(0xff505A5D), // borderRadius: // BorderRadius.circular(16.0)), // width: 115.0, // padding: EdgeInsets.only(left: 11.5), // child: Center( // child: Texts( // TranslationBase.of(context) // .outpatient, // color: Colors.white, // ), // ), // ), // Padding( // padding: EdgeInsets.symmetric(vertical: 10.0), // child: Texts( // model.insuranceApproval[index].clinicName, // fontSize: 20.0, // color: Color(0xff60686B), // fontWeight: FontWeight.w600, // ), // ), // Texts( // model.insuranceApproval[index].doctorName, // fontSize: 17.0, // ), // ], // ), // ), // children: [ // Padding( // padding: EdgeInsets.symmetric( // vertical: 12.0, horizontal: 12.0), // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Row( // children: [ // Texts( // TranslationBase.of(context).approvalNo, // fontSize: 18.0, // ), // Texts( // model // .insuranceApproval[index].approvalNo // .toString(), // fontSize: 18.0, // fontWeight: FontWeight.w600, // ), // ], // ), // Divider( // color: Colors.black, // height: 25.0, // thickness: 1.0, // ), // Row( // children: [ // Texts( // TranslationBase.of(context) // .procedureStatus, // fontSize: 17.5, // ), // SizedBox( // width: 12, // ), // Expanded( // child: Texts( // model.insuranceApproval[index] // .approvalStatusDescption, // fontWeight: FontWeight.w600, // fontSize: 17.5, // ), // ), // ], // ), // Divider( // color: Colors.black, // height: 25.0, // thickness: 1.0, // ), // Row( // children: [ // Texts( // TranslationBase.of(context).unusedCount, // fontSize: 17.5, // ), // Texts( // model.insuranceApproval[index] // .unUsedCount // .toString(), // fontSize: 17.5, // fontWeight: FontWeight.w600, // ), // ], // ), // Divider( // color: Colors.black, // height: 25.0, // thickness: 1.0, // ), // // Text( // // 'Company Name: ' + // // model.insuranceApproval[index] // // .companyName == // // null // // ? '000' // // : model // // .insuranceApproval[index].companyName, // // style: TextStyle( // // fontSize: 17.5, // // fontWeight: FontWeight.w600), // // ), // Texts( // TranslationBase.of(context).companyName, // fontWeight: FontWeight.w600, // fontSize: 17.5, // ), // // Divider( // color: Colors.black, // height: 25.0, // thickness: 1.0, // ), // Row( // children: [ // Texts( // TranslationBase.of(context).receiptOn, // fontSize: 17.5, // fontWeight: FontWeight.w600, // ), // Texts( // DateUtils.getDateTimeFromServerFormat( // model.insuranceApproval[index] // .rceiptOn) // .toString(), // fontSize: 17.5, // fontWeight: FontWeight.w600, // ), // ], // ), // Divider( // color: Colors.black, // height: 25.0, // thickness: 1.0, // ), // Row( // children: [ // Texts( // TranslationBase.of(context).expiryDate, // fontSize: 17.5, // fontWeight: FontWeight.w600, // ), // Texts( // DateUtils.getDateTimeFromServerFormat( // model.insuranceApproval[index] // .expiryDate) // .toString(), // fontSize: 17.5, // fontWeight: FontWeight.w600, // ), // ], // ), // Divider( // color: Colors.black, // height: 55.0, // thickness: 1.2, // ), // IntrinsicHeight( // child: Row( // crossAxisAlignment: // CrossAxisAlignment.center, // children: [ // Expanded( // flex: 1, // child: Column( // children: [ // Text(TranslationBase.of(context) // .procedureName), // Padding( // padding: EdgeInsets.only( // top: SizeConfig // .heightMultiplier * // 3.0), // child: Text( // model.insuranceApproval[index] // .approvalDetails == // null // ? '' // : model // .insuranceApproval[ // index] // .approvalDetails // .procedureName, // style: TextStyle( // fontWeight: // FontWeight.w600, // fontSize: 15.5), // ), // ), // ], // ), // ), // VerticalDivider( // width: 10.0, // thickness: 1.2, // color: Colors.black, // ), // Expanded( // flex: 1, // child: Column( // children: [ // Text(TranslationBase.of(context) // .procedureStatus), // Padding( // padding: EdgeInsets.only( // top: SizeConfig // .heightMultiplier * // 3.0), // child: Text( // model.insuranceApproval[index] // .approvalDetails == // null // ? '' // : model // .insuranceApproval[ // index] // .approvalDetails // .status, // style: TextStyle( // fontSize: 17.5, // fontWeight: // FontWeight.w600), // ), // ), // ], // ), // ), // VerticalDivider( // width: 2.3, // thickness: 1.2, // color: Colors.black, // ), // Expanded( // flex: 1, // child: Column( // children: [ // Text(TranslationBase.of(context) // .usageStatus), // Padding( // padding: EdgeInsets.only( // top: SizeConfig // .heightMultiplier * // 3.0), // child: Text( // model.insuranceApproval[index] // .approvalDetails == // null // ? '' // : model // .insuranceApproval[ // index] // .approvalDetails // .isInvoicedDesc, // style: TextStyle( // fontWeight: // FontWeight.w600, // fontSize: 17.5), // ), // ), // ], // ), // ), // ], // ), // ), // Divider( // color: Colors.black, // height: 25.0, // thickness: 1.0, // ), // ], // ), // ), // ], // ), // ], // ), // ), ), ], ) : Column( children: [ Container( height: 200, width: double.infinity, child: Center( child: Text("No Insurance Approvals Found"))) ], )), ), ), ); } convertDateFormat(String Date) { const start = "/Date("; const end = "+0300)"; final startIndex = Date.indexOf(start); final endIndex = Date.indexOf(end, startIndex + start.length); var date = new DateTime.fromMillisecondsSinceEpoch( int.parse(Date.substring(startIndex + start.length, endIndex))); String newDate = date.year.toString() + "-" + date.month.toString().padLeft(2, '0') + "-" + date.day.toString().padLeft(2, '0'); return newDate.toString(); } }