Commit ee178d55 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

09-07-2025 By Sai Srinivas

Network and Finance Module issue and Back
parent 2ade5aad
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
......@@ -13,6 +14,7 @@ import 'package:get/utils.dart';
import 'package:provider/provider.dart';
import '../../Models/financeModels/addPaymentRequestionResponse.dart';
import '../../Utils/commonServices.dart';
class Submitpaymentrequestionlistsbymode extends StatefulWidget {
final String mode;
......@@ -33,14 +35,22 @@ class Submitpaymentrequestionlistsbymode extends StatefulWidget {
class _SubmitpaymentrequestionlistsbymodeState
extends State<Submitpaymentrequestionlistsbymode> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
Dropdowntheme ddtheme = Dropdowntheme();
List<FocusNode> focusNodes = List.generate(11, (index) => FocusNode());
GlobalKey _globalKey = GlobalKey();
ScrollController scrollcontroller = ScrollController();
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Requestionlistprovider>(
context,
......@@ -77,6 +87,7 @@ class _SubmitpaymentrequestionlistsbymodeState
void dispose() {
scrollcontroller.dispose();
focusNodes.map((e) => e.dispose());
_connectivity.disposeStream();
super.dispose();
}
......@@ -101,7 +112,19 @@ class _SubmitpaymentrequestionlistsbymodeState
@override
Widget build(BuildContext context) {
return Consumer<Requestionlistprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection == "Online"
? Consumer<Requestionlistprovider>(
builder: (context, provider, child) {
return WillPopScope(
child: SafeArea(
......@@ -143,14 +166,16 @@ class _SubmitpaymentrequestionlistsbymodeState
items:
provider.accounts
.map(
(accs) => DropdownMenuItem<Accounts>(
(accs) =>
DropdownMenuItem<Accounts>(
value: accs,
child: Text(
"${accs.name}",
style: const TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
overflow:
TextOverflow.ellipsis,
),
),
)
......@@ -162,12 +187,16 @@ class _SubmitpaymentrequestionlistsbymodeState
? null
: (Accounts? value) {
if (value != null) {
if (provider.accounts.isNotEmpty) {
provider.selectedAccount = value;
if (provider
.accounts
.isNotEmpty) {
provider.selectedAccount =
value;
print(
"Selected Complaint Type: ${value.name}, ID: ${value.id}",
);
provider.accountId = value.id!;
provider.accountId =
value.id!;
print(
"hfjkshfg" +
provider.accountId
......@@ -199,9 +228,8 @@ class _SubmitpaymentrequestionlistsbymodeState
),
hintText: 'Search account...',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(
8,
),
borderRadius:
BorderRadius.circular(8),
),
),
),
......@@ -219,13 +247,16 @@ class _SubmitpaymentrequestionlistsbymodeState
),
onMenuStateChange: (isOpen) {
if (!isOpen) {
provider.accountSearchController.clear();
provider.accountSearchController
.clear();
}
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
if (widget.mode == "other") ...[
......@@ -266,7 +297,9 @@ class _SubmitpaymentrequestionlistsbymodeState
padding: EdgeInsets.all(8),
decoration: BoxDecoration(
color: AppColors.app_blue,
borderRadius: BorderRadius.circular(8),
borderRadius: BorderRadius.circular(
8,
),
),
child: SvgPicture.asset(
"assets/svg/add_account.svg",
......@@ -297,14 +330,17 @@ class _SubmitpaymentrequestionlistsbymodeState
items:
provider.requestingPurposes
.map(
(accs) => DropdownMenuItem<String>(
(accs) =>
DropdownMenuItem<String>(
value: accs,
child: Text(
accs ?? '',
style: const TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
overflow:
TextOverflow
.ellipsis,
),
),
)
......@@ -327,8 +363,10 @@ class _SubmitpaymentrequestionlistsbymodeState
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -396,8 +434,9 @@ class _SubmitpaymentrequestionlistsbymodeState
items:
provider.paymentModes
.map(
(paymenents) =>
DropdownMenuItem<PaymentModes>(
(paymenents) => DropdownMenuItem<
PaymentModes
>(
value: paymenents,
child: Text(
paymenents.name ?? '',
......@@ -419,17 +458,21 @@ class _SubmitpaymentrequestionlistsbymodeState
"Selected Complaint Type: ${value.name}, ID: ${value.id}",
);
provider.paymentModeId = value.id!;
provider.paymentModeValue = value.name!;
provider.paymentModeValue =
value.name!;
print(
"hfjkshfg" +
provider.paymentModeId.toString(),
provider.paymentModeId
.toString(),
);
if ([
"Cheque",
"RTGS",
"IMPS",
"NEFT",
].contains(provider.paymentModeValue)) {
].contains(
provider.paymentModeValue,
)) {
WidgetsBinding.instance
.addPostFrameCallback((_) {
final context =
......@@ -450,8 +493,10 @@ class _SubmitpaymentrequestionlistsbymodeState
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -484,7 +529,8 @@ class _SubmitpaymentrequestionlistsbymodeState
fontSize: 14,
),
overflow:
TextOverflow.ellipsis,
TextOverflow
.ellipsis,
),
),
)
......@@ -506,15 +552,18 @@ class _SubmitpaymentrequestionlistsbymodeState
value.name!;
print(
"hfjkshfg" +
provider.paymentModeId.toString(),
provider.paymentModeId
.toString(),
);
}
}
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -553,9 +602,12 @@ class _SubmitpaymentrequestionlistsbymodeState
if (provider.imagePicked == 1 &&
provider.imagePath != null) ...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
padding: const EdgeInsets.symmetric(
vertical: 4.0,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Expanded(
flex: 4,
......@@ -715,8 +767,14 @@ class _SubmitpaymentrequestionlistsbymodeState
child: Container(
height: 45,
alignment: Alignment.center,
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 10),
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 5,
),
decoration: BoxDecoration(
color: AppColors.app_blue,
borderRadius: BorderRadius.circular(15),
......@@ -724,7 +782,9 @@ class _SubmitpaymentrequestionlistsbymodeState
child:
provider.submitClicked
? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(AppColors.white),
valueColor: AlwaysStoppedAnimation(
AppColors.white,
),
)
: Text(
"Submit",
......@@ -744,7 +804,8 @@ class _SubmitpaymentrequestionlistsbymodeState
},
);
},
);
)
: NoNetwork(context);
}
Future<void> _showAttachmentSheet(BuildContext context) {
......
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:generp/Utils/commonServices.dart';
import 'package:provider/provider.dart';
import '../../Notifiers/GeneratorDetailsProvider.dart';
......@@ -18,10 +20,18 @@ class Complainthistory extends StatefulWidget {
}
class _ComplainthistoryState extends State<Complainthistory> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((_) {
var details = Provider.of<Generatordetailsprovider>(
context,
......@@ -38,10 +48,27 @@ class _ComplainthistoryState extends State<Complainthistory> {
);
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer<Generatordetailsprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"?Consumer<Generatordetailsprovider>(
builder: (context, provider, child) {
return WillPopScope(
onWillPop: () => onBackPressed(context),
......@@ -153,6 +180,6 @@ class _ComplainthistoryState extends State<Complainthistory> {
),
);
},
);
):NoNetwork(context);
}
}
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Utils/commonWidgets.dart';
import 'package:generp/screens/genTracker/ScanEnterGeneratorIDScreen.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonServices.dart';
class Gentrackerdashboard extends StatefulWidget {
const Gentrackerdashboard({super.key});
......@@ -15,14 +17,45 @@ class Gentrackerdashboard extends StatefulWidget {
}
class _GentrackerdashboardState extends State<Gentrackerdashboard> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Platform.isAndroid
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return (connection=="Online")?Platform.isAndroid
? WillPopScope(
onWillPop: () => onBackPressed(context),
child: SafeArea(top: false, bottom: true, child: _scaffold(context)),
)
: _scaffold(context);
: _scaffold(context):NoNetwork(context);
}
Widget _scaffold(BuildContext context) {
......
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/GeneratorDetailsProvider.dart';
......@@ -9,6 +10,7 @@ import 'package:url_launcher/url_launcher.dart';
import '../../Notifiers/HomeScreenNotifier.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonServices.dart';
import '../../Utils/commonWidgets.dart';
import 'ScanEnterGeneratorIDScreen.dart';
......@@ -29,10 +31,19 @@ class Generatordetails extends StatefulWidget {
}
class _GeneratordetailsState extends State<Generatordetails> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((_) {
var details = Provider.of<Generatordetailsprovider>(
context,
......@@ -62,9 +73,27 @@ class _GeneratordetailsState extends State<Generatordetails> {
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer2<Generatordetailsprovider, HomescreenNotifier>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"?Consumer2<Generatordetailsprovider, HomescreenNotifier>(
builder: (context, provider, Homeprovider, child) {
var sendwidget = SizedBox(width: 0);
return WillPopScope(
......@@ -862,7 +891,7 @@ class _GeneratordetailsState extends State<Generatordetails> {
),
);
},
);
):NoNetwork(context);
}
}
......
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
......@@ -10,6 +11,7 @@ import 'package:provider/provider.dart';
import '../../Models/loadGeneratorDetailsResponse.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonServices.dart';
class Registercomplaint extends StatefulWidget {
const Registercomplaint({super.key});
......@@ -19,18 +21,51 @@ class Registercomplaint extends StatefulWidget {
}
class _RegistercomplaintState extends State<Registercomplaint> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
TextEditingController running_hrs = TextEditingController();
TextEditingController Complaint_Note = TextEditingController();
Dropdowntheme ddtheme = Dropdowntheme();
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer2<Generatordetailsprovider, HomescreenNotifier>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection == "Online"
? Consumer2<Generatordetailsprovider, HomescreenNotifier>(
builder: (context, provider, homeProvider, child) {
return WillPopScope(
onWillPop: () => onBackPressed(context),
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
bottom: Platform.isIOS ? false : true,
child: Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.scaffold_bg_color,
......@@ -54,23 +89,27 @@ class _RegistercomplaintState extends State<Registercomplaint> {
"Customer Details",
style: TextStyle(
fontFamily: "JakartaMedium",
color: Color(0xFF818181)),
color: Color(0xFF818181),
),
),
),
Container(
padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
margin: EdgeInsets.symmetric(
horizontal: 10, vertical: 5),
horizontal: 10,
vertical: 5,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16)
borderRadius: BorderRadius.circular(16),
),
child: Column(
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Expanded(
flex: 1,
......@@ -87,13 +126,18 @@ class _RegistercomplaintState extends State<Registercomplaint> {
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text("${provider.cname}",style: TextStyle(
fontFamily: "JakartaMedium"
),),
Text(
"${provider.cname}",
style: TextStyle(
fontFamily:
"JakartaMedium",
),
),
Text(
"${provider.aname}",
maxLines: 2,
overflow: TextOverflow.ellipsis,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
color: Color(0xFF818181),
),
......@@ -105,30 +149,45 @@ class _RegistercomplaintState extends State<Registercomplaint> {
),
],
),
Divider(thickness: 0.5, color: Color(0xFFD7D7D7)),
Divider(
thickness: 0.5,
color: Color(0xFFD7D7D7),
),
...List.generate(2, (j) {
final textheads = ["Product Name", "Engine ID"];
final textheads = [
"Product Name",
"Engine ID",
];
final textSubheads = [
provider.spname,
provider.engineNo,
];
return Container(
padding: EdgeInsets.symmetric(vertical: 3),
padding: EdgeInsets.symmetric(
vertical: 3,
),
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
MainAxisAlignment
.spaceBetween,
children: [
Expanded(
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
CrossAxisAlignment
.start,
children: [
Text(textheads[j].toString(),style: TextStyle(
fontFamily: "JakartaMedium"
),),
Text(
textheads[j]
.toString(),
style: TextStyle(
fontFamily:
"JakartaMedium",
),
),
],
),
),
......@@ -137,12 +196,16 @@ class _RegistercomplaintState extends State<Registercomplaint> {
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
CrossAxisAlignment
.start,
children: [
Text(
textSubheads[j].toString(),
textSubheads[j]
.toString(),
style: TextStyle(
color: Color(0xFF818181),
color: Color(
0xFF818181,
),
),
),
],
......@@ -156,8 +219,6 @@ class _RegistercomplaintState extends State<Registercomplaint> {
);
}),
SizedBox(height: 10.0),
],
),
),
......@@ -167,31 +228,42 @@ class _RegistercomplaintState extends State<Registercomplaint> {
"Complaint Details",
style: TextStyle(
fontFamily: "JakartaMedium",
color: Color(0xFF818181)),
color: Color(0xFF818181),
),
),
),
Container(
padding: EdgeInsets.fromLTRB(10, 10, 10, 10),
margin: EdgeInsets.symmetric(
horizontal: 10, vertical: 5),
horizontal: 10,
vertical: 5,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16)
borderRadius: BorderRadius.circular(16),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Complaint Type",style: TextStyle(
padding: const EdgeInsets.only(
bottom: 5.0,
),
child: Text(
"Complaint Type",
style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
),
),
DropdownButtonHideUnderline(
child: Row(
children: [
Expanded(
child: DropdownButton2<ComplaintTypeList>(
child: DropdownButton2<
ComplaintTypeList
>(
isExpanded: true,
hint: const Row(
children: [
......@@ -200,33 +272,47 @@ class _RegistercomplaintState extends State<Registercomplaint> {
'Select Complaint Type',
style: TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
overflow:
TextOverflow
.ellipsis,
),
),
],
),
items:
provider.complaintTypeDropdown
provider
.complaintTypeDropdown
.map(
(complaintType) =>
DropdownMenuItem<
ComplaintTypeList>(
value: complaintType,
(
complaintType,
) => DropdownMenuItem<
ComplaintTypeList
>(
value:
complaintType,
child: Text(
complaintType.name ?? '',
style: const TextStyle(
fontSize: 14,
),
overflow: TextOverflow
complaintType
.name ??
'',
style:
const TextStyle(
fontSize:
14,
),
overflow:
TextOverflow
.ellipsis,
),
),
)
.toList(),
value: provider.selectedComplaintType,
onChanged: (ComplaintTypeList? value) {
value:
provider
.selectedComplaintType,
onChanged: (
ComplaintTypeList? value,
) {
if (value != null) {
if (provider
.complaintCategorydropdown
......@@ -234,8 +320,7 @@ class _RegistercomplaintState extends State<Registercomplaint> {
provider.selectedComplaintType =
value;
print(
"Selected Complaint Type: ${value
.name}, ID: ${value.id}",
"Selected Complaint Type: ${value.name}, ID: ${value.id}",
);
provider.selectedType =
value?.name;
......@@ -243,16 +328,21 @@ class _RegistercomplaintState extends State<Registercomplaint> {
value?.id;
print(
"hfjkshfg" +
provider.selectedTypeId
provider
.selectedTypeId
.toString(),
);
}
}
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
buttonStyleData:
ddtheme.buttonStyleData,
iconStyleData:
ddtheme.iconStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -260,17 +350,23 @@ class _RegistercomplaintState extends State<Registercomplaint> {
),
SizedBox(height: 10.0),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Complaint Category",style: TextStyle(
padding: const EdgeInsets.only(
bottom: 5.0,
),
child: Text(
"Complaint Category",
style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
),
),
DropdownButtonHideUnderline(
child: Row(
children: [
Expanded(
child: DropdownButton2<
ComplaintCategoryList>(
ComplaintCategoryList
>(
isExpanded: true,
hint: const Row(
children: [
......@@ -280,33 +376,44 @@ class _RegistercomplaintState extends State<Registercomplaint> {
style: TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
overflow:
TextOverflow
.ellipsis,
),
),
],
),
items:
provider.complaintCategorydropdown
provider
.complaintCategorydropdown
.map(
(Category) =>
DropdownMenuItem<
(
Category,
) => DropdownMenuItem<
ComplaintCategoryList
>(
value: Category,
child: Text(
Category.name ?? "",
style: const TextStyle(
fontSize: 14,
),
overflow: TextOverflow
Category.name ??
"",
style:
const TextStyle(
fontSize:
14,
),
overflow:
TextOverflow
.ellipsis,
),
),
)
.toList(),
value: provider.selectedCategoryType,
value:
provider
.selectedCategoryType,
onChanged: (
ComplaintCategoryList? value) {
ComplaintCategoryList? value,
) {
if (provider
.complaintCategorydropdown
.isNotEmpty) {
......@@ -318,10 +425,14 @@ class _RegistercomplaintState extends State<Registercomplaint> {
value?.id;
}
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
buttonStyleData:
ddtheme.buttonStyleData,
iconStyleData:
ddtheme.iconStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -330,17 +441,23 @@ class _RegistercomplaintState extends State<Registercomplaint> {
SizedBox(height: 10.0),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Select Description",style: TextStyle(
padding: const EdgeInsets.only(
bottom: 5.0,
),
child: Text(
"Select Description",
style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
),
),
DropdownButtonHideUnderline(
child: Row(
children: [
Expanded(
child: DropdownButton2<
ComplaintDescriptionList>(
ComplaintDescriptionList
>(
isExpanded: true,
hint: const Row(
children: [
......@@ -350,33 +467,46 @@ class _RegistercomplaintState extends State<Registercomplaint> {
style: TextStyle(
fontSize: 14,
),
overflow: TextOverflow.ellipsis,
overflow:
TextOverflow
.ellipsis,
),
),
],
),
items:
provider.complaintDescriptionDropdown
provider
.complaintDescriptionDropdown
.map(
(Description) =>
DropdownMenuItem<
(
Description,
) => DropdownMenuItem<
ComplaintDescriptionList
>(
value: Description,
child: Text(
Description.name ?? "",
style: const TextStyle(
fontSize: 14,
),
overflow: TextOverflow
Description
.name ??
"",
style:
const TextStyle(
fontSize:
14,
),
overflow:
TextOverflow
.ellipsis,
),
),
)
.toList(),
value: provider.selectedDescriptionType,
value:
provider
.selectedDescriptionType,
onChanged: (
ComplaintDescriptionList? value) {
ComplaintDescriptionList?
value,
) {
if (provider
.complaintDescriptionDropdown
.isNotEmpty) {
......@@ -388,10 +518,14 @@ class _RegistercomplaintState extends State<Registercomplaint> {
value?.id;
}
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
buttonStyleData:
ddtheme.buttonStyleData,
iconStyleData:
ddtheme.iconStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -400,10 +534,15 @@ class _RegistercomplaintState extends State<Registercomplaint> {
SizedBox(height: 10.0),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Duration",style: TextStyle(
padding: const EdgeInsets.only(
bottom: 5.0,
),
child: Text(
"Duration",
style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
),
),
Container(
height: 50,
......@@ -411,43 +550,45 @@ class _RegistercomplaintState extends State<Registercomplaint> {
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(14),
borderRadius: BorderRadius.circular(
14,
),
),
child: Padding(
padding:
const EdgeInsets.fromLTRB(
10.0, 0.0, 10, 0),
padding: const EdgeInsets.fromLTRB(
10.0,
0.0,
10,
0,
),
child: TextFormField(
controller:
running_hrs,
keyboardType:
TextInputType.text,
controller: running_hrs,
keyboardType: TextInputType.text,
decoration: InputDecoration(
hintText:
"Enter Running Number",
hintText: "Enter Running Number",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
fontSize: 14,
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
SizedBox(height: 10.0),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
child: Text("Message",style: TextStyle(
padding: const EdgeInsets.only(
bottom: 5.0,
),
child: Text(
"Message",
style: TextStyle(
fontFamily: "JakartaMedium",
),),
),
),
),
Container(
height: 150,
......@@ -455,35 +596,32 @@ class _RegistercomplaintState extends State<Registercomplaint> {
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius:
BorderRadius.circular(14),
borderRadius: BorderRadius.circular(
14,
),
),
child: Padding(
padding:
const EdgeInsets.fromLTRB(
10.0, 0.0, 10, 0),
padding: const EdgeInsets.fromLTRB(
10.0,
0.0,
10,
0,
),
child: TextFormField(
maxLines: 6,
controller:
Complaint_Note,
keyboardType:
TextInputType.text,
controller: Complaint_Note,
keyboardType: TextInputType.text,
decoration: InputDecoration(
hintText:
"Enter Message",
hintText: "Enter Message",
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14
fontSize: 14,
),
enabledBorder:
InputBorder.none,
focusedBorder:
InputBorder.none,
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
......@@ -492,7 +630,6 @@ class _RegistercomplaintState extends State<Registercomplaint> {
),
SizedBox(height: 65.0),
],
),
),
......@@ -510,7 +647,8 @@ class _RegistercomplaintState extends State<Registercomplaint> {
provider.selectedTypeId,
provider.selectedDescriptionId,
running_hrs.text,
Complaint_Note.text);
Complaint_Note.text,
);
},
child: Container(
alignment: Alignment.center,
......@@ -526,18 +664,19 @@ class _RegistercomplaintState extends State<Registercomplaint> {
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 15,
color: Colors.white
color: Colors.white,
),
),
),
),
),
floatingActionButtonLocation: FloatingActionButtonLocation
.centerFloat,
floatingActionButtonLocation:
FloatingActionButtonLocation.centerFloat,
),
),
);
},
);
)
: NoNetwork(context);
}
}
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:generp/Notifiers/GeneratorDetailsProvider.dart';
import 'package:generp/Utils/commonServices.dart';
......@@ -24,10 +25,17 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
TextEditingController genIDcontroller = TextEditingController();
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((_) {
var provider = Provider.of<Generatordetailsprovider>(
context,
......@@ -50,6 +58,7 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
super.dispose();
genIDcontroller.clear();
genIDcontroller.dispose();
_connectivity.disposeStream();
}
......@@ -57,7 +66,18 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
@override
Widget build(BuildContext context) {
return Consumer<Generatordetailsprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"?Consumer<Generatordetailsprovider>(
builder: (context, provider, child) {
return WillPopScope(
onWillPop: () => onBackPressed(context),
......@@ -134,7 +154,7 @@ class _ScanentergeneratoridscreenState extends State<Scanentergeneratoridscreen>
),
);
},
);
):NoNetwork(context);
}
Future<void> _showgenIdBottomSheet(BuildContext context) {
......
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:generp/screens/finance/FileViewer.dart';
import 'package:generp/screens/notifierExports.dart';
......@@ -23,11 +24,17 @@ class _GeneratorPartDetailsScreenState
TextEditingController descriptioncontroller = TextEditingController();
TextEditingController quantitycontroller = TextEditingController();
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((_) {
var homeProvider = Provider.of<HomescreenNotifier>(
context,
......@@ -36,6 +43,12 @@ class _GeneratorPartDetailsScreenState
initialiseFunction(context, homeProvider);
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
void initialiseFunction(BuildContext context, homeProvider) async {
var inventoryProvider = Provider.of<InventoryProvider>(
......@@ -52,7 +65,19 @@ class _GeneratorPartDetailsScreenState
@override
Widget build(BuildContext context) {
return Consumer2<InventoryProvider, HomescreenNotifier>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"?
Consumer2<InventoryProvider, HomescreenNotifier>(
builder: (context, provider, homeProvider, child) {
return WillPopScope(
onWillPop: () => onBackPressed(context),
......@@ -546,7 +571,8 @@ class _GeneratorPartDetailsScreenState
),
);
},
);
):
NoNetwork(context);
}
Future<void> _showStockIssueBottomSheet(BuildContext context, type) {
......
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:generp/screens/notifierExports.dart';
import 'package:generp/Utils/commonWidgets.dart';
......@@ -7,6 +8,7 @@ import 'package:provider/provider.dart';
import 'package:qr_code_scanner/qr_code_scanner.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonServices.dart';
class InventoryScreen extends StatefulWidget {
const InventoryScreen({super.key});
......@@ -18,11 +20,17 @@ class InventoryScreen extends StatefulWidget {
class _InventoryScreenState extends State<InventoryScreen> {
FocusNode partIDfocusNode = FocusNode();
TextEditingController partIDcontroller = TextEditingController();
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((_) {
var inventoryProvider = Provider.of<InventoryProvider>(
context,
......@@ -33,14 +41,38 @@ class _InventoryScreenState extends State<InventoryScreen> {
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Platform.isAndroid
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return (connection == 'Online')
? Platform.isAndroid
? WillPopScope(
onWillPop: () => onBackPressed(context),
child: SafeArea(top: false, bottom: true, child: _scaffold(context)),
child: SafeArea(
top: false,
bottom: true,
child: _scaffold(context),
),
)
: _scaffold(context);
: _scaffold(context)
: NoNetwork(context);
}
Widget _scaffold(BuildContext context) {
......
......@@ -13,6 +13,8 @@ import 'package:provider/provider.dart';
import '../../Models/ordersModels/AddOrderViewResponse.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class AddorderScreen extends StatefulWidget {
final pageTitleName;
......@@ -30,10 +32,17 @@ class _AddorderScreenState extends State<AddorderScreen> {
List<FocusNode> focusNodes = List.generate(10, (index) => FocusNode());
Dropdowntheme ddtheme = Dropdowntheme();
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Addorderprovider>(context, listen: false);
if (provider.dateNow == null) {
......@@ -50,6 +59,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
focusNodes.map((e) => e.dispose());
focusNode.dispose();
focusNodetpc.dispose();
_connectivity.disposeStream();
super.dispose();
}
......@@ -60,12 +71,24 @@ class _AddorderScreenState extends State<AddorderScreen> {
@override
Widget build(BuildContext context) {
return Consumer<Addorderprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection == "Online"
? Consumer<Addorderprovider>(
builder: (context, provider, child) {
return WillPopScope(
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
bottom: Platform.isIOS ? false : true,
child: Scaffold(
resizeToAvoidBottomInset: true,
backgroundColor: AppColors.white,
......@@ -105,7 +128,9 @@ class _AddorderScreenState extends State<AddorderScreen> {
if (focusNode.hasFocus) {
focusNode.unfocus();
} else {
FocusScope.of(context).requestFocus(focusNode);
FocusScope.of(
context,
).requestFocus(focusNode);
}
},
title: TextFormField(
......@@ -150,7 +175,9 @@ class _AddorderScreenState extends State<AddorderScreen> {
if (focusNode.hasFocus) {
focusNode.unfocus();
} else {
FocusScope.of(context).requestFocus(focusNode);
FocusScope.of(
context,
).requestFocus(focusNode);
}
},
child: SvgPicture.asset(
......@@ -193,14 +220,19 @@ class _AddorderScreenState extends State<AddorderScreen> {
provider.selectedAccountID =
provider.accountList[index].id!;
provider.selectedAccountName =
provider.accountList[index].text!;
provider
.accountList[index]
.text!;
print(
"hfjkshfg" +
provider.selectedAccountID
.toString(),
);
provider.dropDownSearchController.text =
provider.accountList[index].text!;
provider
.dropDownSearchController
.text = provider
.accountList[index]
.text!;
provider
.ordersAddOrderAccountDetailsAPIFunction(
context,
......@@ -243,7 +275,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
items:
provider.employees
.map(
(e) => DropdownMenuItem<Employees>(
(e) =>
DropdownMenuItem<Employees>(
value: e,
child: Text(
e.name!,
......@@ -258,15 +291,18 @@ class _AddorderScreenState extends State<AddorderScreen> {
onChanged: (Employees? value) {
if (provider.employees.isNotEmpty) {
provider.selectedEmployees = value;
provider.selectedEmployeeID = value!.id!;
provider.selectedEmployeeID =
value!.id!;
provider.selectedEmployeeName =
value!.name!;
}
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -298,7 +334,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
child: TextFormField(
controller:
provider.orderReceivedDateController,
provider
.orderReceivedDateController,
keyboardType: TextInputType.text,
enabled: false,
maxLines: 1,
......@@ -370,14 +407,19 @@ class _AddorderScreenState extends State<AddorderScreen> {
onChanged: (States? value) {
if (provider.billingStates.isNotEmpty) {
provider.selecetdBillingStates = value;
provider.selectedBillingStateID = value!.id!;
provider.selectedBillingStateID =
value!.id!;
provider.selectedBillingStateName =
value!.name!;
if (provider.billingDistricts.isNotEmpty) {
if (provider
.billingDistricts
.isNotEmpty) {
provider.billingDistricts.clear();
// provider.selectedBillingDistricts=null;
provider.selectedBillingDistrictId = null;
provider.selectedBillingDistrictValue = "";
provider.selectedBillingDistrictId =
null;
provider.selectedBillingDistrictValue =
"";
}
provider.getDistrictAPI(
......@@ -394,7 +436,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.billingStateSearchController,
provider
.billingStateSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
......@@ -404,7 +447,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
hintText: 'Search Sate...',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderRadius:
BorderRadius.circular(8),
),
),
),
......@@ -420,19 +464,25 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
onMenuStateChange: (isOpen) {
if (!isOpen) {
provider.billingStateSearchController.clear();
provider.billingStateSearchController
.clear();
}
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
),
),
errorWidget(context, provider.selectedBillingStateError),
errorWidget(
context,
provider.selectedBillingStateError,
),
TextWidget(context, "Billing District"),
//dd
DropdownButtonHideUnderline(
......@@ -448,7 +498,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
items:
provider.billingDistricts
.map(
(e) => DropdownMenuItem<Districts>(
(e) =>
DropdownMenuItem<Districts>(
value: e,
child: Text(
e.district!,
......@@ -461,17 +512,24 @@ class _AddorderScreenState extends State<AddorderScreen> {
.toList(),
value: provider.selectedBillingDistricts,
onChanged: (Districts? value) {
if (provider.billingDistricts.isNotEmpty) {
provider.selectedBillingDistricts = value;
if (provider
.billingDistricts
.isNotEmpty) {
provider.selectedBillingDistricts =
value;
provider.selectedBillingDistrictId =
value!.id!;
provider.selectedBillingDistrictValue =
value!.district!;
if (provider.billingSubLocations.isNotEmpty) {
if (provider
.billingSubLocations
.isNotEmpty) {
provider.billingSubLocations.clear();
// provider.selectedBillingSubLocations = null;
provider.selectedBillingSubLocID = null;
provider.selectedBillingSubLocValue = "";
provider.selectedBillingSubLocID =
null;
provider.selectedBillingSubLocValue =
"";
}
provider.getSubLocationAPI(
context,
......@@ -482,7 +540,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:
provider.billingDistrictSearchController,
provider
.billingDistrictSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
......@@ -498,7 +557,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
hintText: 'Search District...',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderRadius:
BorderRadius.circular(8),
),
),
),
......@@ -520,14 +580,19 @@ class _AddorderScreenState extends State<AddorderScreen> {
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
),
),
errorWidget(context, provider.selectedBillingDistrictError),
errorWidget(
context,
provider.selectedBillingDistrictError,
),
TextWidget(context, "Billing Sub Location"),
//dd
DropdownButtonHideUnderline(
......@@ -542,7 +607,9 @@ class _AddorderScreenState extends State<AddorderScreen> {
items:
provider.billingSubLocations
.map(
(e) => DropdownMenuItem<SubLocations>(
(e) => DropdownMenuItem<
SubLocations
>(
value: e,
child: Text(
e.subLocality!,
......@@ -555,9 +622,13 @@ class _AddorderScreenState extends State<AddorderScreen> {
.toList(),
value: provider.selectedBillingSubLocations,
onChanged: (SubLocations? value) {
if (provider.billingSubLocations.isNotEmpty) {
provider.selectedBillingSubLocations = value;
provider.selectedBillingSubLocID = value!.id!;
if (provider
.billingSubLocations
.isNotEmpty) {
provider.selectedBillingSubLocations =
value;
provider.selectedBillingSubLocID =
value!.id!;
provider.selectedBillingSubLocValue =
value!.subLocality!;
}
......@@ -565,12 +636,14 @@ class _AddorderScreenState extends State<AddorderScreen> {
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:
provider.billingSubLocSearchController,
provider
.billingSubLocSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.billingSubLocSearchController,
provider
.billingSubLocSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
......@@ -580,7 +653,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
hintText: 'Search Sub Location...',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderRadius:
BorderRadius.circular(8),
),
),
),
......@@ -602,14 +676,19 @@ class _AddorderScreenState extends State<AddorderScreen> {
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
),
),
errorWidget(context, provider.selectedBillingSubLocError),
errorWidget(
context,
provider.selectedBillingSubLocError,
),
textControllerWidget(
context,
provider.billingAddressController,
......@@ -671,14 +750,19 @@ class _AddorderScreenState extends State<AddorderScreen> {
onChanged: (States? value) {
if (provider.dispatchStates.isNotEmpty) {
provider.selecetdDispatchStates = value;
provider.selectedDispatchStateID = value!.id!;
provider.selectedDispatchStateID =
value!.id!;
provider.selectedDispatchStateName =
value!.name!;
if (provider.dispatchDistricts.isNotEmpty) {
if (provider
.dispatchDistricts
.isNotEmpty) {
provider.dispatchDistricts.clear();
// provider.selectedDispatchDistricts = null;
provider.selectedDispatchDistrictId = null;
provider.selectedDispatchDistrictValue = "";
provider.selectedDispatchDistrictId =
null;
provider.selectedDispatchDistrictValue =
"";
}
provider.getDispatchDistrictAPI(
context,
......@@ -689,12 +773,14 @@ class _AddorderScreenState extends State<AddorderScreen> {
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:
provider.dispatchStateSearchController,
provider
.dispatchStateSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.dispatchStateSearchController,
provider
.dispatchStateSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
......@@ -704,7 +790,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
hintText: 'Search Sate...',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderRadius:
BorderRadius.circular(8),
),
),
),
......@@ -726,14 +813,19 @@ class _AddorderScreenState extends State<AddorderScreen> {
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
),
),
errorWidget(context, provider.selectedDispatchStateError),
errorWidget(
context,
provider.selectedDispatchStateError,
),
//dd
TextWidget(context, "Dispatch District"),
//dd
......@@ -750,7 +842,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
items:
provider.dispatchDistricts
.map(
(e) => DropdownMenuItem<Districts>(
(e) =>
DropdownMenuItem<Districts>(
value: e,
child: Text(
e.district!,
......@@ -763,8 +856,11 @@ class _AddorderScreenState extends State<AddorderScreen> {
.toList(),
value: provider.selectedDispatchDistricts,
onChanged: (Districts? value) {
if (provider.dispatchDistricts.isNotEmpty) {
provider.selectedDispatchDistricts = value;
if (provider
.dispatchDistricts
.isNotEmpty) {
provider.selectedDispatchDistricts =
value;
provider.selectedDispatchDistrictId =
value!.id!;
provider.selectedDispatchDistrictValue =
......@@ -774,8 +870,10 @@ class _AddorderScreenState extends State<AddorderScreen> {
.isNotEmpty) {
provider.dispatchSubLocations.clear();
// provider.selectedDispatchSubLocations=null;
provider.selectedDispatchSubLocID = null;
provider.selectedDispatchSubLocValue = "";
provider.selectedDispatchSubLocID =
null;
provider.selectedDispatchSubLocValue =
"";
}
provider.getDispatchSubLocationAPI(
context,
......@@ -786,7 +884,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:
provider.dispatchDistrictSearchController,
provider
.dispatchDistrictSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
......@@ -802,7 +901,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
hintText: 'Search District...',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderRadius:
BorderRadius.circular(8),
),
),
),
......@@ -818,20 +918,26 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
onMenuStateChange: (isOpen) {
if (!isOpen) {
provider.dispatchDistrictSearchController
provider
.dispatchDistrictSearchController
.clear();
}
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
),
),
errorWidget(context, provider.selectedDispatchDistrictError),
errorWidget(
context,
provider.selectedDispatchDistrictError,
),
TextWidget(context, "Dispatch Sub Location"),
DropdownButtonHideUnderline(
child: Row(
......@@ -845,7 +951,9 @@ class _AddorderScreenState extends State<AddorderScreen> {
items:
provider.dispatchSubLocations
.map(
(e) => DropdownMenuItem<SubLocations>(
(e) => DropdownMenuItem<
SubLocations
>(
value: e,
child: Text(
e.subLocality!,
......@@ -856,10 +964,14 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
)
.toList(),
value: provider.selectedDispatchSubLocations,
value:
provider.selectedDispatchSubLocations,
onChanged: (SubLocations? value) {
if (provider.dispatchSubLocations.isNotEmpty) {
provider.selectedDispatchSubLocations = value;
if (provider
.dispatchSubLocations
.isNotEmpty) {
provider.selectedDispatchSubLocations =
value;
provider.selectedDispatchSubLocID =
value!.id!;
provider.selectedDispatchSubLocValue =
......@@ -869,12 +981,14 @@ class _AddorderScreenState extends State<AddorderScreen> {
dropdownSearchData: DropdownSearchData(
searchInnerWidgetHeight: 50,
searchController:
provider.dispatchSubLocSearchController,
provider
.dispatchSubLocSearchController,
searchInnerWidget: Padding(
padding: const EdgeInsets.all(8),
child: TextFormField(
controller:
provider.dispatchSubLocSearchController,
provider
.dispatchSubLocSearchController,
decoration: InputDecoration(
isDense: true,
contentPadding:
......@@ -884,7 +998,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
hintText: 'Search Sub Location...',
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(8),
borderRadius:
BorderRadius.circular(8),
),
),
),
......@@ -906,14 +1021,19 @@ class _AddorderScreenState extends State<AddorderScreen> {
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
),
),
errorWidget(context, provider.selectedDispatchSubLocError),
errorWidget(
context,
provider.selectedDispatchSubLocError,
),
//dd
textControllerWidget(
context,
......@@ -991,9 +1111,12 @@ class _AddorderScreenState extends State<AddorderScreen> {
if (provider.imagePicked == 1 &&
provider.imagePath != null) ...[
Padding(
padding: const EdgeInsets.symmetric(vertical: 4.0),
padding: const EdgeInsets.symmetric(
vertical: 4.0,
),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
"${provider.imagePath}",
......@@ -1053,8 +1176,10 @@ class _AddorderScreenState extends State<AddorderScreen> {
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -1121,16 +1246,22 @@ class _AddorderScreenState extends State<AddorderScreen> {
),
scrollbarTheme: ScrollbarThemeData(
radius: const Radius.circular(15),
thickness: MaterialStateProperty.all<double>(
thickness:
MaterialStateProperty.all<double>(
6,
),
thumbVisibility:
MaterialStateProperty.all<bool>(true),
MaterialStateProperty.all<bool>(
true,
),
),
),
menuItemStyleData: const MenuItemStyleData(
height: 40,
padding: EdgeInsets.only(left: 14, right: 14),
padding: EdgeInsets.only(
left: 14,
right: 14,
),
),
),
),
......@@ -1170,8 +1301,10 @@ class _AddorderScreenState extends State<AddorderScreen> {
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -1210,8 +1343,10 @@ class _AddorderScreenState extends State<AddorderScreen> {
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -1234,12 +1369,14 @@ class _AddorderScreenState extends State<AddorderScreen> {
onTapUpOutside: (event) {
focusNodetpc.unfocus();
},
controller: provider.dropDownTpcSearchController,
controller:
provider.dropDownTpcSearchController,
onChanged: (value) async {
Future.delayed(
Duration(milliseconds: 100),
() async {
await provider.ordersAddOrderTPCAgentFunction(
await provider
.ordersAddOrderTPCAgentFunction(
context,
widget.mode,
value,
......@@ -1312,14 +1449,19 @@ class _AddorderScreenState extends State<AddorderScreen> {
provider.selectedTpcAgentID =
provider.tpcAgent[index].id!;
provider.selectedTpcAgentValue =
provider.tpcAgent[index].text!;
provider
.tpcAgent[index]
.text!;
print(
"hfjkshfg" +
provider.selectedTpcAgentID
.toString(),
);
provider.dropDownTpcSearchController.text =
provider.tpcAgent[index].text!;
provider
.dropDownTpcSearchController
.text = provider
.tpcAgent[index]
.text!;
}
// provider.ordersAddPaymentSelectOrderAPIFunction(context, provider.selectedAccountID);
// provider.tpcAgent = [];
......@@ -1401,8 +1543,14 @@ class _AddorderScreenState extends State<AddorderScreen> {
child: Container(
height: 45,
alignment: Alignment.center,
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 15),
padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5),
margin: EdgeInsets.symmetric(
horizontal: 10,
vertical: 15,
),
padding: EdgeInsets.symmetric(
horizontal: 10,
vertical: 5,
),
decoration: BoxDecoration(
color: AppColors.app_blue,
borderRadius: BorderRadius.circular(15),
......@@ -1432,7 +1580,8 @@ class _AddorderScreenState extends State<AddorderScreen> {
},
);
},
);
)
: NoNetwork(context);
}
Future<void> _showAttachmentSheet(BuildContext context) {
......@@ -1626,7 +1775,9 @@ class OrderForm extends StatelessWidget {
),
)
.toList(),
value:provider.selectedSaleProductID[index]!=null
value:
provider.selectedSaleProductID[index] !=
null
? provider.saleProducts.firstWhere(
(product) =>
product.id ==
......
......@@ -14,7 +14,8 @@ import '../../Models/ordersModels/AddOrderPaymentSelectOrderResponse.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart';
import '../../Utils/dropdownTheme.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class AddpaymentScreen extends StatefulWidget {
final pageTitleName;
final mode;
......@@ -33,11 +34,17 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
String? selectedValue;
final TextEditingController textEditingController = TextEditingController();
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Addpaymentprovider>(context, listen: false);
if (provider.dateNow == null) {
......@@ -56,6 +63,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
@override
void dispose() {
focusNodes.map((e)=>e.dispose());
_connectivity.disposeStream();
super.dispose();
}
......@@ -66,7 +74,18 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
@override
Widget build(BuildContext context) {
return Consumer<Addpaymentprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"? Consumer<Addpaymentprovider>(
builder: (context, provider, child) {
return WillPopScope(
child: SafeArea(
......@@ -722,7 +741,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
},
);
},
);
):NoNetwork(context);
}
Future<void> _showAttachmentSheet(BuildContext context) {
......
......@@ -10,6 +10,9 @@ import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart';
import '../../Utils/dropdownTheme.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class AddtpcagentScreen extends StatefulWidget {
const AddtpcagentScreen({super.key});
......@@ -20,19 +23,43 @@ class AddtpcagentScreen extends StatefulWidget {
class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
Dropdowntheme ddtheme = Dropdowntheme();
List<FocusNode> focusNodes = List.generate(10, (index) => FocusNode());
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>(context, listen: false);
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer<Tpcagentsprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"? Consumer<Tpcagentsprovider>(
builder: (context, provider, child) {
return WillPopScope(
child: SafeArea(
......@@ -290,7 +317,7 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
},
);
},
);
):NoNetwork(context);
}
Future<void> _showAttachmentSheet(BuildContext context) {
......
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
......@@ -7,6 +8,7 @@ import 'package:generp/screens/screensExports.dart';
import 'package:provider/provider.dart';
import '../../Notifiers/ordersProvider/pagesDashboardProvider.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonServices.dart';
import '../../Utils/commonWidgets.dart';
import 'addTpcAgent.dart';
......@@ -18,10 +20,20 @@ class Ordermoduledashboard extends StatefulWidget {
}
class _OrdermoduledashboardState extends State<Ordermoduledashboard> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Pagesdashboardprovider>(
context,
......@@ -31,15 +43,31 @@ class _OrdermoduledashboardState extends State<Ordermoduledashboard> {
provider.ordersAccessiblePagesAPIFunction(context);
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Platform.isAndroid
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return (connection == 'Online')? Platform.isAndroid
? WillPopScope(
onWillPop: () => onBackPressed(context),
child: SafeArea(top: false, bottom: true, child: _scaffold(context)),
)
: _scaffold(context);
: _scaffold(context):NoNetwork(context);
}
Widget _scaffold(BuildContext context) {
......
......@@ -16,6 +16,9 @@ import '../finance/FileViewer.dart';
import 'editOrderAccountDetails.dart';
import 'package:generp/Models/ordersModels/ordersDetailsDispatchOrderViewResponse.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class Ordersdetailsbymodes extends StatefulWidget {
final pageTitleName;
final orderId;
......@@ -34,17 +37,27 @@ class Ordersdetailsbymodes extends StatefulWidget {
class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
Dropdowntheme ddtheme = Dropdowntheme();
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Pagesdashboardprovider>(
context,
listen: false,
);
provider.showMoreDetails = false;
var disproved = Provider.of<Dispatchorderprovider>(context,listen: false);
var disproved = Provider.of<Dispatchorderprovider>(
context,
listen: false,
);
provider.ordersDetailsByModeAPIFunction(
context,
widget.orderId,
......@@ -53,10 +66,29 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer2<Pagesdashboardprovider,Dispatchorderprovider>(
builder: (context, provider,disProvider, child) {
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection == "Online"
? Consumer2<Pagesdashboardprovider, Dispatchorderprovider>(
builder: (context, provider, disProvider, child) {
var orderDetails = provider.orderDetails;
var Headings1 = [
......@@ -72,7 +104,6 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
provider.orderDetails.orderReceivedDate ?? "-",
];
var Headings2 = [
"Billing State",
"Billing District",
......@@ -123,7 +154,6 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
"Status",
];
var subHeadings2 = [
provider.orderDetails.billingState ?? "-",
provider.orderDetails.billingDistrict ?? "-",
provider.orderDetails.billingSubLocality ?? "-",
......@@ -173,34 +203,33 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
provider.orderDetails.status ?? "-",
];
var Headings = [...Headings1];
var subHeadings = [...subHeadings1];
if(provider.showMoreDetails){
Headings = [...Headings1,...Headings2];
subHeadings = [...subHeadings1,...subHeadings2];
if (provider.showMoreDetails) {
Headings = [...Headings1, ...Headings2];
subHeadings = [...subHeadings1, ...subHeadings2];
}
return WillPopScope(
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
bottom: Platform.isIOS ? false : true,
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar2(
context,
widget.mode!=""?"Order Details": "Order Details (${widget.mode})",
widget.mode != ""
? "Order Details"
: "Order Details (${widget.mode})",
provider.resetAll,
InkResponse(
onTap: () {
_showOptionsSheet(context);
},
child: SvgPicture.asset("assets/svg/ic_more.svg", height: 30),
child: SvgPicture.asset(
"assets/svg/ic_more.svg",
height: 30,
),
),
),
backgroundColor: AppColors.scaffold_bg_color,
......@@ -211,8 +240,14 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
color: Colors.white,
borderRadius: BorderRadius.circular(16),
),
margin: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
padding: EdgeInsets.symmetric(vertical: 10, horizontal: 10),
margin: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
padding: EdgeInsets.symmetric(
vertical: 10,
horizontal: 10,
),
child: Column(
children: [
Row(
......@@ -227,7 +262,9 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
color: Color(0xFFFFF3CE),
borderRadius: BorderRadius.circular(8),
),
child: SvgPicture.asset("assets/svg/fin_ic.svg"),
child: SvgPicture.asset(
"assets/svg/fin_ic.svg",
),
),
),
SizedBox(width: 10),
......@@ -235,7 +272,8 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
flex: 4,
child: SizedBox(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
orderDetails.accountName ?? "-",
......@@ -303,8 +341,7 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
Expanded(
child: InkResponse(
onTap: () {
if (Headings[j] ==
"Purchase Order") {
if (Headings[j] == "Purchase Order") {
Navigator.push(
context,
MaterialPageRoute(
......@@ -324,22 +361,21 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
child: Text(
Headings[j] == "Purchase Order"
? "View"
:subHeadings[j]==""?"-":"${subHeadings[j]}",
: subHeadings[j] == ""
? "-"
: "${subHeadings[j]}",
style: TextStyle(
fontSize: 14,
color:
Headings[j] ==
"Purchase Order"
Headings[j] == "Purchase Order"
? AppColors.app_blue
: Color(0xFF818181),
decoration:
Headings[j] ==
"Purchase Order"
Headings[j] == "Purchase Order"
? TextDecoration.underline
: TextDecoration.none,
decorationColor:
Headings[j] ==
"Purchase Order"
Headings[j] == "Purchase Order"
? AppColors.app_blue
: AppColors.white,
),
......@@ -352,27 +388,25 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
}),
InkResponse(
onTap: () async {
provider.showMoreDetails = !provider.showMoreDetails;
provider.showMoreDetails =
!provider.showMoreDetails;
},
child: Container(
padding: EdgeInsets.symmetric(
vertical: 5,
),
padding: EdgeInsets.symmetric(vertical: 5),
child: Row(
crossAxisAlignment:
CrossAxisAlignment.center,
mainAxisAlignment:
MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
provider.showMoreDetails?"- Show Less": "+ More Details",
provider.showMoreDetails
? "- Show Less"
: "+ More Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
),
),
],
),
),
......@@ -411,7 +445,9 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
},
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
borderRadius: BorderRadius.circular(
8,
),
color: Color(0xFFFFEFEF),
border: Border.all(
color: Color(0xFFED3424),
......@@ -452,7 +488,9 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
},
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
borderRadius: BorderRadius.circular(
8,
),
color: Color(0xFFE7FFE5),
border: Border.all(
color: Color(0xFF0D9C00),
......@@ -480,7 +518,9 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
},
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
borderRadius: BorderRadius.circular(
8,
),
color: Color(0xFFFFEFEF),
border: Border.all(
color: Color(0xFFED3424),
......@@ -504,12 +544,21 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
child: InkResponse(
onTap: () {
disProvider.initializeForm(context);
disProvider.ordersDetailsDispatchOrderViewFunction(context,widget.orderId);
_showDispatchSheet(context, "Dispatch");
disProvider
.ordersDetailsDispatchOrderViewFunction(
context,
widget.orderId,
);
_showDispatchSheet(
context,
"Dispatch",
);
},
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
borderRadius: BorderRadius.circular(
8,
),
color: Color(0xFFFFEFEF),
border: Border.all(
color: Color(0xFFED3424),
......@@ -540,7 +589,8 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
},
);
},
);
)
: NoNetwork(context);
}
Future<void> _showOptionsSheet(BuildContext context) {
......@@ -890,18 +940,26 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
),
],
InkWell(
onTap:provider.submitClicked?null: () {
onTap:
provider.submitClicked
? null
: () {
provider.submitClicked = true;
provider.approvalRejectionAPIFunction(
context,
details.status,
details.id,
type == "Approve" ? "Approved" : "Rejected",
type == "Approve"
? "Approved"
: "Rejected",
details.tpcApplicable,
details.tpcApplicable == "Yes"
? (widget.mode == "level_one_approval"
? details.level1TpcApprovedAmount
: details.level2TpcApprovedAmount)
? (widget.mode ==
"level_one_approval"
? details
.level1TpcApprovedAmount
: details
.level2TpcApprovedAmount)
: "",
widget.mode == "dispatched"
? details.invoiceNumber
......@@ -934,9 +992,14 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
borderRadius: BorderRadius.circular(14.0),
),
child: Center(
child:provider.submitClicked?CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(Colors.white),
): Text(
child:
provider.submitClicked
? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(
Colors.white,
),
)
: Text(
"Submit",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
......@@ -1041,7 +1104,10 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
false,
null,
),
errorWidget(context, disProvider.driverMobileNumberError),
errorWidget(
context,
disProvider.driverMobileNumberError,
),
InkResponse(
onTap: () {
disProvider.editAddNewRow();
......@@ -1070,21 +1136,30 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
),
),
if (disProvider.leadProductsList.isNotEmpty ||
disProvider.engineNumberControllers.isNotEmpty)...[
disProvider
.engineNumberControllers
.isNotEmpty) ...[
ListView.builder(
itemCount: disProvider.engineNumberControllers.length,
itemCount:
disProvider.engineNumberControllers.length,
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemBuilder: (context, j) {
return Container(
padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 10),
margin: const EdgeInsets.symmetric(vertical: 10),
padding: const EdgeInsets.symmetric(
horizontal: 10,
vertical: 10,
),
margin: const EdgeInsets.symmetric(
vertical: 10,
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
TextWidget(context, "Product"),
DropdownButtonHideUnderline(
......@@ -1095,37 +1170,74 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
isExpanded: true,
hint: const Text(
'Select Product',
style: TextStyle(fontSize: 14),
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 14,
),
overflow:
TextOverflow.ellipsis,
),
items: disProvider.productsList
.map((ord) => DropdownMenuItem<Products>(
items:
disProvider.productsList
.map(
(
ord,
) => DropdownMenuItem<
Products
>(
value: ord,
child: Text(
"(Product Name: ${ord.productName})",
style: const TextStyle(fontSize: 14),
overflow: TextOverflow.ellipsis,
style:
const TextStyle(
fontSize:
14,
),
overflow:
TextOverflow
.ellipsis,
),
),
))
)
.toList(),
value: disProvider.selectedProductIds[j] != null
? disProvider.productsList.firstWhere(
(ord) => ord.id == disProvider.selectedProductIds[j],
orElse: () => disProvider.productsList[0],
value:
disProvider.selectedProductIds[j] !=
null
? disProvider
.productsList
.firstWhere(
(ord) =>
ord.id ==
disProvider
.selectedProductIds[j],
orElse:
() =>
disProvider
.productsList[0],
)
: null,
onChanged: (Products? value) {
if (value != null) {
disProvider.updateSelectedProductIds(j, value);
disProvider.selectedProductIds[j] =
value.id?.toString() ?? '';
disProvider.updateTotalAmount(j);
disProvider
.updateSelectedProductIds(
j,
value,
);
disProvider
.selectedProductIds[j] =
value.id?.toString() ??
'';
disProvider
.updateTotalAmount(j);
}
},
buttonStyleData: ddtheme.buttonStyleData,
iconStyleData: ddtheme.iconStyleData,
menuItemStyleData: ddtheme.menuItemStyleData,
dropdownStyleData: ddtheme.dropdownStyleData,
buttonStyleData:
ddtheme.buttonStyleData,
iconStyleData:
ddtheme.iconStyleData,
menuItemStyleData:
ddtheme.menuItemStyleData,
dropdownStyleData:
ddtheme.dropdownStyleData,
),
),
],
......@@ -1138,15 +1250,28 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
flex: 2,
child: textControllerWidget(
context,
disProvider.engineNumberControllers[j],
disProvider
.engineNumberControllers[j],
"Engine Number",
"Enter Engine Number",
(p0) {
if(disProvider.engineNumberControllers[j].text.trim().isEmpty){
disProvider.pdiIDControllers[j].clear();
if (disProvider
.engineNumberControllers[j]
.text
.trim()
.isEmpty) {
disProvider
.pdiIDControllers[j]
.clear();
}
disProvider.updateTotalAmount(j);
disProvider.ordersPDIIDByEngineNumberFunction(context,j);
disProvider.updateTotalAmount(
j,
);
disProvider
.ordersPDIIDByEngineNumberFunction(
context,
j,
);
},
TextInputType.text,
false,
......@@ -1165,7 +1290,8 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
disProvider.pdiIDControllers[j],
"PDI ID",
"Enter PDI ID",
(value) => disProvider.updateTotalAmount(j),
(value) => disProvider
.updateTotalAmount(j),
TextInputType.text,
true,
null,
......@@ -1187,7 +1313,10 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
),
],
InkWell(
onTap:provider.submitClicked?null: () {
onTap:
provider.submitClicked
? null
: () {
provider.submitClicked = false;
final data = disProvider.getFormData();
print(data);
......@@ -1196,17 +1325,22 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
details.status,
details.id,
type == "Dispatch",
provider.approveRejectFeedbackController.text,
provider
.approveRejectFeedbackController
.text,
details.tpcApplicable,
details.tpcApplicable == "Yes"
? (widget.mode == "level_one_approval"
? details.level1TpcApprovedAmount
: details.level2TpcApprovedAmount)
? (widget.mode ==
"level_one_approval"
? details
.level1TpcApprovedAmount
: details
.level2TpcApprovedAmount)
: "",
provider.saleOrderNumberController.text,
provider.editCompanyController.text,
data,
widget.mode
widget.mode,
);
},
......@@ -1224,9 +1358,14 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
borderRadius: BorderRadius.circular(14.0),
),
child: Center(
child:provider.submitClicked?CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(Colors.white),
): Text(
child:
provider.submitClicked
? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(
Colors.white,
),
)
: Text(
"Submit",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
......@@ -1347,7 +1486,10 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
),
],
InkWell(
onTap:provider.submitClicked ?null: () {
onTap:
provider.submitClicked
? null
: () {
provider.submitClicked = true;
provider.delectionAPIFunction(
context,
......@@ -1368,9 +1510,14 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
borderRadius: BorderRadius.circular(14.0),
),
child: Center(
child:provider.submitClicked ?CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(Colors.white),
): Text(
child:
provider.submitClicked
? CircularProgressIndicator.adaptive(
valueColor: AlwaysStoppedAnimation(
Colors.white,
),
)
: Text(
"Submit",
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white),
......
......@@ -13,6 +13,9 @@ import '../../Utils/commonWidgets.dart';
import '../../Utils/dropdownTheme.dart';
import '../commonDateRangeFilter.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class OrderslistbyModes extends StatefulWidget {
final mode;
final pageTitleName;
......@@ -29,11 +32,17 @@ class OrderslistbyModes extends StatefulWidget {
class _OrderslistbyModesState extends State<OrderslistbyModes> {
Dropdowntheme ddtheme = Dropdowntheme();
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Pagesdashboardprovider>(
context,
......@@ -44,9 +53,28 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer<Pagesdashboardprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection == "Online"
? Consumer<Pagesdashboardprovider>(
builder: (context, provider, child) {
final ordersList = provider.ordersList;
return WillPopScope(
......@@ -56,7 +84,7 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
},
child: SafeArea(
top: false,
bottom: Platform.isIOS?false:true,
bottom: Platform.isIOS ? false : true,
child: Scaffold(
resizeToAvoidBottomInset: true,
appBar: appbar2(
......@@ -71,7 +99,6 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
// },
// child: SvgPicture.asset("assets/svg/ic_download.svg"),
// ),
InkResponse(
onTap: () async {
_showFilterSheet(context);
......@@ -110,7 +137,8 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
),
);
}
if(ordersList[index].orderNumber=="GP20252605448")
if (ordersList[index].orderNumber ==
"GP20252605448")
return Container(
padding: EdgeInsets.symmetric(
horizontal: 10,
......@@ -122,7 +150,9 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(16),
borderRadius: BorderRadius.circular(
16,
),
),
child: Column(
children: [
......@@ -133,11 +163,15 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
child: Container(
height: 50,
width: 35,
padding: EdgeInsets.all(8.0),
padding: EdgeInsets.all(
8.0,
),
decoration: BoxDecoration(
color: Color(0xFFFFF3CE),
borderRadius:
BorderRadius.circular(8),
BorderRadius.circular(
8,
),
),
child: SvgPicture.asset(
"assets/svg/fin_ic.svg",
......@@ -150,24 +184,31 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
child: SizedBox(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
CrossAxisAlignment
.start,
children: [
Text(
ordersList[index]
.accountName!,
style: TextStyle(
fontFamily: "JakartaMedium",
fontFamily:
"JakartaMedium",
fontSize: 14,
color: AppColors.semi_black,
color:
AppColors
.semi_black,
),
),
Text(
"₹"
"${ordersList[index].balanceAmount}",
style: TextStyle(
fontFamily: "JakartaMedium",
fontFamily:
"JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
color:
AppColors
.app_blue,
),
),
],
......@@ -177,23 +218,31 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
Expanded(
flex: 2,
child: Container(
padding: EdgeInsets.symmetric(
padding:
EdgeInsets.symmetric(
horizontal: 5,
vertical: 10,
),
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(8),
BorderRadius.circular(
8,
),
color: Color(0xFFE3FFE0),
),
child: Center(
child: Text(
ordersList[index].status!,
textAlign: TextAlign.center,
ordersList[index]
.status!,
textAlign:
TextAlign.center,
style: TextStyle(
fontFamily: "JakartaMedium",
fontFamily:
"JakartaMedium",
fontSize: 14,
color: Color(0xFF0D9C00),
color: Color(
0xFF0D9C00,
),
),
),
),
......@@ -217,8 +266,10 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
final subHeadings = [
ordersList[index].orderNumber,
ordersList[index].enteredEmpName,
ordersList[index].salesPersonEmpName,
ordersList[index]
.enteredEmpName,
ordersList[index]
.salesPersonEmpName,
// ordersList[index].createdDatetime,
ordersList[index].paidAmount,
ordersList[index].balanceAmount,
......@@ -235,9 +286,12 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
child: Text(
headings[j],
style: TextStyle(
fontFamily: "JakartaMedium",
fontFamily:
"JakartaMedium",
fontSize: 14,
color: AppColors.semi_black,
color:
AppColors
.semi_black,
),
),
),
......@@ -247,9 +301,12 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
subHeadings[j]!,
style: TextStyle(
fontSize: 14,
color: Color(0xFF818181),
color: Color(
0xFF818181,
),
decoration:
TextDecoration.none,
TextDecoration
.none,
decorationColor:
AppColors.white,
),
......@@ -266,10 +323,12 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
context,
MaterialPageRoute(
builder:
(context) =>
Ordersdetailsbymodes(
(
context,
) => Ordersdetailsbymodes(
pageTitleName:
widget.pageTitleName,
widget
.pageTitleName,
orderId:
ordersList[index]
.orderId,
......@@ -277,9 +336,19 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
),
),
);
if(res==true){
provider.ordersListByModeFilterAPIFunction(context, widget.mode);
provider.ordersListByModeAPIFunction(context, widget.mode, "", "");
if (res == true) {
provider
.ordersListByModeFilterAPIFunction(
context,
widget.mode,
);
provider
.ordersListByModeAPIFunction(
context,
widget.mode,
"",
"",
);
}
},
child: Container(
......@@ -295,9 +364,11 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
Text(
"View Details",
style: TextStyle(
fontFamily: "JakartaMedium",
fontFamily:
"JakartaMedium",
fontSize: 14,
color: AppColors.app_blue,
color:
AppColors.app_blue,
),
),
SizedBox(width: 5),
......@@ -321,7 +392,8 @@ class _OrderslistbyModesState extends State<OrderslistbyModes> {
),
);
},
);
)
: NoNetwork(context);
}
Future<void> _showOptionsSheet(BuildContext context) {
......
......@@ -12,6 +12,8 @@ import '../finance/FileViewer.dart';
import 'editPaymentDetailsByMode.dart';
import 'ordersDetailsByModes.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class Paymentdetailsbymode extends StatefulWidget {
final pageTitleName;
final paymentId;
......@@ -29,10 +31,17 @@ class Paymentdetailsbymode extends StatefulWidget {
}
class _PaymentdetailsbymodeState extends State<Paymentdetailsbymode> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Paymentsprovider>(context, listen: false);
provider.paymentsDetailsByModeAPIFunction(
......@@ -43,9 +52,28 @@ class _PaymentdetailsbymodeState extends State<Paymentdetailsbymode> {
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer<Paymentsprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"?
Consumer<Paymentsprovider>(
builder: (context, provider, child) {
var paymentDetails = provider.paymentDetails;
var adjustList = provider.paidLists;
......@@ -485,7 +513,7 @@ class _PaymentdetailsbymodeState extends State<Paymentdetailsbymode> {
},
);
},
);
):NoNetwork(context);
}
......
......@@ -12,6 +12,8 @@ import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart';
import '../../Utils/dropdownTheme.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class Paymentlistsbymode extends StatefulWidget {
final mode;
final pageTitleName;
......@@ -25,10 +27,17 @@ class Paymentlistsbymode extends StatefulWidget {
class _PaymentlistsbymodeState extends State<Paymentlistsbymode> {
Dropdowntheme ddtheme = Dropdowntheme();
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Paymentsprovider>(
context,
......@@ -39,10 +48,27 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> {
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer<Paymentsprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"?
Consumer<Paymentsprovider>(
builder: (context, provider, child) {
final paymentLists = provider.paymentsList;
return WillPopScope(
......@@ -296,7 +322,7 @@ class _PaymentlistsbymodeState extends State<Paymentlistsbymode> {
),
);
},
);
):NoNetwork(context);
}
Future<void> _showOptionsSheet(BuildContext context) {
......
......@@ -10,6 +10,8 @@ import '../../Utils/commonWidgets.dart';
import '../finance/FileViewer.dart';
import 'ordersDetailsByModes.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class Tpcagentdetailsbymode extends StatefulWidget {
final tpcAgentId;
final pageTitleName;
......@@ -21,10 +23,18 @@ class Tpcagentdetailsbymode extends StatefulWidget {
}
class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>(
context,
......@@ -35,10 +45,28 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer<Tpcagentsprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"?
Consumer<Tpcagentsprovider>(
builder: (context, provider, child) {
var tpcAgentDetails = provider.TPCAgentsDetails;
var tpcReqAmt = provider.TPCRequestedAmounts;
......@@ -303,7 +331,8 @@ class _TpcagentdetailsbymodeState extends State<Tpcagentdetailsbymode> {
},
);
},
);
):
NoNetwork(context);
}
......
......@@ -10,6 +10,8 @@ import 'package:provider/provider.dart';
import '../../Utils/app_colors.dart';
import '../../Utils/commonWidgets.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:generp/Utils/commonServices.dart';
class Tpcagentlistbymode extends StatefulWidget {
final pageTitleName;
final mode;
......@@ -22,10 +24,17 @@ class Tpcagentlistbymode extends StatefulWidget {
}
class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
// TODO: implement initState
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
var provider = Provider.of<Tpcagentsprovider>(
context,
......@@ -36,10 +45,30 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> {
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Consumer<Tpcagentsprovider>(
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return connection=="Online"?
Consumer<Tpcagentsprovider>(
builder: (context, provider, child) {
final tpcAgentsLists = provider.tpcAgentsList;
return WillPopScope(
......@@ -297,6 +326,6 @@ class _TpcagentlistbymodeState extends State<Tpcagentlistbymode> {
),
);
},
);
):NoNetwork(context);
}
}
......@@ -171,6 +171,7 @@ class _PaymentdetailsState extends State<Paymentdetails> {
// To disable selecting this item
child: InkWell(
onTap: () {
Navigator.pop(context);
_addContactSheet(context);
},
child: Container(
......@@ -242,6 +243,7 @@ class _PaymentdetailsState extends State<Paymentdetails> {
],
),
),
errorWidget(context, provider.selectContactError),
SizedBox(height: 10),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
......@@ -313,6 +315,7 @@ class _PaymentdetailsState extends State<Paymentdetails> {
],
),
),
errorWidget(context, provider.selectPaymentError),
SizedBox(height: 10),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
......@@ -335,7 +338,11 @@ class _PaymentdetailsState extends State<Paymentdetails> {
),
child: TextFormField(
controller: provider.Amountcontroller,
keyboardType: TextInputType.text,
onChanged: (value) {
provider.selectAmountError = null;
},
keyboardType: TextInputType.numberWithOptions(),
textInputAction: TextInputAction.next,
decoration: InputDecoration(
hintText: "Enter Amount",
hintStyle: TextStyle(
......@@ -350,6 +357,7 @@ class _PaymentdetailsState extends State<Paymentdetails> {
),
),
),
errorWidget(context, provider.selectAmountError),
SizedBox(height: 10),
Padding(
padding: const EdgeInsets.only(bottom: 5.0),
......@@ -373,6 +381,9 @@ class _PaymentdetailsState extends State<Paymentdetails> {
child: TextFormField(
controller: provider.Referencecontroller,
keyboardType: TextInputType.text,
onChanged: (value) {
provider.ReferenceError = null;
},
decoration: InputDecoration(
hintText: "Enter Reference Number",
hintStyle: TextStyle(
......@@ -387,6 +398,7 @@ class _PaymentdetailsState extends State<Paymentdetails> {
),
),
),
errorWidget(context, provider.ReferenceError),
SizedBox(height: 10),
InkResponse(
onTap: () {
......@@ -425,7 +437,9 @@ class _PaymentdetailsState extends State<Paymentdetails> {
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [
Text(
Expanded(
flex: 5 ,
child: Text(
"${provider.imagePath}",
style: TextStyle(
color: AppColors.semi_black,
......@@ -433,7 +447,10 @@ class _PaymentdetailsState extends State<Paymentdetails> {
fontWeight: FontWeight.w600,
),
),
InkResponse(
),
Expanded(
flex: 1,
child: InkResponse(
onTap: () {
provider.imagePicked = 0;
provider.imagePath = null;
......@@ -445,10 +462,13 @@ class _PaymentdetailsState extends State<Paymentdetails> {
height: 15,
),
),
),
],
),
),
],
errorWidget(context, provider.imageError),
],
),
),
......@@ -458,29 +478,13 @@ class _PaymentdetailsState extends State<Paymentdetails> {
FloatingActionButtonLocation.centerFloat,
floatingActionButton: InkWell(
onTap: () {
print("clickedw");
if (provider.contactID == null) {
toast(context, "Please Select Contact");
return;
}
if (provider.paymentModeID == null) {
toast(context, "Please Select Payment Type");
return;
}
if (provider.image_picked == 0) {
toast(context, "Please add attachment");
return;
}
provider.PaymentUpdateAPI(
context,
provider.Referencecontroller.text,
provider.Amountcontroller.text,
);
Future.delayed(Duration(microseconds: 200), () {
if (provider.CollectionId != 0) {
showOTPSheetSheet(context);
}
});
},
child: Container(
alignment: Alignment.center,
......@@ -849,6 +853,14 @@ class _PaymentdetailsState extends State<Paymentdetails> {
provider.telController,
provider.emailController,
];
final Errors = [
provider.nameError,
provider.designationError,
provider.mobError,
provider.altMobError,
provider.telError,
provider.emailError,
];
return Padding(
padding: EdgeInsets.only(
bottom:
......@@ -904,7 +916,9 @@ class _PaymentdetailsState extends State<Paymentdetails> {
child: TextFormField(
controller: controllers[index],
focusNode: focusNodes[index],
onChanged: (value) {
Errors[index] = null;
},
maxLength:
[
"Mobile Number",
......@@ -915,6 +929,7 @@ class _PaymentdetailsState extends State<Paymentdetails> {
? 10
: 998895646546561356,
maxLines: 1,
keyboardType:
[
"Mobile Number",
......@@ -944,6 +959,7 @@ class _PaymentdetailsState extends State<Paymentdetails> {
),
),
),
errorWidget(context, Errors[index])
],
);
}),
......@@ -956,12 +972,9 @@ class _PaymentdetailsState extends State<Paymentdetails> {
widget.genId == ""
? widget.referenceID
: widget.genId,
provider.nameController.text,
provider.designationController.text,
provider.mobController.text,
provider.altMobController.text,
provider.telController.text,
provider.emailController.text,
widget.accountName,
widget.referenceID,
widget.genId,
);
},
child: Container(
......
import 'dart:io';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/ServiceEngineerDashboardProvider.dart';
import 'package:generp/Utils/app_colors.dart';
import 'package:generp/Utils/commonServices.dart';
import 'package:generp/Utils/commonWidgets.dart';
import 'package:provider/provider.dart';
import 'package:generp/screens/screensExports.dart';
......@@ -17,9 +19,17 @@ class Serviceengineerdashboard extends StatefulWidget {
}
class _ServiceengineerdashboardState extends State<Serviceengineerdashboard> {
Map _source = {ConnectivityResult.mobile: true};
final MyConnectivity _connectivity = MyConnectivity.instance;
@override
void initState() {
super.initState();
_connectivity.initialise();
_connectivity.myStream.listen((source) {
setState(() => _source = source);
});
WidgetsBinding.instance.addPostFrameCallback((_) {
var serviceProvider = Provider.of<Serviceengineerdashboardprovider>(
context,
......@@ -28,15 +38,32 @@ class _ServiceengineerdashboardState extends State<Serviceengineerdashboard> {
serviceProvider.LoadTechnicianDashboard(context);
});
}
@override
void dispose() {
// TODO: implement dispose
super.dispose();
_connectivity.disposeStream();
}
@override
Widget build(BuildContext context) {
return Platform.isAndroid
switch (_source.keys.toList()[0]) {
case ConnectivityResult.mobile:
connection = 'Online';
break;
case ConnectivityResult.wifi:
connection = 'Online';
break;
case ConnectivityResult.none:
default:
connection = 'Offline';
}
return (connection=="Online")? Platform.isAndroid
? WillPopScope(
onWillPop: () => onBackPressed(context),
child: SafeArea(top: false, bottom: true, child: _scaffold(context)),
)
: _scaffold(context);
: _scaffold(context):NoNetwork(context);
}
Widget _scaffold(BuildContext context) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment