Go on link..

link us with ...

Friday, December 31, 2010

CASH_REGISTER

*&---------------------------------------------------------------------*
*& Report ZVVF_FIRO_CASH_REGISTER *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

*Programmer : chetan v. sakunde.

REPORT ZVVF_FIRO_CASH_REGISTER NO STANDARD PAGE
HEADING MESSAGE-ID ZJ LINE-SIZE 132.
* line-count 72(2).
*----------------------------------------------------------------------*
TABLES : LFA1 , "Customer Master
SKAT , "Chart of Account
SKB1 , "GL A/C Master Company Codes
KNA1 , "Vendor Master
BSAS , "GL A/C Cleared Items
BSEG , "Accounting Documents
BSIS , "GL A/C Posted Items
GLT0 , "GL A/C Master Transaction Fig
PAYR , "Payment Medium
BKPF , "Accounting Doc Header
TGSBT, "Business Area
T001 , "Company Codes
BSIK , "Vendor A/C Posted Items
BSID , "Customer A/C Cleared Items
M_PREMK. "View for Matchcode ID Prem
DATA flag value 'X'.
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK MBLK1 WITH FRAME.
PARAMETERS : MBUKRS LIKE BSAS-BUKRS OBLIGATORY.
PARAMETERS : MHKONT LIKE ACGL_ITEM-HKONT OBLIGATORY. "BSAS-HKONT
SELECT-OPTIONS MBLDAT FOR BSAS-BLDAT DEFAULT SY-DATUM TO SY-DATUM
OBLIGATORY NO-EXTENSION.
SELECT-OPTIONS MBUDAT FOR BSAS-BUDAT DEFAULT SY-DATUM TO SY-DATUM
NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK MBLK1 .
SELECTION-SCREEN BEGIN OF BLOCK MBLK2 WITH FRAME.
PARAMETERS : DETAILS RADIOBUTTON GROUP GRP1 DEFAULT 'X',
SUMMARY RADIOBUTTON GROUP GRP1.
SELECTION-SCREEN END OF BLOCK MBLK2 .
*----------------------------------------------------------------------*
DATA : BEGIN OF BAREA_TAB OCCURS 0,
GSBER LIKE BSEG-GSBER,
END OF BAREA_TAB.

DATA : BEGIN OF IT_VCH OCCURS 0 ,
BUKRS LIKE BKPF-BUKRS,
BELNR LIKE BKPF-BELNR,
GJAHR LIKE BKPF-GJAHR.
DATA : END OF IT_VCH.
DATA : BEGIN OF ITAB_DATA OCCURS 0 ,
BLDAT LIKE BSIS-BLDAT, "Doc Date
BUDAT LIKE BSIS-BUDAT, "Doc Posting Date
BELNR LIKE BSIS-BELNR, "Doc No
BUZEI LIKE BSIS-BUZEI, "Line Item No
HKONT LIKE BSIS-HKONT, "GL A/C No
GTEXT LIKE TGSBT-GTEXT, "Header Text
YYMM(6) TYPE C,
BLART LIKE BSIS-BLART, "Document Type
SHKZG LIKE BSIS-SHKZG, "Db/Cr Indicator
GSBER LIKE BSIS-GSBER, "Business Area
BKTXT LIKE BKPF-BKTXT, "Document Header Text
DMBTR LIKE BSIS-DMBTR, "Amount in Local Currency
LIFNR LIKE BSEG-LIFNR, "A/C No of Vendor
KUNNR LIKE BSEG-KUNNR, "Customer No
NAME1 LIKE LFA1-NAME1, "Vendor Name
AUFNR LIKE BSIS-AUFNR, "Order No
KOSTL LIKE BSIS-KOSTL, "Cost Center
SGTXT LIKE BSIS-SGTXT, "Item Text
BUKRS LIKE BSIS-BUKRS, "Company Code
GJAHR LIKE BSIS-GJAHR, "Fiscal Year
STBLG LIKE BKPF-STBLG, "Reverse Doc No
STJAH LIKE BKPF-STJAH, "Reverse Doc Fiscal Year
REVDT(10) TYPE C,
USNAM LIKE BKPF-USNAM, "User Name
CHQNO(10) TYPE C,
CHQDT(10) TYPE C,
SAKNR LIKE BSEG-SAKNR, "Group A/C No
PERNR LIKE BSEG-PERNR, "Personnel Number
NCHMC LIKE M_PREMK-NCHMC, "Last Name
VNAMC LIKE M_PREMK-VNAMC. "First Name

