Your IP : 216.73.216.93


Current Path : /home/users/unlimited/www/sigmaerp.codeskitter.site/database/seeders/
Upload File :
Current File : /home/users/unlimited/www/sigmaerp.codeskitter.site/database/seeders/RolesAndPermissionsSeeder.php

<?php

namespace Database\Seeders;

use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
use App\Models\PermissionGroup;

class RolesAndPermissionsSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
         // Reset cached roles and permissions
        app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();

        $records = [
            /*[
            'groupName' => 'Services',
            'permissionName' => [
                                    [
                                        'name' => 'service.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'service.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'service.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'service.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],*/

            [
            'groupName' => 'Customers',
            'permissionName' => [
                                    [
                                        'name' => 'customer.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'customer.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'customer.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'customer.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],

            [
            'groupName' => 'Tax',
            'permissionName' => [
                                    [
                                        'name' => 'tax.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'tax.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'tax.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'tax.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Users',
            'permissionName' => [
                                    [
                                        'name' => 'user.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'user.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'user.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'user.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Roles',
            'permissionName' => [
                                    [
                                        'name' => 'role.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'role.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'role.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'role.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            /*[
            'groupName' => 'Permissions',
            'permissionName' => [
                                    [
                                        'name' => 'permission.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'permission.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'permission.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'permission.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],*/
            /*[
            'groupName' => 'Permission Groups',
            'permissionName' => [
                                    [
                                        'name' => 'permission.group.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'permission.group.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'permission.group.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'permission.group.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],*/
            [
            'groupName' => 'Profile',
            'permissionName' => [
                                    [
                                        'name' => 'profile.edit',
                                        'displayName' => 'Edit',
                                    ],

                                ],
            ],
            [
            'groupName' => 'App Settings',
            'permissionName' => [
                                    [
                                        'name' => 'app.settings.edit',
                                        'displayName' => 'Edit',
                                    ],

                                ],
            ],
            [
            'groupName' => 'Bank Account',
            'permissionName' => [
                                    [
                                        'name' => 'payment.type.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'payment.type.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'payment.type.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'payment.type.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Company Details',
            'permissionName' => [
                                    [
                                        'name' => 'company.edit',
                                        'displayName' => 'Edit',
                                    ],
                                ],
            ],
            [
            'groupName' => 'Create & Send Manual SMS',
            'permissionName' => [
                                    [
                                        'name' => 'sms.create',
                                        'displayName' => 'Create',
                                    ],
                                ],
            ],
            [
            'groupName' => 'SMS Template',
            'permissionName' => [
                                    [
                                        'name' => 'sms.template.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'sms.template.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'sms.template.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'sms.template.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
                'groupName' => 'Create & Send Manual Email',
                'permissionName' => [
                    [
                        'name' => 'email.create',
                        'displayName' => 'Create',
                    ],
                ],
            ],
            [
            'groupName' => 'Email Template',
            'permissionName' => [
                                    [
                                        'name' => 'email.template.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'email.template.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'email.template.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'email.template.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            // [
            // 'groupName' => __('order.orders'),
            // 'permissionName' => [
            //                         [
            //                             'name' => 'order.create',
            //                             'displayName' => 'Create',
            //                         ],
            //                         [
            //                             'name' => 'order.edit',
            //                             'displayName' => 'Edit',
            //                         ],
            //                         [
            //                             'name' => 'order.view',
            //                             'displayName' => 'View',
            //                         ],
            //                         [
            //                             'name' => 'order.delete',
            //                             'displayName' => 'Delete',
            //                         ]

            //                     ],
            // ],
            // [
            // 'groupName' => 'Shedule',
            // 'permissionName' => [
            //                         [
            //                             'name' => 'shedule.create',
            //                             'displayName' => 'Create',
            //                         ],
            //                         [
            //                             'name' => 'shedule.edit',
            //                             'displayName' => 'Edit',
            //                         ],
            //                         [
            //                             'name' => 'shedule.view',
            //                             'displayName' => 'View',
            //                         ],
            //                         [
            //                             'name' => 'shedule.delete',
            //                             'displayName' => 'Delete',
            //                         ]

            //                     ],
            // ],
            // [
            // 'groupName' => 'Assigned Jobs',
            // 'permissionName' => [
            //                         [
            //                             'name' => 'assigned_jobs.create',
            //                             'displayName' => 'Create',
            //                         ],
            //                         [
            //                             'name' => 'assigned_jobs.edit',
            //                             'displayName' => 'Edit',
            //                         ],
            //                         [
            //                             'name' => 'assigned_jobs.view',
            //                             'displayName' => 'View',
            //                         ],
            //                         [
            //                             'name' => 'assigned_jobs.delete',
            //                             'displayName' => 'Delete',
            //                         ]

            //                     ],
            // ],
            [
            'groupName' => __('language.languages'),
            'permissionName' => [
                                    [
                                        'name' => 'language.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'language.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'language.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'language.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => __('app.reports'),
            'permissionName' => [
                                    [
                                        'name' => 'report.profit_and_loss',
                                        'displayName' => 'Profit and Loss',
                                    ],
                                    /*[
                                        'name' => 'report.balance_sheet',
                                        'displayName' => 'Balance Sheet',
                                    ],
                                    [
                                        'name' => 'report.trial_balance',
                                        'displayName' => 'Trial Balance',
                                    ],*/
                                   /* [
                                        'name' => 'report.order',
                                        'displayName' => 'Orders',
                                    ],
                                    [
                                        'name' => 'report.order.payment',
                                        'displayName' => 'Orders Payment',
                                    ],
                                    [
                                        'name' => 'report.job.status',
                                        'displayName' => 'Job Status',
                                    ],*/
                                    [
                                        'name' => 'report.item.transaction.batch',
                                        'displayName' => 'Batch Wise Item Transaction Report',
                                    ],
                                    [
                                        'name' => 'report.item.transaction.serial',
                                        'displayName' => 'Serial/IMEI Item Transaction Report',
                                    ],
                                    [
                                        'name' => 'report.item.transaction.general',
                                        'displayName' => 'General Item Transaction Report',
                                    ],
                                    [
                                        'name' => 'report.purchase',
                                        'displayName' => 'Purchase Report',
                                    ],
                                    [
                                        'name' => 'report.purchase.item',
                                        'displayName' => 'Item Purchase Report',
                                    ],
                                    [
                                        'name' => 'report.purchase.payment',
                                        'displayName' => 'Purchase Payment Report',
                                    ],
                                    [
                                        'name' => 'report.sale',
                                        'displayName' => 'Sale Report',
                                    ],
                                    [
                                        'name' => 'report.sale.item',
                                        'displayName' => 'Item Sale Report',
                                    ],
                                    [
                                        'name' => 'report.sale.payment',
                                        'displayName' => 'Sale Payment Report',
                                    ],
                                    [
                                        'name' => 'report.expired.item',
                                        'displayName' => 'Expired Item Report',
                                    ],
                                    [
                                        'name' => 'report.reorder.item',
                                        'displayName' => 'Reorder Item Report',
                                    ],
                                    [
                                        'name' => 'report.expense',
                                        'displayName' => 'Expense Report',
                                    ],
                                    [
                                        'name' => 'report.expense.item',
                                        'displayName' => 'Item Expense Report',
                                    ],
                                    [
                                        'name' => 'report.expense.payment',
                                        'displayName' => 'Expense Payment Report',
                                    ],
                                    [
                                        'name' => 'report.gstr-1',
                                        'displayName' => 'GSTR-1',
                                    ],
                                    [
                                        'name' => 'report.gstr-2',
                                        'displayName' => 'GSTR-2',
                                    ],
                                    [
                                        'name' => 'report.stock_transfer',
                                        'displayName' => 'Stock Transfer Report',
                                    ],
                                    [
                                        'name' => 'report.stock_transfer.item',
                                        'displayName' => 'Item Stock Transfer Report',
                                    ],

                                ],
            ],
            /*[
            'groupName' => __('account.accounting'),
            'permissionName' => [
                                    [
                                        'name' => 'account.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'account.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'account.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'account.delete',
                                        'displayName' => 'Delete',
                                    ],
                                    [
                                        'name' => 'account.group.create',
                                        'displayName' => 'Group Create',
                                    ],
                                    [
                                        'name' => 'account.group.edit',
                                        'displayName' => 'Group Edit',
                                    ],
                                    [
                                        'name' => 'account.group.view',
                                        'displayName' => 'Group View',
                                    ],
                                    [
                                        'name' => 'account.group.delete',
                                        'displayName' => 'Group Delete',
                                    ],
                                ],
            ],*/
            [
            'groupName' => __('expense.expense'),
            'permissionName' => [
                                    [
                                        'name' => 'expense.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'expense.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'expense.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'expense.delete',
                                        'displayName' => 'Delete',
                                    ],
                                    [
                                        'name' => 'expense.category.create',
                                        'displayName' => 'Category Create',
                                    ],
                                    [
                                        'name' => 'expense.category.edit',
                                        'displayName' => 'Category Edit',
                                    ],
                                    [
                                        'name' => 'expense.category.view',
                                        'displayName' => 'Category View',
                                    ],
                                    [
                                        'name' => 'expense.category.delete',
                                        'displayName' => 'Category Delete',
                                    ],
                                ],
            ],
            [
            'groupName' => __('warehouse.warehouses'),
            'permissionName' => [
                                    [
                                        'name' => 'warehouse.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'warehouse.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'warehouse.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'warehouse.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => __('warehouse.stock_transfer'),
            'permissionName' => [
                                    [
                                        'name' => 'stock_transfer.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'stock_transfer.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'stock_transfer.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'stock_transfer.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => __('item.items'),
            'permissionName' => [
                                    [
                                        'name' => 'item.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'item.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'item.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'item.delete',
                                        'displayName' => 'Delete',
                                    ],
                                    [
                                        'name' => 'item.category.create',
                                        'displayName' => 'Category Create',
                                    ],
                                    [
                                        'name' => 'item.category.edit',
                                        'displayName' => 'Category Edit',
                                    ],
                                    [
                                        'name' => 'item.category.view',
                                        'displayName' => 'Category View',
                                    ],
                                    [
                                        'name' => 'item.category.delete',
                                        'displayName' => 'Category Delete',
                                    ],
                                ],
            ],
            [
            'groupName' => __('unit.units'),
            'permissionName' => [
                                    [
                                        'name' => 'unit.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'unit.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'unit.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'unit.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Suppliers',
            'permissionName' => [
                                    [
                                        'name' => 'supplier.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'supplier.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'supplier.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'supplier.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Utilities',
            'permissionName' => [
                                    [
                                        'name' => 'import.item',
                                        'displayName' => 'Import Items & Services',
                                    ],
                                    [
                                        'name' => 'import.party',
                                        'displayName' => 'Import Customers & Suppliers',
                                    ],
                                    [
                                        'name' => 'generate.barcode',
                                        'displayName' => 'Generate Barcode',
                                    ],

                                ],
            ],
            [
            'groupName' => 'Purchase Order',
            'permissionName' => [
                                    [
                                        'name' => 'purchase.order.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'purchase.order.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'purchase.order.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'purchase.order.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Purchase Bill',
            'permissionName' => [
                                    [
                                        'name' => 'purchase.bill.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'purchase.bill.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'purchase.bill.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'purchase.bill.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Purchase Return',
            'permissionName' => [
                                    [
                                        'name' => 'purchase.return.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'purchase.return.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'purchase.return.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'purchase.return.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],

            [
            'groupName' => 'Sale Order',
            'permissionName' => [
                                    [
                                        'name' => 'sale.order.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'sale.order.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'sale.order.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'sale.order.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Sale Bill',
            'permissionName' => [
                                    [
                                        'name' => 'sale.invoice.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'sale.invoice.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'sale.invoice.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'sale.invoice.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Sale Return',
            'permissionName' => [
                                    [
                                        'name' => 'sale.return.create',
                                        'displayName' => 'Create',
                                    ],
                                    [
                                        'name' => 'sale.return.edit',
                                        'displayName' => 'Edit',
                                    ],
                                    [
                                        'name' => 'sale.return.view',
                                        'displayName' => 'View',
                                    ],
                                    [
                                        'name' => 'sale.return.delete',
                                        'displayName' => 'Delete',
                                    ]

                                ],
            ],
            [
            'groupName' => 'Cash & Bank Transaction',
            'permissionName' => [
                                    [
                                        'name' => 'transaction.cash.add',
                                        'displayName' => 'Cash Transaction Create',
                                    ],
                                    [
                                        'name' => 'transaction.cash.edit',
                                        'displayName' => 'Cash Transaction Edit',
                                    ],
                                    [
                                        'name' => 'transaction.cash.view',
                                        'displayName' => 'Cash Transaction View',
                                    ],
                                    [
                                        'name' => 'transaction.cash.delete',
                                        'displayName' => 'Cash Transaction Delete',
                                    ],
                                    [
                                        'name' => 'transaction.bank.view',
                                        'displayName' => 'Bank Transaction View',
                                    ],
                                    [
                                        'name' => 'transaction.cheque.view',
                                        'displayName' => 'Cheque Transaction View',
                                    ],

                                ],
            ],


        ];


        foreach ($records as $record) {

            $group = PermissionGroup::firstOrCreate(['name' => $record['groupName']]);

            foreach ($record['permissionName'] as $permission) {

                Permission::create([
                                    'name' => $permission['name'],
                                    'display_name' => $permission['displayName'],
                                    'permission_group_id' => $group->id,
                                    'status' => 1,
                                ]);

            }


        }




    }
}