0% found this document useful (0 votes)
15 views3 pages

Sbi

Uploaded by

Jeremy Green
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views3 pages

Sbi

Uploaded by

Jeremy Green
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

const documentProperties = PropertiesService.

getDocumentProperties();

async function getNamesByDNI() {


// Hoja Datos
const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

const [header, ...values] = ss.getDataRange().getValues();


const lastnamePIndex = header.indexOf("APELLIDO PATERNO");
const lastnameMIndex = header.indexOf("APELLIDO MATERNO");
const namesIndex = header.indexOf("NOMBRES");
const dniPersonIndex = header.indexOf("DNI PERSONA");
const statusIndex = header.indexOf("STATUS");

const totalHeaders = header.length;


const totalValues = values.length;
const startTime = new Date();
const triggerId = documentProperties.getProperty("timeOutTriggerId");

// Hoja Parametros
const sheetParameters = SpreadsheetApp.getActive().getSheetByName('PARAMETROS');
const sessionKey = sheetParameters.getRange('B1').getValue();

for (let i = 0; i < totalValues; i++) {


const row = values[i];
const status = row[statusIndex];

if (status !== 'DONE') {


ss.getRange((i + 1) + 1, statusIndex + 1).setValue("Processing...");

let dni = row[dniPersonIndex];


dni = dni.toString().padStart(8, '0');

try {
const options = {
'method' : 'GET',
'contentType': 'application/json',
'headers' : {
//"Host": "bp-mkt.com",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3",
"Connection": "keep-alive",
"Referer": "https://tubusquedaweb.com/",
//"Content-Length": "62",
"Origin": "https://tubusquedaweb.com",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "cross-site",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"sec-ch-ua": '"Not_A Brand";v="8", "Chromium";v="120", "Google
Chrome";v="120"',
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "Windows",
},
'redirect' : 'follow'
};

//console.log({dni});
const personaUrl = `https://tubusquedaweb.online/persona.php?documento=$
{dni}&paterno=&materno=&nombres=&numero=&session_key=${sessionKey}`;
const personaResponse = UrlFetchApp.fetch(personaUrl, options);

if (personaResponse.getResponseCode() === 200) {


const personaData = JSON.parse(personaResponse.getContentText());

// Setear datos
const personaAllData = personaData?.data[0] ?? [];
const names = personaAllData?.nombres ?? 'N.E.';
const apPat = personaAllData?.paterno ?? 'N.E.';
const apMat = personaAllData?.materno ?? 'N.E.';

/*
* MANTENER VIVA LA SESIÓN
*/
const consultaFormData = {
'documento': dni,
'tipo': 'persona',
'session_key': sessionKey
};

//console.log(consultaFormData);

const consultaOptions = {
//'method' : 'POST',
'payload' : consultaFormData,
'headers' : {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br, zstd",
"Accept-Language": "es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3",
"Connection": "keep-alive",
"Referer": "https://tubusquedaweb.com/",
"Origin": "https://tubusquedaweb.com",
"Connection": "keep-alive",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "cross-site",
"Priority": "u=0",
"User-Agent": "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64;
rv:132.0) Gecko/20100101 Firefox/132.0",
"sec-ch-ua": '"Not_A Brand";v="8", "Chromium";v="120", "Google
Chrome";v="120"',
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "Windows",
},
};
const consultaUrl = `https://tubusquedaweb.online/consulta.php`;
const consultaResponse = UrlFetchApp.fetch(consultaUrl, consultaOptions);

if (consultaResponse.getResponseCode() === 200) {

const laboralOptions = {
method: "GET",
headers: {
'contentType': 'application/json',
'headers' : {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br, zstd",
"Accept-Language": "es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3",
"Connection": "keep-alive",
"Referer": "https://tubusquedaweb.com/",
"Origin": "https://tubusquedaweb.com",
"Connection": "keep-alive",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "cross-site",
"Priority": "u=0",
"User-Agent": "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64;
x64; rv:132.0) Gecko/20100101 Firefox/132.0",
"sec-ch-ua": '"Not_A Brand";v="8", "Chromium";v="120", "Google
Chrome";v="120"',
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "Windows",
},
},
};

const laboralUrl = `https://tubusquedaweb.online/persona.php?


documento=${dni}&session_key=${sessionKey}&ops=laboral_datos`;
const laboralResponse = UrlFetchApp.fetch(laboralUrl, laboralOptions);

if (laboralResponse.getResponseCode() === 200) {


// Setear datos
const laboralData = JSON.parse(laboralResponse.getContentText());
const laboralAllData = laboralData?.data[0] ?? [];
const ruc = laboralAllData?.ruc ?? 'N.E.';
const razonSocial = laboralAllData?.razonsocial ?? 'N.E.';

// Crear arrays temporales para setear valores


let arrValuesforRow = [`${apPat}`, `${apMat}`, `${names}`, `${ruc}`,
`${razonSocial}`];

// Actualizar status
arrValuesforRow.push('DONE');

// Log datos
console.log(dni, 'Con data');

// Setear datos
ss.getRange((i + 1) + 1, lastnamePIndex + 1, 1,
arrValuesforRow.length).setValues([arrValuesforRow]);
}
}

SpreadsheetApp.flush();
}
} catch (error) {
console.error(`Error fetching data for DNI ${dni}: ${error.message}`);
}
}
}
}

You might also like