Buenas tardes foro,

 

Os paso, gracias a lo que me habéis pasado, unos programillas para 

calcular los dígitos de control tanto del IBAN como del de la CCC

 

en mi caso mi fichero de clientes tiene 10 + 10 en la CCC.

 

CALCCCDC – Rutina calcula el DC de una CCC

 

CALIBANR y CALIBANFM - Versión que te muestra el DC de una CCC introducida

    Esta rutina es otra diferente a la de CALIBAN

 

CALIBANRF – procesa un fichero y actualiza (llama a CALIBAN)

IBANPF - Fichero que se procesa

 

CALIBAN – Rutina que calcula el Digito de Control del IBAN (llama a
CALCCCDC)

 

Con algunos retoques podréis usarlos ya que el SEPA se acerca………

 

Repito muchas gracias a TODOS/AS

 

Y FELICES FIESTASSSSSSS

 


P No lo imprima si no es necesario. Protejamos el medio ambiente.

Este mensaje y sus archivos adjuntos pueden contener información
confidencial y están dirigidos exclusivamente a su destinatario. Le
informamos que la legislación vigente prohíbe el uso, divulgación o copia
del contenido del presente mensaje por persona distinta del destinatario sin
autorización previa. Si Ud. no es el destinatario de este mensaje y lo ha
recibido por error le agradeceríamos que nos lo comunicara y que procediera
a destruirlo. This message can contain confidential information and is
directed exclusively to its adressee. We inform you that the legislation
prohibits to use, spreading or copy the content of the present message by
person different from the adressee without previous authorization. If you
are not the adressee of this message or you have received it by error we
would be thankful if you notify us and delete it.

 




 

 

     A          R IBANR                                               
     A            AJAHCD         7A         TEXT('Codigo cliente')    
     A                                      COLHDG('Codigo' +         
     A                                             'cliente')         
     A            AJAGCD        10          TEXT('Codigo de Banco')   
     A                                      COLHDG('Codigo de' +      
     A                                             'Banco')           
     A            AJA3TX        10          TEXT('Cuenta Banco')      
     A                                      COLHDG('Cuenta' +         
     A                                             'Banco')           
     A            PAIS           2                                    
     A                                      COLHDG('Pais')            
     A            DIGITOS        2S 0                                 
     A                                      COLHDG('Digitos IBAN')    
     A            BANCO          4S 0                                 
     A                                      COLHDG('Banco')           
     A            SUCURSAL       4S 0                                 
     A                                      COLHDG('Sucursal')          
     A            DC             2S 0                                   
     A                                      COLHDG('DC CCC')            
     A            CUENTA        10S 0                                   
     A                                      COLHDG('CTA CCC')           
     A* CLAVES                                                          
     A          K AJAHCD                                                
H*=====================================================================         
                 
H*                                                                              
                 
H* CalCCCDC - Calcular DIGITO DE CONTROL DE UNA CCC                             
                 
H*                                                                              
                 
H* La forma de calcular el dígito de control es esta: Entidad Oficina D.C. Nº 
de cuenta          
H* La primera cifra del banco se multiplica por 4.                              
                 
H* La segunda cifra del banco se multiplica por 8.                              
                 
H* La tercera cifra del banco se multiplica por 5.                              
                 
H* La cuarta cifra del banco se multiplica por 10.                              
                 
H* La primera cifra de la entidad se multiplica por 9.                          
                 
H* La segunda cifra de la entidad se multiplica por 7.                          
                 
H* La tercera cifra de la entidad se multiplica por 3.                          
                 
H* La cuarta cifra de la entidad se multiplica por 6.                           
                 
H* Se suman todos los resultados obtenidos.                                     
                 
H* Se divide entre 11 y nos quedamos con el resto de la división.               
                 
H* A 11 le quitamos el resto anterior, y ese el el primer dígito de control, 
con la salvedad de  
H* que si nos da 10, el dígito es 1                                             
                 
H* Para obtener el segundo dígito de control:                                   
                 
H* La primera cifra de la cuenta se multiplica por 1                            
                 
H* La primera cifra de la cuenta se multiplica por 2                            
                
H* La primera cifra de la cuenta se multiplica por 4                            
                
H* La primera cifra de la cuenta se multiplica por 8                            
                
