Visvaris robots

ok

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Visvaris robots
// @namespace    http://tampermonkey.net/
// @version      3000.005
// @description  ok
// @author       You
// @match        https://visvaris.lv/kindergarten/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=visvaris.lv
// @grant        GM_getValue
// @grant        GM_setValue
// ==/UserScript==

main();

var observeDOM = (function() {
  var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;

  return function(obj, callback) {
    if (!obj || obj.nodeType !== 1) {
      return;
    }

    if (MutationObserver) {
      // define a new observer
      var mutationObserver = new MutationObserver(callback);

      // have the observer observe for changes in children
      mutationObserver.observe(obj, {childList: true, subtree: true});
      return mutationObserver;
    } else if (window.addEventListener) { // browser support fallback
      obj.addEventListener('DOMNodeInserted', callback, false);
      obj.addEventListener('DOMNodeRemoved', callback, false);
    }
  }
})();



var DateDiff = {
    inDays: function(d1, d2) {
        var t2 = d2.getTime();
        var t1 = d1.getTime();

        return Math.floor((t2-t1)/(24*3600*1000));
    },
    inWeeks: function(d1, d2) {
        var t2 = d2.getTime();
        var t1 = d1.getTime();

        return parseInt((t2-t1)/(24*3600*1000*7));
    },
    inMonths: function(d1, d2) {
        var d1Y = d1.getFullYear();
        var d2Y = d2.getFullYear();
        var d1M = d1.getMonth();
        var d2M = d2.getMonth();

        return (d2M+12*d2Y)-(d1M+12*d1Y);
    },
    inYears: function(d1, d2) {
        return d2.getFullYear()-d1.getFullYear();
    }
}

//ja lapa ielādējas un skripts ir procesā
if(window.name == "processing")
{
    var dati = JSON.parse(GM_getValue('skripta_dati', '[]'));
    if(dati.search_step==1)search_step_1(dati)
    else if (dati.search_step==2)search_step_2(dati);
    else if (dati.search_step==3)search_step_3(dati);
    else if (dati.search_step==4)search_step_4(dati);
    else if (dati.search_step==5)search_step_5(dati);
}

