satcfdi.create.pld.spr   F
last analyzed

Complexity

Total Complexity 81

Size/Duplication

Total Lines 1977
Duplicated Lines 6.37 %

Importance

Changes 0
Metric Value
eloc 995
dl 126
loc 1977
rs 1.605
c 0
b 0
f 0
wmc 81

81 Methods

Rating   Name   Duplication   Size   Complexity  
A CesionDerechosInmueblesType.__init__() 0 12 1
A DatosFusionadasType.__init__() 0 6 1
A CapitalSocialType.__init__() 0 8 1
A CompraVentaInmueblesType.__init__() 0 12 1
A CompraVentaEntidadesMercantilesType.__init__() 0 8 1
A TelefonoType.__init__() 0 10 1
A DatosAccionistaT1Type.__init__() 0 10 1
A ModificatorioType.__init__() 0 8 1
A TipoPersonaMoralType.__init__() 0 8 1
A ExtranjeroType.__init__() 0 20 1
A TipoPersonaSimpleType.__init__() 0 10 1
A DatosInstrumentoType.__init__() 0 14 1
A DatosOperacionFinancieraType.__init__() 0 14 1
A ActivoBancoType.__init__() 0 12 1
A PersonaMoralT1Type.__init__() 0 12 1
A TipoPersonaType.__init__() 0 10 1
A PersonaMoralType.__init__() 0 16 1
A PatrimonioOtroBienType.__init__() 0 8 1
A TipoActividadType.__init__() 0 24 1
A OcupacionType.__init__() 0 8 1
A AportacionMonetariaType.__init__() 0 10 1
A DatosEscindenteType.__init__() 24 24 1
A TipoPersonaT2Type.__init__() 0 10 1
A ActivoInmobiliarioType.__init__() 0 20 1
A AdministracionRecursosType.__init__() 0 8 1
A PatrimonioMonetarioType.__init__() 0 8 1
A DatosAportacionType.__init__() 0 8 1
A PersonaFisicaSimpleType.__init__() 0 18 1
A ContratoType.__init__() 0 8 1
A AportacionOtroBienType.__init__() 0 8 1
A ArchivoType.__init__() 0 6 1
A NacionalType.__init__() 0 14 1
A PersonaAvisoType.__init__() 0 10 1
A DatosTipoPatrimonioType.__init__() 0 10 1
A ActivoOutsourcingType.__init__() 0 10 1
A FideicomisoSimpleType.__init__() 0 10 1
A FusionanteType.__init__() 0 24 1
A DatosEscindidasType.__init__() 0 8 1
A DatosFideicomitenteType.__init__() 0 8 1
A DetalleOperacionesType.__init__() 0 6 1
A AportacionInmuebleType.__init__() 0 12 1
A TipoDomicilioType.__init__() 0 8 1
A TipoActivoType.__init__() 0 12 1
A FideicomisoType.__init__() 0 12 1
A DatosFideicomisarioType.__init__() 0 8 1
A ActivoOtrosType.__init__() 0 6 1
A DatosSociedadMercantilType.__init__() 0 22 1
A ActivoAdministradoType.__init__() 0 8 1
A ConstitucionFideicomisoType.__init__() 0 20 1
A PersonaMoralSimpleType.__init__() 0 12 1
A AlertaType.__init__() 0 8 1
A DatosOperacionType.__init__() 0 10 1
A TipoPersonaT1Type.__init__() 0 10 1
A EscisionType.__init__() 0 8 1
A ActivoVirtualType.__init__() 0 10 1
A AdmonPersonasMoralesType.__init__() 0 12 1
A OrganizacionAportacionesType.__init__() 0 8 1
A DuenoBeneficiarioType.__init__() 0 6 1
A PersonaFisicaType.__init__() 0 22 1
A DatosComiteTecnicoType.__init__() 0 6 1
A ConstitucionSociedadesMercantilesType.__init__() 0 28 1
A DatosAccionistaT3Type.__init__() 0 8 1
A DatosFusionadaType.__init__() 0 20 1
A AvisoType.__init__() 18 18 1
A PersonaMoralT2Type.__init__() 0 14 1
A AreaServicioType.__init__() 0 8 1
A PersonaFisicaT1Type.__init__() 0 18 1
A CaracteristicasInmueble1Type.__init__() 0 24 1
A DatosTipoAportacionType.__init__() 0 10 1
A InformeType.__init__() 10 10 1
A DatosContraparteType.__init__() 0 6 1
A PersonaFisicaT2Type.__init__() 0 20 1
A RepresentanteApoderadoType.__init__() 0 16 1
A PatrimonioInmuebleType.__init__() 0 12 1
A CaracteristicasInmueble2Type.__init__() 0 24 1
A ContratoInstrumentoType.__init__() 0 8 1
A DatosFusionanteType.__init__() 0 8 1
A DatosAccionistaT2Type.__init__() 0 8 1
A SujetoObligadoType.__init__() 0 14 1
A EscindidaType.__init__() 24 24 1
A FusionType.__init__() 0 10 1

How to fix   Duplicated Code    Complexity   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

Complexity

 Tip:   Before tackling complexity, make sure that you eliminate any duplication first. This often can reduce the size of classes significantly.

Complex classes like satcfdi.create.pld.spr often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
"""spr http://www.uif.shcp.gob.mx/recepcion/spr"""
2
from decimal import Decimal
3
from datetime import datetime, date, time
4
from collections.abc import Sequence
5
from ...cfdi import CFDI
6
from ...xelement import XElement
7
from ...utils import ScalarMap
8
9
10
class ActivoVirtualType(ScalarMap):
11
    """
12
    
13
    :param tipo_activo_virtual:
14
    :param cantidad_activo_virtual:
15
    :param descripcion_activo_virtual:
16
    """
17
    
18
    def __init__(
19
            self,
20
            tipo_activo_virtual: int,
21
            cantidad_activo_virtual: str,
22
            descripcion_activo_virtual: str = None,
23
    ): 
24
        super().__init__({
25
            'TipoActivoVirtual': tipo_activo_virtual,
26
            'CantidadActivoVirtual': cantidad_activo_virtual,
27
            'DescripcionActivoVirtual': descripcion_activo_virtual,
28
        })
29
        
30
31
class DatosOperacionFinancieraType(ScalarMap):
32
    """
33
    
34
    :param instrumento_monetario:
35
    :param monto_operacion:
36
    :param fecha_pago:
37
    :param activo_virtual:
38
    :param moneda:
39
    """
40
    
41
    def __init__(
42
            self,
43
            instrumento_monetario: str,
44
            monto_operacion: str,
45
            fecha_pago: date = None,
46
            activo_virtual: ActivoVirtualType | dict = None,
47
            moneda: str = None,
48
    ): 
49
        super().__init__({
50
            'InstrumentoMonetario': instrumento_monetario,
51
            'MontoOperacion': monto_operacion,
52
            'FechaPago': fecha_pago,
53
            'ActivoVirtual': activo_virtual,
54
            'Moneda': moneda,
55
        })
56
        
57
58
class DatosSociedadMercantilType(ScalarMap):
59
    """
60
    
61
    :param denominacion_razon:
62
    :param giro_mercantil:
63
    :param pais_nacionalidad:
64
    :param acciones_adquiridas:
65
    :param acciones_totales:
66
    :param datos_contraparte:
67
    :param fecha_constitucion:
68
    :param rfc:
69
    :param folio_mercantil:
70
    """
71
    
72
    def __init__(
73
            self,
74
            denominacion_razon: str,
75
            giro_mercantil: str,
76
            pais_nacionalidad: str,
77
            acciones_adquiridas: str,
78
            acciones_totales: str,
79
            datos_contraparte: TipoPersonaT1Type | dict,
80
            fecha_constitucion: date = None,
81
            rfc: str = None,
82
            folio_mercantil: str = None,
83
    ): 
84
        super().__init__({
85
            'DenominacionRazon': denominacion_razon,
86
            'GiroMercantil': giro_mercantil,
87
            'PaisNacionalidad': pais_nacionalidad,
88
            'AccionesAdquiridas': acciones_adquiridas,
89
            'AccionesTotales': acciones_totales,
90
            'DatosContraparte': datos_contraparte,
91
            'FechaConstitucion': fecha_constitucion,
92
            'Rfc': rfc,
93
            'FolioMercantil': folio_mercantil,
94
        })
95
        
96
97
class CompraVentaEntidadesMercantilesType(ScalarMap):
98
    """
99
    
100
    :param tipo_operacion:
101
    :param datos_sociedad_mercantil:
102
    """
103
    
104
    def __init__(
105
            self,
106
            tipo_operacion: str,
107
            datos_sociedad_mercantil: DatosSociedadMercantilType | dict | Sequence[DatosSociedadMercantilType | dict],
108
    ): 
