Ir ao conteúdo
  • Cadastre-se

Baixa em Estoque PASCAL


Posts recomendados

Boa noite, está é minha primeira postagem nos fóruns aqui no Clube do Hardware, caso eu cometa algum erro me perdoem irei corrigir no próximo.

 

Estou com a seguinte dúvida em um trabalho na faculdade, preciso fazer um programa em pascal, usando procedimentos onde eu tenho que cadastrar clientes, com dados de cada cliente, além de clientes tenho que cadastrar produtos com seus respectivos dados.

 

Além destes tenho que cadastrar vendas, onde tenho que atualizar o meu vetor produtos com a baixa da quantidade de produtos realizados na venda, como posso realizar esta baixa de estoque?

 

Irei anexar o meu código até agora, todos os menus estão funcionando normalmente, minha dúvida está apenas no menu de cadastro de vendas e em nota fiscal. Espero alguma retorno.

 

Código fonte:

Program Sistemas_de_Vendas;constmax = 100;typeprodutosRegistro = record         // Registros de clientes  nomeProduto:string;  preco: real;  quantidade,codigo: integer;end; clientesRegistro = record             // Registros de Produtos   nomeCliente, cpf, rg, telefone: string;end;var  posicaoCliente, posicaoProduto, alternativa, indiceProduto, codigo_procura, quantidade_comprada: integer;  clientes:array[1..max] of clientesRegistro;  produtos:array[1..max] of produtosRegistro;  clienteNovo:char;  usuario,senha: string;procedure cadastro_clientes; // Procedimento para cadastro de clientesbegin   clrscr;   if (posicaoCliente <= max) then	  begin	       writeln('**************************************************************');	       writeln('********************* CADASTRO PRODUTO ***********************');	       writeln;            writeln('Nome: ');            gotoxy(35,4); writeln('Cpf: ');            writeln('RG: ');            gotoxy(35,5); writeln('Telefone: ');            writeln('**************************************************************');            gotoxy(7,4); readln(clientes[posicaoCliente].nomeCliente);            gotoxy(40,4); readln(clientes[posicaoCliente].cpf);            gotoxy(5,5); readln(clientes[posicaoCliente].rg);            gotoxy(45,5); readln(clientes[posicaoCliente].telefone);            posicaoCliente := posicaoCliente + 1;            readln;                         clrscr;             gotoxy(20,10);		   write('Deseja cadastrar um novo cliente?');		   gotoxy(24,11);		   write('1 - Sim ou 2 - Não: ');		   read(alternativa);		    if (alternativa = 1) then		     begin		      cadastro_clientes;		     end;			clrscr; 	          end       else        begin		writeln('Banco de Dados Cheio');		readln;	   end;		     end;procedure cadastro_produtos; // Procedimento para cadastro de produtosbegin      clrscr;      if (posicaoProduto <= max) then        begin             writeln('**************************************************************');	        writeln('********************* CADASTRO PRODUTO ***********************');	        writeln;             writeln('Nome Produto: ');                     gotoxy(35,4); writeln('Código: ');             writeln('Preço: ');             gotoxy(35,5); writeln('Quantidade: ');             writeln('**************************************************************');             gotoxy(15,4); readln(produtos[posicaoProduto].nomeProduto);             gotoxy(43,4); readln(produtos[posicaoProduto].codigo);             gotoxy(8,5); readln(produtos[posicaoProduto].preco);             gotoxy(48,5); readln(produtos[posicaoProduto].quantidade);             posicaoProduto := posicaoProduto + 1;             readln;                           clrscr;              gotoxy(20,10);		    write('Deseja cadastrar um novo produto?');		    gotoxy(24,11);		    write('1 - Sim ou 2 - Não: ');		    read(alternativa);		     if (alternativa = 1) then		     begin		      cadastro_produtos;		     end;			clrscr; 	            end         else          begin           writeln('Estoque Lotado');           readln;          end;              end;procedure cadastro_vendas; // Procedimento para cadastro de vendas DÚVIDAbegin    writeln;   writeln('Produtos Disponíveis:');   for indiceProduto:=1 to (posicaoProduto - 1) do    begin     writeln;      writeln('Nome: ',produtos[indiceProduto].nomeProduto);     writeln('Código: ',produtos[indiceProduto].codigo);     writeln('Quantidade em estoque: ',produtos[indiceProduto].quantidade);     writeln;     writeln('----------------');     writeln;    end;    write('Digite o código do produto para venda: ');    readln(codigo_procura);    write('Quantidade desejada: ');    readln(quantidade_comprada);    clrscr;  end;   procedure relatorio_clientes; // Procedimento para relatório de clientesvarindiceCliente: integer;begin	clrscr;     writeln('*******************************************************************');	writeln('********************* RELATÓRIO DE CLIENTES ***********************');	writeln;        for indiceCliente:=1 to (posicaoCliente - 1) do	    begin	     writeln('Nome:',clientes[indiceCliente].nomeCliente);          writeln('CPF:',clientes[indiceCliente].cpf);	     writeln('RG:',clientes[indiceCliente].rg);	     writeln('Telefone:',clientes[indiceCliente].telefone);	     writeln('-----------------------------------');	     writeln;	    end;	    readln;                end;procedure relatorio_produtos; // Procedimento para relatório de produtosbegin     clrscr;     writeln('*******************************************************************');	writeln('********************* RELATÓRIO DE PRODUTOS ***********************');	writeln;       for indiceProduto:=1 to (posicaoProduto - 1) do	   begin	     writeln('Nome Produto: ',produtos[indiceProduto].nomeProduto);	     writeln('Código: ',produtos[indiceProduto].codigo);	     writeln('Preço: ',produtos[indiceProduto].preco:2:2);	     writeln('Quantidade: ',produtos[indiceProduto].quantidade);	     writeln('-----------------------------------');	     writeln;	   end;	   readln; end;  procedure tela_inicial;  //Procedimento do Menu Principal  var   opcao: integer; begin    opcao:=0;    while(opcao<>9) do      begin        writeln('                    MENU PRINCIPAL          ');        writeln('                                            ');        writeln('                                            ');        writeln('                SEJA BEM VINDO ',usuario     );	   writeln('                                             ');	   writeln('                                             ');	   writeln('          -----------------------------------');         writeln('          |      [1] Cadastrar Clientes      |');        writeln('          |      [2] Cadastrar Produtos      |');        writeln('          |      [3] Cadastrar Vendas        |');        writeln('          |      [4] Relatório de Clientes   |');        writeln('          |      [5] Relatório de Produtos   |');        writeln('          |      [6] Emitir Nota Fiscal      |');	   writeln('          |      [9] Encerrar                |');        writeln('          ----------------------------------- ');        write('             Escolha a opção desejada => ');        readln(opcao);        clrscr;             case opcao of		   1: begin	 	       cadastro_clientes;	                end;  	    	         	   2: begin	     		   cadastro_produtos;		 	      end;	    	    	    3: begin	      	         cadastro_vendas;	      		  end; 				  	   4: begin	      	        relatorio_clientes;	      	       end; 				 	   5: begin	     		  relatorio_produtos;			   	      end;			    9: writeln('Acabou o Programa');	    		else		   writeln('Opção inválida');		   opcao:=0;		   readln;	  	  end;        	        end;end;// Programa PrincipalBegin  writeln('-----------------------------------------------------------------------------');  writeln('|                                                                           |');  writeln('|                                                                           |');  writeln('|                                                                           |');  writeln('|                                                                           |');  writeln('|                                Usuário:                                   |');  writeln('|                                  Senha:                                   |');  writeln('|                                                                           |');  writeln('|                                                                           |');  writeln('|                                                                           |');  writeln('|                                                                           |');  writeln('|                                                                           |');  writeln('-----------------------------------------------------------------------------');  gotoxy(42,6);  readln(usuario);  gotoxy(42,7);  readln(senha);  clrscr;    posicaoCliente := 1;  posicaoProduto := 1;  tela_inicial;         	              End.     