H* La primera cifra de la cuenta se multiplica por 5                            
                
H* La primera cifra de la cuenta se multiplica por 10                           
                
H* La primera cifra de la cuenta se multiplica por 9                            
                
H* La primera cifra de la cuenta se multiplica por 7                            
                
H* La primera cifra de la cuenta se multiplica por 3                            
                
H* La primera cifra de la cuenta se multiplica por 6                            
                
H* Se suman todos los resultados obtenidos.                                     
                
H* Se divide entre 11 y nos quedamos con el resto de la división.               
                
H* A 11 le quitamos el resto anterior, y ese el el segundo dígito de control, 
con la salvedad   
H* de que si nos da 10, el dígito es 1                                          
                
H*                                                                              
                
H*=====================================================================         
                
H datedit(*DMY) decedit(*jobrun) datfmt(*DMY/) cvtopt(*datetime)                
                
H DFTACTGRP(*NO)                                                                
                

D DSBANC          DS                  INZ                                       
                
D  W$BANC                 1      4                                              
                
D  W$SUCU                 5      8                               
D  DSBS01                 1      1  0                            
D  DSBS02                 2      2  0                            
D  DSBS03                 3      3  0                            
D  DSBS04                 4      4  0                            
D  DSBS05                 5      5  0                            
D  DSBS06                 6      6  0                            
D  DSBS07                 7      7  0                            
D  DSBS08                 8      8  0                            
D DSCTA           DS                  INZ                        
D  W$CTA                  1     10                               
D  DSCT01                 1      1  0                            
D  DSCT02                 2      2  0                            
D  DSCT03                 3      3  0                            
D  DSCT04                 4      4  0                            
D  DSCT05                 5      5  0                            
D  DSCT06                 6      6  0                            
D  DSCT07                 7      7  0                            
D  DSCT08                 8      8  0                            
D  DSCT09                 9      9  0                               
D  DSCT10                10     10  0                               
 *--------------------------------------------------------------*   
C                   EXSR      @DBANC                                
C                   EXSR      @DCTA                                 
C                   movel     W$DBCO        P$DC2                   
C                   move      W$DCTA        P$DC2                   
C                   eval      *inLR = *on                           
 *--------------------------------------------------------------*   
 * @DBANC: CALCULO DEL DIGITO  CONTROL DEL BANC + SUCURSAL      *   
C     @DBANC        BEGSR                                           
 *                                                                  
C     DSBS08        MULT      6             W$UNID                  
C     DSBS07        MULT      3             W$DESE                  
C     DSBS06        MULT      7             W$CENT                  
C     DSBS05        MULT      9             W$UMIL                  
C     DSBS04        MULT      10            W$DMIL                  
C     DSBS03        MULT      5             W$CMIL                  
C     DSBS02        MULT      8             W$UMMI                  
C     DSBS01        MULT      4             W$DMMI         
 *                                                         
C                   Z-ADD     W$UNID        W$SUMA         
C                   ADD       W$DESE        W$SUMA         
C                   ADD       W$CENT        W$SUMA         
C                   ADD       W$UMIL        W$SUMA         
C                   ADD       W$DMIL        W$SUMA         
C                   ADD       W$CMIL        W$SUMA         
C                   ADD       W$UMMI        W$SUMA         
C                   ADD       W$DMMI        W$SUMA         
 *                                                         
C     W$SUMA        DIV       11            W$RESU         
C                   MVR                     W$REST         
 *                                                         
C     11            SUB       W$REST        W$RES1         
C                   SELECT                                 
C     W$RES1        WHENLT    10                           
C                   MOVE      W$RES1        W$DBCO         
C     W$RES1        WHENEQ    11                           
C                   MOVE      '0'           W$DBCO                   
C     W$RES1        WHENEQ    10                                     
C                   MOVE      '1'           W$DBCO                   
C                   ENDSL                                            
 *                                                                   
C                   ENDSR                                            
 *--------------------------------------------------------------*    
 * @DCTA:  CALCULO DEL DIGITO  CONTROL DE LA CUENTA                  
C     @DCTA         BEGSR                                            
 *                                                                   
