Skip to content

Commit 3fcdb66

Browse files
committed
Se agregan recursos de RCV asíncrono
1 parent 179a18b commit 3fcdb66

File tree

2 files changed

+254
-1
lines changed

2 files changed

+254
-1
lines changed

apigatewaycl/api_client/sii/rcv.py

Lines changed: 253 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,3 +124,256 @@ def ventas_detalle(self, emisor, periodo, dte = 0, tipo = None):
124124
}
125125
response = self.client.post(url, data = body)
126126
return response.json()
127+
128+
def compras_async_solicitar(
129+
self,
130+
receptor: str,
131+
periodo: str,
132+
dte: int = 0,
133+
estado: str = 'REGISTRO'
134+
):
135+
'''
136+
Solicita el envío de los detalles de las compras de un
137+
receptor en un periodo específico.
138+
139+
:param receptor: RUT del receptor de las compras formato 12345678-9.
140+
:type receptor: str
141+
142+
:param periodo: Período de tiempo de las compras formato YYYYMM.
143+
:type periodo: str
144+
145+
:param dte: Tipo de DTE formato 0 para todos los tipos de DTE
146+
o el tipo de DTE.
147+
:type dte: int
148+
149+
:param estado: Estado de las compras
150+
('REGISTRO', 'PENDIENTE', 'NO_INCLUIR', 'RECLAMADO').
151+
:type estado: str
152+
153+
:return: Respuesta JSON con la solicitud de envío de los detalles de las compras.
154+
:rtype: dict
155+
'''
156+
url = '/sii/rcv/compras/async/solicitar'
157+
url += '/%(receptor)s/%(periodo)s/%(dte)s/%(estado)s' % {
158+
'receptor': receptor,
159+
'periodo': periodo,
160+
'dte': dte,
161+
'estado': estado
162+
}
163+
body = {
164+
'auth': self._get_auth_pass()
165+
}
166+
response = self.client.post(url, data = body)
167+
return response.json()
168+
169+
def compras_async_estado(
170+
self,
171+
receptor: str,
172+
periodo: str,
173+
id_solicitud: str,
174+
dte: int = 0,
175+
estado: str = 'REGISTRO'):
176+
'''
177+
Obtiene el estado de la solicitud los detalles de las compras.
178+
179+
:param receptor: RUT del receptor de las compras formato 12345678-9.
180+
:type receptor: str
181+
182+
:param periodo: Período de tiempo de las compras formato YYYYMM.
183+
:type periodo: str
184+
185+
:param id_solicitud: ID de la solicitud de envío de los detalles
186+
de las compras.
187+
:type id_solicitud: str
188+
189+
:param dte: Tipo de DTE formato 0 para todos los tipos de DTE
190+
o el tipo de DTE.
191+
:type dte: int
192+
193+
:param estado: Estado de las compras
194+
('REGISTRO', 'PENDIENTE', 'NO_INCLUIR', 'RECLAMADO').
195+
:type estado: str
196+
197+
:return: Respuesta JSON con el estado de la solicitud de
198+
envío de los detalles de las compras.
199+
:rtype: dict
200+
'''
201+
url = '/sii/rcv/compras/async/estado/%(receptor)s'
202+
url += '/%(periodo)s/%(id_solicitud)s/%(dte)s/%(estado)s'
203+
url = url% {
204+
'receptor': receptor,
205+
'periodo': periodo,
206+
'id_solicitud': id_solicitud,
207+
'dte': dte,
208+
'estado': estado
209+
}
210+
body = {
211+
'auth': self._get_auth_pass()
212+
}
213+
response = self.client.post(url, data = body)
214+
return response.json()
215+
216+
def compras_async_detalle(
217+
self,
218+
receptor: str,
219+
periodo: str,
220+
id_solicitud: str,
221+
dte: int = 0,
222+
estado: str = 'REGISTRO'):
223+
'''
224+
Obtiene los detalles de las compras de un receptor
225+
en un periodo específico.
226+
227+
:param receptor: RUT del receptor de las compras formato 12345678-9.
228+
:type receptor: str
229+
230+
:param periodo: Período de tiempo de las compras formato YYYYMM.
231+
:type periodo: str
232+
233+
:param id_solicitud: ID de la solicitud de envío
234+
de los detalles de las compras.
235+
:type id_solicitud: str
236+
237+
:param dte: Tipo de DTE formato 0 para todos los tipos de DTE
238+
o el tipo de DTE.
239+
:type dte: int
240+
241+
:param estado: Estado de las compras
242+
('REGISTRO', 'PENDIENTE', 'NO_INCLUIR', 'RECLAMADO').
243+
:type estado: str
244+
245+
:return: Respuesta JSON con los detalles de las compras.
246+
:rtype: dict
247+
'''
248+
url = '/sii/rcv/compras/async/detalle/%(receptor)s'
249+
url += '/%(periodo)s/%(id_solicitud)s/%(dte)s/%(estado)s'
250+
url = url % {
251+
'receptor': receptor,
252+
'periodo': periodo,
253+
'id_solicitud': id_solicitud,
254+
'dte': dte,
255+
'estado': estado
256+
}
257+
body = {
258+
'auth': self._get_auth_pass()
259+
}
260+
response = self.client.post(url, data = body)
261+
return response.json()
262+
263+
def ventas_async_solicitar(
264+
self,
265+
emisor: str,
266+
periodo: str,
267+
dte: int = 0,
268+
):
269+
'''
270+
Solicita el envío de los detalles de las ventas de un emisor.
271+
272+
:param emisor: RUT del emisor de las ventas formato 12345678-9.
273+
:type emisor: str
274+
275+
:param periodo: Período de tiempo de las ventas formato YYYYMM.
276+
:type periodo: str
277+
278+
:param dte: Tipo de DTE formato 0 para todos los tipos de DTE
279+
o el tipo de DTE.
280+
:type dte: int
281+
282+
:return: Respuesta JSON con la solicitud de envío de
283+
los detalles de las ventas.
284+
:rtype: dict
285+
'''
286+
url = '/sii/rcv/ventas/async/solicitar'
287+
url += '/%(emisor)s/%(periodo)s/%(dte)s' % {
288+
'emisor': emisor,
289+
'periodo': periodo,
290+
'dte': dte,
291+
}
292+
body = {
293+
'auth': self._get_auth_pass()
294+
}
295+
response = self.client.post(url, data = body)
296+
return response.json()
297+
298+
def ventas_async_estado(
299+
self,
300+
emisor: str,
301+
periodo: str,
302+
id_solicitud: str,
303+
dte: int = 0,
304+
):
305+
'''
306+
Obtiene el estado de la solicitud los detalles de las ventas.
307+
308+
:param emisor: RUT del emisor de las ventas formato 12345678-9.
309+
:type emisor: str
310+
311+
:param periodo: Período de tiempo de las ventas formato YYYYMM.
312+
:type periodo: str
313+
314+
:param id_solicitud: ID de la solicitud de envío de los detalles
315+
de las ventas de un emisor.
316+
:type id_solicitud: str
317+
318+
:param dte: Tipo de DTE formato 0 para todos los tipos de DTE
319+
o el tipo de DTE.
320+
:type dte: int
321+
322+
:return: Respuesta JSON con el estado de la solicitud de
323+
envío de los detalles de las ventas.
324+
:rtype: dict
325+
'''
326+
url = '/sii/rcv/ventas/async/estado/%(emisor)s'
327+
url += '/%(periodo)s/%(id_solicitud)s/%(dte)s'
328+
url = url% {
329+
'emisor': emisor,
330+
'periodo': periodo,
331+
'id_solicitud': id_solicitud,
332+
'dte': dte,
333+
}
334+
body = {
335+
'auth': self._get_auth_pass()
336+
}
337+
response = self.client.post(url, data = body)
338+
return response.json()
339+
340+
def ventas_async_detalle(
341+
self,
342+
emisor: str,
343+
periodo: str,
344+
id_solicitud: str,
345+
dte: int = 0,
346+
):
347+
'''
348+
Obtiene los detalles de las ventas de un emisor.
349+
350+
:param emisor: RUT del emisor de las ventas formato 12345678-9.
351+
:type emisor: str
352+
353+
:param periodo: Período de tiempo de las ventas formato YYYYMM.
354+
:type periodo: str
355+
356+
:param id_solicitud: ID de la solicitud de envío
357+
de los detalles de las ventas de un emisor.
358+
:type id_solicitud: str
359+
360+
:param dte: Tipo de DTE formato 0 para todos los tipos de DTE
361+
o el tipo de DTE.
362+
:type dte: int
363+
364+
:return: Respuesta JSON con los detalles de las ventas.
365+
:rtype: dict
366+
'''
367+
url = '/sii/rcv/ventas/async/detalle/%(emisor)s'
368+
url += '/%(periodo)s/%(id_solicitud)s/%(dte)s'
369+
url = url % {
370+
'emisor': emisor,
371+
'periodo': periodo,
372+
'id_solicitud': id_solicitud,
373+
'dte': dte,
374+
}
375+
body = {
376+
'auth': self._get_auth_pass()
377+
}
378+
response = self.client.post(url, data = body)
379+
return response.json()

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
name='apigatewaycl',
3535

3636
# Versions should comply with PEP440
37-
version='5.2.0',
37+
version='5.3.0',
3838

3939
description='Cliente para realizar la integración con los servicios web de API Gateway desde Python.',
4040
long_description="\n"+long_description,

0 commit comments

Comments
 (0)