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