| @@ 36-75 (lines=40) @@ | ||
| 33 | }) |
|
| 34 | ||
| 35 | ||
| 36 | class Cancelacion(XElement): |
|
| 37 | """ |
|
| 38 | Elemento raíz para realizar una solicitud de cancelación de CFDI. |
|
| 39 | """ |
|
| 40 | tag = '{http://www.sat.gob.mx/esquemas/retencionpago/1}Cancelacion' |
|
| 41 | ||
| 42 | def __init__( |
|
| 43 | self, |
|
| 44 | emisor: Signer, |
|
| 45 | folios: Folio | Sequence[Folio | dict], |
|
| 46 | fecha: datetime = None |
|
| 47 | ): |
|
| 48 | """ |
|
| 49 | Elemento raíz para realizar una solicitud de cancelación de CFDI. |
|
| 50 | ||
| 51 | :param emisor: Atributo requerido para expresar el RFC del emisor del (os) CFDI a cancelar. |
|
| 52 | :param fecha: Atributo requerido para expresar la fecha de la operación. |
|
| 53 | :param folios: Colección de folios fiscales (UUID) a ser cancelados. |
|
| 54 | """ |
|
| 55 | super().__init__({ |
|
| 56 | 'RfcEmisor': emisor.rfc, |
|
| 57 | 'Fecha': fecha or datetime.now(), |
|
| 58 | 'Folios': folios, |
|
| 59 | }) |
|
| 60 | self["_nsmap"] = { |
|
| 61 | None: "http://www.sat.gob.mx/esquemas/retencionpago/1", |
|
| 62 | "xsd": "http://www.w3.org/2001/XMLSchema", |
|
| 63 | "xsi": "http://www.w3.org/2001/XMLSchema-instance" |
|
| 64 | } |
|
| 65 | ||
| 66 | sig = signature_c14n_sha1( |
|
| 67 | signer=emisor, |
|
| 68 | element=self.to_xml(), |
|
| 69 | nsmap={ |
|
| 70 | None: 'http://www.w3.org/2000/09/xmldsig#', |
|
| 71 | "xsd": "http://www.w3.org/2001/XMLSchema", |
|
| 72 | "xsi": "http://www.w3.org/2001/XMLSchema-instance", |
|
| 73 | } |
|
| 74 | ) |
|
| 75 | self['Signature'] = sig |
|
| 76 | ||
| 77 | ||
| @@ 37-76 (lines=40) @@ | ||
| 34 | }) |
|
| 35 | ||
| 36 | ||
| 37 | class Cancelacion(XElement): |
|
| 38 | """ |
|
| 39 | Elemento raíz para realizar una solicitud de cancelación de CFDI. |
|
| 40 | """ |
|
| 41 | tag = '{http://cancelacfd.sat.gob.mx}Cancelacion' |
|
| 42 | ||
| 43 | def __init__( |
|
| 44 | self, |
|
| 45 | emisor: Signer, |
|
| 46 | folios: Folio | Sequence[Folio | dict], |
|
| 47 | fecha: datetime = None |
|
| 48 | ): |
|
| 49 | """ |
|
| 50 | Elemento raíz para realizar una solicitud de cancelación de CFDI. |
|
| 51 | ||
| 52 | :param emisor: Atributo requerido para expresar el RFC del emisor del (os) CFDI a cancelar. |
|
| 53 | :param fecha: Atributo requerido para expresar la fecha de la operación. |
|
| 54 | :param folios: Colección de folios fiscales (UUID) a ser cancelados. |
|
| 55 | """ |
|
| 56 | super().__init__({ |
|
| 57 | 'RfcEmisor': emisor.rfc, |
|
| 58 | 'Fecha': fecha or datetime.now(), |
|
| 59 | 'Folios': folios, |
|
| 60 | }) |
|
| 61 | self["_nsmap"] = { |
|
| 62 | None: "http://cancelacfd.sat.gob.mx", |
|
| 63 | "xsd": "http://www.w3.org/2001/XMLSchema", |
|
| 64 | "xsi": "http://www.w3.org/2001/XMLSchema-instance" |
|
| 65 | } |
|
| 66 | ||
| 67 | sig = signature_c14n_sha1( |
|
| 68 | signer=emisor, |
|
| 69 | element=self.to_xml(), |
|
| 70 | nsmap={ |
|
| 71 | None: 'http://www.w3.org/2000/09/xmldsig#', |
|
| 72 | "xsd": "http://www.w3.org/2001/XMLSchema", |
|
| 73 | "xsi": "http://www.w3.org/2001/XMLSchema-instance", |
|
| 74 | } |
|
| 75 | ) |
|
| 76 | self['Signature'] = sig |
|
| 77 | ||
| 78 | ||