DATA : END OF ITAB_DATA.

DATA : BEGIN OF ITAB_RECOAC OCCURS 0,
HKONT LIKE BSEG-HKONT,
END OF ITAB_RECOAC.
*----------------------------------------------------------------------*
DATA : PHEAD(20) TYPE C,MAMOUNT LIKE BSEG-DMBTR.
DATA : MMONAT(2),MGJAHR(4) ,TDT(10), PPERNR(8).
DATA : MOPBAL LIKE BSEG-DMBTR, LNCTR TYPE I.
DATA : TRAN_DR LIKE BSEG-DMBTR, TRAN_CR LIKE BSEG-DMBTR.
DATA : PHKONT LIKE BSEG-HKONT,PBUSAB LIKE SKB1-BUSAB.
TDT = MBLDAT-LOW.
* start of insertion changed by niraj on 07-04-2005
DATA : MM TYPE I,
YY TYPE I,
CTR TYPE I,
C1(10) ,DDT LIKE BKPF-BLDAT.

DATA : CDT1(10) TYPE C.
DATA : CDT2(6) TYPE C.
DATA : FDT LIKE BKPF-BLDAT.
CDT2 = MBLDAT-LOW.
CONCATENATE CDT2 '01' INTO CDT1.
FDT = CDT1.

DDT = FDT - 1.
C1 = DDT.
MM = C1+4(2).

IF MM BETWEEN 4 AND 12.
MGJAHR = TDT+0(4) + 1.
ELSE.
MGJAHR = TDT+0(4).
ENDIF.


* end of insertion changed by niraj on 07-04-2005

* Start of Deletion by niraj on 07-04-2005
*MGJAHR = TDT+0(4).
* end of Deletion by niraj on 07-04-2005

MMONAT = TDT+4(2).

* Following form is to extract GL A/C wise posted Data with it's Header
* and details.

PERFORM GET_TOTAL_DATA.

TOP-OF-PAGE.

* Form to get day wise Opening Balance of GL Account and print
* Page Head.

PERFORM PAGE_HEAD.

END-OF-PAGE.

* Form to get day wise Total Amount of GL Account and Closing Balance
* and print Page footer.

PERFORM PAGE_FOOTER.

START-OF-SELECTION.

* Form to get day wise transaction data of GL Account and print Page
* detail.

PERFORM PRINT_DATA.


*---------------------------------------------------------------------*
* FORM GET_TOTAL_DATA
*
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM GET_TOTAL_DATA.

* Select GL Accounts Data of Cleared Items for Given Company Code,
* given account code and Within given Posting Date and Document Date
*

SELECT * FROM BSAS
WHERE BUKRS = MBUKRS
AND BUDAT IN MBUDAT
AND BLDAT IN MBLDAT
AND HKONT = MHKONT
AND BSTAT EQ SPACE.

* Move Extracted Cleared Item data into temporary internal table

CLEAR IT_VCH.
MOVE-CORRESPONDING BSAS TO IT_VCH.
APPEND IT_VCH.

MOVE BSAS-GSBER TO BAREA_TAB.
APPEND BAREA_TAB.
ENDSELECT.

* Select GL Accounts Data of Posted Items for Given Company Code,
* given account code and Within given Posting Date and Document Date
*

SELECT * FROM BSIS
WHERE BUKRS = MBUKRS
AND BUDAT IN MBUDAT
AND BLDAT IN MBLDAT
AND HKONT = MHKONT
AND BSTAT EQ SPACE.
CLEAR ITAB_DATA.
CLEAR IT_VCH.

* Move Extracted Cleared Item data into temporary internal table
* called IT_VCH.

MOVE-CORRESPONDING BSIS TO IT_VCH.
APPEND IT_VCH.

MOVE BSIS-GSBER TO BAREA_TAB.
APPEND BAREA_TAB.
ENDSELECT.

* Delete Duplicate records from IT_VCH.

SORT IT_VCH BY BUKRS BELNR GJAHR.
DELETE ADJACENT DUPLICATES FROM IT_VCH.

* Loop IT_VCH table to get corrousponding data from transaction.
*

LOOP AT IT_VCH.

* Select Header data of each transactional document.

SELECT * FROM BKPF WHERE BUKRS = IT_VCH-BUKRS AND
BELNR = IT_VCH-BELNR AND
GJAHR = IT_VCH-GJAHR AND
BSTAT EQ SPACE.

