603 lines
19 KiB
Groovy
603 lines
19 KiB
Groovy
|
|
// (1) 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.Condition
|
|
import com.dvelop.d3.server.DocumentType
|
|
import groovy.sql.GroovyRowResult
|
|
|
|
import com.dvelop.d3.server.ValueSet
|
|
import com.dvelop.d3.server.RepositoryField
|
|
|
|
import java.sql.Timestamp
|
|
import java.util.Calendar
|
|
import java.text.SimpleDateFormat
|
|
|
|
// Libraries to handle the different hook types
|
|
import com.dvelop.d3.server.Entrypoint
|
|
|
|
public class proz01_prozessakte {
|
|
boolean logging = true;
|
|
|
|
private static int POS_AZ = 1;
|
|
private static int POS_Jahr = 2;
|
|
private static int POS_StatZ = 3;
|
|
private static int POS_GerichtAZ = 4;
|
|
private static int POS_Klaeger = 9;
|
|
private static int POS_Zda = 13;
|
|
private static int POS_Beklaeger = 15;
|
|
private static int POS_AusArt = 23;
|
|
private static int POS_DokGrp = 30;
|
|
private static int POS_DokTyp = 31;
|
|
private static int POS_AusDat = 51;
|
|
private static int POS_ZLM = 35;
|
|
private static int POS_LOESCHGRD = 36;
|
|
private static int POS_GADRESSE = 33;
|
|
private static int POS_Gericht = 20;
|
|
private static int POS_DOKIDORG = 10;
|
|
private static int POS_DOKDAT = 55;
|
|
// Feldpostitionen Adressverwaltung
|
|
private static int POS_FFOE = 2;
|
|
private static int POS_Name = 9;
|
|
private static int POS_Strasse = 21;
|
|
private static int POS_Hnr = 29;
|
|
private static int POS_Plz = 24;
|
|
private static int POS_Ort = 25;
|
|
|
|
private static String WM_TRENNZEICHEN = ";";
|
|
|
|
// Variablen - Aufbewahrungsfristen (in Jahren)
|
|
private static int FRIST_AUSSONDERUNG = 10; // 10 Jahre
|
|
private static int STATUS_ZDA = 0;
|
|
private static int NEUES_AZ = 0;
|
|
private static int CHANGE_GERICHT = 0;
|
|
|
|
// Datenbanktabelle
|
|
private static String TB_DokGrpTyp = "DV_PROZ_Doktyp";
|
|
|
|
private static String G01_DS_PROZESSA = "APROZ";
|
|
private static String G01_DS_PROZESSD = "DPROZ";
|
|
private static String G01_DS_ORGANI = "DPROZ";
|
|
|
|
|
|
// Offenbar eigentlich zentral abzulegen
|
|
|
|
private static String G01_STR_JA = "Ja";
|
|
private static String G01_STR_NEIN = "Nein";
|
|
|
|
|
|
@Entrypoint( entrypoint = "hook_insert_entry_10" )
|
|
public int hook_insert_entry_10(D3Interface d3, User user, DocumentType docType, Document doc)
|
|
{
|
|
|
|
!logging ?: d3.log.info(" hook_insert_entry_10: Anfang")
|
|
proz01_split_AZ( 1, doc, d3 );
|
|
proz01_split_Gericht( doc, d3 );
|
|
!logging ?: d3.log.info(" hook_insert_entry_10: Ende")
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
@Entrypoint( entrypoint = "hook_insert_exit_10" )
|
|
public int hookInsertExit10 (D3Interface d3, Document doc, String fileDestination, Integer importOk, User user, DocumentType docType)
|
|
{
|
|
!logging ?: d3.log.info("START | hookInsertExit10 ");
|
|
|
|
if ( docType == G01_DS_PROZESSA )
|
|
{
|
|
proz01_fill_AZ_Nummer( 0, doc, d3 );
|
|
}
|
|
|
|
|
|
!logging ?: d3.log.info("ENDE | hookInsertExit10 ");
|
|
return 0;
|
|
}
|
|
|
|
|
|
@Entrypoint( entrypoint = "hook_upd_attrib_entry_20" )
|
|
public int hookUpdAttribEntry20(D3Interface d3, Document doc, User user, DocumentType docType, DocumentType docTypeNew)
|
|
{
|
|
d3.log.info("START | hookUpdAttribEntry20")
|
|
|
|
// temporäres Objekt holen, um zu prüfen, das sich Eigenschaften geändert haben
|
|
def oldDocAttributes = d3.archive.getDocument(doc.id());
|
|
//d3.log.error( "1 Dokumentart: " + docType.id() );
|
|
//d3.log.error( "1 Gericht (" + POS_Gericht + "): " + doc.field[ POS_Gericht ] + " ll " + oldDocAttributes.field[ POS_Gericht ] );
|
|
//d3.log.error( "1 Adresse (" + POS_GADRESSE + "): " + doc.field[ POS_GADRESSE ] + " ll " + oldDocAttributes.field[ POS_GADRESSE ] );
|
|
|
|
if ( docType.id() == G01_DS_ORGANI )
|
|
{
|
|
if ( doc.field[ POS_Name ] != oldDocAttributes.field[ POS_Name ] )
|
|
{
|
|
CHANGE_GERICHT = 1;
|
|
}
|
|
|
|
if ( doc.field[ POS_Strasse ] != oldDocAttributes.field[ POS_Strasse ] )
|
|
{
|
|
CHANGE_GERICHT = 1;
|
|
}
|
|
|
|
if ( doc.field[ POS_Hnr ] != oldDocAttributes.field[ POS_Hnr ] )
|
|
{
|
|
CHANGE_GERICHT = 1;
|
|
}
|
|
|
|
if ( doc.field[ POS_Plz ] != oldDocAttributes.field[ POS_Plz ] )
|
|
{
|
|
CHANGE_GERICHT = 1;
|
|
}
|
|
|
|
if ( doc.field[ POS_Ort ] != oldDocAttributes.field[ POS_Ort ] )
|
|
{
|
|
CHANGE_GERICHT = 1;
|
|
}
|
|
|
|
d3.log.error( "hookUpdAttribEntry20 " + CHANGE_GERICHT );
|
|
|
|
}
|
|
else
|
|
{
|
|
proz01_split_AZ( 1, doc, d3 );
|
|
proz01_split_Gericht( doc, d3 );
|
|
|
|
if ( doc.field[ POS_Zda ] != oldDocAttributes.field[ POS_Zda ] )
|
|
{
|
|
STATUS_ZDA = 1;
|
|
}
|
|
|
|
// Wenn das Feld zum Löschen markiert auf Ja gesetzt wurde, überprüfe ob beim Löschgrund etwas eingetragen wurde. Falls nicht, gebe eine Fehlermeldung aus.
|
|
// Wenn das Feld zum Löschen markiert auf Nein gesetzt wurde, dann leere das Feld Löschgrund
|
|
|
|
if ( doc.field[ POS_ZLM ] != oldDocAttributes.field[ POS_ZLM ] )
|
|
{
|
|
if ( doc.field[ POS_ZLM ] == G01_STR_JA )
|
|
{
|
|
if ( doc.field[ POS_LOESCHGRD ] == "" )
|
|
{
|
|
return -403;
|
|
}
|
|
}
|
|
else if ( doc.field[ POS_ZLM ] == G01_STR_NEIN )
|
|
{
|
|
doc.field[ POS_LOESCHGRD ] = "";
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( ( docType.id() == G01_DS_PROZESSA ) && ( doc.field[ POS_Jahr ] != oldDocAttributes.field[ POS_Jahr ] ) )
|
|
{
|
|
NEUES_AZ = 1;
|
|
}
|
|
|
|
d3.log.error( "2 Dokumentart: " + docType.id() );
|
|
d3.log.error( "2 Gericht (" + POS_Gericht + "): " + doc.field[ POS_Gericht ] + " ll " + oldDocAttributes.field[ POS_Gericht ] );
|
|
d3.log.error( "2 Adresse (" + POS_GADRESSE + "): " + doc.field[ POS_GADRESSE ] + " ll " + oldDocAttributes.field[ POS_GADRESSE ] );
|
|
|
|
if ( ( docType.id() == G01_DS_PROZESSA ) && ( ( doc.field[ POS_Gericht ] != oldDocAttributes.field[ POS_Gericht ] ) || ( doc.field[ POS_GADRESSE ] != oldDocAttributes.field[ POS_GADRESSE ] ) ) )
|
|
{
|
|
def sqlQuery = "SELECT dok_dat_feld_" + POS_Name + " POS_Name, dok_dat_feld_" + POS_Strasse + " POS_Strasse, dok_dat_feld_" + POS_Hnr + " POS_Hnr, dok_dat_feld_" + POS_Plz + " POS_Plz, dok_dat_feld_" + POS_Ort + " POS_Ort FROM firmen_spezifisch WHERE kue_dokuart = 'AAORG' AND dok_dat_feld_" + POS_Name + " = '" + doc.field[POS_Gericht] + "'";
|
|
|
|
def ergebnis = d3.sql.executeAndGet( sqlQuery );
|
|
//d3.log.error( "Name: " + ergebnis[ 0 ].POS_Name );
|
|
//d3.log.error( "POS_Strasse: " + ergebnis[ 0 ].POS_Strasse );
|
|
//d3.log.error( "POS_Hnr: " + ergebnis[ 0 ].POS_Hnr );
|
|
//d3.log.error( "POS_Plz: " + ergebnis[ 0 ].POS_Plz );
|
|
//d3.log.error( "POS_Ort: " + ergebnis[ 0 ].POS_Ort );
|
|
|
|
|
|
|
|
|
|
if ( ( ergebnis[ 0 ].POS_Name == "" ) || ( ergebnis[ 0 ].POS_Strasse == "" ) || ( ergebnis[ 0 ].POS_Hnr == "" ) || ( ergebnis[ 0 ].POS_Plz == "" ) || ( ergebnis[ 0 ].POS_Ort == "" ) )
|
|
{
|
|
//Gerichtsdaten nicht gepflegt! Bitte in der Organisation pflegen.
|
|
return -569;
|
|
}
|
|
|
|
def Gerichtsadresse = ergebnis[ 0 ].POS_Strasse + " " + ergebnis[ 0 ].POS_Hnr + ", " + ergebnis[ 0 ].POS_Plz + " " + ergebnis[ 0 ].POS_Ort;
|
|
|
|
if ( Gerichtsadresse != doc.field[ POS_GADRESSE ] )
|
|
{
|
|
//Gerichtsadresse entspricht nicht dem aktuell ausgewählten Gericht!
|
|
return -570;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d3.log.info("ENDE | hookUpdAttribEntry20")
|
|
return 0;
|
|
}
|
|
|
|
|
|
@Entrypoint( entrypoint = "hook_upd_attrib_exit_20" )
|
|
public int hookUpdAttribExit20(D3Interface d3, Document doc, Integer errorCode, User user, DocumentType docType, DocumentType docTypeOld)
|
|
{
|
|
d3.log.info("START | hookUpdAttribExit20 ")
|
|
|
|
def strZDA, strDatum;
|
|
|
|
if ( ( NEUES_AZ == 1 ) && ( docType != G01_DS_ORGANI ) )
|
|
{
|
|
NEUES_AZ = 0;
|
|
proz01_fill_AZ_Nummer( doc, d3, 1 );
|
|
}
|
|
|
|
|
|
|
|
if ( ( STATUS_ZDA == 1 ) && ( docType != G01_DS_ORGANI ) )
|
|
{
|
|
STATUS_ZDA = 0;
|
|
|
|
if ( doc.field[ POS_Zda ] == G01_STR_JA )
|
|
{
|
|
strZDA = G01_STR_JA;
|
|
strDatum = proz01_getAussonderungsdatum( FRIST_AUSSONDERUNG );
|
|
}
|
|
else
|
|
{
|
|
if ( doc.field[ POS_Zda ] == G01_STR_NEIN )
|
|
{
|
|
strZDA = G01_STR_NEIN;
|
|
strDatum = "";
|
|
}
|
|
|
|
}
|
|
|
|
// hier wird das docSearchCreate übernommen; dafür gibt es aber aktuell keine Entsprechung in Groovy.
|
|
// das wird in Groovy direkt umgesetzt; d.h. man macht das manuell, was der JPL-Massenänderungs-Code en gros macht:
|
|
|
|
def massen_sql = "select doku_id from firmen_spezifisch where ( kue_dokuart = '" + G01_DS_PROZESSA + "' or kue_dokuart = '" + G01_DS_PROZESSD + "' ) and dok_dat_feld_" + POS_AZ + " = '" + doc.field(POS_AZ) + "'";
|
|
|
|
def massen_ergebnis = d3.sql.executeAndGet( massen_sql );
|
|
|
|
if ( massen_ergebnis.size() > 0 )
|
|
{
|
|
int i;
|
|
for ( i = 0 ; i < massen_ergebnis.size(); i++ )
|
|
{
|
|
def updateDoc = d3.archive.getDocument( massen_ergebnis[ i ].doku_id );
|
|
|
|
updateDoc.field[ POS_Zda ] = strZDA;
|
|
updateDoc.field[ POS_AusDat ] = strDatum;
|
|
updateDoc.field[ POS_AusArt ] = doc.field[ POS_AusArt ];
|
|
updateDoc.updateAttributes( "Master" );
|
|
}
|
|
}
|
|
|
|
if ( CHANGE_GERICHT == 1 && docType == G01_DS_ORGANI )
|
|
{
|
|
CHANGE_GERICHT = 0;
|
|
|
|
def m_sql2 = "SELECT dok_dat_feld_" + POS_Name + " name, dok_dat_feld_" + POS_Strasse + " strasse, dok_dat_feld_" + POS_Hnr + " hnr, dok_dat_feld_" + POS_Plz + " plz, dok_dat_feld_" + POS_Ort + " ort FROM firmen_spezifisch WHERE kue_dokuart = 'AAORG' AND doku_id = '" + doc.id + "'";
|
|
|
|
def me2 = d3.sql.executeAndGet( m_sql2 );
|
|
|
|
if ( me2.size() == 1 )
|
|
{
|
|
def strGAdresse = me2[ 0 ].strasse + " " + me2[ 0 ].hnr + " " + me2[ 0 ].plz + " " + me2[ 0 ].ort;
|
|
|
|
m_sql3 = "select doku_id from firmen_spezifisch where kue_dokuart = '" + G01_DS_PROZESSA + "' and dok_dat_feld_" + POS_DOKIDORG + " = '" + doc.id + "'";
|
|
|
|
def me3 = d3.sql.executeAndGet( m_sql1 );
|
|
|
|
if ( me3.size() > 0 )
|
|
{
|
|
def ud2 = d3.archive.getDocument( me3[ i ].doku_id );
|
|
|
|
ud2.field[ POS_GADRESSE ] = strGAdresse;
|
|
ud2.field[ POS_Gericht ] = me2[ 0 ].name;
|
|
|
|
ud2.updateAttributes( "Master" );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
d3.log.info("ENDE | hookUpdAttribExit20 ")
|
|
return 0;
|
|
}
|
|
|
|
|
|
@Entrypoint( entrypoint = "hook_validate_update_entry_10" )
|
|
public int hookValidateUpdateEntry10(D3Interface d3, User user, DocumentType docType, Document doc, String nextcall) {
|
|
d3.log.error("START | hookValidateUpdateEntry10 ");
|
|
|
|
proz01_split_AZ( 1, doc, d3 );
|
|
proz01_split_Gericht( doc, d3 );
|
|
|
|
d3.log.error("ENDE | hookValidateUpdateEntry10 ");
|
|
return 0;
|
|
}
|
|
|
|
|
|
@Entrypoint( entrypoint = "hook_search_entry_10" )
|
|
public int hookSearchEntry10(D3Interface d3, User user, DocumentType docType, Document searchContext) {
|
|
d3.log.error("START | hookSearchEntry10 ");
|
|
|
|
proz01_split_AZ( 0, searchContext, d3 );
|
|
proz01_split_Gericht( searchContext, d3 );
|
|
|
|
d3.log.error("ENDE | hookSearchEntry10 ");
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////
|
|
// Wertemengenhooks
|
|
///////////////////////////////////////
|
|
|
|
|
|
@ValueSet( entrypoint = "proz01_fill_Klaeger" )
|
|
def proz01_fill_Klaeger( D3Interface d3, RepositoryField reposField, User user, DocumentType docType, int rowNo, int validate, Document doc )
|
|
{
|
|
def where = "";
|
|
|
|
if ( doc.field[ POS_Klaeger ] != null )
|
|
{
|
|
if ( doc.field[ POS_Klaeger ].length() >= 3 )
|
|
{
|
|
where = " AND (dok_dat_feld_" + POS_AZ + " LIKE '%" + doc.field[ POS_Klaeger ] + "%' OR dok_dat_feld_" + POS_Klaeger + " LIKE '%" + doc.field[ POS_Klaeger ] + "%')";
|
|
}
|
|
}
|
|
|
|
def sqlStatement = "SELECT DISTINCT top 1000 dok_dat_feld_" + POS_AZ + " feld_1, dok_dat_feld_" + POS_Klaeger + " feld_2, dok_dat_feld_" + POS_GerichtAZ + " feld_3 FROM firmen_spezifisch WHERE kue_dokuart = '" + G01_DS_PROZESSA + "' " + where;
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlStatement );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.feld_1 + ";" + it.feld_2 + ";" + it.feld_3 } );
|
|
}
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "proz01_fill_Beklagter" )
|
|
def proz01_fill_Beklagter( D3Interface d3, RepositoryField reposField, User user, DocumentType docType, int rowNo, int validate, Document doc )
|
|
{
|
|
def where = "";
|
|
|
|
if ( doc.field[ POS_Beklaeger ] != null )
|
|
{
|
|
if ( doc.field[ POS_Beklaeger ].length() >= 3 )
|
|
{
|
|
where = " AND (dok_dat_feld_" + POS_Beklaeger + " LIKE '%" + doc.field[ POS_Beklaeger ] + "%' )";
|
|
}
|
|
}
|
|
|
|
def sqlStatement = "SELECT DISTINCT top 1000 dok_dat_feld_" + POS_Beklaeger + " feld_1 FROM firmen_spezifisch WHERE kue_dokuart = '" + G01_DS_PROZESSA + "'" + where;
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlStatement );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.feld_1 } );
|
|
}
|
|
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "proz01_WM_DOKGRP" )
|
|
def proz01_WM_DOKGRP( D3Interface d3, RepositoryField reposField, User user, DocumentType docType, int rowNo, int validate, Document doc )
|
|
{
|
|
def where = "";
|
|
|
|
if ( ( doc.field[ POS_DokTyp ] != "" ) && ( doc.field[ POS_DokTyp ] != null ) && ( doc.field[ POS_DokTyp ] != "null" ) )
|
|
{
|
|
where = " where Dokumenttyp = '" + doc.field[ POS_DokTyp ] + "'";
|
|
}
|
|
|
|
def sqlStatement = "select distinct Dokumentgruppe from " + TB_DokGrpTyp;
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlStatement );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.Dokumentgruppe } );
|
|
}
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "proz01_WM_DOKTYP" )
|
|
def proz01_WM_DOKTYP( D3Interface d3, RepositoryField reposField, User user, DocumentType docType, int rowNo, int validate, Document doc )
|
|
{
|
|
def where = "";
|
|
|
|
if ( ( doc.field[ POS_DokGrp ] != "" ) && ( doc.field[ POS_DokGrp ] != null ) && ( doc.field[ POS_DokGrp ] != "null" ) )
|
|
{
|
|
where = " where Dokumentgruppe = '" + doc.field[ POS_DokGrp ] + "'";
|
|
}
|
|
|
|
def sqlStatement = "select distinct Dokumenttyp from " + TB_DokGrpTyp + where;
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlStatement );
|
|
|
|
d3.log.error( sqlStatement );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.Dokumenttyp } );
|
|
}
|
|
}
|
|
|
|
|
|
@ValueSet( entrypoint = "proz01_getGericht" )
|
|
def proz01_getGericht( D3Interface d3, RepositoryField reposField, User user, DocumentType docType, int rowNo, int validate, Document doc )
|
|
{
|
|
def where = "";
|
|
|
|
if ( doc.field[ POS_Gericht ] != null )
|
|
{
|
|
if ( doc.field[ POS_Gericht ].length() >= 3 )
|
|
{
|
|
where = " AND dok_dat_feld_" + POS_Name + " LIKE '%:" + doc.field[ POS_Gericht ] + "%' ";
|
|
}
|
|
}
|
|
|
|
def sqlQuery = "SELECT fs.dok_dat_feld_" + POS_Name + " feld_1, fs.dok_dat_feld_" + POS_Strasse + " feld_2, fs.dok_dat_feld_" + POS_Hnr + " feld_3, fs.dok_dat_feld_" + POS_Plz + " feld_4, fs.dok_dat_feld_" + POS_Ort + " feld_5, fs.doku_id \
|
|
FROM firmen_spezifisch fs \
|
|
LEFT JOIN benutzergruppen gruppe \
|
|
ON gruppe.benutzergruppe = fs.dok_dat_feld_" + POS_FFOE + " \
|
|
Left JOIN benutzer_in_gruppe bInGrp \
|
|
ON gruppe.gruppen_id = bInGrp.benutzergruppe \
|
|
WHERE fs.kue_dokuart = 'AAORG' AND (bInGrp.benutzername = '" + user + "' OR fs.dok_dat_feld_" + POS_FFOE + " IS NULL) " + where;
|
|
|
|
|
|
def resultRows = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
if ( resultRows.size() > 0 )
|
|
{
|
|
reposField.provideValuesForValueSet( resultRows.collect{ it.feld_1 + "|" + it.feld_2 + "|" + it.feld_3 + "|" + it.feld_4 + "|" + it.feld_5 + "|" + it.doku_id } );
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////
|
|
// Arbeitsfunktionen
|
|
///////////////////////////////////////
|
|
|
|
|
|
//////////////////// proz01_split_AZ /////////////////////////////////////////////////
|
|
// Funktion zum Aufteilen des Feldes Aktenzeichen nach AZ;Klaeger;Gerichtszeichen
|
|
// und fuellen in die jeweiligen Felder
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
public void proz01_split_AZ( int NotSearch, Document doc, D3Interface d3 )
|
|
{
|
|
def strKlaeger = doc.field[ POS_Klaeger ].toString();
|
|
|
|
if ( strKlaeger != null )
|
|
{
|
|
def erg = strKlaeger.tokenize( WM_TRENNZEICHEN );
|
|
|
|
if ( erg.size() > 2 )
|
|
{
|
|
doc.field[ POS_Klaeger ] = "";
|
|
doc.field[ POS_AZ ] = erg[ 0 ];
|
|
|
|
if ( NotSearch == 1 )
|
|
{
|
|
doc.field[ POS_Klaeger ] = erg[ 1 ];
|
|
doc.field[ POS_GerichtAZ ] = erg[ 2 ];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////// proz01_fill_AZ_Nummer //////////////////////////////////////
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
public void proz01_fill_AZ_Nummer( Document doc, D3Interface d3, int update )
|
|
{
|
|
|
|
def treffer;
|
|
def strNummer;
|
|
|
|
if ( update == 0 )
|
|
{
|
|
def sqlQuery = "SELECT TOP (1) right(dok_dat_feld_" + POS_AZ + ", 4) + 1 nummero_uno from firmen_spezifisch WHERE kue_dokuart = '" + G01_DS_PROZESSA + "' ORDER BY right(dok_dat_feld_" + POS_AZ +" ,4) DESC ";
|
|
|
|
treffer = d3.sql.executeAndGet( (String) sqlQuery );
|
|
|
|
strNummer = doc.field[ POS_Jahr ] + "-" + (String) treffer[ 0 ].nummero_uno.padLeft( 4, '0' );
|
|
|
|
}
|
|
else
|
|
{
|
|
if ( update == 1 )
|
|
{
|
|
if ( doc.field[ POS_AZ ] != null )
|
|
{
|
|
def docfield_pos_az = doc.field[ POS_AZ ].toString();
|
|
|
|
def tok = docfield_pos_az.tokenize( "-" );
|
|
if ( tok.size() > 1 )
|
|
{
|
|
strNummer = doc.field[ POS_Jahr ] + "-" + tok.get(2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
def currentDoc = d3.archive.getDocument( doc.id );
|
|
currentDoc.field[ POS_AZ ] = strNummer;
|
|
currentDoc.updateAttributes( "Master" );
|
|
|
|
// Update-Call returniert nichts definitiv Verwertbares, daher wird keine Logmeldung ausgegeben (anders als im JPL-Code).
|
|
|
|
}
|
|
|
|
|
|
|
|
//////////////////// l01_split_Gericht /////////////////////////////////////////////////
|
|
// Funktion zum Aufteilen des Felds Aktenzeichen nach AZ;Klaeger;Gerichtszeichen
|
|
// und fuellen in die jeweiligen Felder
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
public void proz01_split_Gericht( Document doc, D3Interface d3 )
|
|
{
|
|
def strGericht = doc.field[ POS_Gericht ].toString();
|
|
|
|
if ( strGericht != null )
|
|
{
|
|
def erg = strGericht.tokenize( "|" );
|
|
|
|
if ( erg.size() > 1 )
|
|
{
|
|
doc.field[ POS_Gericht ] = erg[ 0 ];
|
|
doc.field[ POS_GADRESSE ] = erg[ 1 ] + " " + erg[ 2 ] + ", " + erg[ 3 ] + " " + erg[ 4 ];
|
|
doc.field[ POS_DOKIDORG ] = erg[ 5 ];
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//////////////////// proz01_getAussonderungsdatum /////////////////////////////////////////////////
|
|
// Liefert das Aussonderungsdatum anhand einer Frist
|
|
// Parameter: iFrist - Aufbewahrungsfrist
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
public String proz01_getAussonderungsdatum( String iFrist )
|
|
{
|
|
def ergebnis = "";
|
|
|
|
Date date = new Date();
|
|
|
|
int dateYear = date.format( "yyyy" );
|
|
|
|
ergebnis = dateYear + iFrist;
|
|
|
|
return "31.12." + ergebnis;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|