Updates & fixes

merge-update-with-lab-changes
haroon amjad 4 years ago
parent 57ea450662
commit 62974b7b72

@ -25,9 +25,9 @@ class PrescriptionDeliveryService extends BaseService {
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
body['latitude'] = latitude; body['latitude'] = latitude;
body['longitude'] = longitude; body['longitude'] = longitude;
body['AppointmentNo'] = appointmentNo; body['AppointmentNo'] = appointmentNo.toString();
body['CreatedBy'] = createdBy; // body['CreatedBy'] = createdBy;
body['DischargeID'] = dischargeID; body['DischargeID'] = dischargeID.toString();
await baseAppClient.post(ADD_PRESCRIPTION_ORDER_RC, onSuccess: (dynamic response, int statusCode) { await baseAppClient.post(ADD_PRESCRIPTION_ORDER_RC, onSuccess: (dynamic response, int statusCode) {
var asd = ""; var asd = "";
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/config/config.dart';
import 'package:diplomaticquarterapp/config/shared_pref_kay.dart'; import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/Prescriptions.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/perscription_pharmacy.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/perscription_pharmacy.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart';
@ -16,8 +17,9 @@ import 'package:flutter/cupertino.dart';
class PrescriptionsService extends BaseService { class PrescriptionsService extends BaseService {
List<Prescriptions> prescriptionsList = List(); List<Prescriptions> prescriptionsList = List();
List<PrescriptionReportINP> prescriptionReportListINP = List(); List<PrescriptionReportINP> prescriptionReportListINP = List();
List<PrescriptionsOrder> prescriptionsOrderList = List(); List<GetCMCAllOrdersResponseModel> prescriptionsOrderList = List();
var isMedDeliveryAllowed; var isMedDeliveryAllowed;
Future getPrescriptions() async { Future getPrescriptions() async {
hasError = false; hasError = false;
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
@ -36,10 +38,24 @@ class PrescriptionsService extends BaseService {
Future getPrescriptionsOrders() async { Future getPrescriptionsOrders() async {
prescriptionsOrderList.clear(); prescriptionsOrderList.clear();
Map<String, dynamic> body = Map(); Map<String, dynamic> body = Map();
body['isDentalAllowedBackend'] = false; // body['isDentalAllowedBackend'] = false;
await baseAppClient.post(GET_PRESCRIPTIONS_ALL_ORDERS, onSuccess: (dynamic response, int statusCode) { await baseAppClient.post(GET_PRESCRIPTIONS_ALL_ORDERS, onSuccess: (dynamic response, int statusCode) {
response['PatientER_GetPatientAllPresOrdersList'].forEach((prescriptionsOrder) { response['PatientER_GetPatientAllPresOrdersList'].forEach((prescriptionsOrder) {
prescriptionsOrderList.add(PrescriptionsOrder.fromJson(prescriptionsOrder)); // prescriptionsOrderList.add(PrescriptionsOrder.fromJson(prescriptionsOrder));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: body);
}
Future getPrescriptionsOrdersRC() async {
prescriptionsOrderList.clear();
Map<String, dynamic> body = Map();
// body['isDentalAllowedBackend'] = false;
await baseAppClient.post(GET_ALL_PRESCRIPTION_ORDERS_RC, onSuccess: (dynamic response, int statusCode) {
response['response'].forEach((prescriptionsOrder) {
prescriptionsOrderList.add(GetCMCAllOrdersResponseModel.fromJson(prescriptionsOrder));
}); });
}, onFailure: (String error, int statusCode) { }, onFailure: (String error, int statusCode) {
hasError = true; hasError = true;

@ -1,3 +1,4 @@
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/GetCMCAllOrdersResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/perscription_pharmacy.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/perscription_pharmacy.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart';
import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_enh.dart'; import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_enh.dart';
@ -26,7 +27,7 @@ class PrescriptionsViewModel extends BaseViewModel {
List<Prescriptions> get prescriptionsList => _prescriptionsService.prescriptionsList; List<Prescriptions> get prescriptionsList => _prescriptionsService.prescriptionsList;
List<PrescriptionsOrder> get prescriptionsHistory => _prescriptionsService.prescriptionsOrderList; List<GetCMCAllOrdersResponseModel> get prescriptionsHistory => _prescriptionsService.prescriptionsOrderList;
List<PharmacyPrescriptions> get pharmacyPrescriptionsList => _prescriptionsService.pharmacyPrescriptionsList; List<PharmacyPrescriptions> get pharmacyPrescriptionsList => _prescriptionsService.pharmacyPrescriptionsList;
@ -79,7 +80,8 @@ class PrescriptionsViewModel extends BaseViewModel {
getPrescriptionsOrders({bool showLoading = false}) async { getPrescriptionsOrders({bool showLoading = false}) async {
setState(ViewState.Busy); setState(ViewState.Busy);
Future.delayed(new Duration(milliseconds: 300)).then((value) async { Future.delayed(new Duration(milliseconds: 300)).then((value) async {
await _prescriptionsService.getPrescriptionsOrders(); // await _prescriptionsService.getPrescriptionsOrders();
await _prescriptionsService.getPrescriptionsOrdersRC();
if (_prescriptionsService.hasError) { if (_prescriptionsService.hasError) {
error = _prescriptionsService.error; error = _prescriptionsService.error;
setState(ViewState.ErrorLocal); setState(ViewState.ErrorLocal);

@ -27,6 +27,8 @@ class _HospitalsPageState extends State<HealthWeatherIndicator> {
LocationUtils locationUtils; LocationUtils locationUtils;
var weather = '--'; var weather = '--';
ProjectViewModel projectViewModel;
@override @override
void initState() { void initState() {
locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context); locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context);
@ -37,7 +39,7 @@ class _HospitalsPageState extends State<HealthWeatherIndicator> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context); projectViewModel = Provider.of(context);
return BaseView<WeatherViewModel>( return BaseView<WeatherViewModel>(
onModelReady: (model) => model.getWeatherData(), onModelReady: (model) => model.getWeatherData(),
allowAny: true, allowAny: true,
@ -131,7 +133,7 @@ class _HospitalsPageState extends State<HealthWeatherIndicator> {
padding: EdgeInsets.all(15), padding: EdgeInsets.all(15),
child: Column( child: Column(
children: mode.weatherIndicatorData.map((data) { children: mode.weatherIndicatorData.map((data) {
return WeatherSlider(data); return WeatherSlider(data, projectViewModel);
}).toList())) }).toList()))
])) ]))
: Center(child: AppCircularProgressIndicator())), : Center(child: AppCircularProgressIndicator())),

@ -1,5 +1,6 @@
import 'package:diplomaticquarterapp/pages/login/login-type.dart'; import 'package:diplomaticquarterapp/pages/login/login-type.dart';
import 'package:diplomaticquarterapp/pages/login/register.dart'; import 'package:diplomaticquarterapp/pages/login/register.dart';
import 'package:diplomaticquarterapp/pages/login/register_new.dart';
import 'package:diplomaticquarterapp/theme/colors.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/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
@ -78,7 +79,7 @@ class _WelcomeLogin extends State<WelcomeLogin> {
child: DefaultButton( child: DefaultButton(
TranslationBase.of(context).no, TranslationBase.of(context).no,
() => { () => {
Navigator.of(context).push(FadePage(page: Register())), Navigator.of(context).push(FadePage(page: RegisterNew())),
}, },
color: CustomColors.accentColor, color: CustomColors.accentColor,
textColor: Colors.white, textColor: Colors.white,

@ -9,9 +9,10 @@ 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/uitl/utils_new.dart'; import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/show_zoom_image_dialog.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -101,23 +102,43 @@ class PrescriptionOrderOverview extends StatelessWidget {
prescriptionReportEnhList.length, prescriptionReportEnhList.length,
(index) => Container( (index) => Container(
margin: EdgeInsets.all(0.0), margin: EdgeInsets.all(0.0),
decoration: cardRadius(0), // decoration: cardRadius(0),
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Container( InkWell(
margin: EdgeInsets.only(bottom: 10.0), onTap: () {
decoration: BoxDecoration( showZoomImageDialog(context, prescriptionReportEnhList[index].imageSRCUrl);
border: Border.all(width: 1.0, color: Color(0xffEBEBEB)), },
borderRadius: BorderRadius.all(Radius.circular(30.0)), child: Stack(
), alignment: Alignment.center,
child: ClipRRect( children: [
borderRadius: BorderRadius.all(Radius.circular(30)), Container(
child: Image.network( margin: EdgeInsets.only(bottom: 10.0),
prescriptionReportEnhList[index].imageSRCUrl, decoration: BoxDecoration(
fit: BoxFit.cover, border: Border.all(width: 1.0, color: Color(0xffEBEBEB)),
width: 48, borderRadius: BorderRadius.all(Radius.circular(30.0)),
height: 48, ),
), child: ClipRRect(
borderRadius: BorderRadius.all(Radius.circular(30)),
child: Image.network(
prescriptionReportEnhList[index].imageSRCUrl,
fit: BoxFit.cover,
width: 48,
height: 48,
),
),
),
Container(
margin: EdgeInsets.only(bottom: 10.0),
child: Icon(
Icons.search,
size: 18,
color: Colors.white,
),
padding: EdgeInsets.all(3),
decoration: containerRadius(Colors.black.withOpacity(0.3), 200),
)
],
), ),
), ),
SizedBox(width: 14), SizedBox(width: 14),
@ -153,15 +174,14 @@ class PrescriptionOrderOverview extends StatelessWidget {
), ),
), ),
Container( Container(
decoration: cardRadius(0), // decoration: cardRadius(0),
margin: EdgeInsets.zero, margin: EdgeInsets.zero,
child: Container( child: Container(
width: double.infinity, width: double.infinity,
margin: EdgeInsets.all(12), margin: EdgeInsets.all(12),
child: SecondaryButton( child: DefaultButton(
label: TranslationBase.of(context).submit.toUpperCase(), TranslationBase.of(context).submit.toUpperCase(),
color: CustomColors.accentColor, () async {
onTap: () async {
showDialog( showDialog(
context: context, context: context,
child: ConfirmWithMessageDialog( child: ConfirmWithMessageDialog(

@ -23,6 +23,7 @@ import 'package:provider/provider.dart';
class PrescriptionDetailsPage extends StatelessWidget { class PrescriptionDetailsPage extends StatelessWidget {
final PrescriptionReport prescriptionReport; final PrescriptionReport prescriptionReport;
final Prescriptions prescriptions; final Prescriptions prescriptions;
PrescriptionDetailsPage({Key key, this.prescriptionReport, this.prescriptions}); PrescriptionDetailsPage({Key key, this.prescriptionReport, this.prescriptions});
@override @override
@ -111,14 +112,18 @@ class PrescriptionDetailsPage extends StatelessWidget {
decoration: cardRadius(2000), decoration: cardRadius(2000),
), ),
Container( Container(
child: Icon(Icons.search,size: 18,color: Colors.white,), child: Icon(
Icons.search,
size: 18,
color: Colors.white,
),
padding: EdgeInsets.all(6), padding: EdgeInsets.all(6),
decoration: containerRadius(Colors.black.withOpacity(0.3), 200), decoration: containerRadius(Colors.black.withOpacity(0.3), 200),
) )
], ],
), ),
onTap: (){ onTap: () {
showZoomImageDialog(context, prescriptionReport.imageSRCUrl); showZoomImageDialog(context, prescriptionReport.imageSRCUrl);
}, },
), ),
SizedBox(width: 12), SizedBox(width: 12),

@ -1,12 +1,11 @@
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/prescriptions_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/medical/prescriptions/prescriptions_history_details_page.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.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/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@ -25,126 +24,130 @@ class PrescriptionsHistoryPage extends StatelessWidget {
onModelReady: (model) => model.getPrescriptionsOrders(showLoading: true), onModelReady: (model) => model.getPrescriptionsOrders(showLoading: true),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
baseViewModel: prescriptionsViewModel, baseViewModel: prescriptionsViewModel,
body: ListView.separated( body: model.state != ViewState.Busy
physics: BouncingScrollPhysics(), ? prescriptionsViewModel.prescriptionsHistory.length > 0
padding: EdgeInsets.all(21), ? ListView.separated(
separatorBuilder: (context, index) { physics: BouncingScrollPhysics(),
return SizedBox(height: 12); padding: EdgeInsets.all(21),
}, separatorBuilder: (context, index) {
itemBuilder: (context, index) { return SizedBox(height: 12);
int status = prescriptionsViewModel.prescriptionsHistory[index].status; },
String _statusDisp = projectViewModel.isArabic ? prescriptionsViewModel.prescriptionsHistory[index].descriptionN : prescriptionsViewModel.prescriptionsHistory[index].description; itemBuilder: (context, index) {
Color _color; int status = prescriptionsViewModel.prescriptionsHistory[index].statusId;
if (status == 1) { String _statusDisp = prescriptionsViewModel.prescriptionsHistory[index].statusText;
//pending Color _color;
_color = Color(0xffCC9B14); if (status == 1) {
} else if (status == 2) { //pending
//processing _color = Color(0xffCC9B14);
_color = Color(0xff2E303A); } else if (status == 2) {
} else if (status == 3) { //processing
//completed _color = Color(0xff2E303A);
_color = Color(0xff359846); } else if (status == 3) {
} else if (status == 4) { //completed
//cancel // Rejected _color = Color(0xff359846);
_color = Color(0xffD02127); } else if (status == 4 || status == 6 || status == 7) {
} //cancel // Rejected
_color = Color(0xffD02127);
}
return InkWell( return InkWell(
onTap: () async { onTap: () async {
final result = await Navigator.push( // final result = await Navigator.push(
context, // context,
FadePage( // FadePage(
page: PrescriptionsHistoryDetailsPage( // page: PrescriptionsHistoryDetailsPage(
prescriptionsOrder: prescriptionsViewModel.prescriptionsHistory[index], // prescriptionsOrder: prescriptionsViewModel.prescriptionsHistory[index],
), // ),
), // ),
); // );
if (result != null) { // if (result != null) {
showOrderLog(); // showOrderLog();
} // }
}, },
child: Container( child: Container(
height: 65, height: 65,
decoration: BoxDecoration( decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(10.0), Radius.circular(10.0),
),
boxShadow: [
BoxShadow(
color: Color(0xff000000).withOpacity(.05),
blurRadius: 27,
offset: Offset(0, -3),
),
],
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Container(
width: 6,
decoration: BoxDecoration(
color: _color,
borderRadius: BorderRadius.only(
topLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0),
bottomLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0),
topRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0),
bottomRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0),
),
),
),
Expanded(
child: Padding(
padding: EdgeInsets.only(left: projectViewModel.isArabic ? 6 : 12, right: projectViewModel.isArabic ? 12 : 6),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
_statusDisp,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: _color, letterSpacing: -0.4, height: 16 / 10),
),
Text(
'${TranslationBase.of(context).orderNo}. ${prescriptionsViewModel.prescriptionsHistory[index].iD}',
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
),
],
),
), ),
Column( boxShadow: [
mainAxisSize: MainAxisSize.min, BoxShadow(
crossAxisAlignment: CrossAxisAlignment.end, color: Color(0xff000000).withOpacity(.05),
children: [ blurRadius: 27,
Text( offset: Offset(0, -3),
DateUtil.getDayMonthYearDateFormatted(prescriptionsViewModel.prescriptionsHistory[index].createdOn), ),
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10), ],
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Container(
width: 6,
decoration: BoxDecoration(
color: _color,
borderRadius: BorderRadius.only(
topLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0),
bottomLeft: projectViewModel.isArabic ? Radius.circular(0.0) : Radius.circular(10.0),
topRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0),
bottomRight: projectViewModel.isArabic ? Radius.circular(10.0) : Radius.circular(0.0),
),
), ),
Text( ),
DateUtil.formatDateToTimeLang(prescriptionsViewModel.prescriptionsHistory[index].createdOn, false), Expanded(
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10), child: Padding(
padding: EdgeInsets.only(left: projectViewModel.isArabic ? 6 : 12, right: projectViewModel.isArabic ? 12 : 6),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
_statusDisp,
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: _color, letterSpacing: -0.4, height: 16 / 10),
),
Text(
'${TranslationBase.of(context).orderNo}. ${prescriptionsViewModel.prescriptionsHistory[index].iD}',
style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
),
],
),
),
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
DateUtil.getDayMonthYearDateFormatted(DateTime.tryParse(prescriptionsViewModel.prescriptionsHistory[index].created)),
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.4, height: 16 / 10),
),
Text(
DateUtil.formatDateToTimeLang(DateTime.tryParse(prescriptionsViewModel.prescriptionsHistory[index].created), false),
style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, color: Color(0xff575757), letterSpacing: -0.4, height: 16 / 10),
),
],
)
],
),
), ),
], ),
) Icon(
], Icons.arrow_forward,
), size: 16,
), ),
), mWidth(6),
Icon( ],
Icons.arrow_forward, ),
size: 16, ));
), },
mWidth(6), itemCount: prescriptionsViewModel.prescriptionsHistory.length,
], )
), : getNoDataWidget(context)
)); : Container(),
},
itemCount: prescriptionsViewModel.prescriptionsHistory.length,
),
)); ));
} }
} }

