package org.salamanca.commands.recargo;
import javax.jdo.PersistenceManager;
import org.salamanca.broker.BrokerServer;
import org.salamanca.commands.MessageException;
import org.salamanca.domain.ConfiguracionGeneral;
import javax.jdo.Extent;
import java.util.*;
import org.salamanca.commands.ICommand;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class SetRecargo implements ICommand {
private int diasLuegoVencimientoAnulaDescuento = 0;
private double porcentajeRecargoPorDiaCuotas = 0;
private double porcentajeRecargoPorDiaPagosExtra = 0;
public SetRecargo(double porcentajeRecargoPorDiaCuotas,
double porcentajeRecargoPorDiaPagosExtra,
int diasLuegoVencimientoAnulaDescuento) {
this.porcentajeRecargoPorDiaCuotas = porcentajeRecargoPorDiaCuotas;
this.porcentajeRecargoPorDiaPagosExtra =
porcentajeRecargoPorDiaPagosExtra;
this.diasLuegoVencimientoAnulaDescuento =
diasLuegoVencimientoAnulaDescuento;
}
/**
* execute
*/
public void execute() throws MessageException {
if (this.porcentajeRecargoPorDiaCuotas < 0) {
throw new MessageException(
"No se permiten Recargos negativos");
}
if (this.porcentajeRecargoPorDiaPagosExtra < 0) {
throw new MessageException(
"No se permiten Recargos negativos");
}
if (this.diasLuegoVencimientoAnulaDescuento < 0) {
throw new MessageException(
"No se permiten dias negativos");
}
PersistenceManager pm = BrokerServer.instance().getPMF().
getPersistenceManager();
Extent ext = pm.getExtent(ConfiguracionGeneral.class, true);
//1ero borro lo existente
Vector v = new Vector();
Iterator iter = ext.iterator();
while (iter.hasNext()) {
ConfiguracionGeneral itemConfiguracionGeneral = (
ConfiguracionGeneral) iter.next();
v.add(itemConfiguracionGeneral);
}
pm.currentTransaction().begin();
Enumeration enumer = v.elements();
while (enumer.hasMoreElements()) {
ConfiguracionGeneral itemConfiguracionGeneral = (
ConfiguracionGeneral) enumer.nextElement();
pm.deletePersistent(itemConfiguracionGeneral);
}
//2do lo creo de nuevo
ConfiguracionGeneral itemConfiguracionGeneral = new
ConfiguracionGeneral();
itemConfiguracionGeneral.setPorcentajeRecargoPorDiaCuotas(
porcentajeRecargoPorDiaCuotas);
itemConfiguracionGeneral.setPorcentajeRecargoPorDiaPagosExtra(
porcentajeRecargoPorDiaPagosExtra);
itemConfiguracionGeneral.setDiasLuegoVencimientoAnulaDescuento(this.
diasLuegoVencimientoAnulaDescuento);
pm.makePersistent(itemConfiguracionGeneral);
pm.currentTransaction().commit();
}
/**
* getCommandName
*
* @return String
*/
public String getCommandName() {
return this.getClass().getName();
}
/**
* getBarDelimitedParameters
*
* @return String
*/
public String getBarDelimitedParameters() {
return diasLuegoVencimientoAnulaDescuento + "|" +
porcentajeRecargoPorDiaCuotas + "|" +
porcentajeRecargoPorDiaPagosExtra;
}
}