Cara… o post do coutinho é sensacional!! hahahahahahahha
Esse ja vi de kilo
if(1 > 2)
{
//não faz nada
}
else
{
consulta();
}
um dia ele aprende que exite um cara chamado “!” que serve pra negar
if(! (1 > 2))
{
consulta();
}
tipo… 1 > 2 ???
ou seja ele sempre consulta !!!
pra que negar ?
[quote=nbluis]tipo… 1 > 2 ???
ou seja ele sempre consulta !!!
pra que negar ?
[/quote]
hâm?
a condição poderia ser qualquer coisa, não necessariamente “1>2” o proposito da tosquice é o else sem necessidade.
isso
if(! (1 > 2)) {
consulta();
}
quando 1 pode ser maior que 2 ?
simplismente.
consulta();
contribuindo:
este acabei de ver em uma action aqui na empresa:
if(form.getIndGravaDescontoEdi() == null) {
dto.setIndGravaDescontoEdi(Boolean.FALSE);
} else if(Boolean.FALSE.equals(form.getIndGravaDescontoEdi())) {
dto.setIndGravaDescontoEdi(Boolean.FALSE);
} else if(Boolean.TRUE.equals(form.getIndGravaDescontoEdi())) {
dto.setIndGravaDescontoEdi(Boolean.TRUE);
}
[quote=luistiagos]contribuindo:
este acabei de ver em uma action aqui na empresa:
if(form.getIndGravaDescontoEdi() == null) {
dto.setIndGravaDescontoEdi(Boolean.FALSE);
} else if(Boolean.FALSE.equals(form.getIndGravaDescontoEdi())) {
dto.setIndGravaDescontoEdi(Boolean.FALSE);
} else if(Boolean.TRUE.equals(form.getIndGravaDescontoEdi())) {
dto.setIndGravaDescontoEdi(Boolean.TRUE);
}
[/quote]
Santa mãe de deus misericórdia amém nos salve desse mundo de maléfias demoníacas fé em deus
Alguém já ouviu falar em sobrecarga de métodos? Fora as más práticas espalhadas por ai.
[code]public void feio( byte tipo, String msg, HttpServletRequest req ) {
String tipoMessage = “”; // para que isto???
switch (tipo) {
case CONSTANTS.MESSAGE:
tipoMessage = “message”;
break;
case CONSTANTS.WARNING:
tipoMessage = “warning”;
break;
default:
tipoMessage = “erro”;
break;
}
ActionMessages actionMessages = new ActionMessages();
actionMessages.add(tipoMessage, new ActionMessage(msg));
saveMessages(request, actionMessages);
}
public void feio( byte tipo, String msg, HttpServletRequest req, String param ) {
String tipoMessage = “”; // para que isto???
switch (tipo) {
case CONSTANTS.MESSAGE:
tipoMessage = “message”;
break;
case CONSTANTS.WARNING:
tipoMessage = “warning”;
break;
default:
tipoMessage = “erro”;
break;
}
ActionMessages actionMessages = new ActionMessages();
actionMessages.add(tipoMessage, new ActionMessage(msg, param));
saveMessages(request, actionMessages);
}[/code]
Sobrecarga de queeee??? Como assim, por exemplo??? É mais fácil duplicar o código. Reuso com Copy & Paste.
Assim óóóoóóó… Eu explico:
[code]public void feio( byte tipo, String msg, HttpServletRequest req ) {
feio( byte tipo, String msg, HttpServletRequest req, null );
}
public void feio( byte tipo, String msg, HttpServletRequest req, String param ) {
String tipoMessage = null; // agora sim
switch (tipo) { // isto poderia ser melhorado, mas vou deixar assim
case CONSTANTS.MESSAGE:
tipoMessage = “message”;
break;
case CONSTANTS.WARNING:
tipoMessage = “warning”;
break;
default:
tipoMessage = “erro”;
break;
}
ActionMessages actionMessages = new ActionMessages();
if( param != null )
actionMessages.add(tipoMessage, new ActionMessage(msg, param));
else
actionMessages.add(tipoMessage, new ActionMessage(msg));
saveMessages(request, actionMessages);
}[/code]
Aproveite o que já está pronto.
Reuso gente, REUSO!
Um pouquinho de SQL pra vocês:
//não importa o que vem antes daqui
//...
and ( op.deal_closed_date >=TO_DATE ('<data do dia> 01:00:00 AM', 'dd/mm/yyyy hh:mi:ss PM')
and op.DEAL_CLOSED_DATE<=TO_DATE ('<data do dia> 11:59:59 PM', 'dd/mm/yyyy hh:mi:ss PM'))
and (( op.STATE = 2 OR op.STATE = 8 OR op.STATE = 11) OR op.STATE = 4)
Alguém me fala o que acontece depois da meia noite e observem a lógica com os OR …
simples assim:
and op.STATE in (2, 4, 8, 11)
Olha só este método:
Ele pertence a uma classe que é resultado de noites sem dormir, prazo para ontem, síndrome do estudante e requisitos mal-definidos e mal-levantados. Observação: Este código está dentro de uma CellEditor.
/**
* Método que faz as validações nos campos de desconto reais, desconto porcentual e preço liquido
* todas as validações realizadas aqui sao baseadas no desconto em reais, que é repassado diretamente ou via calculo
*/
private void validacoesItens(BigDecimal valorDescontoReais, ItensAbaConsultaVO itensAbaConsultaVO,
DecimalField decimalFieldAtual, BigDecimal equivalenteVODecimalField) throws DatabaseException {
if (itensAbaConsultaVO.getValorIpiItem() != null && itensAbaConsultaVO.getValorIpiItem().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal fatorIpi = itensAbaConsultaVO.getProIpi().divide(new BigDecimal(100), 8, RoundingMode.HALF_UP);
BigDecimal valorAcordado = itensAbaConsultaVO.getValorView().subtract(valorDescontoReais);
BigDecimal valorAcordadoSemIpi = valorAcordado.divide(fatorIpi.add(BigDecimal.ONE), 8, RoundingMode.HALF_UP);
BigDecimal diferencaValorAcordado = valorAcordado.subtract(valorAcordadoSemIpi);
BigDecimal valorUnitarioSemIpi = itensAbaConsultaVO.getValorView().divide(fatorIpi.add(BigDecimal.ONE), 8, RoundingMode.HALF_UP);
BigDecimal diferencaValorUnitario = itensAbaConsultaVO.getValorView().subtract(valorUnitarioSemIpi);
BigDecimal diferencaValorIpi = diferencaValorUnitario.subtract(diferencaValorAcordado);
valorDescontoReais = valorDescontoReais.subtract(diferencaValorIpi);
}
if (valorDescontoReais.compareTo(itensAbaConsultaVO.getConValrDesconto()) != 0) {
String descontoUsuario = "";
BigDecimal valorDesconto = BigDecimal.ZERO;
FaixaDescontoItemVO faixaDescontoItemVO = null;
//flag que indicará se será realizada a gravação dos dados informados ou nao
boolean grava = true;
//busca o prazo medio que pode ser dado na consulta
int prazoMedio = serviceDadosProduto.buscarPrazoMedioPorConsulta(consulta.getConSequencial());
consulta.setConPrazoMedio(prazoMedio);
//busca o valor de desconto maximo permitido para o item
valorDesconto = serviceDadosProduto.buscarValorDesconto(consulta.getConPrazoMedio(), consulta.getConSequencial(), itensAbaConsultaVO.getProdCodgInterno(),funcionario.getFuncUsuario() );
//busca o valor maximo de desconto permitido ao usuario
descontoUsuario = serviceDadosProduto.buscarDescontoUsuarioPorEmpresa(funcionario.getEmpCodg());
//busca a faixa de desconto, onde recebe-se o percentual e o tipo
faixaDescontoItemVO = serviceDadosProduto.buscarFaixaDescontoItem(consulta,
itensAbaConsultaVO.getProdCodgInterno(), funcionario.getEmpCodg());
//verifica se é permitido ao usuario dar descontos
if (descontoUsuario.equalsIgnoreCase("S")) {
if (itensAbaConsultaVO.getQuantidadePromocaoView() == null) itensAbaConsultaVO.setQuantidadePromocaoView(BigDecimal.ZERO);
//verifica se quantidade em promoção é maior que zero
if (itensAbaConsultaVO.getQuantidadePromocaoView().compareTo(BigDecimal.ZERO) > 0) {
Object msg = "Desconto bloqueado devido existir promoção para o item!";
JOptionPane.showMessageDialog(owner, msg, "Aviso", JOptionPane.WARNING_MESSAGE);
grava = false;
} else {
//verifica se o valor de desconto informado é maior que o permitido
if (!(valorDescontoReais.compareTo(valorDesconto) <= 0)) {
Object msg = "O desconto informado é maior que o limite permitido!";
JOptionPane.showMessageDialog(owner, msg, "Aviso", JOptionPane.WARNING_MESSAGE);
grava = false;
}
}
}
if (faixaDescontoItemVO != null) {
//verifica se retorna 'N', ou seja, a empresa possui uma lista de
//desconto, mas o produto nao possui uma faixa de desconto definida.
if (faixaDescontoItemVO.getTipoDesconto().equalsIgnoreCase("N")) {
Object msg = "O produto não possui Faixa de Desconto para cobrir o prazo médio informado na Consulta!";
JOptionPane.showMessageDialog(owner, msg, "Aviso", JOptionPane.WARNING_MESSAGE);
grava = false;
//verifica se retorna 'C', ou seja, o produto tem faixa de desconto
//definido pela classificação do fornecedor.
} else if (faixaDescontoItemVO.getTipoDesconto().equalsIgnoreCase("C")) {
BigDecimal porcentagemCalc = valorDescontoReais.multiply(new BigDecimal(100)).divide(itensAbaConsultaVO.getValorView(), 2, RoundingMode.HALF_UP);
if ((porcentagemCalc.compareTo(faixaDescontoItemVO.getPercentDesconto()) != 0 ) &&
porcentagemCalc.compareTo(BigDecimal.ZERO) != 0) {
Object msg = "O percentual de desconto informado está diferente ao permitido pela faixa de desconto da lista de preços (Desconto pela Classificação)!";
JOptionPane.showMessageDialog(owner, msg, "Aviso", JOptionPane.WARNING_MESSAGE);
grava = false;
}
//verifica se retorna 'L', ou seja, o produto tem faixa de desconto
//definido pela lista de preço.
} else if (faixaDescontoItemVO.getTipoDesconto().equalsIgnoreCase("L")){
BigDecimal porcentagemCalc = valorDescontoReais.multiply(new BigDecimal(100)).divide(itensAbaConsultaVO.getValorView(), 2, RoundingMode.HALF_UP);
//verifica se o desconto dado é maior que o permitido
if (porcentagemCalc.compareTo(faixaDescontoItemVO.getPercentDesconto()) > 0) {
Object msg = "O percentual de desconto informado está superior ao permitido pela faixa de desconto da lista de preços!";
JOptionPane.showMessageDialog(owner, msg, "Aviso", JOptionPane.WARNING_MESSAGE);
grava = false;
}
} else if (faixaDescontoItemVO.getTipoDesconto() != null) {
Object msg = "O tipo de desconto informado é invalido!";
JOptionPane.showMessageDialog(owner, msg, "Aviso", JOptionPane.WARNING_MESSAGE);
grava = false;
}
}
if (grava) {
itensAbaConsultaVO.setConValrDesconto(valorDescontoReais);
atualizarDesconto(itensAbaConsultaVO);
} else {
decimalFieldAtual.setValue(equivalenteVODecimalField);
}
}
}
while (documento.getSupplier().iterator().hasNext()) {
documento.getSupplier().iterator().next().estabeleceDependencias();
}
Pergunta da programadora: Por que não sai do loop?
eu já ví coisas assim:
[code]public class XXX {
public void YYY() {
// blablabla
}
// outro código…
// No inicio ou no final da classe tinha sempre algo assim:
/*
Ez:1:7: E os seus pés eram pés direitos; e as plantas dos seus pés como a planta do pé de uma bezerra, e luziam como a cor de cobre polido
*/
//e assim por diante
/*
“Melhor é serem dois do que um, porque têm melhor paga do seu trabalho.
Porque se um cair, o outro levanta o seu companheiro; mas ai do que estiver só; pois, caindo, não haverá outro que o levante.
Também, se dois dormirem juntos, eles se aquentarão; mas um só, como se aquentará?
E, se alguém prevalecer contra um, os dois lhe resistirão; e o cordão de três dobras não se quebra tão depressa”.
Eclesiastes 4:9-12
*/
}[/code]
Alguém já se deparou com códigos assim?!
Amém!
[quote=Leozin]
…
Alguém já se deparou com códigos assim?![/quote]
Já deparei com coisas do tipo:
Não mexa aqui senão vai dar um PAU!!!
já ví também assim:
// Não sei porque, mas o cast não funciona
ou
// Funciona de vez em quando
ou
// Pense duas vezes antes de mexer aqui
um amigo meu viu um assim
[code]// aqui começa o buraco do tatu
public void criptografar( String alvo ) throws Exception {
// código maluco de criptografia do capeta
}
// fim do buraco do tatu[/code]
heuiaheuoiaiehiauheiaheiua, o código de criptografia devia ser assustador mesmo, não que seja código tosco, mas a complexidade que o cara fez deve ser de outro mundo HUIEhoeiuaheuia
Tabela: NEGOCIO
Campos:
ID - NUMBER(10) NOT NULL
DESC - VARCHAR2(100)
... outros campos
ID_NEGOCIO_PAI - NUMBER(10) -> campo de auto-relacionamento não obrigatório
Classe (Entidade):
[code]public class Negocio implements Serializable {
private long id;
private String desc;
// … outros atributos
private long idNegocioPai;
// getter e setters
}[/code]
Como o cara garante NULL com um campo usando long (primitivo)???
Ai cara testa se eh igual a null caso seja atribui 0 ou -1 …
[quote=Leozin]já ví também assim:
um amigo meu viu um assim
[code]// aqui começa o buraco do tatu
public void criptografar( String alvo ) throws Exception {
// código maluco de criptografia do capeta
}
// fim do buraco do tatu[/code]
heuiaheuoiaiehiauheiaheiua, o código de criptografia devia ser assustador mesmo, não que seja código tosco, mas a complexidade que o cara fez deve ser de outro mundo HUIEhoeiuaheuia[/quote]
caraca velho rachei o bico aqui! hahahaha… quando eu tiver alguma pérola eu posto.
[quote=ramilani12][quote=danieldestro]
…
Como o cara garante NULL com um campo usando long (primitivo)???
[/quote]
Ai cara testa se eh igual a null caso seja atribui 0 ou -1 … [/quote]
ZERO não é NULL… o BD vai procurar por algum registro com ID=0 (ou -1) e vai dar pau de integridade referêncial. BOOOM!