Untitled
unknown
plain_text
3 years ago
29 kB
14
Indexable
import 'package:ceramic_quotation/app/model/account_model/account_model.dart';
import 'package:ceramic_quotation/app/model/account_model/account_request_update_model.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../database/database_service.dart';
import '../../../utils/utils.dart';
import '../account_service/account_service.dart';
class AccountController extends GetxController {
bool sortAscending = true;
int? sortColumnIndex;
AccountModel? accountModel = AccountModel();
List<AccountData> accountData = [];
List<AccountUpdateRequestModel> accountUpdateData = [];
TextEditingController idController = TextEditingController();
TextEditingController nameController = TextEditingController();
TextEditingController aliasController = TextEditingController();
TextEditingController districtController = TextEditingController();
TextEditingController addressController = TextEditingController();
TextEditingController cityController = TextEditingController();
TextEditingController stateController = TextEditingController();
TextEditingController accountTypeController = TextEditingController();
TextEditingController pinCodeController = TextEditingController();
TextEditingController numberController = TextEditingController();
TextEditingController emailController = TextEditingController();
final DatabaseService databaseService = getIt.get<DatabaseService>();
void sorting<T>(
Comparable<T> Function(AccountData d) getField,
int columnIndex,
bool ascending,
) {
sort<T>(getField, ascending);
sortColumnIndex = columnIndex;
sortAscending = ascending;
update();
}
unFoucs(index) {
accountData[index].f2.unfocus();
accountData[index].f3.unfocus();
accountData[index].f4.unfocus();
accountData[index].f5.unfocus();
accountData[index].f6.unfocus();
accountData[index].f7.unfocus();
accountData[index].f8.unfocus();
accountData[index].f9.unfocus();
accountData[index].f10.unfocus();
accountData[index].f11.unfocus();
}
void sort<T>(Comparable<T> Function(AccountData d) getField, bool ascending) {
accountData.sort((a, b) {
final aValue = getField(a);
final bValue = getField(b);
return ascending
? Comparable.compare(aValue, bValue)
: Comparable.compare(bValue, aValue);
});
update();
}
@override
onInit() async {
//geAccountData();
await getAccountDataFromDatabase();
super.onInit();
}
geAccountData() async {
final getaccountData = await AccountService().getRequest();
accountData = getaccountData!.data ?? [];
if (getaccountData.data != null && getaccountData.data!.isNotEmpty) {
databaseService.saveAccount(getaccountData.data ?? []);
}
update();
return accountModel;
}
getAccountDataFromDatabase() async {
final data = await databaseService.getAccountData();
accountData = data;
accountModel!.data = accountData;
update();
}
accountDelete(index) {
databaseService.clearAccountData(accountData[index]);
getAccountDataFromDatabase();
update();
}
accountUpdate(
AccountUpdateRequestModel? accountUpdateRequestModel,
) async {
accountData = accountUpdateData.cast<AccountData>();
print(accountUpdateData.first.email);
try {
var response =
await AccountService().accountUpdate(accountUpdateRequestModel);
print("Data update Successfully by user");
geAccountData();
return response;
} catch (e) {
print("Data not Update ${e}");
}
update();
}
runFilter(String enteredKeyword) {
accountData = (enteredKeyword.isEmpty
? accountModel!.data
: accountModel!.data!
.where((element) => element.name!
.toLowerCase()
.contains(enteredKeyword.toLowerCase()))
.toList())!;
accountData = (enteredKeyword.isEmpty
? accountModel!.data
: accountModel!.data!
.where((element) => element.name!
.toLowerCase()
.contains(enteredKeyword.toLowerCase()))
.toList())!;
update();
return accountData;
}
}
import 'package:ceramic_quotation/app/model/account_model/account_model.dart';
import 'package:ceramic_quotation/app/model/account_model/account_request_update_model.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../database/database_service.dart';
import '../../../utils/utils.dart';
import '../account_service/account_service.dart';
class AccountController extends GetxController {
bool sortAscending = true;
int? sortColumnIndex;
AccountModel? accountModel = AccountModel();
List<AccountData> accountData = [];
List<AccountUpdateRequestModel> accountUpdateData = [];
TextEditingController idController = TextEditingController();
TextEditingController nameController = TextEditingController();
TextEditingController aliasController = TextEditingController();
TextEditingController districtController = TextEditingController();
TextEditingController addressController = TextEditingController();
TextEditingController cityController = TextEditingController();
TextEditingController stateController = TextEditingController();
TextEditingController accountTypeController = TextEditingController();
TextEditingController pinCodeController = TextEditingController();
TextEditingController numberController = TextEditingController();
TextEditingController emailController = TextEditingController();
final DatabaseService databaseService = getIt.get<DatabaseService>();
void sorting<T>(
Comparable<T> Function(AccountData d) getField,
int columnIndex,
bool ascending,
) {
sort<T>(getField, ascending);
sortColumnIndex = columnIndex;
sortAscending = ascending;
update();
}
unFoucs(index) {
accountData[index].f2.unfocus();
accountData[index].f3.unfocus();
accountData[index].f4.unfocus();
accountData[index].f5.unfocus();
accountData[index].f6.unfocus();
accountData[index].f7.unfocus();
accountData[index].f8.unfocus();
accountData[index].f9.unfocus();
accountData[index].f10.unfocus();
accountData[index].f11.unfocus();
}
void sort<T>(Comparable<T> Function(AccountData d) getField, bool ascending) {
accountData.sort((a, b) {
final aValue = getField(a);
final bValue = getField(b);
return ascending
? Comparable.compare(aValue, bValue)
: Comparable.compare(bValue, aValue);
});
update();
}
@override
onInit() async {
//geAccountData();
await getAccountDataFromDatabase();
super.onInit();
}
geAccountData() async {
final getaccountData = await AccountService().getRequest();
accountData = getaccountData!.data ?? [];
if (getaccountData.data != null && getaccountData.data!.isNotEmpty) {
databaseService.saveAccount(getaccountData.data ?? []);
}
update();
return accountModel;
}
getAccountDataFromDatabase() async {
final data = await databaseService.getAccountData();
accountData = data;
accountModel!.data = accountData;
update();
}
accountDelete(index) {
databaseService.clearAccountData(accountData[index]);
getAccountDataFromDatabase();
update();
}
accountUpdate(
AccountUpdateRequestModel? accountUpdateRequestModel,
) async {
accountData = accountUpdateData.cast<AccountData>();
print(accountUpdateData.first.email);
try {
var response =
await AccountService().accountUpdate(accountUpdateRequestModel);
print("Data update Successfully by user");
geAccountData();
return response;
} catch (e) {
print("Data not Update ${e}");
}
update();
}
runFilter(String enteredKeyword) {
accountData = (enteredKeyword.isEmpty
? accountModel!.data
: accountModel!.data!
.where((element) => element.name!
.toLowerCase()
.contains(enteredKeyword.toLowerCase()))
.toList())!;
accountData = (enteredKeyword.isEmpty
? accountModel!.data
: accountModel!.data!
.where((element) => element.name!
.toLowerCase()
.contains(enteredKeyword.toLowerCase()))
.toList())!;
update();
return accountData;
}
}
///////////////////////////////////////
import 'package:ceramic_quotation/app/common/tabal_screen.dart';
import 'package:ceramic_quotation/app/common/text_filed.dart';
import 'package:ceramic_quotation/app/constant/app_color.dart';
import 'package:ceramic_quotation/app/constant/app_string.dart';
import 'package:ceramic_quotation/app/model/account_model/account_model.dart';
import 'package:ceramic_quotation/app/modules/member_add/controller/member_add_controller.dart';
import 'package:ceramic_quotation/app/utils/app_prefrence.dart';
import 'package:data_table_2/data_table_2.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../common/custom_button.dart';
import '../../../database/database_service.dart';
import '../../../routes/app_pages.dart';
import '../../../utils/utils.dart';
import '../controller/account_controller.dart';
class AccountView extends GetView<AccountController> {
AccountView({super.key});
final DatabaseService databaseService = getIt.get<DatabaseService>();
TextEditingController showMenu = TextEditingController();
// AccountController abc = Get.put(AccountController());
@override
Widget build(BuildContext context) {
MemberController memberController = Get.put(MemberController());
return GetBuilder<AccountController>(
init: AccountController(),
builder: (accountController) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: const EdgeInsets.only(
top: 20,
left: 20,
bottom: 20,
right: 10,
),
child: Row(
children: [
LoginTextField(
onChanged: (val) {
accountController.runFilter(val);
},
isdense: true,
height: 15,
prefixIcon: const Icon(
Icons.search_rounded,
color: Colors.grey,
size: 18,
),
hintText: AppString.findName,
hintStyle: Get.theme.primaryTextTheme.titleLarge,
fieldStyle: Get.theme.primaryTextTheme.headlineMedium,
),
Padding(
padding: const EdgeInsets.all(20),
child: CustomButton(
title: AppString.add,
onTap: () {
memberController.getUpdateMember();
Get.toNamed(Routes.member);
},
),
),
/* Padding(
padding: const EdgeInsets.all(20),
child: CustomButton(
title: AppString.upDate,
onTap: () {
AppPreference.clear();
AppPreference.remove("admin");
Get.toNamed(Routes.login);
print("String Is${AppPreference.getString('admin')}");
accountController.update();
},
),
),*/
],
),
),
if (accountController.accountData.isEmpty)
Center(
child: CircularProgressIndicator(
color: AppColors.blue,
),
)
else
Expanded(
child: Padding(
padding: const EdgeInsets.only(left: 20, right: 10),
child: TableScreen(
sortAscending: accountController.sortAscending,
sortColumnIndex: accountController.sortColumnIndex,
sortingName: (index, ascending) {
accountController.sorting(
(d) => d.name!,
index,
ascending,
);
},
dropDownValueAlias: true,
dropDownValueGroup: true,
dropDownValueParty: true,
dropDownValueAliasText: false,
dropDownValuePartyText: false,
dataColumnOne: AppString.no,
dataColumnTwo: AppString.name,
dataColumnThree: AppString.alias,
dataColumnFour: AppString.party,
dataColumnFive: AppString.address,
dataColumnSix: AppString.city,
dataColumnSeven: AppString.pinCode,
dataColumnEight: AppString.state,
dataColumnNine: AppString.mobileNo,
dataColumnTen: AppString.email,
dataColumnEleOne: AppString.active,
dataCondiCation: true,
dataColumnSizeTwo: ColumnSize.M,
dataColumnSizeSix: ColumnSize.S,
dataColumnSizeOne: ColumnSize.S,
dataColumnSizeSeven: ColumnSize.S,
dataColumnSizeEight: ColumnSize.S,
dataColumnSizeThree: ColumnSize.M,
dataColumnSizeFour: ColumnSize.M,
dataColumnSizeEleOne: ColumnSize.S,
rows: List.generate(
accountController.accountData.length,
(index) {
accountController.accountData[index].idController.text =
accountController.accountData[index].id!;
accountController.accountData[index].nameController
.text = accountController.accountData[index].name!;
accountController.accountData[index].aliasController
.text = accountController.accountData[index].alias!;
accountController
.accountData[index].addressController.text =
accountController.accountData[index].address!;
accountController.accountData[index].emailController
.text = accountController.accountData[index].email!;
accountController.accountData[index].stateController
.text = accountController.accountData[index].state!;
accountController
.accountData[index].pincodeController.text =
accountController.accountData[index].pin!
.toString();
accountController.accountData[index].cityController
.text = accountController.accountData[index].city!;
accountController
.accountData[index].districtController.text =
accountController.accountData[index].district!;
accountController
.accountData[index].accountTypeController.text =
accountController.accountData[index].accounttype!;
accountController
.accountData[index].numberController.text =
accountController.accountData[index].mobile!;
cursoPosition(
accountController.accountData[index],
);
return DataRow(
cells: [
DataCell(TextField(
readOnly: true,
focusNode:
accountController.accountData[index].f1,
controller: accountController
.accountData[index].idController,
style: Get.theme.textTheme.displayLarge,
)),
DataCell(TextField(
controller: accountController
.accountData[index].nameController,
/* onTap: () {
FocusScope.of(context).requestFocus(onclick(
context,
accountController.accountData[index],
));
},*/
onChanged: (value) {
accountController.accountData[index].name =
value;
databaseService.accountUpdate(
accountController.accountData[index],);
},
style: Get.theme.textTheme.displayLarge,
)),
DataCell(TextField(
controller: accountController
.accountData[index].aliasController,
/* onTap: () {
FocusScope.of(context).requestFocus(onclick(
context,
accountController.accountData[index],
));
},*/
onChanged: (value) {
accountController.accountData[index].alias =
value;
databaseService.accountUpdate(
accountController.accountData[index],);
},
style: Get.theme.textTheme.displayLarge,
)),
DataCell(TextField(
controller: accountController
.accountData[index].addressController,
/* onTap: () {
FocusScope.of(context).requestFocus(onclick(
context,
accountController.accountData[index],
));
},*/
onChanged: (value) {
accountController.accountData[index].address =
value;
databaseService.accountUpdate(
accountController.accountData[index],);
},
style: Get.theme.textTheme.displayLarge,
)),
DataCell(TextField(
controller: accountController
.accountData[index].cityController,
/* onTap: () {
FocusScope.of(context).requestFocus(onclick(
context,
accountController.accountData[index],
));
},*/
onChanged: (value) {
accountController.accountData[index].city =
value;
databaseService.accountUpdate(
accountController.accountData[index],);
},
style: Get.theme.textTheme.displayLarge,
)),
DataCell(TextField(
controller: accountController
.accountData[index].pincodeController,
/* onTap: () {
FocusScope.of(context).requestFocus(onclick(
context,
accountController.accountData[index],
));
},*/
onChanged: (value) {
accountController.accountData[index].pin =
value;
databaseService.accountUpdate(
accountController.accountData[index],);
},
style: Get.theme.textTheme.displayLarge,
)),
DataCell(TextField(
controller: accountController
.accountData[index].stateController,
/* onTap: () {
FocusScope.of(context).requestFocus(onclick(
context,
accountController.accountData[index],
));
},*/
onChanged: (value) {
accountController.accountData[index].state =
value;
databaseService.accountUpdate(
accountController.accountData[index],);
},
style: Get.theme.textTheme.displayLarge,
)),
DataCell(TextField(
controller: accountController
.accountData[index].numberController,
/* onTap: () {
FocusScope.of(context).requestFocus(onclick(
context,
accountController.accountData[index],
));
},*/
onChanged: (value) {
accountController.accountData[index].mobile =
value;
databaseService.accountUpdate(
accountController.accountData[index],);
},
style: Get.theme.textTheme.displayLarge,
)),
DataCell(TextField(
controller: accountController
.accountData[index].emailController,
/* onTap: () {
FocusScope.of(context).requestFocus(onclick(
context,
accountController.accountData[index],
));
},*/
onChanged: (value) {
accountController.accountData[index].email =
value;
databaseService.accountUpdate(
accountController.accountData[index],);
},
style: Get.theme.textTheme.displayLarge,
)),
DataCell(TextField(
controller: accountController
.accountData[index].accountTypeController,
/* onTap: () {
FocusScope.of(context).requestFocus(onclick(
context,
accountController.accountData[index],
));
},*/
onChanged: (value) {
accountController
.accountData[index].accounttype = value;
databaseService.accountUpdate(
accountController.accountData[index],);
},
style: Get.theme.textTheme.displayLarge,
)),
DataCell(IconButton(
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
focusColor: Colors.transparent,
onPressed: () {
// accountController.accoundelete(index);
showMyDialog(context, index);
},
icon: Icon(Icons.more_horiz),)),
],
);
},
),
),
),
),
],
);
},
);
}
Future<void> showMyDialog(context, index) async {
AccountController accountController = Get.put(AccountController());
return showDialog<void>(
context: context,
barrierDismissible: false, // user must tap button!
builder: (BuildContext context) {
return AlertDialog(
title: Text('are you sure you want to delete'),
content: SingleChildScrollView(
child: Column(
children: <Widget>[
Text('Would you like to delete this data?'),
],
),
),
actions: <Widget>[
TextButton(
child: Text('delete'),
onPressed: () {
accountController.accountDelete(index);
Navigator.of(context).pop();
},
),
TextButton(
child: Text('Cancel'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
/*onclick(context, AccountData accountData) {
AccountController accountController = Get.put(AccountController());
AccountUpdateRequestModel accountUpdateRequestModel =
AccountUpdateRequestModel(
id: accountData.idController.text,
name: accountData.nameController.text,
alias: accountData.aliasController.text,
accounttype: accountData.accountTypeController.text,
address: accountData.addressController.text,
city: accountData.cityController.text,
district: accountData.districtController.text,
mobile: accountData.numberController.text,
email: accountData.emailController.text,
pin: accountData.pincodeController.text,
state: accountData.stateController.text,
);
accountController.accountUpdate(
accountUpdateRequestModel,
context,
);
}*/
cursoPosition(AccountData accountData) {
accountData.nameController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.nameController.text.length),
);
accountData.aliasController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.aliasController.text.length),
);
accountData.accountTypeController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.accountTypeController.text.length),
);
accountData.addressController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.addressController.text.length),
);
accountData.cityController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.cityController.text.length),
);
accountData.stateController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.stateController.text.length),
);
accountData.numberController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.numberController.text.length),
);
accountData.pincodeController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.pincodeController.text.length),
);
accountData.districtController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.districtController.text.length),
);
accountData.emailController.selection = TextSelection.fromPosition(
TextPosition(offset: accountData.emailController.text.length),
);
}
}
Editor is loading...