* Select detail data of each transactional document.

SELECT * FROM BSEG WHERE BUKRS = BKPF-BUKRS AND
BELNR = BKPF-BELNR AND
GJAHR = BKPF-GJAHR AND
HKONT NE MHKONT.

CLEAR ITAB_DATA.

* Move extracted data into a temporary internal table called ITAB_DATA

MOVE-CORRESPONDING BKPF TO ITAB_DATA.
MOVE-CORRESPONDING BSEG TO ITAB_DATA.
PERFORM GET_CHEQUE_NO.

* IF BKPF-BUKRS = '2050'.
* PERFORM GET_SAKNR.
* ENDIF.
APPEND ITAB_DATA.
ENDSELECT.
ENDSELECT.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PAGE_HEAD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
* Print Page Head.

FORM PAGE_HEAD.
PHEAD = 'CASH BOOK'.
DATA : CNOD1(4) TYPE C, CNOD2(4) TYPE C.
DATA : CNODHD(12) TYPE C.
DATA : TTXT20 LIKE SKAT-TXT20, THKONT LIKE BSEG-HKONT.
DATA : PTR TYPE I.
PTR = 0.
SELECT * FROM T001 WHERE BUKRS = MBUKRS.
WRITE :01 T001-BUKRS COLOR 5 INVERSE, 6 T001-BUTXT COLOR 4 INVERSE.
IF PTR = 0.
WRITE : 55 PHEAD,
105 'Run Date :',SY-DATUM.
ENDIF.
ADD 1 TO PTR.
ENDSELECT.

WRITE: /01 'User' COLOR 4 INVERSE,
06 SY-UNAME COLOR 4 INVERSE,
35 'From Dt :', MBLDAT-LOW COLOR 4 INVERSE ,
56 'To Dt :', MBLDAT-HIGH COLOR 4 INVERSE,
105 'Page No :',(11) SY-PAGNO COLOR 4 INVERSE.

WRITE: /45 'CASH ACCOUNT CODE',
65(6) MHKONT COLOR 4 INVERSE.

WRITE : / SY-ULINE(132).
IF DETAILS = 'X'.
WRITE : /1 'Posting Dt' COLOR COL_HEADING,
12 'Doc Date' COLOR COL_HEADING,
24 'Party Name' COLOR COL_HEADING,
46 'Bus' COLOR COL_HEADING,
52 'Cost' COLOR COL_HEADING,
64 'AC No' COLOR COL_HEADING,
76 'Account Descr' COLOR COL_HEADING,

98(16) ' Payment' COLOR COL_HEADING,
116(16) ' Receipt' COLOR COL_HEADING.

WRITE : /1 'Doc No' COLOR COL_HEADING,
46 'Area ' COLOR COL_HEADING,
52 'Centre ' COLOR COL_HEADING,
64 'Per No ' COLOR COL_HEADING,
76 'Employee Name' COLOR COL_HEADING,

98(16) ' Amount(CR)' COLOR COL_HEADING,
116(16) ' Amount(DR)' COLOR COL_HEADING.

ENDIF.
IF SUMMARY = 'X'.
WRITE : /01 'Date' COLOR COL_HEADING,
12(13) 'Opening Dr' COLOR COL_HEADING RIGHT-JUSTIFIED,
26(13) 'Opening Cr' COLOR COL_HEADING RIGHT-JUSTIFIED,
40(13) 'Tran. Dr' COLOR COL_HEADING RIGHT-JUSTIFIED,
54(13) 'Tran. Cr' COLOR COL_HEADING RIGHT-JUSTIFIED,
68(13) 'Closing Dr' COLOR COL_HEADING RIGHT-JUSTIFIED,
82(13) 'Closing Cr' COLOR COL_HEADING RIGHT-JUSTIFIED.

ENDIF.
WRITE : / SY-ULINE(132).
ENDFORM. " PAGE_HEAD
*&---------------------------------------------------------------------*
*& Form PRINT_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
* Print detail extracted data from ITAB_DATA.

