Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Envio da Avaliação de Estagiário #5

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions algoritmos/Exercicio_1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
As linguagens utilizadas foram PHP, para desenvolver as classes, e Javascript, para usar um AJAX e retornar os resultados do arquivo processa.php para o documento HTML. O sgbd utilizado foi o MySql. A pasta "SQL" contém o arquivo SQL do banco.
Utilizei alguns códigos que já havia implementado em projetos passados como base para desenvolver as Querys que retorna e insere dados no banco, assim como o select com elementos do banco.
A estrutura HTML foi reaproveitada do Exercício 2, assim como o AJAX e um pouco da lógica de programação orientada a objetos.
106 changes: 106 additions & 0 deletions algoritmos/Exercicio_1/SQL/loja.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
-- phpMyAdmin SQL Dump
-- version 5.0.4
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Tempo de geração: 11-Jun-2022 às 00:39
-- Versão do servidor: 10.4.16-MariaDB
-- versão do PHP: 7.4.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Banco de dados: `loja`
--

-- --------------------------------------------------------

--
-- Estrutura da tabela `produto`
--

CREATE TABLE `produto` (
`codigo` int(10) NOT NULL,
`nome` varchar(100) NOT NULL,
`valor` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Extraindo dados da tabela `produto`
--

INSERT INTO `produto` (`codigo`, `nome`, `valor`) VALUES
(1, 'Parafuso 2.5mm', 0.15),
(2, 'Óleo Mineral 100ml', 3.49),
(3, 'Porca Sextavada 5mm', 1.2),
(4, 'Barra Roscada 1/4', 3.99),
(5, 'Luvas Descartáveis (par)', 5.5);

-- --------------------------------------------------------

--
-- Estrutura da tabela `venda`
--

CREATE TABLE `venda` (
`numero` int(10) NOT NULL,
`dataVenda` varchar(50) NOT NULL,
`nome_produto` varchar(100) NOT NULL,
`quantidade` int(10) NOT NULL,
`total` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Extraindo dados da tabela `venda`
--

INSERT INTO `venda` (`numero`, `dataVenda`, `nome_produto`, `quantidade`, `total`) VALUES
(1, '10/06/2022 18:55', 'Luvas Descartáveis (par)', 10, 52.25),
(4, '10/06/2022 19:26', 'Óleo Mineral 100ml', 20, 62.82),
(5, '10/06/2022 19:28', 'Porca Sextavada 5mm', 30, 28.8),
(6, '10/06/2022 19:30', 'Luvas Descartáveis (par)', 30, 132);

--
-- Índices para tabelas despejadas
--

--
-- Índices para tabela `produto`
--
ALTER TABLE `produto`
ADD PRIMARY KEY (`codigo`);

--
-- Índices para tabela `venda`
--
ALTER TABLE `venda`
ADD PRIMARY KEY (`numero`);

--
-- AUTO_INCREMENT de tabelas despejadas
--

--
-- AUTO_INCREMENT de tabela `produto`
--
ALTER TABLE `produto`
MODIFY `codigo` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

--
-- AUTO_INCREMENT de tabela `venda`
--
ALTER TABLE `venda`
MODIFY `numero` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
53 changes: 53 additions & 0 deletions algoritmos/Exercicio_1/Venda.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?php
//require_once 'conexao.php';

class Venda{
public $numero;
public $data;
public $produto;
public $quantidade;
public $valorTotal;
public $conexao;

public function __construct($numero, $data, $produto, $quantidade, $valorTotal){
$this->numero = $numero;
$this->data = $data;
$this->produto = $produto;
$this->quantidade = $quantidade;
$this->valorTotal=$valorTotal;
}

public function getData(){
return $this->data;
}

public function getNumero(){
return $this->numero;
}

public function getProduto(){
return $this->produto;
}

public function getQuantidade(){
return $this->quantidade;
}

public function getValorTotal(){
return $this->valorTotal;
}

public function registrar($banco){

$data = $this->getData();
$produto = $this->getProduto();
$quantidade=$this->getQuantidade();
$valorVenda = $this->getValorTotal();
$sql_venda = "INSERT INTO venda (numero, dataVenda, nome_produto, quantidade, total) VALUES (null, '$data', '$produto', '$quantidade', '$valorVenda')";
$query_venda = mysqli_query($banco, $sql_venda);

}
}


?>
8 changes: 8 additions & 0 deletions algoritmos/Exercicio_1/conexao.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php
define('HOST','127.0.0.1');
define('USUARIO','root');
define('SENHA', '');
define('DB', 'loja');
$conexao = mysqli_connect(HOST,USUARIO,SENHA,DB) or die ('Não foi possível conectar');

?>
76 changes: 76 additions & 0 deletions algoritmos/Exercicio_1/index.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<?php
include 'conexao.php';
$sql_produtos= "SELECT * FROM produto";
$resultado_produtos = mysqli_query($conexao, $sql_produtos);
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<title>Exercício 1 - Loja</title>
<meta charset="utf-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor" crossorigin="anonymous">
</head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.js"></script>
<script>
$(function(){
$(document).on("click", "#botao", function(e) {
e.preventDefault();
{
var infom = $("#form").serialize();
$("#resultado").addClass('loader');
$.ajax({
beforeSend: function() { },
type: "POST",
url: "processa.php",
data:infom,
success: function(result){
$("#resultado").removeClass('loader');
$('#resultado').html(result);
}
});
e.preventDefault();
}
});
});
</script>
<style>
.loader{
height:100px;
background-size: 30px;
}
</style>
<body>
<div class="container">
<br>

<p class="h1 text-center">Escolha o produto e a quantidade.</p>
<br>
<form id="form">
<p class="h5 text-center">Produto:</p>
<select name="produtos"class="form-select text-center">
<?php

$resultado_produtos = mysqli_query($conexao, $sql_produtos);
while ($produtos = mysqli_fetch_assoc($resultado_produtos)) { ?>
<option value="<?php echo $produtos['codigo']; ?>"><?php echo $produtos['nome']; ?>
</option><?php } ?>
</select>
<br/>
<p class="h5 text-center">Quantidade:</p>
<select name="quantidade"class="form-select text-center">
<option value="10">10 Unidades</option>
<option value="20">20 Unidades</option>
<option value="30">30 Unidades</option>
</select>
<br/>
<div class="text-center">
<button id = "botao" class="btn btn-success">Registrar venda</button>
</div>
</form>
<br>
<p class="h4 text-center">Log de venda:</p>
<div class="text-center alert alert-secondary" role="alert" id="resultado"></div>
</div>
</body>

</html>
37 changes: 37 additions & 0 deletions algoritmos/Exercicio_1/processa.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php
require_once 'Venda.php';
require_once 'conexao.php';
date_default_timezone_set('America/Sao_Paulo');//Força a usar o horario de são paulo (Brasilia)
$codProduto = $_POST['produtos'];
$quantidade = $_POST['quantidade'];

$sql_produto = "SELECT * FROM produto WHERE codigo LIKE '$codProduto'";
$query_produto = mysqli_query($conexao, $sql_produto);
$produto = mysqli_fetch_array($query_produto);

$nome=$produto['nome'];
$agora = date('d/m/Y H:i', time());
$valor=$produto['valor'];
$total = $produto['valor']*$quantidade;
//Aplica os descontos no valor total
if($quantidade == 10){
$totalDesc = $total*0.95;
}
if($quantidade == 20){
$totalDesc = $total*0.9;
}
if($quantidade == 30){
$totalDesc = $total*0.8;
}
$venda = new Venda(null, $agora,$nome,$quantidade,$totalDesc);
$venda->registrar($conexao);

echo "Venda registrada!<br/><br/>";
echo "----informações da venda----<br/>";
echo "Produto: ".$produto['nome']."<br/>";
echo "valor unitário: R$".$produto['valor']."<br/>";
echo "Quantidade: ".$quantidade."<br/>";
echo "Total: R$".$total."<br/>";
echo "Total com desconto: R$".$totalDesc."<br/>";

?>
11 changes: 11 additions & 0 deletions algoritmos/Exercicio_2/Andorinha.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php
require_once "Ave.php";
require_once "Voar.php";
class Andorinha extends Ave implements Voar{
public function voar(){
return "Mas, invés disso, a andorinha começa a levantar voo. Seria possível uma andorinha pegar um coco e transportá-lo para a Europa?";
}
}

?>

27 changes: 27 additions & 0 deletions algoritmos/Exercicio_2/Animal.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?php

class Animal{

public $peso;
public $patas;

public function __construct($peso, $patas){

$this->peso = $peso;
$this->patas=$patas;

}

public function comer(){
return "estou comendo";
}

public function andar(){

return "e logo vou andar!";

}

}

?>
7 changes: 7 additions & 0 deletions algoritmos/Exercicio_2/Ave.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php
require_once("Animal.php");
class Ave extends Animal{

}

?>
33 changes: 33 additions & 0 deletions algoritmos/Exercicio_2/Cao.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php
require_once "Mamifero.php";
class Cao extends Mamifero{

public function atacar(){
$sorteio = rand(1,7);
if($sorteio == 1){
return "Invés disso, o cão tenta atacar outro cão, mas recebe um contra ataque como resposta.";
}
elseif($sorteio == 2){
return "Invés disso, o cão tenta atacar o elefante, mas é simplesmente ignorado.";
}
elseif($sorteio == 3){
return "Invés disso, o cão tenta atacar a andorinha, mas ela sai voando.";
}
elseif($sorteio == 4){
return "Invés disso, o cão tenta atacar o pato, mas teve problemas com a água.";
}
elseif($sorteio == 5){
return "Invés disso, o cão tenta atacar a galinha. Ele obtém sucesso e consegue mais comida para seu almoço.";
}
elseif($sorteio == 6){
return "Invés disso, o cão tenta atacar o cavalo e quase leva um coice.";
}
elseif($sorteio == 7){
return "Invés disso, o cão tenta atacar o gato. Porém, o gato foi mais ágil.";
}

}

}

?>
8 changes: 8 additions & 0 deletions algoritmos/Exercicio_2/Cavalo.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php
require_once("Mamifero.php");
class Cavalo extends Mamifero{


}

?>
9 changes: 9 additions & 0 deletions algoritmos/Exercicio_2/Classes.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?php
require_once("Andorinha.php");
require_once("Cao.php");
require_once("Cavalo.php");
require_once("Elefante.php");
require_once("Galinha.php");
require_once("Gato.php");
require_once("Pato.php");
?>
Loading