1225 lines
29 KiB
Groovy
1225 lines
29 KiB
Groovy
|
|
// Global d.3 libraries -----------------------------------------------------
|
|
import com.dvelop.d3.server.core.D3Interface;
|
|
import com.dvelop.d3.server.Document;
|
|
import com.dvelop.d3.server.User;
|
|
import com.dvelop.d3.server.DocumentType;
|
|
|
|
// Libraries to handle the different hook types -----------------------------
|
|
import com.dvelop.d3.server.ValueSet;
|
|
|
|
// Special libraries --------------------------------------------------------
|
|
import com.dvelop.d3.server.RepositoryField;
|
|
|
|
|
|
|
|
class ValueSetsCombined {
|
|
|
|
@ValueSet( entrypoint = "WM_DAOberRegister" )
|
|
def WM_DAOberRegister ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 3 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
def wm_typ = "";
|
|
def unterreg = "";
|
|
|
|
switch ( docType.id )
|
|
{
|
|
case "AUREG":
|
|
case "AURG2":
|
|
case "AURG3":
|
|
case "AOREG":
|
|
case "AREGS":
|
|
case "DDAUE":
|
|
wm_typ = "Dauerakte%";
|
|
break;
|
|
case "AJAOB":
|
|
case "AJAAB":
|
|
case "DABSC":
|
|
case "AJAUR":
|
|
case "AJAU2":
|
|
wm_typ = "Jahresabschlussakte%";
|
|
break;
|
|
case "DBERA":
|
|
case "ABERO":
|
|
case "ABERA":
|
|
case "ABEUR":
|
|
case "ABEU2":
|
|
wm_typ = "Beratungsakte%";
|
|
break;
|
|
case "DSTEU":
|
|
case "ASTOR":
|
|
case "ASTRA":
|
|
case "ASTUR":
|
|
case "ASTU2":
|
|
wm_typ = "Steuerakte%";
|
|
break;
|
|
case "DBETR":
|
|
case "ABEPA":
|
|
case "ABEOR":
|
|
case "ABPUR":
|
|
case "ABPU2":
|
|
wm_typ = "Betriebspruefungsakte%";
|
|
break;
|
|
case "DFIBU":
|
|
case "AFIOR":
|
|
case "AFIRA":
|
|
case "AFIUR":
|
|
case "AFIU2":
|
|
wm_typ = "Fibuakte%";
|
|
break;
|
|
case "DLOHN":
|
|
case "ALBOR":
|
|
case "ALBRE":
|
|
case "ALJUR":
|
|
case "ALJR2":
|
|
wm_typ = "Lohnbuchhaltungjahresakte%";
|
|
break;
|
|
case "DLSTD":
|
|
case "ALBSO":
|
|
case "ALORE":
|
|
case "ALOUR":
|
|
case "ALBU2":
|
|
wm_typ = "Lohnbuchhaltungsstammdatenakte%";
|
|
break;
|
|
case "DDEBD":
|
|
case "AAURR":
|
|
case "AAURU":
|
|
case "AAURA":
|
|
case "AAUR2":
|
|
wm_typ = "Ausgangsrechnungsakte%";
|
|
break;
|
|
case "AKROR":
|
|
case "AKRER":
|
|
case "AKREU":
|
|
case "AKRU2":
|
|
case "DKRED":
|
|
wm_typ = "Kreditorenakte%";
|
|
break;
|
|
case "DUMMY":
|
|
case "ADUMY":
|
|
case "DDUMY":
|
|
wm_typ = "%";
|
|
break;
|
|
|
|
}
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_2 from firmen_spezifisch where kue_dokuart = 'AVMNT' and dok_dat_feld_1 like '" + wm_typ + "' order by dok_dat_feld_2 ";
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_2 } );
|
|
}
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_DARegister" )
|
|
def WM_DARegister ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 4 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
def wm_typ = "";
|
|
|
|
switch ( docType.id )
|
|
{
|
|
case "AUREG":
|
|
case "AURG2":
|
|
case "AURG3":
|
|
case "DDAUE":
|
|
wm_typ = "Dauerakte%";
|
|
break;
|
|
case "AJAOB":
|
|
case "AJAAB":
|
|
case "DABSC":
|
|
case "AJAUR":
|
|
case "AJAU2":
|
|
wm_typ = "Jahresabschlussakte%";
|
|
break;
|
|
case "DBERA":
|
|
case "ABERO":
|
|
case "ABERA":
|
|
case "ABEUR":
|
|
case "ABEU2":
|
|
wm_typ = "Beratungsakte%";
|
|
break;
|
|
case "DSTEU":
|
|
case "ASTOR":
|
|
case "ASTRA":
|
|
case "ASTUR":
|
|
case "ASTU2":
|
|
wm_typ = "Steuerakte%";
|
|
break;
|
|
case "DBETR":
|
|
case "ABEPA":
|
|
case "ABEOR":
|
|
case "ABPUR":
|
|
case "ABPU2":
|
|
wm_typ = "Betriebspruefungsakte%";
|
|
break;
|
|
case "DFIBU":
|
|
case "AFIOR":
|
|
case "AFIRA":
|
|
case "AFIUR":
|
|
case "AFIU2":
|
|
wm_typ = "Fibuakte%";
|
|
break;
|
|
case "DLOHN":
|
|
case "ALBOR":
|
|
case "ALBRE":
|
|
case "ALJUR":
|
|
case "ALJR2":
|
|
wm_typ = "Lohnbuchhaltungjahresakte%";
|
|
break;
|
|
case "DLSTD":
|
|
case "ALBSO":
|
|
case "ALOUR":
|
|
case "ALBU2":
|
|
wm_typ = "Lohnbuchhaltungsstammdatenakte%";
|
|
break;
|
|
case "DDEBD":
|
|
case "AAURR":
|
|
case "AAURU":
|
|
case "AAUR2":
|
|
wm_typ = "Ausgangsrechnungsakte%";
|
|
break;
|
|
case "DKRED":
|
|
case "AKROR":
|
|
wm_typ = "Kreditorenakte%";
|
|
break;
|
|
case "DUMMY":
|
|
case "AOREG":
|
|
case "AREGS":
|
|
wm_typ = "%";
|
|
break;
|
|
|
|
}
|
|
|
|
def where = "";
|
|
def where2 = "";
|
|
|
|
if ( doc.field[ 3 ] != null )
|
|
{
|
|
where = " and dok_dat_feld_2 = '" + doc.field[ 3 ] + "'";
|
|
}
|
|
|
|
if ( doc.field[ 1 ] != null )
|
|
{
|
|
where2 = " and dok_dat_feld_1 = '" + doc.field[ 1 ] + "' ";
|
|
}
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
where2 = where2 + " and dok_dat_feld_10 = '" + doc.field[ 10 ] + "' ";
|
|
}
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_3 as ddf3 from firmen_spezifisch where kue_dokuart = 'AVMNT' and dok_dat_feld_1 like '" + wm_typ + "' " + where + " union select distinct dok_dat_feld_4 as ddf3 from firmen_spezifisch where kue_dokuart in ('ABERA', 'ABEPA', 'AREGS', 'AFIRA', 'AJAAB', 'ALBRE', 'ALORE', 'ASTRA', 'AKRER' ) " + where2 + " and dok_dat_feld_4 != '' and dok_dat_feld_4 is not null and dok_dat_feld_4 not in (select dok_dat_feld_3 from firmen_spezifisch where kue_dokuart = 'AVMNT' and dok_dat_feld_3 is not null ) and dok_dat_feld_4 not in ( select dok_dat_feld_4 from firmen_spezifisch where kue_dokuart = 'AVMNT' and dok_dat_feld_4 is not null ) order by ddf3";
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.ddf3 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_DAUnterRegister" )
|
|
def WM_DAUnterRegister ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 23 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
// Es wird geprüft, ob das Register innerhalb des Mandanten (DDF1=>Mandant-Nr.) unterhalb des jetzt verwendeten Registers (DDF4)
|
|
// angelegt wurde.
|
|
|
|
def such_dokart, where = "";
|
|
|
|
switch ( docType.id )
|
|
{
|
|
case "AUREG":
|
|
case "AURG2":
|
|
case "AURG3":
|
|
case "DDAUE":
|
|
such_dokart = "AUREG";
|
|
break;
|
|
case "DABSC":
|
|
case "AJAUR":
|
|
case "AJAU2":
|
|
such_dokart = "AJAUR";
|
|
break;
|
|
case "DBERA":
|
|
case "ABEUR":
|
|
case "ABEU2":
|
|
such_dokart = "ABEUR";
|
|
break;
|
|
case "DSTEU":
|
|
case "ASTUR":
|
|
case "ASTU2":
|
|
such_dokart = "ASTUR";
|
|
break;
|
|
case "DBETR":
|
|
case "ABPUR":
|
|
case "ABPU2":
|
|
such_dokart = "ABPUR";
|
|
break;
|
|
case "DFIBU":
|
|
case "AFIUR":
|
|
case "AFIU2":
|
|
such_dokart = "AFIUR";
|
|
break;
|
|
case "DLOHN":
|
|
case "ALJUR":
|
|
case "ALJR2":
|
|
such_dokart = "ALJUR";
|
|
break;
|
|
case "DLSTD":
|
|
case "ALOUR":
|
|
case "ALBU2":
|
|
such_dokart = "ALOUR";
|
|
break;
|
|
case "DDEBD":
|
|
case "AAURU":
|
|
case "AAUR2":
|
|
such_dokart = "AAURU";
|
|
break;
|
|
case "DKRED":
|
|
case "AKREU":
|
|
case "AKRU2":
|
|
such_dokart = "ABEUR";
|
|
break;
|
|
|
|
}
|
|
|
|
if ( doc.field[ 1 ] )
|
|
{
|
|
where = " and dok_dat_feld_1 = '" + doc.field[ 1 ] + "' ";
|
|
}
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
where = where + " and dok_dat_feld_10 = '" + doc.field[ 10 ] + "' ";
|
|
}
|
|
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_23 from firmen_spezifisch \
|
|
where kue_dokuart in ( '" + such_dokart + "' ) \
|
|
and dok_dat_feld_23 != '' \
|
|
and dok_dat_feld_4 = '" + doc.field[ 4 ] + "' " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_23 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_DAUnterRegister2" )
|
|
def WM_DAUnterRegister2( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 17 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
// Es wird geprüft, ob das Register innerhalb des Mandanten (DDF1=>Mandant-Nr.) unterhalb des jetzt verwendeten Registers (DDF4)
|
|
// angelegt wurde.
|
|
|
|
def such_dokart, where = "";
|
|
|
|
switch ( docType.id )
|
|
{
|
|
case "AURG2":
|
|
case "AURG3":
|
|
case "DDAUE":
|
|
such_dokart = "AURG2";
|
|
break;
|
|
case "DABSC":
|
|
case "AJAU2":
|
|
such_dokart = "AJAU2";
|
|
break;
|
|
case "DBERA":
|
|
case "ABEU2":
|
|
such_dokart = "ABEU2";
|
|
break;
|
|
case "DSTEU":
|
|
case "ASTU2":
|
|
such_dokart = "ASTU2";
|
|
break;
|
|
case "DBETR":
|
|
case "ABPU2":
|
|
such_dokart = "ABPU2";
|
|
break;
|
|
case "DFIBU":
|
|
case "AFIU2":
|
|
such_dokart = "AFIU2";
|
|
break;
|
|
case "DLOHN":
|
|
case "ALJR2":
|
|
such_dokart = "ALJR2";
|
|
break;
|
|
case "DLSTD":
|
|
case "ALBU2":
|
|
such_dokart = "ALBU2";
|
|
break;
|
|
case "DDEBD":
|
|
case "AAUR2":
|
|
such_dokart = "AAUR2";
|
|
break;
|
|
case "DKRED":
|
|
case "AKRU2":
|
|
such_dokart = "AKRU2";
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
if ( doc.field[ 1 ] )
|
|
{
|
|
where = " and dok_dat_feld_1 = '" + doc.field[ 1 ] + "' ";
|
|
}
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
where = where + " and dok_dat_feld_10 = '" + doc.field[ 10 ] + "' ";
|
|
}
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_17 from firmen_spezifisch \
|
|
where kue_dokuart in ( '" + such_dokart + "' ) \
|
|
and dok_dat_feld_17 != '' \
|
|
and dok_dat_feld_23 = '" + doc.field[ 23 ] + "' " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_17 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_DAUnterRegister3" )
|
|
def WM_DAUnterRegister3( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 32 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
// Es wird geprüft, ob das Register innerhalb des Mandanten (DDF1=>Mandant-Nr.) unterhalb des jetzt verwendeten Registers (DDF4)
|
|
// angelegt wurde.
|
|
|
|
def where = "";
|
|
|
|
if ( doc.field[ 1 ] )
|
|
{
|
|
where = " and dok_dat_feld_1 = '" + doc.field[ 1 ] + "' ";
|
|
}
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
where = where + " and dok_dat_feld_10 = '" + doc.field[ 10 ] + "' ";
|
|
}
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_32 from firmen_spezifisch \
|
|
where kue_dokuart in ( 'AURG3' ) \
|
|
and dok_dat_feld_32 != '' \
|
|
and dok_dat_feld_17 = '" + doc.field[ 17 ] + "' " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_32 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_Aktennummer" )
|
|
def WM_Aktennummer ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 10 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
def where = "";
|
|
def kuerzel = "";
|
|
|
|
def mandant_oder_kreditor;
|
|
def dokuarten;
|
|
|
|
switch ( docType.id )
|
|
{
|
|
case "DDAUE": // Dauerakte
|
|
case "AUREG":
|
|
case "AURG2":
|
|
case "AURG3":
|
|
case "AOREG":
|
|
case "AREGS":
|
|
case "ADAUR":
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "DA";
|
|
break;
|
|
case "DABSC": // Jahresabschlussakte
|
|
case "AJAAA":
|
|
case "AJAOB":
|
|
case "AJAAB":
|
|
case "AJAUR":
|
|
case "AJAU2":
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "JA";
|
|
break;
|
|
case "DBERA": // Beratungsakte
|
|
case "ABERB":
|
|
case "ABERO":
|
|
case "ABERA":
|
|
case "ABEUR":
|
|
case "ABEU2":
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "BE";
|
|
break;
|
|
case "DSTEU": // Steuerakte
|
|
case "ASTEU":
|
|
case "ASTOR":
|
|
case "ASTRA":
|
|
case "ASTUR":
|
|
case "ASTU2":
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "ST";
|
|
break;
|
|
case "DBETR": // Betriebspruefungsakte
|
|
case "ABETR":
|
|
case "ABEPA":
|
|
case "ABEOR":
|
|
case "ABPUR":
|
|
case "ABPU2":
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "BP";
|
|
break;
|
|
case "DFIBU": // Fibuakte
|
|
case "AFIBA":
|
|
case "AFIOR":
|
|
case "AFIRA":
|
|
case "AFIUR":
|
|
case "AFIU2":
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "FI";
|
|
break;
|
|
case "DLOHN": // Lohnbuchhaltungjahresakte
|
|
case "ALOJA":
|
|
case "ALBOR":
|
|
case "ALBRE":
|
|
case "ALJUR":
|
|
case "ALJR2":
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "LO";
|
|
break;
|
|
case "DLSTD": // Lohnbuchhaltungsstammdatenakte
|
|
case "ALBSA":
|
|
case "ALBSO":
|
|
case "ALORE":
|
|
case "ALOUR":
|
|
case "ALBU2":
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "LS";
|
|
break;
|
|
case "DDEBD": // Ausgangsrechnungsakte
|
|
case "AAURE":
|
|
case "AAURR":
|
|
case "AAURA":
|
|
case "AAURU":
|
|
case "AAUR2":
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "RE";
|
|
break;
|
|
case "AKRED": // Kreditorenakte
|
|
case "AKROR":
|
|
case "AKRER":
|
|
case "AKREU":
|
|
case "AKRU2":
|
|
case "DKRED":
|
|
mandant_oder_kreditor = 1;
|
|
kuerzel = "KA";
|
|
break;
|
|
case "AEVAK": // Eigenverwaltungsakte
|
|
case "AEVOR":
|
|
case "AEVRE":
|
|
case "DEVDO":
|
|
mandant_oder_kreditor = 2;
|
|
kuerzel = "EV";
|
|
break;
|
|
}
|
|
|
|
switch ( mandant_oder_kreditor )
|
|
{
|
|
case 0:
|
|
if ( doc.field[ 2 ] )
|
|
{
|
|
where = " and dok_dat_feld_2 = '" + doc.field[ 2 ] + "' ";
|
|
}
|
|
if ( doc.field[ 1 ] )
|
|
{
|
|
where = " and dok_dat_feld_1 = '" + doc.field[ 1 ] + "' ";
|
|
}
|
|
dokuarten = "'DBERA', 'DBETR', 'DDAUE', 'DDEBD', 'DFIBU', 'DABSC', 'DLOHN', 'DLSTD', 'DSTEU', 'ABERB', 'AAURE', 'ABETR', 'ADAUR', 'AFIBA', 'AJAAA', 'AKRED', 'ALOJA', 'ALBSA', 'ASTEU'";
|
|
break;
|
|
case 1:
|
|
if ( doc.field[ 20 ] )
|
|
{
|
|
where = " and dok_dat_feld_20 = '" + doc.field[ 20 ] + "' ";
|
|
}
|
|
if ( doc.field[ 19 ] )
|
|
{
|
|
where = " and dok_dat_feld_19 = '" + doc.field[ 19 ] + "' ";
|
|
}
|
|
dokuarten = "'DKRED', 'AKRED'"
|
|
break;
|
|
case 2:
|
|
dokuarten = "'AEVAK', 'DEVDO'"
|
|
break;
|
|
|
|
}
|
|
|
|
if ( doc.field[ 21 ] )
|
|
{
|
|
where = where + " and dok_dat_feld_21 = '" + doc.field[ 21 ] + "' ";
|
|
}
|
|
|
|
where = where + " and dok_dat_feld_10 like '%" + kuerzel + "%' ";
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_10 from firmen_spezifisch where kue_dokuart in ( " + dokuarten + " ) " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_10 } );
|
|
}
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_MandantNummer" )
|
|
def WM_MandantNummer ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 1 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
def where = "";
|
|
def sqland = "";
|
|
|
|
if ( doc.field[ 2 ] )
|
|
{
|
|
where = " where clientname = '" + doc.field[ 2 ].toString().replace( "\'", "''" ) + "' ";
|
|
}
|
|
|
|
if ( doc.field[ 13 ] )
|
|
{
|
|
if ( where.length() > 0 )
|
|
{
|
|
sqland = " and ";
|
|
}
|
|
else
|
|
{
|
|
sqland = " where ";
|
|
}
|
|
where = where + sqland + " client_group_number = '" + doc.field[ 13 ] + "' ";
|
|
}
|
|
|
|
def sqlQuery = "select distinct top (10000) number from DatevClients " + where;
|
|
|
|
//d3.log.error( "SQLQUERY WM " + sqlQuery );
|
|
|
|
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://kp-sql01\\D3;databaseName=D3P_Datev", 'd3_master', 'Xbn8"Ep4', 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
|
|
|
|
def rows = sql.rows( sqlQuery );
|
|
|
|
if ( rows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( rows.collect{ it.number } );
|
|
}
|
|
|
|
sql.close();
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_MandantName" )
|
|
def WM_MandantName ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 2 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
def where = "";
|
|
def sqland = "";
|
|
|
|
if ( doc.field[ 1 ] )
|
|
{
|
|
where = " where number = '" + doc.field[ 1 ] + "' ";
|
|
}
|
|
|
|
|
|
if ( doc.field[ 13 ] )
|
|
{
|
|
if ( where.length() > 0 )
|
|
{
|
|
sqland = " and ";
|
|
}
|
|
else
|
|
{
|
|
sqland = " where ";
|
|
}
|
|
where = where + sqland + " client_group_number = '" + doc.field[ 13 ] + "' ";
|
|
}
|
|
|
|
|
|
def sqlQuery = "select distinct top (10000) clientname from DatevClients " + where;
|
|
|
|
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://kp-sql01\\D3;databaseName=D3P_Datev", 'd3_master', 'Xbn8"Ep4', 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
def rows = sql.rows( sqlQuery );
|
|
|
|
if ( rows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( rows.collect{ it.clientname } );
|
|
}
|
|
|
|
sql.close();
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_MandantGruppenNummer" )
|
|
def WM_MandantGruppenNummer ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 13 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
def where = "";
|
|
|
|
if ( doc.field[ 1 ] )
|
|
{
|
|
where = " and dok_dat_feld_1 = '" + doc.field[ 1 ] + "' ";
|
|
}
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
def mandantnr = doc.field[ 10 ].substring( 0, 5 );
|
|
where = " and dok_dat_feld_1 = '" + mandantnr + "' ";
|
|
}
|
|
|
|
// Der Mandantname wird nur mit einbezogen, wenn Mandantnummer oder Aktennummer (wo die Mandant-Nr. enthalten ist) nicht angegeben sind.
|
|
if ( ( doc.field[ 2 ] ) && ( ! ( doc.field[ 1 ] || doc.field[ 10 ] ) ) )
|
|
{
|
|
where = where + " and dok_dat_feld_2 = '" + doc.field[ 2 ].toString().replace( "\'", "''" ) + "' ";
|
|
}
|
|
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_13 from firmen_spezifisch where kue_dokuart in ( 'AMAND' ) " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_13 } );
|
|
}
|
|
else
|
|
{
|
|
reposField.provideValuesForValueSet( ['<kein>'] );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_AktenName" )
|
|
def WM_AktenName ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 21 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
def where = "";
|
|
def kuerzel = "";
|
|
|
|
def mandant_oder_kreditor;
|
|
def dokuarten;
|
|
|
|
switch ( docType.id )
|
|
{
|
|
case "DDAUE": // Dauerakte
|
|
case "AUREG":
|
|
case "AURG2":
|
|
case "AURG3":
|
|
case "AOREG":
|
|
case "AREGS":
|
|
case "ADAUR":
|
|
dokuarten = "'DDAUE', 'ADAUR'";
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "DA";
|
|
break;
|
|
case "DABSC": // Jahresabschlussakte
|
|
case "AJAAA":
|
|
case "AJAOB":
|
|
case "AJAAB":
|
|
case "AJAUR":
|
|
case "AJAU2":
|
|
dokuarten = "'DABSC', 'AJAAA'";
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "JA";
|
|
break;
|
|
case "DBERA": // Beratungsakte
|
|
case "ABERB":
|
|
case "ABERO":
|
|
case "ABERA":
|
|
case "ABEUR":
|
|
case "ABEU2":
|
|
dokuarten = "'DBERA', 'ABERB'";
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "BE";
|
|
break;
|
|
case "DSTEU": // Steuerakte
|
|
case "ASTEU":
|
|
case "ASTOR":
|
|
case "ASTRA":
|
|
case "ASTUR":
|
|
case "ASTU2":
|
|
dokuarten = "'DSTEU', 'ASTEU'";
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "ST";
|
|
break;
|
|
case "DBETR": // Betriebspruefungsakte
|
|
case "ABETR":
|
|
case "ABEPA":
|
|
case "ABEOR":
|
|
case "ABPUR":
|
|
case "ABPU2":
|
|
dokuarten = "'DBETR', 'ABETR'";
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "BP";
|
|
break;
|
|
case "DFIBU": // Fibuakte
|
|
case "AFIBA":
|
|
case "AFIOR":
|
|
case "AFIRA":
|
|
case "AFIUR":
|
|
case "AFIU2":
|
|
dokuarten = "'DFIBU', 'AFIBA'";
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "FI";
|
|
break;
|
|
case "DLOHN": // Lohnbuchhaltungjahresakte
|
|
case "ALOJA":
|
|
case "ALBOR":
|
|
case "ALBRE":
|
|
case "ALJUR":
|
|
case "ALJR2":
|
|
dokuarten = "'DLOHN', 'ALOJA'";
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "LO";
|
|
break;
|
|
case "DLSTD": // Lohnbuchhaltungsstammdatenakte
|
|
case "ALBSA":
|
|
case "ALBSO":
|
|
case "ALORE":
|
|
case "ALOUR":
|
|
case "ALBU2":
|
|
dokuarten = "'DLSTD', 'ALBSA'";
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "LS";
|
|
break;
|
|
case "DDEBD": // Ausgangsrechnungsakte
|
|
case "AAURE":
|
|
case "AAURR":
|
|
case "AAURA":
|
|
case "AAURU":
|
|
case "AAUR2":
|
|
dokuarten = "'DDEBD', 'AAURE'";
|
|
mandant_oder_kreditor = 0;
|
|
kuerzel = "RE";
|
|
break;
|
|
case "AKRED": // Kreditorenakte
|
|
case "AKROR":
|
|
case "AKRER":
|
|
case "AKREU":
|
|
case "AKRU2":
|
|
case "DKRED":
|
|
dokuarten = "'DKRED', 'AKRED'";
|
|
mandant_oder_kreditor = 1;
|
|
kuerzel = "KA";
|
|
break;
|
|
case "AEVAK": // Eigenverwaltungsakte
|
|
case "AEVOR":
|
|
case "AEVRE":
|
|
case "DEVDO":
|
|
dokuarten = "'AEVAK', 'DEVDO'";
|
|
mandant_oder_kreditor = 2;
|
|
kuerzel = "EV";
|
|
break;
|
|
}
|
|
|
|
switch ( mandant_oder_kreditor )
|
|
{
|
|
case 0:
|
|
if ( doc.field[ 2 ] )
|
|
{
|
|
where = " and dok_dat_feld_2 = '" + doc.field[ 2 ] + "' ";
|
|
}
|
|
if ( doc.field[ 1 ] )
|
|
{
|
|
where = " and dok_dat_feld_1 = '" + doc.field[ 1 ] + "' ";
|
|
}
|
|
break;
|
|
case 1:
|
|
if ( doc.field[ 20 ] )
|
|
{
|
|
where = " and dok_dat_feld_20 = '" + doc.field[ 20 ] + "' ";
|
|
}
|
|
if ( doc.field[ 19 ] )
|
|
{
|
|
where = " and dok_dat_feld_19 = '" + doc.field[ 19 ] + "' ";
|
|
}
|
|
break;
|
|
case 2:
|
|
if ( doc.field[ 21 ] )
|
|
{
|
|
where = " and dok_dat_feld_21 = '" + doc.field[ 21 ] + "' ";
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
where = where + " and dok_dat_feld_10 = '" + doc.field[ 10 ] + "' ";
|
|
}
|
|
|
|
|
|
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_21 from firmen_spezifisch where kue_dokuart in ( " + dokuarten + " ) " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_21 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_Grundstueck" )
|
|
def WM_Grundstueck ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
// Feststellen der Mandantennummer
|
|
// Feststellen der Doku-ID der Akte "04.01 Grundstücke" zu diesem Mandanten
|
|
// Ermitteln der Grundstückseinträge in dieser Akte
|
|
// Anbieten als Wertemenge
|
|
|
|
// Ohne Mandantennummer keine Werte!
|
|
def mandantnr;
|
|
|
|
if ( doc.field[ 1 ] )
|
|
{
|
|
mandantnr = doc.field[ 1 ];
|
|
}
|
|
else
|
|
{
|
|
mandantnr = doc.field[ 10 ].substring( 0, 5 );
|
|
}
|
|
//d3.log.info( "gefundene mandantnr " + mandantnr );
|
|
if ( mandantnr )
|
|
{
|
|
def sqlQuery = "select doku_id from firmen_spezifisch where kue_dokuart = 'AREGS' and dok_dat_feld_4 like '04.01 Grundst_cke' and dok_dat_feld_1 = '" + doc.field[ 1 ] + "' order by doku_id desc";
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
//d3.log.info( "resultRows size: " + resultRows.size() );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
def doku_id = resultRows[ 0 ].doku_id;
|
|
//d3.log.info( "gefundene Doku-ID " + doku_id );
|
|
sqlQuery = "select top (10000) value_char from firm_spez_mult_val where doku_id = '" + doku_id + "' and field_no = 68 ";
|
|
|
|
resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.value_char } );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_KreditorName" )
|
|
def WM_KreditorName ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 20 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
def where = "";
|
|
|
|
if ( doc.field[ 19 ] )
|
|
{
|
|
where = " and dok_dat_feld_19 = '" + doc.field[ 19 ] + "' ";
|
|
}
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
def krednr = doc.field[ 10 ].substring( 0, 5 );
|
|
where = where + " and dok_dat_feld_19 = '" + krednr + "' ";
|
|
}
|
|
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_20 from firmen_spezifisch where kue_dokuart in ( 'AKRED' ) " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_20 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_KreditorNummer" )
|
|
def WM_KreditorNummer ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 19 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
def where = "";
|
|
|
|
if ( doc.field[ 20 ] )
|
|
{
|
|
where = " and dok_dat_feld_20 = '" + doc.field[ 20 ] + "' ";
|
|
}
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
def krednr = doc.field[ 10 ].substring( 0, 5 );
|
|
where = where + " and dok_dat_feld_19 = '" + krednr + "' ";
|
|
}
|
|
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_19 from firmen_spezifisch where kue_dokuart in ( 'AKRED' ) " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_19 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_EVOberregister" )
|
|
def WM_EVOberregister ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 40 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
|
|
def where = "";
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
where = " and dok_dat_feld_10 = '" + doc.field[ 10 ] + "' ";
|
|
}
|
|
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_40 from firmen_spezifisch where kue_dokuart in ( 'AEVOR' ) " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_40 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "WM_EVRegister" )
|
|
def WM_EVRegister ( D3Interface d3, RepositoryField reposField, User user, DocumentType docType,
|
|
int rowNo, int validate, Document doc )
|
|
{
|
|
|
|
if ( user.id == "d3_server" || user.id == "d3_async" )
|
|
{
|
|
List<String> tmpList = [doc.field[ 39 ]]
|
|
reposField.provideValuesForValueSet( tmpList );
|
|
return 0;
|
|
}
|
|
|
|
def where = "";
|
|
|
|
if ( doc.field[ 10 ] )
|
|
{
|
|
where = " and dok_dat_feld_10 = '" + doc.field[ 10 ] + "' ";
|
|
}
|
|
|
|
if ( doc.field[ 40 ] )
|
|
{
|
|
where = where + " and dok_dat_feld_40 = '" + doc.field[ 40 ] + "' ";
|
|
}
|
|
|
|
|
|
|
|
def sqlQuery = "select distinct top (10000) dok_dat_feld_39 from firmen_spezifisch where kue_dokuart in ( 'AEVRE' ) " + where;
|
|
|
|
//d3.log.info( "SQLQUERY WM " + sqlQuery );
|
|
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.dok_dat_feld_39 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |