From a534e8898f67b301cfd519b4a795f9fb7803c38e Mon Sep 17 00:00:00 2001 From: Kevin Rosales Date: Wed, 24 Sep 2025 22:19:08 -0600 Subject: [PATCH] Se agrego fecha_de pago en la extraccion del xml --- api/customs/tasks/internal_services.py | 2 + core/utils.py | 15 +++ registros.json | 152 ------------------------- 3 files changed, 17 insertions(+), 152 deletions(-) delete mode 100644 registros.json diff --git a/api/customs/tasks/internal_services.py b/api/customs/tasks/internal_services.py index 961c399..0183123 100644 --- a/api/customs/tasks/internal_services.py +++ b/api/customs/tasks/internal_services.py @@ -184,6 +184,8 @@ def auditar_pedimento(organizacion_id): pedimento.numero_partidas = xml_data.get('numero_partidas') pedimento.remesas = xml_data.get('remesas') pedimento.tipo_operacion__id = xml_data.get('tipo_operacion') + pedimento.fecha_pago = xml_data.get('fecha_pago') + pedimento.pedimento_app = xml_data.get('fecha_pago')[2:4] + "-" + pedimento.aduana + "-" + pedimento.patente + "-" + pedimento.pedimento pedimento.save() for edoc in xml_data.get('edocuments', []): diff --git a/core/utils.py b/core/utils.py index 88e9e18..56d4671 100644 --- a/core/utils.py +++ b/core/utils.py @@ -219,6 +219,20 @@ class PedimentoScrapper: # Clase me extrae datos de Pedimento return coves if coves else None + + def _get_fecha_pago(self, root: ET.Element) -> str: + ns = {'ns2': 'http://www.ventanillaunica.gob.mx/pedimentos/ws/oxml/consultarpedimentocompleto'} + for fechas in root.findall('.//ns2:fechas', ns): + clave = fechas.find('./ns2:tipo/ns2:clave', ns) + if clave is not None and clave.text == '2': + fecha = fechas.find('./ns2:fecha', ns) + if fecha is not None and fecha.text: + # Extraer solo la parte de la fecha (YYYY-MM-DD) + fecha_str = fecha.text + # Si el formato es 'YYYY-MM-DD-06:00', tomar los primeros 10 caracteres + return fecha_str[:10] + return None + def extract_data(self, xml_content: str) -> dict: """ Método para extraer datos específicos del XML. @@ -244,6 +258,7 @@ class PedimentoScrapper: # Clase me extrae datos de Pedimento data['remesas'] = self._remesas(root) data['tipo_operacion'] = self._get_tipo_operacion(root) data['coves'] = self._get_cove(root) + data['fecha_pago'] = self._get_fecha_pago(root) # Verificar que se extrajeron los datos esenciales if not any([data['numero_operacion'], data['pedimento'], data['curp_apoderado'], data['agente_aduanal'], data['coves']]): diff --git a/registros.json b/registros.json deleted file mode 100644 index b8d3459..0000000 --- a/registros.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - { - "model": "Registro500", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "consecutivo_remesa", "numero_seleccion", "fecha_inicio_reconocimiento", "hora_inicio_reconocimiento", "fecha_fin_reconocimiento", "hora_fin_reconocimiento", "fraccion", "secuencia_fraccion", "clave_documento", "tipo_operacion", "grado_incidencia", "fecha_seleccion", "organizacion", "consulta", "datastage", "created_at", "updated_at"], - "filters": {"patente": "1234", "pedimento": "5678901", "seccion_aduanera": "001", "fecha_seleccion": "2023-01-03", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro501", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "tipo_operacion", "clave_documento", "seccion_aduanera_entrada", "curp_contribuyente", "rfc", "curp_agente_a"], - "filters": {"patente": "1234", "pedimento": "5678901", "seccion_aduanera": "001", "tipo_operacion": "IMPORT", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro502", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "tipo_operacion", "clave_documento", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "pedimento": "5678901", "fecha_pago_real": "2023-01-01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro503", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "tipo_operacion", "clave_documento", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "pedimento": "5678901", "fecha_pago_real": "2023-01-01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro504", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "num_contenedor", "tipo_contenedor", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "pedimento": "5678901", "num_contenedor": "CONT001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro505", - "fields": ["id", "pedimento", "seccion_aduanera", "fecha_facturacion", "numero_factura", "termino_facturacion", "moneda_facturacion", "valor_dolares", "valor_moneda_extranjera", "pais_facturacion", "entidad_fed_facturacion", "indent_fiscal_proveedor", "proveedor_mercancia", "calle_proveedor", "num_interior_proveedor", "num_exterior_proveedor", "cp_proveedor", "municipio_proveedor", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage", "patente"], - "filters": {"pedimento": "5678901", "numero_factura": "FAC001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro506", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "tipo_fecha", "fecha_operacion", "fecha_validacion_pago_r", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "fecha_operacion": "2023-01-01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro507", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "clave_caso", "identificador_caso", "tipo_pedimento", "complemento_caso", "fecha_validacion_pago_r", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "clave_caso": "CASO001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro508", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "institucion_emisora", "numero_cuenta", "folio_constancia", "fecha_constancia", "tipo_cuenta", "clave_garantia", "valor_unitario_titulo", "total_garantia", "cantidad_unidades", "titulos_asignados", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "institucion_emisora": "IE01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro509", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "clave_contribucion", "tasa_contribucion", "tipo_tasa", "tipo_pedimento", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "clave_contribucion": "CC01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro510", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "clave_contribucion", "tasa_contribucion", "tipo_tasa", "tipo_pedimento", "fecha_pago_real", "organizacion", "created_by", "datastage", "consulta", "forma_pago", "importe_pago"], - "filters": {"patente": "1234", "clave_contribucion": "CC01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro511", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "secuencia_observacion", "observaciones", "tipo_pedimento", "fecha_validacion_pago_r", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "secuencia_observacion": "OBS01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro512", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "patente_aduanal_orig", "pedimento_original", "seccion_aduanera_desp_orig", "documento_original", "fecha_operacion_orig", "fraccion_original", "unidad_medida", "mercancia_descargada", "tipo_pedimento", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "patente_aduanal_orig": "PAO01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro520", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "indent_fiscal_destinatario", "nombre_destinatario_mercancia", "calle_destinatario", "num_interior_destinatario", "num_exterior_destinatario", "cp_destinatario", "municpio_destinatario", "pais_destinatario", "fecha_pago_real", "organizacion", "created_at", "consulta", "datastage"], - "filters": {"patente": "1234", "indent_fiscal_destinatario": "IFD01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro551", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "fraccion", "secuencia_fraccion", "subdivision_fraccion", "descripcion_mercancia", "precio_unitario", "valor_aduana", "valor_comercial", "valor_dolares", "cantidad_um_comercial", "unidad_medida_comercial", "cantidad_um_tarifa", "unidad_medida_tarifa", "valor_agregado", "clave_vinculacion", "metodo_valorizacion", "codigo_mercancia_producto", "marca_mercancia_producto", "modelo_mercancia_producto", "pais_origen_destino", "pais_comprador_vendedor", "entidad_fed_origen", "entidad_fed_comprador", "entidad_fed_vendedor", "tipo_operacion", "clave_documento", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage", "entidad_fed_destino"], - "filters": {"patente": "1234", "fraccion": "FRAC001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro552", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "fraccion", "secuencia_fraccion", "vin_numero_serie", "kilometraje_vehiculo", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "fraccion": "FRAC001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro553", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "fraccion", "secuencia_fraccion", "clave_permiso", "firma_descargo", "numero_permiso", "valor_comercial_dolares", "cantidad_mum_tarifa", "fecha_pago_real", "organizacion", "created_by", "datastage", "consulta"], - "filters": {"patente": "1234", "fraccion": "FRAC001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro554", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "fraccion", "secuencia_fraccion", "clave_caso", "identificador_caso", "complemento_caso", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "fraccion": "FRAC001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro555", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "fraccion", "secuencia_fraccion", "institucion_emisora", "numero_cuenta", "folio_constancia", "fecha_constancia", "clave_garantia", "valor_unitario_titulo", "total_garantia", "cantidad_unidades_medida", "titulos_asignados", "fecha_pago_real", "organizacion", "datastage", "created_by", "consulta"], - "filters": {"patente": "1234", "fraccion": "FRAC001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro556", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "clave_contribucion", "tasa_contribucion", "tipo_tasa", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage", "fraccion", "secuencia_fraccion"], - "filters": {"patente": "1234", "clave_contribucion": "CC01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro557", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "fraccion", "secuencia_fraccion", "clave_contribucion", "forma_pago", "importe_pago", "fecha_pago_real", "organizacion", "created_by", "datastage", "consulta"], - "filters": {"patente": "1234", "fraccion": "FRAC001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro558", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "fraccion", "secuencia_fraccion", "secuencia_observacion", "observaciones", "fecha_pago_real", "organizacion", "created_by", "datastage", "consulta"], - "filters": {"patente": "1234", "fraccion": "FRAC001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "RegistroSel", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "consecutivo_remesa", "numero_seleccion", "fecha_seleccion", "hora_seleccion", "semaforo_fiscal", "clave_documento", "tipo_operacion", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "consecutivo_remesa": "REM001", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro701", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "clave_documento", "fecha_pago", "pedimento_anterior", "patente_anterior", "seccion_aduanera_anterior", "documento_anterior", "fecha_operacion_anterior", "pedimento_original", "patente_aduanal_orig", "seccion_aduanera_desp_orig", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "pedimento_anterior": "PEDANT01", "organizacion": 1, "datastage": 1}, - "type": "excel" - }, - { - "model": "Registro702", - "fields": ["id", "patente", "pedimento", "seccion_aduanera", "clave_contribucion", "forma_pago", "importe_pago", "tipo_pedimento", "fecha_pago_real", "organizacion", "created_by", "consulta", "datastage"], - "filters": {"patente": "1234", "clave_contribucion": "CC01", "organizacion": 1, "datastage": 1}, - "type": "excel" - } -] \ No newline at end of file