diff --git a/.ftpquota b/.ftpquota new file mode 100644 index 0000000..e69de29 diff --git a/.vscode/ftp-sync.json b/.vscode/ftp-sync.json new file mode 100644 index 0000000..0867da9 --- /dev/null +++ b/.vscode/ftp-sync.json @@ -0,0 +1,27 @@ +{ + "remotePath": "./", + "host": "bigcell.com.br", + "username": "bigcellc_ads2025", + "password": "Ads*2025_", + "port": 21, + "secure": false, + "protocol": "ftp", + "uploadOnSave": true, + "passive": false, + "debug": false, + "privateKeyPath": null, + "passphrase": null, + "agent": null, + "allow": [], + "ignore": [ + "\\.vscode", + "\\.git", + "\\.DS_Store" + ], + "generatedFiles": { + "extensionsToInclude": [ + "" + ], + "path": "" + } +} \ No newline at end of file diff --git a/Alunos/marcosassuncao/teste.php b/Alunos/marcosassuncao/teste.php new file mode 100644 index 0000000..a549647 --- /dev/null +++ b/Alunos/marcosassuncao/teste.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/Banco/error_log b/Banco/error_log new file mode 100644 index 0000000..4563df1 --- /dev/null +++ b/Banco/error_log @@ -0,0 +1,2 @@ +[03-Mar-2026 23:57:52 UTC] PHP Warning: mysqli::mysqli(): Headers and client library minor version mismatch. Headers:101113 Library:100505 in /home/bigcellc/public_html/ads2025/Banco/mostraBanco.php on line 9 +[04-Mar-2026 00:06:18 UTC] PHP Warning: mysqli::mysqli(): Headers and client library minor version mismatch. Headers:101113 Library:100505 in /home/bigcellc/public_html/ads2025/Banco/mostraBanco.php on line 9 diff --git a/Banco/mostraBanco.php b/Banco/mostraBanco.php new file mode 100644 index 0000000..901b148 --- /dev/null +++ b/Banco/mostraBanco.php @@ -0,0 +1,55 @@ +connect_error) { + die("Falha na conexão: " . $conn->connect_error); +} + +// Define o charset para evitar problemas com acentuação +$conn->set_charset("utf8"); + +// Consulta no information_schema para obter as tabelas, colunas e tipos +$sql = "SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, COLUMN_TYPE + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = '" . $conn->real_escape_string($dbname) . "' + ORDER BY TABLE_NAME, ORDINAL_POSITION"; + +$result = $conn->query($sql); + +if ($result->num_rows > 0) { + $current_table = ""; + + echo "

Estrutura do Banco de Dados: $dbname

"; + + // Percorre os resultados e formata a saída em HTML + while ($row = $result->fetch_assoc()) { + // Sempre que o nome da tabela mudar, cria um novo bloco + if ($current_table != $row['TABLE_NAME']) { + if ($current_table != "") { + echo "
"; + } + $current_table = $row['TABLE_NAME']; + echo "

Tabela: $current_table

"; + echo "
"; // Fecha a última lista + +} else { + echo "

Nenhuma tabela encontrada no banco de dados ou o usuário não tem permissão de leitura no information_schema.

