Cambiar Cuenta De Mayor A Cuenta Asociada
Si no se quiere crear una cuenta y se prefiere utilizar aquella que ya tiene movimientos, habría que pasar los movimientos a gestión de partidas abiertas y luego el dato maestro. Condición: que la cuenta no sea asocidada.
El código sería:
REPORT Z_ACTIVA_GESTION_PAS.
* Título:
* Activa Gestión de Partidas Abiertas en Cuentas de Mayor.
* Textos de selección:
* CUENTA Cuenta Contable
* FECCONT Fecha Contabilidad
* SOCIEDAD Sociedad
TABLES: BSIS,
BSEG,
SKB1.
PARAMETERS: SOCIEDAD LIKE BSIS-BUKRS OBLIGATORY.
SELECT-OPTIONS: CUENTA FOR BSIS-HKONT OBLIGATORY,
FECCONT FOR BSIS-BUDAT OBLIGATORY.
SELECT * FROM SKB1 CLIENT SPECIFIED WHERE
MANDT = SY-MANDT AND
BUKRS = SOCIEDAD AND
SAKNR IN CUENTA.
IF NOT ( SKB1-MITKZ = 'A' OR
SKB1-MITKZ = 'D' OR
SKB1-MITKZ = 'K' ).
SKB1-XKRES = 'X'.
SKB1-XOPVW = 'X'.
MODIFY SKB1.
PERFORM ACTUALIZAR_MAYOR.
ELSE.
WRITE: / 'Cuenta ', SKB1-SAKNR, ' es cta asociada de ', SKB1-MITKZ.
ENDIF.
ENDSELECT.
FORM ACTUALIZAR_MAYOR.
SELECT * FROM BSIS CLIENT SPECIFIED WHERE
MANDT = SY-MANDT AND
BUKRS = SOCIEDAD AND
HKONT IN CUENTA AND
BUDAT IN FECCONT.
BSIS-XOPVW = 'X'.
MODIFY BSIS.
SELECT SINGLE * FROM BSEG CLIENT SPECIFIED WHERE
MANDT = SY-MANDT AND
BUKRS = BSIS-BUKRS AND
BELNR = BSIS-BELNR AND
GJAHR = BSIS-GJAHR AND
BUZEI = BSIS-BUZEI.
IF SY-SUBRC = 0.
BSEG-XKRES = 'X'.
BSEG-XOPVW = 'X'.
MODIFY BSEG.
ENDIF.
ENDSELECT.
ENDFORM.
|