pyEscoAPI 0.0.7__tar.gz → 0.0.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyEscoAPI
3
- Version: 0.0.7
3
+ Version: 0.0.10
4
4
  Summary: Python client for Esco API (Esco bolsa)
5
5
  Author-email: Codetria <hola@codetria.com>
6
6
  License: MIT License
@@ -10,6 +10,7 @@ import requests
10
10
  from requests import Response
11
11
 
12
12
  from pyEscoAPI.dataclasses import Persona, ComitenteData
13
+ from pyEscoAPI.exception import PyEscoAPIError
13
14
 
14
15
  logger = logging.getLogger(f"{__name__}")
15
16
 
@@ -67,7 +68,7 @@ class EscoAPI:
67
68
  else:
68
69
  if not error_message:
69
70
  error_message = f"Error during endpoint call: {request_endpoint}. Code: {result.status_code}"
70
- raise ConnectionRefusedError(error_message)
71
+ raise PyEscoAPIError(endpoint=request_endpoint, status_code=result.status_code, error_message=error_message)
71
72
 
72
73
  def __esco_login(self):
73
74
  req_body = {
@@ -506,6 +507,17 @@ class EscoAPI:
506
507
  request_method=HTTPMethod.POST
507
508
  )
508
509
 
510
+ def get_cotizaciones_monedas(self):
511
+ """
512
+ Devuelve la cotización de cada moneda.
513
+ """
514
+ self.__pre_connection()
515
+ return self.__make_request(
516
+ request_endpoint="/get-cotizaciones-monedas",
517
+ request_body={},
518
+ request_method=HTTPMethod.GET
519
+ )
520
+
509
521
  def get_monedas(self):
510
522
  """
511
523
  Devuelve la lista de Monedas habilitadas.
@@ -1586,3 +1598,62 @@ class EscoAPI:
1586
1598
  request_body=req_body,
1587
1599
  request_method=HTTPMethod.POST
1588
1600
  )
1601
+
1602
+ def insert_comprobante_pago(
1603
+ self,
1604
+ cuenta: str,
1605
+ moneda: str,
1606
+ importe: decimal,
1607
+ cuenta_contable: int,
1608
+ fecha_concertacion: date = date.today(),
1609
+ fecha_liquidacion: date = date.today(),
1610
+ tp_cambio_mov_pais: int = 1,
1611
+ cuenta_bancaria_comitente: int = None,
1612
+ controla_saldo_monetario: bool = True,
1613
+ num_referencia: int = None,
1614
+ comentario: str = None,
1615
+ id_origen: str = None,
1616
+ es_echeq: bool = False,
1617
+ numero_cheque: int = None
1618
+ ):
1619
+ """
1620
+ Es un método que permite el ingreso de un Comprobante de Pago, este tipo de comprobante genera
1621
+ un egreso monetario en la cuenta corriente de un cliente sin requerir una aprobacion posterior.
1622
+ :param cuenta: Número de Comitente
1623
+ :param moneda: Código de ISO de la moneda el movimiento.
1624
+ :param importe: Importe de movimiento expresado en la moneda indicada.
1625
+ :param cuenta_contable: Cuenta contable del agente donde se imputará el movimiento. Se debe ingresar el código interno de la cuenta contable.
1626
+ :param fecha_concertacion: Fecha de concertación del recibo de cobro.
1627
+ :param fecha_liquidacion: Fecha de liquidación del recibo de cobro.
1628
+ :param tp_cambio_mov_pais: Tipo de Cambio para convertir el importe del recibo a la moneda local. 1 si es en moneda local.
1629
+ :param cuenta_bancaria_comitente: Cuenta bancaria del cliente. Se debe ingresar el código interno. Es solo informativo, queda registrado solamente en el recibo de cobro.
1630
+ :param controla_saldo_monetario: Indica si debe controlar el saldo monetario para hacer el egreso.
1631
+ :param num_referencia: Nro de referencia del movimiento.
1632
+ :param comentario: Comentario del movimiento
1633
+ :param id_origen: Id de origen del movimiento
1634
+ :param es_echeq: True is es un e-cheque.
1635
+ :param numero_cheque: Si es un cheque, ingresar numero de cheque.s
1636
+ :return:
1637
+ """
1638
+ req_body = {
1639
+ "cuenta": cuenta,
1640
+ "moneda": moneda,
1641
+ "fechaConcertacion": fecha_concertacion.strftime("%Y-%m-%d"),
1642
+ "fechaLiquidacion": fecha_liquidacion.strftime("%Y-%m-%d"),
1643
+ "importe": importe,
1644
+ "tpCambioMovPais": tp_cambio_mov_pais,
1645
+ "cuentaContable": cuenta_contable,
1646
+ "cuentaBancariaComitente": cuenta_bancaria_comitente,
1647
+ "numReferencia": num_referencia,
1648
+ "comentario": comentario,
1649
+ "idOrigen": id_origen,
1650
+ "controlaSaldoMonetario": controla_saldo_monetario,
1651
+ "esEcheq": es_echeq,
1652
+ "numeroCheque": numero_cheque
1653
+ }
1654
+ self.__pre_connection()
1655
+ return self.__make_request(
1656
+ request_endpoint=f"/insert-comprobante-pago",
1657
+ request_body=req_body,
1658
+ request_method=HTTPMethod.POST
1659
+ )
@@ -0,0 +1,5 @@
1
+ class PyEscoAPIError(Exception):
2
+ def __init__(self, endpoint, status_code, error_message):
3
+ self.endpoint = endpoint
4
+ self.status_code = status_code
5
+ self.error_message = error_message
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyEscoAPI
3
- Version: 0.0.7
3
+ Version: 0.0.10
4
4
  Summary: Python client for Esco API (Esco bolsa)
5
5
  Author-email: Codetria <hola@codetria.com>
6
6
  License: MIT License
@@ -3,6 +3,7 @@ pyproject.toml
3
3
  pyEscoAPI/__init__.py
4
4
  pyEscoAPI/dataclasses.py
5
5
  pyEscoAPI/esco_api.py
6
+ pyEscoAPI/exception.py
6
7
  pyEscoAPI.egg-info/PKG-INFO
7
8
  pyEscoAPI.egg-info/SOURCES.txt
8
9
  pyEscoAPI.egg-info/dependency_links.txt
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = 'pyEscoAPI'
7
- version = "0.0.7"
7
+ version = "0.0.10"
8
8
  license = {text = "MIT License"}
9
9
  authors = [
10
10
  { name="Codetria", email="hola@codetria.com" },
@@ -103,6 +103,13 @@ def test_get_cotizaciones_cierre_search(api_client):
103
103
  assert result[0]["monedaAbreviatura"] == "ARS"
104
104
 
105
105
 
106
+ def test_get_cotizaciones_monedas(api_client):
107
+ result = api_client.get_cotizaciones_monedas()
108
+ assert len(result) > 0
109
+ assert "iso" in result[0]
110
+ assert "cotizacion" in result[0]
111
+
112
+
106
113
  def test_get_instrumento(api_client):
107
114
  instrumento = "COME"
108
115
  result = api_client.get_instrumento(abreviatura=instrumento)
File without changes
File without changes