Ir ao conteúdo
  • Cadastre-se

alexredfield

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

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

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!