Ir ao conteúdo

Posts recomendados

Postado

Boa noite gente, to meio enrolado aqui com um trabalho, por favor, me ajudem a transformar esse código portugol em java:

 

ALGORITMO DA TRANSAÇÃO DE VENDA: CADASTRAR VENDA
Início do Programa INCLUIR_VENDA;
*** OBTER DADOS JUNTO AO USUÁRIO ***
Ler CodCli, Codprod, CodLocal, Quantidade
*** TRATAR ESTOQUE E A EXISTÊNCIA DO PRODUTO ***
EXEC SQL SELECT descricao, local_fab, qtd_estoque, preco_unitario
From Produto Where Codprod = :Xcodprod
Se SQL Not Ok! então
Escreva “Produto não encontrado!”;
Sair;
Fim se
Se (qtd_estoque < Quantidade) então
Escreva “Produto sem estoque!”;
Sair;
Fim se
EXEC SQL UPDATE Produto set qtd_estoque = qtd_estoque - :QuantidadeVendida
WHERE Codprod = :Xcodprod;
*** CALCULAR O PREÇO TOTAL ***
total = total + (Quantidade * preço);
Escreva “Preço calculado: ”, total
*** CALCULAR DESCONTO 1: Com base no bônus e na tabela de Descontos ***
EXEC SQL EXECUTE
BEGIN
total  CALCULAR_DESCONTO(CodProd, CodCli, Quantidade: Inteiro; Total: Real): Real;
END;
END-EXEC
*** CALCULAR DESCONTO 2: Compras no mesmo local de fabricação tem 10% de desconto ***
Se (CodLocal = LNPROD) então
total = total – (total * 10/100);
Escreva “Valor calculado da venda: ”, total;
Fim se
*** GRAVAR VENDA ***
EXEC SQL INSERT INTO Venda (CodCli, CodProd, CodLocal, Qtd_venda, valor_total, data_venda)
VALUES (:XCodcli, :XCodPro, :XCodLocal, :XQuantidade, :Xtotal, :Xdatasistema);
Se SQL = OK então
Escreva “Venda incluída com sucesso!”;
Exec SQL Commit;
Senão
Escreva “Erro na gravação da venda!”;
Exec SQL Rollback;
Fim se
*** LISTAR ITENS VENDIDOS ***
EXEC SQL SELECT b.descricao, a.Qtd_venda, a.preco_unitario, a.valor_total
From Venda a, Produto b, Cliente c
Where a.Codprod = b.CodProd
And c.CodCli = :Xcodcli;
Fim do Programa INCLUIR_VENDA
ALGORITMO DA TRANSAÇÃO DE VENDA: EXCLUIR VENDA
*** DELETAR VENDA ***
Ler codcli, codprod, dt_venda
Exec SQL Select Total Into VTOT, QTDE Into VQTDE
Codlocal Into Vlocalvenda
From Venda
Where codcli = :codcli And codpro = :codprod and
Datavenda = :dt_venda FOR UPDATE;
Se SQLCA.SQLCODE != 0 then
Escreva “Venda Inexistente!”;
Exec SQL Rollback;
Continue;
Fim se;
*** TRATAR ESTOQUE ***
Exec SQL Update Produto SET QTDE = QTDE + VQTDE
Where PN = :codProd;
Se SQLCA.SQLCOD != 0 then
Exec SQL Rollback;
Continue;
Fim se;
*** DEVOLVER BONUS DO CLIENTE ***
Exec SQL Select precounitario Into VPRECO, codlocal Into Vlocalprod
From produto Where PN = :codpro;
VLRTOTALREAL = VPRECO * VQTDE;
Se Vlocalvenda == Vlocalprod then
VLRDESCLOCAL = VLRTOTALREAL * 0.10;
VTOT = :VTOT + VLRDESCLOCAL;
Fim se;
Exec SQL Update Cliente SET BONUS = BONUS + 100
Where CN = :codcli And :VTOT < :VLRTOTALREAL;
*** DELETAR A VENDA ***
Exec SQL Delete From Venda Where cód_cli = :codcli and datavenda = :dt_venda;
Se SQLCA.SQLCODE != 0 then
Escreva “Venda não excluída”!
Exec SQL Rollback;
Continue;
Else
Escreva “Venda excluída com sucesso!”;
Exec SQL Commit;
Fim se;
2) Regra para a construção da Function CALCULAR_DESCONTO
Clientes que possuem mais de 100 pontos de bônus tem direito a um desconto, e caso ganhe o
desconto pagará 100 pontos de seus bônus. Produtos com descontos são aqueles que estão na tabela
desconto com uma determinada quantidade.
Classe/Tabela: DESCONTO
Atributo Tipo Chaves e descrições
ID_DESCONTO Autonumeração (PK)
CODPROD Numero (FK)
PERCENTUAL Numero Percentual de desconto Ex: 2, 8, 10, 12...
QTD_MIN Numero Quantidade mínima para desconto < QTD_MAX
QTD_MAX Numero Quantidade máxima para desconto > QTD_MIN
Observação:
Os produtos podem se repetir, pois terão descontos diferentes para uma determinada quantidade.
ALGORITMO DA FUNÇÃO: CALCULAR_DESCONTO
FUNCTION CALCULAR_DESCONTO (CodProd, CodCli, Quantidade: Inteiro; Total: Real): Real;
INÍCIO DA FUNCTION
EXEC SQL SELECT Bonus
From Cliente
Where Codcli = :Xcodcli;
Se Bonus >= 100 então
EXEC SQL SELECT Percentual
From Desconto
Where CodProd = :Xcodpro AND
Qtd_min >= :XQuantidade AND Qtd_max <= :XQuantidade;
Se SQL OK! então
Retorne  valor_total – (valor_total * Percentual/100);
EXEC SQL UPDATE Cliente SET Bonus = Bonus - 100
Where Codcli = :Xcodcli;
Fim se
senão
Escreva “Cliente não possuirá desconto!”;
Fim se
FIM DA FUNCTION

 

  • Obrigado 1
  • Moderador
Postado

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!