@@ -59,6 +59,7 @@ class WSFEv1(BaseWS):
59
59
"AgregarOpcional" ,
60
60
"AgregarComprador" ,
61
61
"AgregarPeriodoComprobantesAsociados" ,
62
+ "AgregarActividad" ,
62
63
"CompUltimoAutorizado" ,
63
64
"CompConsultar" ,
64
65
"CAEASolicitar" ,
@@ -80,6 +81,7 @@ class WSFEv1(BaseWS):
80
81
"ParamGetTiposPaises" ,
81
82
"ParamGetCotizacion" ,
82
83
"ParamGetPtosVenta" ,
84
+ "ParamGetActividades" ,
83
85
"AnalizarXml" ,
84
86
"ObtenerTagXml" ,
85
87
"LoadTestXML" ,
@@ -247,6 +249,7 @@ def CrearFactura(
247
249
"iva" : [],
248
250
"opcionales" : [],
249
251
"compradores" : [],
252
+ "actividades" : [],
250
253
}
251
254
if fecha_serv_desde :
252
255
fact ["fecha_serv_desde" ] = fecha_serv_desde
@@ -324,6 +327,12 @@ def AgregarComprador(self, doc_tipo=80, doc_nro=0, porcentaje=100.00, **kwarg):
324
327
self .factura ["compradores" ].append (comp )
325
328
return True
326
329
330
+ def AgregarActividad (self , actividad_id = 0 , ** kwarg ):
331
+ "Agrego actividad a una factura (interna)"
332
+ op = { 'actividad_id' : actividad_id }
333
+ self .factura ['actividades' ].append (op )
334
+ return True
335
+
327
336
def ObtenerCampoFactura (self , * campos ):
328
337
"Obtener el valor devuelto de AFIP para un campo de factura"
329
338
# cada campo puede ser una clave string (dict) o una posición (list)
@@ -444,6 +453,15 @@ def CAESolicitar(self):
444
453
for comprador in f ["compradores" ]
445
454
]
446
455
or None ,
456
+ "Actividades" : [
457
+ {
458
+ "Actividad" : {
459
+ 'Id' : actividad ['actividad_id' ],
460
+ }
461
+ }
462
+ for actividad in f ["actividades" ]
463
+ ]
464
+ or None ,
447
465
}
448
466
}
449
467
],
@@ -609,6 +627,14 @@ def CompConsultar(self, tipo_cbte, punto_vta, cbte_nro, reproceso=False):
609
627
}
610
628
for comprador in f ["compradores" ]
611
629
],
630
+ "Actividades" : [
631
+ {
632
+ "Actividad" : {
633
+ "Id" : actividad ["actividad_id" ],
634
+ }
635
+ }
636
+ for actividad in f ["actividades" ]
637
+ ],
612
638
}
613
639
copia = resultget .copy ()
614
640
# TODO: ordenar / convertir opcionales (por ahora no se verifican)
@@ -684,6 +710,12 @@ def CompConsultar(self, tipo_cbte, punto_vta, cbte_nro, reproceso=False):
684
710
}
685
711
for comp in resultget .get ("Compradores" , [])
686
712
],
713
+ "actividades" : [
714
+ {
715
+ "actividad_id" : act ["Actividad" ]["Id" ],
716
+ }
717
+ for act in resultget .get ("Actividades" , [])
718
+ ],
687
719
"cae" : resultget .get ("CodAutorizacion" ),
688
720
"resultado" : resultget .get ("Resultado" ),
689
721
"fch_venc_cae" : resultget .get ("FchVto" ),
@@ -828,6 +860,15 @@ def CAESolicitarX(self):
828
860
for opcional in f ["opcionales" ]
829
861
]
830
862
or None ,
863
+ "Actividades" : [
864
+ {
865
+ "Actividad" : {
866
+ "Id" : actividad ["actividad_id" ],
867
+ }
868
+ }
869
+ for actividad in f ["actividades" ]
870
+ ]
871
+ or None ,
831
872
}
832
873
}
833
874
for f in self .facturas
@@ -1258,6 +1299,16 @@ def ParamGetPtosVenta(self, sep="|"):
1258
1299
for p in res .get ("ResultGet" , [])
1259
1300
]
1260
1301
1302
+ @inicializar_y_capturar_excepciones
1303
+ def ParamGetActividades (self , sep = "|" ):
1304
+ "Recuperador de valores referenciales de códigos de Actividades"
1305
+ ret = self .client .FEParamGetActividades (
1306
+ Auth = {'Token' : self .Token , 'Sign' : self .Sign , 'Cuit' : self .Cuit },
1307
+ )
1308
+ res = ret ['FEParamGetActividades' ]
1309
+ return [(u"%(Id)s\t %(Orden)s\t %(Desc)s" % p ['ActividadesTipo' ]).replace ("\t " , sep )
1310
+ for p in res ['ResultGet' ]]
1311
+
1261
1312
1262
1313
def p_assert_eq (a , b ):
1263
1314
print (a , a == b and "==" or "!=" , b )
@@ -1449,6 +1500,9 @@ def main():
1449
1500
if "--rg4540" in sys .argv :
1450
1501
wsfev1 .AgregarPeriodoComprobantesAsociados ("20200101" , "20200131" )
1451
1502
1503
+ if '--rg5259' in sys .argv :
1504
+ wsfev1 .AgregarActividad (960990 )
1505
+
1452
1506
# agregar la factura creada internamente para solicitud múltiple:
1453
1507
if "--multiple" in sys .argv :
1454
1508
wsfev1 .AgregarFacturaX ()
@@ -1575,6 +1629,9 @@ def main():
1575
1629
# print(u"\n".join(wsfev1.ParamGetTiposPaises()))
1576
1630
print ("=== Puntos de Venta ===" )
1577
1631
print (u"\n " .join (wsfev1 .ParamGetPtosVenta ()))
1632
+ if '--rg5259' in sys .argv :
1633
+ print ("=== Actividades ===" )
1634
+ print (u'\n ' .join (wsfev1 .ParamGetActividades ()))
1578
1635
1579
1636
if "--cotizacion" in sys .argv :
1580
1637
print (wsfev1 .ParamGetCotizacion ("DOL" ))
0 commit comments