|
|
|
import 'package:diplomaticquarterapp/models/Appointments/AppoimentAllHistoryResultList.dart';
|
|
|
|
import 'package:diplomaticquarterapp/models/Appointments/PatientShareResposne.dart';
|
|
|
|
import 'package:diplomaticquarterapp/theme/colors.dart';
|
|
|
|
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
|
|
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
|
|
|
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
|
|
|
|
import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
|
|
|
|
|
|
|
|
class PaymentDialog extends StatefulWidget {
|
|
|
|
AppoitmentAllHistoryResultList appo;
|
|
|
|
PatientShareResponse patientShareResponse;
|
|
|
|
|
|
|
|
final Function onPaymentMethodSelected;
|
|
|
|
|
|
|
|
PaymentDialog({@required this.appo, @required this.onPaymentMethodSelected, this.patientShareResponse});
|
|
|
|
|
|
|
|
@override
|
|
|
|
_PaymentDialogState createState() => _PaymentDialogState();
|
|
|
|
}
|
|
|
|
|
|
|
|
class _PaymentDialogState extends State<PaymentDialog> {
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
return Container(
|
|
|
|
child: Dialog(
|
|
|
|
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12.0)),
|
|
|
|
child: Container(
|
|
|
|
height: 550.0,
|
|
|
|
width: 450.0,
|
|
|
|
child: Column(crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.max, children: <Widget>[
|
|
|
|
Container(
|
|
|
|
margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 5.0),
|
|
|
|
child: Text(TranslationBase.of(context).invoiceDetails, style: TextStyle(fontSize: 25.0, fontWeight: FontWeight.w600)),
|
|
|
|
),
|
|
|
|
Container(
|
|
|
|
margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 0.0),
|
|
|
|
child: Text(widget.appo.doctorTitle + " " + widget.appo.doctorNameObj, style: TextStyle(color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.w600)),
|
|
|
|
),
|
|
|
|
Container(
|
|
|
|
margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 0.0),
|
|
|
|
child: Text(getDate(widget.appo.appointmentDate), style: getTextStyle()),
|
|
|
|
),
|
|
|
|
Container(
|
|
|
|
margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 0.0),
|
|
|
|
child: Text(widget.appo.projectName, style: getTextStyle()),
|
|
|
|
),
|
|
|
|
Divider(
|
|
|
|
color: Colors.grey,
|
|
|
|
),
|
|
|
|
Container(
|
|
|
|
margin: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 5.0),
|
|
|
|
child: Table(
|
|
|
|
children: [
|
|
|
|
TableRow(decoration: BoxDecoration(), children: [
|
|
|
|
TableCell(child: _getNormalText(TranslationBase.of(context).patientShareToDo)),
|
|
|
|
TableCell(child: _getNormalText(widget.patientShareResponse.patientShare.toString())),
|
|
|
|
]),
|
|
|
|
TableRow(children: [
|
|
|
|
TableCell(child: _getNormalText(TranslationBase.of(context).patientTaxToDo)),
|
|
|
|
TableCell(child: _getNormalText(widget.patientShareResponse.patientTaxAmount.toString())),
|
|
|
|
]),
|
|
|
|
TableRow(children: [
|
|
|
|
TableCell(child: _getNormalText(TranslationBase.of(context).patientShareTotalToDo)),
|
|
|
|
TableCell(child: _getNormalText(widget.patientShareResponse.patientShareWithTax.toString())),
|
|
|
|
]),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
Divider(
|
|
|
|
color: Colors.grey,
|
|
|
|
),
|
|
|
|
Container(
|
|
|
|
margin: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 5.0),
|
|
|
|
child: Text(TranslationBase.of(context).YouCanPayByTheFollowingOptions, style: TextStyle(fontSize: 14.0, fontWeight: FontWeight.w600)),
|
|
|
|
),
|
|
|
|
Container(margin: EdgeInsets.fromLTRB(20.0, 5.0, 20.0, 5.0), child: getPaymentMethods()),
|
|
|
|
Container(
|
|
|
|
margin: EdgeInsets.fromLTRB(20.0, 30.0, 20.0, 15.0),
|
|
|
|
child: Text(TranslationBase.of(context).appoPaymentConfirm, style: TextStyle(fontSize: 14.0, color: CustomColors.accentColor, fontWeight: FontWeight.w600)),
|
|
|
|
),
|
|
|
|
Container(
|
|
|
|
alignment: Alignment.center,
|
|
|
|
height: 40.0,
|
|
|
|
margin: EdgeInsets.only(left: 20.0, right: 20.0, top: 20.0),
|
|
|
|
child: Flex(
|
|
|
|
direction: Axis.horizontal,
|
|
|
|
children: <Widget>[
|
|
|
|
Expanded(
|
|
|
|
child: DefaultButton(
|
|
|
|
TranslationBase.of(context).cancel,
|
|
|
|
() {
|
|
|
|
Navigator.pop(context, null);
|
|
|
|
},
|
|
|
|
color: CustomColors.accentColor,
|
|
|
|
textColor: Colors.white,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
mWidth(10.0),
|
|
|
|
Expanded(
|
|
|
|
child: DefaultButton(
|
|
|
|
TranslationBase.of(context).confirm,
|
|
|
|
() {
|
|
|
|
Navigator.pop(context, widget.patientShareResponse);
|
|
|
|
},
|
|
|
|
color: CustomColors.green,
|
|
|
|
textColor: Colors.white,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
),
|
|
|
|
),
|
|
|
|
]),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
_getNormalText(text) {
|
|
|
|
return Container(
|
|
|
|
margin: EdgeInsets.only(top: 10.0, right: 10.0),
|
|
|
|
child: Text(text, style: TextStyle(fontSize: 13, letterSpacing: 0.5, color: Colors.black)),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
TextStyle getTextStyle() {
|
|
|
|
return TextStyle(color: Colors.grey[700], fontSize: 13.0, fontWeight: FontWeight.w600);
|
|
|
|
}
|
|
|
|
|
|
|
|
String getDate(String date) {
|
|
|
|
DateTime dateObj = DateUtil.convertStringToDate(date);
|
|
|
|
return DateUtil.getDayMonthYearDateFormatted(dateObj) +
|
|
|
|
" " +
|
|
|
|
dateObj.hour.toString() +
|
|
|
|
":" +
|
|
|
|
getMinute(dateObj);
|
|
|
|
}
|
|
|
|
|
|
|
|
String getMinute(DateTime dateObj) {
|
|
|
|
if (dateObj.minute == 0) {
|
|
|
|
return dateObj.minute.toString() + "0";
|
|
|
|
} else {
|
|
|
|
return dateObj.minute.toString();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|