



//////////////////////////////////
//
// Zeichnungs-Nummern ändern
//
// geschrieben von calb / 2018.06.15
//
// (c) d.velop AG 2018
//
//////////////////////////////////


//////////////////////////////////
//
// Dieses Skript passt die Zeichnungs-Nummern von Verträgen an.
//
vars vers = "0.1 calb d.AG/PS 2018.06.15 Initialversion"
//
//////////////////////////////////

// Konfiguration


// debug = 1 => es werden keine Änderungen an der DB durchgeführt
// debug = 0 => es werden Änderungen an der DB durchgeführt
vars debug = 0

//////////////////////////////////


call bkklog( 4, "*********************************************" )
call bkklog( 4, "* BKKFC_zeich_nr_aendern.jpl                *" )
call bkklog( 4, "* calb/d.velop AG 15.06.2018                *" )
call bkklog( 4, "*********************************************" )
call bkklog( 4, "* " ## vers )
call bkklog( 4, "* DEBUG           : " ## debug )

// Los geht's ......

call bkklog( 4, "*********************************************" )
///////////////////////////////////////////////////////////////////////



vars l_doku_id[ 1000 ]
vars anzahl, i
vars vertragsnr, ergebnis

dbms alias l_doku_id
dbms sql select p.doku_id doku_id from phys_datei p, firmen_spezifisch f where f.kue_dokuart = 'EVERT' and p.zeich_nr like 'P%' and f.doku_id = p.doku_id order by p.doku_id
anzahl = @dmrowcount
dbms alias

for i = 1 while i <= anzahl step 1
{
        call bkklog( 4, i ## " bearbeite Doku-ID " ## l_doku_id[ i ] )
        
        ergebnis = api_function( "attribute_get_single", 1, 0, l_doku_id[ i ] )
        
        vertragsnr = api_single_info
        
        call bkklog( 4, i ## " setze Zeichnungs-Nummer des Dokuments " ## l_doku_id[ i ] ## " auf den Wert " ## vertragsnr )
        
        if ( debug == 0 )
        {
                call set_doc_property( l_doku_id[ i ], "doc_number", vertragsnr )
                
                ergebnis = upd_doc_db_data( l_doku_id[ i ] )
                
                if ( ergebnis == "1" )
                {
                        call bkklog( 4, i ## " Die Änderung wurde durchgeführt." )
                }
                else
                {
                        call bkklog( 2, i ## " Es ist ein Fehler aufgetreten, dbi_retcode: " ## dbi_retcode )
                }
                
                // Kontrolle
                ergebnis = api_function( "attribute_get_single", "doc_no", 0, l_doku_id[ i ] )
                
                call bkklog( 4, i ## " Ergebnis des Updates: " ## api_single_info )
                
        }
        else
        {
                call bkklog( 4, i ## " debug ist eingeschaltet - es wurden keine Änderungen durchgeführt.")
                
                // Kontrolle
                ergebnis = api_function( "attribute_get_single", "doc_no", 0, l_doku_id[ i ] )
                
                call bkklog( 4, i ## " Ergebnis des Updates: " ## api_single_info )
        }
        
        call bkklog( 4, "--------------------------------------" )
}
























proc bkklog( loglevel, message )
{
        vars l_logdirect = "BEIDE"
                vars l_logdatei = "D\:\\d3\\apps\\log.txt"
                vars l_loglevel = 5
                
        vars zeitstempel, loglevel_lang, d3loglevel, logmessage
        
        if ( loglevel == 5 )
        {
                loglevel_lang   = "DEBUG"
                // Da die d.3 Server i.d.R. nicht im Debug-Modus laufen, erscheinen DEBUG-Meldungen nicht im Log.
                d3loglevel              = 9
        }
        
        if ( loglevel == 4 )
        {
                loglevel_lang   = "INFO."
                d3loglevel              = 6
        }
        
        if ( loglevel == 3 )
        {
                loglevel_lang   = "WARN."
                d3loglevel              = 6
        }
        
        if ( loglevel == 2 )
        {
                loglevel_lang   = "ERROR"
                d3loglevel              = 0
        }
        
        if ( loglevel == 1 )
        {
                loglevel_lang   = "FATAL"
                d3loglevel              = 0
        }
        
        if ( loglevel <= l_loglevel )
        {
                
                
                if ( ( l_logdirect == "DATEI" ) || ( l_logdirect == "BEIDE" ) )
                {
                        // Ausgabe in Datei
                        zeitstempel             = sm_sdtime( "n%4y.%0m.%0d %0h\:%0M\:%0s" )
                        logmessage              = zeitstempel ## " " ## loglevel_lang ## " " ## message
                        call api_function( "file_add_line", l_logdatei, logmessage, "APPEND" )
                }
                
                if ( ( l_logdirect == "D3LOG" ) || ( l_logdirect == "BEIDE" ) )
                {
                        // Ausgabe im d.3 Log
                        logmessage = loglevel_lang ## " " ## message
                        call api_log( d3loglevel, logmessage )
                }
        }
        
}