109
        super().__init__({
110
            'TipoOperacion': tipo_operacion,
111
            'DatosSociedadMercantil': datos_sociedad_mercantil,
112
        })
113
        
114
115
class DatosComiteTecnicoType(ScalarMap):
116
    """
117
    
118
    :param comite_tecnico:
119
    """
120
    
121
    def __init__(
122
            self,
123
            comite_tecnico: str,
124
    ): 
125
        super().__init__({
126
            'ComiteTecnico': comite_tecnico,
127
        })
128
        
129
130
class DatosFideicomisarioType(ScalarMap):
131
    """
132
    
133
    :param datos_fideicomisarios_determinados:
134
    :param tipo_persona:
135
    """
136
    
137
    def __init__(
138
            self,
139
            datos_fideicomisarios_determinados: str,
140
            tipo_persona: TipoPersonaT1Type | dict = None,
141
    ): 
142
        super().__init__({
143
            'DatosFideicomisariosDeterminados': datos_fideicomisarios_determinados,
144
            'TipoPersona': tipo_persona,
145
        })
146
        
147
148
class PatrimonioOtroBienType(ScalarMap):
149
    """
150
    
151
    :param descripcion:
152
    :param valor_bien:
153
    """
154
    
155
    def __init__(
156
            self,
157
            descripcion: str,
158
            valor_bien: str,
159
    ): 
160
        super().__init__({
161
            'Descripcion': descripcion,
162
            'ValorBien': valor_bien,
163
        })
164
        
165
166
class PatrimonioInmuebleType(ScalarMap):
167
    """
168
    
169
    :param tipo_inmueble:
170
    :param codigo_postal:
171
    :param folio_real:
172
    :param importe_garantia:
173
    """
174
    
175
    def __init__(
176
            self,
177
            tipo_inmueble: str,
178
            codigo_postal: str,
179
            folio_real: str,
180
            importe_garantia: str,
181
    ): 
182
        super().__init__({
183
            'TipoInmueble': tipo_inmueble,
184
            'CodigoPostal': codigo_postal,
185
            'FolioReal': folio_real,
186
            'ImporteGarantia': importe_garantia,
187
        })
188
        
189
190
class PatrimonioMonetarioType(ScalarMap):
191
    """
192
    
193
    :param moneda:
194
    :param monto_operacion:
195
    """
196
    
197
    def __init__(
198
            self,
199
            moneda: str,
200
            monto_operacion: str,
201
    ): 
202
        super().__init__({
203
            'Moneda': moneda,
204
            'MontoOperacion': monto_operacion,
205
        })
206
        
207
208
class DatosTipoPatrimonioType(ScalarMap):
209
    """
210
    
211
    :param patrimonio_monetario:
212
    :param patrimonio_inmueble:
213
    :param patrimonio_otro_bien:
214
    """
215
    
216
    def __init__(
217
            self,
218
            patrimonio_monetario: PatrimonioMonetarioType | dict = None,
219
            patrimonio_inmueble: PatrimonioInmuebleType | dict = None,
220
            patrimonio_otro_bien: PatrimonioOtroBienType | dict = None,
221
    ): 
222
        super().__init__({
223
            'PatrimonioMonetario': patrimonio_monetario,
224
            'PatrimonioInmueble': patrimonio_inmueble,
225
            'PatrimonioOtroBien': patrimonio_otro_bien,
226
        })
227
        
228
229
class DatosFideicomitenteType(ScalarMap):
230
    """
231
    
232
    :param tipo_persona:
233
    :param datos_tipo_patrimonio:
234
    """
235
    
236
    def __init__(
237
            self,
238
            tipo_persona: TipoPersonaT1Type | dict,
239
            datos_tipo_patrimonio: DatosTipoPatrimonioType | dict | Sequence[DatosTipoPatrimonioType | dict],
240
    ): 
241
        super().__init__({
242
            'TipoPersona': tipo_persona,
243
            'DatosTipoPatrimonio': datos_tipo_patrimonio,
244
        })
245
        
246
247
class ConstitucionFideicomisoType(ScalarMap):
248
    """
249
    
250
    :param denominacion_razon:
251
    :param objeto_fideicomiso:
252
    :param monto_total_patrimonio:
253
    :param datos_fideicomitente:
254
    :param datos_fideicomisario:
255
    :param datos_miembro_comite_tecnico:
256
    :param rfc:
257
    :param identificador_fideicomiso:
258
    """
259
    
260
    def __init__(
261
            self,
262
            denominacion_razon: str,
263
            objeto_fideicomiso: str,
264
            monto_total_patrimonio: str,
265
            datos_fideicomitente: DatosFideicomitenteType | dict | Sequence[DatosFideicomitenteType | dict],
266
            datos_fideicomisario: DatosFideicomisarioType | dict | Sequence[DatosFideicomisarioType | dict],
267
            datos_miembro_comite_tecnico: DatosComiteTecnicoType | dict,
268
            rfc: str = None,
269
            identificador_fideicomiso: str = None,
270
    ): 
271
        super().__init__({
272
            'DenominacionRazon': denominacion_razon,
273
            'ObjetoFideicomiso': objeto_fideicomiso,
274
            'MontoTotalPatrimonio': monto_total_patrimonio,
275
            'DatosFideicomitente': datos_fideicomitente,
276
            'DatosFideicomisario': datos_fideicomisario,
277
            'DatosMiembroComiteTecnico': datos_miembro_comite_tecnico,
278
            'Rfc': rfc,
279
            'IdentificadorFideicomiso': identificador_fideicomiso,
280
        })
281
        
282
283
class TipoPersonaMoralType(ScalarMap):
284
    """
285
    
286
    :param persona_moral:
287
    :param fideicomiso:
288
    """
289
    
290
    def __init__(
291
            self,
292
            persona_moral: PersonaMoralSimpleType | dict = None,
293
            fideicomiso: FideicomisoSimpleType | dict = None,
294
    ): 
295
        super().__init__({
296
            'PersonaMoral': persona_moral,
297
            'Fideicomiso': fideicomiso,
298
        })
299
        
300
301
class AdmonPersonasMoralesType(ScalarMap):
302
    """
303
    
304
    :param tipo_administracion:
305
    :param tipo_operacion:
306
    :param persona_moral_aviso:
307
    :param tipo_persona:
308
    """
309
    
310
    def __init__(
311
            self,
312
            tipo_administracion: str,
313
            tipo_operacion: str,
314
            persona_moral_aviso: str,
315
            tipo_persona: TipoPersonaMoralType | dict = None,
316
    ): 
317
        super().__init__({
318
            'TipoAdministracion': tipo_administracion,
319
            'TipoOperacion': tipo_operacion,
320
            'PersonaMoralAviso': persona_moral_aviso,
321
            'TipoPersona': tipo_persona,
322
        })
323
        
324
325 View Code Duplication
class EscindidaType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
326
    """
327
    
328
    :param denominacion_razon:
329
    :param pais_nacionalidad:
330
    :param giro_mercantil:
331
    :param capital_social_fijo:
332
    :param numero_total_acciones:
333
    :param datos_accionista:
334
    :param fecha_constitucion:
335
    :param rfc:
336
    :param capital_social_variable:
337
    :param folio_mercantil:
338
    """
339
    
340
    def __init__(
341
            self,
342
            denominacion_razon: str,
343
            pais_nacionalidad: str,
344
            giro_mercantil: str,
345
            capital_social_fijo: str,
346
            numero_total_acciones: str,
347
            datos_accionista: DatosAccionistaT2Type | dict | Sequence[DatosAccionistaT2Type | dict],
348
            fecha_constitucion: date = None,
349
            rfc: str = None,
350
            capital_social_variable: str = None,
351
            folio_mercantil: str = None,
352
    ): 
353
        super().__init__({
354
            'DenominacionRazon': denominacion_razon,
355
            'PaisNacionalidad': pais_nacionalidad,
356
            'GiroMercantil': giro_mercantil,
357
            'CapitalSocialFijo': capital_social_fijo,
358
            'NumeroTotalAcciones': numero_total_acciones,
359
            'DatosAccionista': datos_accionista,
360
            'FechaConstitucion': fecha_constitucion,
361
            'Rfc': rfc,
362
            'CapitalSocialVariable': capital_social_variable,
363
            'FolioMercantil': folio_mercantil,
364
        })
365
        
366
367
class DatosEscindidasType(ScalarMap):
368
    """
369
    
370
    :param escindidas_determinadas:
371
    :param dato_escindida:
372
    """
373
    
374
    def __init__(
375
            self,
376
            escindidas_determinadas: str,
377
            dato_escindida: EscindidaType | dict | Sequence[EscindidaType | dict] = None,
378
    ): 
