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.
276 lines
9.6 KiB
276 lines
9.6 KiB
import 'package:flutter/material.dart';
|
|
import 'package:bookatanker/common/settings.dart';
|
|
|
|
|
|
class GetTanksDetailsModel {
|
|
String tank_name = '';
|
|
String capacity='';
|
|
String block_name='';
|
|
String type_of_water='';
|
|
String type='';
|
|
String tank_location='';
|
|
Color cardColor=Colors.white;
|
|
String motorStatus='';
|
|
String EntityMotorStatus='';
|
|
String motorStartedTime='';
|
|
bool isMotor=true;
|
|
String? motor;
|
|
int groupValue = -1;
|
|
List inConnections =[];
|
|
List outConnections=[];
|
|
List inConnectionsForUpdate=[];
|
|
List outConnectionsForUpdate=[];
|
|
List inputConnections=[];
|
|
List inputRadioChecked=[];
|
|
List<String> outputConnections=[];
|
|
List<String> outputtypes=[];
|
|
List<String> inputtypes=[];
|
|
String source='';
|
|
List<bool> motorForUpdateInput1=[];
|
|
bool motorForUpdateInput=false;
|
|
bool isCheckedInput=false;
|
|
bool isCheckedOutput=false;
|
|
int inconnectionsIndex = 0;
|
|
int outconnectionsIndex = 0;
|
|
var showInConnections='';
|
|
var showOutConnections='';
|
|
var showdetailOutputConnections='';
|
|
var showdetailInputConnections='';
|
|
List<bool> outConnectionsCheckboxes=[];
|
|
List<bool> inConnectionsCheckboxes=[];
|
|
List<bool> outConnectionsCheckboxesForUpdate=[];
|
|
List<bool> inConnectionsCheckboxesForUpdate=[];
|
|
List<bool> inConnectionsCheckboxesForUpdateSumpInput=[];
|
|
List<bool> inConnectionsHaveMotor=[];
|
|
List<bool> inConnectionsHaveMotornNew=[];
|
|
List<bool> outConnectionsHaveMotor=[];
|
|
List<bool> outConnectionsHaveMotornNew=[];
|
|
List<bool> inConnectionsHaveMotorForBore=[];
|
|
List<bool> inConnectionsHaveMotorForBoreNew=[];
|
|
List<String> inConnectionsHaveMotorForUi=[];
|
|
List<Color> startButtonColor=<Color>[Colors.green,Colors.greenAccent,Colors.lightGreen];
|
|
List<Color> stoptButtonColor=<Color>[Colors.grey,Colors.grey,Colors.grey];
|
|
String status='';
|
|
String startTime='';
|
|
String stopTime='';
|
|
String hardware_id='';
|
|
String tank_hardware_id='';
|
|
String water_level='';
|
|
Color onButton=Colors.green;
|
|
Color offButton=Colors.grey;
|
|
Color grey=Colors.grey;
|
|
String status1='1';
|
|
String message='';
|
|
String motor_status='';
|
|
String motor_stop_status='';
|
|
String capacityForParse='';
|
|
String minPercentage='';
|
|
String maxPercentage='';
|
|
String tankAutomationMode='';
|
|
String currentWaterLevelPercent='';
|
|
String tank_status='';
|
|
Color textColor=Colors.black;
|
|
Image tank_image=Image(image: const AssetImage('images/100%.png'),);
|
|
|
|
TextEditingController boxIdOutputConnectionsController = TextEditingController();
|
|
TextEditingController boxIdInputConnectionsController = TextEditingController();
|
|
|
|
Widget outputConnectionsBoxId() {
|
|
return Container(
|
|
child: TextFormField(
|
|
cursorColor: Colors.white,
|
|
style: TextStyle(color: primaryColor),
|
|
controller: boxIdOutputConnectionsController,
|
|
decoration: textFormFieldDecorationForBoxId(Icons.add_box,'Enter Box Id'),
|
|
|
|
),
|
|
);
|
|
}
|
|
|
|
Widget inputConnectionsBoxId() {
|
|
return Container(
|
|
child: TextFormField(
|
|
cursorColor: Colors.white,
|
|
style: TextStyle(color: primaryColor),
|
|
controller: boxIdInputConnectionsController,
|
|
decoration: textFormFieldDecorationForBoxId(Icons.add_box,'Enter Box Id'),
|
|
|
|
),
|
|
);
|
|
}
|
|
|
|
|
|
GetTanksDetailsModel();
|
|
|
|
factory GetTanksDetailsModel.fromJson(Map<String, dynamic> json){
|
|
GetTanksDetailsModel rtvm = new GetTanksDetailsModel();
|
|
|
|
rtvm.tank_name = json['tankName'] ?? '';
|
|
rtvm.capacity = json['capacity'] ??'';
|
|
rtvm.capacityForParse =rtvm.capacity. replaceAll(',', '');
|
|
rtvm.block_name = json['blockName'] ?? '';
|
|
rtvm.type_of_water = json['typeOfWater'] ?? '';
|
|
rtvm.type = json['type'] ?? '';
|
|
rtvm.tank_location = json['tankLocation']??'';
|
|
rtvm.motorStatus = json['motor_status']??'';
|
|
rtvm.hardware_id = json['motor_status']??'';
|
|
rtvm.tank_hardware_id = json['motor_status']??'';
|
|
rtvm.water_level = json['waterlevel'] ?? '';
|
|
rtvm.minPercentage = json['auto_min_percentage'] ?? '';
|
|
rtvm.maxPercentage = json['auto_max_percentage'] ?? '';
|
|
rtvm.tankAutomationMode = json['auto_mode_type'] ?? '';
|
|
rtvm.tank_status = json['status'] ?? '';
|
|
|
|
// rtvm.motorForUpdateInput=true;
|
|
|
|
/*if(rtvm.motorStatus=='0'){
|
|
rtvm.startButtonColor=<Color>[Colors.green,Colors.greenAccent,Colors.lightGreen];
|
|
rtvm.stoptButtonColor=<Color>[Colors.grey,Colors.grey,Colors.grey];
|
|
rtvm.status='OFF';
|
|
}
|
|
else{
|
|
rtvm.startButtonColor=<Color>[Colors.grey,Colors.grey,Colors.grey];
|
|
rtvm.stoptButtonColor=<Color>[Colors.redAccent,Colors.red,Colors.redAccent];
|
|
rtvm.status='ON';
|
|
}*/
|
|
|
|
|
|
if(rtvm.tank_location.toString().toUpperCase()=='SUMP'&&rtvm.type_of_water.toString().toUpperCase()=='BORE WATER'){
|
|
rtvm.cardColor=Color(0xffC4A484);
|
|
}
|
|
else if(rtvm.tank_location.toString().toUpperCase()=='SUMP'&&rtvm.type_of_water.toString().toUpperCase()=='DRINKING WATER'){
|
|
rtvm.cardColor=Color(0xffc3e3f8);
|
|
}
|
|
else if(rtvm.tank_location.toString().toUpperCase()=='OVERHEAD'&&rtvm.type_of_water.toString().toUpperCase()=='BORE WATER'){
|
|
rtvm.cardColor=Color(0xfff8f3cb);
|
|
}
|
|
else if(rtvm.tank_location.toString().toUpperCase()=='OVERHEAD'&&rtvm.type_of_water.toString().toUpperCase()=='DRINKING WATER'){
|
|
rtvm.cardColor=Color(0XFF9bedff);
|
|
}
|
|
else{
|
|
rtvm.cardColor=Color(0xffcdf3ce);
|
|
}
|
|
|
|
|
|
if(rtvm.water_level!=''){
|
|
double percent=int.parse(rtvm.water_level )/double.parse(rtvm.capacityForParse )*100;
|
|
|
|
rtvm.currentWaterLevelPercent=percent.toStringAsFixed(0);;
|
|
|
|
print(percent);
|
|
if( percent<20){
|
|
rtvm.textColor=Colors.red;
|
|
/*rtvm.tank_image=Image(image: const AssetImage('images/25%gif.gif'),height:60,width:60,);*/
|
|
rtvm.tank_image=Image(image: const AssetImage('images/25%.png'),height: 90,width:120,);
|
|
}
|
|
else if( percent>20&&percent<40){
|
|
rtvm.textColor=Colors.yellow;
|
|
/*rtvm.tank_image=Image(image: const AssetImage('images/50%gif.gif'),height: 60,width:60,);*/
|
|
rtvm.tank_image=Image(image: const AssetImage('images/50%.png'),height: 90,width:120,);
|
|
}
|
|
else if( percent>40&&percent<70){
|
|
rtvm.textColor=Colors.green;
|
|
/*rtvm.tank_image=Image(image: const AssetImage('images/75%gif.gif'),height: 60,width:60,);*/
|
|
rtvm.tank_image=Image(image: const AssetImage('images/75%.png'),height: 90,width:120,);
|
|
}
|
|
else{
|
|
rtvm.textColor=Colors.blue;
|
|
/* rtvm.tank_image=Image(image: const AssetImage('images/100%gif.gif'),height: 60,width:60,);*/
|
|
rtvm.tank_image=Image(image: const AssetImage('images/100%.png'),height: 90,width:120,);
|
|
}
|
|
}
|
|
else{
|
|
rtvm.water_level ='';
|
|
}
|
|
|
|
rtvm.source = json['tankName']??'';
|
|
rtvm.inConnectionsForUpdate=json['connections']['inputConnections']??[];
|
|
rtvm.outConnectionsForUpdate=json['connections']['outputConnections']??[];
|
|
|
|
rtvm.inConnections = json['connections']['inputConnections']??[];
|
|
|
|
|
|
rtvm.inConnections.forEach((element) {
|
|
|
|
element["startButtonColor"] = <Color>[Colors.grey,Colors.grey,Colors.grey];
|
|
element["stoptButtonColor"] = <Color>[Colors.grey,Colors.grey,Colors.grey];
|
|
rtvm.inputRadioChecked.add(element['inputismotor']);
|
|
|
|
/*if(element['input_type'].toString().toLowerCase()!='borewell'){
|
|
if(element['inputismotor']==true){
|
|
rtvm.inConnectionsHaveMotor.add('yes');
|
|
}
|
|
else{
|
|
rtvm.inConnectionsHaveMotor.add('no');
|
|
}
|
|
}*/
|
|
if(element['input_type'].toString().toLowerCase()!='borewell'){
|
|
rtvm.inConnectionsHaveMotor.add(element['inputismotor']);
|
|
}
|
|
if(element['input_type'].toString().toLowerCase()=='borewell'||element['input_type'].toString().toLowerCase()=='govt.pipeline'){
|
|
rtvm.inConnectionsHaveMotorForBore.add(element['inputismotor']);
|
|
}
|
|
|
|
|
|
rtvm.inputConnections.add(element['inputConnections']);
|
|
rtvm.showInConnections=rtvm.inputConnections.join(",");
|
|
rtvm.inputtypes.add(element['input_type']??'');
|
|
rtvm.showdetailInputConnections=rtvm.inputtypes.join("-");
|
|
rtvm.EntityMotorStatus=element['motor_status'];
|
|
if(element['motor_status']=='0'){
|
|
element["startButtonColor"]=<Color>[Colors.green,Colors.greenAccent,Colors.lightGreen];
|
|
element["stoptButtonColor"]=<Color>[Colors.grey,Colors.grey,Colors.grey];
|
|
rtvm.status='OFF';
|
|
}
|
|
else{
|
|
element["stoptButtonColor"]=<Color>[Colors.grey,Colors.grey,Colors.grey];
|
|
element["stoptButtonColor"]=<Color>[Colors.redAccent,Colors.red,Colors.redAccent];
|
|
rtvm.status='ON';
|
|
}
|
|
|
|
|
|
});
|
|
|
|
rtvm.outConnections = json['connections']['outputConnections']??[];
|
|
rtvm.outConnections.forEach((element) {
|
|
|
|
rtvm.outputConnections.add(element['outputConnections']);
|
|
//rtvm.outputtypes.add(element['outputConnections']);
|
|
rtvm.outputtypes.add(element['output_type']??'');
|
|
rtvm.showOutConnections=rtvm.outputConnections.join(",");
|
|
rtvm.showdetailOutputConnections=rtvm.outputtypes.join("-");
|
|
rtvm.outConnectionsHaveMotor.add(element['outputismotor']??false);
|
|
});
|
|
|
|
rtvm.isCheckedInput = false;
|
|
rtvm.isCheckedOutput = false;
|
|
|
|
|
|
return rtvm;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() => {
|
|
"tankName":this.tank_name,
|
|
"capacity": this.capacity,
|
|
"blockName": this.block_name,
|
|
"typeOfWater": this.type_of_water ,
|
|
"type": this.type,
|
|
"tankLocation": this.tank_location,
|
|
"source": this.source,
|
|
};
|
|
@override
|
|
bool operator ==(Object other) {
|
|
if (identical(this, other)) return true;
|
|
|
|
return other is GetTanksDetailsModel &&
|
|
other.tank_name == tank_name &&
|
|
other.tank_location == tank_location;
|
|
}
|
|
|
|
@override
|
|
int get hashCode => tank_name.hashCode ^ tank_location.hashCode;
|
|
} |