Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 40 additions & 1 deletion wsfev1.py
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ def CrearFactura(self, concepto=1, tipo_doc=80, nro_doc="", tipo_cbte=1, punto_v
cbt_desde=0, cbt_hasta=0, imp_total=0.00, imp_tot_conc=0.00, imp_neto=0.00,
imp_iva=0.00, imp_trib=0.00, imp_op_ex=0.00, fecha_cbte="", fecha_venc_pago=None,
fecha_serv_desde=None, fecha_serv_hasta=None, #--
moneda_id="PES", moneda_ctz="1.0000", caea=None, fecha_hs_gen=None, **kwargs
moneda_id="PES", moneda_ctz="1.0000", cond_iva_receptor=1, act_codigos=[], caea=None, fecha_hs_gen=None, **kwargs
):

"Creo un objeto factura (interna)"
Expand All @@ -148,6 +148,8 @@ def CrearFactura(self, concepto=1, tipo_doc=80, nro_doc="", tipo_cbte=1, punto_v
'fecha_cbte': fecha_cbte,
'fecha_venc_pago': fecha_venc_pago,
'moneda_id': moneda_id, 'moneda_ctz': moneda_ctz,
'cond_iva_receptor': cond_iva_receptor,
'act_codigos': act_codigos,
'concepto': concepto, 'fecha_hs_gen': fecha_hs_gen,
'cbtes_asoc': [],
'tributos': [],
Expand Down Expand Up @@ -254,6 +256,7 @@ def CAESolicitar(self):
'FchVtoPago': f.get('fecha_venc_pago'),
'MonId': f['moneda_id'],
'MonCotiz': f['moneda_ctz'],
'CondicionIVAReceptorId': f['cond_iva_receptor'],
'CbtesAsoc': f['cbtes_asoc'] and [
{'CbteAsoc': {
'Tipo': cbte_asoc['tipo'],
Expand Down Expand Up @@ -290,6 +293,12 @@ def CAESolicitar(self):
'DocNro': comprador['doc_nro'],
'Porcentaje': comprador['porcentaje'],
}} for comprador in f['compradores']] or None,
**({'Actividades': [
{'Actividad': {
'Id': actividad_id,
}}
for actividad_id in f['act_codigos']
]} if f['act_codigos'] else {})
}
}]
})
Expand Down Expand Up @@ -392,6 +401,7 @@ def CompConsultar(self, tipo_cbte, punto_vta, cbte_nro, reproceso=False):
'FchVtoPago': f.get('fecha_venc_pago'),
'MonId': f['moneda_id'],
'MonCotiz': float(f['moneda_ctz']),
'CondicionIVAReceptorId': f['cond_iva_receptor'],
'CbtesAsoc': [
{'CbteAsoc': {
'Tipo': cbte_asoc['tipo'],
Expand Down Expand Up @@ -428,6 +438,12 @@ def CompConsultar(self, tipo_cbte, punto_vta, cbte_nro, reproceso=False):
'DocNro': comprador['doc_nro'],
'Porcentaje': comprador['porcentaje'],
}} for comprador in f['compradores']],
**({'Actividades': [
{'Actividad': {
'Id': actividad_id,
}}
for actividad_id in f['act_codigos']
]} if f['act_codigos'] else {})
}
verifica(verificaciones, resultget.copy(), difs)
if difs:
Expand Down Expand Up @@ -455,6 +471,10 @@ def CompConsultar(self, tipo_cbte, punto_vta, cbte_nro, reproceso=False):
'fecha_venc_pago': resultget.get('FchVtoPago'),
'moneda_id': resultget.get('MonId'),
'moneda_ctz': resultget.get('MonCotiz'),
'cond_iva_receptor': resultget.get('CondicionIVAReceptorId'),
'act_codigos': [
actividad['Actividad']['Id']
for actividad in resultget.get('Actividades', [])],
'cbtes_asoc': [
{
'tipo': cbte_asoc['CbteAsoc']['Tipo'],
Expand Down Expand Up @@ -574,6 +594,7 @@ def CAESolicitarX(self):
'FchVtoPago': f.get('fecha_venc_pago'),
'MonId': f['moneda_id'],
'MonCotiz': f['moneda_ctz'],
'CondicionIVAReceptorId': f['cond_iva_receptor'],
'CbtesAsoc': [
{'CbteAsoc': {
'Tipo': cbte_asoc['tipo'],
Expand Down Expand Up @@ -604,6 +625,12 @@ def CAESolicitarX(self):
'Id': opcional['opcional_id'],
'Valor': opcional['valor'],
}} for opcional in f['opcionales']] or None,
**({'Actividades': [
{'Actividad': {
'Id': actividad_id,
}}
for actividad_id in f['act_codigos']
]} if f['act_codigos'] else {})
}
} for f in self.facturas]
})
Expand Down Expand Up @@ -763,6 +790,7 @@ def CAEARegInformativo(self):
'FchVtoPago': f.get('fecha_venc_pago'),
'MonId': f['moneda_id'],
'MonCotiz': f['moneda_ctz'],
'CondicionIVAReceptorId': f['cond_iva_receptor'],
'CbtesAsoc': [
{'CbteAsoc': {
'Tipo': cbte_asoc['tipo'],
Expand Down Expand Up @@ -798,6 +826,12 @@ def CAEARegInformativo(self):
}} for opcional in f['opcionales']] or None,
'CAEA': f['caea'],
'CbteFchHsGen': f.get('fecha_hs_gen'),
**({'Actividades': [
{'Actividad': {
'Id': actividad_id,
}}
for actividad_id in f['act_codigos']
]} if f['act_codigos'] else {})
}
}]
})
Expand Down Expand Up @@ -1122,6 +1156,9 @@ def main():
wsfev1.AgregarComprador(80, "30500010912", 99.99)
wsfev1.AgregarComprador(80, "30999032083", 0.01)

act_codes = [883101, 883102]
wsfev1.EstablecerCampoFactura("act_codigos", act_codes)

# datos de Factura de Crédito Electrónica MiPyMEs (FCE):
if '--fce' in sys.argv:
wsfev1.AgregarOpcional(2101, "2850590940090418135201") # CBU
Expand Down Expand Up @@ -1220,8 +1257,10 @@ def main():
p_assert_eq(wsfev1.ObtenerTagXml('CbteFch'), wsfev1.FechaCbte)
p_assert_eq(wsfev1.ObtenerTagXml('MonId'), "PES")
p_assert_eq(wsfev1.ObtenerTagXml('MonCotiz'), "1")
p_assert_eq(wsfev1.ObtenerTagXml('CondicionIVAReceptorId'), "1")
p_assert_eq(wsfev1.ObtenerTagXml('DocTipo'), "80")
p_assert_eq(wsfev1.ObtenerTagXml('DocNro'), "30500010912")
p_assert_eq(wsfev1.ObtenerTagXml('Actividades', 'Actividad', 0, 'Id'), "883101")

if "--parametros" in sys.argv:
import codecs
Expand Down