379
        super().__init__({
380
            'EscindidasDeterminadas': escindidas_determinadas,
381
            'DatoEscindida': dato_escindida,
382
        })
383
        
384
385
class DatosAccionistaT3Type(ScalarMap):
386
    """
387
    
388
    :param tipo_persona:
389
    :param numero_acciones:
390
    """
391
    
392
    def __init__(
393
            self,
394
            tipo_persona: TipoPersonaT1Type | dict,
395
            numero_acciones: str,
396
    ): 
397
        super().__init__({
398
            'TipoPersona': tipo_persona,
399
            'NumeroAcciones': numero_acciones,
400
        })
401
        
402
403 View Code Duplication
class DatosEscindenteType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
404
    """
405
    
406
    :param denominacion_razon:
407
    :param pais_nacionalidad:
408
    :param giro_mercantil:
409
    :param capital_social_fijo:
410
    :param escindente_subsiste:
411
    :param fecha_constitucion:
412
    :param rfc:
413
    :param capital_social_variable:
414
    :param folio_mercantil:
415
    :param datos_accionista_escindente:
416
    """
417
    
418
    def __init__(
419
            self,
420
            denominacion_razon: str,
421
            pais_nacionalidad: str,
422
            giro_mercantil: str,
423
            capital_social_fijo: str,
424
            escindente_subsiste: str,
425
            fecha_constitucion: date = None,
426
            rfc: str = None,
427
            capital_social_variable: str = None,
428
            folio_mercantil: str = None,
429
            datos_accionista_escindente: DatosAccionistaT3Type | dict | Sequence[DatosAccionistaT3Type | dict] = None,
430
    ): 
431
        super().__init__({
432
            'DenominacionRazon': denominacion_razon,
433
            'PaisNacionalidad': pais_nacionalidad,
434
            'GiroMercantil': giro_mercantil,
435
            'CapitalSocialFijo': capital_social_fijo,
436
            'EscindenteSubsiste': escindente_subsiste,
437
            'FechaConstitucion': fecha_constitucion,
438
            'Rfc': rfc,
439
            'CapitalSocialVariable': capital_social_variable,
440
            'FolioMercantil': folio_mercantil,
441
            'DatosAccionistaEscindente': datos_accionista_escindente,
442
        })
443
        
444
445
class EscisionType(ScalarMap):
446
    """
447
    
448
    :param datos_escindente:
449
    :param datos_escindidas:
450
    """
451
    
452
    def __init__(
453
            self,
454
            datos_escindente: DatosEscindenteType | dict,
455
            datos_escindidas: DatosEscindidasType | dict,
456
    ): 
457
        super().__init__({
458
            'DatosEscindente': datos_escindente,
459
            'DatosEscindidas': datos_escindidas,
460
        })
461
        
462
463
class DatosAccionistaT2Type(ScalarMap):
464
    """
465
    
466
    :param tipo_persona:
467
    :param numero_acciones:
468
    """
469
    
470
    def __init__(
471
            self,
472
            tipo_persona: TipoPersonaT1Type | dict,
473
            numero_acciones: str,
474
    ): 
475
        super().__init__({
476
            'TipoPersona': tipo_persona,
477
            'NumeroAcciones': numero_acciones,
478
        })
479
        
480
481
class FusionanteType(ScalarMap):
482
    """
483
    
484
    :param denominacion_razon:
485
    :param pais_nacionalidad:
486
    :param giro_mercantil:
487
    :param capital_social_fijo:
488
    :param numero_total_acciones:
489
    :param datos_accionista:
490
    :param fecha_constitucion:
491
    :param rfc:
492
    :param capital_social_variable:
493
    :param folio_mercantil:
494
    """
495
    
496
    def __init__(
497
            self,
498
            denominacion_razon: str,
499
            pais_nacionalidad: str,
500
            giro_mercantil: str,
501
            capital_social_fijo: str,
502
            numero_total_acciones: str,
503
            datos_accionista: DatosAccionistaT2Type | dict | Sequence[DatosAccionistaT2Type | dict],
504
            fecha_constitucion: date = None,
505
            rfc: str = None,
506
            capital_social_variable: str = None,
507
            folio_mercantil: str = None,
508
    ): 
509
        super().__init__({
510
            'DenominacionRazon': denominacion_razon,
511
            'PaisNacionalidad': pais_nacionalidad,
512
            'GiroMercantil': giro_mercantil,
513
            'CapitalSocialFijo': capital_social_fijo,
514
            'NumeroTotalAcciones': numero_total_acciones,
515
            'DatosAccionista': datos_accionista,
516
            'FechaConstitucion': fecha_constitucion,
517
            'Rfc': rfc,
518
            'CapitalSocialVariable': capital_social_variable,
519
            'FolioMercantil': folio_mercantil,
520
        })
521
        
522
523
class DatosFusionanteType(ScalarMap):
524
    """
525
    
526
    :param fusionante_determinadas:
527
    :param fusionante:
528
    """
529
    
530
    def __init__(
531
            self,
532
            fusionante_determinadas: str,
533
            fusionante: FusionanteType | dict = None,
534
    ): 
535
        super().__init__({
536
            'FusionanteDeterminadas': fusionante_determinadas,
537
            'Fusionante': fusionante,
538
        })
539
        
540
541
class DatosFusionadaType(ScalarMap):
542
    """
543
    
544
    :param denominacion_razon:
545
    :param pais_nacionalidad:
546
    :param giro_mercantil:
547
    :param capital_social_fijo:
548
    :param fecha_constitucion:
549
    :param rfc:
550
    :param capital_social_variable:
551
    :param folio_mercantil:
552
    """
553
    
554
    def __init__(
555
            self,
556
            denominacion_razon: str,
557
            pais_nacionalidad: str,
558
            giro_mercantil: str,
559
            capital_social_fijo: str,
560
            fecha_constitucion: date = None,
561
            rfc: str = None,
562
            capital_social_variable: str = None,
563
            folio_mercantil: str = None,
564
    ): 
565
        super().__init__({
566
            'DenominacionRazon': denominacion_razon,
567
            'PaisNacionalidad': pais_nacionalidad,
568
            'GiroMercantil': giro_mercantil,
569
            'CapitalSocialFijo': capital_social_fijo,
570
            'FechaConstitucion': fecha_constitucion,
571
            'Rfc': rfc,
572
            'CapitalSocialVariable': capital_social_variable,
573
            'FolioMercantil': folio_mercantil,
574
        })
575
        
576
577
class DatosFusionadasType(ScalarMap):
578
    """
579
    
580
    :param datos_fusionada:
581
    """
582
    
583
    def __init__(
584
            self,
585
            datos_fusionada: DatosFusionadaType | dict | Sequence[DatosFusionadaType | dict],
586
    ): 
587
        super().__init__({
588
            'DatosFusionada': datos_fusionada,
589
        })
590
        
591
592
class FusionType(ScalarMap):
593
    """
594
    
595
    :param tipo_fusion:
596
    :param datos_fusionadas:
597
    :param datos_fusionante:
598
    """
599
    
600
    def __init__(
601
            self,
602
            tipo_fusion: str,
603
            datos_fusionadas: DatosFusionadasType | dict,
604
            datos_fusionante: DatosFusionanteType | dict,
605
    ): 
606
        super().__init__({
607
            'TipoFusion': tipo_fusion,
608
            'DatosFusionadas': datos_fusionadas,
609
            'DatosFusionante': datos_fusionante,
610
        })
611
        
612
613
class AportacionOtroBienType(ScalarMap):
614
    """
615
    
616
    :param descripcion:
617
    :param valor_aportacion:
618
    """
619
    
620
    def __init__(
621
            self,
622
            descripcion: str,
623
            valor_aportacion: str,
624
    ): 
625
        super().__init__({
626
            'Descripcion': descripcion,
627
            'ValorAportacion': valor_aportacion,
628
        })
629
        
630
631
class AportacionInmuebleType(ScalarMap):
632
    """
633
    
634
    :param tipo_inmueble:
635
    :param codigo_postal:
636
    :param folio_real:
637
    :param valor_aportacion:
638
    """
639
    
640
    def __init__(
641
            self,
642
            tipo_inmueble: str,
643
            codigo_postal: str,
644
            folio_real: str,
645
            valor_aportacion: str,
646
    ): 
647
        super().__init__({
648
            'TipoInmueble': tipo_inmueble,
649
            'CodigoPostal': codigo_postal,
650
            'FolioReal': folio_real,
651
            'ValorAportacion': valor_aportacion,
652
        })
653
        
654
655
class AportacionMonetariaType(ScalarMap):
656
    """
657
    
658
    :param instrumento_monetario:
659
    :param moneda:
660
    :param monto_operacion:
661
    """