"; +} + +// Fecha a conexão +$conn->close(); +?> \ No newline at end of file diff --git a/Example/Banco/Banco.php b/Example/Banco/Banco.php new file mode 100644 index 0000000..8f1ba4d --- /dev/null +++ b/Example/Banco/Banco.php @@ -0,0 +1,43 @@ +nomeBanco = "bigcellc_ads2025"; + $this->nomeUsuario = "bigcellc_ads2025"; + $this->senha = "Ads*2025_"; + $this->localBanco = "localhost"; + } else { + $this->nomeBanco = ""; + $this->nomeUsuario = ""; + $this->senha = ""; + $this->localBanco = "localhost"; + } + + $this->conexao = mysql_connect($this->localBanco, $this->nomeUsuario, $this->senha); + mysql_select_db($this->nomeBanco, $this->conexao); + } + + function executar($sql) + { + @$retorno = mysql_query($sql, $this->conexao); + if (!$retorno) { + die('Erro na consulta: ' . mysql_error()); + mail("mvassuncao10@gmail.com", "Erro em consulta SQL www.bigcell.com.br", mysql_errno() . ": " . mysql_error()); + return $retorno; + } + mysql_close($this->conexao); + return $retorno; + } + function backup($tabela, $codRegistro) + { + return 0; + } +} diff --git a/Example/Controle/ControleCliente.php b/Example/Controle/ControleCliente.php new file mode 100644 index 0000000..91ce9a6 --- /dev/null +++ b/Example/Controle/ControleCliente.php @@ -0,0 +1,101 @@ +set('nome', $nome); + $objCliente->set('logradouro', $dados['logradouro']); + $objCliente->set('numero', $dados['numero']); + $objCliente->set('bairro', $dados['bairro']); + $objCliente->set('cidade', $dados['cidade']); + $objCliente->set('estado', $dados['estado']); + $objCliente->set('cep', $dados['cep']); + $objCliente->set('telefone', $dados['telefone']); + $objCliente->set('celular', $dados['celular']); + $objCliente->set('cpf', $dados['cpf']); + $objCliente->set('email', $dados['email']); + $novaDat = explode('/', $dados['datNascimento']); + $novaData = $novaDat[2] . $novaDat[1] . $novaDat[0]; + $objCliente->set('datNascimento', $novaData); + $objCliente->set('sexo', $dados['sexo']); + $objCliente->set('profissao', $dados['profissao']); + $objCliente->set('identidade', $dados['identidade']); + $objCliente->set('obs', $dados['obs']); + $objCliente->set('usuario', $dados['usuario']); + $objCliente->set('senha', $dados['senha']); + + return $retorno = $objCliente->inserir(); + } + + function alterar($dados) { + $novaDat = explode('/', $dados['datNascimento']); + $novaData = $novaDat[2] . $novaDat[1] . $novaDat[0]; + $objCliente = new Cliente; + $nome = removeAcentos($dados['nome']); + $objCliente->set('nome', $nome); + $objCliente->set('codCliente', $dados['codCliente']); + $objCliente->set('nome', $dados['nome']); + $objCliente->set('logradouro', $dados['logradouro']); + $objCliente->set('numero', $dados['numero']); + $objCliente->set('bairro', $dados['bairro']); + $objCliente->set('cidade', $dados['cidade']); + $objCliente->set('estado', $dados['estado']); + $objCliente->set('cep', $dados['cep']); + $objCliente->set('telefone', $dados['telefone']); + $objCliente->set('celular', $dados['celular']); + $objCliente->set('cpf', $dados['cpf']); + $objCliente->set('email', $dados['email']); + $objCliente->set('datNascimento', $novaData); + $objCliente->set('sexo', $dados['sexo']); + $objCliente->set('profissao', $dados['profissao']); + $objCliente->set('identidade', $dados['identidade']); + $objCliente->set('obs', $dados['obs']); + $objCliente->set('usuario', $dados['usuario']); + $objCliente->set('senha', $dados['senha']); + return $retorno = $objCliente->alterar(); + } + + function excluir($dados) { + $objCliente = new Cliente; + $objCliente->set('codCliente', $dados['codCliente']); + return $retorno = $objCliente->excluir(); + } + + function buscarTodos() { + $objCliente = new Cliente; + return $retorno = $objCliente->buscarTodos(); + } + + function buscarWhere($campo, $operador, $valor, $ordenar, $extra) { + $objCliente = new Cliente; + return $retorno = $objCliente->buscarWhere($campo, $operador, $valor, $ordenar, $extra); + } + + function buscarPorNome($nome) { + $objCliente = new Cliente; + return $retorno = $objCliente->buscarPorNome($nome); + } + + function buscarPorId($codCliente) { + $objCliente = new Cliente; + $objCliente->set('codCliente', $codCliente); + return $retorno = $objCliente->buscarPorId(); + } + + function buscarData() { + $objCliente = new Cliente; + return $retorno = $objCliente->buscarData(); + } + + function selectClientes($codCliente) { + $objCliente = new Cliente; + return $retorno = $objCliente->selectClientes($codCliente); + } + +} + +?> \ No newline at end of file diff --git a/Example/Entidade/Cliente.php b/Example/Entidade/Cliente.php new file mode 100644 index 0000000..8ded60b --- /dev/null +++ b/Example/Entidade/Cliente.php @@ -0,0 +1,630 @@ +$atributo; + } + + function set($atributo, $valor) + { + $this->$atributo = $valor; + } + + function inserir() + { + $sql = " + insert into + Cliente + ( + nome, + logradouro, + numero, + bairro, + cidade, + estado, + cep, + telefone, + celular, + cpf, + email, + datNascimento, + sexo, + profissao, + identidade, + obs, + usuario, + senha + ) + values + ( + '" . $this->nome . "', + '" . $this->logradouro . "', + '" . $this->numero . "', + '" . $this->bairro . "', + '" . $this->cidade . "', + '" . $this->estado . "', + '" . $this->cep . "', + '" . $this->telefone . "', + '" . $this->celular . "', + '" . $this->cpf . "', + '" . $this->email . "', + '" . $this->datNascimento . "', + '" . $this->sexo . "', + '" . $this->profissao . "', + '" . $this->identidade . "', + '" . $this->obs . "', + '" . $this->usuario . "', + '" . $this->senha . "' + )"; + + $objBanco = new Banco(); + return $retorno = $objBanco->executar($sql); + } + + function excluir() + { + + $sql = " + delete + from + Cliente + where + codCliente = '" . $this->codCliente . "'"; + + $objBanco = new Banco(); + return $retorno = $objBanco->executar($sql); + } + + function alterar() + { + + $sql = "update Cliente set + nome = '" . $this->nome . "', + logradouro = '" . $this->logradouro . "', + numero = '" . $this->numero . "', + bairro = '" . $this->bairro . "', + cidade = '" . $this->cidade . "', + estado = '" . $this->estado . "', + cep = '" . $this->cep . "', + telefone = '" . $this->telefone . "', + celular = '" . $this->celular . "', + cpf = '" . $this->cpf . "', + email = '" . $this->email . "', + datNascimento = '" . $this->datNascimento . "', + sexo = '" . $this->sexo . "', + profissao = '" . $this->profissao . "', + identidade = '" . $this->identidade . "', + obs = '" . $this->obs . "', + usuario = '" . $this->usuario . "', + senha = '" . $this->senha . "' + where + codCliente = '" . $this->codCliente . "'"; + + $objBanco = new Banco(); + return $retorno = $objBanco->executar($sql); + } + + function buscarTodos() + { + + //$sql = "select * from Cliente where nome like _utf8 '%assuncão%' COLLATE utf8_unicode_ci"; + $sql = " + select + codCliente, + nome, + logradouro, + numero, + bairro, + cidade, + estado, + cep, + telefone, + celular, + cpf, + email, + datNascimento, + sexo, + profissao, + identidade, + obs, + usuario, + senha + from + Cliente + order by + nome ASC + "; + //$sql = "SELECT * from Cliente WHERE nome LIKE '%s Assunçao%' COLLATE Latin1_bin"; + + $objBanco = new Banco(); + $dados = $objBanco->executar($sql); + $linhas = mysql_num_rows($dados); + + $objClientes = array(); + + for ($i = 0; $i < $linhas; $i++) { + + $codCliente = mysql_result($dados, $i, 'codCliente'); + $nome = mysql_result($dados, $i, 'nome'); + $logradouro = mysql_result($dados, $i, 'logradouro'); + $numero = mysql_result($dados, $i, 'numero'); + $bairro = mysql_result($dados, $i, 'bairro'); + $cidade = mysql_result($dados, $i, 'cidade'); + $estado = mysql_result($dados, $i, 'estado'); + $cep = mysql_result($dados, $i, 'cep'); + $telefone = mysql_result($dados, $i, 'telefone'); + $celular = mysql_result($dados, $i, 'celular'); + $cpf = mysql_result($dados, $i, 'cpf'); + $email = mysql_result($dados, $i, 'email'); + $datNascimento = mysql_result($dados, $i, 'datNascimento'); + $sexo = mysql_result($dados, $i, 'sexo'); + $profissao = mysql_result($dados, $i, 'profissao'); + $identidade = mysql_result($dados, $i, 'identidade'); + $obs = mysql_result($dados, $i, 'obs'); + $usuario = mysql_result($dados, $i, 'usuario'); + $senha = mysql_result($dados, $i, 'senha'); + + $novaDat = explode('-', $datNascimento); + $novaData = $novaDat[2] . '/' . $novaDat[1] . '/' . $novaDat[0]; + + $objCliente = new Cliente; + $objCliente->set('codCliente', $codCliente); + $objCliente->set('nome', $nome); + $objCliente->set('logradouro', $logradouro); + $objCliente->set('numero', $numero); + $objCliente->set('bairro', $bairro); + $objCliente->set('cidade', $cidade); + $objCliente->set('estado', $estado); + $objCliente->set('cep', $cep); + $objCliente->set('telefone', $telefone); + $objCliente->set('celular', $celular); + $objCliente->set('cpf', $cpf); + $objCliente->set('email', $email); + $objCliente->set('datNascimento', $novaData); + $objCliente->set('sexo', $sexo); + $objCliente->set('profissao', $profissao); + $objCliente->set('identidade', $identidade); + $objCliente->set('obs', $obs); + $objCliente->set('usuario', $usuario); + $objCliente->set('senha', $senha); + + array_push($objClientes, $objCliente); + } + return $objClientes; + } + + function buscarWhere($campo, $operador, $valor, $ordenar, $extra) + { + if ($operador == "like") { + $valor = "%" . $valor . "%"; + } + if ($operador == "letra") { + $valor = $valor . "%"; + $operador = "like"; + } + $sql = " + select + codCliente, + nome, + logradouro, + numero, + bairro, + cidade, + estado, + cep, + telefone, + celular, + cpf, + email, + datNascimento, + sexo, + profissao, + identidade, + obs, + usuario, + senha + from + Cliente + where + " . $campo . " " . $operador . " '" . $valor . "' + order by + " . $ordenar . " ASC + "; + + $objBanco = new Banco(); + $dados = $objBanco->executar($sql); + $linhas = mysql_num_rows($dados); + + $objClientes = array(); + + for ($i = 0; $i < $linhas; $i++) { + + $codCliente = mysql_result($dados, $i, 'codCliente'); + $nome = mysql_result($dados, $i, 'nome'); + $logradouro = mysql_result($dados, $i, 'logradouro'); + $numero = mysql_result($dados, $i, 'numero'); + $bairro = mysql_result($dados, $i, 'bairro'); + $cidade = mysql_result($dados, $i, 'cidade'); + $estado = mysql_result($dados, $i, 'estado'); + $cep = mysql_result($dados, $i, 'cep'); + $telefone = mysql_result($dados, $i, 'telefone'); + $celular = mysql_result($dados, $i, 'celular'); + $cpf = mysql_result($dados, $i, 'cpf'); + $email = mysql_result($dados, $i, 'email'); + $datNascimento = mysql_result($dados, $i, 'datNascimento'); + $sexo = mysql_result($dados, $i, 'sexo'); + $profissao = mysql_result($dados, $i, 'profissao'); + $identidade = mysql_result($dados, $i, 'identidade'); + $obs = mysql_result($dados, $i, 'obs'); + $usuario = mysql_result($dados, $i, 'usuario'); + $senha = mysql_result($dados, $i, 'senha'); + + $novaDat = explode('-', $datNascimento); + $novaData = $novaDat[2] . '/' . $novaDat[1] . '/' . $novaDat[0]; + + $objCliente = new Cliente; + $objCliente->set('codCliente', $codCliente); + $objCliente->set('nome', $nome); + $objCliente->set('logradouro', $logradouro); + $objCliente->set('numero', $numero); + $objCliente->set('bairro', $bairro); + $objCliente->set('cidade', $cidade); + $objCliente->set('estado', $estado); + $objCliente->set('cep', $cep); + $objCliente->set('telefone', $telefone); + $objCliente->set('celular', $celular); + $objCliente->set('cpf', $cpf); + $objCliente->set('email', $email); + $objCliente->set('datNascimento', $novaData); + $objCliente->set('sexo', $sexo); + $objCliente->set('profissao', $profissao); + $objCliente->set('identidade', $identidade); + $objCliente->set('obs', $obs); + $objCliente->set('usuario', $usuario); + $objCliente->set('senha', $senha); + + array_push($objClientes, $objCliente); + } + return $objClientes; + } + + function buscarPorId($codClienteBusca) + { + + $sql = " + select + nome, + logradouro, + numero, + bairro, + cidade, + estado, + cep, + telefone, + celular, + cpf, + email, + datNascimento, + sexo, + profissao, + identidade, + obs, + usuario, + senha + from + Cliente + where + codCliente = '" . $codClienteBusca . "' + "; + + $objBanco = new Banco(); + $dados = $objBanco->executar($sql); + $linhas = mysql_num_rows($dados); + if ($linhas > 0) { + + $nome = mysql_result($dados, 0, 'nome'); + $logradouro = mysql_result($dados, 0, 'logradouro'); + $numero = mysql_result($dados, 0, 'numero'); + $bairro = mysql_result($dados, 0, 'bairro'); + $cidade = mysql_result($dados, 0, 'cidade'); + $estado = mysql_result($dados, 0, 'estado'); + $cep = mysql_result($dados, 0, 'cep'); + $telefone = mysql_result($dados, 0, 'telefone'); + $celular = mysql_result($dados, 0, 'celular'); + $cpf = mysql_result($dados, 0, 'cpf'); + $email = mysql_result($dados, 0, 'email'); + $datNascimento = mysql_result($dados, 0, 'datNascimento'); + $sexo = mysql_result($dados, 0, 'sexo'); + $profissao = mysql_result($dados, 0, 'profissao'); + $identidade = mysql_result($dados, 0, 'identidade'); + $obs = mysql_result($dados, 0, 'obs'); + $usuario = mysql_result($dados, 0, 'usuario'); + $senha = mysql_result($dados, 0, 'senha'); + + $novaDat = explode('-', $datNascimento); + $novaData = $novaDat[2] . '/' . $novaDat[1] . '/' . $novaDat[0]; + + $objCliente = new Cliente; + $objCliente->set('nome', $nome); + $objCliente->set('logradouro', $logradouro); + $objCliente->set('numero', $numero); + $objCliente->set('bairro', $bairro); + $objCliente->set('cidade', $cidade); + $objCliente->set('estado', $estado); + $objCliente->set('cep', $cep); + $objCliente->set('telefone', $telefone); + $objCliente->set('celular', $celular); + $objCliente->set('cpf', $cpf); + $objCliente->set('email', $email); + $objCliente->set('datNascimento', $novaData); + $objCliente->set('sexo', $sexo); + $objCliente->set('profissao', $profissao); + $objCliente->set('identidade', $identidade); + $objCliente->set('obs', $obs); + $objCliente->set('usuario', $usuario); + $objCliente->set('senha', $senha); + + return $objCliente; + } else { + $objCliente = new Cliente; + $objCliente->set('nome', "(Cliente não encontrado!)"); + $objCliente->set('logradouro', "(Cliente não encontrado!)"); + $objCliente->set('numero', "(Cliente não encontrado!)"); + $objCliente->set('bairro', "(Cliente não encontrado!)"); + $objCliente->set('cidade', "(Cliente não encontrado!)"); + $objCliente->set('estado', "(Cliente não encontrado!)"); + $objCliente->set('cep', "(Cliente não encontrado!)"); + $objCliente->set('telefone', "(Cliente não encontrado!)"); + $objCliente->set('celular', "(Cliente não encontrado!)"); + $objCliente->set('cpf', "(Cliente não encontrado!)"); + $objCliente->set('email', "(Cliente não encontrado!)"); + $objCliente->set('datNascimento', "(Cliente não encontrado!)"); + $objCliente->set('sexo', "(Cliente não encontrado!)"); + $objCliente->set('profissao', "(Cliente não encontrado!)"); + $objCliente->set('identidade', "(Cliente não encontrado!)"); + $objCliente->set('obs', "(Cliente não encontrado!)"); + $objCliente->set('usuario', "(Cliente não encontrado!)"); + $objCliente->set('senha', "(Cliente não encontrado!)"); + + return $objCliente; + } + } + + function buscarPorNome($nome) + { + + $sql = " + select + codCliente, + nome, + logradouro, + numero, + bairro, + cidade, + estado, + cep, + telefone, + celular, + cpf, + email, + datNascimento, + sexo, + profissao, + identidade, + obs, + usuario, + senha + from + Cliente + where + nome like '%" . $nome . "%' + order by + nome ASC + "; + + $objBanco = new Banco(); + $dados = $objBanco->executar($sql); + $linhas = mysql_num_rows($dados); + + $objClientes = array(); + + for ($i = 0; $i < $linhas; $i++) { + + $codCliente = mysql_result($dados, $i, 'codCliente'); + $nome = mysql_result($dados, $i, 'nome'); + $logradouro = mysql_result($dados, $i, 'logradouro'); + $numero = mysql_result($dados, $i, 'numero'); + $bairro = mysql_result($dados, $i, 'bairro'); + $cidade = mysql_result($dados, $i, 'cidade'); + $estado = mysql_result($dados, $i, 'estado'); + $cep = mysql_result($dados, $i, 'cep'); + $telefone = mysql_result($dados, $i, 'telefone'); + $celular = mysql_result($dados, $i, 'celular'); + $cpf = mysql_result($dados, $i, 'cpf'); + $email = mysql_result($dados, $i, 'email'); + $datNascimento = mysql_result($dados, $i, 'datNascimento'); + $sexo = mysql_result($dados, $i, 'sexo'); + $profissao = mysql_result($dados, $i, 'profissao'); + $identidade = mysql_result($dados, $i, 'identidade'); + $obs = mysql_result($dados, $i, 'obs'); + $usuario = mysql_result($dados, $i, 'usuario'); + $senha = mysql_result($dados, $i, 'senha'); + + $novaDat = explode('-', $datNascimento); + $novaData = $novaDat[2] . '/' . $novaDat[1] . '/' . $novaDat[0]; + + $objCliente = new Cliente; + $objCliente->set('codCliente', $codCliente); + $objCliente->set('nome', $nome); + $objCliente->set('logradouro', $logradouro); + $objCliente->set('numero', $numero); + $objCliente->set('bairro', $bairro); + $objCliente->set('cidade', $cidade); + $objCliente->set('estado', $estado); + $objCliente->set('cep', $cep); + $objCliente->set('telefone', $telefone); + $objCliente->set('celular', $celular); + $objCliente->set('cpf', $cpf); + $objCliente->set('email', $email); + $objCliente->set('datNascimento', $novaData); + $objCliente->set('sexo', $sexo); + $objCliente->set('profissao', $profissao); + $objCliente->set('identidade', $identidade); + $objCliente->set('obs', $obs); + $objCliente->set('usuario', $usuario); + $objCliente->set('senha', $senha); + + array_push($objClientes, $objCliente); + } + return $objClientes; + } + + function buscarData() + { + $data = date('Ymd'); + $month = substr($data, 4, 2); + $sql = " + select + codCliente, + nome, + logradouro, + numero, + bairro, + cidade, + estado, + cep, + telefone, + celular, + cpf, + email, + datNascimento, + sexo, + profissao, + identidade, + obs, + usuario, + senha + from + Cliente + where + MONTH(datNascimento) = '" . $month . "' + order by + nome ASC + "; + + $objBanco = new Banco(); + $dados = $objBanco->executar($sql); + $linhas = mysql_num_rows($dados); + + $objClientes = array(); + + for ($i = 0; $i < $linhas; $i++) { + + $codCliente = mysql_result($dados, $i, 'codCliente'); + $nome = mysql_result($dados, $i, 'nome'); + $logradouro = mysql_result($dados, $i, 'logradouro'); + $numero = mysql_result($dados, $i, 'numero'); + $bairro = mysql_result($dados, $i, 'bairro'); + $cidade = mysql_result($dados, $i, 'cidade'); + $estado = mysql_result($dados, $i, 'estado'); + $cep = mysql_result($dados, $i, 'cep'); + $telefone = mysql_result($dados, $i, 'telefone'); + $celular = mysql_result($dados, $i, 'celular'); + $cpf = mysql_result($dados, $i, 'cpf'); + $email = mysql_result($dados, $i, 'email'); + $datNascimento = mysql_result($dados, $i, 'datNascimento'); + $sexo = mysql_result($dados, $i, 'sexo'); + $profissao = mysql_result($dados, $i, 'profissao'); + $identidade = mysql_result($dados, $i, 'identidade'); + $obs = mysql_result($dados, $i, 'obs'); + $usuario = mysql_result($dados, $i, 'usuario'); + $senha = mysql_result($dados, $i, 'senha'); + + $novaDat = explode('-', $datNascimento); + $novaData = $novaDat[2] . '/' . $novaDat[1] . '/' . $novaDat[0]; + + $objCliente = new Cliente; + $objCliente->set('codCliente', $codCliente); + $objCliente->set('nome', $nome); + $objCliente->set('logradouro', $logradouro); + $objCliente->set('numero', $numero); + $objCliente->set('bairro', $bairro); + $objCliente->set('cidade', $cidade); + $objCliente->set('estado', $estado); + $objCliente->set('cep', $cep); + $objCliente->set('telefone', $telefone); + $objCliente->set('celular', $celular); + $objCliente->set('cpf', $cpf); + $objCliente->set('email', $email); + $objCliente->set('datNascimento', $novaData); + $objCliente->set('sexo', $sexo); + $objCliente->set('profissao', $profissao); + $objCliente->set('identidade', $identidade); + $objCliente->set('obs', $obs); + $objCliente->set('usuario', $usuario); + $objCliente->set('senha', $senha); + + array_push($objClientes, $objCliente); + } + return $objClientes; + } + + function selectClientes($codClienteSelecionado) + { + + $sql = " + select + codCliente, + nome + from + Cliente + order by + nome ASC + "; + + $objBanco = new Banco(); + $dados = $objBanco->executar($sql); + $linhas = mysql_num_rows($dados); + + $selectClientes = ""; + + echo $selectClientes; + } +} diff --git a/Example/FilesOk/altClienteOK.php b/Example/FilesOk/altClienteOK.php new file mode 100644 index 0000000..d2a92b8 --- /dev/null +++ b/Example/FilesOk/altClienteOK.php @@ -0,0 +1,21 @@ +alterar($dados); + +if ($retorno == true) + echo ' + '; +else + echo ' + '; +?> \ No newline at end of file diff --git a/Example/FilesOk/cadClienteOK.php b/Example/FilesOk/cadClienteOK.php new file mode 100644 index 0000000..ee2ce17 --- /dev/null +++ b/Example/FilesOk/cadClienteOK.php @@ -0,0 +1 @@ +inserir($dados); if ($retorno == true) echo ' '; else echo ' '; ?> \ No newline at end of file diff --git a/Example/FilesOk/excClienteOK.php b/Example/FilesOk/excClienteOK.php new file mode 100644 index 0000000..8f8ab74 --- /dev/null +++ b/Example/FilesOk/excClienteOK.php @@ -0,0 +1 @@ +excluir($dados); if ($retorno == true) echo ' '; else echo ' '; ?> \ No newline at end of file diff --git a/Example/Telas/altCliente.php b/Example/Telas/altCliente.php new file mode 100644 index 0000000..719feb1 --- /dev/null +++ b/Example/Telas/altCliente.php @@ -0,0 +1,284 @@ +buscarPorId($_POST['codCliente']); + +/*require_once ("../Controle/ControleEstado.php"); +$objEstado = new Estado; +$objEstados = $objEstado->buscarTodos(); +$contadorEstado = count($objEstados); + +require_once ("../Controle/ControleCidade.php"); +$objCidade = new Cidade; +$objCidades = $objCidade->buscarTodos(); +$contadorCidade = count($objCidades); +*/ +?> + + + + + + + Alteração de Cliente + + + + + + + + +
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nome: + + + CPF: + + +
Logradouro:Número:
Bairro:Estado: +
Cidade: + Email:
CEP: + + +
Telefone:Celular:
Data de Nascimento:Identidade:
Sexo: + + Profissão:
+ + + + + +
OBS: + +
+
+ Listar Aparelhos +
+
+ + \ No newline at end of file diff --git a/Example/Telas/buscaCliente.php b/Example/Telas/buscaCliente.php new file mode 100644 index 0000000..60d7eca --- /dev/null +++ b/Example/Telas/buscaCliente.php @@ -0,0 +1,93 @@ +buscarPorNome($nome); +$contador = count($objClientes) +?> + + + + + + + Listar Clientes + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + +
NomeEndereçoTelefoneCelularEmailData de NascimentoAções
get('nome'); ?>get('logradouro') . " " . $objCliente->get('numero') . ", " . $objCliente->get('bairro') . ", " . $objCliente->get('cidade') ?>get('telefone') ?>get('celular') ?>get('email') ?>get('datNascimento') ?> + + + + + + + + + "> + + + " > + + + +
+ + +
+ + +
+ + +
+ + +
+
+
+
+ + \ No newline at end of file diff --git a/Example/Telas/buscaClienteParaTermoCompromisso.php b/Example/Telas/buscaClienteParaTermoCompromisso.php new file mode 100644 index 0000000..9988ce9 --- /dev/null +++ b/Example/Telas/buscaClienteParaTermoCompromisso.php @@ -0,0 +1,100 @@ + +buscarPorNome($nome); +$contador = count($objClientes) +?> + + + + + + + Listar Clientes + + + + + +
+
+ +

