Issues (158)

satcfdi/create/pld/mjr.py (2 issues)

1
"""mjr http://www.uif.shcp.gob.mx/recepcion/mjr"""
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 DatosLiquidacionType(ScalarMap):
11
    """
12
    
13
    :param fecha_pago:
14
    :param forma_pago:
15
    :param instrumento_monetario:
16
    :param moneda:
17
    :param monto_operacion:
18
    """
19
    
20
    def __init__(
21
            self,
22
            fecha_pago: date,
23
            forma_pago: str,
24
            instrumento_monetario: str,
25
            moneda: str,
26
            monto_operacion: str,
27
    ): 
28
        super().__init__({
29
            'FechaPago': fecha_pago,
30
            'FormaPago': forma_pago,
31
            'InstrumentoMonetario': instrumento_monetario,
32
            'Moneda': moneda,
33
            'MontoOperacion': monto_operacion,
34
        })
35
        
36
37
class DatosBienType(ScalarMap):
38
    """
39
    
40
    :param tipo_bien:
41
    :param unidad_comercializada:
42
    :param cantidad_comercializada:
43
    """
44
    
45
    def __init__(
46
            self,
47
            tipo_bien: str,
48
            unidad_comercializada: str,
49
            cantidad_comercializada: str,
50
    ): 
51
        super().__init__({
52
            'TipoBien': tipo_bien,
53
            'UnidadComercializada': unidad_comercializada,
54
            'CantidadComercializada': cantidad_comercializada,
55
        })
56
        
57
58
class DatosOperacionType(ScalarMap):
59
    """
60
    
61
    :param fecha_operacion:
62
    :param codigo_postal:
63
    :param tipo_operacion:
64
    :param datos_bien:
65
    :param datos_liquidacion:
66
    """
67
    
68
    def __init__(
69
            self,
70
            fecha_operacion: date,
71
            codigo_postal: str,
72
            tipo_operacion: str,
73
            datos_bien: DatosBienType | dict | Sequence[DatosBienType | dict],
74
            datos_liquidacion: DatosLiquidacionType | dict | Sequence[DatosLiquidacionType | dict],
75
    ): 
76
        super().__init__({
77
            'FechaOperacion': fecha_operacion,
78
            'CodigoPostal': codigo_postal,
79
            'TipoOperacion': tipo_operacion,
80
            'DatosBien': datos_bien,
81
            'DatosLiquidacion': datos_liquidacion,
82
        })
83
        
84
85
class DetalleOperacionesType(ScalarMap):
86
    """
87
    
88
    :param datos_operacion:
89
    """
90
    
91
    def __init__(
92
            self,
93
            datos_operacion: DatosOperacionType | dict | Sequence[DatosOperacionType | dict],
94
    ): 
95
        super().__init__({
96
            'DatosOperacion': datos_operacion,
97
        })
98
        
99
100
class FideicomisoSimpleType(ScalarMap):
101
    """
102
    
103
    :param denominacion_razon:
104
    :param rfc:
105
    :param identificador_fideicomiso:
106
    """
107
    
108
    def __init__(
109
            self,
110
            denominacion_razon: str,
111
            rfc: str = None,
112
            identificador_fideicomiso: str = None,
113
    ): 
114
        super().__init__({
115
            'DenominacionRazon': denominacion_razon,
116
            'Rfc': rfc,
117
            'IdentificadorFideicomiso': identificador_fideicomiso,
118
        })
119
        
120
121
class PersonaMoralSimpleType(ScalarMap):
122
    """
123
    
124
    :param denominacion_razon:
125
    :param fecha_constitucion:
126
    :param rfc:
127
    :param pais_nacionalidad:
128
    """
129
    
130
    def __init__(
131
            self,
132
            denominacion_razon: str,
133
            fecha_constitucion: date = None,
134
            rfc: str = None,
135
            pais_nacionalidad: str = None,
136
    ): 
137
        super().__init__({
138
            'DenominacionRazon': denominacion_razon,
139
            'FechaConstitucion': fecha_constitucion,
140
            'Rfc': rfc,
141
            'PaisNacionalidad': pais_nacionalidad,
142
        })
143
        
144
145
class PersonaFisicaSimpleType(ScalarMap):
146
    """
147
    
148
    :param nombre:
149
    :param apellido_paterno:
150
    :param apellido_materno:
151
    :param fecha_nacimiento:
152
    :param rfc:
153
    :param curp:
154
    :param pais_nacionalidad:
155
    """
156
    
