Update, Insurance card and My Balance Design

merge-update-with-lab-changes
Mirza.Shafique 5 years ago
parent 4f85652562
commit a234618df8

@ -654,7 +654,7 @@ class _AppointmentActionsState extends State<AppointmentActions> {
page: VitalSignDetailsScreen( page: VitalSignDetailsScreen(
appointmentNo: appoNo, appointmentNo: appoNo,
projectID: projectID, projectID: projectID,
isNotOneAppointment: false, isNotOneAppointment: true,
))); )));
} }

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -16,6 +17,9 @@ class _PaymentMethodState extends State<PaymentMethod> {
return AppScaffold( return AppScaffold(
appBarTitle: TranslationBase.of(context).paymentMethod, appBarTitle: TranslationBase.of(context).paymentMethod,
isShowAppBar: true, isShowAppBar: true,
showNewAppBar: true,
showNewAppBarTitle: true,
backgroundColor: CustomColors.appBackgroudGreyColor,
body: Container( body: Container(
margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0), margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
child: SingleChildScrollView( child: SingleChildScrollView(
@ -27,9 +31,7 @@ class _PaymentMethodState extends State<PaymentMethod> {
Container( Container(
margin: EdgeInsets.fromLTRB(0.0, 15.0, 0.0, 0.0), margin: EdgeInsets.fromLTRB(0.0, 15.0, 0.0, 0.0),
alignment: Alignment.center, alignment: Alignment.center,
child: Text(TranslationBase.of(context).selectPaymentOption, child: Text(TranslationBase.of(context).selectPaymentOption, style: TextStyle(fontSize: 26.0, fontWeight: FontWeight.bold)),
style: TextStyle(
fontSize: 26.0, fontWeight: FontWeight.bold)),
), ),
Container( Container(
margin: EdgeInsets.only(top: 25.0), margin: EdgeInsets.only(top: 25.0),
@ -48,18 +50,13 @@ class _PaymentMethodState extends State<PaymentMethod> {
color: Colors.white, color: Colors.white,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
side: selectedPaymentMethod == "MADA" side: selectedPaymentMethod == "MADA" ? BorderSide(color: Colors.green, width: 5.0) : BorderSide(color: Colors.transparent, width: 0.0),
? BorderSide(
color: Colors.green, width: 5.0)
: BorderSide(
color: Colors.transparent, width: 0.0),
), ),
child: Container( child: Container(
height: 120.0, height: 120.0,
padding: EdgeInsets.all(7.0), padding: EdgeInsets.all(7.0),
width: MediaQuery.of(context).size.width * 0.45, width: MediaQuery.of(context).size.width * 0.45,
child: Image.asset( child: Image.asset("assets/images/new-design/mada.png"),
"assets/images/new-design/mada.png"),
), ),
), ),
), ),
@ -77,18 +74,13 @@ class _PaymentMethodState extends State<PaymentMethod> {
color: Colors.white, color: Colors.white,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
side: selectedPaymentMethod == "VISA" side: selectedPaymentMethod == "VISA" ? BorderSide(color: Colors.green, width: 5.0) : BorderSide(color: Colors.transparent, width: 0.0),
? BorderSide(
color: Colors.green, width: 5.0)
: BorderSide(
color: Colors.transparent, width: 0.0),
), ),
child: Container( child: Container(
height: 120.0, height: 120.0,
padding: EdgeInsets.all(7.0), padding: EdgeInsets.all(7.0),
width: MediaQuery.of(context).size.width * 0.45, width: MediaQuery.of(context).size.width * 0.45,
child: Image.asset( child: Image.asset("assets/images/new-design/visa.png"),
"assets/images/new-design/visa.png"),
), ),
), ),
), ),
@ -114,18 +106,13 @@ class _PaymentMethodState extends State<PaymentMethod> {
color: Colors.white, color: Colors.white,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
side: selectedPaymentMethod == "MASTERCARD" side: selectedPaymentMethod == "MASTERCARD" ? BorderSide(color: Colors.green, width: 5.0) : BorderSide(color: Colors.transparent, width: 0.0),
? BorderSide(
color: Colors.green, width: 5.0)
: BorderSide(
color: Colors.transparent, width: 0.0),
), ),
child: Container( child: Container(
height: 120.0, height: 120.0,
padding: EdgeInsets.all(7.0), padding: EdgeInsets.all(7.0),
width: MediaQuery.of(context).size.width * 0.45, width: MediaQuery.of(context).size.width * 0.45,
child: Image.asset( child: Image.asset("assets/images/new-design/mastercard.png"),
"assets/images/new-design/mastercard.png"),
), ),
), ),
), ),
@ -143,18 +130,13 @@ class _PaymentMethodState extends State<PaymentMethod> {
color: Colors.white, color: Colors.white,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
side: selectedPaymentMethod == "Installment" side: selectedPaymentMethod == "Installment" ? BorderSide(color: Colors.green, width: 5.0) : BorderSide(color: Colors.transparent, width: 0.0),
? BorderSide(
color: Colors.green, width: 5.0)
: BorderSide(
color: Colors.transparent, width: 0.0),
), ),
child: Container( child: Container(
height: 120.0, height: 120.0,
padding: EdgeInsets.all(7.0), padding: EdgeInsets.all(7.0),
width: MediaQuery.of(context).size.width * 0.45, width: MediaQuery.of(context).size.width * 0.45,
child: Image.asset( child: Image.asset("assets/images/new-design/installment.png"),
"assets/images/new-design/installment.png"),
), ),
), ),
), ),
@ -180,17 +162,12 @@ class _PaymentMethodState extends State<PaymentMethod> {
color: Colors.white, color: Colors.white,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(10),
side: selectedPaymentMethod == "ApplePay" side: selectedPaymentMethod == "ApplePay" ? BorderSide(color: Colors.green, width: 5.0) : BorderSide(color: Colors.transparent, width: 0.0),
? BorderSide(
color: Colors.green, width: 5.0)
: BorderSide(
color: Colors.transparent, width: 0.0),
), ),
child: Container( child: Container(
height: 120.0, height: 120.0,
padding: EdgeInsets.all(20.0), padding: EdgeInsets.all(20.0),
child: SvgPicture.asset( child: SvgPicture.asset("assets/images/new-design/applepay.svg"),
"assets/images/new-design/applepay.svg"),
), ),
), ),
), ),
@ -211,25 +188,33 @@ class _PaymentMethodState extends State<PaymentMethod> {
), ),
), ),
bottomSheet: Container( bottomSheet: Container(
width: MediaQuery.of(context).size.width, padding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 20.0),
height: 50.0, color: Colors.white,
margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 20.0), child: Container(
child: ButtonTheme( width: MediaQuery.of(context).size.width,
shape: RoundedRectangleBorder( height: 50.0,
borderRadius: BorderRadius.circular(10.0), color: Colors.white,
), // margin: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 20.0),
minWidth: MediaQuery.of(context).size.height * 0.1, child: ButtonTheme(
height: 45.0, shape: RoundedRectangleBorder(
child: RaisedButton( borderRadius: BorderRadius.circular(10.0),
color: new Color(0xFF60686b), ),
textColor: Colors.white, minWidth: MediaQuery.of(context).size.height * 0.1,
disabledTextColor: Colors.white, height: 45.0,
disabledColor: new Color(0xFFbcc2c4), child: RaisedButton(
onPressed: () { color: CustomColors.accentColor,
Navigator.pop(context, selectedPaymentMethod); textColor: Colors.white,
}, disabledTextColor: Colors.white,
child: Text(TranslationBase.of(context).confirm, disabledColor: new Color(0xFFbcc2c4),
style: TextStyle(fontSize: 18.0)), onPressed: () {
Navigator.pop(context, selectedPaymentMethod);
},
child: Text(TranslationBase.of(context).confirm.toUpperCase(),
style: TextStyle(
fontSize: 14.0,
fontWeight: FontWeight.w600,
)),
),
), ),
), ),
), ),

@ -10,17 +10,13 @@ class AttachInsuranceCardImageDialog extends StatefulWidget {
final String fileNo; final String fileNo;
final Function(File file, String image) image; final Function(File file, String image) image;
const AttachInsuranceCardImageDialog( const AttachInsuranceCardImageDialog({Key key, this.name, this.fileNo, this.image}) : super(key: key);
{Key key, this.name, this.fileNo, this.image})
: super(key: key);
@override @override
_AttachInsuranceCardImageDialogState createState() => _AttachInsuranceCardImageDialogState createState() => _AttachInsuranceCardImageDialogState();
_AttachInsuranceCardImageDialogState();
} }
class _AttachInsuranceCardImageDialogState class _AttachInsuranceCardImageDialogState extends State<AttachInsuranceCardImageDialog> {
extends State<AttachInsuranceCardImageDialog> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -36,19 +32,41 @@ class _AttachInsuranceCardImageDialogState
Column( Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Texts(TranslationBase.of(context).attachInsuraceImage), Text(
TranslationBase.of(context).attachInsuraceImage,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
),
),
Divider(), Divider(),
Texts(widget.name), Padding(
padding: const EdgeInsets.only(left: 8, right: 8),
child: Text(
widget.name,
style: TextStyle(
fontSize: 14,
letterSpacing: -0.48,
),
),
),
SizedBox( SizedBox(
height: 3, height: 3,
), ),
Texts(TranslationBase.of(context).fileNo + " " + widget.fileNo), Text(
TranslationBase.of(context).fileNo + " " + widget.fileNo,
style: TextStyle(
fontSize: 14,
letterSpacing: -0.48,
),
),
SizedBox( SizedBox(
height: 5.0, height: 5.0,
), ),
InkWell( InkWell(
onTap: () { onTap: () {
ImageOptions.showImageOptions(context, (String image,File file) { ImageOptions.showImageOptions(context, (String image, File file) {
setState(() { setState(() {
this.image = image; this.image = image;
this.file = file; this.file = file;
@ -57,18 +75,18 @@ class _AttachInsuranceCardImageDialogState
}, },
child: image == null child: image == null
? Padding( ? Padding(
padding: const EdgeInsets.all(18.0), padding: const EdgeInsets.all(18.0),
child: Container( child: Container(
width: double.maxFinite, width: double.maxFinite,
height: 250, height: 250,
decoration: BoxDecoration( decoration: BoxDecoration(borderRadius: BorderRadius.circular(2), border: Border.all(color: Colors.grey, width: 1.5)),
borderRadius: BorderRadius.circular(2),
border: Border.all(color: Colors.grey, width: 1.5)),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisAlignment: MainAxisAlignment., // mainAxisAlignment: MainAxisAlignment.,
children: [ children: [
SizedBox(height: 25,), SizedBox(
height: 25,
),
Icon( Icon(
Icons.camera_enhance_rounded, Icons.camera_enhance_rounded,
size: 85, size: 85,
@ -77,17 +95,24 @@ class _AttachInsuranceCardImageDialogState
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Icon(Icons.attach_file), Icon(Icons.attach_file),
Texts(TranslationBase.of(context).selectAttachment.toUpperCase()) Text(
TranslationBase.of(context).selectAttachment.toUpperCase(),
style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
)
], ],
), ),
], ],
), ),
), ),
) )
: Image.file( : Image.file(
file, file,
fit: BoxFit.fill, fit: BoxFit.fill,
height: 250, height: 250,
), ),
), ),
SizedBox( SizedBox(
@ -106,9 +131,14 @@ class _AttachInsuranceCardImageDialogState
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Container( child: Container(
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).cancel.toUpperCase(), TranslationBase.of(context).cancel.toUpperCase(),
color: Colors.red, style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
color: Colors.red,
),
), ),
), ),
), ),
@ -130,9 +160,13 @@ class _AttachInsuranceCardImageDialogState
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).ok, TranslationBase.of(context).ok.toUpperCase(),
fontWeight: FontWeight.w400, style: TextStyle(
fontSize: 12,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
)), )),
), ),
), ),