662
    
663
    def __init__(
664
            self,
665
            instrumento_monetario: str,
666
            moneda: str,
667
            monto_operacion: str,
668
    ): 
669
        super().__init__({
670
            'InstrumentoMonetario': instrumento_monetario,
671
            'Moneda': moneda,
672
            'MontoOperacion': monto_operacion,
673
        })
674
        
675
676
class DatosTipoAportacionType(ScalarMap):
677
    """
678
    
679
    :param aportacion_monetaria:
680
    :param aportacion_inmueble:
681
    :param aportacion_otro_bien:
682
    """
683
    
684
    def __init__(
685
            self,
686
            aportacion_monetaria: AportacionMonetariaType | dict = None,
687
            aportacion_inmueble: AportacionInmuebleType | dict = None,
688
            aportacion_otro_bien: AportacionOtroBienType | dict = None,
689
    ): 
690
        super().__init__({
691
            'AportacionMonetaria': aportacion_monetaria,
692
            'AportacionInmueble': aportacion_inmueble,
693
            'AportacionOtroBien': aportacion_otro_bien,
694
        })
695
        
696
697
class PersonaMoralT2Type(ScalarMap):
698
    """
699
    
700
    :param denominacion_razon:
701
    :param pais_nacionalidad:
702
    :param giro_mercantil:
703
    :param fecha_constitucion:
704
    :param rfc:
705
    """
706
    
707
    def __init__(
708
            self,
709
            denominacion_razon: str,
710
            pais_nacionalidad: str,
711
            giro_mercantil: str,
712
            fecha_constitucion: date = None,
713
            rfc: str = None,
714
    ): 
715
        super().__init__({
716
            'DenominacionRazon': denominacion_razon,
717
            'PaisNacionalidad': pais_nacionalidad,
718
            'GiroMercantil': giro_mercantil,
719
            'FechaConstitucion': fecha_constitucion,
720
            'Rfc': rfc,
721
        })
722
        
723
724
class PersonaFisicaT2Type(ScalarMap):
725
    """
726
    
727
    :param nombre:
728
    :param apellido_paterno:
729
    :param apellido_materno:
730
    :param pais_nacionalidad:
731
    :param actividad_economica:
732
    :param fecha_nacimiento:
733
    :param rfc:
734
    :param curp:
735
    """
736
    
737
    def __init__(
738
            self,
739
            nombre: str,
740
            apellido_paterno: str,
741
            apellido_materno: str,
742
            pais_nacionalidad: str,
743
            actividad_economica: str,
744
            fecha_nacimiento: date = None,
745
            rfc: str = None,
746
            curp: str = None,
747
    ): 
748
        super().__init__({
749
            'Nombre': nombre,
750
            'ApellidoPaterno': apellido_paterno,
751
            'ApellidoMaterno': apellido_materno,
752
            'PaisNacionalidad': pais_nacionalidad,
753
            'ActividadEconomica': actividad_economica,
754
            'FechaNacimiento': fecha_nacimiento,
755
            'Rfc': rfc,
756
            'Curp': curp,
757
        })
758
        
759
760
class TipoPersonaT2Type(ScalarMap):
761
    """
762
    
763
    :param persona_fisica:
764
    :param persona_moral:
765
    :param fideicomiso:
766
    """
767
    
768
    def __init__(
769
            self,
770
            persona_fisica: PersonaFisicaT2Type | dict = None,
771
            persona_moral: PersonaMoralT2Type | dict = None,
772
            fideicomiso: FideicomisoSimpleType | dict = None,
773
    ): 
774
        super().__init__({
775
            'PersonaFisica': persona_fisica,
776
            'PersonaMoral': persona_moral,
777
            'Fideicomiso': fideicomiso,
778
        })
779
        
780
781
class DatosAportacionType(ScalarMap):
782
    """
783
    
784
    :param datos_persona_aporta:
785
    :param datos_tipo_aportacion:
786
    """
787
    
788
    def __init__(
789
            self,
790
            datos_persona_aporta: TipoPersonaT2Type | dict,
791
            datos_tipo_aportacion: DatosTipoAportacionType | dict | Sequence[DatosTipoAportacionType | dict],
792
    ): 
793
        super().__init__({
794
            'DatosPersonaAporta': datos_persona_aporta,
795
            'DatosTipoAportacion': datos_tipo_aportacion,
796
        })
797
        
798
799
class OrganizacionAportacionesType(ScalarMap):
800
    """
801
    
802
    :param motivo_aportacion:
803
    :param datos_aportacion:
804
    """
805
    
806
    def __init__(
807
            self,
808
            motivo_aportacion: str,
809
            datos_aportacion: DatosAportacionType | dict | Sequence[DatosAportacionType | dict],
810
    ): 
811
        super().__init__({
812
            'MotivoAportacion': motivo_aportacion,
813
            'DatosAportacion': datos_aportacion,
814
        })
815
        
816
817
class CapitalSocialType(ScalarMap):
818
    """
819
    
820
    :param capital_fijo:
821
    :param capital_variable:
822
    """
823
    
824
    def __init__(
825
            self,
826
            capital_fijo: str,
827
            capital_variable: str = None,
828
    ): 
829
        super().__init__({
830
            'CapitalFijo': capital_fijo,
831
            'CapitalVariable': capital_variable,
832
        })
833
        
834
835
class DatosAccionistaT1Type(ScalarMap):
836
    """
837
    
838
    :param cargo_accionista:
839
    :param tipo_persona:
840
    :param numero_acciones:
841
    """
842
    
843
    def __init__(
844
            self,
845
            cargo_accionista: str,
846
            tipo_persona: TipoPersonaT1Type | dict,
847
            numero_acciones: str,
848
    ): 
849
        super().__init__({
850
            'CargoAccionista': cargo_accionista,
851
            'TipoPersona': tipo_persona,
852
            'NumeroAcciones': numero_acciones,
853
        })
854
        
855
856
class ConstitucionSociedadesMercantilesType(ScalarMap):
857
    """
858
    
859
    :param tipo_persona_moral:
860
    :param denominacion_razon:
861
    :param giro_mercantil:
862
    :param numero_total_acciones:
863
    :param entidad_federativa:
864
    :param consejo_vigilancia:
865
    :param motivo_constitucion:
866
    :param datos_accionista:
867
    :param capital_social:
868
    :param tipo_persona_moral_otra:
869
    :param folio_mercantil:
870
    :param instrumento_publico:
871
    """
872
    
873
    def __init__(
874
            self,
875
            tipo_persona_moral: int,
876
            denominacion_razon: str,
877
            giro_mercantil: str,
878
            numero_total_acciones: str,
879
            entidad_federativa: int,
880
            consejo_vigilancia: str,
881
            motivo_constitucion: str,
882
            datos_accionista: DatosAccionistaT1Type | dict | Sequence[DatosAccionistaT1Type | dict],
883
            capital_social: CapitalSocialType | dict,
884
            tipo_persona_moral_otra: str = None,
885
            folio_mercantil: str = None,
886
            instrumento_publico: str = None,
887
    ): 
888
        super().__init__({
889
            'TipoPersonaMoral': tipo_persona_moral,
890
            'DenominacionRazon': denominacion_razon,
891
            'GiroMercantil': giro_mercantil,
892
            'NumeroTotalAcciones': numero_total_acciones,
893
            'EntidadFederativa': entidad_federativa,
894
            'ConsejoVigilancia': consejo_vigilancia,
895
            'MotivoConstitucion': motivo_constitucion,
896
            'DatosAccionista': datos_accionista,
897
            'CapitalSocial': capital_social,
898
            'TipoPersonaMoralOtra': tipo_persona_moral_otra,
899
            'FolioMercantil': folio_mercantil,
900
            'InstrumentoPublico': instrumento_publico,
901
        })
902
        
903
904
class ActivoOtrosType(ScalarMap):
905
    """
906
    
907
    :param descripcion_activo_administrado:
908
    """
909
    
910
    def __init__(
911
            self,
912
            descripcion_activo_administrado: str,
913
    ): 
914
        super().__init__({
915
            'DescripcionActivoAdministrado': descripcion_activo_administrado,
916
        })
917
        
918
919
class ActivoAdministradoType(ScalarMap):
920
    """
921
    
922
    :param tipo_activo_administrado:
923
    :param descripcion_otro_activo_administrado:
924
    """
925
    
926
    def __init__(
927
            self,
928
            tipo_activo_administrado: int,
929
            descripcion_otro_activo_administrado: str = None,
930
    ): 
931
        super().__init__({
932
            'TipoActivoAdministrado': tipo_activo_administrado,
933
            'DescripcionOtroActivoAdministrado': descripcion_otro_activo_administrado,
934
        })