FORM PRINT_DATA.
DATA : DRAMT LIKE BSEG-DMBTR, CRAMT LIKE BSEG-DMBTR.
DATA : TOTDR LIKE BSEG-DMBTR, TOTCR LIKE BSEG-DMBTR.
DATA : DAYDR LIKE BSEG-DMBTR , DAYCR LIKE BSEG-DMBTR.
DATA : PARTY LIKE BSEG-LIFNR , PTYNM LIKE LFA1-NAME1.
DATA : DRCR LIKE BSEG-DMBTR.
DATA : TBLDAT LIKE BKPF-BLDAT.
DATA : TXT1(25), TXT2(25).
DATA : DRCRAMT LIKE BSEG-DMBTR.
DATA : MAIN_CLBAL LIKE BSEG-DMBTR.
DATA : MTD_DR LIKE BSEG-DMBTR,
MTD_CR LIKE BSEG-DMBTR,
DRCRCD(2) ,
TOT_DR LIKE BSEG-DMBTR,
TOT_CR LIKE BSEG-DMBTR.

SORT ITAB_DATA BY BLDAT BUDAT BELNR BUZEI.

* Get Opening Balance
PERFORM GET_GLT0_BAL.
MAIN_CLBAL = MOPBAL.

IF MOPBAL > 0.
TOTCR = ABS( MOPBAL ).
ELSE.
TOTDR = ABS( MOPBAL ).
ENDIF.

LOOP AT ITAB_DATA .

* Get Account Name for each Account Head of transaction
PERFORM GET_AC_NAME.

* Get Party Name for each transaction
PERFORM GET_PARTY_NAME.

* Get Employee Name for each transaction
PERFORM GET_PER_NAME.

ENDLOOP .

CLEAR ITAB_DATA .
SORT ITAB_DATA BY BUDAT BLDAT BELNR BUZEI.

LOOP AT ITAB_DATA.
CLEAR : DRAMT, CRAMT.
* TBLDAT = ITAB_DATA-BLDAT.
TBLDAT = ITAB_DATA-BUDAT.


* Calculate Day Wise Opening Balance Amount.

AT NEW BLDAT .
CLEAR : DAYDR,DAYCR.
DRCR = TOTCR - TOTDR.
* IF DRCR > 0.
* DAYDR = 0.
* TOTDR = DRCR.
* TOTCR = 0.
* ELSE.
* DAYCR = 0.
* TOTCR = ABS( DRCR ).
* TOTDR = 0.
* ENDIF.
IF DRCR > 0.
DAYCR = 0.
TOTCR = ABS( DRCR ).
TOTDR = 0.
ELSE.
DAYDR = 0.
TOTDR = ABS( DRCR ).
TOTCR = 0.
ENDIF.

* Print Day Wise Opening Balance

IF DETAILS = 'X'.
WRITE : /01(10) TBLDAT, "COLOR COL_POSITIVE
66 'Op Bal : ', "COLOR COL_POSITIVE
98(16) TOTDR DECIMALS 2 NO-ZERO, "COLOR COL_POSITIVE
116(16) TOTCR DECIMALS 2 NO-ZERO. "COLOR COL_POSITIVE
WRITE : /.
ENDIF.

IF SUMMARY = 'X'.
WRITE : /01(10) TBLDAT COLOR COL_POSITIVE,
* 12(13) TOTDR DECIMALS 2 NO-ZERO COLOR COL_POSITIVE,
* 26(13) TOTCR DECIMALS 2 NO-ZERO COLOR COL_POSITIVE.
12(13) TOTCR DECIMALS 2 NO-ZERO COLOR COL_POSITIVE,
26(13) TOTDR DECIMALS 2 NO-ZERO COLOR COL_POSITIVE.
ENDIF.
ENDAT.

* Summ Day Wise Debit Credit Amount based Db/Cr on indicator.

IF ITAB_DATA-SHKZG = 'S'.
DAYDR = DAYDR + ITAB_DATA-DMBTR.
TOTDR = TOTDR + ITAB_DATA-DMBTR.
DRAMT = ITAB_DATA-DMBTR.
ELSE.
DAYCR = DAYCR + ITAB_DATA-DMBTR.
TOTCR = TOTCR + ITAB_DATA-DMBTR.
CRAMT = ITAB_DATA-DMBTR.
ENDIF.

* Start of Item Data Detail Printing

IF DETAILS = 'X'.
WRITE : /1 ITAB_DATA-BELNR,
12 ITAB_DATA-BLDAT,
24 ITAB_DATA-NAME1,
46(10) ITAB_DATA-GSBER,
52 ITAB_DATA-KOSTL,
64(10) ITAB_DATA-HKONT RIGHT-JUSTIFIED,
76(20) ITAB_DATA-GTEXT,

