|
|
|
@ -23,8 +23,8 @@ const serviceUrl = 'https://portail.net-entreprises.fr/priv/' |
|
|
|
|
const urssafUrl = 'https://www.ti.urssaf.fr/' |
|
|
|
|
module.exports = new BaseKonnector(start) |
|
|
|
|
|
|
|
|
|
/* Startup Function for the konnector */ |
|
|
|
|
async function start(fields) { |
|
|
|
|
let accData = this.getAccountData() |
|
|
|
|
log('info', 'Authenticating ...') |
|
|
|
|
//Auth and retrieve declaration URL
|
|
|
|
|
const urlDeclaration = await authenticate( |
|
|
|
@ -37,9 +37,9 @@ async function start(fields) { |
|
|
|
|
|
|
|
|
|
log('info', 'Get Declarations Parameters') |
|
|
|
|
let params = await getDeclarationsParameters(urlDeclaration) |
|
|
|
|
log('info', 'Get Declaration ') |
|
|
|
|
log('info', 'Get Declarations') |
|
|
|
|
const declarationList = await buildDeclarationList(params) |
|
|
|
|
const bills = await getAllDeclaration(params, declarationList, accData) |
|
|
|
|
const bills = await getAllDeclaration(params, declarationList, this) |
|
|
|
|
|
|
|
|
|
await saveBills(bills, fields, { |
|
|
|
|
identifiers: ['net-entreprise'], |
|
|
|
@ -47,6 +47,7 @@ async function start(fields) { |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Handle Authentication */ |
|
|
|
|
async function authenticate(siret, lastname, firstname, password) { |
|
|
|
|
const response = await signin({ |
|
|
|
|
url: `${baseUrl}`, |
|
|
|
@ -87,6 +88,7 @@ async function authenticate(siret, lastname, firstname, password) { |
|
|
|
|
return doc.url |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Get All Parameters for declarations */ |
|
|
|
|
async function getDeclarationsParameters(url) { |
|
|
|
|
let response = await request(url) |
|
|
|
|
let doc = scrape(response('[name="form"]'), { |
|
|
|
@ -117,6 +119,7 @@ async function getDeclarationsParameters(url) { |
|
|
|
|
return form |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Get all available declarations IDs */ |
|
|
|
|
async function buildDeclarationList(params) { |
|
|
|
|
params.codepaye = 10 |
|
|
|
|
params.echeance = 44 |
|
|
|
@ -132,6 +135,8 @@ async function buildDeclarationList(params) { |
|
|
|
|
completeList.push(parseInt(partialList[i].period)) |
|
|
|
|
return completeList |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Extract IDs from menu */ |
|
|
|
|
async function getList(params, urlPart, subItem, splitPart) { |
|
|
|
|
const data = await request({ |
|
|
|
|
method: 'POST', |
|
|
|
@ -152,25 +157,31 @@ async function getList(params, urlPart, subItem, splitPart) { |
|
|
|
|
return doc |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
async function getAllDeclaration(params, declarationList, accData) { |
|
|
|
|
/* Function that retrieve all new declaration not sync before */ |
|
|
|
|
async function getAllDeclaration(params, declarationList, konnector) { |
|
|
|
|
let accData = konnector.getAccountData() |
|
|
|
|
let exist = Object.keys(accData).length > 0 |
|
|
|
|
let bills = [] |
|
|
|
|
if (!exist || accData.lastPeriod !== params.periode - 1) { |
|
|
|
|
let lastPeriod = declarationList.length |
|
|
|
|
if (exist) { |
|
|
|
|
lastPeriod = declarationList.indexOf(accData.lastPeriod) |
|
|
|
|
if (lastPeriod === -1) lastPeriod = declarationList.length |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for (let i = 0; i < lastPeriod; i++) { |
|
|
|
|
let lastPeriod = declarationList.length -1 |
|
|
|
|
if (exist) { |
|
|
|
|
let lastSaved = declarationList.indexOf(accData.lastSaved) |
|
|
|
|
if(lastSaved !== -1) |
|
|
|
|
lastPeriod = lastSaved |
|
|
|
|
} |
|
|
|
|
for (let i = lastPeriod; i >= 0; i--) { |
|
|
|
|
try { |
|
|
|
|
const bill = await getDeclaration(params, declarationList[i]) |
|
|
|
|
bills.push(bill) |
|
|
|
|
break |
|
|
|
|
accData.lastSaved = declarationList[i] |
|
|
|
|
konnector.saveAccountData(accData,{merge:false}) |
|
|
|
|
} catch(error) { |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return bills |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Get a specific declaration */ |
|
|
|
|
async function getDeclaration(params, periode) { |
|
|
|
|
params.periode = periode |
|
|
|
|
params.codepaye = 10 |
|
|
|
@ -216,6 +227,7 @@ async function getDeclaration(params, periode) { |
|
|
|
|
return bill |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Build PDF from declaration */ |
|
|
|
|
async function buildDeclarationPDF(data, periode) { |
|
|
|
|
var doc = new pdf.Document() |
|
|
|
|
|
|
|
|
|