Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Remazela

PHP - Visualizar Resposta - Otimizada

Recommended Posts

Caros amigos

Por favor, me perdoa por recorrer ao auxilio dos amigos, referente a uma dúvida.

Obs.: por favor, peço que os amigos não pense que estou abusando da compreensão dos amigos,

pois estou com muita dúvida de como montar a tela abaixo e salvar no Banco.

Preciso montar uma tela, onde o usuário após escolher a Cotação mostra o seguinte:

16142780_1633037580335550_90733879571804

Ou seja: abro a cotação X, que contenha vários ITENS e os itens tem várias ofertas de fornecedores.

Fiz algum teste conforme o código abaixo que encontrei nas minhas pesquisas da Internet, tentei adaptar para o que preciso, mas não consegui um resultado favorável.

    include"Connections/config.php";

		$sql = "SELECT p.produtoId, p.produtoDescr, p.produtoStatus, p.desc_categ, p.codProdClie,
		               c.id_categ, c.desc_categ 
		          FROM produto p, categoria c 
		         WHERE c.desc_categ = p.desc_categ
		      ORDER BY p.desc_categ, p.produtoDescr";

		$stmt = $conecta->prepare($sql);
		$stmt->execute();

		$num = $stmt->rowCount();
		$categoria = null;

		if($num>0) {
		    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
		        extract($row);
		        if($categoria != $id_categ) {
		            if(!is_null($categoria)) { echo "</table>"; } 
		            // Fecha a tabela da ultima categoria

			    echo " <br/><br/>";

		            echo "<h1>{$desc_categ}</h1>"; //Mostra por categoria
		            
		            echo "<table>";
		            echo "  <tr>";
		            echo "      <th>CÓDIGO</th>";		            
		            echo "      <th>NOME</th>";
		            echo "      <th>PREÇO</th>";
		            echo "      <th>QUANTIDADE</th>";
		            echo "  </tr>";

		            $categoria = $id_categ;
		        }

		        $preco_produto_reajustado = number_format($produtoStatus, 2, ",", ".");
		        
		        echo "  <tr>";
		        echo "      <td><div class='cod-produto'>{$codProdClie}</div></td>";
		        echo "      <td><div class='nome-produto'>{$produtoDescr}</div></td>";

		        echo "      <td>R${$preco_produto_reajustado}</td>";


		        echo "      <td>";
		        echo "          <form class='adicionar'>";
		        echo "          <input type='number' name='quantidade' 
		                                     value='1' min='1' max='20'/>";

		        echo "          <button type='submit'>Adicionar</button>";
		        echo "          </form>";
		        echo "      </td>";
		        echo "  </tr>";

		    }

		    echo "</table>"; // Fechando a tabela da última categoria do laço
             
		}

Alguém por favor, pode me ajudar, me dá um rumo ou forma melhor de fazer o que preciso acima ?

Grato,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo

Leonardo

Grato por sua disposição em me auxiliar, mas infelizmente não seria isso que procuro fazer no meu sistema.

Grato,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos

Estive pesquisando e tentando efetuar a rotina que preciso e cheguei a esse código abaixo:

<?php function mostraCotaItens(){

    include"Connections/config.php";

        $cliente = '2';
        $cotaNum = '2.2';

		$sql = "SELECT t.cotaId, t.cotaNumero, t.cotaTitulo, t.cotaStatus, t.clienteId,
		               c.clienteId, c.nome
		          FROM cotacao t,
		               clientes c
		         WHERE c.clienteId = '$cliente'         
		           AND t.clienteId = '$cliente'	           
		           AND t.cotaNumero = '$cotaNum'	 
		      ORDER BY t.clienteId, t.cotaTitulo ASC";

		$stmt = $conecta->prepare($sql);
		$stmt->execute();

		$num = $stmt->rowCount();
		$clientes = null;        

		if($num > 0) {

		    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
		           extract($row);

		        if($clientes != $clienteId) {

		            if(!is_null($clientes)) { echo "</table>"; } 
		            // Fechando a tabela da ultima categoria impressa antes
		            // de abrir a nova
					echo " <br/><br/>";

		            echo "<h1>{$clienteId} - {$nome}</h1>";

		            echo "<table>";
		            echo "  <tr>";
		            echo "      <th>CÓDIGO</th>";		            
		            echo "      <th>NOME</th>";
		            echo "  </tr>";

		            $clientes = $clienteId;
                 
		        } //Fecha IF
               

	        
		        echo "  <tr>";
		        echo "      <td><div class='cod-produto'>{$cotaNumero}</div></td>";
		        echo "      <td><div class='nome-produto'>{$cotaTitulo}</div></td>";
		        echo "  </tr>";

		    } //Fecha While

		    echo "</table>"; // Fechando a tabela da última categoria do laço



			$sql = "SELECT i.cotaItensId, i.clienteId, i.cotaNumero, i.codProdClie,
			               r.cotaRespId, r.cotaItensId, r.clienteId, r.cotaNumero, r.codProdClie, r.cotaOferta, r.fornecedorId,
			               r.cotaRespQtde, r.cotaRespVlr,
			               f.fornecedorId, f.nome,
			               p.produtoId, p.codProdClie, p.produtoDescr
			          FROM cotacaoItens i,
			               cotacaoResposta r,
			               fornecedores f,
			               produto p
			         WHERE i.clienteId = '$cliente'         
			           AND i.cotaNumero = '$cotaNum'	 
			           AND r.codProdClie = i.codProdClie 
			           AND p.codProdClie = i.codProdClie
			           AND r.fornecedorId = f.fornecedorId   
			           AND r.cotaOferta = '2'    
			           AND r.cotaNumero = '$cotaNum'			           
			      ORDER BY i.clienteId ASC";

			$stmt = $conecta->prepare($sql);
			$stmt->execute();


			    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
			           extract($row);

			        echo "<table>";	       

			        echo "  <tr>";
			        echo "  <br/>";
			        echo "      <td><div class='cod-produto'>{$codProdClie}</div></td>";
			        echo "      <td><div class='nome-produto'>{$produtoDescr}</div></td>";
			        echo "  </tr>";

			        echo "  <tr>";
			        echo "  <br/>";
			        echo "      <td><div class='cod-produto'>{$fornecedorId}</div></td>";
			        echo "      <td><div class='nome-produto'>{$nome}</div></td>";
		            echo "  </tr>";
		            echo "  <tr>";
			        echo "      <td><div class='no'>{$cotaRespQtde}</div></td>";		        
			        echo "      <td><div class='nme-produto'>{$cotaRespVlr}</div></td>";

			        echo "  </tr>";


			    } //Fecha While



			    echo "</table>"; // Fechando a tabela da última categoria do laço





		} //Fecha If $num
    
      

    }

?>

Infelizmente o código acima, faz o que preciso, só que fica repetindo a descrição dos produtos conforme abaixo:

2 - Gerente Empresa Ltda - ME

CÓDIGO	COTAÇÃO
2.2     MATERIAL DE ESCRITÓRIO

//PRODUTOS
101 CADERNO UNIVERSITÁRIO 1 MATÉRIA
FORN.: 2 - Airin Medical
QTDE.: 10
VALOR: 6,50


131 LÁPIS N.2 - PRETO  
FORN.: 1 - ABC Med
QTDE.: 10
VALOR: 0,12


131 LÁPIS N.2 - PRETO  //Repetiu a descrição do produto
FORN.: 2 - Airin Medical
QTDE.: 20
VALOR: 0,13


140 - RÉGUA 30CM - ACRÍLICA
FORN.: 2 - Airin Medical
QTDE.: 20
VALOR: 5,00


150 - BORRACHA MACIA PEQUENA
FORN.: 1 - ABC Med
QTDE.: 20
VALOR: 0,25


150 - BORRACHA MACIA PEQUENA
2 - Airin Medical
15
0,50

Abaixo minhas tabelas:

CREATE TABLE IF NOT EXISTS `clientes` (
  `clienteId` int(11) NOT NULL AUTO_INCREMENT,
  `criadoEM` timestamp NULL DEFAULT NULL,
  `modificadoEM` timestamp NULL DEFAULT NULL
                 ON UPDATE CURRENT_TIMESTAMP,
  `clienteStatus` varchar(255) DEFAULT NULL,
  `usuarioNivel` varchar(255) DEFAULT NULL,
  `nome` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `senha` varchar(150) DEFAULT NULL,
  `telefone` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`clienteId`)