98(16) DRAMT DECIMALS 2 NO-ZERO,
116(16) CRAMT DECIMALS 2 NO-ZERO.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ITAB_DATA-PERNR
IMPORTING
OUTPUT = PPERNR.

WRITE : /64(8) PPERNR NO-ZERO,
76(10) ITAB_DATA-VNAMC,
85(10) ITAB_DATA-NCHMC.

WRITE : /.
ENDIF.

* End of Line item data

AT END OF BLDAT.
IF DETAILS = 'X'.
WRITE : / SY-ULINE(132).
WRITE : /30 'Day Total : ', "COLOR COL_TOTAL
98(16) DAYDR DECIMALS 2 NO-ZERO, "COLOR COL_TOTAL
116(16) DAYCR DECIMALS 2 NO-ZERO. "COLOR COL_TOTAL
DRCR = TOTCR - TOTDR.
WRITE : /30 'Day Closing Balance'. "COLOR COL_TOTAL

IF DRCR > 0.
DRCR = ABS( DRCR ).
* WRITE : 98(16) DRCR DECIMALS 2. "COLOR COL_TOTAL.
WRITE : 116(16) DRCR DECIMALS 2. "COLOR COL_TOTAL.
ELSE.
DRCR = ABS( DRCR ).
* WRITE : 116(16) DRCR DECIMALS 2. "COLOR COL_TOTAL.
WRITE : 98(16) DRCR DECIMALS 2. "COLOR COL_TOTAL.
ENDIF.
ENDIF.
IF SUMMARY = 'X'.
WRITE : 68(13) DAYDR DECIMALS 2 COLOR COL_POSITIVE NO-ZERO,
82(13) DAYCR DECIMALS 2 COLOR COL_POSITIVE NO-ZERO.
DRCR = TOTCR - TOTDR.
IF DRCR > 0.
* start of insertion by niraj on 07-04-2005
TOTDR = ABS( TOTDR ).
daycr = abs( daycr ).
WRITE : 40(13) DAYCR DECIMALS 2 COLOR COL_TOTAL NO-ZERO.
* end of insertion by niraj on 07-04-2005
WRITE : 68(13) DRCR DECIMALS 2 COLOR COL_TOTAL NO-ZERO.
WRITE : 82(13) 0 DECIMALS 2 COLOR COL_TOTAL NO-ZERO.
WRITE : 54(13) TOTDR DECIMALS 2 COLOR COL_TOTAL NO-ZERO.
ELSE.
DRCR = ABS( DRCR ).
DAYCR = ABS( DAYCR ).
WRITE : 54(13) DAYCR DECIMALS 2 COLOR COL_TOTAL NO-ZERO.
WRITE : 68(13) 0 DECIMALS 2 COLOR COL_TOTAL NO-ZERO.
WRITE : 82(13) DRCR DECIMALS 2 COLOR COL_TOTAL NO-ZERO.

ENDIF.
ENDIF.
WRITE : / SY-ULINE(132).
ENDAT.
ENDLOOP.
ENDFORM. " PRINT_DATA
*&---------------------------------------------------------------------*
*& Form GET_AC_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM GET_AC_NAME.

* Select Account Name for Account Code in Transaction Data from GL
* Account Master

SELECT SINGLE * FROM SKAT WHERE SPRAS = SY-LANGU
AND SAKNR = ITAB_DATA-HKONT.

IF SY-DBCNT > 0.
ITAB_DATA-GTEXT = SKAT-TXT20.
MODIFY ITAB_DATA INDEX SY-TABIX .
ENDIF.


ENDFORM. " GET_AC_NAME

*&---------------------------------------------------------------------*
*& Form GET_PARTY_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM GET_PARTY_NAME.

* select Party Name for Party Code in Transaction Data from Party
* Master.

SELECT SINGLE * FROM KNA1 WHERE SPRAS = SY-LANGU
AND KUNNR = ITAB_DATA-KUNNR.
IF SY-DBCNT > 0.
ITAB_DATA-NAME1 = KNA1-NAME1.
ELSE.
SELECT SINGLE * FROM LFA1 WHERE SPRAS = SY-LANGU
AND LIFNR = ITAB_DATA-LIFNR.
IF SY-DBCNT > 0.
ITAB_DATA-NAME1 = LFA1-NAME1.
ENDIF.
ENDIF.
MODIFY ITAB_DATA INDEX SY-TABIX.

