progress in nav menu

This commit is contained in:
Hesabix 2025-09-25 02:17:52 +03:30
parent 2aa6105343
commit a8ae3a0efb
6 changed files with 742 additions and 159 deletions

View file

@ -491,6 +491,37 @@
"peopleList": "People List",
"receipts": "Receipts",
"payments": "Payments",
"productsAndServices": "Products and Services",
"products": "Products",
"services": "Services",
"priceLists": "Price Lists",
"categories": "Categories",
"productAttributes": "Product Attributes",
"banking": "Banking",
"accounts": "Accounts",
"pettyCash": "Petty Cash",
"cashBox": "Cash Box",
"wallet": "Wallet",
"checks": "Checks",
"transfers": "Transfers",
"accounting": "Accounting",
"invoice": "Invoice",
"expenseAndIncome": "Expense and Income",
"accountingMenu": "Accounting",
"documents": "Documents",
"chartOfAccounts": "Chart of Accounts",
"openingBalance": "Opening Balance",
"yearEndClosing": "Year End Closing",
"reports": "Reports",
"accountingSettings": "Settings",
"servicesAndPlugins": "Services and Plugins",
"warehouseManagement": "Warehouse Management",
"warehouses": "Warehouses",
"shipments": "Shipments",
"inquiries": "Inquiries",
"storageSpace": "Storage Space",
"taxpayers": "Taxpayers",
"others": "Others",
"practicalTools": "Practical Tools",
"usersAndPermissions": "Users and Permissions",
"businessUsers": "Business Users",

View file

@ -490,6 +490,37 @@
"peopleList": "لیست اشخاص",
"receipts": "دریافت‌ها",
"payments": "پرداخت‌ها",
"productsAndServices": "کالا و خدمات",
"products": "کالاها",
"services": "خدمات",
"priceLists": "لیست‌های قیمت",
"categories": "دسته‌بندی‌ها",
"productAttributes": "ویژگی‌های کالا",
"banking": "بانکداری",
"accounts": "حساب‌ها",
"pettyCash": "تنخواه",
"cashBox": "صندوق",
"wallet": "کیف پول",
"checks": "چک‌ها",
"transfers": "انتقالات",
"accounting": "حسابداری",
"invoice": "فاکتور",
"expenseAndIncome": "هزینه و درآمد",
"accountingMenu": "حسابداری",
"documents": "اسناد",
"chartOfAccounts": "جدول حساب",
"openingBalance": "تراز افتتاحیه",
"yearEndClosing": "بستن سال مالی",
"reports": "گزارشات",
"accountingSettings": "تنظیمات",
"servicesAndPlugins": "سرویس‌ها و افزونه‌ها",
"warehouseManagement": "انبارداری",
"warehouses": "انبارها",
"shipments": "حواله‌ها",
"inquiries": "استعلامات",
"storageSpace": "فضای ذخیره‌سازی",
"taxpayers": "مودیان مالیاتی",
"others": "سایر",
"practicalTools": "ابزارهای کاربردی",
"usersAndPermissions": "کاربران و دسترسی‌ها",
"businessUsers": "کاربران کسب و کار",

View file