157
    def __init__(
158
            self,
159
            nombre: str,
160
            apellido_paterno: str,
161
            apellido_materno: str,
162
            fecha_nacimiento: date = None,
163
            rfc: str = None,
164
            curp: str = None,
165
            pais_nacionalidad: str = None,
166
    ): 
167
        super().__init__({
168
            'Nombre': nombre,
169
            'ApellidoPaterno': apellido_paterno,
170
            'ApellidoMaterno': apellido_materno,
171
            'FechaNacimiento': fecha_nacimiento,
172
            'Rfc': rfc,
173
            'Curp': curp,
174
            'PaisNacionalidad': pais_nacionalidad,
175
        })
176
        
177
178
class TipoPersonaSimpleType(ScalarMap):
179
    """
180
    
181
    :param persona_fisica:
182
    :param persona_moral:
183
    :param fideicomiso:
184
    """
185
    
186
    def __init__(
187
            self,
188
            persona_fisica: PersonaFisicaSimpleType | dict = None,
189
            persona_moral: PersonaMoralSimpleType | dict = None,
190
            fideicomiso: FideicomisoSimpleType | dict = None,
191
    ): 
192
        super().__init__({
193
            'PersonaFisica': persona_fisica,
194
            'PersonaMoral': persona_moral,
195
            'Fideicomiso': fideicomiso,
196
        })
197
        
198
199
class DuenoBeneficiarioType(ScalarMap):
200
    """
201
    
202
    :param tipo_persona:
203
    """
204
    
205
    def __init__(
206
            self,
207
            tipo_persona: TipoPersonaSimpleType | dict,
208
    ): 
209
        super().__init__({
210
            'TipoPersona': tipo_persona,
211
        })
212
        
213
214
class TelefonoType(ScalarMap):
215
    """
216
    
217
    :param clave_pais:
218
    :param numero_telefono:
219
    :param correo_electronico:
220
    """
221
    
222
    def __init__(
223
            self,
224
            clave_pais: str = None,
225
            numero_telefono: str = None,
226
            correo_electronico: str = None,
227
    ): 
228
        super().__init__({
229
            'ClavePais': clave_pais,
230
            'NumeroTelefono': numero_telefono,
231
            'CorreoElectronico': correo_electronico,
232
        })
233
        
234
235
class ExtranjeroType(ScalarMap):
236
    """
237
    
238
    :param pais:
239
    :param estado_provincia:
240
    :param ciudad_poblacion:
241
    :param colonia:
242
    :param calle:
243
    :param numero_exterior:
244
    :param codigo_postal:
245
    :param numero_interior:
246
    """
247
    
248
    def __init__(
249
            self,
250
            pais: str,
251
            estado_provincia: str,
252
            ciudad_poblacion: str,
253
            colonia: str,
254
            calle: str,
255
            numero_exterior: str,
256
            codigo_postal: str,
257
            numero_interior: str = None,
258
    ): 
259
        super().__init__({
260
            'Pais': pais,
261
            'EstadoProvincia': estado_provincia,
262
            'CiudadPoblacion': ciudad_poblacion,
263
            'Colonia': colonia,
264
            'Calle': calle,
265
            'NumeroExterior': numero_exterior,
266
            'CodigoPostal': codigo_postal,
267
            'NumeroInterior': numero_interior,
268
        })
269
        
270
271
class NacionalType(ScalarMap):
272
    """
273
    
274
    :param colonia:
275
    :param calle:
276
    :param numero_exterior:
277
    :param codigo_postal:
278
    :param numero_interior:
279
    """
280
    
281
    def __init__(
282
            self,
283
            colonia: str,
284
            calle: str,
285
            numero_exterior: str,
286
            codigo_postal: str,
287
            numero_interior: str = None,
288
    ): 
289
        super().__init__({
290
            'Colonia': colonia,
291
            'Calle': calle,
292
            'NumeroExterior': numero_exterior,
293
            'CodigoPostal': codigo_postal,
294
            'NumeroInterior': numero_interior,
295
        })
296
        
297
298
class TipoDomicilioType(ScalarMap):
299
    """
300
    
301
    :param nacional:
302
    :param extranjero:
303
    """
304
    
305
    def __init__(
306
            self,
307
            nacional: NacionalType | dict = None,
308
            extranjero: ExtranjeroType | dict = None,
309
    ): 
310
        super().__init__({
311
            'Nacional': nacional,
312
            'Extranjero': extranjero,
313
        })
314
        