C     DSCT10        MULT      6             W$UNID                   
C     DSCT09        MULT      3             W$DESE                   
C     DSCT08        MULT      7             W$CENT                   
C     DSCT07        MULT      9             W$UMIL                   
C     DSCT06        MULT      10            W$DMIL                   
C     DSCT05        MULT      5             W$CMIL                   
C     DSCT04        MULT      8             W$UMMI                   
C     DSCT03        MULT      4             W$DMMI                   
C     DSCT02        MULT      2             W$CMMI                   
C     DSCT01        MULT      1             W$UMMM            
 *                                                            
C                   Z-ADD     W$UNID        W$SUMA            
C                   ADD       W$DESE        W$SUMA            
C                   ADD       W$CENT        W$SUMA            
C                   ADD       W$UMIL        W$SUMA            
C                   ADD       W$DMIL        W$SUMA            
C                   ADD       W$CMIL        W$SUMA            
C                   ADD       W$UMMI        W$SUMA            
C                   ADD       W$DMMI        W$SUMA            
C                   ADD       W$CMMI        W$SUMA            
C                   ADD       W$UMMM        W$SUMA            
 *                                                            
C     W$SUMA        DIV       11            W$RESU            
C                   MVR                     W$REST            
 *                                                            
C     11            SUB       W$REST        W$RES1            
C                   SELECT                                    
C     W$RES1        WHENLT    10                              
C                   MOVE      W$RES1        W$DCTA                       
C     W$RES1        WHENEQ    11                                         
C                   MOVE      '0'           W$DCTA                       
C     W$RES1        WHENEQ    10                                         
C                   MOVE      '1'           W$DCTA                       
C                   ENDSL                                                
 *                                                                       
C                   ENDSR                                                
 *--------------------------------------------------------------*        
 * *INZSR                                                                
C     *INZSR        BEGSR                                                
 *                                                                       
C                   MOVE      P$BANC        P$BANC            4          
C                   MOVE      P$CTA         P$CTA            10          
C                   MOVE      P$DBCO        P$DBCO            1          
C                   MOVE      P$DCTA        P$DCTA            1          
C                   MOVE      P$SUCU        P$SUCU            4          
 *                                                                       
C                   Z-ADD     W$CENT        W$CENT            2 0        
C                   Z-ADD     W$CMIL        W$CMIL            2 0          
C     *LIKE         DEFINE    P$DBCO        W$DBCO                         
C     *LIKE         DEFINE    P$DCTA        W$DCTA                         
C                   Z-ADD     W$DESE        W$DESE            2 0          
C                   Z-ADD     W$DMIL        W$DMIL            2 0          
C                   Z-ADD     W$DMMI        W$DMMI            2 0          
C                   Z-ADD     W$CMMI        W$CMMI            2 0          
C                   Z-ADD     W$REST        W$REST            2 0          
C                   Z-ADD     W$RESU        W$RESU            2 0          
C                   Z-ADD     W$RES1        W$RES1            2 0          
C                   Z-ADD     W$SUMA        W$SUMA            4 0          
C                   Z-ADD     W$UMIL        W$UMIL            2 0          
C                   Z-ADD     W$UMMI        W$UMMI            2 0          
C                   Z-ADD     W$UMMM        W$UMMM            2 0          
C                   Z-ADD     W$UNID        W$UNID            2 0          
 * Limpiar campos del resultado                                            
C                   CLEAR                   W$DBCO                         
C                   CLEAR                   W$DCTA                         
                                                                           
C                   CLEAR                   P$DC2             2            
C*                                                                         
c*------------------------------------*                                    
c* *ENTRY: PARAMETROS                 *                                    
c*  P$BANC: CODIGO DEL BANCO          *                                    
c*  P$SUCU: CODIGO DE LA SUCURSAL     *                                    
c*  P$CTA:  NUMERO DE LA CUENTA       *                                    
c*  P$DC2 : DIGIT CONTROL             *                                    
c*------------------------------------*                                    
C     *ENTRY        PLIST                                                  
C     W$BANC        PARM                    P$BANC                         
C     W$SUCU        PARM                    P$SUCU                         
C     W$CTA         PARM                    P$CTA                          
C                   PARM                    P$DC2                          
 *                                                                         
C                   ENDSR                                                  
h datedit(*DMY) decedit(*jobrun) datfmt(*DMY/) cvtopt(*datetime)                
h DFTACTGRP(*NO)                                                                
 *==================================================================·           
h*                                                                              
h* CalIBAN - Calcular IBAN de cuenta bancaria                                   
h*                                                                              
D*=====================================================================         
d*                                                                              
d True            c                   *on                                       
d False           c                   *off                                      
d Letras          s             26a   inz('ABCDEFGHIJKLMNOPQRSTUVWXYZ')         
d Numero          s             30p 0 inz(0)                                    
d Resto           s              2p 0 inz(0)                                    
d Entrada         s             24a   inz(*blank)                               
d Salida          s            256a   inz(*blank)                               
d Posicion        s              2p 0 inz(0)                                    
d Peso            s              2p 0 inz(0)                                    
d Digitos         s              2p 0 inz(0)                                    
c*                                                                              
c*  Construir valor para cálculo                                                
      
c                   eval      Digitos = 0                                       
      
c                   eval      Salida  = *blanks                                 
      
c*                                                                              
      
c                   eval      Pais = 'ES'                                       
      
c                   eval      Banco = 0000                                      
      
c                   eval      Sucursal = 0000                                   
      
c                   eval      DC = 00                                           
      
c                   eval      Cuenta = 0000000000                               
      
c* 
===================================================================================
c* Descomponer la CCC                                                           
      
c                   eval      ABanco    = %subst(AJAGCD:1:4)                    
      
c                   eval      ASucursal = %subst(AJAGCD:5:4)                    
      
c                   eval      ADC       = %subst(AJAGCD:9:2)                    
      
c                   eval      ACuenta   = AJA3TX                                
      
c* Comprobar que no tienen basura los campos                                    
      
c                   If        ABanco <= '0000' or Abanco > '9999'               
      
c                   Goto      Novale                                            
      
c                   Endif                                                       
      
c                   If        ASucursal <= '0000' or ASucursal > '9999'         
        
c                   Goto      Novale                                            
        
c                   Endif                                                       
        
c                   If        ADC < '00' or ADC > '99'                          
        
c                   Goto      Novale                                            
        
c                   Endif                                                       
        
c                   If        ACuenta <= '0000000000' or                        
        
c                             ACuenta >  '9999999999'                           
        
c                   Goto      Novale                                            
        
c                   Endif                                                       
        
c* 
===================================================================================
  
c* Comprobar DC - llamar al progrtama de calculo de DC verdadero                
        
c                   clear                   P$DC                                
        
c     *like         define    ABanco        P$Banco                             
        
c     *like         define    ASucursal     P$Sucursal                          
        
c     *like         define    ACuenta       P$Cuenta                            
        
c                   Call      'CALCCCDC'                                        
        
c                   Parm      ABanco        P$Banco                             
        
c                   Parm      ASucursal     P$Sucursal                          
        
c                   Parm      ACuenta       P$Cuenta                            
              
c                   Parm                    P$DC              2                 
              
c* Si son diferentes meto el Calculado por ser el Bueno.                        
              
c* quedaria con un QRY comparar el grabado con el calculado para ver los 
erroneos             
c                   If        ADC <> P$DC                                       
              
c                   eval      ADC = P$DC                                        
              
c                   endif                                                       
              
c* 
===================================================================================
        
c* Moverlos a numericos                                                         
              
c                   move      ABanco        Banco             4 0          
pasar a numerico   
c                   move      ASucursal     Sucursal          4 0          
pasar a numerico   
c                   move      ADC           DC                2 0          
pasar a numerico   
c                   move      ACuenta       Cuenta           10 0          
pasar a numerico   
c* 
===================================================================================
        
c*                                                                              
              
c                   eval      Entrada = %editc(Banco:'X') +                     
              
c                             %editc(Sucursal:'X') +                            
              
c                             %editc(DC:'X') +                                  
              
c                             %editc(Cuenta:'X') + Pais + '00'                  
              
c*  Comprobar si hay letras                                                     
c                   eval      Posicion = 0                                      
c                   Dou       Posicion >= %len(%trim(Entrada))                  
c                   eval      Posicion = Posicion + 1                           
c                   if        %scan(%subst(Entrada:Posicion:1):Letras)=0        
c                   eval      Salida = %trim(Salida) +                          
c                                      %subst(Entrada:Posicion:1)               
c                   else                                                        
c                   eval      Peso =  +                                         
c                             %scan(%subst(Entrada:Posicion:1):Letras)+9        
c                   eval      Salida = %trim(Salida) + %editc(Peso:'X')         
c                   endif                                                       
c                   enddo                                                       
c*   Calcular                                                                   
c                   eval      Numero = %dec(%trim(Salida):30:0)                 
c                   eval      Resto = %rem(Numero:97)                           
c                   eval      Digitos = 98 - Resto                              
c                   move      Digitos       ADigitos                            
C*                                                                              
c     NoVale        Tag                                                         
               
c                   eval      *inLR = *on                                       
               
c*                                                                              
               
c     *inzsr        Begsr                                                       
               
C     *ENTRY        Plist                                                       
               
c* Campos entran                                                                
               
C                   Parm                    AJAGCD           10                 
               
C                   Parm                    AJA3TX           10                 
               
c* Campos retorno                                                               
               
c                   Parm                    Pais              2            ES   
               
c                   Parm                    ABanco            4                 
               
c                   Parm                    ASucursal         4                 
               
c                   Parm                    ADC               2            
recalculado         
c                   Parm                    ACuenta          10                 
               
c                   Parm                    ADigitos          2            
Digitos del IBAN    
*                                                                               
              
C                   ENDSR                                                       
               
     A*%%TS  SD  20131211  123754  VICENTE     REL-V7R1M0  5770-WDS             
 
     A*%%EC                                                                     
 
     A                                      DSPSIZ(24 80 *DS3)                  
 
     A                                      CHGINPDFT                           
 
     A                                      PRINT                               
 
     A          R CALIBAN01                                                     
 
     A*%%TS  SD  20131211  123754  VICENTE     REL-V7R1M0  5770-WDS             
 
     A                                      OVERLAY                             
 
     A                                  2  2'Introduce la cuenta y pulsa 
Intro.' 
     A                                  4  2'Pais'                              
 
     A                                  4  8'Banco'                             
 
     A                                  4 15'Sucursal'                          
 
     A                                  4 24'Digito C.'                         
 
     A                                  4 35'Cuenta'                            
 
     A            PAIS           2A  B  5  3DSPATR(UL)                          
 
     A                                      DSPATR(HI)                          
 
     A  55                                  DSPATR(PR)                          
 
     A            BANCO          4Y 0B  5  8DSPATR(UL)                          
 
     A                                      DSPATR(HI)                          
 
     A  55                                  DSPATR(PR)                      
     A            SUCURSAL       4Y 0B  5 17DSPATR(UL)                      
     A                                      DSPATR(HI)                      
     A  55                                  DSPATR(PR)                      
     A            DC             2Y 0B  5 27DSPATR(UL)                      
     A                                      DSPATR(HI)                      
     A  55                                  DSPATR(PR)                      
     A            CUENTA        10Y 0B  5 33DSPATR(UL)                      
     A                                      DSPATR(HI)                      
     A  55                                  DSPATR(PR)                      
     A  55                             14  2'Digito:'                       
     A                                      DSPATR(RI)                      
     A  55        DIGITOSDSP     2S 0B 14 10DSPATR(RI)                      
     A  55                             14 15'<<<=============='             
     A  55                             16  2'Pulsa INTRO para salir'        
     A                                      DSPATR(HI)                      
h datedit(*DMY) decedit(*jobrun) datfmt(*DMY/) cvtopt(*datetime)                
 
h DFTACTGRP(*NO)                                                                
 
 *==================================================================·           
 
h*                                                                              
 
h* @CalIBAN - Calcular IBAN de cuenta bancaria                                  
 
h*                                                                              
 
h*=====================================================================         
 
FCalIbanfm CF   E             WORKSTN                                           
 
D*=====================================================================         
 
d* ---------------------------------------------------------------------        
 
d* Procedimiento de cálculo                                                     
 
d* ---------------------------------------------------------------------        
 
d Pais            s              2a                                             
 
d Banco           s              4p 0                                           
 
d Sucursal        s              4p 0                                           
 
d DC              s              2p 0                                           
 
d Cuenta          s             10p 0                                           
 
d*                                                                              
 
d True            c                   *on                                       
 
d False           c                   *off                                      
 
d Letras          s             26a   inz('ABCDEFGHIJKLMNOPQRSTUVWXYZ')         
 
d Numero          s             30p 0 inz(0)                                    
 
d Resto           s              2p 0 inz(0)                                    
 
d Entrada         s             24a   inz(*blank)                               
 
d Salida          s            256a   inz(*blank)                               
 
d Posicion        s              2p 0 inz(0)                                    
 
d Peso            s              2p 0 inz(0)                                    
 
d Digitos         s              2p 0 inz(0)                                    
 
c*                                                                              
 
c*  Construir valor para cálculo                                                
 
c                   eval      Digitos = 0                                       
 
c                   eval      Salida  = *blanks                                 
 
c*                                                                              
 
c                   eval      Pais = 'ES'                                       
 
c                   eval      Banco = 0000                                      
 
c                   eval      Sucursal = 0000                                   
 
c                   eval      DC = 00                                           
 
c                   eval      Cuenta = 0000000000                               
 
c*                                                                              
 
c                   Exfmt     Caliban01                                        
                                                                               
c                   eval      Entrada = %editc(Banco:'X') +                    
c                             %editc(Sucursal:'X') +                           
c                             %editc(DC:'X') +                                 
c                             %editc(Cuenta:'X') + Pais + '00'                 
c*  Comprobar si hay letras                                                    
c                   eval      Posicion = 0                                     
c                   Dou       Posicion >= %len(%trim(Entrada))                 
c                   eval      Posicion = Posicion + 1                          
c                   if        %scan(%subst(Entrada:Posicion:1):Letras)=0       
c                   eval      Salida = %trim(Salida) +                         
c                                      %subst(Entrada:Posicion:1)              
c                   else                                                       
c                   eval      Peso =  +                                        
c                             %scan(%subst(Entrada:Posicion:1):Letras)+9       
c                   eval      Salida = %trim(Salida) + %editc(Peso:'X')        
c                   endif                                                      
c                   enddo                                                      
c*   Calcular                                                     
c                   eval      Numero = %dec(%trim(Salida):30:0)   
c                   eval      Resto = %rem(Numero:97)             
c                   eval      Digitos = 98 - Resto                
c                   eval      SalidaDSP = Salida                  
c                   eval      DigitosDSP = Digitos                
C*                                                                
c                   eval      *in55 = *on                         
c                   Exfmt     Caliban01                           
C*                                                                
c                   eval      *inLR = *on                         
h datedit(*DMY) decedit(*jobrun) datfmt(*DMY/) cvtopt(*datetime)                
         
h DFTACTGRP(*NO)                                                                
         
 *==================================================================·           
         
h*                                                                              
         
h* CalIBAN - Calcular IBAN de cuenta bancaria                                   
         
h*                                                                              
         
h*=====================================================================         
         
FIbanPF    UPE  E           K DISK                                              
         
D*=====================================================================         
         
c                   eval      Digitos = 0                                       
         
c                   eval      Pais = 'ES'                                       
         
c                   eval      Banco = 0000                                      
         
c                   eval      Sucursal = 0000                                   
         
c                   eval      DC = 00                                           
         
c                   eval      Cuenta = 0000000000                               
         
c* 
===================================================================================
   
c* Descomponer la CCC                                                           
         
c                   Call      'CALIBAN'                                         
         
c* Campos envio                                                                 
         
C                   Parm                    AJAGCD                              
               
C                   Parm                    AJA3TX                              
               
c* Campos retorno                                                               
               
c                   Parm                    aPais             2            ES   
               
c                   Parm                    ABanco            4                 
               
c                   Parm                    ASucursal         4                 
               
c                   Parm                    ADC               2            
recalculado         
c                   Parm                    ACuenta          10                 
               
c                   Parm                    ADigitos          2            
Digitos del IBAN    
 *                                                                              
               
c* 
===================================================================================
         
c* Moverlos a numericos                                                         
               
c                   move      Apais         Pais                                
               
c                   move      ABanco        Banco                          
pasar a numerico    
c                   move      ASucursal     Sucursal                       
pasar a numerico    
c                   move      ADC           DC                             
pasar a numerico    
c                   move      ACuenta       Cuenta                         
pasar a numerico    
c                   move      ADigitos      Digitos                        
pasar a numerico    
c* 
===================================================================================
         
c*                                    
c                   Update    IBANR   
c*                                    
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a