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{
Future<void> ordersAddPaymentSelectOrderAPIFunction(context,accountID) async {
try{
print("ACID:${accountID}");
final provider = Provider.of<HomescreenNotifier>(context,listen: false);
final data = await ApiCalling.AddOrderPaymentSelectOrderAPI(provider.empId, provider.session, accountID);
if(data!=null){
......
......@@ -4,177 +4,334 @@ import 'package:generp/Utils/commonServices.dart';
import 'package:generp/services/api_calling.dart';
import 'package:provider/provider.dart';
import '../../Models/ordersModels/AddOrderPaymentSelectOrderResponse.dart';
import '../../Models/ordersModels/EditPaymentDetailsAdjustedOrdersViewResponse.dart';
import 'addPaymentProvider.dart';
class Editpaymentprovider extends ChangeNotifier{
class Editpaymentprovider extends ChangeNotifier {
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;
set submitLoading(bool value){
set selectedPaidOrderIDs(List<String?> value) {
_selectedPaidOrderIDs = value;
notifyListeners();
}
set selectedOrderIDs(List<String?> value) {
_selectedOrderIDs = value;
notifyListeners();
}
set selectedPaidList(PaidList? value) {
_selectedPaidList = value;
notifyListeners();
}
set selectedOrderList(EditOrderList? value) {
_selectedOrderList = value;
notifyListeners();
}
set submitLoading(bool value) {
_submitLoading = value;
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 = [];
List<OrderList> get orderList => _orderList;
OrderList? get selectedOrderLists => _selectedOrderLists;
void updateSelectedPaidOrderId(int index, PaidList? value) {
_selectedPaidList = value!;
set selectedOrderLists(OrderList? value){
_selectedOrderLists = value;
_selectedPaidOrderIDs[index] = value!.orderId;
print(_selectedPaidOrderIDs[index]);
notifyListeners();
}
Future<void> ordersAddPaymentSelectOrderAPIFunction(context, accountID) async {
try {
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final data = await ApiCalling.AddOrderPaymentSelectOrderAPI(
provider.empId, provider.session, accountID);
if (data != null) {
if (data.error == "0") {
_orderList = data.orderList!;
notifyListeners();
} else {
print("API Error: ${data.error}");
}
} else {
print("API returned null data");
}
} catch (e, s) {
print("Error: $e, Stack: $s");
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]);
}
notifyListeners();
}
void addNewRow() {
final controller = TextEditingController();
controller.addListener(_updateAdjustedAmount);
orderAmountControllers.add(controller);
_selectedOrderIds.add(null);
_rowMetadata.add(null); // New row, no metadata
void editAddNewRow() {
editOrderAmountControllers.add(TextEditingController());
_selectedPaidOrderIDs.add(null);
notifyListeners();
}
void addRowWithMetadata(Map<String, String> metadata) {
final controller = TextEditingController();
controller.addListener(_updateAdjustedAmount);
orderAmountControllers.add(controller);
_selectedOrderIds.add(null);
_rowMetadata.add(metadata); // Store metadata for existing order
void editAddNewRow2() {
editOrderAmountControllers2.add(TextEditingController());
_selectedOrderIDs.add(null);
notifyListeners();
}
void removeRow(int index) {
orderAmountControllers[index].removeListener(_updateAdjustedAmount);
orderAmountControllers[index].dispose();
orderAmountControllers.removeAt(index);
_selectedOrderIds.removeAt(index);
_rowMetadata.removeAt(index);
_updateAdjustedAmount();
void editRemoveRow(int index) {
editOrderAmountControllers[index].dispose();
editOrderAmountControllers.removeAt(index);
_selectedPaidOrderIDs.removeAt(index);
notifyListeners();
}
void _updateAdjustedAmount() {
int tempAdjustAmount = 0;
for (int i = 0; i < orderAmountControllers.length; i++) {
final text = orderAmountControllers[i].text;
if (_selectedOrderIds[i] != null && text.isNotEmpty) {
tempAdjustAmount += int.tryParse(text) ?? 0;
}
}
orderAdjustedAmountController.text = tempAdjustAmount.toString();
void editRemoveRow2(int index) {
editOrderAmountControllers2[index].dispose();
editOrderAmountControllers2.removeAt(index);
_selectedOrderIDs.removeAt(index);
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() {
_selectedOrders = [];
int tempAdjustAmount = 0;
for (int i = 0; i < orderAmountControllers.length; i++) {
if (_selectedOrderIds[i] != null && orderAmountControllers[i].text.isNotEmpty) {
final amount = orderAmountControllers[i].text;
tempAdjustAmount += int.parse(double.parse(amount).round().toString());
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 = [];
Map<String, String> latestEntries = {};
for (int i = 0; i < editOrderAmountControllers2.length; i++) {
if (_selectedOrderIDs[i] != null &&
editOrderAmountControllers2[i].text.isNotEmpty) {
latestEntries[_selectedOrderIDs[i]!] =
editOrderAmountControllers2[i].text;
}
}
print("Form Data: $_selectedOrders");
orderAdjustedAmountController.text = tempAdjustAmount.toString();
print("Total Adjusted Amount: $tempAdjustAmount");
_insertAmounts =
latestEntries.entries
.map(
(entry) => {
"selected_order_id": entry.key,
"insert_amount": entry.value,
},
)
.toList();
print("Form Data: $_insertAmounts");
notifyListeners();
return _selectedOrders;
return _insertAmounts;
}
Future<void> editPaymentDetailsAPIFunction(context,payment_id, description, payment_type, ref_no, payment_date, amount) async {
try{
// List<Map<String, String>> getFormData() {
// _insertAmounts = [];
// 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();
return _updateAmounts;
}
Future<void> editPaymentDetailsAPIFunction(
context,
payment_id,
description,
payment_type,
ref_no,
payment_date,
amount,
) async {
try {
_submitLoading = true;
notifyListeners();
final provider = Provider.of<HomescreenNotifier>(context,listen: false);
final addOrderProvider = Provider.of<Addpaymentprovider>(context,listen: false);
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"){
final provider = Provider.of<HomescreenNotifier>(context, listen: false);
final addOrderProvider = Provider.of<Addpaymentprovider>(
context,
listen: false,
);
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;
addOrderProvider.resetForm();
Navigator.pop(context);
Navigator.pop(context,true);
toast(context, data.message);
notifyListeners();
}else if(data.error=="1"){
} else if (data.error == "1") {
_submitLoading = false;
notifyListeners();
}
}else{
} else {
_submitLoading = false;
notifyListeners();
}
}catch(e,s){
} catch (e, s) {
_submitLoading = false;
notifyListeners();
}
}
void updateSelectedOrderId(int index, OrderList? value) {
if (value != null) {
_selectedOrderLists = value;
_selectedOrderIds[index] = value.orderId;
print("Selected Order ID at index $index: ${_selectedOrderIds[index]}");
Future<void> editPaymentDetailsAdjustedOrdersViewAPIFunction(
context,
payment_id,
) async {
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();
} else if (data.error == "1") {}
} else {}
} catch (e, s) {}
}
Future<void> editPaymentDetailsAdjustedOrdersUpdateAPIFunction(
context,
payment_id,
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();
}
} else {
_submitLoading = false;
notifyListeners();
}
} catch (e, s) {
_submitLoading = false;
notifyListeners();
}
}
void resetForm() {
for (var controller in orderAmountControllers) {
controller.removeListener(_updateAdjustedAmount);
controller.dispose();
void checkDropdownselected() {
if (_selectedOrderList != null &&
!_editOrderList.contains(_selectedOrderList)) {
selectedOrderList = null;
_selectedOrderIDs.clear();
}
if (_selectedPaidList != null && !_paidList.contains(_selectedPaidList)) {
_selectedPaidList = null;
_selectedPaidOrderIDs.clear();
}
orderAmountControllers.clear();
_selectedOrderIds.clear();
_rowMetadata.clear();
_selectedOrders.clear();
orderAdjustedAmountController.clear();
submitLoading = false;
notifyListeners();
}
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/services.dart';
import 'package:flutter_svg/svg.dart';
import 'GlobalConstants.dart';
import 'app_colors.dart';
......@@ -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 {
@override
void didPush(Route route, Route? previousRoute) {
......
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/commonProvider/accountsListProvider.dart';
import 'package:generp/Utils/app_colors.dart';
......@@ -287,10 +288,10 @@ class _AccountslistState extends State<Accountslist> {
),
textControllerWidget(context, provider.companyNameController, "Company Name", (p0) {
},),
},TextInputType.text,false,null),
textControllerWidget(context, provider.mobileNumberController, "Mobile Number", (p0) {
},),
},TextInputType.number,false,FilteringTextInputFormatter.digitsOnly),
InkResponse(
onTap: () {
Navigator.pop(context);
......@@ -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 {
Provider.of<Accountslistprovider>(context, listen: false).pageNum = 1;
Navigator.pop(context, true);
......
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/commonProvider/accountsListProvider.dart';
import 'package:generp/Utils/app_colors.dart';
......@@ -141,7 +142,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
],
),
),
ErrorWidget(context,provider.accountError),
errorWidget(context,provider.accountError),
textControllerWidget(
context,
provider.nameController,
......@@ -153,8 +154,8 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
"name",
provider.nameController.text,
);
},
),ErrorWidget(context,provider.nameError),
},TextInputType.text,false,null
),errorWidget(context,provider.nameError),
textControllerWidget(
context,
provider.mobileController,
......@@ -166,9 +167,9 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
"mob1",
provider.mobileController.text,
);
},
},TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context,provider.mobileError),
errorWidget(context,provider.mobileError),
Text("State"),
DropdownButtonHideUnderline(
child: Row(
......@@ -258,7 +259,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
],
),
),
ErrorWidget(context,provider.stateError),
errorWidget(context,provider.stateError),
Text("District"),
DropdownButtonHideUnderline(
child: Row(
......@@ -349,7 +350,7 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
],
),
),
ErrorWidget(context,provider.districtError),
errorWidget(context,provider.districtError),
Text("Sub Locality"),
DropdownButtonHideUnderline(
child: Row(
......@@ -436,14 +437,14 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
],
),
),
ErrorWidget(context,provider.localityError),
errorWidget(context,provider.localityError),
textControllerWidget(
context,
provider.addressController,
"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> {
context,
provider.bankNameController,
"Bank Name",
provider.updateBankName,
provider.updateBankName,TextInputType.text,false,null
),
ErrorWidget(context,provider.banknameError),
errorWidget(context,provider.banknameError),
textControllerWidget(
context,
provider.branchNameController,
"Bank Branch",
provider.updateBankBranch,
provider.updateBankBranch,TextInputType.text,false,null
),
ErrorWidget(context,provider.bankBranchError),
errorWidget(context,provider.bankBranchError),
textControllerWidget(
context,
provider.bankIfscCotroller,
"Bank IFSC",
provider.updateIFSC,
provider.updateIFSC,TextInputType.text,false,null
),
ErrorWidget(context,provider.bankIFSCError),
errorWidget(context,provider.bankIFSCError),
textControllerWidget(
context,
provider.bankHolderNameController,
"Bank Holder Name",
provider.updateHolder,
provider.updateHolder,TextInputType.text,false,null
),
ErrorWidget(context,provider.bankHolderNameError),
errorWidget(context,provider.bankHolderNameError),
textControllerWidget(
context,
provider.bankAcNumberController,
"Bank Account Number",
provider.updateNumber,
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context,provider.bankAcNumberError),
errorWidget(context,provider.bankAcNumberError),
textControllerWidget(
context,
provider.bankUpiController,
"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> {
context,
provider.contactPersonController,
"Contact Person Name",
provider.updateContactPerson,
provider.updateContactPerson,TextInputType.text,false,null
),
ErrorWidget(context,provider.contactPersonError),
errorWidget(context,provider.contactPersonError),
textControllerWidget(
context,
provider.contectPersonDesignationController,
"Contact Person Designation",
provider.updateDesignation,
provider.updateDesignation,TextInputType.text,false,null
),
ErrorWidget(context,provider.desigantionError),
errorWidget(context,provider.desigantionError),
textControllerWidget(
context,
provider.contectPersonAltMobController,
......@@ -563,23 +564,23 @@ class _AddcommonpaymentState extends State<Addcommonpayment> {
(p0) {
provider.updateAltMobile(p0);
provider.checkInputsAPI(context, "mob2", provider.contectPersonAltMobController.text);
},
},TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context,provider.altMobError),
errorWidget(context,provider.altMobError),
textControllerWidget(
context,
provider.contectPersonTeleController,
"Telephone Number",
provider.updateTeleMobile,
provider.updateTeleMobile,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context,provider.teleError),
errorWidget(context,provider.teleError),
textControllerWidget(
context,
provider.contectPersonMailController,
"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> {
},
);
}
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:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/screens/notifierExports.dart';
import 'package:generp/Utils/app_colors.dart';
......@@ -426,13 +427,13 @@ class _PaymentrequestionlistdetailsState
context,
approvedAmount,
"Enter Approved Amount",
(p0) {},
(p0) {},TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
textControllerWidget(
context,
remarks,
"Enter Remarks",
(p0) {},
(p0) {},TextInputType.text,false,null
),
TextWidget(context, "Proposed Payment Account"),
DropdownButtonHideUnderline(
......@@ -628,7 +629,7 @@ class _PaymentrequestionlistdetailsState
context,
remarks,
"Enter Remarks",
(p0) {},
(p0) {},TextInputType.text,false,null
),
InkWell(
onTap: () {
......@@ -824,14 +825,14 @@ class _PaymentrequestionlistdetailsState
context,
paymentReferenceNumber,
"Enter Payment Reference Number",
(p0) {},
(p0) {},TextInputType.text,false,null
),
textControllerWidget(
context,
remarks,
"Enter Remarks",
(p0) {},
(p0) {},TextInputType.text,false,null
),
InkResponse(
......@@ -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:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Models/financeModels/addReceiptPaymentResponse.dart';
import 'package:provider/provider.dart';
......@@ -147,7 +148,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
],
),
),
ErrorWidget(context, provider.selectAccountError),
errorWidget(context, provider.selectAccountError),
TextWidget(context, "Payment Account"),
DropdownButtonHideUnderline(
child: Row(
......@@ -242,15 +243,15 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
],
),
),
ErrorWidget(context, provider.selectPaymentAccountError),
errorWidget(context, provider.selectPaymentAccountError),
textControllerWidget(
context,
provider.amountController,
"Enter Amount",
provider.updateAmount,
provider.updateAmount,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context, provider.amountError),
errorWidget(context, provider.amountError),
///payment date toBE
TextWidget(context, "Receipt Date"),
GestureDetector(
......@@ -300,7 +301,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
],
),
),
ErrorWidget(context, provider.dateError),
errorWidget(context, provider.dateError),
TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline(
......@@ -392,7 +393,7 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
],
),
),
ErrorWidget(context, provider.paymentModeError),
errorWidget(context, provider.paymentModeError),
if ([
"Cheque",
"RTGS",
......@@ -404,61 +405,61 @@ class _AddpaymentreceiptlistState extends State<Addpaymentreceiptlist> {
context,
provider.bankNameController,
"Enter Bank Name",
provider.updateBankName,
provider.updateBankName,TextInputType.text,false,null
),
ErrorWidget(context, provider.bankNameError),
errorWidget(context, provider.bankNameError),
textControllerWidget(
context,
provider.bankBranchController,
"Enter Bank Branch",
provider.updateBankBranch,
provider.updateBankBranch,TextInputType.text,false,null
),
ErrorWidget(context, provider.bankBranchError),
errorWidget(context, provider.bankBranchError),
textControllerWidget(
context,
provider.bankAccNumberController,
"Enter Account Number",
provider.updateNumber,
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context, provider.bankNumberError),
errorWidget(context, provider.bankNumberError),
textControllerWidget(
context,
provider.bankIfscController,
"Enter Bank IFSC",
provider.updateIFSC,
provider.updateIFSC,TextInputType.text,false,null
),
ErrorWidget(context, provider.bankIFSCError),
errorWidget(context, provider.bankIFSCError),
textControllerWidget(
context,
provider.bankAcHolderController,
"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") ...
[
textControllerWidget(
context,
provider.amountController,
"Enter UPI ID",
provider.updateUPI,
provider.updateUPI,TextInputType.text,false,null
),
ErrorWidget(context, provider.UPIError),
errorWidget(context, provider.UPIError),
],
textControllerWidget(
context,
provider.paymentReferenceController,
"Enter Payment Reference Number",
provider.updatereference,
provider.updatereference,TextInputType.text,false,null
),
ErrorWidget(context, provider.paymentreferenceError),
errorWidget(context, provider.paymentreferenceError),
textControllerWidget(
context,
provider.descController,
"Enter Description",
provider.updateDescription,
provider.updateDescription,TextInputType.text,false,null
),
ErrorWidget(context, provider.descriptionError),
errorWidget(context, provider.descriptionError),
InkResponse(
onTap: () {
_showAttachmentSheet(context);
......@@ -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) {
return showModalBottomSheet(
......
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart';
import 'package:generp/Utils/app_colors.dart';
......@@ -155,7 +156,7 @@ class _DirectpaymentrequesitionlistState
],
),
),
ErrorWidget(context, provider.selectDirectAccountError),
errorWidget(context, provider.selectDirectAccountError),
TextWidget(context, "Payment Account"),
DropdownButtonHideUnderline(
child: Row(
......@@ -254,7 +255,7 @@ class _DirectpaymentrequesitionlistState
],
),
),
ErrorWidget(
errorWidget(
context,
provider.selectDirectPaymentAccountError,
),
......@@ -262,9 +263,9 @@ class _DirectpaymentrequesitionlistState
context,
provider.amountController,
"Enter Amount",
provider.updateAmount,
provider.updateAmount,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context, provider.amountError),
errorWidget(context, provider.amountError),
///payment date toBE
TextWidget(context, "Enter Date"),
......@@ -316,7 +317,7 @@ class _DirectpaymentrequesitionlistState
],
),
),
ErrorWidget(context, provider.dateError),
errorWidget(context, provider.dateError),
TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline(
child: Row(
......@@ -411,7 +412,7 @@ class _DirectpaymentrequesitionlistState
],
),
),
ErrorWidget(context, provider.selectDirectPaymentError),
errorWidget(context, provider.selectDirectPaymentError),
if ([
"Cheque",
"RTGS",
......@@ -422,60 +423,60 @@ class _DirectpaymentrequesitionlistState
context,
provider.bankNameController,
"Enter Bank Name",
provider.updateBankName,
provider.updateBankName,TextInputType.text,false,null
),
ErrorWidget(context, provider.bankNameError),
errorWidget(context, provider.bankNameError),
textControllerWidget(
context,
provider.bankBranchController,
"Enter Bank Branch",
provider.updateBankBranch,
provider.updateBankBranch,TextInputType.text,false,null
),
ErrorWidget(context, provider.bankBranchError),
errorWidget(context, provider.bankBranchError),
textControllerWidget(
context,
provider.bankAccNumberController,
"Enter Account Number",
provider.updateNumber,
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context, provider.bankNumberError),
errorWidget(context, provider.bankNumberError),
textControllerWidget(
context,
provider.bankIfscController,
"Enter Bank IFSC",
provider.updateIFSC,
provider.updateIFSC,TextInputType.text,false,null
),
ErrorWidget(context, provider.bankIFSCError),
errorWidget(context, provider.bankIFSCError),
textControllerWidget(
context,
provider.bankAcHolderController,
"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") ...[
textControllerWidget(
context,
provider.amountController,
"Enter UPI ID",
provider.updateUPI,
provider.updateUPI,TextInputType.text,false,null
),
ErrorWidget(context, provider.UPIError),
errorWidget(context, provider.UPIError),
],
textControllerWidget(
context,
provider.paymentReferenceController,
"Enter Payment Reference Number",
provider.updateReference,
provider.updateReference,TextInputType.text,false,null
),
ErrorWidget(context, provider.paymentreferenceerror),
errorWidget(context, provider.paymentreferenceerror),
textControllerWidget(
context,
provider.descController,
"Enter Description",
provider.updateDescription,
provider.updateDescription,TextInputType.text,false,null
),
ErrorWidget(context, provider.descriptionError),
errorWidget(context, provider.descriptionError),
InkResponse(
onTap: () {
_showAttachmentSheet(context);
......@@ -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) {
return showModalBottomSheet(
......
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:generp/Notifiers/financeProvider/RequestionListProvider.dart';
import 'package:generp/Utils/app_colors.dart';
......@@ -155,7 +156,7 @@ class _SubmitpaymentrequestionlistsbymodeState
],
),
),
ErrorWidget(context, provider.selectAccountError),
errorWidget(context, provider.selectAccountError),
if (["self", "admin"].contains(widget.mode)) ...[
TextWidget(context, "Select Requisition Type"),
......@@ -244,26 +245,26 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.reqPurposeController,
"Enter Request Purpose",
provider.updateReqPupose,
provider.updateReqPupose,TextInputType.text,false,null
),
],
ErrorWidget(context, provider.reqPurposeError),
errorWidget(context, provider.reqPurposeError),
textControllerWidget(
context,
provider.descController,
"Enter Description",
provider.updateDescription,
provider.updateDescription,TextInputType.text,false,null
),
ErrorWidget(context, provider.descriptionError),
errorWidget(context, provider.descriptionError),
textControllerWidget(
context,
provider.amountController,
"Enter Amount",
provider.updateAmount,
provider.updateAmount,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context, provider.amountError),
errorWidget(context, provider.amountError),
TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline(
......@@ -352,7 +353,7 @@ class _SubmitpaymentrequestionlistsbymodeState
],
),
),
ErrorWidget(context, provider.selectPaymentError),
errorWidget(context, provider.selectPaymentError),
InkResponse(
onTap: () {
......@@ -403,7 +404,7 @@ class _SubmitpaymentrequestionlistsbymodeState
),
)
],
ErrorWidget(context, provider.FileError),
errorWidget(context, provider.FileError),
if ([
"Cheque",
......@@ -415,49 +416,49 @@ class _SubmitpaymentrequestionlistsbymodeState
context,
provider.bankNameController,
"Enter Bank Name",
provider.updateBankName,
provider.updateBankName,TextInputType.text,false,null
),
ErrorWidget(context, provider.bankNameError),
errorWidget(context, provider.bankNameError),
textControllerWidget(
context,
provider.bankBranchController,
"Enter Bank Branch",
provider.updateBankBranch,
provider.updateBankBranch,TextInputType.text,false,null
),
ErrorWidget(context, provider.bankBranchError),
errorWidget(context, provider.bankBranchError),
textControllerWidget(
context,
provider.bankAccNumberController,
"Enter Account Number",
provider.updateNumber,
provider.updateNumber,TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context, provider.bankNumberError),
errorWidget(context, provider.bankNumberError),
textControllerWidget(
context,
provider.bankIfscController,
"Enter Bank IFSC",
provider.updateIFSC,
provider.updateIFSC,TextInputType.text,false,null
),
ErrorWidget(context, provider.bankIFSCError),
errorWidget(context, provider.bankIFSCError),
textControllerWidget(
context,
provider.bankAcHolderController,
"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") ...[
textControllerWidget(
context,
provider.amountController,
"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
);
}
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) {
return showModalBottomSheet(
......
......@@ -558,7 +558,7 @@ class _GeneratorPartDetailsScreenState
),
child: TextField(
controller: quantitycontroller,
keyboardType: TextInputType.text,
keyboardType: TextInputType.numberWithOptions(decimal: true,signed: true),
focusNode: quantityFocusNode,
style: TextStyle(fontSize: 14),
......
......@@ -180,7 +180,7 @@ class _InventoryScreenState extends State<InventoryScreen> {
),
child: TextField(
controller: partIDcontroller,
keyboardType: TextInputType.emailAddress,
keyboardType: TextInputType.text,
focusNode: partIDfocusNode,
textCapitalization: TextCapitalization.characters,
......
This diff is collapsed.
......@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';
......@@ -482,15 +483,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
ErrorWidget(context, provider.selectAccountError),
errorWidget(context, provider.selectAccountError),
textControllerWidget(
context,
provider.amountController,
"Amount",
provider.onChangeAmount,
TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context, provider.amountError),
errorWidget(context, provider.amountError),
///Addorderbutton
if(provider.selectedAccountID!.isNotEmpty)...[
InkResponse(
......@@ -573,7 +575,10 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
),
)
.toList(),
value: provider.selectedOrderLists,
// value: provider.selectedOrderLists,
value: provider.orderList.firstWhere(
(product) => product.orderId == provider.selectedOrderIds[index],
),
onChanged: (OrderList? value) {
if (value != null) {
if (provider.orderList.isNotEmpty) {
......@@ -643,7 +648,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
flex: 2,
child: textControllerWidget(context, provider.orderAmountControllers[index], "Enter Order Amount", (p0) {
},),
},TextInputType.number,false,FilteringTextInputFormatter.digitsOnly),
),
// SizedBox(width: 10),
//
......@@ -669,8 +674,9 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
provider.orderAdjustedAmountController,
"Order Adjusted Amount",
provider.onChangeorderAdjustedAmount,
TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context, provider.orderAdjustedAmountError),
errorWidget(context, provider.orderAdjustedAmountError),
TextWidget(context, "Description"),
DropdownButtonHideUnderline(
child: Row(
......@@ -756,7 +762,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
],
),
),
ErrorWidget(context, provider.descriptionError),
errorWidget(context, provider.descriptionError),
TextWidget(context, "Payment Received Date"),
......@@ -807,7 +813,7 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
],
),
),
ErrorWidget(context, provider.dateError),
errorWidget(context, provider.dateError),
TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline(
......@@ -894,16 +900,16 @@ class _AddpaymentScreenState extends State<AddpaymentScreen> {
],
),
),
ErrorWidget(context, provider.paymentModeError),
errorWidget(context, provider.paymentModeError),
textControllerWidget(
context,
provider.paymentRefController,
"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(
......@@ -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) {
return showModalBottomSheet(
......
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
......@@ -55,14 +56,14 @@ class _AddtpcagentScreenState extends State<AddtpcagentScreen> {
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)...[
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)...[
ErrorWidget(context, provider.tpcMobileNumberError)
errorWidget(context, provider.tpcMobileNumberError)
],
InkResponse(
......@@ -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)...[
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)...[
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)...[
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)...[
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)...[
ErrorWidget(context, provider.tpcNoteError)
errorWidget(context, provider.tpcNoteError)
],
InkWell(
onTap: () {
......@@ -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) {
return showModalBottomSheet(
......
......@@ -2,6 +2,7 @@ import 'dart:async';
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_svg/svg.dart';
import 'package:provider/provider.dart';
......@@ -178,14 +179,15 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
],
),
),
ErrorWidget(context, provider.descriptionError),
errorWidget(context, provider.descriptionError),
textControllerWidget(
context,
provider.amountController,
"Amount",
provider.onChangeAmount,
TextInputType.number,false,FilteringTextInputFormatter.digitsOnly
),
ErrorWidget(context, provider.amountError),
errorWidget(context, provider.amountError),
TextWidget(context, "Select Payment Mode"),
DropdownButtonHideUnderline(
......@@ -272,16 +274,16 @@ class _EditpaymentdetailsbymodeState extends State<Editpaymentdetailsbymode> {
],
),
),
ErrorWidget(context, provider.paymentModeError),
errorWidget(context, provider.paymentModeError),
textControllerWidget(
context,
provider.paymentRefController,
"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"),
GestureDetector(
onTap: () {
......@@ -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> {
},
);
}
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> {
);
}
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) {
return showModalBottomSheet(
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