You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.7 KiB
53 lines
1.7 KiB
|
|
import 'package:supplier_new/common/settings.dart';
|
|
import 'package:geolocator/geolocator.dart';
|
|
|
|
class OrderRequestsModel {
|
|
String building_name = '';
|
|
String address = '';
|
|
String type_of_water = '';
|
|
String capacity = '';
|
|
String quantity = '';
|
|
String time = '';
|
|
String averageTime = '';
|
|
String quoted_amount = '';
|
|
String displayAddress='';
|
|
double lat=0;
|
|
double lng=0;
|
|
double distanceInMeters=0;
|
|
double distanceInKm=0.0;
|
|
|
|
OrderRequestsModel();
|
|
|
|
factory OrderRequestsModel.fromJson(Map<String, dynamic> json){
|
|
OrderRequestsModel rtvm = new OrderRequestsModel();
|
|
|
|
rtvm.building_name = json['customer_details']['buildingName'] ?? '';
|
|
rtvm.address = json['customer_details']['profile']['address1'] ?? '';
|
|
rtvm.type_of_water = json['type_of_water'] ?? '';
|
|
rtvm.capacity = json['capacity'] ?? '';
|
|
rtvm.quantity = json['quantity']?? '';
|
|
rtvm.averageTime = json['time'] ?? '';
|
|
rtvm.time = json['my_supplier_entry']['time'] ?? '';
|
|
rtvm.quoted_amount = json['my_supplier_entry']['quoted_amount'].toString() ?? '';
|
|
// Split and trim
|
|
List<String> parts = rtvm.address.split(',').map((e) => e.trim()).toList();
|
|
|
|
// Usually, the locality is the part before the main city (Hyderabad)displayAddress = "";
|
|
if (parts.length >= 2) {
|
|
rtvm.displayAddress = parts[parts.length -4]; // "Banjara Hills"
|
|
}
|
|
rtvm.distanceInMeters = double.parse((Geolocator.distanceBetween(
|
|
rtvm.lat,
|
|
rtvm.lng,
|
|
AppSettings.supplierLatitude,
|
|
AppSettings.supplierLongitude
|
|
) / 1000).toStringAsFixed(2));
|
|
rtvm.distanceInKm = double.parse(( rtvm.distanceInMeters / 1000).toStringAsFixed(1));
|
|
|
|
return rtvm;
|
|
}
|
|
Map<String, dynamic> toJson() => {
|
|
"boreName":this.building_name,
|
|
};
|
|
} |