@ -4,9 +4,11 @@ import 'package:diplomaticquarterapp/core/service/insurance_service.dart';
import 'package:diplomaticquarterapp/core/viewModels/insurance_card_View_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/insurance_card_View_model.dart';
import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_details.dart'; import 'package:diplomaticquarterapp/pages/insurance/insurance_details.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart'; import 'package:diplomaticquarterapp/pages/insurance/insurance_update_screen.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -45,142 +47,162 @@ class _InsuranceCardState extends State<InsuranceCard> {
description: TranslationBase.of(context).infoInsuranceCards, description: TranslationBase.of(context).infoInsuranceCards,
infoList: TranslationBase.of(context).infoInsuranceCardsPoints, infoList: TranslationBase.of(context).infoInsuranceCardsPoints,
imagesInfo: imagesInfo, imagesInfo: imagesInfo,
appBarIcons: [ showNewAppBar: true,
IconButton( showNewAppBarTitle: true,
padding: EdgeInsets.zero, backgroundColor: CustomColors.appBackgroudGreyColor,
icon: Container( floatingActionButton: FloatingActionButton(
decoration: BoxDecoration( onPressed: () {
color: Colors.white, Navigator.push(context, FadePage(page: InsuranceUpdate()));
borderRadius: BorderRadius.circular(8), },
), backgroundColor: CustomColors.accentColor,
margin: EdgeInsets.only(right: 8), child: Padding(
padding: EdgeInsets.only(right: 4, left: 4), padding: const EdgeInsets.all(12.0),
child: Image.asset( child: Image.asset(
'assets/images/medical/insurance_update_icon_.png', 'assets/images/medical/insurance_update_icon_.png',
height: SizeConfig.heightMultiplier * 5, color: Colors.white,
width: SizeConfig.heightMultiplier * 5,
),
), ),
onPressed: () {
Navigator.push(context, FadePage(page: InsuranceUpdate()));
},
), ),
], ),
body: Container( body: Container(
margin: EdgeInsets.only(left: SizeConfig.screenWidth * 0.004, right: SizeConfig.screenWidth * 0.004, top: SizeConfig.screenWidth * 0.04), child: ListView.separated(
child: ListView.builder( itemCount: model.insurance == null ? 0 : model.insurance.length,
itemCount: model.insurance == null ? 0 : model.insurance.length, itemBuilder: (BuildContext context, int index) {
itemBuilder: (BuildContext context, int index) { return Container(
return RoundedContainer( width: double.infinity,
backgroundColor: Colors.white, padding: EdgeInsets.only(
left: 10,
right: 10,
top: index == 0 ? 10 : 0,
bottom: index == model.insurance.length - 1 ? 100 : 0,
),
child: Card(
shape: cardRadius(12),
elevation: 2,
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(12.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[ children: [
ExpansionTile( Text(
title: Container( model.insurance[index].groupName,
height: 65.0, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, letterSpacing: -0.64),
child: Column( ),
crossAxisAlignment: CrossAxisAlignment.start, mHeight(8),
children: <Widget>[ Text(
Padding( TranslationBase.of(context).companyName + model.insurance[index].companyName,
padding: EdgeInsets.symmetric(vertical: 15.0), style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, letterSpacing: -0.48),
child: Texts( ),
model.insurance[index].groupName, Divider(
), thickness: 2,
color: Colors.black,
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
TranslationBase.of(context).category,
style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xFF575757)),
),
Text(
model.insurance[index].subCategoryDesc,
style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xFF575757)),
), ),
], ],
), ),
), Row(
children: <Widget>[ mainAxisAlignment: MainAxisAlignment.spaceBetween,
Container( children: [
padding: EdgeInsets.all(14), Text(
width: double.infinity, TranslationBase.of(context).expirationDate,
decoration: BoxDecoration(shape: BoxShape.rectangle, border: Border.all(color: Colors.grey, width: 0.2), borderRadius: BorderRadius.all(Radius.circular(2)), boxShadow: [ style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xFF575757)),
BoxShadow(
color: Colors.white70,
), ),
]), Text(
child: Column( convertDateFormat(
crossAxisAlignment: CrossAxisAlignment.start, model.insurance[index].cardValidTo,
children: [
Texts(
TranslationBase.of(context).companyName + model.insurance[index].companyName,
fontSize: 20.0,
fontWeight: FontWeight.w700,
), ),
Divider( style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xFF575757)),
color: Colors.black, ),
height: 25.0, ],
thickness: 0.5, ),
), Row(
Column( mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start, children: [
children: <Widget>[ Text(
Row( TranslationBase.of(context).status + ": ",
mainAxisAlignment: MainAxisAlignment.spaceBetween, style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xFF575757)),
children: [Texts(TranslationBase.of(context).category, fontSize: 18.5), Texts(model.insurance[index].subCategoryDesc, fontSize: 18.5)], ),
), model.insurance[index].isActive == true
Row( ? Text(
mainAxisAlignment: MainAxisAlignment.spaceBetween, TranslationBase.of(context).activeInsurence,
children: [ style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Colors.green),
Texts(TranslationBase.of(context).expirationDate, fontSize: 18.5), )
Texts( : Text(
convertDateFormat( TranslationBase.of(context).notActive,
model.insurance[index].cardValidTo, style: TextStyle(
), fontSize: 10,
fontSize: 18.5), fontWeight: FontWeight.w600,
], color: Colors.red,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts(TranslationBase.of(context).status + ": ", fontSize: 18.5),
model.insurance[index].isActive == true
? Texts(TranslationBase.of(context).activeInsurence, color: Colors.green, fontWeight: FontWeight.w900, fontSize: 17.9)
: Texts(TranslationBase.of(context).notActive, color: Colors.red, fontWeight: FontWeight.w900, fontSize: 17.9)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [Texts(TranslationBase.of(context).patientCard, fontSize: 18.5), Texts(model.insurance[index].patientCardID, fontSize: 18.5)],
),
Row(mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [
Texts(
TranslationBase.of(context).policyNumber,
fontSize: 18.5,
), ),
Texts( )
model.insurance[index].insurancePolicyNumber, ],
fontSize: 18.5, ),
) Row(
]), mainAxisAlignment: MainAxisAlignment.spaceBetween,
], children: [
), Text(
SizedBox( TranslationBase.of(context).patientCard,
height: 14.5, style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xFF575757)),
), ),
if (model.insurance[index].isActive == true) Text(
Container( model.insurance[index].patientCardID,
color: Colors.transparent, style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xFF575757)),
child: SecondaryButton( ),
onTap: () => {getDetails(model.insurance[index])}, ],
label: TranslationBase.of(context).seeDetails, ),
textColor: Colors.white, Row(
), mainAxisAlignment: MainAxisAlignment.spaceBetween,
width: double.infinity, children: [
), Text(
], TranslationBase.of(context).policyNumber,
), style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xFF575757)),
),
Text(
model.insurance[index].insurancePolicyNumber,
style: TextStyle(fontSize: 10, fontWeight: FontWeight.w600, color: Color(0xFF575757)),
)
],
), ),
], ],
), ),
if (model.insurance[index].isActive == true)
SizedBox(
height: 8.5,
),
if (model.insurance[index].isActive == true)
Container(
color: Colors.transparent,
child: SecondaryButton(
onTap: () => {
getDetails(model.insurance[index]),
},
label: TranslationBase.of(context).seeDetails,
textColor: Colors.white,
),
width: double.infinity,
),
], ],
), ),
), ),
); ),
}), );
},
separatorBuilder: (BuildContext context, int index) {
return mHeight(8);
},
),
), ),
), ),
); );