935
        
936
937
class AreaServicioType(ScalarMap):
938
    """
939
    
940
    :param tipo_area_servicio:
941
    :param descripcion_otro_area_servicio:
942
    """
943
    
944
    def __init__(
945
            self,
946
            tipo_area_servicio: int,
947
            descripcion_otro_area_servicio: str = None,
948
    ): 
949
        super().__init__({
950
            'TipoAreaServicio': tipo_area_servicio,
951
            'DescripcionOtroAreaServicio': descripcion_otro_area_servicio,
952
        })
953
        
954
955
class ActivoOutsourcingType(ScalarMap):
956
    """
957
    
958
    :param area_servicio:
959
    :param activo_administrado:
960
    :param numero_empleados:
961
    """
962
    
963
    def __init__(
964
            self,
965
            area_servicio: AreaServicioType | dict,
966
            activo_administrado: ActivoAdministradoType | dict,
967
            numero_empleados: int,
968
    ): 
969
        super().__init__({
970
            'AreaServicio': area_servicio,
971
            'ActivoAdministrado': activo_administrado,
972
            'NumeroEmpleados': numero_empleados,
973
        })
974
        
975
976
class ActivoInmobiliarioType(ScalarMap):
977
    """
978
    
979
    :param tipo_inmueble:
980
    :param valor_referencia:
981
    :param colonia:
982
    :param calle:
983
    :param numero_exterior:
984
    :param codigo_postal:
985
    :param folio_real:
986
    :param numero_interior:
987
    """
988
    
989
    def __init__(
990
            self,
991
            tipo_inmueble: str,
992
            valor_referencia: str,
993
            colonia: str,
994
            calle: str,
995
            numero_exterior: str,
996
            codigo_postal: str,
997
            folio_real: str,
998
            numero_interior: str = None,
999
    ): 
1000
        super().__init__({
1001
            'TipoInmueble': tipo_inmueble,
1002
            'ValorReferencia': valor_referencia,
1003
            'Colonia': colonia,
1004
            'Calle': calle,
1005
            'NumeroExterior': numero_exterior,
1006
            'CodigoPostal': codigo_postal,
1007
            'FolioReal': folio_real,
1008
            'NumeroInterior': numero_interior,
1009
        })
1010
        
1011
1012
class ActivoBancoType(ScalarMap):
1013
    """
1014
    
1015
    :param estatus_manejo:
1016
    :param clave_tipo_institucion:
1017
    :param nombre_institucion:
1018
    :param numero_cuenta:
1019
    """
1020
    
1021
    def __init__(
1022
            self,
1023
            estatus_manejo: str,
1024
            clave_tipo_institucion: int,
1025
            nombre_institucion: str,
1026
            numero_cuenta: str,
1027
    ): 
1028
        super().__init__({
1029
            'EstatusManejo': estatus_manejo,
1030
            'ClaveTipoInstitucion': clave_tipo_institucion,
1031
            'NombreInstitucion': nombre_institucion,
1032
            'NumeroCuenta': numero_cuenta,
1033
        })
1034
        
1035
1036
class TipoActivoType(ScalarMap):
1037
    """
1038
    
1039
    :param activo_banco:
1040
    :param activo_inmobiliario:
1041
    :param activo_outsourcing:
1042
    :param activo_otros:
1043
    """
1044
    
1045
    def __init__(
1046
            self,
1047
            activo_banco: ActivoBancoType | dict = None,
1048
            activo_inmobiliario: ActivoInmobiliarioType | dict = None,
1049
            activo_outsourcing: ActivoOutsourcingType | dict = None,
1050
            activo_otros: ActivoOtrosType | dict = None,
1051
    ): 
1052
        super().__init__({
1053
            'ActivoBanco': activo_banco,
1054
            'ActivoInmobiliario': activo_inmobiliario,
1055
            'ActivoOutsourcing': activo_outsourcing,
1056
            'ActivoOtros': activo_otros,
1057
        })
1058
        
1059
1060
class AdministracionRecursosType(ScalarMap):
1061
    """
1062
    
1063
    :param tipo_activo:
1064
    :param numero_operaciones:
1065
    """
1066
    
1067
    def __init__(
1068
            self,
1069
            tipo_activo: TipoActivoType | dict | Sequence[TipoActivoType | dict],
1070
            numero_operaciones: int,
1071
    ): 
1072
        super().__init__({
1073
            'TipoActivo': tipo_activo,
1074
            'NumeroOperaciones': numero_operaciones,
1075
        })
1076
        
1077
1078
class CaracteristicasInmueble2Type(ScalarMap):
1079
    """
1080
    
1081
    :param tipo_inmueble:
1082
    :param valor_referencia:
1083
    :param colonia:
1084
    :param calle:
1085
    :param numero_exterior:
1086
    :param codigo_postal:
1087
    :param dimension_terreno:
1088
    :param dimension_construido:
1089
    :param folio_real:
1090
    :param numero_interior:
1091
    """
1092
    
1093
    def __init__(
1094
            self,
1095
            tipo_inmueble: str,
1096
            valor_referencia: str,
1097
            colonia: str,
1098
            calle: str,
1099
            numero_exterior: str,
1100
            codigo_postal: str,
1101
            dimension_terreno: str,
1102
            dimension_construido: str,
1103
            folio_real: str,
1104
            numero_interior: str = None,
1105
    ): 
1106
        super().__init__({
1107
            'TipoInmueble': tipo_inmueble,
1108
            'ValorReferencia': valor_referencia,
1109
            'Colonia': colonia,
1110
            'Calle': calle,
1111
            'NumeroExterior': numero_exterior,
1112
            'CodigoPostal': codigo_postal,
1113
            'DimensionTerreno': dimension_terreno,
1114
            'DimensionConstruido': dimension_construido,
1115
            'FolioReal': folio_real,
1116
            'NumeroInterior': numero_interior,
1117
        })
1118
        
1119
1120
class CesionDerechosInmueblesType(ScalarMap):
1121
    """
1122
    
1123
    :param figura_cliente:
1124
    :param tipo_cesion:
1125
    :param datos_contraparte:
1126
    :param caracteristicas_inmueble:
1127
    """
1128
    
1129
    def __init__(
1130
            self,
1131
            figura_cliente: str,
1132
            tipo_cesion: str,
1133
            datos_contraparte: DatosContraparteType | dict | Sequence[DatosContraparteType | dict],
1134
            caracteristicas_inmueble: CaracteristicasInmueble2Type | dict | Sequence[CaracteristicasInmueble2Type | dict],
1135
    ): 
1136
        super().__init__({
1137
            'FiguraCliente': figura_cliente,
1138
            'TipoCesion': tipo_cesion,
1139
            'DatosContraparte': datos_contraparte,
1140
            'CaracteristicasInmueble': caracteristicas_inmueble,
1141
        })
1142
        
1143
1144
class ContratoType(ScalarMap):
1145
    """
1146
    
1147
    :param fecha_contrato:
1148
    :param valor_referencia:
1149
    """
1150
    
1151
    def __init__(
1152
            self,
1153
            fecha_contrato: date,
1154
            valor_referencia: str,
1155
    ): 
1156
        super().__init__({
1157
            'FechaContrato': fecha_contrato,
1158
            'ValorReferencia': valor_referencia,
1159
        })
1160
        
1161
1162
class DatosInstrumentoType(ScalarMap):
1163
    """
1164
    
1165
    :param numero_instrumento_publico:
1166
    :param fecha_instrumento_publico:
1167
    :param notario_instrumento_publico:
1168
    :param entidad_instrumento_publico:
1169
    :param valor_referencia:
1170
    """
1171
    
1172
    def __init__(
1173
            self,
1174
            numero_instrumento_publico: str,
1175
            fecha_instrumento_publico: date,
1176
            notario_instrumento_publico: str,
1177
            entidad_instrumento_publico: int,
1178
            valor_referencia: str,
1179
    ): 
1180
        super().__init__({
1181
            'NumeroInstrumentoPublico': numero_instrumento_publico,
1182
            'FechaInstrumentoPublico': fecha_instrumento_publico,
1183
            'NotarioInstrumentoPublico': notario_instrumento_publico,
1184
            'EntidadInstrumentoPublico': entidad_instrumento_publico,
1185
            'ValorReferencia': valor_referencia,
1186
        })
1187
        
1188
1189
class ContratoInstrumentoType(ScalarMap):
1190
    """
1191
    
1192
    :param datos_instrumento_publico:
1193
    :param contrato:
1194
    """
1195
    
1196
    def __init__(
1197
            self,
1198
            datos_instrumento_publico: DatosInstrumentoType | dict = None,
1199
            contrato: ContratoType | dict = None,
1200
    ): 
