// DeleteVertaalDocumenten.js (n.a.v. UWVA#14908: Vertaaldienst - opruimscript)
// Verwijdert alle documenten bij de service vertaaldiensten, waarvan de melding is verwerkt en de verwerkingsdatum
// meer dan 60 dagen geleden is (overeenkomend met 2 maanden), en (technische aanvulling) niet meer dan 3 maanden (90 dagen)
//
// $Revision$
// $Id$
//
// Twee parameters: UDL voor database connectie en optioneel proxy-ip

var udlstr = WScript.Arguments(0); // udlpath
udlstr = 'File Name='+udlstr;

var DIR_vertaal = 'VERTAAL_OPRUIM';
var LOG_vertaal = DIR_vertaal + '/VERTAAL_OPRUIM.LOG';

var fp_log;

if (WScript.Arguments.length > 1)
    var proxyip=WScript.Arguments(1);
else
    var proxyip="";

var debugFiddler = false;


function DoLog_start(p_file)
{
	var fso = new ActiveXObject("Scripting.FileSystemObject");
	fp_log = fso.OpenTextFile(p_file, 8, true, 0);
	DoLog ("");
	DoLog ("--------------------" +  new Date() + "--------------------");
	DoLog ("Oracle connectie: " + udlstr);		
}

function DoLog(p_message)
{
	fp_log.WriteLine(p_message);
}

function DoLog_end()
{
	fp_log.close();
}

// Verwijdert de bestanden (vertaaldocumenten) uit de folder/directory 'p_foldernaam'
function VerwijderDocumentenUitFolder (p_foldernaam)
{
	 var fso1, f, fc, i;
   fso1 = new ActiveXObject("Scripting.FileSystemObject");
   i = 0;
   if (fso1.FolderExists(p_foldernaam)){
   	 DoLog("Folder: <" + p_foldernaam + ">");
	   f = fso1.GetFolder(p_foldernaam);
	   fc = new Enumerator(f.files);
	   for (; !fc.atEnd(); fc.moveNext())
	   {
	   		DoLog("Bestand <" + fc.item().name + "> is verwijderd");
	   		fso1.DeleteFile(fc.item());
	   		i = i + 1;
	   }
	   DoLog("Aantal verwijderde bestanden: " + i);
	 }
	 else {
	 	 DoLog("Folder: <" + p_foldernaam + "> bestaat NIET!");
	 }
   return(i);
}


DoLog_start(LOG_vertaal);

var Oracle = new ActiveXObject("ADODB.Connection");
Oracle.Open(udlstr);
var sql = "ALTER SESSION SET nls_territory='AMERICA'";
var oRs = Oracle.Execute(sql)

try
	{	sql =   " select mld_melding_key, to_char(MLD_MELDING_DATUM,'dd-mm-yyyy') MLD_MELDING_DATUM, to_char(MLD_MELDING_VERWERKT,'dd-mm-yyyy') MLD_MELDING_VERWERKT, to_char(MLD_MELDING_AFGEWEZEN,'dd-mm-yyyy') MLD_MELDING_AFGEWEZEN, FolderVertaalDocumenten"
			      + " from UWVA_V_VERTAAL_DOCS_DELETE"
			      + " where MLD_MELDING_VERWERKT IS NOT NULL"
			      + " order by mld_melding_key"

    oRs = Oracle.Execute(sql);
    DoLog("---> Vertaaldiensten die zijn verwerkt/uitgevoerd");
    
    while (!oRs.eof)
    {
        // WScript.Echo("REM Melding '" + oRs("mld_melding_key") + "' ; aangemaakt op " + oRs("mld_melding_datum") + " ; verwerkt op " + oRs("mld_melding_verwerkt"));
        DoLog("-- Melding " + oRs("mld_melding_key") + " ; aangemaakt op " + oRs("mld_melding_datum") + " ; verwerkt op " + oRs("mld_melding_verwerkt"));
        VerwijderDocumentenUitFolder (oRs("FolderVertaalDocumenten"));
        oRs.MoveNext();
    }
    sql =   " select mld_melding_key, to_char(MLD_MELDING_DATUM,'dd-mm-yyyy') MLD_MELDING_DATUM, to_char(MLD_MELDING_VERWERKT,'dd-mm-yyyy') MLD_MELDING_VERWERKT, to_char(MLD_MELDING_AFGEWEZEN,'dd-mm-yyyy') MLD_MELDING_AFGEWEZEN, FolderVertaalDocumenten"
			      + " from UWVA_V_VERTAAL_DOCS_DELETE"
			      + " where MLD_MELDING_AFGEWEZEN IS NOT NULL"
			      + " order by mld_melding_key"

    oRs = Oracle.Execute(sql);
    DoLog("---> Vertaaldiensten die zijn afgewezen / niet zijn verwerkt");
    while (!oRs.eof)
    {		
    		DoLog("-- Melding " + oRs("mld_melding_key") + " ; aangemaakt op " + oRs("mld_melding_datum") + " ; afgewezen op " + oRs("mld_melding_afgewezen"));
        VerwijderDocumentenUitFolder (oRs("FolderVertaalDocumenten"));
        oRs.MoveNext();
    }
    DoLog_end();
		WScript.Quit(0);
}
catch (e)
{
		DoLog("Serieuze fout in het opruimscript DeleteVertaaldocumenten.js: " + e.description);
    DoLog_end();
		WScript.Quit(1);
}