@ -3,9 +3,11 @@ import 'package:diplomaticquarterapp/core/model/insurance/Insurance_card_details
import 'package:diplomaticquarterapp/core/viewModels/insurance_card_View_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/insurance_card_View_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
@ -20,13 +22,7 @@ class InsuranceCardUpdateDetails extends StatelessWidget {
final int patientID; final int patientID;
final String name; final String name;
const InsuranceCardUpdateDetails( const InsuranceCardUpdateDetails({Key key, this.insuranceCardDetailsModel, this.patientIdentificationID, this.patientID, this.name}) : super(key: key);
{Key key,
this.insuranceCardDetailsModel,
this.patientIdentificationID,
this.patientID,
this.name})
: super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -36,290 +32,375 @@ class InsuranceCardUpdateDetails extends StatelessWidget {
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: false, isShowDecPage: false,
appBarTitle: TranslationBase.of(context).cardDetail, appBarTitle: TranslationBase.of(context).cardDetail,
body: SingleChildScrollView( showNewAppBar: true,
child: Column( showNewAppBarTitle: true,
children: [ backgroundColor: CustomColors.appBackgroudGreyColor,
...List.generate( body: Column(
insuranceCardDetailsModel.length, children: [
(index) => Padding( Expanded(
padding: const EdgeInsets.all(8.0), child: SingleChildScrollView(
child: Container( child: Padding(
width: double.maxFinite, padding: const EdgeInsets.all(12.0),
margin: EdgeInsets.only(left: 8, right: 8, top: 8), child: Column(
height: projectViewModel.isArabic ? 320 : 240, children: [
decoration: BoxDecoration( ListView.separated(
borderRadius: BorderRadius.circular(25), physics: NeverScrollableScrollPhysics(),
color: Color(0xff515B5D), shrinkWrap: true,
), itemBuilder: (context, index) {
child: Padding( return Container(
padding: const EdgeInsets.all(12.0), width: double.maxFinite,
child: Column( // height: projectViewModel.isArabic ? 320 : 240,
crossAxisAlignment: CrossAxisAlignment.start, // decoration: containerRadius(CustomColors.accentColor, 12),
children: [ child: Card(
Text( shape: cardRadius(12),
insuranceCardDetailsModel[index].memberID, color: CustomColors.accentColor,
textScaleFactor: 2.1, elevation: 4,
style: TextStyle( child: Padding(
color: Colors.white, padding: const EdgeInsets.all(12.0),
letterSpacing: 8.0,
fontWeight: FontWeight.w400,
fontSize: 15),
),
SizedBox(
height: 5,
),
Texts(
insuranceCardDetailsModel[index].companyName,
fontSize: 14,
color: Colors.white,
),
SizedBox(
height: 25,
),
Row(
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
TranslationBase.of(context).policyHolder,
color: Colors.white,
fontSize: 14,
),
Texts(
insuranceCardDetailsModel[index]
.memberName,
color: Colors.white,
fontSize: 14,
),
],
),
),
Expanded(
child: Column(
children: [
Texts(TranslationBase.of(context).policyNo,
color: Colors.white),
Texts(
insuranceCardDetailsModel[index]
.policyNumber,
color: Colors.white),
],
),
),
],
),
SizedBox(
height: 25,
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Expanded(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Texts( Text(
TranslationBase.of(context) insuranceCardDetailsModel[index].memberID,
.expiryDateTitle, style: TextStyle(
color: Colors.white, color: Colors.white,
fontSize: 12, letterSpacing: -0.48,
fontWeight: FontWeight.w600,
fontSize: 16,
),
), ),
Texts( SizedBox(
insuranceCardDetailsModel[index].dOB, height: 2,
color: Colors.white,
fontSize: 12,
), ),
], Text(
), insuranceCardDetailsModel[index].companyName,
), style: TextStyle(
Expanded( color: Colors.white,
child: Column( letterSpacing: -0.48,
children: [ fontWeight: FontWeight.w600,
Texts( fontSize: 14,
TranslationBase.of(context).classTitle, ),
color: Colors.white,
fontSize: 12,
), ),
Texts( SizedBox(
insuranceCardDetailsModel[index] height: 14,
.subCategory,
color: Colors.white,
fontSize: 12,
), ),
], Row(
), children: [
), Expanded(
Expanded( child: Column(
child: Column( crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Texts( Text(
TranslationBase.of(context).approval, TranslationBase.of(context).policyHolder,
color: Colors.white, style: TextStyle(
fontSize: 12, color: Colors.white,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
fontSize: 12,
),
),
Text(
insuranceCardDetailsModel[index].memberName,
style: TextStyle(
color: Colors.white,
letterSpacing: -0.48,
fontSize: 12,
),
),
],
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).policyNo,
style: TextStyle(
color: Colors.white,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
fontSize: 12,
),
),
Text(
insuranceCardDetailsModel[index].policyNumber,
style: TextStyle(
color: Colors.white,
letterSpacing: -0.48,
fontSize: 12,
),
),
],
),
],
), ),
Texts( SizedBox(
insuranceCardDetailsModel[index] height: 14,
.approvalLimit
.toString(),
color: Colors.white,
fontSize: 12,
), ),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
TranslationBase.of(context).expiryDateTitle,
style: TextStyle(
color: Colors.white,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
fontSize: 12,
),
),
Text(
insuranceCardDetailsModel[index].effectiveTo,
style: TextStyle(
color: Colors.white,
letterSpacing: -0.48,
fontSize: 12,
),
),
],
),
),
Expanded(
child: Column(
children: [
Text(
TranslationBase.of(context).classTitle,
style: TextStyle(
color: Colors.white,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
fontSize: 12,
),
),
Text(
insuranceCardDetailsModel[index].subCategory,
style: TextStyle(
color: Colors.white,
letterSpacing: -0.48,
fontSize: 12,
),
),
],
),
),
Expanded(
child: Column(
children: [
Text(
TranslationBase.of(context).approval,
style: TextStyle(
color: Colors.white,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
fontSize: 12,
),
),
Text(
insuranceCardDetailsModel[index].approvalLimit.toString(),
style: TextStyle(
color: Colors.white,
letterSpacing: -0.48,
fontSize: 12,
),
),
],
),
),
],
)
], ],
), ),
), ),
], ),
) );
], },
separatorBuilder: (context, index) {
return mHeight(12);
},
itemCount: insuranceCardDetailsModel.length,
), ),
), if (insuranceCardDetailsModel.isEmpty)
), Column(
), crossAxisAlignment: CrossAxisAlignment.center,
), children: [
if(insuranceCardDetailsModel.isEmpty) Container(
Column( child: Card(
crossAxisAlignment: CrossAxisAlignment.center, color: Colors.white,
children: [ shape: cardRadius(12),
Container(
margin: EdgeInsets.all(10.0),
child: Card(
margin: EdgeInsets.fromLTRB(
8.0, 16.0, 8.0, 8.0),
color: Colors.white,
shape: RoundedRectangleBorder(
borderRadius:
BorderRadius.circular(10),
),
child: Container(
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.all(10.0),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Expanded(
flex: 3,
child: Container( child: Container(
margin: EdgeInsets.only( width: MediaQuery.of(context).size.width,
top: 2.0, padding: EdgeInsets.all(10.0),
left: 10.0, child: Row(
right: 20.0), crossAxisAlignment: CrossAxisAlignment.start,
child: Column( mainAxisSize: MainAxisSize.max,
crossAxisAlignment:
CrossAxisAlignment
.start,
children: <Widget>[ children: <Widget>[
Texts( Expanded(
name, child: Container(
fontSize: 14, margin: EdgeInsets.only(top: 2.0, left: 10.0, right: 20.0),
color: Colors.black, child: Column(
fontWeight: crossAxisAlignment: CrossAxisAlignment.start,
FontWeight.w500, children: <Widget>[
), Text(
SizedBox( name,
height: 8, style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
Text(
TranslationBase.of(context).fileno + ": " + patientID.toString(),
style: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
)
],
),
),
), ),
Texts(
TranslationBase.of(
context)
.fileno +
": " +patientID.toString(),
fontSize: 14,
color: Colors.black,
fontWeight:
FontWeight.w500,
)
], ],
), ),
), ),
), ),
], ),
), SizedBox(
), height: 150,
), ),
), Image.asset(
SizedBox(height: 150,), 'assets/images/no-data-found.png',
Image.asset('assets/images/no-data-found.png',width: 80,height: 80,), width: 80,
SizedBox(height: 8,), height: 80,
Texts(TranslationBase.of(context).noDataAvailable) ),
], SizedBox(
) height: 8,
], ),
), Text(
), TranslationBase.of(context).noDataAvailable,
bottomSheet: Container( style: TextStyle(
width: double.infinity, fontSize: 14,
height:insuranceCardDetailsModel.isEmpty? MediaQuery.of(context).size.height * 0.14:MediaQuery.of(context).size.height * 0.21, fontWeight: FontWeight.w600,
child: Container( letterSpacing: -0.48,
margin: EdgeInsets.only(left: 8, right: 8), ),
child: Column( )
children: [ ],
SizedBox( )
height: 8, ],
),
if(insuranceCardDetailsModel.isEmpty)
SecondaryButton(
textColor: Colors.white,
label: TranslationBase.of(context).scanNow.toUpperCase(),
color: Theme.of(context).primaryColor,
small: true,
onTap: () async {
confirmAttachInsuranceCardImageDialogDialog(
context: context,
name: name,
fileNo: patientID.toString(),
model: model);
},
), ),
if(insuranceCardDetailsModel.isNotEmpty) ),
SecondaryButton( ),
textColor: Colors.white, ),
label: TranslationBase.of(context).agree.toUpperCase(), Padding(
color: Theme.of(context).primaryColor, padding: const EdgeInsets.all(12.0),
onTap: () async { child: Column(
GifLoaderDialogUtils.showMyDialog(context); children: [
await model.uploadInsuranceCard( if (insuranceCardDetailsModel.isEmpty)
patientIdentificationID: patientIdentificationID, SecondaryButton(
patientID: patientID); textColor: Colors.white,
GifLoaderDialogUtils.hideDialog(context); label: TranslationBase.of(context).scanNow.toUpperCase(),
if (model.state == ViewState.ErrorLocal) { color: CustomColors.accentColor,
AppToast.showErrorToast(message: model.error); small: true,
} else { onTap: () async {
AppToast.showSuccessToast( confirmAttachInsuranceCardImageDialogDialog(context: context, name: name, fileNo: patientID.toString(), model: model);
message: TranslationBase.of(context).requestSent); },
} ),
}, if (insuranceCardDetailsModel.isNotEmpty)
),if(insuranceCardDetailsModel.isNotEmpty) SecondaryButton(
SizedBox( textColor: Colors.white,
height: 12, label: TranslationBase.of(context).agree.toUpperCase(),
),if(insuranceCardDetailsModel.isNotEmpty) color: CustomColors.accentColor,
SecondaryButton( onTap: () async {
textColor: Colors.white, GifLoaderDialogUtils.showMyDialog(context);
label: TranslationBase.of(context).disagree.toUpperCase(), await model.uploadInsuranceCard(patientIdentificationID: patientIdentificationID, patientID: patientID);
color: Colors.grey[800], GifLoaderDialogUtils.hideDialog(context);
onTap: () async { if (model.state == ViewState.ErrorLocal) {
confirmAttachInsuranceCardImageDialogDialog( AppToast.showErrorToast(message: model.error);
context: context, } else {
name: name, AppToast.showSuccessToast(message: TranslationBase.of(context).requestSent);
fileNo: patientID.toString(), }
model: model); },
}, ),
) if (insuranceCardDetailsModel.isNotEmpty)
], SizedBox(
height: 12,
),
if (insuranceCardDetailsModel.isNotEmpty)
SecondaryButton(
textColor: Colors.white,
label: TranslationBase.of(context).disagree.toUpperCase(),
color: Colors.grey[800],
onTap: () async {
confirmAttachInsuranceCardImageDialogDialog(context: context, name: name, fileNo: patientID.toString(), model: model);
},
)
],
),
), ),
), ],
), ),
// bottomSheet: Container(
// width: double.infinity,
// height: insuranceCardDetailsModel.isEmpty ? MediaQuery.of(context).size.height * 0.14 : MediaQuery.of(context).size.height * 0.21,
// child: Container(
// margin: EdgeInsets.only(left: 8, right: 8),
// child: Column(
// children: [
// SizedBox(
// height: 8,
// ),
// if (insuranceCardDetailsModel.isEmpty)
// SecondaryButton(
// textColor: Colors.white,
// label: TranslationBase.of(context).scanNow.toUpperCase(),
// color: Theme.of(context).primaryColor,
// small: true,
// onTap: () async {
// confirmAttachInsuranceCardImageDialogDialog(context: context, name: name, fileNo: patientID.toString(), model: model);
// },
// ),
// if (insuranceCardDetailsModel.isNotEmpty)
// SecondaryButton(
// textColor: Colors.white,
// label: TranslationBase.of(context).agree.toUpperCase(),
// color: Theme.of(context).primaryColor,
// onTap: () async {
// GifLoaderDialogUtils.showMyDialog(context);
// await model.uploadInsuranceCard(patientIdentificationID: patientIdentificationID, patientID: patientID);
// GifLoaderDialogUtils.hideDialog(context);
// if (model.state == ViewState.ErrorLocal) {
// AppToast.showErrorToast(message: model.error);
// } else {
// AppToast.showSuccessToast(message: TranslationBase.of(context).requestSent);
// }
// },
// ),
// if (insuranceCardDetailsModel.isNotEmpty)
// SizedBox(
// height: 12,
// ),
// if (insuranceCardDetailsModel.isNotEmpty)
// SecondaryButton(
// textColor: Colors.white,
// label: TranslationBase.of(context).disagree.toUpperCase(),
// color: Colors.grey[800],
// onTap: () async {
// confirmAttachInsuranceCardImageDialogDialog(context: context, name: name, fileNo: patientID.toString(), model: model);
// },
// )
// ],
// ),
// ),
// ),
), ),
); );
} }
void confirmAttachInsuranceCardImageDialogDialog( void confirmAttachInsuranceCardImageDialogDialog({BuildContext context, String name, String fileNo, InsuranceViewModel model}) {
{BuildContext context,
String name,
String fileNo,
InsuranceViewModel model}) {
showDialog( showDialog(
context: context, context: context,
child: AttachInsuranceCardImageDialog( child: AttachInsuranceCardImageDialog(
@ -327,17 +408,12 @@ class InsuranceCardUpdateDetails extends StatelessWidget {
name: name, name: name,
image: (file, image) async { image: (file, image) async {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
await model.uploadInsuranceCard( await model.uploadInsuranceCard(patientIdentificationID: patientIdentificationID, patientID: patientID, image: image);
patientIdentificationID: patientIdentificationID,
patientID: patientID,
image: image);
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
if (model.state == ViewState.ErrorLocal || if (model.state == ViewState.ErrorLocal || model.state == ViewState.Error) {
model.state == ViewState.Error) {
AppToast.showErrorToast(message: model.error); AppToast.showErrorToast(message: model.error);
} else { } else {
AppToast.showSuccessToast( AppToast.showSuccessToast(message: TranslationBase.of(context).requestSent);
message: TranslationBase.of(context).requestSent);
} }
Navigator.pop(context); Navigator.pop(context);
}, },

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter_html/flutter_html.dart'; import 'package:flutter_html/flutter_html.dart';
@ -17,6 +18,9 @@ class InsuranceCardDetails extends StatelessWidget {
return AppScaffold( return AppScaffold(
isShowAppBar: true, isShowAppBar: true,
appBarTitle: TranslationBase.of(context).cardDetail, appBarTitle: TranslationBase.of(context).cardDetail,
showNewAppBarTitle: true,
showNewAppBar: true,
backgroundColor: CustomColors.appBackgroudGreyColor,
body: Center( body: Center(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Html( child: Html(

@ -3,6 +3,7 @@ import 'package:diplomaticquarterapp/core/viewModels/insurance_card_View_model.d
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
@ -17,223 +18,137 @@ class InsurancePage extends StatelessWidget {
InsuranceCardService _insuranceCardService = locator<InsuranceCardService>(); InsuranceCardService _insuranceCardService = locator<InsuranceCardService>();
InsurancePage({Key key, this.model}) : super(key: key); InsurancePage({Key key, this.model}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return SingleChildScrollView( return SingleChildScrollView(
child: Column( child: Padding(
children: [ padding: const EdgeInsets.all(12.0),
SizedBox( child: Column(
height: 65, children: [
), Container(
Container( width: double.infinity,
margin: EdgeInsets.all(10.0), child: Card(
color: Colors.white, shape: cardRadius(12),
width: MediaQuery.of(context).size.width, child: Padding(
padding: EdgeInsets.all(10.0), padding: const EdgeInsets.all(12.0),
child: Row( child: InkWell(
crossAxisAlignment: CrossAxisAlignment.start, onTap: () {
mainAxisSize: MainAxisSize.max, getDetails(
children: <Widget>[ setupID: '010266',
if (model.user != null) projectID: 15,
Expanded( patientIdentificationID: model.user.patientIdentificationNo,
flex: 3, patientID: model.user.patientID,
child: Container( name: model.user.firstName + " " + model.user.lastName,
margin: context: context,
EdgeInsets.only(top: 2.0, left: 10.0, right: 20.0), );
child: Column( },
crossAxisAlignment: CrossAxisAlignment.start, child: Row(
children: <Widget>[ crossAxisAlignment: CrossAxisAlignment.end,
Texts( mainAxisSize: MainAxisSize.max,
model.user.firstName + " " + model.user.lastName,
fontSize: 14,
color: Colors.black,
fontWeight: FontWeight.w500,
),
SizedBox(
height: 8,
),
Texts(
TranslationBase.of(context).fileno +
": " +
model.user.patientID.toString(),
fontSize: 14,
color: Colors.black,
fontWeight: FontWeight.w500,
)
],
),
),
),
Expanded(
flex: 2,
child: Container(
margin: EdgeInsets.only(top: 2.0),
child: Column(
children: <Widget>[ children: <Widget>[
Container( if (model.user != null)
child: SecondaryButton( Expanded(
label: TranslationBase.of(context).fetchData, child: Column(
small: true, crossAxisAlignment: CrossAxisAlignment.start,
textColor: Colors.white, children: <Widget>[
onTap: () { Text(
getDetails( model.user.firstName + " " + model.user.lastName,
setupID: '010266', style: TextStyle(
projectID: 15, fontSize: 14,
patientIdentificationID: fontWeight: FontWeight.w600,
model.user.patientIdentificationNo, letterSpacing: -0.46,
patientID: model.user.patientID, ),
name: model.user.firstName + ),
" " + Text(
model.user.lastName, TranslationBase.of(context).fileno + ": " + model.user.patientID.toString(),
context: context); style: TextStyle(
}, fontSize: 12,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
)
],
),
), ),
), Icon(Icons.arrow_forward),
], ],
), ),
), ),
) ),
], ),
), ),
), if (model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList != null ?? false)
if (model.getAllSharedRecordsByStatusResponse ListView.separated(
.getAllSharedRecordsByStatusList != physics: NeverScrollableScrollPhysics(),
null ?? shrinkWrap: true,
false) itemBuilder: (context, index) {
...List.generate( return model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList[index].status == 3
model.getAllSharedRecordsByStatusResponse ? InkWell(
.getAllSharedRecordsByStatusList.length, onTap: () {
(index) => model.getAllSharedRecordsByStatusResponse getDetails(
.getAllSharedRecordsByStatusList[index].status == projectID: 15,
3 patientIdentificationID: model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList[index].patientIdenficationNumber,
? Container( setupID: '010266',
margin: EdgeInsets.all(10.0), patientID: model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList[index].responseID,
child: Card( name: model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList[index].patientName,
margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0), context: context);
color: Colors.white, },
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
child: Container( child: Container(
width: MediaQuery.of(context).size.width, width: double.infinity,
padding: EdgeInsets.all(10.0), child: Card(
child: Row( shape: cardRadius(12),
crossAxisAlignment: CrossAxisAlignment.start, child: Padding(
mainAxisSize: MainAxisSize.max, padding: const EdgeInsets.all(12.0),
children: <Widget>[ child: Row(
Expanded( crossAxisAlignment: CrossAxisAlignment.end,
flex: 3, mainAxisSize: MainAxisSize.max,
child: Container( children: [
margin: EdgeInsets.only( Expanded(
top: 2.0, left: 10.0, right: 20.0), child: Column(
child: Column( crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: children: [
CrossAxisAlignment.start, Text(
children: <Widget>[ model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList[index].patientName,
Texts( style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, letterSpacing: -0.46),
model ),
.getAllSharedRecordsByStatusResponse Text(
.getAllSharedRecordsByStatusList[ TranslationBase.of(context).fileno + ": " + model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList[index].patientID.toString(),
index] style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, letterSpacing: -0.46),
.patientName,
fontSize: 14,
color: Colors.black,
fontWeight: FontWeight.w500,
),
SizedBox(
height: 8,
),
Texts(
TranslationBase.of(context).fileno +
": " +
model
.getAllSharedRecordsByStatusResponse
.getAllSharedRecordsByStatusList[
index]
.patientID
.toString(),
fontSize: 14,
color: Colors.black,
fontWeight: FontWeight.w500,
)
],
),
),
),
Expanded(
flex: 2,
child: Container(
margin: EdgeInsets.only(top: 2.0),
child: Column(
children: <Widget>[
Container(
child: SecondaryButton(
label: TranslationBase.of(context)
.fetchData,
small: true,
textColor: Colors.white,
onTap: () {
getDetails(
projectID: 15,
patientIdentificationID: model
.getAllSharedRecordsByStatusResponse
.getAllSharedRecordsByStatusList[
index]
.patientIdenficationNumber,
setupID: '010266',
patientID: model
.getAllSharedRecordsByStatusResponse
.getAllSharedRecordsByStatusList[
index]
.responseID,
name: model
.getAllSharedRecordsByStatusResponse
.getAllSharedRecordsByStatusList[
index]
.patientName,
context: context);
},
), ),
), ],
], ),
), ),
), Icon(Icons.arrow_forward),
) ],
], ),
),
), ),
), ),
), )
) : Container();
: Container()), },
], separatorBuilder: (context, index) {
return mHeight(model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList[index].status == 3 ? 8 : 0);
},
itemCount: model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList.length,
),
],
),
), ),
); );
} }
getDetails( getDetails({String setupID, int projectID, String patientIdentificationID, int patientID, String name, BuildContext context}) {
{String setupID,
int projectID,
String patientIdentificationID,
int patientID,
String name,
BuildContext context}) {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
_insuranceCardService _insuranceCardService.getPatientInsuranceDetails(setupID: setupID, projectID: projectID, patientID: patientID, patientIdentificationID: patientIdentificationID).then((value) {
.getPatientInsuranceDetails(
setupID: setupID,
projectID: projectID,
patientID: patientID,
patientIdentificationID: patientIdentificationID)
.then((value) {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
if (!_insuranceCardService.hasError && if (!_insuranceCardService.hasError && _insuranceCardService.isHaveInsuranceCard) {
_insuranceCardService.isHaveInsuranceCard) {
Navigator.push( Navigator.push(
context, context,
FadePage( FadePage(
page: InsuranceCardUpdateDetails( page: InsuranceCardUpdateDetails(
insuranceCardDetailsModel: insuranceCardDetailsModel: _insuranceCardService.insuranceCardDetailsList,
_insuranceCardService.insuranceCardDetailsList,
patientID: patientID, patientID: patientID,
patientIdentificationID: patientIdentificationID, patientIdentificationID: patientIdentificationID,
name: name, name: name,

@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/service/insurance_service.dart'; import 'package:diplomaticquarterapp/core/service/insurance_service.dart';
import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/locator.dart';
import 'package:diplomaticquarterapp/pages/insurance/insurance_details.dart'; import 'package:diplomaticquarterapp/pages/insurance/insurance_details.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
@ -23,20 +24,17 @@ class InsuranceUpdate extends StatefulWidget {
_InsuranceUpdateState createState() => _InsuranceUpdateState(); _InsuranceUpdateState createState() => _InsuranceUpdateState();
} }
class _InsuranceUpdateState extends State<InsuranceUpdate> class _InsuranceUpdateState extends State<InsuranceUpdate> with SingleTickerProviderStateMixin {
with SingleTickerProviderStateMixin {
TabController _tabController; TabController _tabController;
List<ImagesInfo> imagesInfo = List(); List<ImagesInfo> imagesInfo = List();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_tabController = TabController(length: 2, vsync: this); _tabController = TabController(length: 2, vsync: this);
imagesInfo.add(ImagesInfo( imagesInfo.add(ImagesInfo(
imageEn: imageEn: 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/ar/0.png'));
'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/en/0.png',
imageAr:
'https://hmgwebservices.com/Images/MobileApp/imges-info/insurance-card/ar/0.png'));
} }
void dispose() { void dispose() {
@ -47,8 +45,7 @@ class _InsuranceUpdateState extends State<InsuranceUpdate>
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BaseView<InsuranceViewModel>( return BaseView<InsuranceViewModel>(
onModelReady: (model) => model.getInsuranceUpdated(), onModelReady: (model) => model.getInsuranceUpdated(),
builder: (BuildContext context, InsuranceViewModel model, Widget child) => builder: (BuildContext context, InsuranceViewModel model, Widget child) => AppScaffold(
AppScaffold(
appBarTitle: TranslationBase.of(context).insurCards, appBarTitle: TranslationBase.of(context).insurCards,
description: TranslationBase.of(context).infoInsurCards, description: TranslationBase.of(context).infoInsurCards,
infoList: TranslationBase.of(context).infoPrescriptionsPoints, infoList: TranslationBase.of(context).infoPrescriptionsPoints,
@ -56,79 +53,67 @@ class _InsuranceUpdateState extends State<InsuranceUpdate>
isShowAppBar: true, isShowAppBar: true,
isShowDecPage: true, isShowDecPage: true,
baseViewModel: model, baseViewModel: model,
body: Scaffold( showNewAppBarTitle: true,
extendBodyBehindAppBar: true, showNewAppBar: true,
appBar: PreferredSize( backgroundColor: CustomColors.appBackgroudGreyColor,
preferredSize: Size.fromHeight(70.0), body: Column(
child: Stack( children: <Widget>[
children: <Widget>[ Container(
Center( height: 45,
child: Container( child: TabBar(
height: 60.0, controller: _tabController,
margin: EdgeInsets.only(top: 10.0), isScrollable: false,
width: MediaQuery.of(context).size.width * 1.9, indicatorWeight: 3.0,
decoration: BoxDecoration( indicatorColor: CustomColors.accentColor,
border: Border( labelColor: Theme.of(context).primaryColor,
bottom: BorderSide( labelPadding: EdgeInsets.symmetric(horizontal: 13.0, vertical: 2.0),
color: Theme.of(context).dividerColor, unselectedLabelColor: Colors.grey,
width: 5.7, tabs: <Widget>[
Container(
child: Center(
child: Text(
TranslationBase.of(context).updateInsuranceSubtitle,
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
), ),
), ),
color: Colors.white,
), ),
),
Container(
child: Center( child: Center(
child: TabBar( child: Text(
controller: _tabController, TranslationBase.of(context).history,
isScrollable: true, style: TextStyle(
indicatorWeight: 4.0, fontSize: 16,
indicatorColor: Theme.of(context).primaryColor, fontWeight: FontWeight.w600,
labelColor: Theme.of(context).primaryColor, letterSpacing: -0.48,
labelPadding: EdgeInsets.symmetric( ),
horizontal: 13.0, vertical: 2.0),
unselectedLabelColor: Colors.grey,
tabs: <Widget>[
Container(
width: MediaQuery.of(context).size.width * 0.35,
child: Center(
child: Texts(TranslationBase.of(context)
.updateInsuranceSubtitle),
),
),
Container(
width: MediaQuery.of(context).size.width * 0.35,
child: Center(
child: Texts(TranslationBase.of(context).history),
),
),
],
), ),
), ),
), ),
) ],
], ),
), ),
), Expanded(
body: Column( child: TabBarView(
children: <Widget>[ physics: BouncingScrollPhysics(),
Expanded( controller: _tabController,
child: TabBarView( children: <Widget>[
physics: BouncingScrollPhysics(), InsurancePage(model: model),
controller: _tabController, Container(
children: <Widget>[ child: Padding(
InsurancePage(model: model), padding: const EdgeInsets.all(12.0),
Container(
child: ListView.builder( child: ListView.builder(
itemCount: model.insuranceUpdate == null itemCount: model.insuranceUpdate == null ? 0 : model.insuranceUpdate.length,
? 0
: model.insuranceUpdate.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return Container( return Container(
margin: EdgeInsets.all(10.0),
child: Card( child: Card(
margin: EdgeInsets.fromLTRB(8.0, 16.0, 8.0, 8.0),
color: Colors.white, color: Colors.white,
elevation: 2,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10), borderRadius: BorderRadius.circular(12),
), ),
child: Container( child: Container(
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
@ -143,47 +128,37 @@ class _InsuranceUpdateState extends State<InsuranceUpdate>
Expanded( Expanded(
flex: 3, flex: 3,
child: Container( child: Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(top: 2.0, left: 10.0, right: 20.0),
top: 2.0,
left: 10.0,
right: 20.0),
child: Column( child: Column(
crossAxisAlignment: crossAxisAlignment: CrossAxisAlignment.start,
CrossAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Texts( Text(
model.user.firstName + model.user.firstName + " " + model.user.lastName,
" " + style: TextStyle(
model.user.lastName, fontSize: 14,
fontSize: 14, fontWeight: FontWeight.w600,
fontWeight: FontWeight.w500, letterSpacing: -0.46,
color: Colors.black, ),
), ),
SizedBox( SizedBox(
height: 8, height: 4,
),
Texts(
TranslationBase.of(context)
.fileno +
": " +
model
.insuranceUpdate[
index]
.patientID
.toString(),
fontSize: 14,
fontWeight: FontWeight.w500,
color: Colors.black,
), ),
SizedBox( Text(
height: 8, TranslationBase.of(context).fileno + ": " + model.insuranceUpdate[index].patientID.toString(),
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
), ),
Texts(
model.insuranceUpdate[index] Text(
.createdOn, model.insuranceUpdate[index].createdOn,
fontSize: 14, style: TextStyle(
fontWeight: FontWeight.w500, fontSize: 14,
color: Colors.black, fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
), ),
], ],
), ),
@ -195,19 +170,16 @@ class _InsuranceUpdateState extends State<InsuranceUpdate>
margin: EdgeInsets.only(top: 20.0), margin: EdgeInsets.only(top: 20.0),
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Image.asset( Image.asset("assets/images/new-design/confirm_button.png", width: 30.0, height: 30.0),
"assets/images/new-design/confirm_button.png",
width: 30.0,
height: 30.0),
Container( Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(top: 6.5, left: 2.0),
top: 13.5, left: 2.0), child: Text(
child: Texts( model.insuranceUpdate[index].statusDescription,
model.insuranceUpdate[index] style: TextStyle(
.statusDescription, fontSize: 10,
textAlign: TextAlign.center, fontWeight: FontWeight.w600,
fontSize: 12, letterSpacing: -0.46,
color: Colors.black, ),
), ),
), ),
], ],
@ -223,10 +195,10 @@ class _InsuranceUpdateState extends State<InsuranceUpdate>
); );
}), }),
), ),
], ),
)) ],
], ))
), ],
), ),
), ),
); );

@ -9,6 +9,7 @@ import 'package:diplomaticquarterapp/models/FamilyFiles/GetAllSharedRecordByStat
import 'package:diplomaticquarterapp/pages/ToDoList/payment_method_select.dart'; import 'package:diplomaticquarterapp/pages/ToDoList/payment_method_select.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/balance/dialogs/SelectHospitalDialog.dart'; import 'package:diplomaticquarterapp/pages/medical/balance/dialogs/SelectHospitalDialog.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
@ -57,10 +58,8 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
super.initState(); super.initState();
getAuthUser(); getAuthUser();
imagesInfo.add(ImagesInfo( imagesInfo.add(ImagesInfo(
imageEn: imageEn: 'https://hmgwebservices.com/Images/MobileApp/images-info-home/advance-payment/en/0.png',
'https://hmgwebservices.com/Images/MobileApp/images-info-home/advance-payment/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/images-info-home/advance-payment/ar/0.png'));
imageAr:
'https://hmgwebservices.com/Images/MobileApp/images-info-home/advance-payment/ar/0.png'));
} }
@override @override
@ -72,6 +71,9 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
imagesInfo: imagesInfo, imagesInfo: imagesInfo,
appBarTitle: TranslationBase.of(context).advancePayment, appBarTitle: TranslationBase.of(context).advancePayment,
description: TranslationBase.of(context).infoAdvancePayment, description: TranslationBase.of(context).infoAdvancePayment,
showNewAppBarTitle: true,
showNewAppBar: true,
backgroundColor: CustomColors.appBackgroudGreyColor,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),
child: Container( child: Container(
@ -79,9 +81,14 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Texts( Text(
TranslationBase.of(context).advancePaymentLabel, TranslationBase.of(context).advancePaymentLabel,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
), ),
SizedBox( SizedBox(
height: 12, height: 12,
@ -89,16 +96,21 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
InkWell( InkWell(
onTap: () => confirmSelectBeneficiaryDialog(model), onTap: () => confirmSelectBeneficiaryDialog(model),
child: Container( child: Container(
padding: EdgeInsets.all(12), padding: EdgeInsets.all(8),
width: double.infinity, width: double.infinity,
height: 65, height: 65,
decoration: BoxDecoration( decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
borderRadius: BorderRadius.circular(12),
color: Colors.white),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Texts(getBeneficiaryType()), Text(
getBeneficiaryType(),
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
Icon(Icons.arrow_drop_down) Icon(Icons.arrow_drop_down)
], ],
), ),
@ -114,23 +126,26 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
model.getFamilyFiles().then((value) { model.getFamilyFiles().then((value) {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
confirmSelectFamilyDialog(model confirmSelectFamilyDialog(model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList);
.getAllSharedRecordsByStatusResponse
.getAllSharedRecordsByStatusList);
}); });
}, },
child: Container( child: Container(
padding: EdgeInsets.all(12), padding: EdgeInsets.all(12),
width: double.infinity, width: double.infinity,
height: 65, height: 65,
decoration: BoxDecoration( decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
borderRadius: BorderRadius.circular(12),
color: Colors.white),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Texts(getFamilyMembersName()), Text(
Icon(Icons.arrow_drop_down) getFamilyMembersName(),
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
Icon(Icons.arrow_drop_down),
], ],
), ),
), ),
@ -151,29 +166,30 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
onTap: () { onTap: () {
if (_fileTextController.text.isNotEmpty) { if (_fileTextController.text.isNotEmpty) {
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
model model.getPatientInfoByPatientID(id: _fileTextController.text).then((value) {
.getPatientInfoByPatientID(
id: _fileTextController.text)
.then((value) {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
confirmSelectPatientDialog(model.patientInfoList); confirmSelectPatientDialog(model.patientInfoList);
}); });
} else } else
AppToast.showErrorToast( AppToast.showErrorToast(message: 'Please Enter The File Number');
message: 'Please Enter The File Number');
}, },
child: Container( child: Container(
padding: EdgeInsets.all(12), padding: EdgeInsets.all(12),
width: double.infinity, width: double.infinity,
height: 65, height: 65,
decoration: BoxDecoration( decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
borderRadius: BorderRadius.circular(12),
color: Colors.white),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Texts(getPatientName()), Text(
Icon(Icons.arrow_drop_down) getPatientName(),
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
Icon(Icons.arrow_drop_down),
], ],
), ),
), ),
@ -187,14 +203,19 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
padding: EdgeInsets.all(12), padding: EdgeInsets.all(12),
width: double.infinity, width: double.infinity,
height: 65, height: 65,
decoration: BoxDecoration( decoration: BoxDecoration(borderRadius: BorderRadius.circular(12), color: Colors.white),
borderRadius: BorderRadius.circular(12),
color: Colors.white),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Texts(getHospitalName()), Text(
Icon(Icons.arrow_drop_down) getHospitalName(),
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
Icon(Icons.arrow_drop_down),
], ],
), ),
), ),
@ -237,15 +258,15 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
), ),
), ),
bottomSheet: Container( bottomSheet: Container(
height: 90, height: 70,
width: double.infinity, width: double.infinity,
padding: EdgeInsets.all(18), padding: EdgeInsets.all(12),
color: Colors.white,
child: SecondaryButton( child: SecondaryButton(
textColor: Colors.white, textColor: Colors.white,
label: TranslationBase.of(context).submit, label: TranslationBase.of(context).submit,
disabled: amount.isEmpty || color: CustomColors.accentColor,
_fileTextController.text.isEmpty || disabled: amount.isEmpty || _fileTextController.text.isEmpty || _selectedHospital == null,
_selectedHospital == null,
onTap: () { onTap: () {
var mobileNum; var mobileNum;
var patientName; var patientName;
@ -273,15 +294,11 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
advanceModel.mobileNumber = mobileNum; advanceModel.mobileNumber = mobileNum;
advanceModel.patientName = patientName; advanceModel.patientName = patientName;
GifLoaderDialogUtils.showMyDialog(context); GifLoaderDialogUtils.showMyDialog(context);
model model.getPatientInfoByPatientIDAndMobileNumber(advanceModel).then((value) {
.getPatientInfoByPatientIDAndMobileNumber(advanceModel)
.then((value) {
GifLoaderDialogUtils.hideDialog(context); GifLoaderDialogUtils.hideDialog(context);
if (model.state != ViewState.Error && if (model.state != ViewState.Error && model.state != ViewState.ErrorLocal) {
model.state != ViewState.ErrorLocal) {
Utils.hideKeyboard(context); Utils.hideKeyboard(context);
Navigator.push(context, FadePage(page: PaymentMethod())) Navigator.push(context, FadePage(page: PaymentMethod())).then(
.then(
(value) { (value) {
Navigator.push( Navigator.push(
context, context,
@ -289,8 +306,7 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
page: ConfirmPaymentPage( page: ConfirmPaymentPage(
advanceModel: advanceModel, advanceModel: advanceModel,
selectedPaymentMethod: value, selectedPaymentMethod: value,
patientInfoAndMobileNumber: patientInfoAndMobileNumber: model.patientInfoAndMobileNumber,
model.patientInfoAndMobileNumber,
authenticatedUser: authUser, authenticatedUser: authUser,
), ),
), ),
@ -314,8 +330,7 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
setState(() { setState(() {
if (value == BeneficiaryType.MyAccount) { if (value == BeneficiaryType.MyAccount) {
_fileTextController.text = model.user.patientID.toString(); _fileTextController.text = model.user.patientID.toString();
advanceModel.depositorName = advanceModel.depositorName = model.user.firstName + " " + model.user.lastName;
model.user.firstName + " " + model.user.lastName;
} else } else
_fileTextController.text = ""; _fileTextController.text = "";
@ -357,8 +372,7 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
); );
} }
void confirmSelectFamilyDialog( void confirmSelectFamilyDialog(List<GetAllSharedRecordsByStatusList> getAllSharedRecordsByStatusList) {
List<GetAllSharedRecordsByStatusList> getAllSharedRecordsByStatusList) {
if (getAllSharedRecordsByStatusList.isNotEmpty) if (getAllSharedRecordsByStatusList.isNotEmpty)
showDialog( showDialog(
context: context, context: context,
@ -368,8 +382,7 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
onValueSelected: (value) { onValueSelected: (value) {
setState(() { setState(() {
selectedPatientFamily = value; selectedPatientFamily = value;
_fileTextController.text = _fileTextController.text = selectedPatientFamily.responseID.toString();
selectedPatientFamily.responseID.toString();
advanceModel.depositorName = value.patientName; advanceModel.depositorName = value.patientName;
}); });
}, },
@ -409,8 +422,7 @@ class _AdvancePaymentPageState extends State<AdvancePaymentPage> {
getAuthUser() async { getAuthUser() async {
if (await this.sharedPref.getObject(USER_PROFILE) != null) { if (await this.sharedPref.getObject(USER_PROFILE) != null) {
var data = AuthenticatedUser.fromJson( var data = AuthenticatedUser.fromJson(await this.sharedPref.getObject(USER_PROFILE));
await this.sharedPref.getObject(USER_PROFILE));
setState(() { setState(() {
authUser = data; authUser = data;
}); });

@ -8,6 +8,7 @@ import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.da
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/routes.dart'; import 'package:diplomaticquarterapp/routes.dart';
import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart'; import 'package:diplomaticquarterapp/services/appointment_services/GetDoctorsList.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart'; import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
@ -32,11 +33,7 @@ class ConfirmPaymentPage extends StatelessWidget {
AppSharedPreferences sharedPref = AppSharedPreferences(); AppSharedPreferences sharedPref = AppSharedPreferences();
String transID = ""; String transID = "";
ConfirmPaymentPage( ConfirmPaymentPage({this.advanceModel, this.patientInfoAndMobileNumber, this.selectedPaymentMethod, this.authenticatedUser});
{this.advanceModel,
this.patientInfoAndMobileNumber,
this.selectedPaymentMethod,
this.authenticatedUser});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -51,11 +48,9 @@ class ConfirmPaymentPage extends StatelessWidget {
print("dialog dismissed"); print("dialog dismissed");
print(value); print(value);
if (value != null && value) { if (value != null && value) {
AppoitmentAllHistoryResultList appo = AppoitmentAllHistoryResultList appo = new AppoitmentAllHistoryResultList();
new AppoitmentAllHistoryResultList();
appo.projectID = patientInfoAndMobileNumber.projectID; appo.projectID = patientInfoAndMobileNumber.projectID;
openPayment(selectedPaymentMethod, authenticatedUser, openPayment(selectedPaymentMethod, authenticatedUser, double.parse(advanceModel.amount), null);
double.parse(advanceModel.amount), null);
} }
}); });
} }
@ -64,6 +59,9 @@ class ConfirmPaymentPage extends StatelessWidget {
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
appBarTitle: TranslationBase.of(context).advancePayment, appBarTitle: TranslationBase.of(context).advancePayment,
showNewAppBarTitle: true,
showNewAppBar: true,
backgroundColor: CustomColors.appBackgroudGreyColor,
body: SingleChildScrollView( body: SingleChildScrollView(
physics: ScrollPhysics(), physics: ScrollPhysics(),
child: Container( child: Container(
@ -71,11 +69,14 @@ class ConfirmPaymentPage extends StatelessWidget {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Texts( Text(
TranslationBase.of(context).confirmThePayment, TranslationBase.of(context).confirmThePayment,
textAlign: TextAlign.center, textAlign: TextAlign.center,
fontWeight: FontWeight.w500, style: TextStyle(
fontSize: 24, fontSize: 18,
fontWeight: FontWeight.w600,
letterSpacing: -0.48,
),
), ),
SizedBox( SizedBox(
height: 12, height: 12,
@ -89,10 +90,13 @@ class ConfirmPaymentPage extends StatelessWidget {
width: MediaQuery.of(context).size.width * 0.45, width: MediaQuery.of(context).size.width * 0.45,
child: Image.asset(getImagePath(selectedPaymentMethod)), child: Image.asset(getImagePath(selectedPaymentMethod)),
), ),
Texts( Text(
'${advanceModel.amount} SAR', '${advanceModel.amount} SAR',
fontSize: 26, style: TextStyle(
bold: true, fontSize: 20,
fontWeight: FontWeight.w900,
letterSpacing: -0.48,
),
) )
], ],
), ),
@ -136,11 +140,7 @@ class ConfirmPaymentPage extends StatelessWidget {
), ),
NewTextFields( NewTextFields(
hintText: TranslationBase.of(context).depositorName, hintText: TranslationBase.of(context).depositorName,
initialValue: model.user.firstName + initialValue: model.user.firstName + " " + model.user.middleName + " " + model.user.lastName,
" " +
model.user.middleName +
" " +
model.user.lastName,
isEnabled: false, isEnabled: false,
), ),
SizedBox( SizedBox(
@ -156,26 +156,24 @@ class ConfirmPaymentPage extends StatelessWidget {
), ),
), ),
bottomSheet: Container( bottomSheet: Container(
height: MediaQuery.of(context).size.height * 0.13, color: Colors.white,
width: double.infinity, child: Container(
padding: EdgeInsets.all(12), height: MediaQuery.of(context).size.width * 0.18,
child: SecondaryButton( width: double.infinity,
textColor: Colors.white, padding: EdgeInsets.all(12),
color: Theme.of(context).primaryColor, child: SecondaryButton(
label: TranslationBase.of(context).confirm.toUpperCase(), textColor: Colors.white,
disabled: model.state == ViewState.Busy, color: CustomColors.accentColor,
onTap: () { label: TranslationBase.of(context).confirm.toUpperCase(),
GifLoaderDialogUtils.showMyDialog(context); disabled: model.state == ViewState.Busy,
model onTap: () {
.sendActivationCodeForAdvancePayment( GifLoaderDialogUtils.showMyDialog(context);
patientID: int.parse(advanceModel.fileNumber), model.sendActivationCodeForAdvancePayment(patientID: int.parse(advanceModel.fileNumber), projectID: advanceModel.hospitalsModel.iD).then((value) {
projectID: advanceModel.hospitalsModel.iD) GifLoaderDialogUtils.hideDialog(context);
.then((value) { if (model.state != ViewState.ErrorLocal && model.state != ViewState.Error) showSMSDialog();
GifLoaderDialogUtils.hideDialog(context); });
if (model.state != ViewState.ErrorLocal && },
model.state != ViewState.Error) showSMSDialog(); ),
});
},
), ),
), ),
), ),
@ -204,29 +202,13 @@ class ConfirmPaymentPage extends StatelessWidget {
return 'assets/images/new-design/mada.png'; return 'assets/images/new-design/mada.png';
} }
openPayment(String paymentMethod, AuthenticatedUser authenticatedUser, openPayment(String paymentMethod, AuthenticatedUser authenticatedUser, double amount, AppoitmentAllHistoryResultList appo) {
double amount, AppoitmentAllHistoryResultList appo) { browser = new MyInAppBrowser(onExitCallback: onBrowserExit, appo: appo, onLoadStartCallback: onBrowserLoadStart);
browser = new MyInAppBrowser(
onExitCallback: onBrowserExit,
appo: appo,
onLoadStartCallback: onBrowserLoadStart);
transID = Utils.getAdvancePaymentTransID( transID = Utils.getAdvancePaymentTransID(advanceModel.hospitalsModel.iD, int.parse(advanceModel.fileNumber));
advanceModel.hospitalsModel.iD, int.parse(advanceModel.fileNumber));
browser.openPaymentBrowser( browser.openPaymentBrowser(amount, "Advance Payment", transID, advanceModel.hospitalsModel.iD.toString(), advanceModel.email, paymentMethod, patientInfoAndMobileNumber.patientType,
amount, advanceModel.patientName, advanceModel.fileNumber, authenticatedUser, browser, false);
"Advance Payment",
transID,
advanceModel.hospitalsModel.iD.toString(),
advanceModel.email,
paymentMethod,
patientInfoAndMobileNumber.patientType,
advanceModel.patientName,
advanceModel.fileNumber,
authenticatedUser,
browser,
false);
} }
onBrowserLoadStart(String url) { onBrowserLoadStart(String url) {
@ -278,23 +260,11 @@ class ConfirmPaymentPage extends StatelessWidget {
createAdvancePayment(res, AppoitmentAllHistoryResultList appo) { createAdvancePayment(res, AppoitmentAllHistoryResultList appo) {
DoctorsListService service = new DoctorsListService(); DoctorsListService service = new DoctorsListService();
String paymentReference = res['Fort_id'].toString(); String paymentReference = res['Fort_id'].toString();
service.HIS_createAdvancePayment( service.HIS_createAdvancePayment(appo, advanceModel.hospitalsModel.iD.toString(), res['Amount'], res['Fort_id'], res['PaymentMethod'], patientInfoAndMobileNumber.patientType,
appo, advanceModel.patientName, advanceModel.fileNumber, AppGlobal.context)
advanceModel.hospitalsModel.iD.toString(),
res['Amount'],
res['Fort_id'],
res['PaymentMethod'],
patientInfoAndMobileNumber.patientType,
advanceModel.patientName,
advanceModel.fileNumber,
AppGlobal.context)
.then((res) { .then((res) {
print(res['OnlineCheckInAppointments'][0]['AdvanceNumber']); print(res['OnlineCheckInAppointments'][0]['AdvanceNumber']);
addAdvancedNumberRequest( addAdvancedNumberRequest(res['OnlineCheckInAppointments'][0]['AdvanceNumber'].toString(), paymentReference, 0, appo);
res['OnlineCheckInAppointments'][0]['AdvanceNumber'].toString(),
paymentReference,
0,
appo);
}).catchError((err) { }).catchError((err) {
GifLoaderDialogUtils.hideDialog(AppGlobal.context); GifLoaderDialogUtils.hideDialog(AppGlobal.context);
AppToast.showErrorToast(message: err); AppToast.showErrorToast(message: err);
@ -302,13 +272,9 @@ class ConfirmPaymentPage extends StatelessWidget {
}); });
} }
addAdvancedNumberRequest(String advanceNumber, String paymentReference, addAdvancedNumberRequest(String advanceNumber, String paymentReference, dynamic appointmentID, AppoitmentAllHistoryResultList appo) {
dynamic appointmentID, AppoitmentAllHistoryResultList appo) {
DoctorsListService service = new DoctorsListService(); DoctorsListService service = new DoctorsListService();
service service.addAdvancedNumberRequest(advanceNumber, paymentReference, appointmentID, AppGlobal.context).then((res) {
.addAdvancedNumberRequest(
advanceNumber, paymentReference, appointmentID, AppGlobal.context)
.then((res) {
print(res); print(res);
GifLoaderDialogUtils.hideDialog(AppGlobal.context); GifLoaderDialogUtils.hideDialog(AppGlobal.context);
navigateToHome(AppGlobal.context); navigateToHome(AppGlobal.context);

@ -10,12 +10,10 @@ class SelectBeneficiaryDialog extends StatefulWidget {
final BeneficiaryType beneficiaryType; final BeneficiaryType beneficiaryType;
final Function(BeneficiaryType) onValueSelected; final Function(BeneficiaryType) onValueSelected;
SelectBeneficiaryDialog( SelectBeneficiaryDialog({Key key, this.beneficiaryType, this.onValueSelected});
{Key key, this.beneficiaryType, this.onValueSelected});
@override @override
_SelectBeneficiaryDialogState createState() => _SelectBeneficiaryDialogState createState() => _SelectBeneficiaryDialogState(this.beneficiaryType);
_SelectBeneficiaryDialogState(this.beneficiaryType);
} }
class _SelectBeneficiaryDialogState extends State<SelectBeneficiaryDialog> { class _SelectBeneficiaryDialogState extends State<SelectBeneficiaryDialog> {
@ -42,7 +40,14 @@ class _SelectBeneficiaryDialogState extends State<SelectBeneficiaryDialog> {
}); });
}, },
child: ListTile( child: ListTile(
title: Text(TranslationBase.of(context).myAccount), title: Text(
TranslationBase.of(context).myAccount,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
leading: Radio( leading: Radio(
value: BeneficiaryType.MyAccount, value: BeneficiaryType.MyAccount,
groupValue: beneficiaryType, groupValue: beneficiaryType,
@ -72,7 +77,14 @@ class _SelectBeneficiaryDialogState extends State<SelectBeneficiaryDialog> {
}); });
}, },
child: ListTile( child: ListTile(
title: Text(TranslationBase.of(context).myFamilyFiles), title: Text(
TranslationBase.of(context).myFamilyFiles,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
leading: Radio( leading: Radio(
value: BeneficiaryType.MyFamilyFiles, value: BeneficiaryType.MyFamilyFiles,
groupValue: beneficiaryType, groupValue: beneficiaryType,
@ -102,7 +114,14 @@ class _SelectBeneficiaryDialogState extends State<SelectBeneficiaryDialog> {
}); });
}, },
child: ListTile( child: ListTile(
title: Text(TranslationBase.of(context).otherAccount), title: Text(
TranslationBase.of(context).otherAccount,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
leading: Radio( leading: Radio(
value: BeneficiaryType.OtherAccount, value: BeneficiaryType.OtherAccount,
groupValue: beneficiaryType, groupValue: beneficiaryType,
@ -134,9 +153,14 @@ class _SelectBeneficiaryDialogState extends State<SelectBeneficiaryDialog> {
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Container( child: Container(
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).cancel.toUpperCase(), TranslationBase.of(context).cancel.toUpperCase(),
color: Colors.red, style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
color: Colors.red,
),
), ),
), ),
), ),
@ -158,9 +182,13 @@ class _SelectBeneficiaryDialogState extends State<SelectBeneficiaryDialog> {
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).ok, TranslationBase.of(context).ok.toUpperCase(),
fontWeight: FontWeight.w400, style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
), ),
), ),
), ),

@ -11,8 +11,7 @@ class SelectHospitalDialog extends StatefulWidget {
final Function(HospitalsModel) onValueSelected; final Function(HospitalsModel) onValueSelected;
HospitalsModel selectedHospital; HospitalsModel selectedHospital;
SelectHospitalDialog( SelectHospitalDialog({Key key, this.hospitals, this.onValueSelected, this.selectedHospital});
{Key key, this.hospitals, this.onValueSelected, this.selectedHospital});
@override @override
_SelectHospitalDialogState createState() => _SelectHospitalDialogState(); _SelectHospitalDialogState createState() => _SelectHospitalDialogState();
@ -51,8 +50,14 @@ class _SelectHospitalDialogState extends State<SelectHospitalDialog> {
}); });
}, },
child: ListTile( child: ListTile(
title: Text(widget.hospitals[index].name + title: Text(
' ${widget.hospitals[index].distanceInKilometers} KM'), widget.hospitals[index].name + ' ${widget.hospitals[index].distanceInKilometers} KM',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
leading: Radio( leading: Radio(
value: widget.hospitals[index], value: widget.hospitals[index],
groupValue: widget.selectedHospital, groupValue: widget.selectedHospital,
@ -90,9 +95,14 @@ class _SelectHospitalDialogState extends State<SelectHospitalDialog> {
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Container( child: Container(
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).cancel.toUpperCase(), TranslationBase.of(context).cancel.toUpperCase(),
color: Colors.red, style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
color: Colors.red
),
), ),
), ),
), ),
@ -114,10 +124,15 @@ class _SelectHospitalDialogState extends State<SelectHospitalDialog> {
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).ok, TranslationBase.of(context).ok,
fontWeight: FontWeight.w400, style: TextStyle(
)), fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
),
), ),
), ),
), ),

@ -7,22 +7,21 @@ import 'package:flutter/material.dart';
import '../../../../Constants.dart'; import '../../../../Constants.dart';
class SelectPatientFamilyDialog extends StatefulWidget { class SelectPatientFamilyDialog extends StatefulWidget {
final List<GetAllSharedRecordsByStatusList> getAllSharedRecordsByStatusList; final List<GetAllSharedRecordsByStatusList> getAllSharedRecordsByStatusList;
final Function(GetAllSharedRecordsByStatusList) onValueSelected; final Function(GetAllSharedRecordsByStatusList) onValueSelected;
GetAllSharedRecordsByStatusList selectedPatientFamily; GetAllSharedRecordsByStatusList selectedPatientFamily;
SelectPatientFamilyDialog({Key key, this.getAllSharedRecordsByStatusList, this.onValueSelected,this.selectedPatientFamily}); SelectPatientFamilyDialog({Key key, this.getAllSharedRecordsByStatusList, this.onValueSelected, this.selectedPatientFamily});
@override @override
_SelectPatientFamilyDialogState createState() => _SelectPatientFamilyDialogState(); _SelectPatientFamilyDialogState createState() => _SelectPatientFamilyDialogState();
} }
class _SelectPatientFamilyDialogState extends State<SelectPatientFamilyDialog> { class _SelectPatientFamilyDialogState extends State<SelectPatientFamilyDialog> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
widget.selectedPatientFamily = widget.selectedPatientFamily?? widget.getAllSharedRecordsByStatusList[0]; widget.selectedPatientFamily = widget.selectedPatientFamily ?? widget.getAllSharedRecordsByStatusList[0];
} }
@override @override
@ -34,7 +33,7 @@ class _SelectPatientFamilyDialogState extends State<SelectPatientFamilyDialog> {
Divider(), Divider(),
...List.generate( ...List.generate(
widget.getAllSharedRecordsByStatusList.length, widget.getAllSharedRecordsByStatusList.length,
(index) => Column( (index) => Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
SizedBox( SizedBox(
@ -51,7 +50,14 @@ class _SelectPatientFamilyDialogState extends State<SelectPatientFamilyDialog> {
}); });
}, },
child: ListTile( child: ListTile(
title: Text(widget.getAllSharedRecordsByStatusList[index].patientName), title: Text(
widget.getAllSharedRecordsByStatusList[index].patientName,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
leading: Radio( leading: Radio(
value: widget.getAllSharedRecordsByStatusList[index], value: widget.getAllSharedRecordsByStatusList[index],
groupValue: widget.selectedPatientFamily, groupValue: widget.selectedPatientFamily,
@ -89,9 +95,14 @@ class _SelectPatientFamilyDialogState extends State<SelectPatientFamilyDialog> {
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Container( child: Container(
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).cancel.toUpperCase(), TranslationBase.of(context).cancel.toUpperCase(),
color: Colors.red, style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
color: Colors.red,
),
), ),
), ),
), ),
@ -113,10 +124,15 @@ class _SelectPatientFamilyDialogState extends State<SelectPatientFamilyDialog> {
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).ok, TranslationBase.of(context).ok,
fontWeight: FontWeight.w400, style: TextStyle(
)), fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
),
), ),
), ),
), ),

@ -9,22 +9,22 @@ import 'package:flutter/material.dart';
import '../../../../Constants.dart'; import '../../../../Constants.dart';
class SelectPatientInfoDialog extends StatefulWidget { class SelectPatientInfoDialog extends StatefulWidget {
final List<PatientInfo> patientInfoList ; final List<PatientInfo> patientInfoList;
final Function(PatientInfo) onValueSelected; final Function(PatientInfo) onValueSelected;
PatientInfo selectedPatientInfo; PatientInfo selectedPatientInfo;
SelectPatientInfoDialog({Key key, this.patientInfoList, this.onValueSelected,this.selectedPatientInfo}); SelectPatientInfoDialog({Key key, this.patientInfoList, this.onValueSelected, this.selectedPatientInfo});
@override @override
_SelectPatientInfoDialogState createState() => _SelectPatientInfoDialogState(); _SelectPatientInfoDialogState createState() => _SelectPatientInfoDialogState();
} }
class _SelectPatientInfoDialogState extends State<SelectPatientInfoDialog> { class _SelectPatientInfoDialogState extends State<SelectPatientInfoDialog> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
widget.selectedPatientInfo = widget.selectedPatientInfo?? widget.patientInfoList[0]; widget.selectedPatientInfo = widget.selectedPatientInfo ?? widget.patientInfoList[0];
} }
@override @override
@ -36,7 +36,7 @@ class _SelectPatientInfoDialogState extends State<SelectPatientInfoDialog> {
Divider(), Divider(),
...List.generate( ...List.generate(
widget.patientInfoList.length, widget.patientInfoList.length,
(index) => Column( (index) => Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
SizedBox( SizedBox(
@ -53,7 +53,14 @@ class _SelectPatientInfoDialogState extends State<SelectPatientInfoDialog> {
}); });
}, },
child: ListTile( child: ListTile(
title: Text(widget.patientInfoList[index].fullName), title: Text(
widget.patientInfoList[index].fullName,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
leading: Radio( leading: Radio(
value: widget.patientInfoList[index], value: widget.patientInfoList[index],
groupValue: widget.selectedPatientInfo, groupValue: widget.selectedPatientInfo,
@ -91,9 +98,14 @@ class _SelectPatientInfoDialogState extends State<SelectPatientInfoDialog> {
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Container( child: Container(
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).cancel.toUpperCase(), TranslationBase.of(context).cancel.toUpperCase(),
color: Colors.red, style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
color: Colors.red,
),
), ),
), ),
), ),
@ -115,10 +127,15 @@ class _SelectPatientInfoDialogState extends State<SelectPatientInfoDialog> {
child: Padding( child: Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Center( child: Center(
child: Texts( child: Text(
TranslationBase.of(context).ok, TranslationBase.of(context).ok.toUpperCase(),
fontWeight: FontWeight.w400, style: TextStyle(
)), fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
),
), ),
), ),
), ),

@ -1,6 +1,7 @@
import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart'; import 'package:diplomaticquarterapp/core/model/ImagesInfo.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/theme/colors.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
@ -17,10 +18,7 @@ class MyBalancePage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
imagesInfo.add(ImagesInfo( imagesInfo.add(ImagesInfo(
imageEn: imageEn: 'https://hmgwebservices.com/Images/MobileApp/images-info-home/my-balance/en/0.png', imageAr: 'https://hmgwebservices.com/Images/MobileApp/images-info-home/my-balance/ar/0.png'));
'https://hmgwebservices.com/Images/MobileApp/images-info-home/my-balance/en/0.png',
imageAr:
'https://hmgwebservices.com/Images/MobileApp/images-info-home/my-balance/ar/0.png'));
return BaseView<MyBalanceViewModel>( return BaseView<MyBalanceViewModel>(
onModelReady: (model) => model.getPatientAdvanceBalanceAmount(), onModelReady: (model) => model.getPatientAdvanceBalanceAmount(),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
@ -29,16 +27,22 @@ class MyBalancePage extends StatelessWidget {
appBarTitle: TranslationBase.of(context).myBalances, appBarTitle: TranslationBase.of(context).myBalances,
imagesInfo: imagesInfo, imagesInfo: imagesInfo,
description: TranslationBase.of(context).infoMyBalance, description: TranslationBase.of(context).infoMyBalance,
showNewAppBar: true,
showNewAppBarTitle: true,
backgroundColor: CustomColors.appBackgroudGreyColor,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
margin: EdgeInsets.all(12), margin: EdgeInsets.all(12),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Texts( Text(
TranslationBase.of(context).balanceAmount, TranslationBase.of(context).balanceAmount,
color: Colors.black, style: TextStyle(
bold: true, fontSize: 16,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
), ),
SizedBox( SizedBox(
height: 15, height: 15,
@ -55,15 +59,22 @@ class MyBalancePage extends StatelessWidget {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Texts( Text(
'${model.totalAdvanceBalanceAmount ?? 0} ' + '${model.totalAdvanceBalanceAmount ?? 0} ' + TranslationBase.of(context).sar,
TranslationBase.of(context).sar, style: TextStyle(
color: Colors.white, fontSize: 14,
bold: true, fontWeight: FontWeight.w600,
letterSpacing: -0.46,
color: Colors.white,
),
), ),
Texts( Text(
TranslationBase.of(context).totalBalance, TranslationBase.of(context).totalBalance,
color: Colors.white, style: TextStyle(
fontSize: 14,
letterSpacing: -0.46,
color: Colors.white,
),
), ),
], ],
), ),
@ -80,18 +91,26 @@ class MyBalancePage extends StatelessWidget {
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
shape: BoxShape.rectangle, shape: BoxShape.rectangle,
borderRadius: BorderRadius.circular(7), borderRadius: BorderRadius.circular(12),
), ),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
Texts( Text(
'${model.patientAdvanceBalanceAmountList[index].patientAdvanceBalanceAmount} ' + '${model.patientAdvanceBalanceAmountList[index].patientAdvanceBalanceAmount} ' + TranslationBase.of(context).sar,
TranslationBase.of(context).sar, style: TextStyle(
bold: true, fontSize: 14,
fontWeight: FontWeight.w600,
letterSpacing: -0.46,
),
),
Text(
model.patientAdvanceBalanceAmountList[index].projectDescription,
style: TextStyle(
fontSize: 14,
letterSpacing: -0.46,
),
), ),
Texts(model.patientAdvanceBalanceAmountList[index]
.projectDescription),
], ],
), ),
), ),
@ -111,6 +130,7 @@ class MyBalancePage extends StatelessWidget {
padding: EdgeInsets.all(12), padding: EdgeInsets.all(12),
child: SecondaryButton( child: SecondaryButton(
textColor: Colors.white, textColor: Colors.white,
color: CustomColors.accentColor,
label: TranslationBase.of(context).createAdvancedPayment, label: TranslationBase.of(context).createAdvancedPayment,
onTap: () { onTap: () {
Navigator.push(context, FadePage(page: AdvancePaymentPage())); Navigator.push(context, FadePage(page: AdvancePaymentPage()));

@ -70,8 +70,8 @@ class NewTextFields extends StatefulWidget {
this.prefixIcon, this.prefixIcon,
this.bare = false, this.bare = false,
this.onTap, this.onTap,
this.fontSize = 16.0, this.fontSize = 14.0,
this.fontWeight = FontWeight.w700, this.fontWeight = FontWeight.w600,
this.autoValidate = false, this.autoValidate = false,
this.hintColor, this.hintColor,
this.isEnabled = true,this.counterText=""}) this.isEnabled = true,this.counterText=""})

@ -242,10 +242,8 @@ class _SecondaryButtonState extends State<SecondaryButton>
style: TextStyle( style: TextStyle(
color: widget.textColor, color: widget.textColor,
fontSize: widget.small ? 12.0 : 14.0, fontSize: widget.small ? 12.0 : 14.0,
// fontWeight: FontWeight.w800, fontWeight: FontWeight.w600,
fontFamily: projectViewModel.isArabic ),
? 'Cairo'
: 'WorkSans'),
), ),
) )
], ],