1201
        super().__init__({
1202
            'DatosInstrumentoPublico': datos_instrumento_publico,
1203
            'Contrato': contrato,
1204
        })
1205
        
1206
1207
class CaracteristicasInmueble1Type(ScalarMap):
1208
    """
1209
    
1210
    :param tipo_inmueble:
1211
    :param colonia:
1212
    :param calle:
1213
    :param numero_exterior:
1214
    :param codigo_postal:
1215
    :param dimension_terreno:
1216
    :param dimension_construido:
1217
    :param folio_real:
1218
    :param contrato_instrumento_publico:
1219
    :param numero_interior:
1220
    """
1221
    
1222
    def __init__(
1223
            self,
1224
            tipo_inmueble: str,
1225
            colonia: str,
1226
            calle: str,
1227
            numero_exterior: str,
1228
            codigo_postal: str,
1229
            dimension_terreno: str,
1230
            dimension_construido: str,
1231
            folio_real: str,
1232
            contrato_instrumento_publico: ContratoInstrumentoType | dict,
1233
            numero_interior: str = None,
1234
    ): 
1235
        super().__init__({
1236
            'TipoInmueble': tipo_inmueble,
1237
            'Colonia': colonia,
1238
            'Calle': calle,
1239
            'NumeroExterior': numero_exterior,
1240
            'CodigoPostal': codigo_postal,
1241
            'DimensionTerreno': dimension_terreno,
1242
            'DimensionConstruido': dimension_construido,
1243
            'FolioReal': folio_real,
1244
            'ContratoInstrumentoPublico': contrato_instrumento_publico,
1245
            'NumeroInterior': numero_interior,
1246
        })
1247
        
1248
1249
class PersonaMoralT1Type(ScalarMap):
1250
    """
1251
    
1252
    :param denominacion_razon:
1253
    :param pais_nacionalidad:
1254
    :param fecha_constitucion:
1255
    :param rfc:
1256
    """
1257
    
1258
    def __init__(
1259
            self,
1260
            denominacion_razon: str,
1261
            pais_nacionalidad: str,
1262
            fecha_constitucion: date = None,
1263
            rfc: str = None,
1264
    ): 
1265
        super().__init__({
1266
            'DenominacionRazon': denominacion_razon,
1267
            'PaisNacionalidad': pais_nacionalidad,
1268
            'FechaConstitucion': fecha_constitucion,
1269
            'Rfc': rfc,
1270
        })
1271
        
1272
1273
class PersonaFisicaT1Type(ScalarMap):
1274
    """
1275
    
1276
    :param nombre:
1277
    :param apellido_paterno:
1278
    :param apellido_materno:
1279
    :param pais_nacionalidad:
1280
    :param fecha_nacimiento:
1281
    :param rfc:
1282
    :param curp:
1283
    """
1284
    
1285
    def __init__(
1286
            self,
1287
            nombre: str,
1288
            apellido_paterno: str,
1289
            apellido_materno: str,
1290
            pais_nacionalidad: str,
1291
            fecha_nacimiento: date = None,
1292
            rfc: str = None,
1293
            curp: str = None,
1294
    ): 
1295
        super().__init__({
1296
            'Nombre': nombre,
1297
            'ApellidoPaterno': apellido_paterno,
1298
            'ApellidoMaterno': apellido_materno,
1299
            'PaisNacionalidad': pais_nacionalidad,
1300
            'FechaNacimiento': fecha_nacimiento,
1301
            'Rfc': rfc,
1302
            'Curp': curp,
1303
        })
1304
        
1305
1306
class TipoPersonaT1Type(ScalarMap):
1307
    """
1308
    
1309
    :param persona_fisica:
1310
    :param persona_moral:
1311
    :param fideicomiso:
1312
    """
1313
    
1314
    def __init__(
1315
            self,
1316
            persona_fisica: PersonaFisicaT1Type | dict = None,
1317
            persona_moral: PersonaMoralT1Type | dict = None,
1318
            fideicomiso: FideicomisoSimpleType | dict = None,
1319
    ): 
1320
        super().__init__({
1321
            'PersonaFisica': persona_fisica,
1322
            'PersonaMoral': persona_moral,
1323
            'Fideicomiso': fideicomiso,
1324
        })
1325
        
1326
1327
class DatosContraparteType(ScalarMap):
1328
    """
1329
    
1330
    :param tipo_persona:
1331
    """
1332
    
1333
    def __init__(
1334
            self,
1335
            tipo_persona: TipoPersonaT1Type | dict,
1336
    ): 
1337
        super().__init__({
1338
            'TipoPersona': tipo_persona,
1339
        })
1340
        
1341
1342
class CompraVentaInmueblesType(ScalarMap):
1343
    """
1344
    
1345
    :param tipo_operacion:
1346
    :param valor_pactado:
1347
    :param datos_contraparte:
1348
    :param caracteristicas_inmueble:
1349
    """
1350
    
1351
    def __init__(
1352
            self,
1353
            tipo_operacion: str,
1354
            valor_pactado: str,
1355
            datos_contraparte: DatosContraparteType | dict | Sequence[DatosContraparteType | dict],
1356
            caracteristicas_inmueble: CaracteristicasInmueble1Type | dict | Sequence[CaracteristicasInmueble1Type | dict],
1357
    ): 
1358
        super().__init__({
1359
            'TipoOperacion': tipo_operacion,
1360
            'ValorPactado': valor_pactado,
1361
            'DatosContraparte': datos_contraparte,
1362
            'CaracteristicasInmueble': caracteristicas_inmueble,
1363
        })
1364
        
1365
1366
class TipoActividadType(ScalarMap):
1367
    """
1368
    
1369
    :param compra_venta_inmuebles:
1370
    :param cesion_derechos_inmuebles:
1371
    :param administracion_recursos:
1372
    :param constitucion_sociedades_mercantiles:
1373
    :param organizacion_aportaciones:
1374
    :param fusion:
1375
    :param escision:
1376
    :param administracion_personas_morales:
1377
    :param constitucion_fideicomiso:
1378
    :param compra_venta_entidades_mercantiles:
1379
    """
1380
    
1381
    def __init__(
1382
            self,
1383
            compra_venta_inmuebles: CompraVentaInmueblesType | dict = None,
1384
            cesion_derechos_inmuebles: CesionDerechosInmueblesType | dict = None,
1385
            administracion_recursos: AdministracionRecursosType | dict = None,
1386
            constitucion_sociedades_mercantiles: ConstitucionSociedadesMercantilesType | dict = None,
1387
            organizacion_aportaciones: OrganizacionAportacionesType | dict = None,
1388
            fusion: FusionType | dict = None,
1389
            escision: EscisionType | dict = None,
1390
            administracion_personas_morales: AdmonPersonasMoralesType | dict = None,
1391
            constitucion_fideicomiso: ConstitucionFideicomisoType | dict = None,
1392
            compra_venta_entidades_mercantiles: CompraVentaEntidadesMercantilesType | dict = None,
1393
    ): 
1394
        super().__init__({
1395
            'CompraVentaInmuebles': compra_venta_inmuebles,
1396
            'CesionDerechosInmuebles': cesion_derechos_inmuebles,
1397
            'AdministracionRecursos': administracion_recursos,
1398
            'ConstitucionSociedadesMercantiles': constitucion_sociedades_mercantiles,
1399
            'OrganizacionAportaciones': organizacion_aportaciones,
1400
            'Fusion': fusion,
1401
            'Escision': escision,
1402
            'AdministracionPersonasMorales': administracion_personas_morales,
1403
            'ConstitucionFideicomiso': constitucion_fideicomiso,
1404
            'CompraVentaEntidadesMercantiles': compra_venta_entidades_mercantiles,
1405
        })
1406
        
1407
1408
class DatosOperacionType(ScalarMap):
1409
    """
1410
    
1411
    :param fecha_operacion:
1412
    :param tipo_actividad:
1413
    :param datos_operacion_financiera:
1414
    """
1415
    
1416
    def __init__(
1417
            self,
1418
            fecha_operacion: date,
1419
            tipo_actividad: TipoActividadType | dict,
1420
            datos_operacion_financiera: DatosOperacionFinancieraType | dict | Sequence[DatosOperacionFinancieraType | dict],
1421
    ): 
1422
        super().__init__({
1423
            'FechaOperacion': fecha_operacion,
1424
            'TipoActividad': tipo_actividad,
1425
            'DatosOperacionFinanciera': datos_operacion_financiera,
1426
        })
1427
        
1428
1429
class DetalleOperacionesType(ScalarMap):
1430
    """
1431
    
1432
    :param datos_operacion:
1433
    """
1434
    
