feat: rename Expense Type to Expense Category across controllers, models, and views for consistency
This commit is contained in:
parent
5dd09869ad
commit
92c739045c
@ -58,7 +58,7 @@ class DashboardController extends GetxController {
|
||||
final Rx<PendingExpensesData?> pendingExpensesData =
|
||||
Rx<PendingExpensesData?>(null);
|
||||
// =========================
|
||||
// Expense Type Report
|
||||
// Expense Category Report
|
||||
// =========================
|
||||
final RxBool isExpenseTypeReportLoading = false.obs;
|
||||
final Rx<ExpenseTypeReportData?> expenseTypeReportData =
|
||||
@ -355,15 +355,15 @@ class DashboardController extends GetxController {
|
||||
|
||||
if (response != null && response.success) {
|
||||
expenseTypeReportData.value = response.data;
|
||||
logSafe('Expense Type Report fetched successfully.',
|
||||
logSafe('Expense Category Report fetched successfully.',
|
||||
level: LogLevel.info);
|
||||
} else {
|
||||
expenseTypeReportData.value = null;
|
||||
logSafe('Failed to fetch Expense Type Report.', level: LogLevel.error);
|
||||
logSafe('Failed to fetch Expense Category Report.', level: LogLevel.error);
|
||||
}
|
||||
} catch (e, st) {
|
||||
expenseTypeReportData.value = null;
|
||||
logSafe('Error fetching Expense Type Report',
|
||||
logSafe('Error fetching Expense Category Report',
|
||||
level: LogLevel.error, error: e, stackTrace: st);
|
||||
} finally {
|
||||
isExpenseTypeReportLoading.value = false;
|
||||
|
||||
@ -196,7 +196,7 @@ class AddExpenseController extends GetxController {
|
||||
'Location: ${locationController.text}',
|
||||
'Transaction Date: ${transactionDateController.text}',
|
||||
'No. of Persons: ${noOfPersonsController.text}',
|
||||
'Expense Type: ${selectedExpenseType.value?.name}',
|
||||
'Expense Category: ${selectedExpenseType.value?.name}',
|
||||
'Payment Mode: ${selectedPaymentMode.value?.name}',
|
||||
'Paid By: ${selectedPaidBy.value?.name}',
|
||||
'Attachments: ${attachments.length}',
|
||||
@ -445,7 +445,7 @@ class AddExpenseController extends GetxController {
|
||||
return null;
|
||||
}
|
||||
if (expenseType == null) {
|
||||
_errorSnackbar("Expense type not selected");
|
||||
_errorSnackbar("Expense Category not selected");
|
||||
return null;
|
||||
}
|
||||
if (paymentMode == null) {
|
||||
@ -517,7 +517,7 @@ class AddExpenseController extends GetxController {
|
||||
final missing = <String>[];
|
||||
|
||||
if (selectedProject.value.isEmpty) missing.add("Project");
|
||||
if (selectedExpenseType.value == null) missing.add("Expense Type");
|
||||
if (selectedExpenseType.value == null) missing.add("Expense Category");
|
||||
if (selectedPaymentMode.value == null) missing.add("Payment Mode");
|
||||
if (selectedPaidBy.value == null) missing.add("Paid By");
|
||||
if (amountController.text.trim().isEmpty) missing.add("Amount");
|
||||
|
||||
@ -213,7 +213,7 @@ class ExpenseController extends GetxController {
|
||||
selectedCreatedByEmployees.clear();
|
||||
}
|
||||
|
||||
/// Fetch master data: expense types, payment modes, and expense status
|
||||
/// Fetch master data: Expense Categorys, payment modes, and expense status
|
||||
Future<void> fetchMasterData() async {
|
||||
try {
|
||||
final expenseTypesData = await ApiService.getMasterExpenseTypes();
|
||||
|
||||
@ -1329,14 +1329,14 @@ class ApiService {
|
||||
return null;
|
||||
}
|
||||
|
||||
/// Get Expense Type Report
|
||||
/// Get Expense Category Report
|
||||
static Future<ExpenseTypeReportResponse?> getExpenseTypeReportApi({
|
||||
required String projectId,
|
||||
required DateTime startDate,
|
||||
required DateTime endDate,
|
||||
}) async {
|
||||
const endpoint = ApiEndpoints.getExpenseTypeReport;
|
||||
logSafe("Fetching Expense Type Report for projectId: $projectId");
|
||||
logSafe("Fetching Expense Category Report for projectId: $projectId");
|
||||
|
||||
try {
|
||||
final response = await _getRequest(
|
||||
@ -1349,13 +1349,13 @@ class ApiService {
|
||||
);
|
||||
|
||||
if (response == null) {
|
||||
logSafe("Expense Type Report request failed: null response",
|
||||
logSafe("Expense Category Report request failed: null response",
|
||||
level: LogLevel.error);
|
||||
return null;
|
||||
}
|
||||
|
||||
final jsonResponse =
|
||||
_parseResponseForAllData(response, label: "Expense Type Report");
|
||||
_parseResponseForAllData(response, label: "Expense Category Report");
|
||||
|
||||
if (jsonResponse != null) {
|
||||
return ExpenseTypeReportResponse.fromJson(jsonResponse);
|
||||
@ -2428,11 +2428,11 @@ class ApiService {
|
||||
: null);
|
||||
}
|
||||
|
||||
/// Fetch Master Expense Types
|
||||
/// Fetch Master Expense Categorys
|
||||
static Future<List<dynamic>?> getMasterExpenseTypes() async {
|
||||
const endpoint = ApiEndpoints.getMasterExpenseCategory;
|
||||
return _getRequest(endpoint).then((res) => res != null
|
||||
? _parseResponse(res, label: 'Master Expense Types')
|
||||
? _parseResponse(res, label: 'Master Expense Categorys')
|
||||
: null);
|
||||
}
|
||||
|
||||
|
||||
@ -203,7 +203,7 @@ class _ChartHeader extends StatelessWidget {
|
||||
final selectedType = controller.selectedExpenseType.value;
|
||||
|
||||
return PopupMenuButton<String>(
|
||||
tooltip: 'Filter by Expense Type',
|
||||
tooltip: 'Filter by Expense Category',
|
||||
onSelected: (String value) {
|
||||
if (value == 'all') {
|
||||
controller.updateSelectedExpenseType(null);
|
||||
|
||||
@ -112,7 +112,7 @@ class _AddExpenseBottomSheetState extends State<_AddExpenseBottomSheet>
|
||||
return false;
|
||||
}
|
||||
if (controller.selectedExpenseType.value == null) {
|
||||
_showError("Please select an expense type");
|
||||
_showError("Please select an Expense Category");
|
||||
return false;
|
||||
}
|
||||
if (controller.selectedPaymentMode.value == null) {
|
||||
@ -178,10 +178,10 @@ class _AddExpenseBottomSheetState extends State<_AddExpenseBottomSheet>
|
||||
|
||||
_buildDropdownField<ExpenseTypeModel>(
|
||||
icon: Icons.category_outlined,
|
||||
title: "Expense Type",
|
||||
title: "Expense Category",
|
||||
requiredField: true,
|
||||
value: controller.selectedExpenseType.value?.name ??
|
||||
"Select Expense Type",
|
||||
"Select Expense Category",
|
||||
onTap: () => _showOptionList<ExpenseTypeModel>(
|
||||
controller.expenseTypes.toList(),
|
||||
(e) => e.name,
|
||||
|
||||
@ -312,7 +312,7 @@ class Project {
|
||||
};
|
||||
}
|
||||
|
||||
/// --- Expense Type ---
|
||||
/// --- Expense Category ---
|
||||
class ExpenseType {
|
||||
final String id;
|
||||
final String name;
|
||||
|
||||
@ -598,7 +598,7 @@ class _InvoiceDetailsTable extends StatelessWidget {
|
||||
|
||||
// List of all label-value pairs
|
||||
final details = [
|
||||
{'label': 'Expense Type', 'value': expense.expensesType.name},
|
||||
{'label': 'Expense Category', 'value': expense.expensesType.name},
|
||||
{'label': 'Payment Mode', 'value': expense.paymentMode.name},
|
||||
{'label': 'Transaction Date', 'value': transactionDate},
|
||||
{'label': 'Created At', 'value': createdAt},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user