@ -90,7 +90,7 @@ class _HomePrescriptionsPageState extends State<HomePrescriptionsPage> with Sing
prescriptionsViewModel: model, prescriptionsViewModel: model,
showOrderLog: () async { showOrderLog: () async {
_tabController.animateTo(2); _tabController.animateTo(2);
await model.getPrescriptionsOrders(showLoading: true); // await model.getPrescriptionsOrders(showLoading: true);
setState(() {}); setState(() {});
}, },
), ),
@ -99,7 +99,7 @@ class _HomePrescriptionsPageState extends State<HomePrescriptionsPage> with Sing
prescriptionsViewModel: model, prescriptionsViewModel: model,
showOrderLog: () async { showOrderLog: () async {
_tabController.animateTo(2); _tabController.animateTo(2);
await model.getPrescriptionsOrders(showLoading: true); // await model.getPrescriptionsOrders(showLoading: true);
setState(() {}); setState(() {});
}, },
), ),

@ -14,11 +14,12 @@ import '../show_zoom_image_dialog.dart';
/// [height] the avatar height /// [height] the avatar height
/// [onTap] on tap function /// [onTap] on tap function
class LargeAvatar extends StatelessWidget { class LargeAvatar extends StatelessWidget {
LargeAvatar({Key key, @required this.name, this.url, this.disableProfileView: false, this.radius = 70.0, this.width = 70, this.height = 60, this.onTap}) : super(key: key); LargeAvatar({Key key, @required this.name, this.url, this.disableProfileView: false, this.radius = 70.0, this.width = 70, this.height = 60, this.onTap, this.isAppointmentAvatar: false}) : super(key: key);
final String name; final String name;
final String url; final String url;
final bool disableProfileView; final bool disableProfileView;
final bool isAppointmentAvatar;
final double radius; final double radius;
final double width; final double width;
final double height; final double height;
@ -38,7 +39,7 @@ class LargeAvatar extends StatelessWidget {
width: width, width: width,
height: height, height: height,
), ),
if (!disableProfileView) if (!disableProfileView && !isAppointmentAvatar)
Container( Container(
child: Icon(Icons.search,size: 18,color: Colors.white,), child: Icon(Icons.search,size: 18,color: Colors.white,),
padding: EdgeInsets.all(6), padding: EdgeInsets.all(6),
@ -62,7 +63,7 @@ class LargeAvatar extends StatelessWidget {
return InkWell( return InkWell(
onTap: disableProfileView onTap: disableProfileView
? null ? null
: () { : isAppointmentAvatar ? onTap : () {
print("ssssss " + url.trim()); print("ssssss " + url.trim());
showZoomImageDialog(context, url.trim() ?? ""); showZoomImageDialog(context, url.trim() ?? "");
}, },

@ -35,6 +35,7 @@ class _TimeLineViewState extends State<TimeLineView> {
List<DateObj> dateObjs = []; List<DateObj> dateObjs = [];
DateObj selectedDateObj = null; DateObj selectedDateObj = null;
final authService = new auth.AuthProvider(); final authService = new auth.AuthProvider();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -347,14 +348,15 @@ class TimelineNewWidget extends StatelessWidget {
FadePage( FadePage(
page: AppointmentDetails( page: AppointmentDetails(
appo: appoitmentAllHistoryResul, appo: appoitmentAllHistoryResul,
parentIndex: 2, parentIndex: 2,
))); )));
}, },
name: appoitmentAllHistoryResul.doctorNameObj, name: appoitmentAllHistoryResul.doctorNameObj,
disableProfileView: true, disableProfileView: false,
url: appoitmentAllHistoryResul.doctorImageURL, url: appoitmentAllHistoryResul.doctorImageURL,
width: 30, width: 30,
height: 30, height: 30,
isAppointmentAvatar: true,
), ),
mHeight(6), mHeight(6),
Text( Text(

@ -1,47 +1,29 @@
import 'package:diplomaticquarterapp/core/model/weahter/weather_model.dart'; import 'package:diplomaticquarterapp/core/model/weahter/weather_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart'; import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
class WeatherSlider extends StatelessWidget { class WeatherSlider extends StatelessWidget {
// final width;
// final LinearGradient color;
final GetCityInfoList data; final GetCityInfoList data;
WeatherSlider(this.data);
LinearGradient red = LinearGradient( final ProjectViewModel projectViewModel;
colors: [
Colors.redAccent[100], WeatherSlider(this.data, this.projectViewModel);
Colors.redAccent
]); LinearGradient red = LinearGradient(colors: [Colors.redAccent[100], Colors.redAccent]);
LinearGradient green = LinearGradient( LinearGradient green = LinearGradient(colors: [Colors.greenAccent[100], Colors.greenAccent]);
colors: [ LinearGradient grey = LinearGradient(colors: [Colors.grey[100], Colors.grey]);
Colors.greenAccent[100], LinearGradient orange = LinearGradient(colors: [Colors.orangeAccent[100], Colors.orange]);
Colors.greenAccent LinearGradient yellow = LinearGradient(colors: [Colors.yellow[100], Colors.yellow[600]]);
]);
LinearGradient grey = LinearGradient(
colors: [
Colors.grey[100],
Colors.grey
]);
LinearGradient orange = LinearGradient(
colors: [
Colors.orangeAccent[100],
Colors.orange
]);
LinearGradient yellow = LinearGradient(
colors: [
Colors.yellow[100],
Colors.yellow[600]
]);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
// TODO: implement build // TODO: implement build
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Padding( Padding(padding: EdgeInsets.only(top: 10), child: AppText(data.name)),
padding: EdgeInsets.only(top:10),
child: AppText(data.name)),
AppText( AppText(
data.category, data.category,
fontSize: 24, fontSize: 24,
@ -51,11 +33,8 @@ class WeatherSlider extends StatelessWidget {
child: Stack( child: Stack(
children: [ children: [
Container( Container(
margin: EdgeInsets.only(bottom:10), margin: EdgeInsets.only(bottom: 10),
decoration: BoxDecoration( decoration: BoxDecoration(gradient: LinearGradient(colors: [Colors.grey[100], Colors.grey[400]]), borderRadius: BorderRadius.circular(10)),
gradient: LinearGradient(
colors: [Colors.grey[100], Colors.grey[400]]),
borderRadius: BorderRadius.circular(10)),
height: 15, height: 15,
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
child: SizedBox(), child: SizedBox(),
@ -64,110 +43,200 @@ class WeatherSlider extends StatelessWidget {
top: 0, top: 0,
child: Container( child: Container(
decoration: BoxDecoration( decoration: BoxDecoration(
gradient: data.colorName =='red' ? red : data.colorName =='orange' ? orange : data.colorName =='green' ? green : data.colorName == 'yellow' ? yellow : grey, gradient: data.colorName == 'red'
? red
: data.colorName == 'orange'
? orange
: data.colorName == 'green'
? green
: data.colorName == 'yellow'
? yellow
: grey,
borderRadius: BorderRadius.circular(10)), borderRadius: BorderRadius.circular(10)),
height: 15, height: 15,
width: (MediaQuery.of(context).size.width * (double.parse(data.value) / 10)), width: (MediaQuery.of(context).size.width * (double.parse(data.value) / 10)),
padding: EdgeInsets.all(15), padding: EdgeInsets.all(15),
child: SizedBox(), child: SizedBox(),
)), )),
Positioned(child: Container( projectViewModel.isArabic
height: 0, ? Positioned(
width:0, child: Container(
decoration: ShapeDecoration( height: 0,
color:data.colorName =='red' ? Colors.redAccent : data.colorName =='orange' ? Colors.orangeAccent : data.colorName =='green' ? Colors.greenAccent : data.colorName == 'yellow' ? Colors.yellowAccent : Colors.grey, width: 0,
shape: MessageBorder(), decoration: ShapeDecoration(
color: data.colorName == 'red'
)),top:25, left: (MediaQuery.of(context).size.width * (double.parse(data.value) / 10)),) ? Colors.redAccent
: data.colorName == 'orange'
? Colors.orangeAccent
: data.colorName == 'green'
? Colors.greenAccent
: data.colorName == 'yellow'
? Colors.yellowAccent
: Colors.grey,
shape: MessageBorder(),
)),
top: 25,
right: (MediaQuery.of(context).size.width * (double.parse(data.value) / 10)),
)
: Positioned(
child: Container(
height: 0,
width: 0,
decoration: ShapeDecoration(
color: data.colorName == 'red'
? Colors.redAccent
: data.colorName == 'orange'
? Colors.orangeAccent
: data.colorName == 'green'
? Colors.greenAccent
: data.colorName == 'yellow'
? Colors.yellowAccent
: Colors.grey,
shape: MessageBorder(),
)),
top: 25,
left: (MediaQuery.of(context).size.width * (double.parse(data.value) / 10)),
)
], ],
), ),
), ),
Padding( Padding(
padding: EdgeInsets.only(top:10), padding: EdgeInsets.only(top: 10),
child: data.isValuesReversed == false ? Row( child: data.isValuesReversed == false
mainAxisAlignment: MainAxisAlignment.spaceBetween, ? Row(
children: [ mainAxisAlignment: MainAxisAlignment.spaceBetween,
AppText( children: [
data.categoriesNames.category1, AppText(data.categoriesNames.category1,
fontSize: 12, fontSize: 12,
color: data.categoriesNames.category1== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category1== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category1== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category1== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black color: data.categoriesNames.category1 == data.category && data.colorName == 'red'
), ? Colors.redAccent
AppText( : data.categoriesNames.category1 == data.category && data.colorName == 'orange'
data.categoriesNames.category2, ? Colors.orangeAccent
fontSize: 12, : data.categoriesNames.category1 == data.category && data.colorName == 'green'
color: data.categoriesNames.category2== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category2== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category2== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category2== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black ? Colors.greenAccent
: data.categoriesNames.category1 == data.category && data.colorName == 'yellow'
), ? Colors.yellow[900]
AppText( : Colors.black),
data.categoriesNames.category3, AppText(data.categoriesNames.category2,
fontSize: 12, fontSize: 12,
color: data.categoriesNames.category3== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category3== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category3== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category3== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black color: data.categoriesNames.category2 == data.category && data.colorName == 'red'
? Colors.redAccent
), : data.categoriesNames.category2 == data.category && data.colorName == 'orange'
AppText( ? Colors.orangeAccent
data.categoriesNames.category4, : data.categoriesNames.category2 == data.category && data.colorName == 'green'
fontSize: 12, ? Colors.greenAccent
color: data.categoriesNames.category4== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category4== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category4== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category4== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black : data.categoriesNames.category2 == data.category && data.colorName == 'yellow'
? Colors.yellow[900]
), : Colors.black),
AppText( AppText(data.categoriesNames.category3,
data.categoriesNames.category5, fontSize: 12,
fontSize: 12, color: data.categoriesNames.category3 == data.category && data.colorName == 'red'
color: data.categoriesNames.category5== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category5== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category5== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category5== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black ? Colors.redAccent
: data.categoriesNames.category3 == data.category && data.colorName == 'orange'
), ? Colors.orangeAccent
], : data.categoriesNames.category3 == data.category && data.colorName == 'green'
) : Row( ? Colors.greenAccent
mainAxisAlignment: MainAxisAlignment.spaceBetween, : data.categoriesNames.category3 == data.category && data.colorName == 'yellow'
children: [ ? Colors.yellow[900]
AppText( : Colors.black),
data.categoriesNames.category5, AppText(data.categoriesNames.category4,
fontSize: 12, fontSize: 12,
color: data.categoriesNames.category5== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category5== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category5== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category5== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black color: data.categoriesNames.category4 == data.category && data.colorName == 'red'
), ? Colors.redAccent
AppText( : data.categoriesNames.category4 == data.category && data.colorName == 'orange'
data.categoriesNames.category4, ? Colors.orangeAccent
fontSize: 12, : data.categoriesNames.category4 == data.category && data.colorName == 'green'
color: data.categoriesNames.category4== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category4== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category4== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category4== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black ? Colors.greenAccent
: data.categoriesNames.category4 == data.category && data.colorName == 'yellow'
), ? Colors.yellow[900]
AppText( : Colors.black),
data.categoriesNames.category3, AppText(data.categoriesNames.category5,
fontSize: 12, fontSize: 12,
color: data.categoriesNames.category3== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category3== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category3== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category3== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black color: data.categoriesNames.category5 == data.category && data.colorName == 'red'
? Colors.redAccent
), : data.categoriesNames.category5 == data.category && data.colorName == 'orange'
AppText( ? Colors.orangeAccent
data.categoriesNames.category2, : data.categoriesNames.category5 == data.category && data.colorName == 'green'
fontSize: 12, ? Colors.greenAccent
color: data.categoriesNames.category2== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category2== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category2== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category2== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black : data.categoriesNames.category5 == data.category && data.colorName == 'yellow'
? Colors.yellow[900]
), : Colors.black),
AppText( ],
data.categoriesNames.category1, )
fontSize: 12, : Row(
color: data.categoriesNames.category1== data.category && data.colorName=='red' ? Colors.redAccent : data.categoriesNames.category1== data.category && data.colorName=='orange' ? Colors.orangeAccent : data.categoriesNames.category1== data.category && data.colorName=='green' ? Colors.greenAccent : data.categoriesNames.category1== data.category && data.colorName=='yellow' ? Colors.yellow[900] : Colors.black mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
), AppText(data.categoriesNames.category5,
], fontSize: 12,
)), color: data.categoriesNames.category5 == data.category && data.colorName == 'red'
Padding( ? Colors.redAccent
padding: EdgeInsets.all(15), : data.categoriesNames.category5 == data.category && data.colorName == 'orange'
child:Divider()) ? Colors.orangeAccent
: data.categoriesNames.category5 == data.category && data.colorName == 'green'
? Colors.greenAccent
: data.categoriesNames.category5 == data.category && data.colorName == 'yellow'
? Colors.yellow[900]
: Colors.black),
AppText(data.categoriesNames.category4,
fontSize: 12,
color: data.categoriesNames.category4 == data.category && data.colorName == 'red'
? Colors.redAccent
: data.categoriesNames.category4 == data.category && data.colorName == 'orange'
? Colors.orangeAccent
: data.categoriesNames.category4 == data.category && data.colorName == 'green'
? Colors.greenAccent
: data.categoriesNames.category4 == data.category && data.colorName == 'yellow'
? Colors.yellow[900]
: Colors.black),
AppText(data.categoriesNames.category3,
fontSize: 12,
color: data.categoriesNames.category3 == data.category && data.colorName == 'red'
? Colors.redAccent
: data.categoriesNames.category3 == data.category && data.colorName == 'orange'
? Colors.orangeAccent
: data.categoriesNames.category3 == data.category && data.colorName == 'green'
? Colors.greenAccent
: data.categoriesNames.category3 == data.category && data.colorName == 'yellow'
? Colors.yellow[900]
: Colors.black),
AppText(data.categoriesNames.category2,
fontSize: 12,
color: data.categoriesNames.category2 == data.category && data.colorName == 'red'
? Colors.redAccent
: data.categoriesNames.category2 == data.category && data.colorName == 'orange'
? Colors.orangeAccent
: data.categoriesNames.category2 == data.category && data.colorName == 'green'
? Colors.greenAccent
: data.categoriesNames.category2 == data.category && data.colorName == 'yellow'
? Colors.yellow[900]
: Colors.black),
AppText(data.categoriesNames.category1,
fontSize: 12,
color: data.categoriesNames.category1 == data.category && data.colorName == 'red'
? Colors.redAccent
: data.categoriesNames.category1 == data.category && data.colorName == 'orange'
? Colors.orangeAccent
: data.categoriesNames.category1 == data.category && data.colorName == 'green'
? Colors.greenAccent
: data.categoriesNames.category1 == data.category && data.colorName == 'yellow'
? Colors.yellow[900]
: Colors.black),
],
)),
Padding(padding: EdgeInsets.all(15), child: Divider())
], ],
); );
} }
} }
class MessageBorder extends ShapeBorder { class MessageBorder extends ShapeBorder {
final bool usePadding; final bool usePadding;
final bool reverse; final bool reverse;
MessageBorder({this.usePadding = true, this.reverse =false});
MessageBorder({this.usePadding = true, this.reverse = false});
@override @override
EdgeInsetsGeometry get dimensions => EdgeInsets.only(bottom: usePadding? 0 : 0); EdgeInsetsGeometry get dimensions => EdgeInsets.only(bottom: usePadding ? 0 : 0);
@override @override
Path getInnerPath(Rect rect, {TextDirection textDirection}) => null; Path getInnerPath(Rect rect, {TextDirection textDirection}) => null;
@ -175,17 +244,16 @@ class MessageBorder extends ShapeBorder {
@override @override
Path getOuterPath(Rect rect, {TextDirection textDirection}) { Path getOuterPath(Rect rect, {TextDirection textDirection}) {
rect = Rect.fromPoints(rect.bottomRight, rect.bottomLeft - Offset(0, 0)); rect = Rect.fromPoints(rect.bottomRight, rect.bottomLeft - Offset(0, 0));
if(!reverse) { if (!reverse) {
return Path() return Path()
..addRRect( ..addRRect(RRect.fromRectAndRadius(rect, Radius.circular(rect.height / 2)))
RRect.fromRectAndRadius(rect, Radius.circular(rect.height / 2)))
..moveTo(rect.topCenter.dx - 10, rect.topCenter.dy) ..moveTo(rect.topCenter.dx - 10, rect.topCenter.dy)
..relativeLineTo(10, -10)..relativeLineTo(10, 10) ..relativeLineTo(10, -10)
..relativeLineTo(10, 10)
..close(); ..close();
}else{ } else {
return Path() return Path()
..addRRect( ..addRRect(RRect.fromRectAndRadius(rect, Radius.circular(rect.height / 2)))
RRect.fromRectAndRadius(rect, Radius.circular(rect.height / 2)))
..moveTo(rect.topCenter.dx, rect.topCenter.dy) ..moveTo(rect.topCenter.dx, rect.topCenter.dy)
..relativeLineTo(10, 20) ..relativeLineTo(10, 20)
..relativeLineTo(20, -20) ..relativeLineTo(20, -20)

Loading…
Cancel
Save