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 { @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: [ 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: [ 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(); } } }