Cliente: +

+
"; + if ($nome != '') { + ?> + + + + + + + + + + + + + + + + + + + + + + +
NomeEndereçoTelefoneCelularEmailData de NascimentoAções
+ + get('nome'); ?> + get('logradouro') . " " . $objCliente->get('numero') . ", " . $objCliente->get('bairro') . ", " . $objCliente->get('cidade') ?>get('telefone') ?>get('celular') ?>get('email') ?>get('datNascimento') ?> + + + + + + + + + +
+ + +
+ + +
+
+ +
+
+ + + diff --git a/Example/Telas/buscaOrdemCliente.php b/Example/Telas/buscaOrdemCliente.php new file mode 100644 index 0000000..5b7a04a --- /dev/null +++ b/Example/Telas/buscaOrdemCliente.php @@ -0,0 +1 @@ + Visualizar orçamento

Visualiza Orçamento:

?

?



\ No newline at end of file diff --git a/Example/Telas/cadCliente.php b/Example/Telas/cadCliente.php new file mode 100644 index 0000000..74c9820 --- /dev/null +++ b/Example/Telas/cadCliente.php @@ -0,0 +1,292 @@ +buscarTodos(); +$contadorEstado = count($objEstados); + +require_once ("../Controle/ControleCidade.php"); +$objCidade = new Cidade; +$objCidades = $objCidade->buscarTodos(); +$contadorCidade = count($objCidades); +?> + + + + + + Cadastro de Cliente + + + + + + + +
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nome:Logradouro:
Número da casa:Bairro:
Estado: + + + Cidade: + + +
Telefone:Celular:
CPF: + + + Email:
CEP: + + Buscar... + Preencher... +
Data de Nascimento:Identidade:
Sexo: + + Profissão:
+ + + + + +
OBS: + +
+
+
+ + + diff --git a/Example/Telas/error_log b/Example/Telas/error_log new file mode 100644 index 0000000..e5d3c21 --- /dev/null +++ b/Example/Telas/error_log @@ -0,0 +1,10 @@ +[10-Mar-2026 20:58:17 UTC] PHP Warning: include(../Includes/valida_sessao.inc): failed to open stream: No such file or directory in /home/bigcellc/public_html/ads2025/Example/Telas/listCliente.php on line 2 +[10-Mar-2026 20:58:17 UTC] PHP Warning: include(../Includes/valida_sessao.inc): failed to open stream: No such file or directory in /home/bigcellc/public_html/ads2025/Example/Telas/listCliente.php on line 2 +[10-Mar-2026 20:58:17 UTC] PHP Warning: include(): Failed opening '../Includes/valida_sessao.inc' for inclusion (include_path='.:/opt/alt/php54/usr/share/pear:/opt/alt/php54/usr/share/php') in /home/bigcellc/public_html/ads2025/Example/Telas/listCliente.php on line 2 +[10-Mar-2026 20:58:17 UTC] PHP Warning: require_once(../Includes/Funcoes.php): failed to open stream: No such file or directory in /home/bigcellc/public_html/ads2025/Example/Controle/ControleCliente.php on line 4 +[10-Mar-2026 20:58:17 UTC] PHP Fatal error: require_once(): Failed opening required '../Includes/Funcoes.php' (include_path='.:/opt/alt/php54/usr/share/pear:/opt/alt/php54/usr/share/php') in /home/bigcellc/public_html/ads2025/Example/Controle/ControleCliente.php on line 4 +[10-Mar-2026 20:58:20 UTC] PHP Warning: include(../Includes/valida_sessao.inc): failed to open stream: No such file or directory in /home/bigcellc/public_html/ads2025/Example/Telas/listCliente.php on line 2 +[10-Mar-2026 20:58:20 UTC] PHP Warning: include(../Includes/valida_sessao.inc): failed to open stream: No such file or directory in /home/bigcellc/public_html/ads2025/Example/Telas/listCliente.php on line 2 +[10-Mar-2026 20:58:20 UTC] PHP Warning: include(): Failed opening '../Includes/valida_sessao.inc' for inclusion (include_path='.:/opt/alt/php54/usr/share/pear:/opt/alt/php54/usr/share/php') in /home/bigcellc/public_html/ads2025/Example/Telas/listCliente.php on line 2 +[10-Mar-2026 20:58:20 UTC] PHP Warning: require_once(../Includes/Funcoes.php): failed to open stream: No such file or directory in /home/bigcellc/public_html/ads2025/Example/Controle/ControleCliente.php on line 4 +[10-Mar-2026 20:58:20 UTC] PHP Fatal error: require_once(): Failed opening required '../Includes/Funcoes.php' (include_path='.:/opt/alt/php54/usr/share/pear:/opt/alt/php54/usr/share/php') in /home/bigcellc/public_html/ads2025/Example/Controle/ControleCliente.php on line 4 diff --git a/Example/Telas/excCliente.php b/Example/Telas/excCliente.php new file mode 100644 index 0000000..3254c1f --- /dev/null +++ b/Example/Telas/excCliente.php @@ -0,0 +1,35 @@ + + + + + + + Excluir Cliente + + + + +
+

Tem certeza que deseja excluir este registro? + +

+

+ + +

+
+ + + + + diff --git a/Example/Telas/listCliente.php b/Example/Telas/listCliente.php new file mode 100644 index 0000000..903fda8 --- /dev/null +++ b/Example/Telas/listCliente.php @@ -0,0 +1,145 @@ +buscarWhere("nome", "letra", $valor, "nome", ""); +$contador = count($objClientes); +?> + + + + + + Listar Clientes + + + + +
+ A + B + C + D + E + F + G + H + I + J + K + L + M + N + O + P + Q + R + S + T + U + V + W + X + Y + Z +
+
+ Buscar Cliente +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + +
NomeEndereçoTelefoneCelularEmailNascimentoAções
get('nome'); ?> + get('logradouro') != "") { + echo $objCliente->get('logradouro') . " " . $objCliente->get('numero') . ", " . $objCliente->get('bairro') . ", " . $objCliente->get('cidade'); + } + ?> + get('telefone') ?>get('celular') ?>get('email') ?> + get('datNascimento') != "00/00/0000") { + echo $objCliente->get('datNascimento'); + } + ?> + + + + + + + + + + " > + + + " > + + + +
+ + +
+ + +
+ + +
+ + +
+
+ + \ No newline at end of file diff --git a/Login/index.php b/Login/index.php new file mode 100644 index 0000000..dfb884e --- /dev/null +++ b/Login/index.php @@ -0,0 +1,75 @@ + + + + + + + BigCell Celulares - Login + + + + +
+