1435
    def __init__(
1436
            self,
1437
            datos_operacion: DatosOperacionType | dict | Sequence[DatosOperacionType | dict],
1438
    ): 
1439
        super().__init__({
1440
            'DatosOperacion': datos_operacion,
1441
        })
1442
        
1443
1444
class FideicomisoSimpleType(ScalarMap):
1445
    """
1446
    
1447
    :param denominacion_razon:
1448
    :param rfc:
1449
    :param identificador_fideicomiso:
1450
    """
1451
    
1452
    def __init__(
1453
            self,
1454
            denominacion_razon: str,
1455
            rfc: str = None,
1456
            identificador_fideicomiso: str = None,
1457
    ): 
1458
        super().__init__({
1459
            'DenominacionRazon': denominacion_razon,
1460
            'Rfc': rfc,
1461
            'IdentificadorFideicomiso': identificador_fideicomiso,
1462
        })
1463
        
1464
1465
class PersonaMoralSimpleType(ScalarMap):
1466
    """
1467
    
1468
    :param denominacion_razon:
1469
    :param fecha_constitucion:
1470
    :param rfc:
1471
    :param pais_nacionalidad:
1472
    """
1473
    
1474
    def __init__(
1475
            self,
1476
            denominacion_razon: str,
1477
            fecha_constitucion: date = None,
1478
            rfc: str = None,
1479
            pais_nacionalidad: str = None,
1480
    ): 
1481
        super().__init__({
1482
            'DenominacionRazon': denominacion_razon,
1483
            'FechaConstitucion': fecha_constitucion,
1484
            'Rfc': rfc,
1485
            'PaisNacionalidad': pais_nacionalidad,
1486
        })
1487
        
1488
1489
class PersonaFisicaSimpleType(ScalarMap):
1490
    """
1491
    
1492
    :param nombre:
1493
    :param apellido_paterno:
1494
    :param apellido_materno:
1495
    :param fecha_nacimiento:
1496
    :param rfc:
1497
    :param curp:
1498
    :param pais_nacionalidad:
1499
    """
1500
    
1501
    def __init__(
1502
            self,
1503
            nombre: str,
1504
            apellido_paterno: str,
1505
            apellido_materno: str,
1506
            fecha_nacimiento: date = None,
1507
            rfc: str = None,
1508
            curp: str = None,
1509
            pais_nacionalidad: str = None,
1510
    ): 
1511
        super().__init__({
1512
            'Nombre': nombre,
1513
            'ApellidoPaterno': apellido_paterno,
1514
            'ApellidoMaterno': apellido_materno,
1515
            'FechaNacimiento': fecha_nacimiento,
1516
            'Rfc': rfc,
1517
            'Curp': curp,
1518
            'PaisNacionalidad': pais_nacionalidad,
1519
        })
1520
        
1521
1522
class TipoPersonaSimpleType(ScalarMap):
1523
    """
1524
    
1525
    :param persona_fisica:
1526
    :param persona_moral:
1527
    :param fideicomiso:
1528
    """
1529
    
1530
    def __init__(
1531
            self,
1532
            persona_fisica: PersonaFisicaSimpleType | dict = None,
1533
            persona_moral: PersonaMoralSimpleType | dict = None,
1534
            fideicomiso: FideicomisoSimpleType | dict = None,
1535
    ): 
1536
        super().__init__({
1537
            'PersonaFisica': persona_fisica,
1538
            'PersonaMoral': persona_moral,
1539
            'Fideicomiso': fideicomiso,
1540
        })
1541
        
1542
1543
class DuenoBeneficiarioType(ScalarMap):
1544
    """
1545
    
1546
    :param tipo_persona:
1547
    """
1548
    
1549
    def __init__(
1550
            self,
1551
            tipo_persona: TipoPersonaSimpleType | dict,
1552
    ): 
1553
        super().__init__({
1554
            'TipoPersona': tipo_persona,
1555
        })
1556
        
1557
1558
class TelefonoType(ScalarMap):
1559
    """
1560
    
1561
    :param clave_pais:
1562
    :param numero_telefono:
1563
    :param correo_electronico:
1564
    """
1565
    
1566
    def __init__(
1567
            self,
1568
            clave_pais: str = None,
1569
            numero_telefono: str = None,
1570
            correo_electronico: str = None,
1571
    ): 
1572
        super().__init__({
1573
            'ClavePais': clave_pais,
1574
            'NumeroTelefono': numero_telefono,
1575
            'CorreoElectronico': correo_electronico,
1576
        })
1577
        
1578
1579
class ExtranjeroType(ScalarMap):
1580
    """
1581
    
1582
    :param pais:
1583
    :param estado_provincia:
1584
    :param ciudad_poblacion:
1585
    :param colonia:
1586
    :param calle:
1587
    :param numero_exterior:
1588
    :param codigo_postal:
1589
    :param numero_interior:
1590
    """
1591
    
1592
    def __init__(
1593
            self,
1594
            pais: str,
1595
            estado_provincia: str,
1596
            ciudad_poblacion: str,
1597
            colonia: str,
1598
            calle: str,
1599
            numero_exterior: str,
1600
            codigo_postal: str,
1601
            numero_interior: str = None,
1602
    ): 
1603
        super().__init__({
1604
            'Pais': pais,
1605
            'EstadoProvincia': estado_provincia,
1606
            'CiudadPoblacion': ciudad_poblacion,
1607
            'Colonia': colonia,
1608
            'Calle': calle,
1609
            'NumeroExterior': numero_exterior,
1610
            'CodigoPostal': codigo_postal,
1611
            'NumeroInterior': numero_interior,
1612
        })
1613
        
1614
1615
class NacionalType(ScalarMap):
1616
    """
1617
    
1618
    :param colonia:
1619
    :param calle:
1620
    :param numero_exterior:
1621
    :param codigo_postal:
1622
    :param numero_interior:
1623
    """
1624
    
1625
    def __init__(
1626
            self,
1627
            colonia: str,
1628
            calle: str,
1629
            numero_exterior: str,
1630
            codigo_postal: str,
1631
            numero_interior: str = None,
1632
    ): 
1633
        super().__init__({
1634
            'Colonia': colonia,
1635
            'Calle': calle,
1636
            'NumeroExterior': numero_exterior,
1637
            'CodigoPostal': codigo_postal,
1638
            'NumeroInterior': numero_interior,
1639
        })
1640
        
1641
1642
class TipoDomicilioType(ScalarMap):
1643
    """
1644
    
1645
    :param nacional:
1646
    :param extranjero:
1647
    """
1648
    
1649
    def __init__(
1650
            self,
1651
            nacional: NacionalType | dict = None,
1652
            extranjero: ExtranjeroType | dict = None,
1653
    ): 
1654
        super().__init__({
1655
            'Nacional': nacional,
1656
            'Extranjero': extranjero,
1657
        })
1658
        
1659
1660
class RepresentanteApoderadoType(ScalarMap):
1661
    """
1662
    
1663
    :param nombre:
1664
    :param apellido_paterno:
1665
    :param apellido_materno:
1666
    :param fecha_nacimiento:
1667
    :param rfc:
1668
    :param curp:
1669
    """
1670
    
1671
    def __init__(
1672
            self,
1673
            nombre: str,
1674
            apellido_paterno: str,
1675
            apellido_materno: str,
1676
            fecha_nacimiento: date = None,
1677
            rfc: str = None,
1678
            curp: str = None,
1679
    ): 
1680
        super().__init__({
1681
            'Nombre': nombre,
1682
            'ApellidoPaterno': apellido_paterno,
1683
            'ApellidoMaterno': apellido_materno,
1684
            'FechaNacimiento': fecha_nacimiento,
1685
            'Rfc': rfc,
1686
            'Curp': curp,
1687
        })
1688
        
1689
1690
class FideicomisoType(ScalarMap):
1691
    """
1692
    
1693
    :param denominacion_razon:
1694
    :param apoderado_delegado:
1695
    :param rfc:
1696
    :param identificador_fideicomiso:
1697
    """
1698
    
1699
    def __init__(
1700
            self,
1701
            denominacion_razon: str,
1702
            apoderado_delegado: RepresentanteApoderadoType | dict | Sequence[RepresentanteApoderadoType | dict],
1703
            rfc: str = None,
1704
            identificador_fideicomiso: str = None,
1705
    ): 
1706
        super().__init__({
1707
            'DenominacionRazon': denominacion_razon,
1708
            'ApoderadoDelegado': apoderado_delegado,
1709
            'Rfc': rfc,
1710
            'IdentificadorFideicomiso': identificador_fideicomiso,
1711
        })
1712
        
1713
1714
class PersonaMoralType(ScalarMap):
1715
    """
1716
    
1717
    :param denominacion_razon:
1718
    :param pais_nacionalidad:
1719
    :param giro_mercantil:
1720
    :param representante_apoderado:
1721
    :param fecha_constitucion:
1722
    :param rfc:
1723
    """