315
316
class RepresentanteApoderadoType(ScalarMap):
317
    """
318
    
319
    :param nombre:
320
    :param apellido_paterno:
321
    :param apellido_materno:
322
    :param fecha_nacimiento:
323
    :param rfc:
324
    :param curp:
325
    """
326
    
327
    def __init__(
328
            self,
329
            nombre: str,
330
            apellido_paterno: str,
331
            apellido_materno: str,
332
            fecha_nacimiento: date = None,
333
            rfc: str = None,
334
            curp: str = None,
335
    ): 
336
        super().__init__({
337
            'Nombre': nombre,
338
            'ApellidoPaterno': apellido_paterno,
339
            'ApellidoMaterno': apellido_materno,
340
            'FechaNacimiento': fecha_nacimiento,
341
            'Rfc': rfc,
342
            'Curp': curp,
343
        })
344
        
345
346
class FideicomisoType(ScalarMap):
347
    """
348
    
349
    :param denominacion_razon:
350
    :param apoderado_delegado:
351
    :param rfc:
352
    :param identificador_fideicomiso:
353
    """
354
    
355
    def __init__(
356
            self,
357
            denominacion_razon: str,
358
            apoderado_delegado: RepresentanteApoderadoType | dict,
359
            rfc: str = None,
360
            identificador_fideicomiso: str = None,
361
    ): 
362
        super().__init__({
363
            'DenominacionRazon': denominacion_razon,
364
            'ApoderadoDelegado': apoderado_delegado,
365
            'Rfc': rfc,
366
            'IdentificadorFideicomiso': identificador_fideicomiso,
367
        })
368
        
369
370
class PersonaMoralType(ScalarMap):
371
    """
372
    
373
    :param denominacion_razon:
374
    :param pais_nacionalidad:
375
    :param giro_mercantil:
376
    :param representante_apoderado:
377
    :param fecha_constitucion:
378
    :param rfc:
379
    """
380
    
381
    def __init__(
382
            self,
383
            denominacion_razon: str,
384
            pais_nacionalidad: str,
385
            giro_mercantil: str,
386
            representante_apoderado: RepresentanteApoderadoType | dict,
387
            fecha_constitucion: date = None,
388
            rfc: str = None,
389
    ): 
390
        super().__init__({
391
            'DenominacionRazon': denominacion_razon,
392
            'PaisNacionalidad': pais_nacionalidad,
393
            'GiroMercantil': giro_mercantil,
394
            'RepresentanteApoderado': representante_apoderado,
395
            'FechaConstitucion': fecha_constitucion,
396
            'Rfc': rfc,
397
        })
398
        
399
400
class PersonaFisicaType(ScalarMap):
401
    """
402
    
403
    :param nombre:
404
    :param apellido_paterno:
405
    :param apellido_materno:
406
    :param pais_nacionalidad:
407
    :param actividad_economica:
408
    :param fecha_nacimiento:
409
    :param rfc:
410
    :param curp:
411
    """
412
    
413
    def __init__(
414
            self,
415
            nombre: str,
416
            apellido_paterno: str,
417
            apellido_materno: str,
418
            pais_nacionalidad: str,
419
            actividad_economica: str,
420
            fecha_nacimiento: date = None,
421
            rfc: str = None,
422
            curp: str = None,
423
    ): 
424
        super().__init__({
425
            'Nombre': nombre,
426
            'ApellidoPaterno': apellido_paterno,
427
            'ApellidoMaterno': apellido_materno,
428
            'PaisNacionalidad': pais_nacionalidad,
429
            'ActividadEconomica': actividad_economica,
430
            'FechaNacimiento': fecha_nacimiento,
431
            'Rfc': rfc,
432
            'Curp': curp,
433
        })
434
        
435
436
class TipoPersonaType(ScalarMap):
437
    """
438
    
439
    :param persona_fisica:
440
    :param persona_moral:
441
    :param fideicomiso:
442
    """
443
    
444
    def __init__(
445
            self,
446
            persona_fisica: PersonaFisicaType | dict = None,
447
            persona_moral: PersonaMoralType | dict = None,
448
            fideicomiso: FideicomisoType | dict = None,
449
    ): 
450
        super().__init__({
451
            'PersonaFisica': persona_fisica,
452
            'PersonaMoral': persona_moral,
453
            'Fideicomiso': fideicomiso,
454
        })
455
        
456
457
class PersonaAvisoType(ScalarMap):
458
    """
459
    
460
    :param tipo_persona:
461
    :param tipo_domicilio:
462
    :param telefono:
463
    """
464
    