ENDFORM. " GET_PARTY_NAME

*&---------------------------------------------------------------------*
*& Form GET_PER_NAME
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*

FORM GET_PER_NAME.

* Select Employee Name from Employee Master.

SELECT SINGLE * FROM M_PREMK WHERE PERNR = ITAB_DATA-PERNR.
IF SY-DBCNT > 0.
ITAB_DATA-NCHMC = M_PREMK-NCHMC.
ITAB_DATA-VNAMC = M_PREMK-VNAMC.
MODIFY ITAB_DATA INDEX SY-TABIX .
ENDIF.

ENDFORM. " GET_PER_NAME

*---------------------------------------------------------------------*
* FORM GET_GLT0_BAL *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* Get Opening Balance.
FORM GET_GLT0_BAL.
DATA : TGJAHR LIKE BKPF-GJAHR,
TMONAT LIKE BKPF-MONAT,
MM TYPE I,
YY TYPE I,
CTR TYPE I,
C1(10) ,DDT LIKE BKPF-BLDAT.
DATA : GLT0AMT LIKE BSEG-DMBTR.

DATA : CDT1(10) TYPE C.
DATA : CDT2(6) TYPE C.
DATA : FDT LIKE BKPF-BLDAT.
CDT2 = MBLDAT-LOW.
CONCATENATE CDT2 '01' INTO CDT1.
FDT = CDT1.

DDT = FDT - 1.
C1 = DDT.
YY = C1+0(4).
MM = C1+4(2).
* start of deletion changed by niraj on 07-04-2005

* IF MM <= 3.
* YY = YY - 1.
* ENDIF.

* end of deletion changed by niraj on 07-04-2005

* start of insertion changed by niraj on 07-04-2005
IF MM <= 3.
YY = YY.
else.
YY = YY + 1.
ENDIF.


* end of insertion changed by niraj on 07-04-2005

TGJAHR = YY.

IF MM >= 4.
MM = MM - 3.
ELSE.
MM = MM + 9.
ENDIF.


GLT0AMT = 0.

* Select Last year's Opening Balance from Account Master Wise
* Transaction Data.

SELECT * FROM GLT0 WHERE BUKRS = MBUKRS
AND RYEAR = TGJAHR
AND RACCT = MHKONT.
CTR = 1.

* Add Current Year's Transaction amount till last Month.

WHILE CTR <= MM.
CASE CTR.
WHEN 1 .
GLT0AMT = GLT0AMT + GLT0-HSLVT + GLT0-HSL01.
WHEN 2.
GLT0AMT = GLT0AMT + GLT0-HSL02.
WHEN 3.
GLT0AMT = GLT0AMT + GLT0-HSL03.
WHEN 4.
GLT0AMT = GLT0AMT + GLT0-HSL04.
WHEN 5.
GLT0AMT = GLT0AMT + GLT0-HSL05.
WHEN 6.
GLT0AMT = GLT0AMT + GLT0-HSL06.
WHEN 7.
GLT0AMT = GLT0AMT + GLT0-HSL07.
WHEN 8.
GLT0AMT = GLT0AMT + GLT0-HSL08.
WHEN 9.
GLT0AMT = GLT0AMT + GLT0-HSL09.
WHEN 10.
GLT0AMT = GLT0AMT + GLT0-HSL10.
WHEN 11.
GLT0AMT = GLT0AMT + GLT0-HSL11.
WHEN 12.
GLT0AMT = GLT0AMT + GLT0-HSL12 + GLT0-HSL13 + GLT0-HSL14
+ GLT0-HSL15 + GLT0-HSL16.
ENDCASE.
CTR = CTR + 1.
ENDWHILE.

ENDSELECT.

* Select Trnsaction Data of Cleared Items.

SELECT * FROM BSAS
WHERE BUKRS = MBUKRS
AND BLDAT >= FDT
AND BLDAT < MBLDAT-LOW
AND HKONT = MHKONT
AND BSTAT EQ SPACE.

* Add-Substract Db/Cr Amount from Last Opening Balance.

IF BSAS-SHKZG = 'H'.
GLT0AMT = GLT0AMT - BSAS-DMBTR.
ELSE.
GLT0AMT = GLT0AMT + BSAS-DMBTR.
ENDIF.
ENDSELECT.

* Select Trnsaction Data of Posted Items.

SELECT * FROM BSIS
WHERE BUKRS = MBUKRS
AND BLDAT >= FDT
AND BLDAT < MBLDAT-LOW
AND HKONT = MHKONT
AND BSTAT EQ SPACE.