BigCell Celulares

+ +
+ +
+ + +
+ +
+ +
+ + +
+ +
+ +
+ + +
+ +
+ +
+ + +
+
+ +
+ + +
+ +
+ +
+ +
+ +
+
+ + + \ No newline at end of file diff --git a/Login/login.php b/Login/login.php new file mode 100644 index 0000000..715cb60 --- /dev/null +++ b/Login/login.php @@ -0,0 +1,11 @@ + + + + + + Document + + + . + + \ No newline at end of file diff --git a/Source/login.css b/Source/login.css new file mode 100644 index 0000000..70480a6 --- /dev/null +++ b/Source/login.css @@ -0,0 +1,7 @@ +* { + box-sizing: border-box; + margin: 100; + padding: 0; + font-family: 'Segoe UI'; + color: rgb(14, 18, 255); +} diff --git a/Source/style.css b/Source/style.css new file mode 100644 index 0000000..83ec446 --- /dev/null +++ b/Source/style.css @@ -0,0 +1,173 @@ +a/* Reset básico e Fonte */ +* { + box-sizing: border-box; + margin: 0; + padding: 0; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; +} + +body { + background-color: #f0f2f5; + padding: 20px; +} + +/* Painel de Botões */ +.painel-topo { + margin-bottom: 20px; + display: flex; + gap: 10px; + flex-wrap: wrap; +} + +.btn { + padding: 10px 15px; + border: none; + border-radius: 5px; + cursor: pointer; + font-weight: bold; + display: flex; + align-items: center; + gap: 5px; + transition: 0.2s; + color: white; +} + +.btn-danger { background-color: #e74c3c; } +.btn-danger:hover { background-color: #c0392b; } + +.btn-primary { background-color: #3498db; } +.btn-success { background-color: #2ecc71; } + +/* Estrutura da Tabela (Grid) */ +.tabela-container { + background: white; + border-radius: 8px; + overflow: hidden; /* Arredonda cantos */ + box-shadow: 0 4px 6px rgba(0,0,0,0.1); /* Sombra suave */ + border: 1px solid #dcdcdc; +} + +/* Configuração das Colunas - IMPORTANTE */ +/* Define a largura fixa ou flexível de cada coluna */ +.grid-row { + display: grid; + /* 8 colunas: Data, Func, Dept, Aparelho(maior), Detalhe, OBS, Qtd, Ações */ + grid-template-columns: 90px 130px 100px 1.5fr 1fr 120px 80px 80px; + border-bottom: 1px solid #eee; + align-items: center; +} + +/* Cabeçalho Roxo */ +.header { + background: linear-gradient(135deg, #6a11cb 0%, #2575fc 100%); /* Roxo para Azul */ + color: white; + font-weight: bold; + font-size: 14px; + padding: 12px 5px; + text-transform: uppercase; + letter-spacing: 0.5px; +} + +.header div { + padding: 0 5px; + border-right: 1px solid rgba(255,255,255,0.2); + text-align: center; +} + +/* Linhas de Itens */ +.item { + font-size: 13px; + color: #333; + padding: 10px 5px; + transition: background 0.2s; + background-color: #fff; +} + +/* Efeito Zebrado (Linhas alternadas) */ +.item:nth-child(even) { + background-color: #f8f9fa; +} + +/* Hover na linha */ +.item:hover { + background-color: #e8f0fe; /* Azulzinho claro ao passar mouse */ +} + +.item div { + padding: 0 8px; + word-wrap: break-word; /* Quebra texto longo */ +} + +.destaque-texto { + font-weight: 600; + color: #2c3e50; +} + +.center { + text-align: center; + justify-content: center; + display: flex; +} + +/* Estilo da Lixeira e Checkbox */ +.acoes { + display: flex; + gap: 10px; + align-items: center; +} + +.btn-icon { + background: none; + border: none; + cursor: pointer; + color: #7f8c8d; + transition: 0.2s; +} + +.btn-icon:hover { + color: #e74c3c; /* Vermelho ao passar mouse na lixeira */ + transform: scale(1.1); +} + +.check-deletar { + transform: scale(1.3); + cursor: pointer; +} + +/* Responsividade (Celular) */ +@media (max-width: 992px) { + .header { display: none; } /* Esconde cabeçalho no celular */ + + .grid-row { + display: flex; + flex-direction: column; + border: 1px solid #ddd; + margin-bottom: 15px; + background: white; + border-radius: 8px; + padding: 10px; + box-shadow: 0 2px 4px rgba(0,0,0,0.05); + } + + .item div { + display: flex; + justify-content: space-between; + padding: 8px 0; + border-bottom: 1px solid #eee; + width: 100%; + } + + /* Cria os rótulos automaticamente no celular (Data:, Funcionario:, etc) */ + .item div::before { + content: attr(data-label); + font-weight: bold; + color: #6a11cb; + margin-right: 10px; + } + + .item div:last-child { + border-bottom: none; + justify-content: flex-end; + padding-top: 15px; + } +} \ No newline at end of file diff --git a/Telas/altFalta.php b/Telas/altFalta.php new file mode 100644 index 0000000..d26afbe --- /dev/null +++ b/Telas/altFalta.php @@ -0,0 +1,11 @@ + + + + + + Document + + + Atualizado de novo. + + \ No newline at end of file diff --git a/Telas/listFalta.php b/Telas/listFalta.php new file mode 100644 index 0000000..37d193c --- /dev/null +++ b/Telas/listFalta.php @@ -0,0 +1,371 @@ + + + + + + + + Big Cell - Controle de Faltas + + + + + + + +
+ +
+ +
+ + + + + + +
+ + + +
+ +
+
+
+ +
+
Data
+
Funcionário
+
Depto.
+
Aparelho
+
Detalhe
+
OBS Loja
+
Qtd
+
Ações
+
+ +
+ $item): + $isEntregue = strpos($item[6], '✅') !== false; + $classeStatus = $isEntregue ? "entregue" : "pendente"; + + // REGRA DOS 10 DIAS + if ($isEntregue) { + $dataItem = DateTime::createFromFormat('d/m/Y', $item[0]); + if ($dataItem) { + $diasPassados = $hoje->diff($dataItem)->days; + if ($diasPassados > 10) { + continue; // Pula este item se passou do prazo + } + } + } + ?> +
+
+ + + +
+
+
+
+
+
+
+
+ +
+ + + + + + + +
+
+ +
+
+
+ + + + + + + + + + + + + Big Cell - Controle de Faltas + + + + + + + +
+ +
+ +
+ + + + + + +
+ + + +
+ +
+
+
+ +
+
Data
+
Funcionário
+
Depto.
+
Aparelho
+
Detalhe
+
OBS Loja
+
Qtd
+
Ações
+
+ +
+ $item): + $isEntregue = strpos($item[6], '✅') !== false; + $classeStatus = $isEntregue ? "entregue" : "pendente"; + + // REGRA DOS 10 DIAS + if ($isEntregue) { + $dataItem = DateTime::createFromFormat('d/m/Y', $item[0]); + if ($dataItem) { + $diasPassados = $hoje->diff($dataItem)->days; + if ($diasPassados > 10) { + continue; // Pula este item se passou do prazo + } + } + } + ?> +
+
+ + + +
+
+
+
+
+
+
+
+ +
+ + + + + + + +
+
+ +
+
+
+ + + + + + \ No newline at end of file diff --git a/Telas/lista.css b/Telas/lista.css new file mode 100644 index 0000000..136fc74 --- /dev/null +++ b/Telas/lista.css @@ -0,0 +1,164 @@ +/* --- Reset e Base --- */ +* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Segoe UI', Tahoma, sans-serif; } + +body { + background-color: #111; + padding: 20px; + min-height: 100vh; + position: relative; + overflow-x: hidden; +} + +/* --- O FLUXO ROXO (FUNDO ANIMADO) --- */ +.fundo-fluxo { + position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; +} + +.fundo-fluxo::after { + content: ''; position: absolute; + bottom: -150vh; left: 10%; width: 80vw; height: 150vh; + background: radial-gradient(ellipse at center, rgba(54, 5, 104, 0.8) 0%, transparent 60%); + filter: blur(50px); + animation: subirFluxo 15s infinite linear; +} + +@keyframes subirFluxo { + 0% { transform: translateY(50%); opacity: 0.5; } + 50% { opacity: 1; } + 100% { transform: translateY(-100%); opacity: 0.5; } +} + +/* --- CONTAINER E TABELA --- */ +.container { + max-width: 1200px; margin: 0 auto; +} + +.painel-topo { + background: rgba(255, 255, 255, 0.95); + padding: 15px; border-radius: 8px; margin-bottom: 20px; + display: flex; gap: 10px; flex-wrap: wrap; align-items: center; + box-shadow: 0 4px 10px rgba(0,0,0,0.3); +} + +.tabela-container { + background: white; border-radius: 8px; overflow: hidden; + box-shadow: 0 4px 15px rgba(0,0,0,0.3); +} + +/* --- BOTÕES --- */ +.btn { + padding: 10px 15px; border: none; border-radius: 5px; cursor: pointer; + font-weight: bold; font-size: 13px; display: flex; align-items: center; gap: 5px; + color: white; transition: 0.2s; +} +.btn:hover { opacity: 0.9; transform: scale(1.02); } + +.btn-roxo-escuro { background-color: #360568; } +.btn-roxo-medio { background-color: #5B2A86; } +.btn-cinza { background-color: #6c757d; } + +/* Botões de Filtro */ +.btn-aba { + background: transparent; color: #777; border: none; font-weight: bold; + padding: 10px; cursor: pointer; border-bottom: 2px solid transparent; transition: 0.2s; +} +.btn-aba:hover { color: #360568; } +.btn-aba.ativo { color: #360568; border-bottom: 2px solid #360568; } + +.divisor { width: 1px; height: 30px; background: #ddd; margin: 0 10px; } + +/* --- A GRID DA TABELA --- */ +.grid-row { + display: grid; + grid-template-columns: 30px 90px 130px 100px 1.5fr 1fr 100px 50px 120px; + border-bottom: 1px solid #eee; align-items: center; +} + +.header { + background: #f4f4f4; color: #444; font-weight: bold; font-size: 12px; + padding: 15px 10px; text-transform: uppercase; border-bottom: 2px solid #ddd; +} + +.item { font-size: 13px; color: #333; padding: 10px; transition: 0.2s; } +.item:hover { background-color: #f9f9f9; } + +/* Item Entregue */ +.item.entregue { background-color: #f0fdf4; opacity: 0.8; } +.item.entregue .destaque-texto { color: #888; text-decoration: line-through; } + +.item div { word-wrap: break-word; overflow: hidden; } +.destaque-texto { font-weight: bold; color: #360568; } +.center { text-align: center; justify-content: center; display: flex; align-items: center; } + +/* --- AÇÕES NA TABELA --- */ +.acoes { display: flex; gap: 8px; align-items: center; justify-content: center; } +.btn-icon { background: none; border: none; cursor: pointer; padding: 4px; border-radius: 4px; transition: 0.2s; } +.btn-icon:hover { background: #eee; transform: scale(1.1); } +.icone-roxo { color: #5B2A86; } +.icone-excluir { color: #555; } +.icone-excluir:hover { color: #d32f2f; } + +/* --- MODAL --- */ +.modal-overlay { + display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; + background: rgba(0,0,0,0.7); justify-content: center; align-items: center; z-index: 999; +} +.modal-box { + background: white; padding: 25px; border-radius: 8px; width: 95%; max-width: 500px; + border-top: 5px solid #360568; box-shadow: 0 10px 30px rgba(0,0,0,0.3); +} +.modal-header { display: flex; justify-content: space-between; margin-bottom: 20px; } +.modal-header h2 { color: #360568; font-size: 18px; margin: 0; } +.close-btn { font-size: 24px; cursor: pointer; color: #999; } +.close-btn:hover { color: #333; } +.form-grid { display: flex; flex-direction: column; gap: 12px; } +.campo-full { width: 100%; } +.campo-duplo { display: flex; gap: 10px; } +.campo-duplo div { flex: 1; } +label { display: block; font-size: 12px; font-weight: bold; color: #555; margin-bottom: 4px; } +.input-form { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; } +.input-form:focus { border-color: #360568; outline: none; } +.modal-buttons { margin-top: 20px; display: flex; justify-content: flex-end; gap: 10px; } + +/* ======================================================= + VERSÃO MÓVEL (SEM ERROS NO VS CODE) + ======================================================= */ +.tabela-container.mobile-mode .header { display: none; } + +.tabela-container.mobile-mode .grid-row { + display: flex; flex-direction: column; margin-bottom: 15px; + border: 1px solid #ccc; border-radius: 8px; padding: 15px; background: white; +} + +.tabela-container.mobile-mode .item div { + display: flex; justify-content: space-between; padding: 8px 0; + border-bottom: 1px solid #eee; width: 100%; text-align: right; +} + +.tabela-container.mobile-mode .item div::before { + content: attr(data-label); font-weight: bold; color: #360568; + text-transform: uppercase; font-size: 11px; margin-right: 10px; text-align: left; +} + +.tabela-container.mobile-mode .item div:last-child { border-bottom: none; } +.tabela-container.mobile-mode .acoes { justify-content: flex-end; padding-top: 10px; } + +/* Regra para celular real (Media Query) */ +@media (max-width: 900px) { + .header { display: none; } + + .grid-row { + display: flex; flex-direction: column; margin-bottom: 15px; + border: 1px solid #ccc; border-radius: 8px; padding: 15px; background: white; + } + .item div { + display: flex; justify-content: space-between; padding: 8px 0; + border-bottom: 1px solid #eee; width: 100%; text-align: right; + } + .item div::before { + content: attr(data-label); font-weight: bold; color: #360568; + text-transform: uppercase; font-size: 11px; margin-right: 10px; text-align: left; + } + .item div:last-child { border-bottom: none; } + .acoes { justify-content: flex-end; padding-top: 10px; } +} \ No newline at end of file diff --git a/Telas/listfalta.js b/Telas/listfalta.js new file mode 100644 index 0000000..b25693c --- /dev/null +++ b/Telas/listfalta.js @@ -0,0 +1,123 @@ +let abaAtual = 'pendente'; + +// --- 1. MODAL --- +function abrirModal() { + document.getElementById('modal-adicionar').style.display = 'flex'; + document.getElementById('inp-data').value = new Date().toISOString().split('T')[0]; +} + +function fecharModal() { + document.getElementById('modal-adicionar').style.display = 'none'; + document.getElementById('inp-aparelho').value = ''; + document.getElementById('inp-detalhe').value = ''; +} + +function salvarNovoItem() { + let data = document.getElementById('inp-data').value; + let func = document.getElementById('inp-func').value; + let depto = document.getElementById('inp-depto').value; + let aparelho = document.getElementById('inp-aparelho').value; + let detalhe = document.getElementById('inp-detalhe').value || "--"; + let qtd = document.getElementById('inp-qtd').value; + let obs = document.getElementById('inp-obs').value; + + if (aparelho === "" || func === "") { + alert("Preencha o Funcionário e o Aparelho!"); + return; + } + + let dataFormatada = data ? data.split('-').reverse().join('/') : "Hoje"; + + const novaLinha = document.createElement('div'); + novaLinha.className = 'grid-row item pendente'; + + novaLinha.innerHTML = ` +
+
${dataFormatada}
+
${func}
+
${depto}
+
${aparelho}
+
${detalhe}
+
${obs}
+
${qtd}
+
+ + +
+ `; + + document.getElementById('lista-corpo').prepend(novaLinha); + fecharModal(); + aplicarFiltro(); +} + +// --- 2. EXCLUSÃO E BAIXA --- +function deletarLinha(botao) { + if(confirm("Deseja excluir este registro do sistema?")) { + botao.closest('.grid-row').remove(); + } +} + +function marcarComoEntregue(botao) { + if(confirm("Confirmar a entrega deste item?")) { + let linha = botao.closest('.grid-row'); + linha.classList.remove('pendente'); + linha.classList.add('entregue'); + + let acoes = linha.querySelector('.acoes'); + acoes.innerHTML = ` + + + `; + linha.querySelector('input[type="checkbox"]').style.display = 'none'; + + aplicarFiltro(); + } +} + +// --- 3. SELEÇÃO EM MASSA --- +function selecionarTodos(chkMestre) { + document.querySelectorAll('.check-item').forEach(c => c.checked = chkMestre.checked); +} + +function entregarSelecionados() { + const checks = document.querySelectorAll('.check-item:checked'); + if(checks.length > 0 && confirm(`Baixar ${checks.length} itens selecionados?`)) { + checks.forEach(chk => { + let btn = chk.closest('.grid-row').querySelector('.icone-roxo'); + if(btn) marcarComoEntregue(btn); + }); + } +} + +// --- 4. ABAS E MODO MOBILE --- +function filtrarAbas(tipo, botao) { + abaAtual = tipo; + document.querySelectorAll('.btn-aba').forEach(b => b.classList.remove('ativo')); + botao.classList.add('ativo'); + aplicarFiltro(); +} + +function aplicarFiltro() { + const linhas = document.querySelectorAll('.item'); + const isMobile = document.querySelector('.tabela-container').classList.contains('mobile-mode'); + + linhas.forEach(linha => { + if(linha.classList.contains(abaAtual)) { + linha.style.display = isMobile ? 'flex' : 'grid'; + } else { + linha.style.display = 'none'; + } + }); +} + +function forcarMobile() { + document.querySelector('.tabela-container').classList.toggle('mobile-mode'); + aplicarFiltro(); +} + +document.addEventListener('DOMContentLoaded', aplicarFiltro); \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..86f7cc7 --- /dev/null +++ b/index.php @@ -0,0 +1,75 @@ + + + + + + + BigCell Celulares - Login + + + + +
+

BigCell Celulares

+ +
+ +
+ + +
+ +
+ +
+ + +
+ +
+ +
+ + +
+ +
+ +
+ + +
+
+ +
+ + +
+ +
+ +
+ +
+ +
+
+ + + \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..1f53798 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /