se actualizan pruebas sobre cune
FossilOrigin-Name: b99aa36a75c8bd17256d26c412ac08fc8b3ef651ec8380b9724af6360f8e9388
This commit is contained in:
		| @@ -121,6 +121,7 @@ class Proveedor: | ||||
|         # TODO(bit4bit) https://catalogo‐vpfe‐hab.dian.gov.co/document/searchqr?documentkey=CUNE para habilitacion | ||||
|         # https://catalogo‐vpfe.dian.gov.co/document/searchqr?documentkey=CUNE | ||||
|         codigo_qr = f"https://catalogo‐vpfe-hab.dian.gov.co/document/searchqr?documentkey={cune}" | ||||
|  | ||||
|         fexml.set_element('./CodigoQR', codigo_qr) | ||||
|  | ||||
|         # NIE020 | ||||
| @@ -130,10 +131,15 @@ class Proveedor: | ||||
|     def _software_security_code(self, fexml): | ||||
|         # 8.2 | ||||
|         numero = fexml.get_element_text_or_attribute('./NumeroSecuenciaXML/@Numero') | ||||
|         if numero is None: | ||||
|             raise RuntimeError('fallo obtener NumeroSequenciaXML/@Numero') | ||||
|          | ||||
|         id_software = self.software_id | ||||
|         software_pin = self.software_pin | ||||
|  | ||||
|         code = "".join([id_software, software_pin, numero]) | ||||
|  | ||||
|         fexml.set_attributes('./ProveedorXML', fachoSoftwareSC=code) | ||||
|         h = hashlib.sha384() | ||||
|         h.update(code.encode('utf-8')) | ||||
|         return h.hexdigest() | ||||
| @@ -241,7 +247,7 @@ class InformacionGeneral: | ||||
|         campos = fexml.get_elements_text_or_attributes(xpaths) | ||||
|  | ||||
|         cune = "".join(campos) | ||||
|         print(cune) | ||||
|  | ||||
|         h = hashlib.sha384() | ||||
|         h.update(cune.encode('utf-8')) | ||||
|         cune_hash = h.hexdigest() | ||||
| @@ -249,7 +255,8 @@ class InformacionGeneral: | ||||
|         fragment.set_attributes( | ||||
|             './InformacionGeneral', | ||||
|             # NIE024 | ||||
|             CUNE = cune_hash | ||||
|             CUNE = cune_hash, | ||||
|             fachoCUNE = cune | ||||
|         ) | ||||
|  | ||||
| class DianXMLExtensionSigner(fe.DianXMLExtensionSigner): | ||||
|   | ||||
| @@ -124,7 +124,7 @@ def test_nomina_xml(): | ||||
|     nomina.asignar_metadata(fe.nomina.Metadata( | ||||
|         secuencia=fe.nomina.NumeroSecuencia( | ||||
|             prefijo = 'N', | ||||
|             consecutivo=232 | ||||
|             consecutivo='00001' | ||||
|         ), | ||||
|         lugar_generacion=fe.nomina.Lugar( | ||||
|             pais = fe.nomina.Pais( | ||||
| @@ -207,17 +207,20 @@ def test_nomina_xml(): | ||||
|     xml = nomina.toFachoXML() | ||||
|     # TODO(bit4bit) no logro generar cune igual al del anexo tecnico | ||||
|     #assert xml.get_element_attribute('/fe:NominaIndividual/InformacionGeneral', 'CUNE') == '16560dc8956122e84ffb743c817fe7d494e058a44d9ca3fa4c234c268b4f766003253fbee7ea4af9682dd57210f3bac2' | ||||
|  | ||||
|     assert xml.get_element_attribute('/fe:NominaIndividual/InformacionGeneral', 'fachoCUNE')  == "N000012020-01-161053:10-05:003500000.001000000.002500000.007000853718001994361026931" | ||||
|     assert xml.get_element_attribute('/fe:NominaIndividual/InformacionGeneral', 'CUNE') == 'b8f9b6c24de07ffd92ea5467433a3b69357cfaffa7c19722db94b2e0eca41d057085a54f484b5da15ff585e773b0b0ab' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/NumeroSecuenciaXML/@Numero') == 'N00001' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/NumeroSecuenciaXML/@Consecutivo') == '232' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/NumeroSecuenciaXML/@Consecutivo') == '00001' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/LugarGeneracionXML/@Pais') == 'CO' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/LugarGeneracionXML/@DepartamentoEstado') == '05' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/LugarGeneracionXML/@MunicipioCiudad') == '05001' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/ProveedorXML/@NIT') == '999999' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/ProveedorXML/@DV') == '2' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/ProveedorXML/@SoftwareID') == 'xx' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/ProveedorXML/@SoftwareSC') == 'yy' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/ProveedorXML/@CodigoQR') != None | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/ProveedorXML/@fachoSoftwareSC') == 'xx12N00001' | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/ProveedorXML/@SoftwareSC') is not None | ||||
|     assert xml.get_element_text_or_attribute('/fe:NominaIndividual/CodigoQR') != None | ||||
|  | ||||
|  | ||||
| def test_asignar_pago(): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user