Crie o model Permissao
para criar o model Permissao use o comando: php artisan make:model Permissao -m
para popular as permissões você vai precisar criar um arquivo chamado permissoes.php e criar nele sendo alguns menus, sendo eles:
- array menus - listando todos os menus do seu sistema
- array acoes - listando as ações que o usuário pode fazer
- array submenus - listando os submenus do sistema
você pode usar como modelo ou exemplo os dados abaixo
<?php
return [
'menus'=>[
'menu_configuracao',
'menu_cadastro',
'menu_compra',
'menu_venda',
'menu_os',
'menu_pedido_cliente',
'menu_estoque',
'menu_loja_virtual',
'menu_nfe',
'menu_pdv',
'menu_financeiro',
'menu_usuario',
'menu_funcoes'
],
'acoes'=>[
'editar',
'visualizar',
'cadastrar',
'excluir'
],
'submenus'=>[
'submenu_meu_plano',
'submenu_minha_empresa',
'submenu_parametro',
'submenu_emitente',
'submenu_natureza_operacao',
'submenu_certificado_digital',
'submenu_categoria',
'submenu_subcategoria',
'submenu_subsubcategoria',
'submenu_produto',
'submenu_cupom',
'submenu_servico',
'submenu_cliente',
'submenu_tabela_preco',
'submenu_vendedor',
'submenu_varicao_grade',
'submenu_item_variacao',
'submenu_localizacao',
'submenu_fornecedor',
'submenu_banco',
'submenu_conta_corrente',
'submenu_transportadora',
'submenu_lista_compra',
'submenu_compra_manual',
'submenu_importar_nfe',
'submenu_lista_venda',
'submenu_nova_venda',
'submenu_orcamento',
'submenu_ordem_servico',
'submenu_tecnico',
'submenu_equipamento',
'submenu_termo_garantia',
'submenu_lista_pedido',
'submenu_configuracao_loja',
'submenu_pedidos_loja',
'submenu_banner_loja',
'submenu_entrada',
'submenu_saida',
'submenu_estoque_atual',
'submenu_estoque_minimo',
'submenu_vencimento',
'submenu_historico_produto',
'submenu_nova_nfe',
'submenu_lista_nfe',
'submenu_importar_nfe',
'submenu_inutilizar_numeracao',
'submenu_lista_nfce',
'submenu_numero_pdv',
'submenu_caixa_pdv',
'submenu_sangria',
'submenu_suplemento',
'submenu_venda_pdv',
'submenu_classificacao',
'submenu_conta_pagar',
'submenu_conta_receber',
'submenu_tipo_despesa',
'submenu_despesa',
'submenu_fatura',
'submenu_pagamento',
'submenu_recebimento',
'submenu_comprovante',
'submenu_movimento_conta',
'submenu_extrato',
'submenu_rel_produto',
'submenu_rel_venda',
'submenu_rel_estoque',
'submenu_rel_conta_receber',
'submenu_rel_recebimento',
'submenu_rel_conta_pagar',
'submenu_rel_pagamento',
'submenu_rel_movimento_conta',
'submenu_rel_venda_pdv',
'submenu_rel_venda_loja_virtual',
'submenu_admin_cartao',
'submenu_bandeira'
]
];
para criar a seed permissao use o comando: php artisan make:seed PermissaoSeeder
Crie um cliente para que seja o cliente Consumidor e outro cliente teste para ajudar nas operações iniciais
$consumidor = new \stdClass();
$consumidor->tipo_cliente = "F";
$consumidor->eh_consumidor = "S";
$consumidor->cpf_cnpj = "11111111111";
$consumidor->nome_razao_social = "CLIENTE CONSUMIDOR";
$consumidor->indFinal = "1";
$consumidor->logradouro = "logradouro";
$consumidor->numero = "123";
$consumidor->bairro = "Bairro";
$consumidor->cidade = "sem cidade";
$consumidor->uf = "UF";
$consumidor->cep = "000000";
$consumidor->status_id = config("constantes.status.ATIVO");
$consumidor->senha = md5('1234');
$cliente = Cliente::Create(objToArray($consumidor));
Cliente::Create([
'nome_razao_social' => 'Cliente Teste',
'nome_fantasia' => 'Cliente Teste',
'cpf_cnpj' => '60724810005',
'telefone' => '9899999999',
'email' => 'mjailton@gmail.com',
'senha' => md5('1234'),
'cep' => '65060180',
'logradouro' => '1ª Travessa das Flores',
'numero' => '09',
'uf' => 'MA',
'cidade' => 'São Luís',
'complemento' => 'qd 20',
'bairro' => 'Cruzeiro do Anil',
'tipo_contribuinte' => '9',
'ibge' => '2111300',
'indFinal' => '1',
'status_id' => config("constantes.status.ATIVO")
]);
Crie um controller chamado Permissao, para que o projeto fique mais organizado salve o controller numa pasta chamada Acl
No controller StatusController crie um método index, o qual deverá:
- pegar a lista de permissao e colocar um array
- chamar a view Acl/Permissao/Index com o array criado com a lista de permissoes
public function index()
{
$dados["lista"] = Permissao::all();
return view("Acl.Permissao.Index", $dados);
}
Crie a view para a listagem de status
Dentro da pasta resources/view crie uma pasta chamada de Cadastro e dentro de Cadastro crie uma outra chamada de Status e dentro da pasta Status crie um arquivo chamado Index.blade.php
Copie o conteúdo do arquivo lst_status para o arquivo Cadastro/Status/Index.blade.php, não esqueça envolvê-lo pelos comandos:
@extends('template')
@section('conteudo')
//aqui fica o conteúdo do arquivo
@endsection
Execute seu sistema e pelo menu categoria abre a página de listagem de categoria, mas deverá está parecida com imagem abaixo
Na view Index, faça os seguintes procedimentos:
- Faça o loop para receber os dados do banco e listar na tabela
- Não crie nenhum link para fazer a edição
- Não crie nenhum link para fazer a exclusão de um registro
@foreach ($lista as $l)
<tr>
<td align="center">{{ $l->id }}</td>
<td align="left">{{ $l->categoria }}</td>
<td align="center">
<a href="{{ route('categoria.edit', $l->id) }}"
class="d-inline-block btn btn-outline-roxo btn-pequeno"><i
class="fas fa-edit"></i>
Editar</a>
<a href="javascript:;"
onclick="confirm('Tem Certeza?') ? document.getElementById('apagar{{ $l->id }}').submit() : '';"
class="d-inline-flex gap-3 btn btn-outline-vermelho btn-pequeno">
<i class="fas fa-trash-alt"></i>
<form action="{{ route('categoria.destroy', $l->id) }}" method="POST"
id="apagar{{ $l->id }}">
@method('DELETE')
@csrf
</form>
Excluir
</a>
</td>
</tr>
@endforeach