@ -4,29 +4,27 @@ import 'package:flutter/material.dart';
/// [page] /// [page]
class FadePage extends PageRouteBuilder { class FadePage extends PageRouteBuilder {
final Widget page; final Widget page;
FadePage({this.page}) FadePage({this.page})
: super( : super(
opaque: false, opaque: false,
fullscreenDialog: true, fullscreenDialog: true,
barrierDismissible: true, barrierDismissible: true,
barrierColor: Colors.black.withOpacity(0.8), barrierColor: Colors.black.withOpacity(0.8),
pageBuilder: ( pageBuilder: (
BuildContext context, BuildContext context,
Animation<double> animation, Animation<double> animation,
Animation<double> secondaryAnimation, Animation<double> secondaryAnimation,
) => ) =>
page, page,
transitionDuration: Duration(milliseconds: 300), transitionDuration: Duration(milliseconds: 300),
transitionsBuilder: ( transitionsBuilder: (
BuildContext context, BuildContext context,
Animation<double> animation, Animation<double> animation,
Animation<double> secondaryAnimation, Animation<double> secondaryAnimation,
Widget child, Widget child,
) { ) {
return FadeTransition( return FadeTransition(opacity: animation, child: child);
opacity: animation, },
child: child );
); }
}
);
}

Loading…
Cancel
Save