Loading repository data…
Loading repository data…
alfredo1995 / repository
ERP PHP (Enterprise Resource Planning) is an integrated management system that can organize different areas of a company into a single system, managing the company's data in a single database.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
MIGRANDO SISTEMA PHP PARA O LARAVEL 8
Iniciar o projeto
- composer create-project --prefer-dist Laravel/Laravel ERP
Instalar NPM para as dependências Front End do Scaffold
- npm install
- npm run dev
Criar o banco de dados
- create database Fornecedores;
Importar o banco de dados
- importar o banco de dados do sistema antigo em php
Conxexão com banco de dados
-DB_CONNECTION=mysql
-DB_HOST=127.0.0.1
-DB_PORT=3306
-DB_DATABASE=Fornecedores
-DB_USERNAME=root
-DB_PASSWORD=7070
endpoints do caminho das rotas e seus respectivos metodos
- php artisan make:controller --resource FornecedorController --model=Fornecedor
- Chamando a rota pelo nome ->name('').
- Route::resource('/fornecedores', FornecedorController::class);
- Route::get('/fornecedores', 'App\Http\Controllers\FornecedorController@index')->name('fornecedor');
- Route::get('/fornecedores/create', 'App\Http\Controllers\FornecedorController@create')->name('fornecedorCreate');
- Route::post('/fornecedores/store', 'App\Http\Controllers\FornecedorController@store')->name('fornecedorStore');
- Route::get('/fornecedores/edit', 'App\Http\Controllers\FornecedorController@edit')->name('fornecedorEdit');
- Route::put('/fornecedores/update', 'App\Http\Controllers\FornecedorController@update')->name('fornecedorUpdate');
- Route::delete('/fornecedores/destroy', 'App\Http\Controllers\FornecedorController@destroy')->name('fornecedorDestroy');
II)Habilitar o controller das rotas Route>Web.php
use App\http\Controllers\ProdutoVendaController;
Retornar o caminho e metodo index de fornecedores
public function index(){
return view('fornecedor.index');
}
incluir
Criar Repositorio e suas respectivas views fornecedor>index.blade.php
- usar o template admin bootstrap 5 responsive
- copiar tabela do template admin bootstrap 5 e personalizar
- {{passando o caminho.metodo do controller}}
- Declarando o Method=""
- action definindo o caminho onde a requisição será disparada
<form method="post" action="{ route('fornecedores.create') }" class="row g-3">
II)Criar tabela fornecedores e seu cabeçario d
- <table>
- dentro da table criar o cabecario da tabela
- cabeçario da tabela <tr>
- cedula de registros da tabela <td>
- dentro do <td> os nomes do cabeçario da tabela
<table id=""">
<thead>
<tr>
<th> ID </th>
<th> pessoa </th>
<th> cidade< /th>
<th> Acao </th>
</tr>
</thead>
II) criar o corpo da tabela de fornecedores
- corpo do tabela <tbody>
- cabeçario da tabela <tr>
- cedula de registros da tabela <td>
- dentro do <td>açao</td> criar <span> e os link de direcionamento href="" >
- <td><span> <a href="">Editar</a>
- <span> <a href="">Deletar</a></td>
<tbody>
<tr role="row" class="odd">
<td class="sorting_1">FOR - </td>
<td></td>
<td></td>
<td>
<span>
<a href="" class="btn btn-warning">Editar</a>
@csrf
@method('post')
</span>
<span>
<a href="" class="btn btn-danger">Excluir</a>
</span>
</td>
</tr>
</tbody>
Preparar o corpo do formulario da table p/ os Request
- incluir @foreach p/ pecorrer todo registro dentro do corpo da tabela <tbody> pegando as colunas do banco
- passar $variavel recebendo request as $class do model com os atributos ($fornecedores as $fornecedor)
- incluir nos registro <td> $class pegando os atributo_banco {{ $variavel->atributo_banco }}
- $fornecedor {{$fornecedor->name}} alimentada com atribudos do banco q vai passar p/ a $fornecedores armazenar.
<tbody>
@foreach ($fornecedores as $fornecedor)
<tr>
<td >FOR - {{ $fornecedor->sup_id }}</td>
<td>{{ $fornecedor->name }}</td>
<td>{{ $fornecedor->postal_code }}</td>
<td>{{ $fornecedor->city }}</td>
<td>
<span>
<a href="{{ route('fornecedores.edit', $fornecedor->sup_id]) }}" class="btn btn-warning">Editar</a>
@csrf
@method('post')
</span
<span>
<a href="" class="btn btn-danger">Excluir</a>
</span>
</td>
</tr>
@endforeach
</tbody>
Listando os Dados com metodo Index do controller
- Criando variavel $fornecedores recebendo os atributos da class Fornecedor
- returnando a view do caminho da rota e seu metodo ('fornecedor.index',
- método compact ('fornecedores')) pegando os atributidos da $variavel recebendo os atributos da class
public function index(){
//variavel recebendo todos os atributos da class vindo da view fornecedor
$fornecedores = Fornecedor::all();
return view('fornecedor.index', compact('fornecedores'));
}
Definindo o caminho da rota e seu metodo no botao adicionar da view index.blade
<a href="{{ route('fornecedores.create') }}" class="btn btn-success float-right">Adicionar</a>
Criar cadastro de novos fornecedores
public function create(){ return view('fornecedor.create'); }
Criar Repositorio e suas respectivas views fornecedor>create.blade.php
- usar o template admin bootstrap 5 responsive
- copiar tabela do template admin bootstrap 5 e personalizar
Criar formulario para cadastrar novos fornecedores da view create.blade
- preparar o cabecario do formulario <head>
- Declarando o Method=""
- action=" definindo o caminho e seu metodo de requisição q será disparada
- {{passando a rota ( o caminho.metodo do controller) }}"
- dentro do formulario criar uma div label representando o titulo do cabeçario
- personalizar o corpo formulario
- <label nome do campo dos registros do formulario
- criar input e definir seu type="" e name""
<form method="post" action="{{ route('fornecedores.store') }}" class="row g-3">
@csrf
@method('post')
<div class="col-md-7">
<label>Produtos dos fornecedores</label>
</div>
<div class="col-md-6">
<label>CEP:</label>
<input type="text" name="postal_code">
</div>
Preparar o corpo do formulario da table p/ os Request
- criar mais os campos do formulario de cadastro
- label definindo o nome do campo
- alimentando os iput, definindo o type="" e name=""
<div>
<label >CEP:</label>
<input type="text" name="postal_code">
</div>
<div >
<label>Endereço:</label>
<input type="text" name="address">
</div>
- criar o button do typy="submit" pra enviar os dados do formulario
<div class="col-12">
<button type="submit" class="btn btn-light px-5">Register</button>
</div>
</form>
Metodo resposavel por Retorna a View para criar um item da tabela
- $array = recebendo todos os atributos da class Fornecedor::all();
- returnando a view do caminho da rota e seu metodo ('fornecedor.create',
- método compact ('fornecedor')) pegando os atributidos da $variavel recebendo os atributos da class
public function create(){
//$array recebendo todos os atributos da class Estado
$fornecedor = Fornecedor::all();
return view('fornecedor.create', compact('fornecedor'));
}
Disparando os dados do formulario para o metodo Store receber request e armazenar os dados no banco
public function store(Request $request) { }
criar Moldel Banco e Estado complementando os campos de form da tabela sp_supplier
php artisan make:model Banco
php artisan make:model Estado
// php artisan make:model -mcr Fornecedor
atribuir o método save na instância do modelo para inserir os dados no banco
use App\Models\Fornecedor;
use App\Models\Banco;
use App\Models\Estado;
definindo quais atributos do modelo vão ser atribuidos em massa.
protected $table = 'sp_supplier';
public $timestamps = false;
protected $fillable = [
'sup_id',
'sup_type',
'person',
'name',
'rg',
'cpf',
'cnjp',
];
SE necessario Criando as tabelas no banco de dados e a Migration
php artisan make:migration create_fornecedores_table
Schema::create('fornecedores', function (Blueprint $table) {
$table->id('sup_id');
$table->integer('sup_type');
$table->string('person', 200);
$table->decimal('rg' 17); });
php artisan migrate
Store p/ obtenção request ::create salvando novos registros (passando parametro das respectivas Class::)
- Disparando dados do form p/ metodo Store receber request e armazenar os dados no banco
- Extender as class::salvando request do form's metodo post atribuidos do name="" view Create
- Criar $variavel p/ = receber class com os atribuidos name="" metodos create p/ salvar
- Metodo ->all() selecionando ('todos') os name="" q vao ser salvos
- Metodo ->Only selecionando ('apenas') os name="" q vao ser salvos // ao contrario do ->all();
public function store(Request $request) {
Fornecedor::create($request->all());
return redirect()->route('fornecedores.index');
- no caso se for usar o metodo ->only
$fornecedor = Fornecedor::create($request->only(['postal_code', 'number','city','cellphone', 'emails']));
Definindo o caminho da rota e seu metodo no botao editar da view index.blade
- Token @csrf
- verbo http da tota @method('')
<a href="{{ route('fornecedores.editar') }}" class="btn btn-success float-right">Editar</a>
@csrf
@method('post')
Metodo Edit responsalvel por Retorna a View de edição de dados
- Criar view index.blade
- Copiar view create.blade e colar na view index.blade
- definir method="" da action
- definir o caminho da rota e seu metodo action="{{ route('fornecedores.update',
- passar o request com os names inputs alimentados $fornecedor->sup_id) }}"
- token @csrf para validar o envio dos dados
- @method('') do verbo http da rota
<form method="post" action="{{ route('fornecedores.update', $fornecedor->sup_id) }}" class="row g-3">
@csrf
@method('PUT')
- alimentar os input que já tem o ty