function main()
{
    var mt = document.getElementById("content");
    if(!mt) return;
    //title
    var myVersion = GM_info.script.version;
    var title = document.createElement("h3");
    title.innerHTML='Visvaris robots  v'+myVersion;
    mt.appendChild(title);
    //textarea
    var input = document.createElement("textarea");
    input.id="demo_input_area";
    input.setAttribute('rows', 5);
    //pieliekam meklēšanas ievadlauku
    //let sp2 = document.getElementById("footer");
    mt.appendChild(input);
    //v space
    var br = document.createElement("br");
    mt.appendChild(br);
    //poga privātie PII
    var btn = document.createElement('input');
    btn.value="Pārbaudīt pPII";
    btn.className = "button";
    btn.type = "submit";
    btn.addEventListener("click", function(){
        var input_lines=input.value;
        input_lines=input_lines.replace(/[ ]+/g, '');//spaces
        input_lines=input_lines.replace(/\t/g, '');//tabs
        input_lines=input_lines.replace(/['"]+/g, '');//quotes
        input_lines = input_lines.replace(/\r\n/g,"\n").split("\n");//split lines to array
        input_lines = input_lines.filter(elm => elm);//remove empty lines
        var dati = {
            current_line: 0,
            search_step: 1,
            search_type: 1,
            lines:input_lines,
            results:[]
        };
        //atzīmējam šo tabu kā procesējošu
        window.name = "processing";
        search_step_1(dati);
    });
    mt.appendChild(btn);
    //h space
    var span = document.createElement("span");
    span.innerHTML=' ';
    mt.appendChild(span);
    //poga rinda BUPS
    var btn2 = document.createElement('input');
    btn2.value="Pārbaudīt rindu/BUPS";
    btn2.className = "button";
    btn2.type = "submit";
    btn2.addEventListener("click", function(){
        var input_lines=input.value;
        input_lines=input_lines.replace(/[ ]+/g, '');//spaces
        input_lines=input_lines.replace(/\t/g, '');//tabs
        input_lines=input_lines.replace(/['"]+/g, '');//quotes
        input_lines = input_lines.replace(/\r\n/g,"\n").split("\n");//split lines to array
        input_lines = input_lines.filter(elm => elm);//remove empty lines
        var dati = {
            current_line: 0,
            search_step: 1,
            search_type: 2,
            lines:input_lines,
            results:[]
        };
        //atzīmējam šo tabu kā procesējošu
        window.name = "processing";
        search_step_1(dati);
    });
    mt.appendChild(btn2);
    //h space
    span = document.createElement("span");
    span.innerHTML=' ';
    mt.appendChild(span);
    //poga kopet tabulu
    var btn3 = document.createElement('input');
    btn3.value="Nokopēt tabulu";
    btn3.className = "button";
    btn3.type = "submit";
    btn3.addEventListener("click", function(){
        copytable('robota_rezultati');
    });
    mt.appendChild(btn3);
    //v space
    br = document.createElement("br");
    mt.appendChild(br);

}

//atveram meklēšanas lapu
function search_step_1(dati)
{
    //atzīmējam, ka pēc pārlādēšanas būs 2. solis
    dati.search_step=2;
    //saglabājam datus GM lai tie ir pieejami arī pēc lapas pārlādēšanas
    GM_setValue('skripta_dati', JSON.stringify(dati));
    //ejam uz meklēšanas lapu
    document.location.href = 'https://visvaris.lv/kindergarten/PersonList';
}

//veicam aizpildam meklēšanas laukus un nospiežam pogu meklēt
function search_step_2(dati)
{
    //ievadam meklējamo tekstu
    var search_input = document.getElementById("PersistedModel_Code");
    var pk = dati.current_line;
        search_input.value=dati.lines[pk];
        //atzīmējam, ka pēc pārlādēšanas būs 3. solis
        dati.search_step=3;
        //saglabājam datus GM lai tie ir pieejami arī pēc lapas pārlādēšanas
        GM_setValue('skripta_dati', JSON.stringify(dati));
        //nospiežam pogu
        observeDOM(document.getElementById("PERSON_LIST_GRIDVIEW"), wait_1 );
        document.getElementById("search").click();
}

function wait_1(m)
{
   var addedNodes = [];
   //m.forEach(record => record.addedNodes.length & addedNodes.push(...record.addedNodes));
   //console.clear();
   //console.log('Added:', addedNodes);
    m.forEach((element) =>
    {
        //console.log(element);
        element.addedNodes.forEach((element2)=>{
            //console.log(element2.id);
            if(element2.id=='PERSON_LIST_GRIDVIEW_CallbackState')search_step_3();
        }
        );
    });

}

//atrastajā sarakstā atvērsim pirmo atrasto ierakstu
function search_step_3()
{
    var dati = JSON.parse(GM_getValue('skripta_dati', '[]'));
    var el1 = document.getElementById("PERSON_LIST_GRIDVIEW_DXMainTable");
    var el2=el1.getElementsByClassName("link")[0];
    //var el3 = el2.getElementsByTagName("a")[0];
    //atzīmējam, ka pēc pārlādēšanas būs 3. solis
    dati.search_step=4;
    //saglabājam datus GM lai tie ir pieejami arī pēc lapas pārlādēšanas
    GM_setValue('skripta_dati', JSON.stringify(dati));
    //ejam uz produkta lapu
    document.location.href = el2.href;
}

//personas lapā atradīsim datus
function search_step_4(dati)
{
    var rez={};
    rez.mates_adrese='';
    rez.teva_adrese='';
    rez.pieteikuma_statuss='';
    rez.derigs_ppii='';
    rez.derigs_bups='';
    rez.opcija1='';
    rez.opcija2='';
    rez.opcija3='';
    var pieteikuma_statuss_atbilst=false;
    var lidzfinansejuma_pieteikuma_statuss_atbilst=false;
    var deklarets_jelgava=false;
    var tevs_deklarets_jelgava=false;
    var mate_deklareta_jelgava=false;
    var step_5_url='';
    rez.lidzfinansejuma_pieteikuma_statuss='';
    var el;
    //pk
    el = document.getElementById("content");
    el=el.getElementsByClassName("formtable")[0];
    el=el.getElementsByTagName("tr")[0];
    el=el.getElementsByTagName("td")[1];
    el = el.innerHTML;
    el = el.replace(/^\s+|\s+$/gm,'');//aizvācam liekās atstarpes
    rez.pk=el;
    //adrese
    el = document.getElementById("content");
    el=el.getElementsByClassName("formtable")[0];
    el=el.getElementsByTagName("tr")[3];
    el=el.getElementsByTagName("td")[1];
    el = el.innerHTML;
    rez.adrese=el;
    if(el.indexOf("Jelgava,")>0)deklarets_jelgava=true;
    //dzimšanas datums
    el = document.getElementById("content");
    el=el.getElementsByClassName("formtable")[0];
    el=el.getElementsByTagName("tr")[4];
    el=el.getElementsByTagName("td")[1];
    el = el.innerHTML;
    rez.dz_datums=el;
    //vecums
    var datums=el.substring(6, 10)+'-'+el.substring(3, 5)+'-'+el.substring(0, 2) ;
    var d1 = new Date(datums);
    var d2 = new Date();
    var menesi = DateDiff.inMonths(d1, d2);
    var v2=menesi % 12;
    var v1=Math.floor(menesi/12);
    if(menesi>=18)rez.vecums = 'Jā '+v1+'g.'+v2+'m.';
    else rez.vecums = 'Nē '+v1+'g.'+v2+'m.';

    //vecāku dati
    el = document.getElementById("tab-connectedpersons");
    el = el.getElementsByTagName("tr");
    for (let persona of el)
    {
        var el2=persona.getElementsByTagName("td");
        if(el2[3])//izlaižam heder rindu
        {
            if(el2[3].innerHTML=='Tēvs')
            {
                rez.teva_adrese=el2[4].innerHTML;
                if(el2[4].innerHTML.indexOf("Jelgava,")>0)tevs_deklarets_jelgava=true;
            }
            if(el2[3].innerHTML=='Māte')
            {
                rez.mates_adrese=el2[4].innerHTML;
                if(el2[4].innerHTML.indexOf("Jelgava,")>0)mate_deklareta_jelgava=true;
            }
        }
    }
    //pieteikumi
    el = document.getElementById("tab-applications");
    el=el.getElementsByTagName("tr");
    for (let pieteikums of el)
    {
        el2=pieteikums.getElementsByTagName("td");
        if(el2[4])//izlaižam heder rindu
        {
            if(rez.pieteikuma_statuss!='')rez.pieteikuma_statuss+=', ';
            rez.pieteikuma_statuss+=el2[4].innerHTML;
            if(el2[4].innerHTML=='Jauns')
            {
                pieteikuma_statuss_atbilst=true;
                step_5_url = el2[0].firstChild.href;
            }
        }
    }
    //līdzfinansējuma pieteikumi
    el = document.getElementById("tab-cofinancing");
    el=el.getElementsByTagName("tr");
    for (let pieteikums of el)
    {
        el2=pieteikums.getElementsByTagName("td");
        if(el2[3])//izlaižam heder rindu
        {
            if(rez.lidzfinansejuma_pieteikuma_statuss!='')rez.lidzfinansejuma_pieteikuma_statuss+=', ';
            rez.lidzfinansejuma_pieteikuma_statuss+=el2[3].innerHTML;
            if(el2[3].innerHTML=='Līgums ir parakstīts un līdzfinansējums ir piešķirts' || el2[3].innerHTML=='Iesniegums saskaņots un līgums sagatavots')
            {
                lidzfinansejuma_pieteikuma_statuss_atbilst=true;
            }
        }
    }
    if(deklarets_jelgava && (tevs_deklarets_jelgava || mate_deklareta_jelgava) && menesi>=18 && lidzfinansejuma_pieteikuma_statuss_atbilst)
    {
        rez.derigs_ppii='Jā';
    }
    if(deklarets_jelgava && (tevs_deklarets_jelgava || mate_deklareta_jelgava) && menesi>=18 && pieteikuma_statuss_atbilst && !lidzfinansejuma_pieteikuma_statuss_atbilst)
    {
        rez.derigs_bups='Jā';
    }
    //saglabāsim  rezultātos
    dati.results[dati.current_line]=rez;
    if(dati.search_type==2 && pieteikuma_statuss_atbilst)
    {
        //atzīmējam, ka pēc pārlādēšanas būs 5. solis
        dati.search_step=5;
        //saglabājam datus GM lai tie ir pieejami arī pēc lapas pārlādēšanas
        GM_setValue('skripta_dati', JSON.stringify(dati));
        //ejam uz aktīvā rindas pieteikuma lapu
        document.location.href = step_5_url;
    }
    else
    {
        finish_row(dati,rez)
    }
}

function search_step_5(dati)
{
    //alert('step 5');
    var el = document.getElementById("SELECTED_INSTITUTION_LIST_GRIDVIEW_DXMainTable");
    el=el.getElementsByClassName("dxgvDataRow_MansWeb");
    var i=0;
    for (let prioritate of el)
    {
        i++;
        var el2=prioritate.getElementsByTagName("td");
        if(i==1)dati.results[dati.current_line].opcija1=el2[1].innerHTML;
        if(i==2)dati.results[dati.current_line].opcija2=el2[1].innerHTML;
        if(i==3)dati.results[dati.current_line].opcija3=el2[1].innerHTML;
        //alert(el2[1].innerHTML);
    }
    finish_row(dati);
}

function finish_row(dati)
{
    //console.log(dati);
    if(dati.current_line+1 < dati.lines.length)
    {
        //nākošais meklējamais vārds
        dati.current_line++;
        search_step_1(dati);
    }else
    {
        if(dati.search_type==1)display_data_1(dati);//pPPI
        if(dati.search_type==2)display_data_2(dati);//rinda,BUPS
    }
}

function display_data_1(dati)//pPII
{
    //console.log(dati.results);
    //var textarea = document.getElementById("demo_input_area");
    //textarea.value = dati.results.join("\n");
    //beidzam processingu
    var table = document.createElement('table');
    table.setAttribute('border', 1);
    table.setAttribute('id', 'robota_rezultati');
    table.setAttribute('style','border-collapse: collapse;');
    var tr = document.createElement('tr');
    var td1 = document.createElement('td');
    var td2 = document.createElement('td');
    var td3 = document.createElement('td');
    var td4 = document.createElement('td');
    var td5 = document.createElement('td');
    var td6 = document.createElement('td');
    var td7 = document.createElement('td');
    var td8 = document.createElement('td');
    var td9 = document.createElement('td');
    //var td10 = document.createElement('td');
    var text1 = document.createTextNode('pk');
    var text2 = document.createTextNode('dz.dat.');
    var text3 = document.createTextNode('adrese');
    var text4 = document.createTextNode('tēva adrese');
    var text5 = document.createTextNode('mātes adrese');
    var text6 = document.createTextNode('pieteikuma statuss rindā');
    var text7 = document.createTextNode('līdzfinansējuma pieteikuma (līguma) statuss');
    var text8 = document.createTextNode('vecāks par 1,5 gadiem');
    var text9 = document.createTextNode('der/neder pPII');
    //var text10 = document.createTextNode('BUPS');
    td1.appendChild(text1);
    td2.appendChild(text2);
    td3.appendChild(text3);
    td4.appendChild(text4);
    td5.appendChild(text5);
    td6.appendChild(text6);
    td7.appendChild(text7);
    td8.appendChild(text8);
    td9.appendChild(text9);
    //td10.appendChild(text10);
    tr.appendChild(td1);
    tr.appendChild(td2);
    tr.appendChild(td3);
    tr.appendChild(td4);
    tr.appendChild(td5);
    tr.appendChild(td6);
    tr.appendChild(td7);
    tr.appendChild(td8);
    tr.appendChild(td9);
    //tr.appendChild(td10);
    table.appendChild(tr);

    dati.results.forEach((element)=>{
        var tr = document.createElement('tr');
        var td1 = document.createElement('td');
        var td2 = document.createElement('td');
        var td3 = document.createElement('td');
        var td4 = document.createElement('td');
        var td5 = document.createElement('td');
        var td6 = document.createElement('td');
        var td7 = document.createElement('td');
        var td8 = document.createElement('td');
        var td9 = document.createElement('td');
        //var td10 = document.createElement('td');

        var text1 = document.createTextNode(element.pk);
        var text2 = document.createTextNode(element.dz_datums);
        var text3 = document.createTextNode(element.adrese);
        var text4 = document.createTextNode(element.teva_adrese);
        var text5 = document.createTextNode(element.mates_adrese);
        var text6 = document.createTextNode(element.pieteikuma_statuss);
        var text7 = document.createTextNode(element.lidzfinansejuma_pieteikuma_statuss);
        var text8 = document.createTextNode(element.vecums);
        var text9 = document.createTextNode(element.derigs_ppii);
        //var text10 = document.createTextNode(element.derigs_bups);

        td1.appendChild(text1);
        td2.appendChild(text2);
        td3.appendChild(text3);
        td4.appendChild(text4);
        td5.appendChild(text5);
        td6.appendChild(text6);
        td7.appendChild(text7);
        td8.appendChild(text8);
        td9.appendChild(text9);
        //td10.appendChild(text10);
        tr.appendChild(td1);
        tr.appendChild(td2);
        tr.appendChild(td3);
        tr.appendChild(td4);
        tr.appendChild(td5);
        tr.appendChild(td6);
        tr.appendChild(td7);
        tr.appendChild(td8);
        tr.appendChild(td9);
        //tr.appendChild(td10);

        table.appendChild(tr);
    })
    var mt = document.getElementById("content");
    var br = document.createElement("br");
    mt.appendChild(br);
    br = document.createElement("br");
    mt.appendChild(br);
    mt.appendChild(table);
    window.name = "ok";
}

function display_data_2(dati)//BUPS rinda
{
    //console.log(dati.results);
    //var textarea = document.getElementById("demo_input_area");
    //textarea.value = dati.results.join("\n");
    //beidzam processingu
    var table = document.createElement('table');
    table.setAttribute('border', 1);
    table.setAttribute('id', 'robota_rezultati');
    table.setAttribute('style','border-collapse: collapse;');
    var tr = document.createElement('tr');
    var td1 = document.createElement('td');
    var td2 = document.createElement('td');
    var td3 = document.createElement('td');
    var td4 = document.createElement('td');
    var td5 = document.createElement('td');
    var td6 = document.createElement('td');
    var td7 = document.createElement('td');
    var td8 = document.createElement('td');
    var td9 = document.createElement('td');
    var td10 = document.createElement('td');
    var td11 = document.createElement('td');
    var td12 = document.createElement('td');
    var text1 = document.createTextNode('pk');
    var text2 = document.createTextNode('dz.dat.');
    var text3 = document.createTextNode('adrese');
    var text4 = document.createTextNode('tēva adrese');
    var text5 = document.createTextNode('mātes adrese');
    var text6 = document.createTextNode('pieteikuma statuss rindā');
    var text7 = document.createTextNode('līdzfinansējuma pieteikuma (līguma) statuss');
    var text8 = document.createTextNode('vecāks par 1,5 gadiem');
    var text9 = document.createTextNode('BUPS');
    var text10 = document.createTextNode('pr_1');
    var text11 = document.createTextNode('pr_2');
    var text12 = document.createTextNode('pr_3');
    td1.appendChild(text1);
    td2.appendChild(text2);
    td3.appendChild(text3);
    td4.appendChild(text4);
    td5.appendChild(text5);
    td6.appendChild(text6);
    td7.appendChild(text7);
    td8.appendChild(text8);
    td9.appendChild(text9);
    td10.appendChild(text10);
    td11.appendChild(text11);
    td12.appendChild(text12);
    tr.appendChild(td1);
    tr.appendChild(td2);
    tr.appendChild(td3);
    tr.appendChild(td4);
    tr.appendChild(td5);
    tr.appendChild(td6);
    tr.appendChild(td7);
    tr.appendChild(td8);
    tr.appendChild(td9);
    tr.appendChild(td10);
    tr.appendChild(td11);
    tr.appendChild(td12);
    table.appendChild(tr);

    dati.results.forEach((element)=>{
        var tr = document.createElement('tr');
        var td1 = document.createElement('td');
        var td2 = document.createElement('td');
        var td3 = document.createElement('td');
        var td4 = document.createElement('td');
        var td5 = document.createElement('td');
        var td6 = document.createElement('td');
        var td7 = document.createElement('td');
        var td8 = document.createElement('td');
        var td9 = document.createElement('td');
        var td10 = document.createElement('td');
        var td11 = document.createElement('td');
        var td12 = document.createElement('td');

        var text1 = document.createTextNode(element.pk);
        var text2 = document.createTextNode(element.dz_datums);
        var text3 = document.createTextNode(element.adrese);
        var text4 = document.createTextNode(element.teva_adrese);
        var text5 = document.createTextNode(element.mates_adrese);
        var text6 = document.createTextNode(element.pieteikuma_statuss);
        var text7 = document.createTextNode(element.lidzfinansejuma_pieteikuma_statuss);
        var text8 = document.createTextNode(element.vecums);
        var text9 = document.createTextNode(element.derigs_bups);
        var text10 = document.createTextNode(element.opcija1);
        var text11 = document.createTextNode(element.opcija2);
        var text12 = document.createTextNode(element.opcija3);

        td1.appendChild(text1);
        td2.appendChild(text2);
        td3.appendChild(text3);
        td4.appendChild(text4);
        td5.appendChild(text5);
        td6.appendChild(text6);
        td7.appendChild(text7);
        td8.appendChild(text8);
        td9.appendChild(text9);
        td10.appendChild(text10);
        td11.appendChild(text11);
        td12.appendChild(text12);
        tr.appendChild(td1);
        tr.appendChild(td2);
        tr.appendChild(td3);
        tr.appendChild(td4);
        tr.appendChild(td5);
        tr.appendChild(td6);
        tr.appendChild(td7);
        tr.appendChild(td8);
        tr.appendChild(td9);
        tr.appendChild(td10);
        tr.appendChild(td11);
        tr.appendChild(td12);

        table.appendChild(tr);
    })
    var mt = document.getElementById("content");
    var br = document.createElement("br");
    mt.appendChild(br);
    br = document.createElement("br");
    mt.appendChild(br);
    mt.appendChild(table);
    window.name = "ok";
}

function copytable(el) {
  var urlField = document.getElementById(el)
  var range = document.createRange()
  range.selectNode(urlField)
  window.getSelection().addRange(range)
  document.execCommand('copy')
}