465
    def __init__(
466
            self,
467
            tipo_persona: TipoPersonaType | dict,
468
            tipo_domicilio: TipoDomicilioType | dict = None,
469
            telefono: TelefonoType | dict = None,
470
    ): 
471
        super().__init__({
472
            'TipoPersona': tipo_persona,
473
            'TipoDomicilio': tipo_domicilio,
474
            'Telefono': telefono,
475
        })
476
        
477
478
class AlertaType(ScalarMap):
479
    """
480
    
481
    :param tipo_alerta:
482
    :param descripcion_alerta:
483
    """
484
    
485
    def __init__(
486
            self,
487
            tipo_alerta: str,
488
            descripcion_alerta: str = None,
489
    ): 
490
        super().__init__({
491
            'TipoAlerta': tipo_alerta,
492
            'DescripcionAlerta': descripcion_alerta,
493
        })
494
        
495
496
class ModificatorioType(ScalarMap):
497
    """
498
    
499
    :param folio_modificacion:
500
    :param descripcion_modificacion:
501
    """
502
    
503
    def __init__(
504
            self,
505
            folio_modificacion: str,
506
            descripcion_modificacion: str,
507
    ): 
508
        super().__init__({
509
            'FolioModificacion': folio_modificacion,
510
            'DescripcionModificacion': descripcion_modificacion,
511
        })
512
        
513
514 View Code Duplication
class AvisoType(ScalarMap):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
515
    """
516
    
517
    :param referencia_aviso:
518
    :param prioridad:
519
    :param alerta:
520
    :param persona_aviso:
521
    :param detalle_operaciones:
522
    :param modificatorio:
523
    :param dueno_beneficiario:
524
    """
525
    
526
    def __init__(
527
            self,
528
            referencia_aviso: str,
529
            prioridad: str,
530
            alerta: AlertaType | dict,
531
            persona_aviso: PersonaAvisoType | dict | Sequence[PersonaAvisoType | dict],
532
            detalle_operaciones: DetalleOperacionesType | dict,
533
            modificatorio: ModificatorioType | dict = None,
534
            dueno_beneficiario: DuenoBeneficiarioType | dict | Sequence[DuenoBeneficiarioType | dict] = None,
535
    ): 
536
        super().__init__({
537
            'ReferenciaAviso': referencia_aviso,
538
            'Prioridad': prioridad,
539
            'Alerta': alerta,
540
            'PersonaAviso': persona_aviso,
541
            'DetalleOperaciones': detalle_operaciones,
542
            'Modificatorio': modificatorio,
543
            'DuenoBeneficiario': dueno_beneficiario,
544
        })
545
        
546
547
class SujetoObligadoType(ScalarMap):
548
    """
549
    
550
    :param clave_sujeto_obligado:
551
    :param clave_actividad:
552
    :param clave_entidad_colegiada:
553
    :param exento:
554
    """
555
    
556
    def __init__(
557
            self,
558
            clave_sujeto_obligado: str,
559
            clave_actividad: str,
560
            clave_entidad_colegiada: str = None,
561
            exento: str = None,
562
    ): 
563
        super().__init__({
564
            'ClaveSujetoObligado': clave_sujeto_obligado,
565
            'ClaveActividad': clave_actividad,
566
            'ClaveEntidadColegiada': clave_entidad_colegiada,
567
            'Exento': exento,
568
        })
569
        
570
571 View Code Duplication
class InformeType(ScalarMap):
0 ignored issues
show
This code seems to be duplicated in your project.
Loading history...
572
    """
573
    
574
    :param mes_reportado:
575
    :param sujeto_obligado:
576
    :param aviso:
577
    """
578
    
579
    def __init__(
580
            self,
581
            mes_reportado: str,
582
            sujeto_obligado: SujetoObligadoType | dict,
583
            aviso: AvisoType | dict | Sequence[AvisoType | dict] = None,
584
    ): 
585
        super().__init__({
586
            'MesReportado': mes_reportado,
587
            'SujetoObligado': sujeto_obligado,
588
            'Aviso': aviso,
589
        })
590
        
591
592
class ArchivoType(ScalarMap):
593
    """
594
    
595
    :param informe:
596
    """
597
    
598
    def __init__(
599
            self,
600
            informe: InformeType | dict | Sequence[InformeType | dict],
601
    ): 
602
        super().__init__({
603
            'Informe': informe,
604
        })
605
        
606
607
class Archivo(ArchivoType, XElement):
608
    tag = '{http://www.uif.shcp.gob.mx/recepcion/mjr}archivo'
609
610