Cobol - Calculo 2 ultimos digitos del nº de afiliacion SS

 
Vista:

Calculo 2 ultimos digitos del nº de afiliacion SS

Publicado por julian (1 intervención) el 24/10/2002 12:23:34
Hola, necesito rutina para calcular los dos ultimos digitos del numero de afiliacion a la SS. Actualmente programo en RPG IV en un AS400, pero si la tienen en COBOL la migraria a RPG IV.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Rutina para calcular los dos últimos dígitos del número de afiliación a la Seguridad Social

Publicado por Alejandro (300 intervenciones) el 04/09/2023 20:31:25
Entiendo que estás buscando una rutina para calcular los dos últimos dígitos del número de afiliación a la Seguridad Social en RPG IV o COBOL. La fórmula para calcular estos dígitos puede variar según el país o la entidad de seguridad social específica. A continuación, te proporcionaré un ejemplo de cómo podrías implementar esta rutina en COBOL. Ten en cuenta que debes adaptarla a las reglas y requerimientos específicos de tu entidad de seguridad social:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
IDENTIFICATION DIVISION.
PROGRAM-ID. Calculo-Digitos-SS.
 
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Numero-Afiliacion PIC X(12) VALUE '123456789012'.  -- Reemplaza con tu número de afiliación.
 
PROCEDURE DIVISION.
    DECLARATIVE SECTION.
    01 Tarjetas-De-Digitos.
       05 Tarjeta.
          10 Tarjeta-Inicial PIC X(2).
          10 Tarjeta-Final PIC X(2).
    END DECLARATIVE.
 
    -- Divide el número de afiliación en tarjetas de 2 dígitos.
    MOVE FUNCTION NUMVAL(Numero-Afiliacion(1:2)) TO Tarjeta.Tarjeta-Inicial.
    MOVE FUNCTION NUMVAL(Numero-Afiliacion(3:2)) TO Tarjeta.Tarjeta-Final.
 
    -- Realiza cálculos o aplicaciones específicas según las reglas de tu entidad de seguridad social.
    -- Por ejemplo, puedes sumar los valores de las tarjetas de 2 dígitos.
 
    -- Calcula los dos últimos dígitos resultantes.
    COMPUTE Tarjeta.Tarjeta-Final = Tarjeta.Tarjeta-Final MOD 100.
 
    -- Convierte los dígitos finales en formato de texto si es necesario.
    MOVE FUNCTION EDIT(Tarjeta.Tarjeta-Final, '99') TO Numero-Afiliacion(11:2).
 
    -- Muestra el resultado.
    DISPLAY 'Número de Afiliación con 2 últimos dígitos calculados: ' Numero-Afiliacion.
 
    STOP RUN.

Este es un ejemplo muy básico que divide el número de afiliación en tarjetas de 2 dígitos, realiza una operación matemática (en este caso, una suma) y luego calcula los dos últimos dígitos. Deberás personalizar la rutina según las reglas específicas de tu entidad de seguridad social para calcular los dígitos correctamente.

Si necesitas realizar cálculos más complejos o sigues teniendo problemas con la implementación, te recomiendo consultar directamente con la entidad de seguridad social correspondiente para obtener orientación específica sobre cómo calcular estos dígitos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar