Update: 2026-05-07 23:06:22

This commit is contained in:
Hamza-Ayed
2026-05-07 23:06:22 +03:00
parent e04229dfbe
commit 80f3d257b0
20 changed files with 1254 additions and 60 deletions

View File

@@ -9,7 +9,7 @@ class AddCompanyController extends GetxController {
final nameController = TextEditingController();
final tinController = TextEditingController();
final crnController = TextEditingController();
var isSubmitting = false.obs;
@override
@@ -23,7 +23,7 @@ class AddCompanyController extends GetxController {
Future<void> submit() async {
final name = nameController.text.trim();
final tin = tinController.text.trim();
if (name.isEmpty || tin.isEmpty) {
AppSnackbar.showError('خطأ', 'الرجاء إدخال اسم الشركة والرقم الضريبي');
return;
@@ -32,7 +32,7 @@ class AddCompanyController extends GetxController {
try {
isSubmitting.value = true;
final dio = DioClient().client;
final response = await dio.post('companies', data: {
final response = await dio.post('companies/create', data: {
'name': name,
'tax_identification_number': tin,
'commercial_registration_number': crnController.text.trim(),
@@ -40,17 +40,18 @@ class AddCompanyController extends GetxController {
if (response.data['success'] == true) {
AppSnackbar.showSuccess('نجاح', 'تمت إضافة الشركة بنجاح');
// Refresh list if controller exists
if (Get.isRegistered<CompaniesManagementController>()) {
Get.find<CompaniesManagementController>().fetchCompanies();
}
Get.back();
}
} on DioException catch (e) {
if (e.response?.statusCode == 403) {
AppSnackbar.showError('خطأ', 'لقد وصلت للحد الأقصى المسموح به للشركات في باقتك');
AppSnackbar.showError(
'خطأ', 'لقد وصلت للحد الأقصى المسموح به للشركات في باقتك');
} else {
AppSnackbar.showError('خطأ', 'تعذر إضافة الشركة');
}

View File

@@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../controllers/companies_management_controller.dart';
import 'add_company_view.dart';
import '../../../core/utils/app_snackbar.dart';
import '../../../app/routes/app_pages.dart';
class CompaniesManagementView extends StatelessWidget {
const CompaniesManagementView({super.key});
@@ -96,8 +98,10 @@ class CompaniesManagementView extends StatelessWidget {
onSelected: (value) {
if (value == 'delete') {
_confirmDelete(context, controller, company['id']);
} else if (value == 'employees') {
Get.toNamed(AppRoutes.USERS_MANAGEMENT);
} else {
Get.snackbar('قريباً', 'الواجهة قيد البرمجة');
AppSnackbar.showInfo('قريباً', 'سيتم تفعيل هذه الميزة قريباً');
}
},
),
@@ -117,7 +121,7 @@ class CompaniesManagementView extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.end,
children: [
TextButton.icon(
onPressed: () => Get.snackbar('إحصائيات', 'عرض إحصائيات الشركة'),
onPressed: () => AppSnackbar.showInfo('إحصائيات', 'عرض إحصائيات الشركة'),
icon: const Icon(Icons.bar_chart, size: 18),
label: const Text('الإحصائيات'),
),