* Add-Substract Db/Cr Amount from Last Opening Balance.

IF BSIS-SHKZG = 'H'.
GLT0AMT = GLT0AMT - BSIS-DMBTR.
ELSE.
GLT0AMT = GLT0AMT + BSIS-DMBTR.
ENDIF.
ENDSELECT.


MOPBAL = GLT0AMT.
ENDFORM. " GET_GLT0_BAL

*---------------------------------------------------------------------*
* FORM GET_CHEQUE_NO *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* Get Document Wise Cheque No.
FORM GET_CHEQUE_NO.
DATA : DD(2), MM(2), YY(4) , DT(10).

* Get Document wise Pay data with cheque No.

SELECT * FROM PAYR WHERE ZBUKR = ITAB_DATA-BUKRS AND
VBLNR = ITAB_DATA-BELNR AND
GJAHR = ITAB_DATA-GJAHR.
MOVE ' ' TO ITAB_DATA-CHQNO.
MOVE ' ' TO ITAB_DATA-CHQDT.
IF SY-SUBRC = 0.
MOVE PAYR-CHECT+7(6) TO ITAB_DATA-CHQNO.
IF PAYR-ZALDT NE SPACE .
MOVE PAYR-ZALDT TO ITAB_DATA-CHQDT.
YY = ITAB_DATA-CHQDT+0(4).
MM = ITAB_DATA-CHQDT+4(2).
DD = ITAB_DATA-CHQDT+6(2).
CONCATENATE DD '.' MM '.' YY INTO DT.
ITAB_DATA-CHQDT = DT.
ENDIF.
ENDIF.
ENDSELECT.
ENDFORM.
*---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form ULINE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ULINE.
WRITE : /1 '==================================================' NO-GAP ,
'==================================================' NO-GAP ,
'========================='.
ENDFORM. " ULINE
*&---------------------------------------------------------------------*
*& Form PAGE_FOOTER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PAGE_FOOTER.
WRITE : /.
WRITE : /.
ENDFORM. " PAGE_FOOTER
*&---------------------------------------------------------------------*
*& Form GET_AC_DETL_FG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_AC_DETL_FG.
PBUSAB = SPACE.

* Get Account Name from GL A/C master.

SELECT SINGLE * FROM SKB1
WHERE SAKNR = PHKONT
AND BUKRS = MBUKRS.
IF SY-SUBRC = 0 AND SKB1-BUSAB = 'XX'.
PBUSAB = SKB1-BUSAB.
ENDIF.
ENDFORM. " GET_AC_DETL_FG
*&---------------------------------------------------------------------*
*& Form GET_SAKNR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
* Get GL Account Data of Posted Items for Contra Item.
FORM GET_SAKNR.
CLEAR ITAB_DATA-SAKNR.

* Get Account Codes of contra item from each transaction.

SELECT SINGLE * FROM BSIS CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND BELNR = BKPF-BELNR
AND BUKRS = BKPF-BUKRS
AND HKONT NE BSEG-HKONT
AND GJAHR = BSEG-GJAHR .
IF SY-SUBRC EQ 0.
ITAB_DATA-SAKNR = BSIS-HKONT.
ELSE.

* Get Vendor Account wise Posted Item for Contra Item.

SELECT SINGLE * FROM BSIK CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND BUKRS = BKPF-BUKRS
AND GJAHR = BKPF-GJAHR
AND BELNR = BKPF-BELNR
AND BUDAT = BKPF-BUDAT
AND BLDAT = BKPF-BLDAT .
IF SY-SUBRC EQ 0.
ITAB_DATA-SAKNR = BSIK-LIFNR.
ELSE.

* Get Customer AC wise Cleared Item Data for Contra Item.

SELECT SINGLE * FROM BSID CLIENT SPECIFIED
WHERE MANDT = SY-MANDT
AND BUKRS = BKPF-BUKRS
AND GJAHR = BKPF-GJAHR
AND BELNR = BKPF-BELNR
AND BUDAT = BKPF-BUDAT
AND BLDAT = BKPF-BLDAT .
IF SY-SUBRC EQ 0.
ITAB_DATA-SAKNR = BSID-KUNNR.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. " GET_SAKNR

No comments:

link us...

For Visitors

if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours

email-id :- avinashkr_raj@yahoo.com(any email)

email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)