Sistema de Vendas.txt

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

 

Além destes tenho que cadastrar vendas, onde tenho que atualizar o meu vetor produtos com a baixa da quantidade de produtos realizados na venda, como posso realizar esta baixa de estoque?

 

Pelo que eu entendi, basta você "subtrair" na quantidade em estoque, a mesma quantidade que foi vendida em "vendas"... não?

Link para o comentário
Compartilhar em outros sites

Eu estava pesquisando e descobri que no procedimento de cadastro_vendas, eu tenho que fazer uma busco no vetor produtos se o código que eu digitar é válido, se for ele faz essa subtração na quantidade de produtos no vetor produtos, porém sou iniciante e não sei como usar esse procedimento de busca.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá.

Eu estava pesquisando e descobri que no procedimento de cadastro_vendas, eu tenho que fazer uma busco no vetor produtos se o código que eu digitar é válido, se for ele faz essa subtração na quantidade de produtos no vetor produtos, porém sou iniciante e não sei como usar esse procedimento de busca.

 

A busca é relativamente simples. Basta percorrer vetor correspondente e compara o valor a ser pesquisado com o valor que contém o produto. Algo do tipo:

ACHOU:=false; //inicializa como não encontradofor indiceProduto:=1 to posicaoProduto do //percorrer toda lista de produtos  begin  if codigo_procura = produtos[indiceProduto].codigo then //se corresponder...     begin     ACHOU:=true; //marca como encontrado     ....     ...     break; //interrompe o laço de repetição (nã faz sentido continuar pesquisando)     end;  end;

Ai você pode usar esse <ACHOU> como referência para continuar ou não o processo... por ai vai.

 

No aguardo.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

vou tentar implementar este seu código aqui no meu, você acha melhor colocar esse código dentro de uma função de nome busca?

Sim...uma function cairia bem. Poderia fazer ela retorna a posição do produto por exemplo...

Obs.: aquele meu código é só uma base

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...