CREATE TABLE IF NOT EXISTS `produto` (
  `produtoId` int(11) NOT NULL AUTO_INCREMENT,
  `clienteId` varchar(11) DEFAULT NULL,
  `id_categ` varchar(11) DEFAULT NULL,
  `id_unid` varchar(11) DEFAULT NULL,
  `codProdClie` varchar(255) DEFAULT NULL,   
  `produtoDescr` varchar(255) DEFAULT NULL,
  `produtoStatus` int(1) NOT NULL,
  PRIMARY KEY (`produtoId`)



CREATE TABLE IF NOT EXISTS `fornecedores` (
  `fornecedorId` int(11) NOT NULL AUTO_INCREMENT,
  `criadoEM` timestamp NULL DEFAULT NULL,
  `modificadoEM` timestamp NULL DEFAULT NULL 
                 ON UPDATE CURRENT_TIMESTAMP,
  `fornecedorStatus` varchar(255) DEFAULT NULL,
  `usuarioNivel` varchar(255) DEFAULT NULL,
  `nome` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `senha` varchar(150) DEFAULT NULL,
  `telefone` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`fornecedorId`)


CREATE TABLE IF NOT EXISTS `cotacao` (
  `cotaId` int(11) NOT NULL AUTO_INCREMENT,
  `cotaNumero` varchar(255) DEFAULT NULL,         
  `cotaDtInicio` date NULL DEFAULT NULL,
  `cotaHrsInicio` time NULL DEFAULT NULL,
  `cotaDtFim` date NULL DEFAULT NULL,      
  `cotaHrsFim` time NULL DEFAULT NULL,  
  `cotaTitulo` varchar(255) DEFAULT NULL,   
  `cotaObserva` varchar(255) DEFAULT NULL,      
  `cotaStatus` int(1) NOT NULL,  
  `clienteId` varchar(11) DEFAULT NULL,  
  `desc_categ` varchar(255) DEFAULT NULL,
  `desc_pgto` varchar(255) DEFAULT NULL,     
  PRIMARY KEY (`cotaId`)


//Mostra os Itens da Cotação
CREATE TABLE IF NOT EXISTS `cotacaoItens` (
  `cotaItensId` int(11) NOT NULL AUTO_INCREMENT,
  `cotaNumImport` varchar(255) DEFAULT NULL,    
  `codProdClie` varchar(255) DEFAULT NULL,       
  `cotaQtde` varchar(255) DEFAULT NULL,
  `cotaComenta` varchar(255) DEFAULT NULL,  
  `cotaVerTxt` varchar(1) DEFAULT NULL,  
  `cotaId` varchar(11) DEFAULT NULL,        
  `clienteId` varchar(11) DEFAULT NULL,    
  `cotaNumero` varchar(255) DEFAULT NULL,      
  PRIMARY KEY (`cotaItensId`)



//Mostra as respostas: Produto X Fornecedores
CREATE TABLE IF NOT EXISTS `cotacaoResposta` (
  `cotaRespId` int(11) NOT NULL AUTO_INCREMENT,
  `cotaRespQtde` varchar(255) DEFAULT NULL,    
  `cotaRespVlr` varchar(255) DEFAULT NULL,       
  `cotaRespMarca` varchar(255) DEFAULT NULL,
  `cotaRespObs` varchar(255) DEFAULT NULL,
  `cotaRespEntrega` varchar(255) DEFAULT NULL,  
  `cotaRespPgto` varchar(255) DEFAULT NULL, 
  `cotaNumero` varchar(255) DEFAULT NULL,   
  `cotaItensId` int(11) DEFAULT NULL,        
  `codProdClie` varchar(255) DEFAULT NULL,    
  `clienteId` varchar(11) DEFAULT NULL, 
  `apres_unid` varchar(255) DEFAULT NULL,      
  PRIMARY KEY (`cotaRespId`)

Como consigo efetuar a repetição das descrições dos produtos ?

Para que possa ficar assim:

101

CADERNO UNIVERSITÁRIO 1 MATÉRIA

2

Airin Medical

10

6,50

131

LÁPIS N.2 - PRETO

1

ABC Med

10

0,12

2

Airin Medical

20

0,13

140

RÉGUA 30CM - ACRÍLICA

2

Airin Medical

20

5,00

150

BORRACHA MACIA PEQUENA

1

ABC Med

20

0,25

2

Airin Medical

15

0,50

Grato,

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.