Skip to content

Commit

Permalink
as
Browse files Browse the repository at this point in the history
  • Loading branch information
MrMoreira committed Sep 5, 2024
1 parent 75c358c commit fd55303
Show file tree
Hide file tree
Showing 5 changed files with 185 additions and 36 deletions.
6 changes: 4 additions & 2 deletions M&N Oficina/Controller/controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,13 @@ public function citens(){
}

public function pedidos(){
$this->view->pedidos();
$pedidos = $this->model->listapedidos();
$this->view->pedidos($pedidos);
}

public function itens(){
$this->view->itens();
$itens = $this->model->listaitens();
$this->view->itens($itens);
}

} // Chave de fechamento na mesma linha
Expand Down
57 changes: 57 additions & 0 deletions M&N Oficina/Model/model copy.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?php

require_once 'config/Database.php';

class Model{
public function listaitens(){
$retorno = '
<table id="inventarioTable">
<thead>
<tr>
<th>Nome do Item</th>
<th>Quantidade</th>
<th>Preço Unitário</th>
<th>Categoria</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<!-- Os dados serão inseridos aqui pelo JavaScript -->
<tr>
<td data-label="Nome do Item">Óleo de Motor</td>
<td data-label="Quantidade">50</td>
<td data-label="Preço Unitário">R$ 25.99</td>
<td data-label="Categoria">Lubrificantes</td>
<td data-label="Status"><span class="status disponível">Disponível</span></td>
</tr><tr>
<td data-label="Nome do Item">Filtro de Ar</td>
<td data-label="Quantidade">30</td>
<td data-label="Preço Unitário">R$ 15.50</td>
<td data-label="Categoria">Filtros</td>
<td data-label="Status"><span class="status disponível">Disponível</span></td>
</tr><tr>
<td data-label="Nome do Item">Pastilha de Freio</td>
<td data-label="Quantidade">10</td>
<td data-label="Preço Unitário">R$ 45.00</td>
<td data-label="Categoria">Freios</td>
<td data-label="Status"><span class="status baixo-estoque">Baixo Estoque</span></td>
</tr><tr>
<td data-label="Nome do Item">Bateria 60Ah</td>
<td data-label="Quantidade">5</td>
<td data-label="Preço Unitário">R$ 299.99</td>
<td data-label="Categoria">Elétrica</td>
<td data-label="Status"><span class="status baixo-estoque">Baixo Estoque</span></td>
</tr><tr>
<td data-label="Nome do Item">Pneu 185/65 R15</td>
<td data-label="Quantidade">0</td>
<td data-label="Preço Unitário">R$ 250.00</td>
<td data-label="Categoria">Pneus</td>
<td data-label="Status"><span class="status indisponível">Indisponível</span></td>
</tr></tbody>
</table>
';
return $retorno;

}
}
?>
134 changes: 110 additions & 24 deletions M&N Oficina/Model/model.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,120 @@

require_once 'config/Database.php';

class Model{
/*private $pdo;
public function __construct()
{
$dsn = 'mysql:host=locahost;dbname=morrice';
$user = 'root';
$password = '';
$this->pdo = new PDO($dsn, $user, $password);
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
class Model {
private $pdo;

public function save($table, $data)
{
// Cria a string de colunas e a string de valores
$columns = implode(", ", array_keys($data));
$placeholders = ":" . implode(", :", array_keys($data));
public function __construct() {
$database = new Database();
$this->pdo = $database->getConnection();
}

// Prepara a query SQL
$sql = "INSERT INTO $table ($columns) VALUES ($placeholders)";
public function listaitens() {
// Consulta SQL para obter todos os itens
$sql = 'SELECT nome, quantidade, preco_unitario, categoria, status FROM item';
$stmt = $this->pdo->prepare($sql);
$stmt->execute();
$itens = $stmt->fetchAll(PDO::FETCH_ASSOC);

// HTML da tabela e dados
$retorno = '
<div class="sala-inventario">
<h1>Inventário da Oficina</h1>
<div class="table-container">
<table id="inventarioTable">
<thead>
<tr>
<th>Nome do Item</th>
<th>Quantidade</th>
<th>Preço Unitário</th>
<th>Categoria</th>
<th>Status</th>
</tr>
</thead>
<tbody>';

// Executa a query com os dados fornecidos
foreach ($data as $key => $value) {
$stmt->bindValue(":$key", $value);
// Adiciona uma linha para cada item
foreach ($itens as $item) {
$statusClass = strtolower(str_replace(' ', '-', $item['status']));
$retorno .= '
<tr>
<td data-label="Nome do Item">' . htmlspecialchars($item['nome']) . '</td>
<td data-label="Quantidade">' . htmlspecialchars($item['quantidade']) . '</td>
<td data-label="Preço Unitário">R$ ' . number_format($item['preco_unitario'], 2, ',', '.') . '</td>
<td data-label="Categoria">' . htmlspecialchars($item['categoria']) . '</td>
<td data-label="Status"><span class="status ' . $statusClass . '">' . htmlspecialchars($item['status']) . '</span></td>
</tr>';
}

return $stmt->execute();
}*/
// Fim da tabela HTML
$retorno .= '
</tbody>
</table>
</div>
</div>';

return $retorno;
}

public function listapedidos() {
// Consulta SQL para obter todos os pedidos juntamente com o nome do cliente
$sql = 'SELECT p.id_pedido, c.nome AS cliente, p.data_entrada, p.status
FROM pedido p
JOIN cliente c ON p.id_cliente = c.id_cliente';
$stmt = $this->pdo->prepare($sql);
$stmt->execute();
$pedidos = $stmt->fetchAll(PDO::FETCH_ASSOC);

// HTML da tabela e dados
$retorno = '
<div class="sala">
<h1>Pedidos da Oficina</h1>
<div class="table-container">
<table id="pedidosTable">
<thead>
<tr>
<th>Nº do Pedido</th>
<th>Cliente</th>
<th>Data de Entrada</th>
<th>Status</th>
</tr>
</thead>
<tbody>';

// Adiciona uma linha para cada pedido
foreach ($pedidos as $pedido) {
// Formata a data para o padrão dd/mm/yy
$data = new DateTime($pedido['data_entrada']);
$dataFormatada = $data->format('d/m/Y');

$statusClass = strtolower(str_replace(' ', '-', $pedido['status']));
$retorno .= '
<tr>
<td data-label="Nº do Pedido">' . htmlspecialchars($pedido['id_pedido']) . '</td>
<td data-label="Cliente">' . htmlspecialchars($pedido['cliente']) . '</td>
<td data-label="Data de Entrada">' . htmlspecialchars($dataFormatada) . '</td>
<td data-label="Status"><span class="status ' . $statusClass . '">' . htmlspecialchars($pedido['status']) . '</span></td>
</tr>';
}

// Fim da tabela HTML
$retorno .= '
</tbody>
</table>
</div>
</div>';

return $retorno;
}

// Método auxiliar para buscar o nome do cliente pelo id_cliente
private function obterNomeCliente($id_cliente) {
$sql = 'SELECT CONCAT(nome, " ", sobrenome) AS nome_completo FROM cliente WHERE id_cliente = :id_cliente';
$stmt = $this->pdo->prepare($sql);
$stmt->bindParam(':id_cliente', $id_cliente);
$stmt->execute();
return $stmt->fetchColumn(); // Retorna o nome completo do cliente
}

}
?>
?>
10 changes: 4 additions & 6 deletions M&N Oficina/View/view.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,14 @@ public function citens(){
require "Assets/templates/citens.php";
} // Ainda em construcao pagina para listagem de itens.

public function pedidos(){
public function pedidos($pedidos){
echo "<link rel='stylesheet' href='Assets/css/pedidos.css'>";
echo "<script src='Assets/js/pedidos.js'></script>";
require "Assets/templates/pedidos.php";
echo $pedidos;
}

public function itens(){
public function itens($itens){
echo "<link rel='stylesheet' href='Assets/css/itens.css'>";
echo "<script src='Assets/js/itens.js'></script>";
require "Assets/templates/itens.php";
echo $itens;
}

}
Expand Down
14 changes: 10 additions & 4 deletions M&N Oficina/config/Database.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ class Database
{
// Configurações do Banco de Dados
private $host = "localhost";
private $db_name = "nome_do_banco";
private $username = "usuario";
private $password = "senha";
private $db_name = "mnoficina";
private $username = "root";
private $password = "";
private $conn;

// Método para obter a conexão com o banco de dados
Expand All @@ -21,11 +21,17 @@ public function getConnection()
$this->username,
$this->password
);

$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "Erro na conexão: " . $e->getMessage();
}

return $this->conn;
}
}
}

$connection = new Database();
$conn = $connection->getConnection();

?>

0 comments on commit fd55303

Please sign in to comment.