Commit 4807bee4 authored by Sai Srinivas's avatar Sai Srinivas
Browse files

19-06-2025 By Sai Srinivas

Order Module Edit and minor test cases.
parent d006edb4
class EditPaymentDetailsAdjustedOrdersViewResponse {
List<PaidList>? paidList;
List<EditOrderList>? editOrderList;
String? error;
String? message;
EditPaymentDetailsAdjustedOrdersViewResponse(
{this.paidList, this.editOrderList, this.error, this.message});
EditPaymentDetailsAdjustedOrdersViewResponse.fromJson(
Map<String, dynamic> json) {
if (json['paid_list'] != null) {
paidList = <PaidList>[];
json['paid_list'].forEach((v) {
paidList!.add(new PaidList.fromJson(v));
});
}
if (json['order_list'] != null) {
editOrderList = <EditOrderList>[];
json['order_list'].forEach((v) {
editOrderList!.add(new EditOrderList.fromJson(v));
});
}
error = json['error'];
message = json['message'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
if (this.paidList != null) {
data['paid_list'] = this.paidList!.map((v) => v.toJson()).toList();
}
if (this.editOrderList != null) {
data['order_list'] = this.editOrderList!.map((v) => v.toJson()).toList();
}
data['error'] = this.error;
data['message'] = this.message;
return data;
}
}
class PaidList {
String? accId;
String? orderId;
String? orderPaymentId;
String? orderNumber;
String? orderAmount;
String? paidAmount;
String? balanceAmount;
String? adjustedAmount;
PaidList(
{this.accId,
this.orderId,
this.orderPaymentId,
this.orderNumber,
this.orderAmount,
this.paidAmount,
this.balanceAmount,
this.adjustedAmount});
PaidList.fromJson(Map<String, dynamic> json) {
accId = json['acc_id'];
orderId = json['order_id'];
orderPaymentId = json['order_payment_id'];
orderNumber = json['order_number'];
orderAmount = json['order_amount'];
paidAmount = json['paid_amount'];
balanceAmount = json['balance_amount'];
adjustedAmount = json['adjusted_amount'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['acc_id'] = this.accId;
data['order_id'] = this.orderId;
data['order_payment_id'] = this.orderPaymentId;
data['order_number'] = this.orderNumber;
data['order_amount'] = this.orderAmount;
data['paid_amount'] = this.paidAmount;
data['balance_amount'] = this.balanceAmount;
data['adjusted_amount'] = this.adjustedAmount;
return data;
}
}
class EditOrderList {
String? orderId;
String? orderNumber;
String? totalAmount;
String? balanceAmount;
String? createdDatetime;
EditOrderList(
{this.orderId,
this.orderNumber,
this.totalAmount,
this.balanceAmount,
this.createdDatetime});
EditOrderList.fromJson(Map<String, dynamic> json) {
orderId = json['order_id'];
orderNumber = json['order_number'];
totalAmount = json['total_amount'];
balanceAmount = json['balance_amount'];
createdDatetime = json['created_datetime'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['order_id'] = this.orderId;
data['order_number'] = this.orderNumber;
data['total_amount'] = this.totalAmount;
data['balance_amount'] = this.balanceAmount;
data['created_datetime'] = this.createdDatetime;
return data;
}
}
...@@ -345,6 +345,7 @@ class Addpaymentprovider extends ChangeNotifier{ ...@@ -345,6 +345,7 @@ class Addpaymentprovider extends ChangeNotifier{
Future<void> ordersAddPaymentSelectOrderAPIFunction(context,accountID) async { Future<void> ordersAddPaymentSelectOrderAPIFunction(context,accountID) async {
try{ try{
print("ACID:${accountID}");
final provider = Provider.of<HomescreenNotifier>(context,listen: false); final provider = Provider.of<HomescreenNotifier>(context,listen: false);
final data = await ApiCalling.AddOrderPaymentSelectOrderAPI(provider.empId, provider.session, accountID); final data = await ApiCalling.AddOrderPaymentSelectOrderAPI(provider.empId, provider.session, accountID);
if(data!=null){ if(data!=null){
......
...@@ -4,177 +4,334 @@ import 'package:generp/Utils/commonServices.dart'; ...@@ -4,177 +4,334 @@ import 'package:generp/Utils/commonServices.dart';
import 'package:generp/services/api_calling.dart'; import 'package:generp/services/api_calling.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import '../../Models/ordersModels/AddOrderPaymentSelectOrderResponse.dart'; import '../../Models/ordersModels/EditPaymentDetailsAdjustedOrdersViewResponse.dart';
import 'addPaymentProvider.dart'; import 'addPaymentProvider.dart';
class Editpaymentprovider extends ChangeNotifier{ class Editpaymentprovider extends ChangeNotifier {
bool _submitLoading = false; bool _submitLoading = false;
List<PaidList> _paidList = [];
List<EditOrderList> _editOrderList = [];
PaidList? _selectedPaidList;
EditOrderList? _selectedOrderList;
List<TextEditingController> editOrderAmountControllers = [];
List<TextEditingController> editOrderAmountControllers2 = [];
List<String?> _selectedPaidOrderIDs = [];
List<String?> _selectedOrderIDs = [];
List<Map<String, String>> _insertAmounts = [];
List<Map<String, String>> _updateAmounts = [];
List<PaidList> get paidList => _paidList;
List<EditOrderList> get editOrderList => _editOrderList;
PaidList? get selectedPaidList => _selectedPaidList;
EditOrderList? get selectedOrderList => _selectedOrderList;
List<String?> get selectedPaidOrderIDs => _selectedPaidOrderIDs;
List<String?> get selectedOrderIDs => _selectedOrderIDs;
bool get submitLoading => _submitLoading; bool get submitLoading => _submitLoading;
set submitLoading(bool value){ set selectedPaidOrderIDs(List<String?> value) {
_submitLoading = value; _selectedPaidOrderIDs = value;
notifyListeners(); notifyListeners();
} }
List<OrderList> _orderList = [];
List<Map<String, String>> _selectedOrders = [];
OrderList? _selectedOrderLists;
List<String?> _selectedOrderIds = [];
List<TextEditingController> orderAmountControllers = [];
TextEditingController orderAdjustedAmountController = TextEditingController();
List<Map<String, String>?> _rowMetadata = []; set selectedOrderIDs(List<String?> value) {
List<OrderList> get orderList => _orderList; _selectedOrderIDs = value;
OrderList? get selectedOrderLists => _selectedOrderLists; notifyListeners();
}
set selectedOrderLists(OrderList? value){ set selectedPaidList(PaidList? value) {
_selectedOrderLists = value; _selectedPaidList = value;
notifyListeners(); notifyListeners();
} }
Future<void> ordersAddPaymentSelectOrderAPIFunction(context, accountID) async {
try { set selectedOrderList(EditOrderList? value) {
final provider = Provider.of<HomescreenNotifier>(context, listen: false); _selectedOrderList = value;
final data = await ApiCalling.AddOrderPaymentSelectOrderAPI(
provider.empId, provider.session, accountID);
if (data != null) {
if (data.error == "0") {
_orderList = data.orderList!;
notifyListeners(); notifyListeners();
} else {
print("API Error: ${data.error}");
} }
} else {
print("API returned null data"); set submitLoading(bool value) {
_submitLoading = value;
notifyListeners();
} }
} catch (e, s) {
print("Error: $e, Stack: $s"); void updateSelectedPaidOrderId(int index, PaidList? value) {
_selectedPaidList = value!;
_selectedPaidOrderIDs[index] = value!.orderId;
print(_selectedPaidOrderIDs[index]);
notifyListeners();
} }
void updateSelectedOrderId(int index, EditOrderList? value) {
_selectedOrderList = value!;
print(index);
print(value);
print(value!.orderId);
if (index > 0) {
_selectedOrderIDs[index] = value!.orderId;
print(_selectedOrderIDs[index]);
} else {
_selectedOrderIDs[0] = value!.orderId;
print(_selectedOrderIDs[0]);
} }
void addNewRow() {
final controller = TextEditingController();
controller.addListener(_updateAdjustedAmount);
orderAmountControllers.add(controller);
_selectedOrderIds.add(null);
_rowMetadata.add(null); // New row, no metadata
notifyListeners(); notifyListeners();
} }
void addRowWithMetadata(Map<String, String> metadata) { void editAddNewRow() {
final controller = TextEditingController(); editOrderAmountControllers.add(TextEditingController());
controller.addListener(_updateAdjustedAmount); _selectedPaidOrderIDs.add(null);
orderAmountControllers.add(controller);
_selectedOrderIds.add(null);
_rowMetadata.add(metadata); // Store metadata for existing order
notifyListeners(); notifyListeners();
} }
void removeRow(int index) { void editAddNewRow2() {
orderAmountControllers[index].removeListener(_updateAdjustedAmount); editOrderAmountControllers2.add(TextEditingController());
orderAmountControllers[index].dispose(); _selectedOrderIDs.add(null);
orderAmountControllers.removeAt(index);
_selectedOrderIds.removeAt(index);
_rowMetadata.removeAt(index);
_updateAdjustedAmount();
notifyListeners(); notifyListeners();
} }
void _updateAdjustedAmount() { void editRemoveRow(int index) {
int tempAdjustAmount = 0; editOrderAmountControllers[index].dispose();
for (int i = 0; i < orderAmountControllers.length; i++) { editOrderAmountControllers.removeAt(index);
final text = orderAmountControllers[i].text; _selectedPaidOrderIDs.removeAt(index);
if (_selectedOrderIds[i] != null && text.isNotEmpty) { notifyListeners();
tempAdjustAmount += int.tryParse(text) ?? 0;
}
} }
orderAdjustedAmountController.text = tempAdjustAmount.toString();
void editRemoveRow2(int index) {
editOrderAmountControllers2[index].dispose();
editOrderAmountControllers2.removeAt(index);
_selectedOrderIDs.removeAt(index);
notifyListeners(); notifyListeners();
} }
// List<Map<String, String>> getFormData() {
// _insertAmounts = [];
// Map<String, String> latestEntries = {};
// for (int i = 0; i < _selectedOrderIDs.length; i++) {
// final rowData = {
// "selected_order_id": _selectedOrderIDs.toString(),
// "insert_amount": editOrderAmountControllers2[i].text.toString(),
//
//
// };
// _updateAmounts.add(rowData);
// }
//
// _insertAmounts = latestEntries.entries
// .map((entry) =>
// {
// "selected_order_id": entry.key,
// "insert_amount": entry.value,
// })
// .toList();
//
// print("Form Data: $_insertAmounts");
// notifyListeners();
// return _insertAmounts;
// }
List<Map<String, String>> getFormData() { List<Map<String, String>> getFormData() {
_selectedOrders = []; _insertAmounts = [];
int tempAdjustAmount = 0; Map<String, String> latestEntries = {};
for (int i = 0; i < editOrderAmountControllers2.length; i++) {
for (int i = 0; i < orderAmountControllers.length; i++) { if (_selectedOrderIDs[i] != null &&
if (_selectedOrderIds[i] != null && orderAmountControllers[i].text.isNotEmpty) { editOrderAmountControllers2[i].text.isNotEmpty) {
final amount = orderAmountControllers[i].text; latestEntries[_selectedOrderIDs[i]!] =
tempAdjustAmount += int.parse(double.parse(amount).round().toString()); editOrderAmountControllers2[i].text;
if (_rowMetadata[i] != null) {
// Existing order from widget.values
_selectedOrders.add({
"order_id": _rowMetadata[i]!["order_id"]!,
"order_payment_id": _rowMetadata[i]!["order_payment_id"]!,
"selected_order_id": _selectedOrderIds[i]!,
"updateable_payment_amount": amount,
});
} else {
// New row added by user
_selectedOrders.add({
"selected_order_id": _selectedOrderIds[i]!,
"insert_amount": amount,
});
} }
} }
_insertAmounts =
latestEntries.entries
.map(
(entry) => {
"selected_order_id": entry.key,
"insert_amount": entry.value,
},
)
.toList();
print("Form Data: $_insertAmounts");
notifyListeners();
return _insertAmounts;
} }
print("Form Data: $_selectedOrders"); // List<Map<String, String>> getFormData() {
orderAdjustedAmountController.text = tempAdjustAmount.toString(); // _insertAmounts = [];
print("Total Adjusted Amount: $tempAdjustAmount"); // for (int i = 0; i < _selectedOrderIDs.length; i++) {
// if (_selectedOrderIDs[i] != null && editOrderAmountControllers2[i].text.isNotEmpty) {
// final rowData = {
// "selected_order_id": _selectedOrderIDs[i]!,
// "insert_amount": editOrderAmountControllers2[i].text,
// };
// _insertAmounts.add(rowData);
// }
// }
// print("Form Data: $_insertAmounts");
// notifyListeners();
// return _insertAmounts;
// }
List<Map<String, String>> getFormDataUpdate() {
_updateAmounts = [];
for (int i = 0; i < _paidList.length; i++) {
final rowData = {
"order_id": _paidList[i]!.orderId.toString(),
"order_payment_id": _paidList[i]!.orderPaymentId.toString(),
"selected_order_id": _paidList[i]!.orderId.toString(),
"updateable_payment_amount": _paidList[i]!.adjustedAmount.toString(),
};
_updateAmounts.add(rowData);
}
print("Form Data: $_updateAmounts");
notifyListeners(); notifyListeners();
return _selectedOrders; return _updateAmounts;
} }
Future<void> editPaymentDetailsAPIFunction(context,payment_id, description, payment_type, ref_no, payment_date, amount) async {
try{ Future<void> editPaymentDetailsAPIFunction(
context,
payment_id,
description,
payment_type,
ref_no,
payment_date,
amount,
) async {
try {
_submitLoading = true; _submitLoading = true;
notifyListeners(); notifyListeners();
final provider = Provider.of<HomescreenNotifier>(context,listen: false); final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final addOrderProvider = Provider.of<Addpaymentprovider>(context,listen: false); final addOrderProvider = Provider.of<Addpaymentprovider>(
final data = await ApiCalling.ordersEditPaymentDetailsAPI(provider.empId, provider.session, payment_id, description, payment_type, ref_no, payment_date, amount); context,
if(data!=null){ listen: false,
if(data.error=="0"){ );
final data = await ApiCalling.ordersEditPaymentDetailsAPI(
provider.empId,
provider.session,
payment_id,
description,
payment_type,
ref_no,
payment_date,
amount,
);
if (data != null) {
if (data.error == "0") {
_submitLoading = false; _submitLoading = false;
addOrderProvider.resetForm(); addOrderProvider.resetForm();
Navigator.pop(context); Navigator.pop(context,true);
toast(context, data.message); toast(context, data.message);
notifyListeners(); notifyListeners();
}else if(data.error=="1"){ } else if (data.error == "1") {
_submitLoading = false; _submitLoading = false;
notifyListeners(); notifyListeners();
} }
}else{ } else {
_submitLoading = false; _submitLoading = false;
notifyListeners(); notifyListeners();
} }
}catch(e,s){ } catch (e, s) {
_submitLoading = false; _submitLoading = false;
notifyListeners(); notifyListeners();
} }
} }
void updateSelectedOrderId(int index, OrderList? value) { Future<void> editPaymentDetailsAdjustedOrdersViewAPIFunction(
if (value != null) { context,
_selectedOrderLists = value; payment_id,
_selectedOrderIds[index] = value.orderId; ) async {
print("Selected Order ID at index $index: ${_selectedOrderIds[index]}"); try {
print("payment_id: ${payment_id}");
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final data =
await ApiCalling.ordersEditPaymentDetailsAdjustedOrdersViewAPI(
provider.empId,
provider.session,
payment_id,
);
if (data != null) {
if (data.error == "0") {
_editOrderList = data.editOrderList!;
_paidList = data.paidList!;
getFormDataUpdate();
notifyListeners(); notifyListeners();
} } else if (data.error == "1") {}
} else {}
} catch (e, s) {}
} }
void resetForm() { Future<void> editPaymentDetailsAdjustedOrdersUpdateAPIFunction(
for (var controller in orderAmountControllers) { context,
controller.removeListener(_updateAdjustedAmount); payment_id,
controller.dispose(); update_amounts,
insert_amounts,
) async {
try {
_submitLoading = true;
notifyListeners();
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final data =
await ApiCalling.ordersEditPaymentDetailsAdjustedOrdersUpdateAPI(
provider.empId,
provider.session,
payment_id,
update_amounts,
insert_amounts,
);
if (data != null) {
if (data.error == "0") {
_submitLoading = false;
resetForm();
Navigator.pop(context,true);
toast(context, data.message);
notifyListeners();
} else if (data.error == "1") {
_submitLoading = false;
notifyListeners();
} }
orderAmountControllers.clear(); } else {
_selectedOrderIds.clear(); _submitLoading = false;
_rowMetadata.clear();
_selectedOrders.clear();
orderAdjustedAmountController.clear();
submitLoading = false;
notifyListeners(); notifyListeners();
} }
} catch (e, s) {
_submitLoading = false;
notifyListeners();
}
}
} void checkDropdownselected() {
if (_selectedOrderList != null &&
!_editOrderList.contains(_selectedOrderList)) {
selectedOrderList = null;
_selectedOrderIDs.clear();
}
if (_selectedPaidList != null && !_paidList.contains(_selectedPaidList)) {
_selectedPaidList = null;
_selectedPaidOrderIDs.clear();
}
}
void resetForm() {
_submitLoading =false;
checkDropdownselected();
_selectedPaidList = null;
_selectedOrderList = null;
_selectedOrderIDs.clear();
_selectedPaidOrderIDs.clear();
editOrderAmountControllers.forEach((controller) => controller.dispose());
editOrderAmountControllers2.forEach((controller) => controller.dispose());
editOrderAmountControllers.clear();
editOrderAmountControllers2.clear();
}
}
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'GlobalConstants.dart'; import 'GlobalConstants.dart';
import 'app_colors.dart'; import 'app_colors.dart';
...@@ -101,6 +102,119 @@ Widget Emptywidget(BuildContext context){ ...@@ -101,6 +102,119 @@ Widget Emptywidget(BuildContext context){
); );
} }
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget errorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(
context,
controller,
hintText,
Function(String)? onChanged,
inputtype,
readonly,
inputFormatters,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
readOnly: readonly,
keyboardType: inputtype,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
inputFormatters:
inputFormatters != null
? [FilteringTextInputFormatter.digitsOnly]
: [],
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Widget textControllerReadonlyWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFFE9E9E9),
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
readOnly: true,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
style: TextStyle(color: Color(0xFF818181), fontSize: 14),
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
class MyNavigatorObserver extends NavigatorObserver { class MyNavigatorObserver extends NavigatorObserver {
@override @override
void didPush(Route route, Route? previousRoute) { void didPush(Route route, Route? previousRoute) {
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/commonProvider/accountsListProvider.dart'; import 'package:generp/Notifiers/commonProvider/accountsListProvider.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
...@@ -287,10 +288,10 @@ class _AccountslistState extends State<Accountslist> { ...@@ -287,10 +288,10 @@ class _AccountslistState extends State<Accountslist> {
), ),
textControllerWidget(context, provider.companyNameController, "Company Name", (p0) { textControllerWidget(context, provider.companyNameController, "Company Name", (p0) {
},), },TextInputType.text,false,null),
textControllerWidget(context, provider.mobileNumberController, "Mobile Number", (p0) { textControllerWidget(context, provider.mobileNumberController, "Mobile Number", (p0) {
},), },TextInputType.number,false,FilteringTextInputFormatter.digitsOnly),
InkResponse( InkResponse(
onTap: () { onTap: () {
Navigator.pop(context); Navigator.pop(context);
...@@ -330,50 +331,7 @@ class _AccountslistState extends State<Accountslist> { ...@@ -330,50 +331,7 @@ class _AccountslistState extends State<Accountslist> {
); );
} }
Widget textControllerWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Future<bool> _onBackPressed(BuildContext context) async { Future<bool> _onBackPressed(BuildContext context) async {
Provider.of<Accountslistprovider>(context, listen: false).pageNum = 1; Provider.of<Accountslistprovider>(context, listen: false).pageNum = 1;
Navigator.pop(context, true); Navigator.pop(context, true);
......
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/commonProvider/accountsListProvider.dart'; import 'package:generp/Notifiers/commonProvider/accountsListProvider.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
...@@ -141,7 +142,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -141,7 +142,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
], ],
), ),
), ),
ErrorWidget(context,provider.accountError), errorWidget(context,provider.accountError),
textControllerWidget( textControllerWidget(
context, context,
provider.nameController, provider.nameController,
...@@ -153,8 +154,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -153,8 +154,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
"name", "name",
provider.nameController.text, provider.nameController.text,
); );
}, },TextInputType.text,false,null
),ErrorWidget(context,provider.nameError), ),errorWidget(context,provider.nameError),
textControllerWidget( textControllerWidget(
context, context,
provider.mobileController, provider.mobileController,
...@@ -166,9 +167,9 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -166,9 +167,9 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
"mob1", "mob1",
provider.mobileController.text, provider.mobileController.text,
); );
}, },TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context,provider.mobileError), errorWidget(context,provider.mobileError),
Text("State"), Text("State"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
child: Row( child: Row(
...@@ -258,7 +259,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -258,7 +259,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
], ],
), ),
), ),
ErrorWidget(context,provider.stateError), errorWidget(context,provider.stateError),
Text("District"), Text("District"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
child: Row( child: Row(
...@@ -349,7 +350,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -349,7 +350,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
], ],
), ),
), ),
ErrorWidget(context,provider.districtError), errorWidget(context,provider.districtError),
Text("Sub Locality"), Text("Sub Locality"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
child: Row( child: Row(
...@@ -436,14 +437,14 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -436,14 +437,14 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
], ],
), ),
), ),
ErrorWidget(context,provider.localityError), errorWidget(context,provider.localityError),
textControllerWidget( textControllerWidget(
context, context,
provider.addressController, provider.addressController,
"Enter Address", "Enter Address",
provider.updateAddress, provider.updateAddress,TextInputType.text,false,null
), ),
ErrorWidget(context,provider.addressError), errorWidget(context,provider.addressError),
], ],
), ),
), ),
...@@ -486,44 +487,44 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -486,44 +487,44 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
context, context,
provider.bankNameController, provider.bankNameController,
"Bank Name", "Bank Name",
provider.updateBankName, provider.updateBankName,TextInputType.text,false,null
), ),
ErrorWidget(context,provider.banknameError), errorWidget(context,provider.banknameError),
textControllerWidget( textControllerWidget(
context, context,
provider.branchNameController, provider.branchNameController,
"Bank Branch", "Bank Branch",
provider.updateBankBranch, provider.updateBankBranch,TextInputType.text,false,null
), ),
ErrorWidget(context,provider.bankBranchError), errorWidget(context,provider.bankBranchError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankIfscCotroller, provider.bankIfscCotroller,
"Bank IFSC", "Bank IFSC",
provider.updateIFSC, provider.updateIFSC,TextInputType.text,false,null
), ),
ErrorWidget(context,provider.bankIFSCError), errorWidget(context,provider.bankIFSCError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankHolderNameController, provider.bankHolderNameController,
"Bank Holder Name", "Bank Holder Name",
provider.updateHolder, provider.updateHolder,TextInputType.text,false,null
), ),
ErrorWidget(context,provider.bankHolderNameError), errorWidget(context,provider.bankHolderNameError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankAcNumberController, provider.bankAcNumberController,
"Bank Account Number", "Bank Account Number",
provider.updateNumber, provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context,provider.bankAcNumberError), errorWidget(context,provider.bankAcNumberError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankUpiController, provider.bankUpiController,
"Bank UPI ID", "Bank UPI ID",
provider.updateUPI, provider.updateUPI,TextInputType.text,false,null
), ),
ErrorWidget(context,provider.upiError), errorWidget(context,provider.upiError),
], ],
), ),
), ),
...@@ -546,16 +547,16 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -546,16 +547,16 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
context, context,
provider.contactPersonController, provider.contactPersonController,
"Contact Person Name", "Contact Person Name",
provider.updateContactPerson, provider.updateContactPerson,TextInputType.text,false,null
), ),
ErrorWidget(context,provider.contactPersonError), errorWidget(context,provider.contactPersonError),
textControllerWidget( textControllerWidget(
context, context,
provider.contectPersonDesignationController, provider.contectPersonDesignationController,
"Contact Person Designation", "Contact Person Designation",
provider.updateDesignation, provider.updateDesignation,TextInputType.text,false,null
), ),
ErrorWidget(context,provider.desigantionError), errorWidget(context,provider.desigantionError),
textControllerWidget( textControllerWidget(
context, context,
provider.contectPersonAltMobController, provider.contectPersonAltMobController,
...@@ -563,23 +564,23 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -563,23 +564,23 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
(p0) { (p0) {
provider.updateAltMobile(p0); provider.updateAltMobile(p0);
provider.checkInputsAPI(context, "mob2", provider.contectPersonAltMobController.text); provider.checkInputsAPI(context, "mob2", provider.contectPersonAltMobController.text);
}, },TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context,provider.altMobError), errorWidget(context,provider.altMobError),
textControllerWidget( textControllerWidget(
context, context,
provider.contectPersonTeleController, provider.contectPersonTeleController,
"Telephone Number", "Telephone Number",
provider.updateTeleMobile, provider.updateTeleMobile,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context,provider.teleError), errorWidget(context,provider.teleError),
textControllerWidget( textControllerWidget(
context, context,
provider.contectPersonMailController, provider.contectPersonMailController,
"Customer Mail ID", "Customer Mail ID",
provider.updateMail, provider.updateMail,TextInputType.text,false,null
), ),
ErrorWidget(context,provider.mailError), errorWidget(context,provider.mailError),
], ],
), ),
) )
...@@ -623,54 +624,5 @@ class _AddcommonpaymentState extends State<Addcommonpayment> { ...@@ -623,54 +624,5 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
}, },
); );
} }
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
} }
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/screens/notifierExports.dart'; import 'package:generp/screens/notifierExports.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
...@@ -426,13 +427,13 @@ class _PaymentrequestionlistdetailsState ...@@ -426,13 +427,13 @@ class _PaymentrequestionlistdetailsState
context, context,
approvedAmount, approvedAmount,
"Enter Approved Amount", "Enter Approved Amount",
(p0) {}, (p0) {},TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
textControllerWidget( textControllerWidget(
context, context,
remarks, remarks,
"Enter Remarks", "Enter Remarks",
(p0) {}, (p0) {},TextInputType.text,false,null
), ),
TextWidget(context, "Proposed Payment Account"), TextWidget(context, "Proposed Payment Account"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
...@@ -628,7 +629,7 @@ class _PaymentrequestionlistdetailsState ...@@ -628,7 +629,7 @@ class _PaymentrequestionlistdetailsState
context, context,
remarks, remarks,
"Enter Remarks", "Enter Remarks",
(p0) {}, (p0) {},TextInputType.text,false,null
), ),
InkWell( InkWell(
onTap: () { onTap: () {
...@@ -824,14 +825,14 @@ class _PaymentrequestionlistdetailsState ...@@ -824,14 +825,14 @@ class _PaymentrequestionlistdetailsState
context, context,
paymentReferenceNumber, paymentReferenceNumber,
"Enter Payment Reference Number", "Enter Payment Reference Number",
(p0) {}, (p0) {},TextInputType.text,false,null
), ),
textControllerWidget( textControllerWidget(
context, context,
remarks, remarks,
"Enter Remarks", "Enter Remarks",
(p0) {}, (p0) {},TextInputType.text,false,null
), ),
InkResponse( InkResponse(
...@@ -1087,115 +1088,7 @@ class _PaymentrequestionlistdetailsState ...@@ -1087,115 +1088,7 @@ class _PaymentrequestionlistdetailsState
); );
} }
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height:
hintText == "Enter Description" || hintText == "Enter Remarks"
? 150
: 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines:
hintText == "Enter Description" || hintText == "Enter Remarks"
? 60
: 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Widget textControllerReadonlyWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFFE9E9E9),
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
readOnly: true,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
style: TextStyle(color: Color(0xFF818181), fontSize: 14),
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
} }
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Models/financeModels/addReceiptPaymentResponse.dart'; import 'package:generp/Models/financeModels/addReceiptPaymentResponse.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -147,7 +148,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -147,7 +148,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
], ],
), ),
), ),
ErrorWidget(context, provider.selectAccountError), errorWidget(context, provider.selectAccountError),
TextWidget(context, "Payment Account"), TextWidget(context, "Payment Account"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
child: Row( child: Row(
...@@ -242,15 +243,15 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -242,15 +243,15 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
], ],
), ),
), ),
ErrorWidget(context, provider.selectPaymentAccountError), errorWidget(context, provider.selectPaymentAccountError),
textControllerWidget( textControllerWidget(
context, context,
provider.amountController, provider.amountController,
"Enter Amount", "Enter Amount",
provider.updateAmount, provider.updateAmount,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context, provider.amountError), errorWidget(context, provider.amountError),
///payment date toBE ///payment date toBE
TextWidget(context, "Receipt Date"), TextWidget(context, "Receipt Date"),
GestureDetector( GestureDetector(
...@@ -300,7 +301,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -300,7 +301,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
], ],
), ),
), ),
ErrorWidget(context, provider.dateError), errorWidget(context, provider.dateError),
TextWidget(context, "Select Payment Mode"), TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
...@@ -392,7 +393,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -392,7 +393,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
], ],
), ),
), ),
ErrorWidget(context, provider.paymentModeError), errorWidget(context, provider.paymentModeError),
if ([ if ([
"Cheque", "Cheque",
"RTGS", "RTGS",
...@@ -404,61 +405,61 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -404,61 +405,61 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
context, context,
provider.bankNameController, provider.bankNameController,
"Enter Bank Name", "Enter Bank Name",
provider.updateBankName, provider.updateBankName,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankNameError), errorWidget(context, provider.bankNameError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankBranchController, provider.bankBranchController,
"Enter Bank Branch", "Enter Bank Branch",
provider.updateBankBranch, provider.updateBankBranch,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankBranchError), errorWidget(context, provider.bankBranchError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankAccNumberController, provider.bankAccNumberController,
"Enter Account Number", "Enter Account Number",
provider.updateNumber, provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context, provider.bankNumberError), errorWidget(context, provider.bankNumberError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankIfscController, provider.bankIfscController,
"Enter Bank IFSC", "Enter Bank IFSC",
provider.updateIFSC, provider.updateIFSC,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankIFSCError), errorWidget(context, provider.bankIFSCError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankAcHolderController, provider.bankAcHolderController,
"Enter Bank Account Holder Name", "Enter Bank Account Holder Name",
provider.updateHolder, provider.updateHolder,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankHolderError), errorWidget(context, provider.bankHolderError),
] else if (provider.paymentModeValue == "UPI") ... ] else if (provider.paymentModeValue == "UPI") ...
[ [
textControllerWidget( textControllerWidget(
context, context,
provider.amountController, provider.amountController,
"Enter UPI ID", "Enter UPI ID",
provider.updateUPI, provider.updateUPI,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.UPIError), errorWidget(context, provider.UPIError),
], ],
textControllerWidget( textControllerWidget(
context, context,
provider.paymentReferenceController, provider.paymentReferenceController,
"Enter Payment Reference Number", "Enter Payment Reference Number",
provider.updatereference, provider.updatereference,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.paymentreferenceError), errorWidget(context, provider.paymentreferenceError),
textControllerWidget( textControllerWidget(
context, context,
provider.descController, provider.descController,
"Enter Description", "Enter Description",
provider.updateDescription, provider.updateDescription,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.descriptionError), errorWidget(context, provider.descriptionError),
InkResponse( InkResponse(
onTap: () { onTap: () {
_showAttachmentSheet(context); _showAttachmentSheet(context);
...@@ -602,64 +603,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> { ...@@ -602,64 +603,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
), ),
); );
} }
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Future<void> _showAttachmentSheet(BuildContext context) { Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet( return showModalBottomSheet(
......
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart'; import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
...@@ -155,7 +156,7 @@ class _DirectpaymentrequesitionlistState ...@@ -155,7 +156,7 @@ class _DirectpaymentrequesitionlistState
], ],
), ),
), ),
ErrorWidget(context, provider.selectDirectAccountError), errorWidget(context, provider.selectDirectAccountError),
TextWidget(context, "Payment Account"), TextWidget(context, "Payment Account"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
child: Row( child: Row(
...@@ -254,7 +255,7 @@ class _DirectpaymentrequesitionlistState ...@@ -254,7 +255,7 @@ class _DirectpaymentrequesitionlistState
], ],
), ),
), ),
ErrorWidget( errorWidget(
context, context,
provider.selectDirectPaymentAccountError, provider.selectDirectPaymentAccountError,
), ),
...@@ -262,9 +263,9 @@ class _DirectpaymentrequesitionlistState ...@@ -262,9 +263,9 @@ class _DirectpaymentrequesitionlistState
context, context,
provider.amountController, provider.amountController,
"Enter Amount", "Enter Amount",
provider.updateAmount, provider.updateAmount,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context, provider.amountError), errorWidget(context, provider.amountError),
///payment date toBE ///payment date toBE
TextWidget(context, "Enter Date"), TextWidget(context, "Enter Date"),
...@@ -316,7 +317,7 @@ class _DirectpaymentrequesitionlistState ...@@ -316,7 +317,7 @@ class _DirectpaymentrequesitionlistState
], ],
), ),
), ),
ErrorWidget(context, provider.dateError), errorWidget(context, provider.dateError),
TextWidget(context, "Select Payment Mode"), TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
child: Row( child: Row(
...@@ -411,7 +412,7 @@ class _DirectpaymentrequesitionlistState ...@@ -411,7 +412,7 @@ class _DirectpaymentrequesitionlistState
], ],
), ),
), ),
ErrorWidget(context, provider.selectDirectPaymentError), errorWidget(context, provider.selectDirectPaymentError),
if ([ if ([
"Cheque", "Cheque",
"RTGS", "RTGS",
...@@ -422,60 +423,60 @@ class _DirectpaymentrequesitionlistState ...@@ -422,60 +423,60 @@ class _DirectpaymentrequesitionlistState
context, context,
provider.bankNameController, provider.bankNameController,
"Enter Bank Name", "Enter Bank Name",
provider.updateBankName, provider.updateBankName,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankNameError), errorWidget(context, provider.bankNameError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankBranchController, provider.bankBranchController,
"Enter Bank Branch", "Enter Bank Branch",
provider.updateBankBranch, provider.updateBankBranch,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankBranchError), errorWidget(context, provider.bankBranchError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankAccNumberController, provider.bankAccNumberController,
"Enter Account Number", "Enter Account Number",
provider.updateNumber, provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context, provider.bankNumberError), errorWidget(context, provider.bankNumberError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankIfscController, provider.bankIfscController,
"Enter Bank IFSC", "Enter Bank IFSC",
provider.updateIFSC, provider.updateIFSC,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankIFSCError), errorWidget(context, provider.bankIFSCError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankAcHolderController, provider.bankAcHolderController,
"Enter Bank Account Holder Name", "Enter Bank Account Holder Name",
provider.updateHolder, provider.updateHolder,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankHolderError), errorWidget(context, provider.bankHolderError),
] else if (provider.directPaymentModesValues == "UPI") ...[ ] else if (provider.directPaymentModesValues == "UPI") ...[
textControllerWidget( textControllerWidget(
context, context,
provider.amountController, provider.amountController,
"Enter UPI ID", "Enter UPI ID",
provider.updateUPI, provider.updateUPI,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.UPIError), errorWidget(context, provider.UPIError),
], ],
textControllerWidget( textControllerWidget(
context, context,
provider.paymentReferenceController, provider.paymentReferenceController,
"Enter Payment Reference Number", "Enter Payment Reference Number",
provider.updateReference, provider.updateReference,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.paymentreferenceerror), errorWidget(context, provider.paymentreferenceerror),
textControllerWidget( textControllerWidget(
context, context,
provider.descController, provider.descController,
"Enter Description", "Enter Description",
provider.updateDescription, provider.updateDescription,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.descriptionError), errorWidget(context, provider.descriptionError),
InkResponse( InkResponse(
onTap: () { onTap: () {
_showAttachmentSheet(context); _showAttachmentSheet(context);
...@@ -626,64 +627,7 @@ class _DirectpaymentrequesitionlistState ...@@ -626,64 +627,7 @@ class _DirectpaymentrequesitionlistState
); );
} }
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Future<void> _showAttachmentSheet(BuildContext context) { Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet( return showModalBottomSheet(
......
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart'; import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart';
import 'package:generp/Utils/app_colors.dart'; import 'package:generp/Utils/app_colors.dart';
...@@ -155,7 +156,7 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -155,7 +156,7 @@ class _SubmitpaymentrequestionlistsbymodeState
], ],
), ),
), ),
ErrorWidget(context, provider.selectAccountError), errorWidget(context, provider.selectAccountError),
if (["self", "admin"].contains(widget.mode)) ...[ if (["self", "admin"].contains(widget.mode)) ...[
TextWidget(context, "Select Requisition Type"), TextWidget(context, "Select Requisition Type"),
...@@ -244,26 +245,26 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -244,26 +245,26 @@ class _SubmitpaymentrequestionlistsbymodeState
context, context,
provider.reqPurposeController, provider.reqPurposeController,
"Enter Request Purpose", "Enter Request Purpose",
provider.updateReqPupose, provider.updateReqPupose,TextInputType.text,false,null
), ),
], ],
ErrorWidget(context, provider.reqPurposeError), errorWidget(context, provider.reqPurposeError),
textControllerWidget( textControllerWidget(
context, context,
provider.descController, provider.descController,
"Enter Description", "Enter Description",
provider.updateDescription, provider.updateDescription,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.descriptionError), errorWidget(context, provider.descriptionError),
textControllerWidget( textControllerWidget(
context, context,
provider.amountController, provider.amountController,
"Enter Amount", "Enter Amount",
provider.updateAmount, provider.updateAmount,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context, provider.amountError), errorWidget(context, provider.amountError),
TextWidget(context, "Select Payment Mode"), TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
...@@ -352,7 +353,7 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -352,7 +353,7 @@ class _SubmitpaymentrequestionlistsbymodeState
], ],
), ),
), ),
ErrorWidget(context, provider.selectPaymentError), errorWidget(context, provider.selectPaymentError),
InkResponse( InkResponse(
onTap: () { onTap: () {
...@@ -403,7 +404,7 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -403,7 +404,7 @@ class _SubmitpaymentrequestionlistsbymodeState
), ),
) )
], ],
ErrorWidget(context, provider.FileError), errorWidget(context, provider.FileError),
if ([ if ([
"Cheque", "Cheque",
...@@ -415,49 +416,49 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -415,49 +416,49 @@ class _SubmitpaymentrequestionlistsbymodeState
context, context,
provider.bankNameController, provider.bankNameController,
"Enter Bank Name", "Enter Bank Name",
provider.updateBankName, provider.updateBankName,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankNameError), errorWidget(context, provider.bankNameError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankBranchController, provider.bankBranchController,
"Enter Bank Branch", "Enter Bank Branch",
provider.updateBankBranch, provider.updateBankBranch,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankBranchError), errorWidget(context, provider.bankBranchError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankAccNumberController, provider.bankAccNumberController,
"Enter Account Number", "Enter Account Number",
provider.updateNumber, provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context, provider.bankNumberError), errorWidget(context, provider.bankNumberError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankIfscController, provider.bankIfscController,
"Enter Bank IFSC", "Enter Bank IFSC",
provider.updateIFSC, provider.updateIFSC,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankIFSCError), errorWidget(context, provider.bankIFSCError),
textControllerWidget( textControllerWidget(
context, context,
provider.bankAcHolderController, provider.bankAcHolderController,
"Enter Bank Account Holder Name", "Enter Bank Account Holder Name",
provider.updateHolder, provider.updateHolder,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.bankHolderError), errorWidget(context, provider.bankHolderError),
] else if (provider.paymentModeValue == "UPI") ...[ ] else if (provider.paymentModeValue == "UPI") ...[
textControllerWidget( textControllerWidget(
context, context,
provider.amountController, provider.amountController,
"Enter UPI ID", "Enter UPI ID",
provider.updateUPI, provider.updateUPI,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.UPIError), errorWidget(context, provider.UPIError),
], ],
], ],
), ),
...@@ -502,64 +503,6 @@ class _SubmitpaymentrequestionlistsbymodeState ...@@ -502,64 +503,6 @@ class _SubmitpaymentrequestionlistsbymodeState
); );
} }
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Future<void> _showAttachmentSheet(BuildContext context) { Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet( return showModalBottomSheet(
......
...@@ -558,7 +558,7 @@ class _GeneratorPartDetailsScreenState ...@@ -558,7 +558,7 @@ class _GeneratorPartDetailsScreenState
), ),
child: TextField( child: TextField(
controller: quantitycontroller, controller: quantitycontroller,
keyboardType: TextInputType.text, keyboardType: TextInputType.numberWithOptions(decimal: true,signed: true),
focusNode: quantityFocusNode, focusNode: quantityFocusNode,
style: TextStyle(fontSize: 14), style: TextStyle(fontSize: 14),
......
...@@ -180,7 +180,7 @@ class _InventoryScreenState extends State<InventoryScreen> { ...@@ -180,7 +180,7 @@ class _InventoryScreenState extends State<InventoryScreen> {
), ),
child: TextField( child: TextField(
controller: partIDcontroller, controller: partIDcontroller,
keyboardType: TextInputType.emailAddress, keyboardType: TextInputType.text,
focusNode: partIDfocusNode, focusNode: partIDfocusNode,
textCapitalization: TextCapitalization.characters, textCapitalization: TextCapitalization.characters,
......
This diff is collapsed.
...@@ -2,6 +2,7 @@ import 'dart:async'; ...@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -482,15 +483,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -482,15 +483,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
ErrorWidget(context, provider.selectAccountError), errorWidget(context, provider.selectAccountError),
textControllerWidget( textControllerWidget(
context, context,
provider.amountController, provider.amountController,
"Amount", "Amount",
provider.onChangeAmount, provider.onChangeAmount,
TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context, provider.amountError), errorWidget(context, provider.amountError),
///Addorderbutton ///Addorderbutton
if(provider.selectedAccountID!.isNotEmpty)...[ if(provider.selectedAccountID!.isNotEmpty)...[
InkResponse( InkResponse(
...@@ -573,7 +575,10 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -573,7 +575,10 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
), ),
) )
.toList(), .toList(),
value: provider.selectedOrderLists, // value: provider.selectedOrderLists,
value: provider.orderList.firstWhere(
(product) => product.orderId == provider.selectedOrderIds[index],
),
onChanged: (OrderList? value) { onChanged: (OrderList? value) {
if (value != null) { if (value != null) {
if (provider.orderList.isNotEmpty) { if (provider.orderList.isNotEmpty) {
...@@ -643,7 +648,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -643,7 +648,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
flex: 2, flex: 2,
child: textControllerWidget(context, provider.orderAmountControllers[index], "Enter Order Amount", (p0) { child: textControllerWidget(context, provider.orderAmountControllers[index], "Enter Order Amount", (p0) {
},), },TextInputType.number,false,FilteringTextInputFormatter.digitsOnly),
), ),
// SizedBox(width: 10), // SizedBox(width: 10),
// //
...@@ -669,8 +674,9 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -669,8 +674,9 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
provider.orderAdjustedAmountController, provider.orderAdjustedAmountController,
"Order Adjusted Amount", "Order Adjusted Amount",
provider.onChangeorderAdjustedAmount, provider.onChangeorderAdjustedAmount,
TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context, provider.orderAdjustedAmountError), errorWidget(context, provider.orderAdjustedAmountError),
TextWidget(context, "Description"), TextWidget(context, "Description"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
child: Row( child: Row(
...@@ -756,7 +762,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -756,7 +762,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
], ],
), ),
), ),
ErrorWidget(context, provider.descriptionError), errorWidget(context, provider.descriptionError),
TextWidget(context, "Payment Received Date"), TextWidget(context, "Payment Received Date"),
...@@ -807,7 +813,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -807,7 +813,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
], ],
), ),
), ),
ErrorWidget(context, provider.dateError), errorWidget(context, provider.dateError),
TextWidget(context, "Select Payment Mode"), TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
...@@ -894,16 +900,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -894,16 +900,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
], ],
), ),
), ),
ErrorWidget(context, provider.paymentModeError), errorWidget(context, provider.paymentModeError),
textControllerWidget( textControllerWidget(
context, context,
provider.paymentRefController, provider.paymentRefController,
"Payment Reference No. / Cheque No. / UTR No. tf", "Payment Reference No. / Cheque No. / UTR No. tf",
provider.onChangepaymentRef, provider.onChangepaymentRef,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.paymentRefError), errorWidget(context, provider.paymentRefError),
InkResponse( InkResponse(
...@@ -995,64 +1001,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> { ...@@ -995,64 +1001,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
}, },
); );
} }
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Future<void> _showAttachmentSheet(BuildContext context) { Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet( return showModalBottomSheet(
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -55,14 +56,14 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -55,14 +56,14 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
children: [ children: [
textControllerWidget(context,provider.tpcNameController,"Enter Name",provider.onChangetpcName), textControllerWidget(context,provider.tpcNameController,"Enter Name",provider.onChangetpcName,TextInputType.text,false,null),
if(provider.tpcNameError!=null)...[ if(provider.tpcNameError!=null)...[
ErrorWidget(context, provider.tpcNameError) errorWidget(context, provider.tpcNameError)
], ],
textControllerWidget(context,provider.tpcMobileNumberController,"Enter Mobile Number",provider.onChangetpcMobileNumber), textControllerWidget(context,provider.tpcMobileNumberController,"Enter Mobile Number",provider.onChangetpcMobileNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly),
if(provider.tpcMobileNumberError!=null)...[ if(provider.tpcMobileNumberError!=null)...[
ErrorWidget(context, provider.tpcMobileNumberError) errorWidget(context, provider.tpcMobileNumberError)
], ],
InkResponse( InkResponse(
...@@ -115,30 +116,30 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -115,30 +116,30 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
) )
], ],
textControllerWidget(context,provider.tpcBankNameController,"Enter Bank Name",provider.onChangetpcBankName), textControllerWidget(context,provider.tpcBankNameController,"Enter Bank Name",provider.onChangetpcBankName,TextInputType.text,false,null),
if(provider.tpcBankNameError!=null)...[ if(provider.tpcBankNameError!=null)...[
ErrorWidget(context, provider.tpcBankNameError) errorWidget(context, provider.tpcBankNameError)
], ],
textControllerWidget(context,provider.tpcBankBeneficiaryNameController,"Enter Bank Beneficiary Name",provider.onChangetpcBankBeneficiaryName), textControllerWidget(context,provider.tpcBankBeneficiaryNameController,"Enter Bank Beneficiary Name",provider.onChangetpcBankBeneficiaryName,TextInputType.text,false,null),
if(provider.tpcBankBeneficiaryNameError!=null)...[ if(provider.tpcBankBeneficiaryNameError!=null)...[
ErrorWidget(context, provider.tpcBankBeneficiaryNameError) errorWidget(context, provider.tpcBankBeneficiaryNameError)
], ],
textControllerWidget(context,provider.tpcBankAccountNumberController,"Enter Bank Account Number",provider.onChangetpcBankAccountNumber), textControllerWidget(context,provider.tpcBankAccountNumberController,"Enter Bank Account Number",provider.onChangetpcBankAccountNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly),
if(provider.tpcBankAccountNumberError!=null)...[ if(provider.tpcBankAccountNumberError!=null)...[
ErrorWidget(context, provider.tpcBankAccountNumberError) errorWidget(context, provider.tpcBankAccountNumberError)
], ],
textControllerWidget(context,provider.tpcBankIFSCController,"Enter Bank IFSC",provider.onChangetpcBankIFSC), textControllerWidget(context,provider.tpcBankIFSCController,"Enter Bank IFSC",provider.onChangetpcBankIFSC,TextInputType.text,false,null),
if(provider.tpcBankIFSCError!=null)...[ if(provider.tpcBankIFSCError!=null)...[
ErrorWidget(context, provider.tpcBankIFSCError) errorWidget(context, provider.tpcBankIFSCError)
], ],
textControllerWidget(context,provider.tpcNoteController,"Enter Description",provider.onChangetpcNote), textControllerWidget(context,provider.tpcNoteController,"Enter Description",provider.onChangetpcNote,TextInputType.text,false,null),
if(provider.tpcNoteError!=null)...[ if(provider.tpcNoteError!=null)...[
ErrorWidget(context, provider.tpcNoteError) errorWidget(context, provider.tpcNoteError)
], ],
InkWell( InkWell(
onTap: () { onTap: () {
...@@ -188,62 +189,7 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> { ...@@ -188,62 +189,7 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
); );
} }
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(context,
controller,
hintText,
Function(String)? onChanged,) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Future<void> _showAttachmentSheet(BuildContext context) { Future<void> _showAttachmentSheet(BuildContext context) {
return showModalBottomSheet( return showModalBottomSheet(
......
...@@ -2,6 +2,7 @@ import 'dart:async'; ...@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:dropdown_button2/dropdown_button2.dart'; import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
...@@ -178,14 +179,15 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -178,14 +179,15 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
], ],
), ),
), ),
ErrorWidget(context, provider.descriptionError), errorWidget(context, provider.descriptionError),
textControllerWidget( textControllerWidget(
context, context,
provider.amountController, provider.amountController,
"Amount", "Amount",
provider.onChangeAmount, provider.onChangeAmount,
TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
), ),
ErrorWidget(context, provider.amountError), errorWidget(context, provider.amountError),
TextWidget(context, "Select Payment Mode"), TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline( DropdownButtonHideUnderline(
...@@ -272,16 +274,16 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -272,16 +274,16 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
], ],
), ),
), ),
ErrorWidget(context, provider.paymentModeError), errorWidget(context, provider.paymentModeError),
textControllerWidget( textControllerWidget(
context, context,
provider.paymentRefController, provider.paymentRefController,
"Payment Reference No. / Cheque No. / UTR No. tf", "Payment Reference No. / Cheque No. / UTR No. tf",
provider.onChangepaymentRef, provider.onChangepaymentRef,TextInputType.text,false,null
), ),
ErrorWidget(context, provider.paymentRefError), errorWidget(context, provider.paymentRefError),
TextWidget(context, "Payment Received Date"), TextWidget(context, "Payment Received Date"),
GestureDetector( GestureDetector(
onTap: () { onTap: () {
...@@ -330,7 +332,7 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -330,7 +332,7 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
], ],
), ),
), ),
ErrorWidget(context, provider.dateError), errorWidget(context, provider.dateError),
...@@ -382,63 +384,6 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> { ...@@ -382,63 +384,6 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
}, },
); );
} }
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(
context,
controller,
hintText,
Function(String)? onChanged,
) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
} }
...@@ -443,64 +443,6 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> { ...@@ -443,64 +443,6 @@ class _OrdersdetailsbymodesState extends State<Ordersdetailsbymodes> {
); );
} }
Widget TextWidget(context, text) {
return Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(text),
);
}
Widget ErrorWidget(context, text) {
if (text != null)
return Text(text!, style: TextStyle(color: Colors.red, fontSize: 12));
else
return SizedBox(height: 10);
}
Widget textControllerWidget(context,
controller,
hintText,
Function(String)? onChanged,) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(bottom: 5.0, top: 8.0),
child: Text(hintText),
),
Container(
height: hintText == "Enter Description" ? 150 : 50,
alignment: Alignment.center,
decoration: BoxDecoration(
color: AppColors.text_field_color,
borderRadius: BorderRadius.circular(14),
),
child: Padding(
padding: const EdgeInsets.fromLTRB(10.0, 0.0, 10, 0),
child: TextFormField(
controller: controller,
keyboardType: TextInputType.text,
maxLines: hintText == "Enter Description" ? 60 : 1,
onChanged: onChanged,
decoration: InputDecoration(
hintText: hintText,
hintStyle: TextStyle(
fontWeight: FontWeight.w400,
color: Color(0xFFB4BEC0),
fontSize: 14,
),
enabledBorder: InputBorder.none,
focusedBorder: InputBorder.none,
),
),
),
),
],
);
}
Future<void> _showLevelApprovalRejectionSheet(BuildContext context, type) { Future<void> _showLevelApprovalRejectionSheet(BuildContext context, type) {
return showModalBottomSheet( return showModalBottomSheet(
useSafeArea: true, useSafeArea: true,
......
This diff is collapsed.
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