Skip to content

Commit 48243c3

Browse files
committed
Add method to get tax id by document
1 parent f4f94af commit 48243c3

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

src/Class/RegisterScopeThirteen.js

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ module.exports = class RegisterScopeThirteen extends AfipWebService {
3737
* @throws Exception if exists an error in response
3838
*
3939
* @return object|null if taxpayer does not exists, return null,
40-
* if it exists, returns full response {@see
40+
* if it exists, returns idPersona property of response {@see
4141
* WS Specification item 3.2.2}
4242
**/
4343
async getTaxpayerDetails(identifier) {
@@ -56,6 +56,30 @@ module.exports = class RegisterScopeThirteen extends AfipWebService {
5656
.catch(err => { if (err.message.indexOf('No existe') !== -1) { return null } else { throw err }});
5757
}
5858

59+
/**
60+
* Asks to web service for tax id by document number
61+
*
62+
* @throws Exception if exists an error in response
63+
*
64+
* @return object|null if taxpayer does not exists, return null,
65+
* if it exists, returns idPersona property of response
66+
**/
67+
async getTaxIDByDocument(documentNumber) {
68+
// Get token and sign
69+
let { token, sign } = await this.afip.GetServiceTA('ws_sr_padron_a13');
70+
71+
// Prepare SOAP params
72+
let params = {
73+
token, sign,
74+
cuitRepresentada: this.afip.CUIT,
75+
documento: documentNumber
76+
};
77+
78+
return this.executeRequest('getIdPersonaListByDocumento', params)
79+
.then(res => res.idPersona)
80+
.catch(err => { if (err.message.indexOf('No existe') !== -1) { return null } else { throw err }});
81+
}
82+
5983
/**
6084
* Send request to AFIP servers
6185
*
@@ -68,7 +92,10 @@ module.exports = class RegisterScopeThirteen extends AfipWebService {
6892
{
6993
let results = await super.executeRequest(operation, params);
7094

71-
return results[operation === 'getPersona' ? 'personaReturn' : 'return'];
95+
return results[
96+
operation === 'getPersona' ? 'personaReturn' :
97+
(operation === 'getIdPersonaListByDocumento' ? 'idPersonaListReturn': 'return')
98+
];
7299
}
73100
}
74101

0 commit comments

Comments
 (0)