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 ////////////////////////////////////////// }