zmc3.xlsx
-
Upload
pandu-munagala -
Category
Documents
-
view
3 -
download
0
description
Transcript of zmc3.xlsx
**********************************************************************
**********************************************************************
**********************************************************************
**********************************************************************
*---------------------------------------------------------------------
**********************************************************************
*////////////////////// Welspun India Ltd. \\\\\\\\\\\\\\\\\\\\\\\\*
* Description :Commercial Invoice
* Module :SD
* Trans. code :zcm93
* Author :Subash Chandra Doss
* Consultant :
* Tested By :
* Text Symbols :
* Remarks :
* Change History :
* Description | Date | Author |Change
* | | |Request No
* | | |
*Added STD_SHADE_NO_2 |23.08.2008|GANESH T |WVDK921227
REPORT ZCMS092V LINE-SIZE 80 LINE-COUNT 65 MESSAGE-ID ZW
NO STANDARD PAGE HEADING.
*-- Tables
TABLES:T001W ,
ADRC,
J_1IMOCUST, "Customer Master Excise Additional Data
J_1IMOCOMP, "Company and Plant - Excise Additional Data
NAST,
VBRK,
TSP03L,
SNAST,
ITCPO,
TVFK.
*-- Selection-Screen
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS: P_PINO LIKE VBRK-VBELN,
P_PLANT LIKE T001W-WERKS OBLIGATORY,
P_BUKRS LIKE VBRK-BUKRS OBLIGATORY MEMORY ID PID.
SELECTION-SCREEN END OF BLOCK B1.
*-- Internal Table Declaration
DATA BEGIN OF IVBRP OCCURS 0.
INCLUDE STRUCTURE VBRP.
DATA : KNUMV LIKE KONV-KNUMV,
KPOSN LIKE KONV-KPOSN,
KBETR LIKE KONV-KBETR,
STUNR LIKE KONV-STUNR,
ZAEHK LIKE KONV-ZAEHK,
KSCHL LIKE KONV-KSCHL.
DATA END OF IVBRP.
DATA I_VBRP LIKE IVBRP OCCURS 0 WITH HEADER LINE.
DATA BEGIN OF IVBRK OCCURS 0.
INCLUDE STRUCTURE VBRK.
DATA END OF IVBRK.
DATA : BEGIN OF IKONV OCCURS 0.
INCLUDE STRUCTURE KONV.
DATA : END OF IKONV.
* For TIN Number
DATA BEGIN OF I_J_1IMOCOMP OCCURS 0.
INCLUDE STRUCTURE J_1IMOCOMP.
DATA END OF I_J_1IMOCOMP.
DATA BEGIN OF I_J_1IMOCUST OCCURS 0.
INCLUDE STRUCTURE J_1IMOCUST.
DATA END OF I_J_1IMOCUST.
DATA : BEGIN OF IADRC OCCURS 0.
INCLUDE STRUCTURE ZADRC.
DATA : END OF IADRC.
DATA: BEGIN OF IADRC1 OCCURS 0.
INCLUDE STRUCTURE ZADRC.
DATA END OF IADRC1.
DATA : BEGIN OF I_IKOMVD OCCURS 0.
INCLUDE STRUCTURE KOMVD .
DATA : END OF I_IKOMVD.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
DATA: BEGIN OF I_DATA OCCURS 0,
ADRNR LIKE VBPA-ADRNR,
PARVW LIKE VBPA-PARVW,
KUNNR LIKE VBPA-KUNNR,
LIFNR LIKE VBPA-LIFNR,
END OF I_DATA.
DATA: RETCODE LIKE SY-SUBRC, " Return Code
IBSTNK LIKE VBAK-BSTNK,
NAST_CHECK TYPE C,
XSCREEN(1) TYPE C,
IBUKRS LIKE VBAK-BUKRS_VF.
DATA: SF_CONTROL TYPE SSFCTRLOP,
SF_OUTPUT_OPTION TYPE SSFCOMPOP,
VTEXT1 LIKE T685T-VTEXT.
START-OF-SELECTION.
PERFORM PROCESS_OUTPUT CHANGING RETCODE.
*---################## PERFORMS ##############################
FORM ENTRY USING RETURN_CODE US_SCREEN.
NAST_CHECK = 1.
CLEAR RETCODE.
XSCREEN = US_SCREEN.
P_PINO = NAST-OBJKY(10).
* P_DOCYR = NAST-OBJKY+10(4).
PERFORM PROCESS_OUTPUT CHANGING RETCODE.
RETURN_CODE = RETCODE.
NAST_CHECK = 0.
ENDFORM. "ENTRY
*& Form PROCESS_OUTPUT
* text
* -->P_RETCODE text
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
FORM PROCESS_OUTPUT CHANGING P_RETCODE.
PERFORM CLEAR_DATA.
PERFORM GET_DATA.
PERFORM GET_PLANTADDRESS.
PERFORM GET_BATCH_CHARACTERISTIC .
PERFORM CALC_TAX.
PERFORM PRINT.
PERFORM FORM_PRINT.
ENDFORM. " PROCESS_OUTPUT
*& Form GET_DATA
* text
* --> p1 text
* <-- p2 text
FORM GET_DATA .
IF NAST_CHECK EQ 1.
SELECT SINGLE * FROM VBRK
INTO IVBRK
WHERE VBELN = P_PINO .
ELSE.
SELECT SINGLE * FROM VBRK
INTO IVBRK
WHERE VBELN = P_PINO
AND BUKRS = P_BUKRS.
ENDIF.
IF SY-SUBRC EQ 0.
SELECT SINGLE *
INTO I_J_1IMOCUST
FROM J_1IMOCUST
WHERE KUNNR = IVBRK-KUNRG.
SELECT SINGLE * FROM TVFK
WHERE FKART = IVBRK-FKART.
APPEND IVBRK.
ENDIF.
SELECT * FROM VBRP
INTO TABLE IVBRP
WHERE VBELN = P_PINO
AND FKIMG <> 0.
LOOP AT IVBRP.
READ TABLE IVBRK WITH KEY VBELN = IVBRP-VBELN.
IVBRP-KNUMV = IVBRK-KNUMV.
MODIFY IVBRP TRANSPORTING KNUMV.
ENDLOOP.
IF IVBRP[] IS NOT INITIAL.
READ TABLE IVBRP INDEX 1.
SELECT ADRNR PARVW KUNNR LIFNR
FROM VBPA
INTO TABLE I_DATA
WHERE VBELN = IVBRP-VGBEL
AND LAND1 = 'IN'
GROUP BY ADRNR PARVW KUNNR LIFNR.
SELECT SINGLE BSTNK BUKRS_VF
FROM VBAK
INTO (IBSTNK,IBUKRS)
WHERE VBELN = IVBRP-AUBEL.
ENDIF.
CHECK IVBRP[] IS NOT INITIAL.
SELECT KNUMV KPOSN KBETR STUNR ZAEHK KSCHL KWERT KAPPL KNTYP
FROM KONV
INTO CORRESPONDING FIELDS OF TABLE IKONV
FOR ALL ENTRIES IN IVBRP
WHERE KNUMV = IVBRP-KNUMV
AND KPOSN = IVBRP-POSNR.
CHECK IKONV[] IS NOT INITIAL.
LOOP AT IKONV WHERE KAPPL = 'TX'.
SELECT SINGLE VTEXT FROM T685T INTO VTEXT1
WHERE KAPPL = IKONV-KAPPL
AND KSCHL = IKONV-KSCHL.
ENDLOOP.
IF NAST_CHECK EQ 1.
P_PLANT = IVBRP-WERKS.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
P_BUKRS = IVBRK-BUKRS. " IBUKRS.
ENDIF.
PERFORM PLANT.
ENDFORM. " GET_DATA
*& Form PLANT
* text
* --> p1 text
* <-- p2 text
FORM PLANT .
SELECT SINGLE J_1ICSTNO J_1ILSTNO J_1IPANNO J_1IEXCD
FROM J_1IMOCOMP
INTO (I_J_1IMOCOMP-J_1ICSTNO , I_J_1IMOCOMP-J_1ILSTNO ,
I_J_1IMOCOMP-J_1IPANNO , I_J_1IMOCOMP-J_1IEXCD)
WHERE BUKRS = P_BUKRS
AND WERKS = P_PLANT.
APPEND I_J_1IMOCOMP.
* ENDSELECT.
ENDFORM. " PLANT
*& Form GET_PLANTADDRESS
* text
* --> p1 text
* <-- p2 text
FORM GET_PLANTADDRESS .
* --Plant wise address details(w)
* SELECT * FROM T001W INTO TABLE I_T001W WHERE WERKS = P_PLANT.
* --Company Code wise address details(b)
PERFORM ZGET_ADDRESS USING 'W' P_PLANT.
MOVE IADRC TO IADRC1.
IADRC1-PARVW = 'W'.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
APPEND IADRC1.
* READ TABLE I_DATA INDEX 1.
LOOP AT I_DATA.
PERFORM ZGET_ADDRESS USING 'V' I_DATA-LIFNR.
MOVE IADRC TO IADRC1.
IADRC1-PARVW = 'V'.
APPEND IADRC1.
* --Customer Wise address details (c)
PERFORM ZGET_ADDRESS USING 'C' I_DATA-KUNNR .
MOVE IADRC TO IADRC1.
IADRC1-PARVW = 'C'.
APPEND IADRC1.
ENDLOOP.
SORT IADRC1 BY PARVW.
DELETE ADJACENT DUPLICATES FROM IADRC1.
ENDFORM. " GET_PLANTADDRESS
*& Form ZGET_ADDRESS
* text
* -->VALUE(OBJKEY) text
* -->VPLANT text
FORM ZGET_ADDRESS USING VALUE(OBJKEY)
VPLANT.
DATA : TEMP(10) TYPE C.
TEMP = VPLANT.
IADRC-ADRNR = I_DATA-ADRNR.
IADRC-PARVW = I_DATA-PARVW.
CALL FUNCTION 'ZGET_ADDRESS'
EXPORTING
I_OBJKEY = OBJKEY
I_VALUE = TEMP
CHANGING
ZADRC = IADRC.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
ENDFORM. " ZGET_ADDRESS
*& Form FORM_PRINT
* text
FORM FORM_PRINT .
DATA: FORMNAME TYPE TDSFNAME VALUE SY-REPID,
FM_NAME TYPE RS38L_FNAM.
* DATA : CON_PAR TYPE SSFCTRLOP.
* DATA : OUTPUT_OPTIONS TYPE SSFCOMPOP.
* OUTPUT_OPTIONS-TDNOPREV = 'X'.
* OUTPUT_OPTIONS-TDPRINTER = 'HPLJ6P'.
* OUTPUT_OPTIONS-TDDEST = 'HPLJ'.
* OUTPUT_OPTIONS-TDIMMED = 'X'.
* OUTPUT_OPTIONS-TDNOPRINT = 'X'.
DATA: OUTPUT_INFO TYPE SSFCRESCL.
SF_CONTROL-NO_DIALOG = ''.
SF_CONTROL-DEVICE = 'PRINTER'.
SF_OUTPUT_OPTION-TDIMMED = 'X'.
IF SF_OUTPUT_OPTION-TDDEST IS INITIAL.
SF_OUTPUT_OPTION-TDDEST = NAST-LDEST.
ENDIF.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = FORMNAME "'ZCMS094V'
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
RETCODE = SY-SUBRC.
MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*call function '/1BCDWB/SF00000126'.
CALL FUNCTION FM_NAME
EXPORTING
I_J_1IMOCUST = I_J_1IMOCUST
IBSTNK = IBSTNK
P_PLANT = P_PLANT
CONTROL_PARAMETERS = SF_CONTROL
OUTPUT_OPTIONS = SF_OUTPUT_OPTION
USER_SETTINGS = ''
VTEXT = VTEXT1
TVFK = TVFK
IMPORTING
JOB_OUTPUT_INFO = OUTPUT_INFO
TABLES
IADRC1 = IADRC1
IVBRP = IVBRP
IVBRK = IVBRK
I_J_1IMOCOMP = I_J_1IMOCOMP
I_J_1IMOCUST = I_J_1IMOCUST
IKONV = IKONV
I_VBRP = I_VBRP
I_IKOMVD = I_IKOMVD
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
PERFORM NAST_UPDATE.
ENDIF.
ENDFORM. " FORM_PRINT
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*& Form NAST_UPDATE
* text
* --> p1 text
* <-- p2 text
FORM NAST_UPDATE .
CHECK NAST-NACHA IS NOT INITIAL.
CALL FUNCTION 'NAST_PROTOCOL_UPDATE'
EXPORTING
MSG_ARBGB = SYST-MSGID
MSG_NR = SYST-MSGNO
MSG_TY = SYST-MSGTY
MSG_V1 = SYST-MSGV1
MSG_V2 = SYST-MSGV2
MSG_V3 = SYST-MSGV3
MSG_V4 = SYST-MSGV4
EXCEPTIONS
MESSAGE_TYPE_NOT_VALID = 1
NO_SY_MESSAGE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " NAST_UPDATE
*& Form PRINT
* text
* --> p1 text
* <-- p2 text
FORM PRINT .
SF_CONTROL-DEVICE = 'PRINTER'.
IF ( NAST-NACHA = '7' OR NAST-NACHA = '1' ) AND NAST-LDEST IS INITIAL.
NAST-LDEST = 'HPLJ'.
SF_OUTPUT_OPTION-TDDEST = NAST-LDEST.
ENDIF.
* ITCPO-TDDEST = 'HPLJ'.
CALL FUNCTION 'CONVERT_COMM_TYPE_DATA'
EXPORTING
PI_COMM_TYPE = 'XXX'
PI_REPID = SY-REPID
PI_SNAST = SNAST
IMPORTING
PE_ITCPO = ITCPO
* PE_DEVICE = SF_CONTROL-DEVICE
EXCEPTIONS
COMM_TYPE_NOT_SUPPORTED = 1
RECIPIENT_CREATION_FAILED = 2
SENDER_CREATION_FAILED = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
RETCODE = SY-SUBRC.
MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
PERFORM NAST_UPDATE.
ENDIF.
CALL FUNCTION 'EFG_GET_SMARTFORM_PARAMS'
EXPORTING
X_ITCPO = ITCPO
X_DEVICE = SF_CONTROL-DEVICE
X_LANGU = SY-LANGU
* X_XSF =
* X_STARTPAGE =
X_GET_XSF = 'X'
* X_SPONUMIV =
IMPORTING
Y_CONTROL_PARAMETERS = SF_CONTROL
Y_OUTPUT_OPTIONS = SF_OUTPUT_OPTION.
SF_OUTPUT_OPTION-TDNEWID = 'X'.
SF_OUTPUT_OPTION-TDLIFETIME = 1.
SF_OUTPUT_OPTION-TDTITLE = SF_OUTPUT_OPTION-TDCOVTITLE.
IF SF_OUTPUT_OPTION-TDTITLE IS INITIAL.
SF_OUTPUT_OPTION-TDTITLE = TEXT-003.
ENDIF.
* IF SF_CONTROL-DEVICE = 'PRINTER' AND SF_OUTPUT_OPTION-TDDEST IS INITIAL.
* SF_CONTROL-NO_DIALOG = SPACE.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* ENDIF.
ENDFORM. " PRINT
*& Form CLEAR_DATA
* text
* --> p1 text
* <-- p2 text
FORM CLEAR_DATA .
REFRESH : IADRC , IVBRP , IKONV.
CLEAR : IVBRK, IBSTNK, I_DATA, IADRC , I_J_1IMOCOMP.
ENDFORM. " CLEAR_DATA
*& Form GET_BATCH_CHARACTERISTIC
* text
FORM GET_BATCH_CHARACTERISTIC .
DATA: I_SEL_CHAR LIKE CABN OCCURS 0 WITH HEADER LINE.
DATA: ICLBATCH LIKE CLBATCH OCCURS 0 WITH HEADER LINE.
DATA ATZHL LIKE CAWN-ATZHL.
* ADDED BY GANESH TAMBE 23/08/2008 WVDK921227
I_SEL_CHAR-ATNAM = 'STD_SHADE_NO'.
APPEND I_SEL_CHAR.
I_SEL_CHAR-ATNAM = 'STD_SHADE_NO_2'.
APPEND I_SEL_CHAR.CLEAR I_SEL_CHAR.
* END WVDK921227
MOVE IVBRP[] TO I_VBRP[].
LOOP AT I_VBRP.
REFRESH ICLBATCH[].
CLEAR ICLBATCH.
* COMMENTED BY GANESH TAMBE 23/08/2008 WVDK921227
* I_SEL_CHAR-ATINN = 'STD_SHADE_NO'.
* I_SEL_CHAR-ATNAM = 'STD_SHADE_NO'.
* END WVDK921227
CALL FUNCTION 'GET_BATCH_CHAR_VALUES'
EXPORTING
P_OBTAB = 'MCH1'
* P_OBJEK =
P_KLART = '023'
P_MATNR = I_VBRP-MATNR
P_CHARG = I_VBRP-CHARG
TABLES
I_SEL_CHAR = I_SEL_CHAR
ICLBATCH = ICLBATCH
EXCEPTIONS
ENTER_MATNR_CHARG = 1
INVALID_SEL_CHARACTERISTICS = 2
CLASS_OBJECT_NOT_FOUND = 3
CLASS_OBJECT_VALUE_NOT_FOUND = 4
OBJECT_REQUIRED = 5
OTHERS = 6.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE ICLBATCH INDEX 1.
IF SY-SUBRC = 0.
SELECT SINGLE ATZHL INTO ATZHL FROM CAWN
WHERE ATINN = ICLBATCH-ATINN
AND ATWRT = ICLBATCH-ATWTB.
SELECT SINGLE ATWTB INTO I_VBRP-ARKTX FROM CAWNT
WHERE ATINN = ICLBATCH-ATINN
AND ATZHL = ATZHL
AND SPRAS = SY-LANGU.
IF SY-SUBRC EQ 0.
MODIFY I_VBRP.
ELSEIF SY-SUBRC NE 0.
CLEAR I_VBRP-ARKTX.
MODIFY I_VBRP.
ENDIF.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
ELSEIF SY-SUBRC NE 0.
CLEAR I_VBRP-ARKTX.
MODIFY I_VBRP.
ENDIF.
ENDLOOP.
ENDFORM. " GET_BATCH_CHARACTERISTIC
*& Form SPELL_WORDS
* text
* -->AMT text
* -->WORDS text
FORM SPELL_WORDS USING AMT CHANGING WORDS.
CALL FUNCTION 'ZSPELL_AMOUNT'
EXPORTING
AMOUNT = AMT
CURRENCY = 'INR'
* FILLER = ' '
LANGUAGE = SY-LANGU
CURR_TEXT = 'X'
IMPORTING
* E_SPELL =
IN_WORDS = WORDS
EXCEPTIONS
NOT_FOUND = 1
TOO_LARGE = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "SPELL_WORDS
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*& Form CALC_TAX
* text
* --> p1 text
* <-- p2 text
FORM CALC_TAX .
CALL FUNCTION 'ZGET_PRICING_CONDITION'
EXPORTING
* I_VBELN =
* I_TABLE =
* I_FIELD =
I_KNUMV = IVBRK-KNUMV
TABLES
IKOMVD = I_IKOMVD
EXCEPTIONS
INVALID_INPUT = 1
DOCUMENT_NOT_FOUND = 2
OTHERS = 3
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'I' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " CALC_TAX
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
INITIAL.
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------**& Report Z_SDP_COM_INV_PRT*&*&---------------------------------------------------------------------**&*&*&---------------------------------------------------------------------*
REPORT Z_SDP_COM_INV_PRT.
Tables : vbrk , vbrp.selection-screen begin of block b1 with FRAME.
select-options so_vbeln for vbrk-vbeln.select-options so_fkdat for vbrk-fkdat.select-options so_kunag for vbrk-kunag.select-options so_werks for vbrp-werks OBLIGATORY.
selection-screen end of block b1.
types : begin of gty_vbrp, vbeln type vbeln_vf, werks type werks_d, end of gty_vbrp.
types:begin of gty_vbrk, vbeln type VBRK-vbelN, fkdat type fkdat, kunag type kunag,* werks type werks_d, end of gty_vbrk. types : begin of gty_final, vbeln type vbeln_vf, werks type werks_d, fkdat type fkdat, kunag type kunag, end of gty_final.
data : gt_vbrp type STANDARD TABLE OF gty_vbrp, gs_vbrp type gty_vbrp.data : gt_vbrk type TABLE OF gty_vbrk, gs_vbrk type gty_vbrk.data : gt_final type STANDARD TABLE OF gty_final, gs_final type gty_final.
select vbeln werks from vbrp into table gt_vbrp where werks in so_werks and vbeln eq so_vbeln.
if gt_vbrp is not initial.
select vbeln fkdat kunag from vbrk into table gt_vbrk for all entries in gt_vbrp where vbeln eq gt_vbrp-vbeln and fkdat in so_fkdat.
endif.
loop at gt_vbrp into gs_vbrp. gs_final-vbeln = gs_vbrp-vbeln. gs_final-werks = gs_vbrp-werks. Read table gt_vbrk into gs_vbrk with KEY vbeln = gs_vbrP-vbeln . IF SY-SUBRC = 0. gs_final-fkdat = gs_vbrk-fkdat. gs_final-kunag = gs_vbrk-kunag. ENDIF. endloop.
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
*& Report ZSD_INVOICE
REPORT ZSD_INVOICE.
Tables : vbrk , vbrp.
selection-screen begin of block b1 with FRAME.
select-options so_vbeln for vbrk-vbeln.
select-options so_fkdat for vbrk-fkdat.
select-options so_kunag for vbrk-kunag.
select-options so_werks for vbrp-werks OBLIGATORY.
selection-screen end of block b1.
types : begin of gty_vbrp,
vbeln type vbeln_vf,
werks type werks_d,
end of gty_vbrp.
types:begin of gty_vbrk,
vbeln type VBRK-vbelN,
fkdat type fkdat,
kunag type kunag,
* werks type werks_d,
end of gty_vbrk.
types : begin of gty_final,
check(1) type c,
vbeln type vbeln_vf,
werks type werks_d,
fkdat type fkdat,
kunag type kunag,
end of gty_final.
data : gt_vbrp type STANDARD TABLE OF gty_vbrp,
gs_vbrp type gty_vbrp.
data : gt_vbrk type TABLE OF gty_vbrk,
gs_vbrk type gty_vbrk.
data : gt_final type STANDARD TABLE OF gty_final,
gs_final type gty_final.
data : gt_sel type STANDARD TABLE OF gty_final,
gs_sel type gty_final.
AT SELECTION-SCREEN.
TOP-OF-PAGE.
WRITE 'INVOICE LIST'.
START-OF-SELECTION.
SET PF-STATUS 'ZSTAT'.
select vbeln werks from vbrp
into table gt_vbrp
where werks in so_werks
and vbeln in so_vbeln.
if gt_vbrp is not initial.
select vbeln fkdat kunag from
vbrk into table gt_vbrk
for all entries in gt_vbrp
where vbeln eq gt_vbrp-vbeln
and fkdat in so_fkdat and kunag in so_kunag.
endif.
loop at gt_vbrp into gs_vbrp.
gs_final-vbeln = gs_vbrp-vbeln.
gs_final-werks = gs_vbrp-werks.
Read table gt_vbrk into gs_vbrk with KEY vbeln = gs_vbrP-vbeln .
IF SY-SUBRC = 0.
gs_final-fkdat = gs_vbrk-fkdat.
gs_final-kunag = gs_vbrk-kunag.
ENDIF.
append gs_final to gt_final.
clear gs_final.
endloop.
delete ADJACENT DUPLICATES FROM gt_final.
sort gt_final by vbeln.
loop at gt_final into gs_final.
write :/ gs_final-check as checkbox,
gs_final-vbeln ,
gs_final-werks,
gs_final-fkdat,
gs_final-kunag.
endloop.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'EXIT'.
LEAVE TO TRANSACTION SY-TCODE.
WHEN 'PNT'.
LEAVE TO LIST-PROCESSING.
loop at gt_final into gs_final.
if gs_final-check = 'X'.
APPEND gs_final TO gt_sel.
endif.
endloop.
loop at gt_sel into gs_sel.
write :/ gs_sel-check as checkbox,
gs_sel-vbeln ,
gs_sel-werks,
gs_sel-fkdat,
gs_sel-kunag.
endloop.
MESSAGE 'TEST FOR PNT' TYPE 'I'.
WHEN 'SAVE'.
loop at gt_final into gs_final.
if gs_final-check = 'X'.
APPEND gs_final TO gt_sel.