Files
d.velop/Bewital/30_sets.groovy
2025-12-08 14:08:05 +01:00

444 lines
12 KiB
Groovy

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;
import com.dvelop.d3.server.ValueSet;
import com.dvelop.d3.server.ValueSetTranslation;
import com.dvelop.d3.server.RepositoryField;
import com.dvelop.d3.server.UserGroup
import com.dvelop.d3.server.UserOrUserGroup
import com.dvelop.d3.server.Translation;
public class Wertemenge
{
@ValueSet(entrypoint="AbteilungenVertragsmanagement")
def getAbteilungVM(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document attribContext)
{
d3.log.info("Start getAbteilungVertragsmanagement");
def mandant = attribContext.field[65][row_no];
def wm
if(mandant == "BEWITAL agri GmbH & Co. KG")
{
wm = 11
}
else if(mandant == "BEWITAL petfood GmbH & Co. KG")
{
wm = 12
}
else if(mandant == "BEWITAL Holding GmbH & Co. KG")
{
wm = 18
}
else if(mandant == "BEWITAL Petfood Vertrieb Ost GmbH & Co.KG")
{
wm = 19
}
else if(mandant == "Lipox GmbH & Co. KG")
{
wm = 20
}
def sqlParams = [wm];
def h_sqlquery = "SELECT value_char_allowed AS Wert FROM doc_field_values WHERE predef_value_id = ?"
def resultRows = null;
if(mandant != null && mandant != "")
{
resultRows = d3.sql.executeAndGet( h_sqlquery , sqlParams);
if(resultRows != null && resultRows.size() > 0)
{
repoField.provideValuesForValueSet( resultRows.collect{ it.Wert } );
}
else
{
d3.log.info("Keine SQL Ergebnisse");
}
}
else
{
d3.log.info("Keine Mandant ausgewaehlt.");
}
d3.log.info("Ende getAbteilungVertragsmanagement");
}
@ValueSet(entrypoint="KategorieZuVertragstyp")
def getKategorieVM(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document attribContext)
{
d3.log.info("Start getKategorieVM");
def vertragstyp = attribContext.field[5];
d3.log.info("Vertragstyp: $vertragstyp-")
def wm
if(vertragstyp == "Handelvertretung")
{
wm = 21
}
else if(vertragstyp.equals("Großhandelsvertrag DE."))
{
wm = 22
}
else if(vertragstyp.equals("Großhandelsvertrag Int."))
{
wm = 23
}
else if(vertragstyp == "Versicherungen")
{
wm = 24
}
else if(vertragstyp == "Markenrecht")
{
wm = 25
}
else if(vertragstyp == "Produktregistrierung")
{
wm = 26
}
else if(vertragstyp == "Vertrieb")
{
wm = 27
}
else if(vertragstyp == "Mietvertrag")
{
wm = 28
}
else if(vertragstyp == "Kaufvertrag")
{
wm = 29
}
else if(vertragstyp == "Wartungsvertrag")
{
wm = 30
}
else if(vertragstyp == "Dienstleistungsvertrag")
{
wm = 31
}
else if(vertragstyp == "Pachtvertrag/Erbbaurecht")
{
wm = 32
}
else if(vertragstyp == "Zertifizierungsvertrag")
{
wm = 33
}
else if(vertragstyp == "Lizenzvertrag")
{
wm = 34
}
else if(vertragstyp == "Listungsvertrag")
{
wm = 35
}
else if(vertragstyp == "Systemvertrag")
{
wm = 36
}
else if(vertragstyp == "Siegelnutzungsvertrag")
{
wm = 37
}
else if(vertragstyp == "Geheimhaltungsvereinbarung")
{
wm = 38
}
else if(vertragstyp == "Sponsoring/Werbung")
{
wm = 39
}
else if(vertragstyp == "Kreditvertrag")
{
wm = 40
}
else if(vertragstyp == "Lieferantenvertrag")
{
wm = 41
}
else if(vertragstyp == "Auftragsdatenverarbeitung")
{
wm = 42
}
else if(vertragstyp == "Bau-/Werkvertrag")
{
wm = 43
}
else if(vertragstyp == "Energieversorgung")
{
wm = 44
}
else if(vertragstyp == "Mitgliedschaften")
{
wm = 45
}
else if(vertragstyp == "Verpflichtungsvertrag")
{
wm = 46
}
else if(vertragstyp == "Sonstiges/Mischvertrag")
{
wm = 47
}
else if(vertragstyp == "Gesellschaftsvertrag")
{
wm = 48
}
else if(vertragstyp == "Migration")
{
wm = 50
}
else
{
d3.log.warn("Es konnte keine Vertragstyp gefunden werden.")
}
def sqlParams = [wm];
def h_sqlquery = "SELECT value_char_allowed AS Wert FROM doc_field_values WHERE predef_value_id = ?"
def resultRows = null;
if(vertragstyp != null && vertragstyp != "")
{
resultRows = d3.sql.executeAndGet( h_sqlquery , sqlParams);
if(resultRows != null && resultRows.size() > 0)
{
repoField.provideValuesForValueSet( resultRows.collect{ it.Wert } );
}
else
{
d3.log.info("Keine SQL Ergebnisse");
}
}
else
{
repoField.provideValuesForValueSet( "Bitte zuerst einen Mandant wählen." );
}
d3.log.info("Ende getAbteilungVertragsmanagement");
}
@ValueSet(entrypoint="getReadAccessVM")
def getReadAccessVM(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document attribContext)
{
d3.log.info("Start getReasAccessVM");
d3.getArchive().removeTranslationFromCache("getReadAccessVM", new Locale("de"));
def userGroup = d3.archive.getUserGroup("VM_Vererbt");
d3.log.info( "Show group information for: " + userGroup.name );
def userList = [];
userGroup.getMembers(UserGroup.MemberType.RECURSIVE).each { userOrGroup ->
try
{
userList.add(userOrGroup.getUser().getEmail() )
}
catch(Exception ex)
{
d3.log.error("Fehler: Beim Auslesen der E-Mail Adresse des Benutzers ist es zu einem Fehler gekommen. " + ex)
}
}
if( userList.size() > 0 )
{
repoField.provideValuesForValueSet( userList );
}
}
@ValueSetTranslation(entrypoint="getReadAccessVM")
def getReadAccessVMTranslated(D3Interface d3, Translation transl)
{
d3.log.info("getReasAccessVM translated WM starts");
def userGroup = d3.archive.getUserGroup("VM_Vererbt");
userGroup.getMembers(UserGroup.MemberType.RECURSIVE).each { userOrGroup ->
try
{
transl.set(userOrGroup.getUser().getEmail(), userOrGroup.defaultName);
}
catch(Exception ex)
{
d3.log.error("Fehler: Beim Auslesen der Übersetzen des Benutzernamen." + ex)
}
}
d3.log.info("getReasAccessVM translated WM starts");
}
//////////////////////////////////////////
// Wertemengen für die Filer-Ablösung calb/d.velop 2025.12.08 START
@ValueSet(entrypoint="WM_Auftragsnummer")
def WM_Auftragsnummer(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document doc)
{
d3.log.info("Start WM_Auftragsnummer");
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://sql.adbewital.local;databaseName=" + "D3T_shared", "d3db_master", "D.velop!db", 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
def where = "";
if ( doc.field[ 2 ] )
{
if ( doc.field[ 2 ].indexOf( "|" ) > 0 )
{
def werte = doc.field[ 2 ].tokenize( "|" );
if ( werte[ 0 ].length() > 0 )
{
where = " where customer_no = '" + werte[ 0 ].trim() + "'";
}
}
else
{
where = " where customer_no = '" + doc.field[ 2 ] + "'";
}
}
def sqlquery = "SELECT distinct order_no from bw_customer_order " + where;
def resultRows = null;
resultRows = sql.rows( sqlquery );
if(resultRows != null && resultRows.size() > 0)
{
repoField.provideValuesForValueSet( resultRows.collect{ it.order_no } );
}
else
{
d3.log.warn("WM_Auftragsnummer: Keine SQL Ergebnisse");
}
}
@ValueSet(entrypoint="WM_Kundennummer")
def WM_Kundennummer(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document doc)
{
d3.log.info("Start WM_Kundennummer");
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://sql.adbewital.local;databaseName=" + "D3T_shared", "d3db_master", "D.velop!db", 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
def sqlquery = "SELECT distinct customer_no + ' | ' + customer_name + ' | ' + customer_country as liste from bw_customer_data";
def resultRows = null;
resultRows = sql.rows( sqlquery );
if(resultRows != null && resultRows.size() > 0)
{
repoField.provideValuesForValueSet( resultRows.collect{ it.liste } );
}
else
{
d3.log.warn("WM_Kundennummer: Keine SQL Ergebnisse");
}
}
@ValueSet(entrypoint="WM_Artikelnummer")
def WM_Artikelnummer(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document doc)
{
d3.log.info("Start WM_Artikelnummer");
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://sql.adbewital.local;databaseName=" + "D3T_shared", "d3db_master", "D.velop!db", 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
def sqlquery = "SELECT distinct article_no + ' | ' + article_description as liste from bw_article_data";
def resultRows = null;
resultRows = sql.rows( sqlquery );
if(resultRows != null && resultRows.size() > 0)
{
repoField.provideValuesForValueSet( resultRows.collect{ it.liste } );
}
else
{
d3.log.warn("WM_Artikelnummer: Keine SQL Ergebnisse");
}
}
@ValueSet(entrypoint="WM_Marke")
def WM_Marke(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document doc)
{
d3.log.info("Start WM_Marke");
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://sql.adbewital.local;databaseName=" + "D3T_shared", "d3db_master", "D.velop!db", 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
def sqlquery = "SELECT distinct brand as liste from bw_brand";
def resultRows = null;
resultRows = sql.rows( sqlquery );
if(resultRows != null && resultRows.size() > 0)
{
repoField.provideValuesForValueSet( resultRows.collect{ it.liste } );
}
else
{
d3.log.warn("WM_Marke: Keine SQL Ergebnisse");
}
}
@ValueSet(entrypoint="WM_Sortiment")
def WM_Sortiment(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document doc)
{
d3.log.info("Start WM_Sortiment");
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://sql.adbewital.local;databaseName=" + "D3T_shared", "d3db_master", "D.velop!db", 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
def sqlquery = "SELECT distinct assortment as liste from bw_brand";
def resultRows = null;
resultRows = sql.rows( sqlquery );
if(resultRows != null && resultRows.size() > 0)
{
repoField.provideValuesForValueSet( resultRows.collect{ it.liste } );
}
else
{
d3.log.warn("WM_Sortiment: Keine SQL Ergebnisse");
}
}
@ValueSet(entrypoint="WM_Mandant")
def WM_Mandant(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document doc)
{
d3.log.info("Start WM_Mandant");
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://sql.adbewital.local;databaseName=" + "D3T_shared", "d3db_master", "D.velop!db", 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
def sqlquery = "SELECT distinct company_no + ' | ' + company_name as liste from bw_company";
def resultRows = null;
resultRows = sql.rows( sqlquery );
if(resultRows != null && resultRows.size() > 0)
{
repoField.provideValuesForValueSet( resultRows.collect{ it.liste } );
}
else
{
d3.log.warn("WM_Mandant: Keine SQL Ergebnisse");
}
}
@ValueSet(entrypoint="WM_Vertreter")
def WM_Vertreter(D3Interface d3, RepositoryField repoField, User user, DocumentType docType, Integer row_no, Integer validate, Document doc)
{
d3.log.info("Start WM_Vertreter");
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://sql.adbewital.local;databaseName=" + "D3T_shared", "d3db_master", "D.velop!db", 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
def sqlquery = "SELECT distinct representative_no + ' | ' + representative_name as liste from bw_representative";
def resultRows = null;
resultRows = sql.rows( sqlquery );
if(resultRows != null && resultRows.size() > 0)
{
repoField.provideValuesForValueSet( resultRows.collect{ it.liste } );
}
else
{
d3.log.warn("WM_Vertreter: Keine SQL Ergebnisse");
}
}
// Wertemengen für die Filer-Ablösung calb/d.velop 2025.12.08 ENDE
//////////////////////////////////////////
}