Merge branch 'master' of gitlab.com:Cloud_Solution/driver-app into setting_branch
# Conflicts: # lib/pages/delivery/information_page.dartsetting_branch
commit
a928e9f995
@ -0,0 +1,158 @@
|
||||
class DeliverdOrderResModel {
|
||||
int rowID;
|
||||
int orderID;
|
||||
String firstName;
|
||||
String middleName;
|
||||
String lastName;
|
||||
int gender;
|
||||
String nationalityID;
|
||||
String mobileNumber;
|
||||
String preferredLanguage;
|
||||
int driverID;
|
||||
int statusID;
|
||||
bool ispaused;
|
||||
int groupID;
|
||||
String description;
|
||||
String descriptionN;
|
||||
double longitude;
|
||||
double latitude;
|
||||
Null amount;
|
||||
String orderCreatedOn;
|
||||
int ePharmacyOrderNo;
|
||||
int projectID;
|
||||
String appointmentNo;
|
||||
String dischargeID;
|
||||
String patientID;
|
||||
bool patientOutSA;
|
||||
int channel;
|
||||
double distanceInKilometers;
|
||||
List<ItemsQuantitiesList> itemsQuantitiesList;
|
||||
|
||||
DeliverdOrderResModel(
|
||||
{this.rowID,
|
||||
this.orderID,
|
||||
this.firstName,
|
||||
this.middleName,
|
||||
this.lastName,
|
||||
this.gender,
|
||||
this.nationalityID,
|
||||
this.mobileNumber,
|
||||
this.preferredLanguage,
|
||||
this.driverID,
|
||||
this.statusID,
|
||||
this.ispaused,
|
||||
this.groupID,
|
||||
this.description,
|
||||
this.descriptionN,
|
||||
this.longitude,
|
||||
this.latitude,
|
||||
this.amount,
|
||||
this.orderCreatedOn,
|
||||
this.ePharmacyOrderNo,
|
||||
this.projectID,
|
||||
this.appointmentNo,
|
||||
this.dischargeID,
|
||||
this.patientID,
|
||||
this.patientOutSA,
|
||||
this.channel,
|
||||
this.distanceInKilometers,
|
||||
this.itemsQuantitiesList});
|
||||
|
||||
DeliverdOrderResModel.fromJson(Map<String, dynamic> json) {
|
||||
rowID = json['RowID'];
|
||||
orderID = json['OrderID'];
|
||||
firstName = json['FirstName'];
|
||||
middleName = json['MiddleName'];
|
||||
lastName = json['LastName'];
|
||||
gender = json['Gender'];
|
||||
nationalityID = json['NationalityID'];
|
||||
mobileNumber = json['MobileNumber'];
|
||||
preferredLanguage = json['PreferredLanguage'];
|
||||
driverID = json['DriverID'];
|
||||
statusID = json['StatusID'];
|
||||
ispaused = json['Ispaused'];
|
||||
groupID = json['GroupID'];
|
||||
description = json['Description'];
|
||||
descriptionN = json['DescriptionN'];
|
||||
longitude = json['Longitude'];
|
||||
latitude = json['Latitude'];
|
||||
amount = json['Amount'];
|
||||
orderCreatedOn = json['OrderCreatedOn'];
|
||||
ePharmacyOrderNo = json['ePharmacyOrderNo'];
|
||||
projectID = json['ProjectID'];
|
||||
appointmentNo = json['AppointmentNo'];
|
||||
dischargeID = json['DischargeID'];
|
||||
patientID = json['PatientID'];
|
||||
patientOutSA = json['PatientOutSA'];
|
||||
channel = json['Channel'];
|
||||
distanceInKilometers = json['DistanceInKilometers'];
|
||||
if (json['ItemsQuantitiesList'] != null) {
|
||||
itemsQuantitiesList = new List<ItemsQuantitiesList>();
|
||||
json['ItemsQuantitiesList'].forEach((v) {
|
||||
itemsQuantitiesList.add(new ItemsQuantitiesList.fromJson(v));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['RowID'] = this.rowID;
|
||||
data['OrderID'] = this.orderID;
|
||||
data['FirstName'] = this.firstName;
|
||||
data['MiddleName'] = this.middleName;
|
||||
data['LastName'] = this.lastName;
|
||||
data['Gender'] = this.gender;
|
||||
data['NationalityID'] = this.nationalityID;
|
||||
data['MobileNumber'] = this.mobileNumber;
|
||||
data['PreferredLanguage'] = this.preferredLanguage;
|
||||
data['DriverID'] = this.driverID;
|
||||
data['StatusID'] = this.statusID;
|
||||
data['Ispaused'] = this.ispaused;
|
||||
data['GroupID'] = this.groupID;
|
||||
data['Description'] = this.description;
|
||||
data['DescriptionN'] = this.descriptionN;
|
||||
data['Longitude'] = this.longitude;
|
||||
data['Latitude'] = this.latitude;
|
||||
data['Amount'] = this.amount;
|
||||
data['OrderCreatedOn'] = this.orderCreatedOn;
|
||||
data['ePharmacyOrderNo'] = this.ePharmacyOrderNo;
|
||||
data['ProjectID'] = this.projectID;
|
||||
data['AppointmentNo'] = this.appointmentNo;
|
||||
data['DischargeID'] = this.dischargeID;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['PatientOutSA'] = this.patientOutSA;
|
||||
data['Channel'] = this.channel;
|
||||
data['DistanceInKilometers'] = this.distanceInKilometers;
|
||||
if (this.itemsQuantitiesList != null) {
|
||||
data['ItemsQuantitiesList'] =
|
||||
this.itemsQuantitiesList.map((v) => v.toJson()).toList();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
class ItemsQuantitiesList {
|
||||
String itemName;
|
||||
String itemNameN;
|
||||
int productID;
|
||||
int quantity;
|
||||
|
||||
ItemsQuantitiesList(
|
||||
{this.itemName, this.itemNameN, this.productID, this.quantity});
|
||||
|
||||
ItemsQuantitiesList.fromJson(Map<String, dynamic> json) {
|
||||
itemName = json['ItemName'];
|
||||
itemNameN = json['ItemNameN'];
|
||||
productID = json['ProductID'];
|
||||
quantity = json['Quantity'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ItemName'] = this.itemName;
|
||||
data['ItemNameN'] = this.itemNameN;
|
||||
data['ProductID'] = this.productID;
|
||||
data['Quantity'] = this.quantity;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -0,0 +1,156 @@
|
||||
import 'package:driverapp/core/viewModels/orders_view_model.dart';
|
||||
import 'package:driverapp/pages/delivery/information_page.dart';
|
||||
import 'package:driverapp/widgets/data_display/circle-container.dart';
|
||||
import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:driverapp/widgets/others/rounded_container.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hexcolor/hexcolor.dart';
|
||||
|
||||
import '../base/base_view.dart';
|
||||
|
||||
class DeliverdOrdersPage extends StatefulWidget {
|
||||
@override
|
||||
_DeliverdOrdersPageState createState() => _DeliverdOrdersPageState();
|
||||
}
|
||||
|
||||
class _DeliverdOrdersPageState extends State<DeliverdOrdersPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BaseView<OrdersViewModel>(
|
||||
onModelReady: (model) => model.getDeliverdOrders(),
|
||||
builder: (BuildContext context, OrdersViewModel model, Widget child) =>
|
||||
AppScaffold(
|
||||
isShowAppBar: true,
|
||||
appBarTitle: 'Delivered List',
|
||||
titleColor: Colors.black,
|
||||
body: Column(
|
||||
children: <Widget>[
|
||||
SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
Expanded(
|
||||
child: ListView.builder(
|
||||
shrinkWrap: true,
|
||||
scrollDirection: Axis.vertical,
|
||||
itemCount: model.deliverdOrders == null
|
||||
? 0
|
||||
: model.deliverdOrders.length,
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 12.2),
|
||||
child: InkWell(
|
||||
child: RoundedContainer(
|
||||
raduis: 25.0,
|
||||
height: MediaQuery.of(context).orientation ==
|
||||
Orientation.portrait
|
||||
? MediaQuery.of(context).size.height * 0.120
|
||||
: MediaQuery.of(context).size.height * 0.209,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
flex: 1,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsets.only(left: 15.0, top: 14.0),
|
||||
child: Image.asset(
|
||||
'assets/images/location.png',
|
||||
height: MediaQuery.of(context)
|
||||
.orientation ==
|
||||
Orientation.portrait
|
||||
? MediaQuery.of(context).size.height *
|
||||
0.06
|
||||
: MediaQuery.of(context).size.height *
|
||||
0.11,
|
||||
width: MediaQuery.of(context)
|
||||
.orientation ==
|
||||
Orientation.portrait
|
||||
? MediaQuery.of(context).size.width *
|
||||
0.05
|
||||
: MediaQuery.of(context).size.width *
|
||||
0.09,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
if (model.orders.length != 0)
|
||||
Expanded(
|
||||
flex: 5,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 20.0),
|
||||
child: Text(
|
||||
model.deliverdOrders[index].firstName +
|
||||
' ' +
|
||||
model.orders[index].lastName,
|
||||
style: TextStyle(
|
||||
fontSize: 18.0,
|
||||
color: Hexcolor("#343333"),
|
||||
fontWeight: FontWeight.bold),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
model.deliverdOrders[index].mobileNumber,
|
||||
style: TextStyle(
|
||||
color: Color(0xff30B7B9),
|
||||
fontWeight: FontWeight.w600,
|
||||
fontSize: 15.0,
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Text(
|
||||
model.deliverdOrders[index].orderID
|
||||
.toString(),
|
||||
style: TextStyle(
|
||||
fontSize: 18.0,
|
||||
fontWeight: FontWeight.w400,
|
||||
letterSpacing: 8.0),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsets.all(8.0),
|
||||
child: CircleContainer(
|
||||
child: Text(
|
||||
model.deliverdOrders[index]
|
||||
.distanceInKilometers
|
||||
.toString() +
|
||||
'\nK.m\naway',
|
||||
style: TextStyle(
|
||||
color: Color(0xff42B6AD),
|
||||
fontWeight: FontWeight.w800,
|
||||
fontStyle: FontStyle.normal),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
// onTap: () {
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// MaterialPageRoute(
|
||||
// builder: (context) =>
|
||||
// InformationPage(model.orders[index])));
|
||||
// },
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,150 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:driverapp/app-icons/driver_app_icons.dart';
|
||||
import 'package:driverapp/core/viewModels/project_view_model.dart';
|
||||
import 'package:driverapp/root_page.dart';
|
||||
import 'package:driverapp/widgets/others/app_scaffold_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class SplashScreenPage extends StatefulWidget {
|
||||
@override
|
||||
_SplashScreenPageState createState() => _SplashScreenPageState();
|
||||
}
|
||||
|
||||
class _SplashScreenPageState extends State<SplashScreenPage> {
|
||||
startTime() async {
|
||||
var _duration = new Duration(seconds: 1);
|
||||
return new Timer(_duration, navigationPage);
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
startTime();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
ProjectViewModel projectViewModel = Provider.of(context);
|
||||
|
||||
return AppScaffold(
|
||||
isShowAppBar: false,
|
||||
appBarColor: Color(0xff30B7B9),
|
||||
body: SingleChildScrollView(
|
||||
child: Center(
|
||||
child: Column(
|
||||
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: <Widget>[
|
||||
FractionallySizedBox(
|
||||
widthFactor: 0.80,
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
SizedBox(
|
||||
height: 200,
|
||||
),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
child: Icon(
|
||||
DriverApp.logo,
|
||||
size: 110,
|
||||
color: Colors.white,
|
||||
),
|
||||
margin: EdgeInsets.only(
|
||||
right: projectViewModel.isArabic
|
||||
? 0
|
||||
: MediaQuery.of(context).size.width * 0.15,
|
||||
left: !projectViewModel.isArabic
|
||||
? 0
|
||||
: MediaQuery.of(context).size.width * 0.15),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 20,
|
||||
),
|
||||
Column(
|
||||
children: <Widget>[
|
||||
Text(
|
||||
"Driver",
|
||||
style: TextStyle(
|
||||
fontSize: 70,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: Colors.white),
|
||||
),
|
||||
Text(
|
||||
"Delivery",
|
||||
style: TextStyle(
|
||||
fontSize: 50,
|
||||
letterSpacing: 1,
|
||||
color: Colors.white),
|
||||
),
|
||||
Text(
|
||||
"APP",
|
||||
style: TextStyle(
|
||||
fontSize: 53,
|
||||
letterSpacing: 53,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w400),
|
||||
),
|
||||
],
|
||||
),
|
||||
SizedBox(
|
||||
height: 280,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
Center(
|
||||
child: FractionallySizedBox(
|
||||
widthFactor: 0.80,
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
Column(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 0),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: <Widget>[
|
||||
Expanded(
|
||||
child: Center(
|
||||
child: Text(
|
||||
"Powered by Cloud Solutions",
|
||||
style: TextStyle(
|
||||
fontSize: 13, color: Colors.white),
|
||||
),
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 10,
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void navigationPage() {
|
||||
Navigator.pushReplacement(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => RootPage(),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue