REPORT Z_CHECK_CBT.
INCLUDE <list>.
************************************************************************
* Selection-Screen
************************************************************************
SELECTION-SCREEN COMMENT 1(78) textver.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK PPROC WITH FRAME TITLE title01.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 31.
PARAMETERS PPROC_MM TYPE T683-KALSM OBLIGATORY DEFAULT 'TAXBRA'.
SELECTION-SCREEN COMMENT 1(29) text01 FOR FIELD PPROC_MM.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 31.
PARAMETERS PPROC_SD TYPE T683-KALSM OBLIGATORY DEFAULT 'RVABRA'.
SELECTION-SCREEN COMMENT 1(29) text02 FOR FIELD PPROC_SD.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK PPROC.
INITIALIZATION.
textver = 'Z_CHECK_CBT - Check CBT Customizing Tool - Version 12'.
************************************************************************
* Data Declaration
************************************************************************
* Nodes
TYPES :
BEGIN OF gty_contents,
name TYPE seu_name,
tlevel TYPE seu_level,
nlength TYPE seu_nodeln,
color TYPE seu_color,
text TYPE seu_text,
tlength TYPE seu_nodeln,
tcolor TYPE seu_color,
END OF gty_contents.
* --- Others
DATA: form965 TYPE string,
form966 TYPE string.
DATA :
gs_nodetab TYPE snodetext,
gt_nodetab TYPE TABLE OF snodetext.
DATA :
gs_contents TYPE gty_contents,
gt_contents TYPE TABLE OF gty_contents.
************************************************************************
* Download BC-Sets HTML Viewer
************************************************************************
************************************************************************
* Folder selection
************************************************************************
************************************************************************
* Download BC-Sets HTML Viewer
************************************************************************
AT SELECTION-SCREEN OUTPUT.
* Create container
repid = sy-repid.
CREATE OBJECT dockingbottom
EXPORTING
repid = repid
dynnr = sy-dynnr
side = dockingbottom->DOCK_AT_BOTTOM
extension = 50.
'target="_blank">https://launchpad.support.sap.com/#/notes/1706309</a></p>'.
APPEND ls_html TO lt_html.
ls_html = '<p>Follow the instructions at Knowledge Base Article link ' &
'<a href="https://launchpad.support.sap.com/#/notes/2133195" ' &
'target="_blank">https://launchpad.support.sap.com/#/notes/2133195</a></p>'.
APPEND ls_html TO lt_html.
* Show it
html->show_url( lv_url ).
************************************************************************
* Start-Of-Selection
************************************************************************
START-OF-SELECTION.
P_CHALL = 'X'.
PERFORM BUILD_INTERNAL_TABLES.
PERFORM DATABASE_READ.
************************************************************************
* Report Display
************************************************************************
*CLEAR gt_contents.
*CLEAR gs_contents.
*GS_CONTENTS-NAME = 'Results'.
*GS_CONTENTS-TLEVEL = '01'.
*GS_CONTENTS-NLENGTH = STRLEN( GS_CONTENTS-NAME ).
*GS_CONTENTS-COLOR = 1.
*IF P_CHALL = 'X'.
* GS_CONTENTS-TEXT = 'Report ALL Customizing'.
*ELSE.
* GS_CONTENTS-TEXT = 'Report only WRONG Customizing'.
*ENDIF.
*GS_CONTENTS-TCOLOR = 1.
*GS_CONTENTS-TLENGTH = '75'.
*APPEND GS_CONTENTS TO GT_CONTENTS.
* Report Version
WRITE: / ICON_INFORMATION AS ICON, textver.
WRITE: /.
WRITE: / 'INSTRUCTIONS:'.
WRITE: / 'Use this report to review the customizing in your system.'.
FORMAT INVERSE COLOR = 6.
WRITE 'This report DOES NOT change any data.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /(130) 'You can double-click at the view/table/transaction names to open it
directly (if you have the authorization).'.
WRITE: / 'TIP: Use', ICON_SEARCH AS ICON, '(CTRL + F) to find specific information
or topics.'.
WRITE: /.
ULINE.
WRITE: / ' 4.2.4.2 Define access sequences for application V (SD) (transaction
V/07)'.
READ TABLE IT_STD_ACS_SEQ WITH KEY APPL = 'V'.
LOOP AT IT_STD_ACS_SEQ WHERE APPL = 'V'.
READ TABLE IT_T682V WITH KEY KOZGF = IT_STD_ACS_SEQ-ACCS.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Access sequence ', IT_STD_ACS_SEQ-
ACCS, ' is missing.'.
WRITE: / ' It is necessary to import this access sequence from client
000.'.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Access sequence ', IT_STD_ACS_SEQ-ACCS, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T682V.
ULINE.
WRITE: / ' 4.2.5.2 Create condition types for application V (SD) (transaction
V/06)'.
READ TABLE IT_STD_CONDV WITH KEY APPL = 'V'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'Conditions not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_CONDV WHERE APPL = 'V'.
READ TABLE IT_T685V WITH KEY KSCHL = IT_STD_CONDV-COND
KOZGF = IT_STD_CONDV-ACCS.
IF SY-SUBRC = 0.
READ TABLE IT_T685AV WITH KEY KSCHL = IT_STD_CONDV-COND
KOAID = IT_STD_CONDV-KOAID
KRECH = IT_STD_CONDV-KRECH
KNTYP = IT_STD_CONDV-KNTYP.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Condition type ', IT_STD_CONDV-COND, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDV-COND,
' is wrong.'.
WRITE: / ' The standard customizing is wrong. Correct is:'.
WRITE: / ' - Condition Class :', IT_STD_CONDV-KOAID.
WRITE: / ' - Calculation Type :', IT_STD_CONDV-KRECH.
WRITE: / ' - Condition Category:', IT_STD_CONDV-KNTYP.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
READ TABLE IT_T685V WITH KEY KSCHL = IT_STD_CONDV-COND.
IF SY-SUBRC = 4.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDV-
COND, ' is missing.'.
ELSE.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Condition type ', IT_STD_CONDV-
COND, ' is wrong.'.
WRITE: / ' The access sequence for this condition is wrong. Correct
is:'.
WRITE: / ' - Access Sequence :', IT_STD_CONDV-ACCS.
ENDIF.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T685V.
CLEAR IT_T685AV.
ULINE.
* '4.2.8 Assign condition types to internal codes for tax conditions (table
J_1BTXCOND)'.
WRITE: /(120) '4.2.8 Assign condition types to internal codes for tax conditions
(view J_1BTXCOND)'.
READ TABLE IT_STD_INTCOD_CNDTYP.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_DUMMY AS ICON, 'Cond. types x Int. codes not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
SORT IT_STD_INTCOD_CNDTYP ASCENDING BY CODE.
LOOP AT IT_STD_INTCOD_CNDTYP.
READ TABLE IT_J_1BTXCOND WITH KEY CODE = IT_STD_INTCOD_CNDTYP-CODE
KAPPL = IT_STD_INTCOD_CNDTYP-KAPPL
KSCHL = IT_STD_INTCOD_CNDTYP-KSCHL.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
CONDENSE IT_STD_INTCOD_CNDTYP-CODE NO-GAPS.
WRITE: / ICON_OKAY AS ICON, 'Internal code ', IT_STD_INTCOD_CNDTYP-CODE,
'Appl.', IT_STD_INTCOD_CNDTYP-KAPPL, ' correctly assigned to ',
IT_STD_INTCOD_CNDTYP-KSCHL.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Internal code ', IT_STD_INTCOD_CNDTYP-CODE,
'Appl.', IT_STD_INTCOD_CNDTYP-KAPPL, ' assignment is wrong.'.
WRITE: / ' ', '
Assign it to condition:', IT_STD_INTCOD_CNDTYP-KSCHL.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_STD_INTCOD_CNDTYP.
CLEAR IT_J_1BTXCOND.
ULINE.
WRITE: /(120) '4.2.9 Assign internal code to tax group (view J_1BCONDMAPV)'.
SORT IT_STD_TAXG_ICODE BY CODE ASCENDING CONTROL ASCENDING.
LOOP AT IT_STD_TAXG_ICODE WHERE CONTROL = 1.
READ TABLE IT_J_1BTAXGRPCD WITH KEY TAXGRP = IT_STD_TAXG_ICODE-TAXGRP
CODE = IT_STD_TAXG_ICODE-CODE.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ICON_INCOMPLETE AS ICON, 'Tax group ', IT_STD_TAXG_ICODE-TAXGRP, ' is
missing/wrong.'.
READ TABLE IT_J_1BTAXGRPCD WITH KEY TAXGRP = IT_STD_TAXG_ICODE-TAXGRP.
IF SY-SUBRC = 0.
CONDENSE IT_STD_TAXG_ICODE-CODE NO-GAPS.
WRITE: / ' The internal code is wrong for this tax group. Correct is',
IT_STD_TAXG_ICODE-CODE.
ENDIF.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_OKAY AS ICON, 'Tax group ', IT_STD_TAXG_ICODE-TAXGRP, ' is
OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_J_1BTAXGRPCD.
WRITE: /(120) '4.2.11 Assign condition tables to tax rate tables (view
J_1BVIEWMAP)'.
FORMAT INVERSE COLOR = 5.
WRITE: / ICON_LED_YELLOW AS ICON, 'Delivered with BC set
ZCSC_BR_CBT_CND_TBS_TAX_RT_TBS.'.
FORMAT INVERSE OFF COLOR = 0.
SORT IT_STD_MAP_TO_COND ASCENDING BY TABNAME.
LOOP AT IT_STD_MAP_TO_COND.
READ TABLE IT_J_1BVIEWMAP WITH KEY TABNAME = IT_STD_MAP_TO_COND-TABNAME
KOTABNR = IT_STD_MAP_TO_COND-KOTABNR.
IF SY-SUBRC = 4.
READ TABLE IT_J_1BVIEWMAP WITH KEY TABNAME = IT_STD_MAP_TO_COND-TABNAME.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Table', IT_STD_MAP_TO_COND-TABNAME,
' is missing'.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Table', IT_STD_MAP_TO_COND-TABNAME,
' is wrong'.
IF IT_STD_MAP_TO_COND-KOTABNR <> '601'.
WRITE: / ' The cond. table assigned to this tax table is wrong.
Correct is', IT_STD_MAP_TO_COND-KOTABNR.
ELSE.
FORMAT INVERSE COLOR = 4.
WRITE: / ' The cond. table assigned to this tax table can differ from
the recommended 601.'.
ENDIF.
ENDIF.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Table', IT_STD_MAP_TO_COND-TABNAME, ' is
OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_STD_MAP_TO_COND.
ULINE.
BASE = IT_STD_MAP_COND_NFTX-BASE
BASERED1 = IT_STD_MAP_COND_NFTX-
BASERED1
BASERED1_MAP = IT_STD_MAP_COND_NFTX-
BASERED1_MAP
BASERED2 = IT_STD_MAP_COND_NFTX-
BASERED2
BASERED2_MAP = IT_STD_MAP_COND_NFTX-
BASERED2_MAP
BASE_MAP = IT_STD_MAP_COND_NFTX-
BASE_MAP
EXCBAS = IT_STD_MAP_COND_NFTX-
EXCBAS
EXCBAS_MAP = IT_STD_MAP_COND_NFTX-
EXCBAS_MAP
OTHBAS = IT_STD_MAP_COND_NFTX-
OTHBAS
OTHBAS_MAP = IT_STD_MAP_COND_NFTX-
OTHBAS_MAP
* These fields are commented because if the system does not have Pauta changes
implemented, the fields
* are not available. Therefore, it is not possible to activate the program.
* If PAUTA is implemented, the fields can be used.
* QBASE = IT_STD_MAP_COND_NFTX-
QBASE
* QBASE_MAP = IT_STD_MAP_COND_NFTX-
QBASE_MAP
* QRATE = IT_STD_MAP_COND_NFTX-
QRATE
* QRATE4DEC = IT_STD_MAP_COND_NFTX-
QRATE4DEC
* QRATE4DEC_MAP = IT_STD_MAP_COND_NFTX-
QRATE4DEC_MAP
* QRATE_MAP = IT_STD_MAP_COND_NFTX-
QRATE_MAP
RATE = IT_STD_MAP_COND_NFTX-RATE
* RATE4DEC = IT_STD_MAP_COND_NFTX-
RATE4DEC
* RATE4DEC_MAP = IT_STD_MAP_COND_NFTX-
RATE4DEC_MAP
RATE_MAP = IT_STD_MAP_COND_NFTX-
RATE_MAP
* SRATE = IT_STD_MAP_COND_NFTX-
SRATE
* SRATE_MAP = IT_STD_MAP_COND_NFTX-
SRATE_MAP
VALUE = IT_STD_MAP_COND_NFTX-
VALUE
VALUE_MAP = IT_STD_MAP_COND_NFTX-
VALUE_MAP
WHTCOLLCODE = IT_STD_MAP_COND_NFTX-
WHTCOLLCODE
WHTCOLLCODE_MAP = IT_STD_MAP_COND_NFTX-
WHTCOLLCODE_MAP.
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Tax type ', IT_STD_MAP_COND_NFTX-TTYP, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax type ', IT_STD_MAP_COND_NFTX-
TTYP, ' not correctly mapped.'.
WRITE: / ' Recommended is:'.
WRITE: / ' - Tax Rate Cond. :', IT_STD_MAP_COND_NFTX-RATE, '
Mapping', IT_STD_MAP_COND_NFTX-RATE_MAP.
WRITE: / ' - Pauta Rate Cond. :', IT_STD_MAP_COND_NFTX-QRATE, '
Mapping', IT_STD_MAP_COND_NFTX-QRATE_MAP.
WRITE: / ' - Tax Amount Cond. :', IT_STD_MAP_COND_NFTX-VALUE, '
Mapping', IT_STD_MAP_COND_NFTX-VALUE_MAP.
WRITE: / ' - Tax Base Cond. :', IT_STD_MAP_COND_NFTX-BASE, '
Mapping', IT_STD_MAP_COND_NFTX-BASE_MAP.
WRITE: / ' - Ex. Base Cond. :', IT_STD_MAP_COND_NFTX-EXCBAS, '
Mapping', IT_STD_MAP_COND_NFTX-EXCBAS_MAP.
WRITE: / ' - Other Base Cond. :', IT_STD_MAP_COND_NFTX-OTHBAS, '
Mapping', IT_STD_MAP_COND_NFTX-OTHBAS_MAP.
WRITE: / ' - WHT Collection Code:', IT_STD_MAP_COND_NFTX-WHTCOLLCODE, '
Mapping', IT_STD_MAP_COND_NFTX-WHTCOLLCODE_MAP.
WRITE: / ' - Base Red. :', IT_STD_MAP_COND_NFTX-BASERED1, '
Mapping', IT_STD_MAP_COND_NFTX-BASERED1_MAP.
WRITE: / ' - St. Base Red. :', IT_STD_MAP_COND_NFTX-BASERED2, '
Mapping', IT_STD_MAP_COND_NFTX-BASERED2_MAP.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax type ', IT_STD_MAP_COND_NFTX-
TTYP, ' is missing.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_STD_MAP_COND_NFTX.
CLEAR IT_J_1BNFTXCONDTX.
WRITE: / ' 4.2.16.2 Map SD tax values to Nota Fiscal fields (view J_1BNFTXCONDV)'.
READ TABLE IT_STD_MAP_COND_NFV WITH KEY APPL = 'V'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_DUMMY AS ICON, 'SD Values not loaded from BC-Sets '.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
LOOP AT IT_STD_MAP_COND_NFV WHERE APPL = 'V'.
READ TABLE IT_J_1BNFTXCONDV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD.
IF SY-SUBRC = 0.
READ TABLE IT_J_1BNFTXCONDV WITH KEY KVEWE = 'A'
KAPPL = 'V'
KALSM = PPROC_SD
TAXTYP = IT_STD_MAP_COND_NFV-TTYP
BASE = IT_STD_MAP_COND_NFV-BASE
BASERED1 = IT_STD_MAP_COND_NFV-
BASERED1
BASERED1_MAP = IT_STD_MAP_COND_NFV-
BASERED1_MAP
BASERED2 = IT_STD_MAP_COND_NFV-
BASERED2
BASERED2_MAP = IT_STD_MAP_COND_NFV-
BASERED2_MAP
BASE_MAP = IT_STD_MAP_COND_NFV-
BASE_MAP
EXCBAS = IT_STD_MAP_COND_NFV-
EXCBAS
EXCBAS_MAP = IT_STD_MAP_COND_NFV-
EXCBAS_MAP
OTHBAS = IT_STD_MAP_COND_NFV-
OTHBAS
OTHBAS_MAP = IT_STD_MAP_COND_NFV-
OTHBAS_MAP
RATE = IT_STD_MAP_COND_NFV-RATE
RATE_MAP = IT_STD_MAP_COND_NFV-
RATE_MAP
VALUE = IT_STD_MAP_COND_NFV-VALUE
VALUE_MAP = IT_STD_MAP_COND_NFV-
VALUE_MAP
WHTCOLLCODE = IT_STD_MAP_COND_NFV-
WHTCOLLCODE
WHTCOLLCODE_MAP = IT_STD_MAP_COND_NFV-
WHTCOLLCODE_MAP.
* These fields are commented because if the system does not have Pauta changes
implemented, the fields
* are not available. Therefore, it is not possible to activate the program.
* If PAUTA is implemented, the fields can be used.
* QBASE = IT_STD_MAP_COND_NFV-
QBASE
* QBASE_MAP = IT_STD_MAP_COND_NFV-
QBASE_MAP
* QRATE = IT_STD_MAP_COND_NFV-
QRATE
* QRATE4DEC = IT_STD_MAP_COND_NFV-
QRATE4DEC
* QRATE4DEC_MAP = IT_STD_MAP_COND_NFV-
QRATE4DEC_MAP
* QRATE_MAP = IT_STD_MAP_COND_NFV-
QRATE_MAP
* RATE4DEC = IT_STD_MAP_COND_NFV-
RATE4DEC
* RATE4DEC_MAP = IT_STD_MAP_COND_NFV-
RATE4DEC_MAP
* SRATE = IT_STD_MAP_COND_NFV-
SRATE
* SRATE_MAP = IT_STD_MAP_COND_NFV-
SRATE_MAP
IF SY-SUBRC = 0.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Tax type ', IT_STD_MAP_COND_NFV-TTYP, '
is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax type ', IT_STD_MAP_COND_NFV-
TTYP, ' not correctly mapped.'.
WRITE: / ' Recommended is:'.
WRITE: / ' - Tax Rate Cond. :', IT_STD_MAP_COND_NFV-RATE, '
Mapping', IT_STD_MAP_COND_NFV-RATE_MAP.
WRITE: / ' - Pauta Rate Cond. :', IT_STD_MAP_COND_NFV-QRATE, '
Mapping', IT_STD_MAP_COND_NFV-QRATE_MAP.
WRITE: / ' - Tax Amount Cond. :', IT_STD_MAP_COND_NFV-VALUE, '
Mapping', IT_STD_MAP_COND_NFV-VALUE_MAP.
WRITE: / ' - Tax Base Cond. :', IT_STD_MAP_COND_NFV-BASE, '
Mapping', IT_STD_MAP_COND_NFV-BASE_MAP.
WRITE: / ' - Ex. Base Cond. :', IT_STD_MAP_COND_NFV-EXCBAS, '
Mapping', IT_STD_MAP_COND_NFV-EXCBAS_MAP.
WRITE: / ' - Other Base Cond. :', IT_STD_MAP_COND_NFV-OTHBAS, '
Mapping', IT_STD_MAP_COND_NFV-OTHBAS_MAP.
WRITE: / ' - WHT Collection Code:', IT_STD_MAP_COND_NFV-WHTCOLLCODE, '
Mapping', IT_STD_MAP_COND_NFV-WHTCOLLCODE_MAP.
WRITE: / ' - Base Red. :', IT_STD_MAP_COND_NFV-BASERED1, '
Mapping', IT_STD_MAP_COND_NFV-BASERED1_MAP.
WRITE: / ' - St. Base Red. :', IT_STD_MAP_COND_NFV-BASERED2, '
Mapping', IT_STD_MAP_COND_NFV-BASERED2_MAP.
ENDIF.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Tax type ', IT_STD_MAP_COND_NFV-TTYP,
' is missing.'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_STD_MAP_COND_NFV.
CLEAR IT_J_1BNFTXCONDV.
WRITE: / ' 4.4.14 Define withholding tax type for payment posting'.
WRITE: / ' 4.4.14.1 Tax types without accumulation (view V_T059PP)'.
LOOP AT IT_STD_WHT WHERE ACC = 2.
READ TABLE IT_T059P WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
WT_BASE = '5'
J_1BWHTBASE_NF = ''
WT_WTRD = '00'
WT_WTDSC = ''
WT_DOPOST = 'X'
WT_ACCPT = '0'
WT_MANBAS = 'X'
WT_MANUAL = 'X'
WT_CTNBRL = 'X'
WT_MAINTB = '2'
WT_MAINTA = '2'
WT_CEINV = '0'
WT_BCPLVL = '0'.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding key', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
WRITE: / ' Make sure you maintain the following entry:'.
WRITE: / ' Base amount Modified Tax Amount'.
WRITE: / ' Origin of base Base in standard FI tables'.
WRITE: / ' Rounding rule W/tax comm round'.
WRITE: / ' Cash Discount C/disc pre W/tx'.
WRITE: / ' Post w/tax amount X'.
WRITE: / ' Accumulation type No accumulation'.
WRITE: / ' W/tax base manual X'.
WRITE: / ' Manual w/tax amount X'.
WRITE: / ' No cert numbering X'.
WRITE: / ' Base amount W/tax code level'.
WRITE: / ' Withholding tax amount W/tax code level'.
WRITE: / ' Central Invoice No Central Invoice'.
WRITE: / ' Minimum Check Minimum Check at item level'.
WRITE: /.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding key', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059P.
ULINE.
WRITE: / ' 4.4.15 Define account key for modified tax amount (view V_T059KT)'.
LOOP AT IT_STD_WHT.
READ TABLE IT_T059K WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
KTOSL = IT_STD_WHT-PROCKEY.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding key type', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
WRITE: / ' Assign it to Processing Key', IT_STD_WHT-PROCKEY.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding key type', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059K.
CLEAR IT_STD_WHT.
ULINE.
WRITE: / ' 4.4.16 Assign condition type to withholding tax type (view V_T059PK)'.
LOOP AT IT_STD_WHT WHERE ACC = 0.
READ TABLE IT_T059P WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
KSCHL = IT_STD_WHT-KSCHL.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding key type', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
WRITE: / ' Assign it to Condition Type', IT_STD_WHT-KSCHL.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding key type', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059P.
CLEAR IT_STD_WHT.
ULINE.
WRITE: / ' 4.4.20 Define minimum base amount for withholding tax types (view
V_T059M_T)'.
LOOP AT IT_STD_WHT WHERE ACC = 1.
READ TABLE IT_T059MINMAX WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE
WAERS = 'BRL'
WT_WTMINB = 5000.
IF SY-SUBRC = 4.
READ TABLE IT_T059MINMAX WITH KEY LAND1 = 'BR'
WITHT = IT_STD_WHT-WHTTYPE.
IF SY-SUBRC = 4.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding tax type', IT_STD_WHT-
WHTTYPE, 'is missing.'.
ELSE.
FORMAT INVERSE COLOR = 6.
WRITE: / ' ', ICON_INCOMPLETE AS ICON, 'Withholding tax type', IT_STD_WHT-
WHTTYPE, 'is wrong.'.
ENDIF.
WRITE: / ' Create an entry:'.
WRITE: / ' Wht tax type :', IT_STD_WHT-WHTTYPE.
WRITE: / ' Currency : BRL'.
WRITE: / ' Min. Base Amount: 5.000,00'.
FORMAT INVERSE OFF COLOR = 0.
ELSE.
IF P_CHALL = 'X'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_OKAY AS ICON, 'Withholding tax type', IT_STD_WHT-WHTTYPE,
'is OK.'.
FORMAT INVERSE OFF COLOR = 0.
ENDIF.
ENDIF.
ENDLOOP.
WRITE: /.
CLEAR IT_T059MINMAX.
CLEAR IT_STD_WHT.
ULINE.
*'4.4.22 Maintain Wht tax rates and assign official collection codes'.
IF P_CHALL = 'X'.
WRITE: / ' 4.4.22 Maintain Wht tax rates and assign official collection codes'.
FORMAT INVERSE COLOR = 5.
WRITE: / ' ', ICON_LED_YELLOW AS ICON, '(MANUAL TASK) Should be created
according to your needs.'.
FORMAT INVERSE OFF COLOR = 0.
WRITE: /.
ULINE.
ENDIF.
END-OF-SELECTION.
************************************************************************
* AT LINE-SELECTION
************************************************************************
AT LINE-SELECTION.
INIPOS = 0.
SEARCH SY-LISEL FOR 'view'.
INIPOS = SY-FDPOS + 5.
OPERATION_TYPE = SY-LISEL+SY-FDPOS(4).
VIEW-TAB = SY-LISEL+INIPOS.
REPLACE ALL OCCURRENCES OF SUBSTRING ')' IN VIEW-TAB WITH ''.
CASE OPERATION_TYPE.
WHEN 'view'.
CALL FUNCTION 'VIEW_AUTHORITY_CHECK'
EXPORTING
view_action = 'S'
view_name = VIEW-TAB
* check_action_alternative = 'X'
EXCEPTIONS
invalid_action = 1
no_authority = 2
no_clientindependent_authority = 3
table_not_found = 4
no_linedependent_authority = 5
OTHERS = 6.
IF SY-SUBRC = 0.
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = 'S'
view_name = VIEW-TAB
EXCEPTIONS
client_reference = 1
foreign_lock = 2
invalid_action = 3
no_clientindependent_auth = 4
no_database_function = 5
no_editor_function = 6
no_show_auth = 7
no_tvdir_entry = 8
no_upd_auth = 9
only_show_allowed = 10
system_failure = 11
unknown_field_in_dba_sellist = 12
view_not_found = 13
maintenance_prohibited = 14
OTHERS = 15.
ENDIF.
WHEN 'table'.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = 'SE16'
EXCEPTIONS
ok = 1
not_ok = 2
OTHERS = 3.
IF SY-SUBRC > 1.
* No authorization for transaction &1
MESSAGE i063(vo) WITH 'SE16'.
ELSE.
SET PARAMETER ID 'DTB' FIELD TAB.
CALL TRANSACTION 'SE16' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'transaction'.
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = TRX
EXCEPTIONS
ok = 1
not_ok = 2
OTHERS = 3.
IF SY-SUBRC > 1.
* No authorization for transaction &1
MESSAGE i063(vo) WITH TRX.
ELSE.
CALL TRANSACTION TRX.
ENDIF.
ENDCASE. "END OF AT LINE-SELECTION
FORM DATABASE_READ.
*& -----------------------------------------------------------------------*
*& FORM DATABASE_READ
*& -----------------------------------------------------------------------*
*& Reads the relevant tables, according to the PDF interpretation
*& -----------------------------------------------------------------------*
ENDFORM.
FORM BUILD_INTERNAL_TABLES.
*& -----------------------------------------------------------------------*
*& FORM BUILD_INTERNAL_TABLES
*& -----------------------------------------------------------------------*
*& Tables with the standard customizing for:
*& - Access Sequences (MM / SD) (IT_STD_ACS_SEQ)
*& - Internal code x Tax groups (IT_STD_TAXG_ICODE)
*& - Condition Tables x Tax Rate tables (MM / SD) (IT_STD_MAP_TO_COND)
*& - Standard Withholding Types (IT_STD_WHT)
*& - Standard step number for conditions without it in the BC-Sets
*& SD - IT_STD_COND_STUNRV
*& MM - IT_STD_COND_STUNRTX
*& -----------------------------------------------------------------------*
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'COFI'.
IT_STD_TAXG_ICODE-CODE = 'COFINSMINPRICE'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'COFI'.
IT_STD_TAXG_ICODE-CODE = 'COFINSWTRATE'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'ICMS'.
IT_STD_TAXG_ICODE-CODE = 'ICMSBASE_INTRA'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'ICMS'.
IT_STD_TAXG_ICODE-CODE = 'ICMSSPECFUNDBASE'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = 'ICMS'.
IT_STD_TAXG_ICODE-CODE = 'ICMSSPECFUNDRATE'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = ''.
IT_STD_TAXG_ICODE-CODE = 'ICMSNONCONTRIBUTOR'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_TAXG_ICODE-CONTROL = 2.
IT_STD_TAXG_ICODE-TAXGRP = ''.
IT_STD_TAXG_ICODE-CODE = 'ICMSPARTILHAEXEMPT'.
APPEND IT_STD_TAXG_ICODE.
IT_STD_WHT-WHTTYPE = 'CA'.
IT_STD_WHT-PROCKEY = 'WAC'.
IT_STD_WHT-KSCHL = 'ICW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'CA'.
IT_STD_WHT-PROCKEY = 'WC5'.
IT_STD_WHT-KSCHL = 'ICW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'CP'.
IT_STD_WHT-PROCKEY = 'WTC'.
IT_STD_WHT-KSCHL = 'WCOC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'CP'.
IT_STD_WHT-PROCKEY = 'WC3'.
IT_STD_WHT-KSCHL = 'WCOC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'GA'.
IT_STD_WHT-PROCKEY = 'WAG'.
IT_STD_WHT-KSCHL = 'IGW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'GA'.
IT_STD_WHT-PROCKEY = 'WG5'.
IT_STD_WHT-KSCHL = 'IGW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'GP'.
IT_STD_WHT-PROCKEY = 'WTG'.
IT_STD_WHT-KSCHL = 'WGEC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'GP'.
IT_STD_WHT-PROCKEY = 'WG3'.
IT_STD_WHT-KSCHL = 'WGEC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'IW'.
IT_STD_WHT-PROCKEY = 'ISW'.
IT_STD_WHT-KSCHL = 'WISC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'IW'.
IT_STD_WHT-PROCKEY = 'WK3'.
IT_STD_WHT-KSCHL = 'WISC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'PA'.
IT_STD_WHT-PROCKEY = 'WAP'.
IT_STD_WHT-KSCHL = 'IPW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'PA'.
IT_STD_WHT-PROCKEY = 'WP5'.
IT_STD_WHT-KSCHL = 'IPW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'PP'.
IT_STD_WHT-PROCKEY = 'WTP'.
IT_STD_WHT-KSCHL = 'WPIC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'PP'.
IT_STD_WHT-PROCKEY = 'WP3'.
IT_STD_WHT-KSCHL = 'WPIC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'RA'.
IT_STD_WHT-PROCKEY = 'WAI'.
IT_STD_WHT-KSCHL = 'IRW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'RA'.
IT_STD_WHT-PROCKEY = 'WI5'.
IT_STD_WHT-KSCHL = 'IRW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'RP'.
IT_STD_WHT-PROCKEY = 'WTI'.
IT_STD_WHT-KSCHL = 'WIRC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'RP'.
IT_STD_WHT-PROCKEY = 'WI3'.
IT_STD_WHT-KSCHL = 'WIRC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'SA'.
IT_STD_WHT-PROCKEY = 'WAS'.
IT_STD_WHT-KSCHL = 'ISW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 1.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'SA'.
IT_STD_WHT-PROCKEY = 'WS5'.
IT_STD_WHT-KSCHL = 'ISW6'.
IT_STD_WHT-MINBASE = 5000.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'SP'.
IT_STD_WHT-PROCKEY = 'WTS'.
IT_STD_WHT-KSCHL = 'WCSC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 2.
APPEND IT_STD_WHT.
IT_STD_WHT-WHTTYPE = 'SP'.
IT_STD_WHT-PROCKEY = 'WS3'.
IT_STD_WHT-KSCHL = 'WCSC'.
IT_STD_WHT-MINBASE = ''.
IT_STD_WHT-ACC = 0.
APPEND IT_STD_WHT.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form READ_BCS_FILE
*&---------------------------------------------------------------------*
* Basically translates the contents from the BC-SETs to Internal
* tables.
*----------------------------------------------------------------------*
FORM READ_BCS_FILE USING i_num TYPE i.
data: transfer_tab type scpr_transfer occurs 0 with header line.
CASE i_num.
WHEN '1'.
PATH_AND_FILENAME = P_FILE1.
WHEN '2'.
PATH_AND_FILENAME = P_FILE2.
WHEN '3'.
PATH_AND_FILENAME = P_FILE3.
WHEN '4'.
PATH_AND_FILENAME = P_FILE4.
WHEN '5'.
PATH_AND_FILENAME = P_FILE5.
WHEN '6'.
PATH_AND_FILENAME = P_FILE6.
WHEN '7'.
PATH_AND_FILENAME = P_FILE7.
WHEN '8'.
PATH_AND_FILENAME = P_FILE8.
WHEN '9'.
PATH_AND_FILENAME = P_FILE9.
WHEN '10'.
PATH_AND_FILENAME = P_FILE10.
ENDCASE.
IF sy-subrc <> 0.
* CREATE AN ERROR MESSAGE HERE IF THE FILE CANNOT BE OPENED
* No need for error message
ELSE.
* Idea copied from Include LSCPRPRF01
* Datenstrom analysieren, int. Tabellen f�r BC-Set(s) f�llen und
* BC-Set(s) sichern
read table transfer_tab index 1.
file_version = transfer_tab+50(2).
if file_version = ' 1'.
perform read_transfer_tab_and_save tables transfer_tab.
ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form READ_TRANSFER_TAB_AND_SAVE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> TRANSFER_TAB text
* contents of each BC-SET are transferred to the respective internal
* tables and organized.
*----------------------------------------------------------------------*
FORM read_transfer_tab_and_save
TABLES transfer_tab TYPE scpr_transfertab.
LOOP AT transfer_tab.
key = transfer_tab(50).
CASE key.
WHEN 'BCSET'. "wird aus historischen Gr�nden noch ben�tigt
proftext = transfer_tab+50(60).
WHEN 'SCPRVALS'.
CLEAR values.
* values-tablename = transfer_tab+50(90).
values-tablename = transfer_tab+50(20).
values-recnumber = transfer_tab+100(10).
values-fieldname = transfer_tab+110(50).
values-value = transfer_tab+180(255).
APPEND values.
ENDCASE.
ENDLOOP.
CASE PROFTEXT.
WHEN 'ZCSC_BR_CBT_ACCOUNT_KEYS_FI TMV'.
* READ TABLE VALUES WITH KEY TABLENAME = 'T687'.
* SORT VALUES BY TABLENAME RECNUMBER.
LOOP AT VALUES.
IF VALUES-TABLENAME = 'T687'.
CASE VALUES-FIELDNAME.
WHEN 'KVSL1'.
IT_STD_ACC_KEY-KVSL1 = VALUES-VALUE.
lin = lin + 1.
ENDCASE.
ENDIF.
IF LIN = 1.
IT_STD_ACC_KEY-APPL = 'TX'.
APPEND IT_STD_ACC_KEY.
CLEAR IT_STD_ACC_KEY.
CLEAR LIN.
ENDIF.
ENDLOOP.