Skip to content
This repository has been archived by the owner on May 16, 2018. It is now read-only.

Commit

Permalink
Merge pull request #23 from tbaum/sepa-multi-gvs
Browse files Browse the repository at this point in the history
Fix für SammelLastSEPA GV
  • Loading branch information
willuhn committed Feb 3, 2014
2 parents bdc1e61 + 0a21392 commit b469467
Show file tree
Hide file tree
Showing 12 changed files with 100 additions and 11 deletions.
4 changes: 2 additions & 2 deletions src/org/kapott/hbci/GV/AbstractSEPAGV.java
Expand Up @@ -34,7 +34,7 @@ public abstract class AbstractSEPAGV extends HBCIJobImpl
*/
protected final static String ENDTOEND_ID_NOTPROVIDED = "NOTPROVIDED";

private Properties sepaParams = new Properties();
protected final Properties sepaParams = new Properties();
private PainVersion pain = null;
private ISEPAGenerator generator = null;

Expand Down Expand Up @@ -289,7 +289,7 @@ public String createSEPATimestamp()
* Liefert den passenden SEPA-Generator.
* @return der SEPA-Generator.
*/
private ISEPAGenerator getSEPAGenerator()
protected final ISEPAGenerator getSEPAGenerator()
{
if (this.generator == null)
{
Expand Down
14 changes: 14 additions & 0 deletions src/org/kapott/hbci/GV/GVMultiLastB2BSEPA.java
Expand Up @@ -5,9 +5,11 @@

package org.kapott.hbci.GV;

import org.kapott.hbci.GV.generators.AbstractSEPAGenerator;
import org.kapott.hbci.GV_Result.AbstractGVRLastSEPA;
import org.kapott.hbci.GV_Result.GVRLastB2BSEPA;
import org.kapott.hbci.manager.HBCIHandler;
import org.kapott.hbci.manager.LogFilter;

/**
* Implementierung des HBCI-Jobs fuer die SEPA-B2B-Multi-Lastschrift.
Expand Down Expand Up @@ -41,5 +43,17 @@ public GVMultiLastB2BSEPA(HBCIHandler handler)
public GVMultiLastB2BSEPA(HBCIHandler handler, String lowlevelName, AbstractGVRLastSEPA result)
{
super(handler, lowlevelName, result);

// batch-booking, sepa default rule is 'true' = 1
addConstraint("batchbook", "sepa.batchbook", "1", LogFilter.FILTER_NONE);

addConstraint("Total.value", "Total.value", null, LogFilter.FILTER_MOST);
addConstraint("Total.curr", "Total.curr", null, LogFilter.FILTER_NONE);
}

@Override protected void createSEPAFromParams()
{
super.createSEPAFromParams();
setParam("Total", ((AbstractSEPAGenerator) getSEPAGenerator()).sumBtgValueObject(sepaParams));
}
}
14 changes: 14 additions & 0 deletions src/org/kapott/hbci/GV/GVMultiLastCOR1SEPA.java
Expand Up @@ -5,9 +5,11 @@

package org.kapott.hbci.GV;

import org.kapott.hbci.GV.generators.AbstractSEPAGenerator;
import org.kapott.hbci.GV_Result.AbstractGVRLastSEPA;
import org.kapott.hbci.GV_Result.GVRLastCOR1SEPA;
import org.kapott.hbci.manager.HBCIHandler;
import org.kapott.hbci.manager.LogFilter;

/**
* Implementierung des HBCI-Jobs fuer die SEPA-COR1-Multi-Lastschrift.
Expand Down Expand Up @@ -41,5 +43,17 @@ public GVMultiLastCOR1SEPA(HBCIHandler handler)
public GVMultiLastCOR1SEPA(HBCIHandler handler, String lowlevelName, AbstractGVRLastSEPA result)
{
super(handler, lowlevelName, result);

// batch-booking, sepa default rule is 'true' = 1
addConstraint("batchbook", "sepa.batchbook", "1", LogFilter.FILTER_NONE);

addConstraint("Total.value", "Total.value", null, LogFilter.FILTER_MOST);
addConstraint("Total.curr", "Total.curr", null, LogFilter.FILTER_NONE);
}

@Override protected void createSEPAFromParams()
{
super.createSEPAFromParams();
setParam("Total", ((AbstractSEPAGenerator) getSEPAGenerator()).sumBtgValueObject(sepaParams));
}
}
14 changes: 14 additions & 0 deletions src/org/kapott/hbci/GV/GVMultiLastSEPA.java
Expand Up @@ -5,9 +5,11 @@

package org.kapott.hbci.GV;

import org.kapott.hbci.GV.generators.AbstractSEPAGenerator;
import org.kapott.hbci.GV_Result.AbstractGVRLastSEPA;
import org.kapott.hbci.GV_Result.GVRLastSEPA;
import org.kapott.hbci.manager.HBCIHandler;
import org.kapott.hbci.manager.LogFilter;

/**
* Implementierung des HBCI-Jobs fuer die SEPA-Basis-Multi-Lastschrift.
Expand Down Expand Up @@ -41,5 +43,17 @@ public GVMultiLastSEPA(HBCIHandler handler)
public GVMultiLastSEPA(HBCIHandler handler, String lowlevelName, AbstractGVRLastSEPA result)
{
super(handler, lowlevelName, result);

// batch-booking, sepa default rule is 'true' = 1
addConstraint("batchbook", "sepa.batchbook", "1", LogFilter.FILTER_NONE);

addConstraint("Total.value", "Total.value", null, LogFilter.FILTER_MOST);
addConstraint("Total.curr", "Total.curr", null, LogFilter.FILTER_NONE);
}

@Override protected void createSEPAFromParams()
{
super.createSEPAFromParams();
setParam("Total", ((AbstractSEPAGenerator) getSEPAGenerator()).sumBtgValueObject(sepaParams));
}
}
14 changes: 14 additions & 0 deletions src/org/kapott/hbci/GV/GVMultiUebSEPA.java
Expand Up @@ -21,7 +21,9 @@

package org.kapott.hbci.GV;

import org.kapott.hbci.GV.generators.AbstractSEPAGenerator;
import org.kapott.hbci.manager.HBCIHandler;
import org.kapott.hbci.manager.LogFilter;

/**
* Job-Implementierung fuer SEPA-Multi-Ueberweisungen.
Expand Down Expand Up @@ -63,5 +65,17 @@ public GVMultiUebSEPA(HBCIHandler handler)
public GVMultiUebSEPA(HBCIHandler handler, String name)
{
super(handler, name);

// batch-booking, sepa default rule is 'true' = 1
addConstraint("batchbook", "sepa.batchbook", "1", LogFilter.FILTER_NONE);

addConstraint("Total.value", "Total.value", null, LogFilter.FILTER_MOST);
addConstraint("Total.curr", "Total.curr", null, LogFilter.FILTER_NONE);
}

@Override protected void createSEPAFromParams()
{
super.createSEPAFromParams();
setParam("Total", ((AbstractSEPAGenerator) getSEPAGenerator()).sumBtgValueObject(sepaParams));
}
}
4 changes: 4 additions & 0 deletions src/org/kapott/hbci/GV/HBCIJob.java
Expand Up @@ -181,6 +181,8 @@ Bezeichnung einer Restriktion (z.B. "<code>maxusage</code>"), als Value wird der
@param date Datum, welches als Wert für den Job-Parameter benutzt werden soll */
public void setParam(String paramName,Date date);

public void setParam(String paramName, Integer index, Date date);

/** Setzen eines Job-Parameters, bei dem ein Integer-Wert Da als Wert erwartet wird. Diese Methode
dient nur als Wrapper für {@link #setParam(String,String)}.
@param paramName Name des zu setzenden Job-Parameters
Expand Down Expand Up @@ -216,6 +218,8 @@ Bezeichnung einer Restriktion (z.B. "<code>maxusage</code>"), als Value wird der
@param value Wert, auf den der Parameter gesetzt werden soll */
public void setParam(String paramName,Integer index,String value);

public void setParam(String paramname, Integer index, Value v);

/** <p>Hinzufügen dieses Jobs zu einem HBCI-Dialog. Diese Methode arbeitet analog zu
{@link #addToQueue(String)}, nur dass hier
die <code>customerid</code> mit der Kunden-ID vorbelegt ist, wie sie
Expand Down
28 changes: 19 additions & 9 deletions src/org/kapott/hbci/GV/HBCIJobImpl.java
Expand Up @@ -586,25 +586,35 @@ public void setParam(String paramname,Konto acc)
@param paramname die Basis der Parameter für die Geldbetragsdaten (für "<code>btg.value</code>" und
"<code>btg.curr</code>" wäre das also "<code>btg</code>")
@param v ein Value-Objekt, aus welchem die zu setzenden Parameterdaten entnommen werden */
public void setParam(String paramname,Value v)
public void setParam(String paramname, Value v)
{
if (acceptsParam(paramname+".value"))
setParam(paramname+".value",HBCIUtils.bigDecimal2String(v.getBigDecimalValue()));

setParam(paramname, null, v);
}

public void setParam(String paramname, Integer index, Value v)
{
if (acceptsParam(paramname+".value"))
setParam(paramname+".value",index,HBCIUtils.bigDecimal2String(v.getBigDecimalValue()));

String curr=v.getCurr();
if (acceptsParam(paramname+".curr") && curr!=null && curr.length()!=0)
setParam(paramname+".curr",curr);
setParam(paramname+".curr",index,curr);
}

/** Setzen eines Job-Parameters, bei dem ein Datums als Wert erwartet wird. Diese Methode
dient als Wrapper für {@link #setParam(String,String)}, um das Datum in einen korrekt
formatierten String umzuwandeln. Das "richtige" Datumsformat ist dabei abhängig vom
aktuellen Locale.
@param paramName Name des zu setzenden Job-Parameters
@param date Datum, welches als Wert für den Job-Parameter benutzt werden soll */
public void setParam(String paramName,Date date)
@param date Datum, welches als Wert für den Job-Parameter benutzt werden soll */
public void setParam(String paramName, Date date)
{
setParam(paramName, null, date);
}

public void setParam(String paramName, Integer index, Date date)
{
setParam(paramName,HBCIUtils.date2StringISO(date));
setParam(paramName, index, HBCIUtils.date2StringISO(date));
}

/** Setzen eines Job-Parameters, bei dem ein Integer-Wert Da als Wert erwartet wird. Diese Methode
Expand Down
7 changes: 7 additions & 0 deletions src/org/kapott/hbci/GV/generators/AbstractSEPAGenerator.java
Expand Up @@ -21,6 +21,7 @@
import org.kapott.hbci.exceptions.HBCI_Exception;
import org.kapott.hbci.exceptions.InvalidArgumentException;
import org.kapott.hbci.sepa.PainVersion;
import org.kapott.hbci.structures.Value;

/**
* Abstrakte Basis-Implementierung der SEPA-Generatoren.
Expand Down Expand Up @@ -191,4 +192,10 @@ protected String insertIndex(String key, Integer index)
}
}

public Value sumBtgValueObject(Properties properties) {
Integer maxIndex = maxIndex(properties);
BigDecimal btg = sumBtgValue(properties, maxIndex);
String curr = properties.getProperty(insertIndex("btg.curr", maxIndex == null ? null : 0));
return new Value(btg.doubleValue(), curr);
}
}
3 changes: 3 additions & 0 deletions src/org/kapott/hbci/GV/generators/GenLastSEPA00800202.java
Expand Up @@ -148,6 +148,9 @@ public void generate(Properties sepaParams, OutputStream os, boolean validate) t
drctDbtTxInfs.add(createDirectDebitTransactionInformationSDD(sepaParams, null, df));
}

if ( "0".equals(sepaParams.getProperty("batchbook")))
pmtInf.setBtchBookg(false);

ObjectFactory of = new ObjectFactory();
this.marshal(of.createDocument(doc), os, validate);
}
Expand Down
3 changes: 3 additions & 0 deletions src/org/kapott/hbci/GV/generators/GenLastSEPA00800302.java
Expand Up @@ -156,6 +156,9 @@ public void generate(Properties sepaParams, OutputStream os, boolean validate) t
drctDbtTxInfs.add(createDirectDebitTransactionInformationSDD(sepaParams, null, df));
}

if ( "0".equals(sepaParams.getProperty("batchbook")))
pmtInf.setBtchBookg(false);

ObjectFactory of = new ObjectFactory();
this.marshal(of.createDocument(doc), os, validate);
}
Expand Down
3 changes: 3 additions & 0 deletions src/org/kapott/hbci/GV/generators/GenUebSEPA00100203.java
Expand Up @@ -134,6 +134,9 @@ public void generate(Properties sepaParams, OutputStream os, boolean validate) t
cdtTrxTxInfs.add(createCreditTransferTransactionInformationSCT(sepaParams, null));
}

if ( "0".equals(sepaParams.getProperty("batchbook")))
pmtInf.setBtchBookg(false);

ObjectFactory of = new ObjectFactory();
this.marshal(of.createDocument(doc), os, validate);
}
Expand Down
3 changes: 3 additions & 0 deletions src/org/kapott/hbci/GV/generators/GenUebSEPA00100303.java
Expand Up @@ -136,6 +136,9 @@ public void generate(Properties sepaParams, OutputStream os, boolean validate) t
cdtTrxTxInfs.add(createCreditTransferTransactionInformationSCT(sepaParams, null));
}

if ( "0".equals(sepaParams.getProperty("batchbook")))
pmtInf.setBtchBookg(false);

ObjectFactory of = new ObjectFactory();
this.marshal(of.createDocument(doc), os, validate);
}
Expand Down

0 comments on commit b469467

Please sign in to comment.