1724
    
1725
    def __init__(
1726
            self,
1727
            denominacion_razon: str,
1728
            pais_nacionalidad: str,
1729
            giro_mercantil: str,
1730
            representante_apoderado: RepresentanteApoderadoType | dict | Sequence[RepresentanteApoderadoType | dict],
1731
            fecha_constitucion: date = None,
1732
            rfc: str = None,
1733
    ): 
1734
        super().__init__({
1735
            'DenominacionRazon': denominacion_razon,
1736
            'PaisNacionalidad': pais_nacionalidad,
1737
            'GiroMercantil': giro_mercantil,
1738
            'RepresentanteApoderado': representante_apoderado,
1739
            'FechaConstitucion': fecha_constitucion,
1740
            'Rfc': rfc,
1741
        })
1742
        
1743
1744
class PersonaFisicaType(ScalarMap):
1745
    """
1746
    
1747
    :param nombre:
1748
    :param apellido_paterno:
1749
    :param apellido_materno:
1750
    :param pais_nacionalidad:
1751
    :param actividad_economica:
1752
    :param fecha_nacimiento:
1753
    :param rfc:
1754
    :param curp:
1755
    :param representante_apoderado:
1756
    """
1757
    
1758
    def __init__(
1759
            self,
1760
            nombre: str,
1761
            apellido_paterno: str,
1762
            apellido_materno: str,
1763
            pais_nacionalidad: str,
1764
            actividad_economica: str,
1765
            fecha_nacimiento: date = None,
1766
            rfc: str = None,
1767
            curp: str = None,
1768
            representante_apoderado: RepresentanteApoderadoType | dict | Sequence[RepresentanteApoderadoType | dict] = None,
1769
    ): 
1770
        super().__init__({
1771
            'Nombre': nombre,
1772
            'ApellidoPaterno': apellido_paterno,
1773
            'ApellidoMaterno': apellido_materno,
1774
            'PaisNacionalidad': pais_nacionalidad,
1775
            'ActividadEconomica': actividad_economica,
1776
            'FechaNacimiento': fecha_nacimiento,
1777
            'Rfc': rfc,
1778
            'Curp': curp,
1779
            'RepresentanteApoderado': representante_apoderado,
1780
        })
1781
        
1782
1783
class TipoPersonaType(ScalarMap):
1784
    """
1785
    
1786
    :param persona_fisica:
1787
    :param persona_moral:
1788
    :param fideicomiso:
1789
    """
1790
    
1791
    def __init__(
1792
            self,
1793
            persona_fisica: PersonaFisicaType | dict = None,
1794
            persona_moral: PersonaMoralType | dict = None,
1795
            fideicomiso: FideicomisoType | dict = None,
1796
    ): 
1797
        super().__init__({
1798
            'PersonaFisica': persona_fisica,
1799
            'PersonaMoral': persona_moral,
1800
            'Fideicomiso': fideicomiso,
1801
        })
1802
        
1803
1804
class PersonaAvisoType(ScalarMap):
1805
    """
1806
    
1807
    :param tipo_persona:
1808
    :param tipo_domicilio:
1809
    :param telefono:
1810
    """
1811
    
1812
    def __init__(
1813
            self,
1814
            tipo_persona: TipoPersonaType | dict,
1815
            tipo_domicilio: TipoDomicilioType | dict = None,
1816
            telefono: TelefonoType | dict = None,
1817
    ): 
1818
        super().__init__({
1819
            'TipoPersona': tipo_persona,
1820
            'TipoDomicilio': tipo_domicilio,
1821
            'Telefono': telefono,
1822
        })
1823
        
1824
1825
class AlertaType(ScalarMap):
1826
    """
1827
    
1828
    :param tipo_alerta:
1829
    :param descripcion_alerta:
1830
    """
1831
    
1832
    def __init__(
1833
            self,
1834
            tipo_alerta: str,
1835
            descripcion_alerta: str = None,
1836
    ): 
1837
        super().__init__({
1838
            'TipoAlerta': tipo_alerta,
1839
            'DescripcionAlerta': descripcion_alerta,
1840
        })
1841
        
1842
1843
class ModificatorioType(ScalarMap):
1844
    """
1845
    
1846
    :param folio_modificacion:
1847
    :param descripcion_modificacion:
1848
    """
1849
    
1850
    def __init__(
1851
            self,
1852
            folio_modificacion: str,
1853
            descripcion_modificacion: str,
1854
    ): 
1855
        super().__init__({
1856
            'FolioModificacion': folio_modificacion,
1857
            'DescripcionModificacion': descripcion_modificacion,
1858
        })
1859
        
1860
1861 View Code Duplication
class AvisoType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
1862
    """
1863
    
1864
    :param referencia_aviso:
1865
    :param prioridad:
1866
    :param alerta:
1867
    :param persona_aviso:
1868
    :param detalle_operaciones:
1869
    :param modificatorio:
1870
    :param dueno_beneficiario:
1871
    """
1872
    
1873
    def __init__(
1874
            self,
1875
            referencia_aviso: str,
1876
            prioridad: str,
1877
            alerta: AlertaType | dict,
1878
            persona_aviso: PersonaAvisoType | dict | Sequence[PersonaAvisoType | dict],
1879
            detalle_operaciones: DetalleOperacionesType | dict,
1880
            modificatorio: ModificatorioType | dict = None,
1881
            dueno_beneficiario: DuenoBeneficiarioType | dict | Sequence[DuenoBeneficiarioType | dict] = None,
1882
    ): 
1883
        super().__init__({
1884
            'ReferenciaAviso': referencia_aviso,
1885
            'Prioridad': prioridad,
1886
            'Alerta': alerta,
1887
            'PersonaAviso': persona_aviso,
1888
            'DetalleOperaciones': detalle_operaciones,
1889
            'Modificatorio': modificatorio,
1890
            'DuenoBeneficiario': dueno_beneficiario,
1891
        })
1892
        
1893
1894
class OcupacionType(ScalarMap):
1895
    """
1896
    
1897
    :param tipo_ocupacion:
1898
    :param descripcion_otra_ocupacion:
1899
    """
1900
    
1901
    def __init__(
1902
            self,
1903
            tipo_ocupacion: int,
1904
            descripcion_otra_ocupacion: str = None,
1905
    ): 
1906
        super().__init__({
1907
            'TipoOcupacion': tipo_ocupacion,
1908
            'DescripcionOtraOcupacion': descripcion_otra_ocupacion,
1909
        })
1910
        
1911
1912
class SujetoObligadoType(ScalarMap):
1913
    """
1914
    
1915
    :param clave_sujeto_obligado:
1916
    :param clave_actividad:
1917
    :param clave_entidad_colegiada:
1918
    :param ocupacion:
1919
    :param exento:
1920
    """
1921
    
1922
    def __init__(
1923
            self,
1924
            clave_sujeto_obligado: str,
1925
            clave_actividad: str,
1926
            clave_entidad_colegiada: str = None,
1927
            ocupacion: OcupacionType | dict = None,
1928
            exento: str = None,
1929
    ): 
1930
        super().__init__({
1931
            'ClaveSujetoObligado': clave_sujeto_obligado,
1932
            'ClaveActividad': clave_actividad,
1933
            'ClaveEntidadColegiada': clave_entidad_colegiada,
1934
            'Ocupacion': ocupacion,
1935
            'Exento': exento,
1936
        })
1937
        
1938
1939 View Code Duplication
class InformeType(ScalarMap):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
1940
    """
1941
    
1942
    :param mes_reportado:
1943
    :param sujeto_obligado:
1944
    :param aviso:
1945
    """
1946
    
1947
    def __init__(
1948
            self,
1949
            mes_reportado: str,
1950
            sujeto_obligado: SujetoObligadoType | dict,
1951
            aviso: AvisoType | dict | Sequence[AvisoType | dict] = None,
1952
    ): 
1953
        super().__init__({
1954
            'MesReportado': mes_reportado,
1955
            'SujetoObligado': sujeto_obligado,
1956
            'Aviso': aviso,
1957
        })
1958
        
1959
1960
class ArchivoType(ScalarMap):
1961
    """
1962
    
1963
    :param informe:
1964
    """
1965
    
1966
    def __init__(
1967
            self,
1968
            informe: InformeType | dict | Sequence[InformeType | dict],
1969
    ): 
1970
        super().__init__({
1971
            'Informe': informe,
1972
        })
1973
        
1974
1975
class Archivo(ArchivoType, XElement):
1976
    tag = '{http://www.uif.shcp.gob.mx/recepcion/spr}archivo'
1977
1978