@ -2756,6 +2756,180 @@ abstract class AppLocalizations {
/// **'Payments'**
String get payments;
/// No description provided for @productsAndServices.
///
/// In en, this message translates to:
/// **'Products and Services'**
String get productsAndServices;
/// No description provided for @products.
///
/// In en, this message translates to:
/// **'Products and Services'**
String get products;
/// No description provided for @services.
///
/// In en, this message translates to:
/// **'Services'**
String get services;
/// No description provided for @priceLists.
///
/// In en, this message translates to:
/// **'Price Lists'**
String get priceLists;
/// No description provided for @categories.
///
/// In en, this message translates to:
/// **'Categories'**
String get categories;
/// No description provided for @productAttributes.
///
/// In en, this message translates to:
/// **'Product Attributes'**
String get productAttributes;
/// No description provided for @banking.
///
/// In en, this message translates to:
/// **'Banking'**
String get banking;
/// No description provided for @accounts.
///
/// In en, this message translates to:
/// **'Accounts'**
String get accounts;
/// No description provided for @pettyCash.
///
/// In en, this message translates to:
/// **'Petty Cash'**
String get pettyCash;
/// No description provided for @cashBox.
///
/// In en, this message translates to:
/// **'Cash Box'**
String get cashBox;
/// No description provided for @wallet.
///
/// In en, this message translates to:
/// **'Wallet'**
String get wallet;
/// No description provided for @checks.
///
/// In en, this message translates to:
/// **'Checks'**
String get checks;
/// No description provided for @transfers.
///
/// In en, this message translates to:
/// **'Transfers'**
String get transfers;
/// No description provided for @invoice.
///
/// In en, this message translates to:
/// **'Invoice'**
String get invoice;
/// No description provided for @expenseAndIncome.
///
/// In en, this message translates to:
/// **'Expense and Income'**
String get expenseAndIncome;
/// No description provided for @accountingMenu.
///
/// In en, this message translates to:
/// **'Accounting'**
String get accountingMenu;
/// No description provided for @documents.
///
/// In en, this message translates to:
/// **'Documents'**
String get documents;
/// No description provided for @chartOfAccounts.
///
/// In en, this message translates to:
/// **'Chart of Accounts'**
String get chartOfAccounts;
/// No description provided for @openingBalance.
///
/// In en, this message translates to:
/// **'Opening Balance'**
String get openingBalance;
/// No description provided for @yearEndClosing.
///
/// In en, this message translates to:
/// **'Year End Closing'**
String get yearEndClosing;
/// No description provided for @accountingSettings.
///
/// In en, this message translates to:
/// **'Settings'**
String get accountingSettings;
/// No description provided for @servicesAndPlugins.
///
/// In en, this message translates to:
/// **'Services and Plugins'**
String get servicesAndPlugins;
/// No description provided for @warehouseManagement.
///
/// In en, this message translates to:
/// **'Warehouse Management'**
String get warehouseManagement;
/// No description provided for @warehouses.
///
/// In en, this message translates to:
/// **'Warehouse Management'**
String get warehouses;
/// No description provided for @shipments.
///
/// In en, this message translates to:
/// **'Shipments'**
String get shipments;
/// No description provided for @inquiries.
///
/// In en, this message translates to:
/// **'Inquiries'**
String get inquiries;
/// No description provided for @storageSpace.
///
/// In en, this message translates to:
/// **'Storage Space'**
String get storageSpace;
/// No description provided for @taxpayers.
///
/// In en, this message translates to:
/// **'Taxpayers'**
String get taxpayers;
/// No description provided for @others.
///
/// In en, this message translates to:
/// **'Others'**
String get others;
/// No description provided for @practicalTools.
///
/// In en, this message translates to:
@ -3224,12 +3398,6 @@ abstract class AppLocalizations {
/// **'Manage Payment Drafts'**
String get managePaymentDrafts;
/// No description provided for @products.
///
/// In en, this message translates to:
/// **'Products and Services'**
String get products;
/// No description provided for @addProduct.
///
/// In en, this message translates to:
@ -3254,12 +3422,6 @@ abstract class AppLocalizations {
/// **'Delete Products and Services'**
String get deleteProducts;
/// No description provided for @priceLists.
///
/// In en, this message translates to:
/// **'Price Lists'**
String get priceLists;
/// No description provided for @addPriceList.
///
/// In en, this message translates to:
@ -3284,12 +3446,6 @@ abstract class AppLocalizations {
/// **'Delete Price Lists'**
String get deletePriceLists;
/// No description provided for @categories.
///
/// In en, this message translates to:
/// **'Categories'**
String get categories;
/// No description provided for @addCategory.
///
/// In en, this message translates to:
@ -3446,12 +3602,6 @@ abstract class AppLocalizations {
/// **'Error changing password'**
String get passwordChangeError;
/// No description provided for @banking.
///
/// In en, this message translates to:
/// **'Banking'**
String get banking;
/// No description provided for @bankAccounts.
///
/// In en, this message translates to:
@ -3464,30 +3614,6 @@ abstract class AppLocalizations {
/// **'Cash'**
String get cash;
/// No description provided for @pettyCash.
///
/// In en, this message translates to:
/// **'Petty Cash'**
String get pettyCash;
/// No description provided for @checks.
///
/// In en, this message translates to:
/// **'Checks'**
String get checks;
/// No description provided for @wallet.
///
/// In en, this message translates to:
/// **'Wallet'**
String get wallet;
/// No description provided for @transfers.
///
/// In en, this message translates to:
/// **'Transfers'**
String get transfers;
/// No description provided for @invoices.
///
/// In en, this message translates to:
@ -3506,42 +3632,18 @@ abstract class AppLocalizations {
/// **'Accounting Documents'**
String get accountingDocuments;
/// No description provided for @chartOfAccounts.
///
/// In en, this message translates to:
/// **'Chart of Accounts'**
String get chartOfAccounts;
/// No description provided for @openingBalance.
///
/// In en, this message translates to:
/// **'Opening Balance'**
String get openingBalance;
/// No description provided for @warehouse.
///
/// In en, this message translates to:
/// **'Warehouse'**
String get warehouse;
/// No description provided for @warehouses.
///
/// In en, this message translates to:
/// **'Warehouse Management'**
String get warehouses;
/// No description provided for @warehouseTransfers.
///
/// In en, this message translates to:
/// **'Warehouse Transfers'**
String get warehouseTransfers;
/// No description provided for @productAttributes.
///
/// In en, this message translates to:
/// **'Product Attributes'**
String get productAttributes;
/// No description provided for @addAttribute.
///
/// In en, this message translates to:
@ -3914,12 +4016,6 @@ abstract class AppLocalizations {
/// **'Event History'**
String get eventHistory;
/// No description provided for @storageSpace.
///
/// In en, this message translates to:
/// **'Storage Space'**
String get storageSpace;
/// No description provided for @viewStorage.
///
/// In en, this message translates to:

View file

@ -1378,6 +1378,93 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get payments => 'Payments';
@override
String get productsAndServices => 'Products and Services';
@override
String get products => 'Products and Services';
@override
String get services => 'Services';
@override
String get priceLists => 'Price Lists';
@override
String get categories => 'Categories';
@override
String get productAttributes => 'Product Attributes';
@override
String get banking => 'Banking';
@override
String get accounts => 'Accounts';
@override
String get pettyCash => 'Petty Cash';
@override
String get cashBox => 'Cash Box';
@override
String get wallet => 'Wallet';
@override
String get checks => 'Checks';
@override
String get transfers => 'Transfers';
@override
String get invoice => 'Invoice';
@override
String get expenseAndIncome => 'Expense and Income';
@override
String get accountingMenu => 'Accounting';
@override
String get documents => 'Documents';
@override
String get chartOfAccounts => 'Chart of Accounts';
@override
String get openingBalance => 'Opening Balance';
@override
String get yearEndClosing => 'Year End Closing';
@override
String get accountingSettings => 'Settings';
@override
String get servicesAndPlugins => 'Services and Plugins';
@override
String get warehouseManagement => 'Warehouse Management';
@override
String get warehouses => 'Warehouse Management';
@override
String get shipments => 'Shipments';
@override
String get inquiries => 'Inquiries';
@override
String get storageSpace => 'Storage Space';
@override
String get taxpayers => 'Taxpayers';
@override
String get others => 'Others';
@override
String get practicalTools => 'Practical Tools';
@ -1615,9 +1702,6 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get managePaymentDrafts => 'Manage Payment Drafts';
@override
String get products => 'Products and Services';
@override
String get addProduct => 'Add Product or Service';
@ -1630,9 +1714,6 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get deleteProducts => 'Delete Products and Services';
@override
String get priceLists => 'Price Lists';
@override
String get addPriceList => 'Add Price List';
@ -1645,9 +1726,6 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get deletePriceLists => 'Delete Price Lists';
@override
String get categories => 'Categories';
@override
String get addCategory => 'Add Category';
@ -1727,27 +1805,12 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get passwordChangeError => 'Error changing password';
@override
String get banking => 'Banking';
@override
String get bankAccounts => 'Bank Accounts';
@override
String get cash => 'Cash';
@override
String get pettyCash => 'Petty Cash';
@override
String get checks => 'Checks';
@override
String get wallet => 'Wallet';
@override
String get transfers => 'Transfers';
@override
String get invoices => 'Invoices';
@ -1757,24 +1820,12 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get accountingDocuments => 'Accounting Documents';
@override
String get chartOfAccounts => 'Chart of Accounts';
@override
String get openingBalance => 'Opening Balance';
@override
String get warehouse => 'Warehouse';
@override
String get warehouses => 'Warehouse Management';
@override
String get warehouseTransfers => 'Warehouse Transfers';
@override
String get productAttributes => 'Product Attributes';
@override
String get addAttribute => 'Add Attribute';
@ -1963,9 +2014,6 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get eventHistory => 'Event History';
@override
String get storageSpace => 'Storage Space';
@override
String get viewStorage => 'View Storage';

View file

@ -1368,6 +1368,93 @@ class AppLocalizationsFa extends AppLocalizations {
@override
String get payments => 'پرداخت‌ها';
@override
String get productsAndServices => 'کالا و خدمات';
@override
String get products => 'کالا‌ها و خدمات';
@override
String get services => 'خدمات';
@override
String get priceLists => 'لیست‌های قیمت';
@override
String get categories => 'دسته‌بندی‌ها';
@override
String get productAttributes => 'ویژگی‌های کالا و خدمات';
@override
String get banking => 'بانکداری';
@override
String get accounts => 'حساب‌ها';
@override
String get pettyCash => 'تنخواه گردان';
@override
String get cashBox => 'صندوق';
@override
String get wallet => 'کیف پول';
@override
String get checks => 'چک';
@override
String get transfers => 'انتقال';
@override
String get invoice => 'فاکتور';
@override
String get expenseAndIncome => 'هزینه و درآمد';
@override
String get accountingMenu => 'حسابداری';
@override
String get documents => 'اسناد';
@override
String get chartOfAccounts => 'جدول حساب‌ها';
@override
String get openingBalance => 'تراز افتتاحیه';
@override
String get yearEndClosing => 'بستن سال مالی';
@override
String get accountingSettings => 'تنظیمات';
@override
String get servicesAndPlugins => 'سرویس‌ها و افزونه‌ها';
@override
String get warehouseManagement => 'انبارداری';
@override
String get warehouses => 'مدیریت انبارها';
@override
String get shipments => 'حواله‌ها';
@override
String get inquiries => 'استعلامات';
@override
String get storageSpace => 'فضای ذخیره‌سازی';
@override
String get taxpayers => 'مودیان مالیاتی';
@override
String get others => 'سایر';
@override
String get practicalTools => 'ابزارهای کاربردی';
@ -1606,9 +1693,6 @@ class AppLocalizationsFa extends AppLocalizations {
@override
String get managePaymentDrafts => 'مدیریت پیش‌نویس‌های پرداخت';
@override
String get products => 'کالا‌ها و خدمات';
@override
String get addProduct => 'افزودن کالا یا خدمت';
@ -1621,9 +1705,6 @@ class AppLocalizationsFa extends AppLocalizations {
@override
String get deleteProducts => 'حذف کالاها و خدمات';
@override
String get priceLists => 'لیست‌های قیمت';
@override
String get addPriceList => 'افزودن لیست قیمت';
@ -1636,9 +1717,6 @@ class AppLocalizationsFa extends AppLocalizations {
@override
String get deletePriceLists => 'حذف لیست‌های قیمت';
@override
String get categories => 'دسته‌بندی‌ها';
@override
String get addCategory => 'افزودن دسته‌بندی';
@ -1718,27 +1796,12 @@ class AppLocalizationsFa extends AppLocalizations {
@override
String get passwordChangeError => 'خطا در تغییر کلمه عبور';
@override
String get banking => 'بانکداری';
@override
String get bankAccounts => 'حساب‌های بانکی';
@override
String get cash => 'صندوق';
@override
String get pettyCash => 'تنخواه گردان';
@override
String get checks => 'چک';
@override
String get wallet => 'کیف پول';
@override
String get transfers => 'انتقال';
@override
String get invoices => 'فاکتورها';
@ -1748,24 +1811,12 @@ class AppLocalizationsFa extends AppLocalizations {
@override
String get accountingDocuments => 'اسناد حسابداری';
@override
String get chartOfAccounts => 'جدول حساب‌ها';
@override
String get openingBalance => 'تراز افتتاحیه';
@override
String get warehouse => 'انبارداری';
@override
String get warehouses => 'مدیریت انبارها';
@override
String get warehouseTransfers => 'صدور حواله';
@override
String get productAttributes => 'ویژگی‌های کالا و خدمات';
@override
String get addAttribute => 'افزودن ویژگی';
@ -1952,9 +2003,6 @@ class AppLocalizationsFa extends AppLocalizations {
@override
String get eventHistory => 'تاریخچه رویدادها';
@override
String get storageSpace => 'فضای ذخیره‌سازی';
@override
String get viewStorage => 'مشاهده فضای ذخیره‌سازی';

View file

@ -34,6 +34,10 @@ class _BusinessShellState extends State<BusinessShell> {
int _hoverIndex = -1;
bool _isBasicToolsExpanded = false;
bool _isPeopleExpanded = false;
bool _isProductsAndServicesExpanded = false;
bool _isBankingExpanded = false;
bool _isAccountingMenuExpanded = false;
bool _isWarehouseManagementExpanded = false;
@override
void initState() {
@ -113,6 +117,247 @@ class _BusinessShellState extends State<BusinessShell> {
),
],
),
_MenuItem(
label: t.productsAndServices,
icon: Icons.inventory_2,
selectedIcon: Icons.inventory_2,
path: null, // برای منوی بازشونده
type: _MenuItemType.expandable,
children: [
_MenuItem(
label: t.products,
icon: Icons.shopping_cart,
selectedIcon: Icons.shopping_cart,
path: '/business/${widget.businessId}/products',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.priceLists,
icon: Icons.list_alt,
selectedIcon: Icons.list_alt,
path: '/business/${widget.businessId}/price-lists',
type: _MenuItemType.simple,
hasAddButton: false,
),
_MenuItem(
label: t.categories,
icon: Icons.category,
selectedIcon: Icons.category,
path: '/business/${widget.businessId}/categories',
type: _MenuItemType.simple,
hasAddButton: false,
),
_MenuItem(
label: t.productAttributes,
icon: Icons.tune,
selectedIcon: Icons.tune,
path: '/business/${widget.businessId}/product-attributes',
type: _MenuItemType.simple,
hasAddButton: false,
),
],
),
_MenuItem(
label: t.banking,
icon: Icons.account_balance,
selectedIcon: Icons.account_balance,
path: null, // برای منوی بازشونده
type: _MenuItemType.expandable,
children: [
_MenuItem(
label: t.accounts,
icon: Icons.account_balance_wallet,
selectedIcon: Icons.account_balance_wallet,
path: '/business/${widget.businessId}/accounts',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.pettyCash,
icon: Icons.money,
selectedIcon: Icons.money,
path: '/business/${widget.businessId}/petty-cash',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.cashBox,
icon: Icons.savings,
selectedIcon: Icons.savings,
path: '/business/${widget.businessId}/cash-box',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.wallet,
icon: Icons.wallet,
selectedIcon: Icons.wallet,
path: '/business/${widget.businessId}/wallet',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.checks,
icon: Icons.receipt_long,
selectedIcon: Icons.receipt_long,
path: '/business/${widget.businessId}/checks',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.transfers,
icon: Icons.swap_horiz,
selectedIcon: Icons.swap_horiz,
path: '/business/${widget.businessId}/transfers',
type: _MenuItemType.simple,
hasAddButton: true,
),
],
),
_MenuItem(
label: t.accounting,
icon: Icons.calculate,
selectedIcon: Icons.calculate,
path: null, // آیتم جداکننده
type: _MenuItemType.separator,
),
_MenuItem(
label: t.invoice,
icon: Icons.receipt,
selectedIcon: Icons.receipt,
path: '/business/${widget.businessId}/invoice',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.expenseAndIncome,
icon: Icons.account_balance_wallet,
selectedIcon: Icons.account_balance_wallet,
path: '/business/${widget.businessId}/expense-income',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.accountingMenu,
icon: Icons.calculate,
selectedIcon: Icons.calculate,
path: null, // برای منوی بازشونده
type: _MenuItemType.expandable,
children: [
_MenuItem(
label: t.documents,
icon: Icons.description,
selectedIcon: Icons.description,
path: '/business/${widget.businessId}/documents',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.chartOfAccounts,
icon: Icons.table_chart,
selectedIcon: Icons.table_chart,
path: '/business/${widget.businessId}/chart-of-accounts',
type: _MenuItemType.simple,
hasAddButton: false,
),
_MenuItem(
label: t.openingBalance,
icon: Icons.play_arrow,
selectedIcon: Icons.play_arrow,
path: '/business/${widget.businessId}/opening-balance',
type: _MenuItemType.simple,
hasAddButton: false,
),
_MenuItem(
label: t.yearEndClosing,
icon: Icons.stop,
selectedIcon: Icons.stop,
path: '/business/${widget.businessId}/year-end-closing',
type: _MenuItemType.simple,
hasAddButton: false,
),
_MenuItem(
label: t.accountingSettings,
icon: Icons.settings,
selectedIcon: Icons.settings,
path: '/business/${widget.businessId}/accounting-settings',
type: _MenuItemType.simple,
hasAddButton: false,
),
],
),
_MenuItem(
label: t.reports,
icon: Icons.assessment,
selectedIcon: Icons.assessment,
path: '/business/${widget.businessId}/reports',
type: _MenuItemType.simple,
hasAddButton: false,
),
_MenuItem(
label: t.servicesAndPlugins,
icon: Icons.extension,
selectedIcon: Icons.extension,
path: null, // آیتم جداکننده
type: _MenuItemType.separator,
),
_MenuItem(
label: t.warehouseManagement,
icon: Icons.warehouse,
selectedIcon: Icons.warehouse,
path: null, // برای منوی بازشونده
type: _MenuItemType.expandable,
children: [
_MenuItem(
label: t.warehouses,
icon: Icons.store,
selectedIcon: Icons.store,
path: '/business/${widget.businessId}/warehouses',
type: _MenuItemType.simple,
hasAddButton: true,
),
_MenuItem(
label: t.shipments,
icon: Icons.local_shipping,
selectedIcon: Icons.local_shipping,
path: '/business/${widget.businessId}/shipments',
type: _MenuItemType.simple,
hasAddButton: true,
),
],
),
_MenuItem(
label: t.inquiries,
icon: Icons.search,
selectedIcon: Icons.search,
path: '/business/${widget.businessId}/inquiries',
type: _MenuItemType.simple,
hasAddButton: false,
),
_MenuItem(
label: t.storageSpace,
icon: Icons.storage,
selectedIcon: Icons.storage,
path: '/business/${widget.businessId}/storage-space',
type: _MenuItemType.simple,
hasAddButton: false,
),
_MenuItem(
label: t.taxpayers,
icon: Icons.account_balance,
selectedIcon: Icons.account_balance,
path: '/business/${widget.businessId}/taxpayers',
type: _MenuItemType.simple,
hasAddButton: false,
),
_MenuItem(
label: t.others,
icon: Icons.more_horiz,
selectedIcon: Icons.more_horiz,
path: null, // آیتم جداکننده
type: _MenuItemType.separator,
),
_MenuItem(
label: t.settings,
icon: Icons.settings,
@ -160,7 +405,11 @@ class _BusinessShellState extends State<BusinessShell> {
selectedIndex = i;
// تنظیم وضعیت باز بودن منو
if (i == 2) _isPeopleExpanded = true; // اشخاص در ایندکس 2
if (i == 3) _isBasicToolsExpanded = true; // تنظیمات در ایندکس 3
if (i == 3) _isProductsAndServicesExpanded = true; // کالا و خدمات در ایندکس 3
if (i == 4) _isBankingExpanded = true; // بانکداری در ایندکس 4
if (i == 6) _isAccountingMenuExpanded = true; // حسابداری در ایندکس 6
if (i == 8) _isWarehouseManagementExpanded = true; // انبارداری در ایندکس 8
if (i == 9) _isBasicToolsExpanded = true; // تنظیمات در ایندکس 9
break;
}
}
@ -183,6 +432,10 @@ class _BusinessShellState extends State<BusinessShell> {
} else if (item.type == _MenuItemType.expandable) {
// تغییر وضعیت باز/بسته بودن منو
if (item.label == t.people) _isPeopleExpanded = !_isPeopleExpanded;
if (item.label == t.productsAndServices) _isProductsAndServicesExpanded = !_isProductsAndServicesExpanded;
if (item.label == t.banking) _isBankingExpanded = !_isBankingExpanded;
if (item.label == t.accountingMenu) _isAccountingMenuExpanded = !_isAccountingMenuExpanded;
if (item.label == t.warehouseManagement) _isWarehouseManagementExpanded = !_isWarehouseManagementExpanded;
if (item.label == t.settings) _isBasicToolsExpanded = !_isBasicToolsExpanded;
setState(() {});
}
@ -217,6 +470,10 @@ class _BusinessShellState extends State<BusinessShell> {
bool isExpanded(_MenuItem item) {
if (item.label == t.people) return _isPeopleExpanded;
if (item.label == t.productsAndServices) return _isProductsAndServicesExpanded;
if (item.label == t.banking) return _isBankingExpanded;
if (item.label == t.accountingMenu) return _isAccountingMenuExpanded;
if (item.label == t.warehouseManagement) return _isWarehouseManagementExpanded;
if (item.label == t.settings) return _isBasicToolsExpanded;
return false;
}
@ -348,6 +605,10 @@ class _BusinessShellState extends State<BusinessShell> {
onTap: () {
setState(() {
if (item.label == t.people) _isPeopleExpanded = !_isPeopleExpanded;
if (item.label == t.productsAndServices) _isProductsAndServicesExpanded = !_isProductsAndServicesExpanded;
if (item.label == t.banking) _isBankingExpanded = !_isBankingExpanded;
if (item.label == t.accountingMenu) _isAccountingMenuExpanded = !_isAccountingMenuExpanded;
if (item.label == t.warehouseManagement) _isWarehouseManagementExpanded = !_isWarehouseManagementExpanded;
if (item.label == t.settings) _isBasicToolsExpanded = !_isBasicToolsExpanded;
});
},
@ -433,11 +694,41 @@ class _BusinessShellState extends State<BusinessShell> {
IconButton(
icon: const Icon(Icons.add, size: 16),
onPressed: () {
// Navigate to add new receipt/payment
// Navigate to add new item
if (child.label == t.receipts) {
// Navigate to add receipt
} else if (child.label == t.payments) {
// Navigate to add payment
} else if (child.label == t.products) {
// Navigate to add product
} else if (child.label == t.priceLists) {
// Navigate to add price list
} else if (child.label == t.categories) {
// Navigate to add category
} else if (child.label == t.productAttributes) {
// Navigate to add product attribute
} else if (child.label == t.accounts) {
// Navigate to add account
} else if (child.label == t.pettyCash) {
// Navigate to add petty cash
} else if (child.label == t.cashBox) {
// Navigate to add cash box
} else if (child.label == t.wallet) {
// Navigate to add wallet
} else if (child.label == t.checks) {
// Navigate to add check
} else if (child.label == t.transfers) {
// Navigate to add transfer
} else if (child.label == t.invoice) {
// Navigate to add invoice
} else if (child.label == t.expenseAndIncome) {
// Navigate to add expense/income
} else if (child.label == t.documents) {
// Navigate to add document
} else if (child.label == t.warehouses) {
// Navigate to add warehouse
} else if (child.label == t.shipments) {
// Navigate to add shipment
}
},
),
@ -505,6 +796,10 @@ class _BusinessShellState extends State<BusinessShell> {
if (item.type == _MenuItemType.expandable) {
setState(() {
if (item.label == t.people) _isPeopleExpanded = !_isPeopleExpanded;
if (item.label == t.productsAndServices) _isProductsAndServicesExpanded = !_isProductsAndServicesExpanded;
if (item.label == t.banking) _isBankingExpanded = !_isBankingExpanded;
if (item.label == t.accountingMenu) _isAccountingMenuExpanded = !_isAccountingMenuExpanded;
if (item.label == t.warehouseManagement) _isWarehouseManagementExpanded = !_isWarehouseManagementExpanded;
if (item.label == t.settings) _isBasicToolsExpanded = !_isBasicToolsExpanded;
});
} else {
@ -628,6 +923,10 @@ class _BusinessShellState extends State<BusinessShell> {
onExpansionChanged: (expanded) {
setState(() {
if (item.label == t.people) _isPeopleExpanded = expanded;
if (item.label == t.productsAndServices) _isProductsAndServicesExpanded = expanded;
if (item.label == t.banking) _isBankingExpanded = expanded;
if (item.label == t.accountingMenu) _isAccountingMenuExpanded = expanded;
if (item.label == t.warehouseManagement) _isWarehouseManagementExpanded = expanded;
if (item.label == t.settings) _isBasicToolsExpanded = expanded;
});
},
@ -638,11 +937,41 @@ class _BusinessShellState extends State<BusinessShell> {
icon: const Icon(Icons.add, size: 20),
onPressed: () {
context.pop();
// Navigate to add new receipt/payment
// Navigate to add new item
if (child.label == t.receipts) {
// Navigate to add receipt
} else if (child.label == t.payments) {
// Navigate to add payment
} else if (child.label == t.products) {
// Navigate to add product
} else if (child.label == t.priceLists) {
// Navigate to add price list
} else if (child.label == t.categories) {
// Navigate to add category
} else if (child.label == t.productAttributes) {
// Navigate to add product attribute
} else if (child.label == t.accounts) {
// Navigate to add account
} else if (child.label == t.pettyCash) {
// Navigate to add petty cash
} else if (child.label == t.cashBox) {
// Navigate to add cash box
} else if (child.label == t.wallet) {
// Navigate to add wallet
} else if (child.label == t.checks) {
// Navigate to add check
} else if (child.label == t.transfers) {
// Navigate to add transfer
} else if (child.label == t.invoice) {
// Navigate to add invoice
} else if (child.label == t.expenseAndIncome) {
// Navigate to add expense/income
} else if (child.label == t.documents) {
// Navigate to add document
} else if (child.label == t.warehouses) {
// Navigate to add warehouse
} else if (child.label == t.shipments) {
// Navigate to add shipment
}
},
) : null,