*-- Table(s)
TABLES : PERNR,
T591S,
PA0002,
PA0006,
PA0021.
*-- Infotype(s)
INFOTYPES: 0000, 0001, 0002, 0006, 0041.
*--- Internal Table(s)
DATA:BEGIN OF P OCCURS 10,
PERNR LIKE PERNR-PERNR,
* ename like pernr-ename,
VORNA LIKE P0002-VORNA, "Adi
NACHN LIKE P0002-NACHN, "Soyadi
HIRE LIKE P0000-BEGDA, "Ise Giris Tarihi
FIRE LIKE P0000-ENDDA, "Isten çikis Tarihi
GBDAT LIKE P0002-GBDAT, "Dogum Tarihi
TELNR LIKE P0006-TELNR, "Telefon no
STRAS LIKE P0006-STRAS, "Cadde
LOCAT LIKE P0006-LOCAT, "Adresin Devami
HSNMR LIKE P0006-HSNMR, "Ev.No
POSTA LIKE P0006-POSTA, "Daire
ORT01 LIKE P0006-ORT01. "Daire
DATA: END OF P.
*--- Internal Table(s) (Halk Yasam Sigorta Bilgileri)
DATA:BEGIN OF S OCCURS 10,
PERNR LIKE PERNR-PERNR,
BEGDA LIKE P0021-BEGDA, "Baslangiç Tarihi
ENDDA LIKE P0021-ENDDA, "Sinirlama Tarihi
FAMSA LIKE P0021-FAMSA, "Aile Bilgisi
STEXT LIKE T591S-STEXT, "Aile text Bilgisi
OBJPS LIKE P0021-OBJPS, "Çocuk Sayisi
FAVOR LIKE P0021-FAVOR, "Sigortalinin Adi
FANAM LIKE P0021-FANAM, "Sigortalinin Soyadi
FGBDT LIKE P0021-FGBDT. "Sigortalinin Dogum Tarihi
DATA: END OF S.
DATA: XPA0006 LIKE PA0006 OCCURS 0 WITH HEADER LINE,
* xpa0002 like pa0002 occurs 0 with header line,
XPA0021 LIKE PA0021 OCCURS 0 WITH HEADER LINE,
XT591S LIKE T591S OCCURS 0 WITH HEADER LINE.
*-- RP_HIRE_FIRE
DATA: HIREDATE LIKE P0000-BEGDA,
FIREDATE LIKE P0000-ENDDA.
DATA: BEGIN OF PHIFI OCCURS 5.
INCLUDE STRUCTURE PHIFI.
DATA: END OF PHIFI.
*-- Variables
DATA: MYTOPLAM_AILE(4) TYPE N,
MYTOPLAM_FERT(4) TYPE N,
MYTOPLAM_DUL(4) TYPE N,
MYTOPLAM_COCUK(4) TYPE N,
MYPERS_YAS(3) TYPE N,
MYSIGO_YAS(3) TYPE N,
MYNUMPOSTA(6) TYPE C,
H_HIRE LIKE P0000-ENDDA,
H_FIRE LIKE P0000-ENDDA,
C01 LIKE SY-COLNO VALUE 203.
*-- Giris ekranina ilave
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-012.
SELECT-OPTIONS: HI_FI FOR P0001-BEGDA
DEFAULT '19800101'
TO SY-DATUM ,
SDATE FOR P0041-BEGDA OBLIGATORY.
SELECTION-SCREEN END OF BLOCK BLOCK1.
*------- PROGRAM BASLIYOR
START-OF-SELECTION.
PERFORM SET_INITIAL_VALUES .
GET PERNR.
*--
CALL FUNCTION 'RP_HIRE_FIRE'
EXPORTING
BEG = PN-BEGDA
END = PN-ENDDA
IMPORTING
HIRE_DATE = HIREDATE
FIRE_DATE = FIREDATE
TABLES
PP0000 = P0000 "input
PP0001 = P0001 "input
PPHIFI = PHIFI. "output
*----
* write :/1 hiredate,' ',firedate.
*---
PERFORM CALC_HIRE.
*-- end-of-selection
END-OF-SELECTION.
*-- GUI Status Bilgisi
SET PF-STATUS 'LIST'.
PERFORM BODY.
PERFORM TOTAL.
TOP-OF-PAGE.
PERFORM FORMAT .
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'S005'.
PERFORM FORMAT.
PERFORM WRITE_LIST_SOYADI.
PERFORM TOTAL.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form FORMAT
*&---------------------------------------------------------------------*
FORM FORMAT.
WRITE : /30 TEXT-013 COLOR COL_BACKGROUND INVERSE.
SKIP.
ULINE AT (C01).
FORMAT INTENSIFIED OFF COLOR 1.
WRITE : /1 '|' NO-GAP,(09)TEXT-001 NO-GAP, "Pers.no.
'|' NO-GAP,(12)TEXT-007 NO-GAP, "Aile Bireyi
'|' NO-GAP,(11)TEXT-003 NO-GAP, "Giris Tarihi
'|' NO-GAP,(11)TEXT-026 NO-GAP, "Çikis Tarihi
'|' NO-GAP,(15)TEXT-002 NO-GAP, "Adi
'|' NO-GAP,(15)TEXT-010 NO-GAP, "Soyadi
'|' NO-GAP,(11)TEXT-016 NO-GAP, "D.Tarihi
'|' NO-GAP,(04)TEXT-021 NO-GAP, "Yas
'|' NO-GAP,(15)TEXT-022 NO-GAP, "Tel.No
'|' NO-GAP,(20)TEXT-023 NO-GAP, "Cadde
'|' NO-GAP,(26)TEXT-024 NO-GAP, "Adresin Devami
'|' NO-GAP,(07)TEXT-025 NO-GAP, "Ev.No
'|' NO-GAP,(06)TEXT-028 NO-GAP, "Daire No
'|' NO-GAP,(26)TEXT-027 NO-GAP, "Yer
'|' .
ULINE AT (C01).
ENDFORM. " FORMAT
*&---------------------------------------------------------------------*
*& Form BODY
*&---------------------------------------------------------------------*
FORM BODY.
SORT P BY PERNR HIRE.
CLEAR : MYTOPLAM_AILE, MYTOPLAM_FERT, MYTOPLAM_COCUK, MYTOPLAM_DUL.
LOOP AT P.
*--
MYPERS_YAS = SY-DATUM+0(4) - P-GBDAT+0(4). "Personelin Yasi
*--
FORMAT COLOR COL_KEY.
WRITE: /01 SY-VLINE NO-GAP,
(08) P-PERNR NO-ZERO UNDER TEXT-001, " pers.no
SY-VLINE NO-GAP.
WRITE: 24 SY-VLINE NO-GAP, " Aile Bireyi
(10) P-HIRE UNDER TEXT-003, " Giris tarihi
SY-VLINE NO-GAP,
(10) P-FIRE UNDER TEXT-026, " Çikis tarihi
SY-VLINE NO-GAP,
* (30) p-ename under text-002, " Name and Surname
* sy-vline no-gap,
(14) P-VORNA UNDER TEXT-002, " Adi
SY-VLINE NO-GAP,
(14) P-NACHN UNDER TEXT-010, " Soyadi
SY-VLINE NO-GAP,
(10) P-GBDAT UNDER TEXT-016, " Dogum Tarihi
SY-VLINE NO-GAP,
(03) MYPERS_YAS NO-ZERO UNDER TEXT-021, " Yas
SY-VLINE NO-GAP,
(14) P-TELNR UNDER TEXT-022, " Tel.No
SY-VLINE NO-GAP,
(19) P-STRAS UNDER TEXT-023, " Cadde
SY-VLINE NO-GAP,
(25) P-LOCAT UNDER TEXT-024, " Adresin Devami
SY-VLINE NO-GAP,
(06) P-HSNMR UNDER TEXT-025, " Ev.No
SY-VLINE NO-GAP,
(05) P-POSTA UNDER TEXT-028, " Daire
SY-VLINE NO-GAP,
(25) P-ORT01 UNDER TEXT-027, " Yer
SY-VLINE NO-GAP.
* break-point.
*-- Es ve Çocuk Bilgisi
LOOP AT S WHERE
PERNR EQ P-PERNR.
*--
IF S-ENDDA EQ '99991231'. "Personelin evli olmasi durumu
*--
MYSIGO_YAS = SY-DATUM+0(4) - S-FGBDT+0(4). "Sigortalinin Yasi
*-- Es(1) Çocuk(2)
IF S-FAMSA = '1' OR S-FAMSA = '2' AND MYSIGO_YAS <= '18'.
*--
IF S-FAMSA = '1'. "Es sayisi toplam aile sayisina ekk.
ADD 1 TO MYTOPLAM_AILE.
ENDIF.
*--
* if s-famsa = '2'. "Cocuk sayisi toplaniyor
* add 1 to mytoplam_cocuk.
* endif.
*--
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE: /01 SY-VLINE NO-GAP,
11 SY-VLINE NO-GAP,
(08) S-STEXT UNDER TEXT-007, "Aile Bireyi Text
(02) S-OBJPS,
SY-VLINE NO-GAP.
WRITE: 36 SY-VLINE NO-GAP.
WRITE: 48 SY-VLINE NO-GAP.
WRITE: 49 S-FAVOR(15) . "Sigortalinin Adi
WRITE: 64 SY-VLINE NO-GAP.
WRITE: 65 S-FANAM(15) . "Sigortalinin Soyadi
WRITE: 80 SY-VLINE NO-GAP,
(10) S-FGBDT UNDER TEXT-016, "Sigortalinin Dogum Tar.
SY-VLINE NO-GAP,
(03) MYSIGO_YAS NO-ZERO UNDER TEXT-021, "Sigortalinin Yasi
SY-VLINE NO-GAP.
ENDIF.
ELSE.
ADD 1 TO MYTOPLAM_DUL. "Esinden ayri olan personel
ENDIF.
ENDLOOP.
*-- Fert Sayisi Bulunuyor.
ADD 1 TO MYTOPLAM_FERT.
*--
ENDLOOP.
ULINE AT (C01).
ENDFORM. " BODY
*---------------------------------------------------------------------*
* FORM TOTAL *
*---------------------------------------------------------------------*
FORM TOTAL.
SKIP.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE :/ TEXT-017,
MYTOPLAM_AILE NO-ZERO COLOR COL_NEGATIVE.
COMPUTE MYTOPLAM_FERT = ( MYTOPLAM_FERT - MYTOPLAM_AILE ).
WRITE :/ TEXT-018,
MYTOPLAM_FERT NO-ZERO COLOR COL_NEGATIVE.
WRITE :/ TEXT-019,
MYTOPLAM_DUL NO-ZERO COLOR COL_NEGATIVE.
ENDFORM. " TOTAL
*&---------------------------------------------------------------------*
*& Form CALC_HIRE
*&---------------------------------------------------------------------*
FORM CALC_HIRE.
CHECK HIREDATE BETWEEN HI_FI-LOW AND HI_FI-HIGH.
RP-PROVIDE-FROM-LAST P0001 SPACE HI_FI-HIGH HI_FI-HIGH.
RP-PROVIDE-FROM-LAST P0002 SPACE HI_FI-HIGH HI_FI-HIGH.
RP-PROVIDE-FROM-LAST P0006 SPACE HI_FI-HIGH HI_FI-HIGH.
RP-PROVIDE-FROM-LAST P0041 SPACE SDATE-LOW SDATE-HIGH.
PERFORM FILL_P.
ENDFORM. " CALC_HIRE
*&---------------------------------------------------------------------*
*& Form FILL_P
*&---------------------------------------------------------------------*
FORM FILL_P.
*-- P0041 Kayit Atilan Personel
CHECK P0041-BEGDA GE SDATE-LOW.
*-- Istenilen tarih araliginda bilginin bulunmasi
CHECK FIREDATE GE HI_FI-HIGH .
MOVE: PERNR-PERNR TO P-PERNR,
* p0001-ename to p-ename,
P0002-VORNA TO P-VORNA,
P0002-NACHN TO P-NACHN,
HIREDATE TO P-HIRE,
FIREDATE TO P-FIRE,
P0002-GBDAT TO P-GBDAT,
P0006-TELNR TO P-TELNR,
P0006-STRAS TO P-STRAS,
P0006-LOCAT TO P-LOCAT,
P0006-HSNMR TO P-HSNMR,
P0006-POSTA TO MYNUMPOSTA,
MYNUMPOSTA TO P-POSTA,
P0006-ORT01 TO P-ORT01.
APPEND P.
LOOP AT XPA0021 WHERE PERNR EQ PERNR-PERNR.
READ TABLE XT591S WITH KEY SUBTY = XPA0021-FAMSA.
MOVE : XPA0021-PERNR TO S-PERNR,
XPA0021-BEGDA TO S-BEGDA,
XPA0021-ENDDA TO S-ENDDA,
XPA0021-FAMSA TO S-FAMSA,
XPA0021-FANAM TO S-FANAM,
XT591S-STEXT TO S-STEXT,
XPA0021-OBJPS TO S-OBJPS,
XPA0021-FAVOR TO S-FAVOR,
XPA0021-FGBDT TO S-FGBDT.
APPEND S.
ENDLOOP.
ENDFORM. " FILL_P
*&---------------------------------------------------------------------*
*& Form SET_INITIAL_VALUES
*&---------------------------------------------------------------------*
FORM SET_INITIAL_VALUES.
*-- Bosanmis Personel Bilgileri
* select * from pa0002 into table xpa0002 where pernr in pnppernr
* and famst eq '3'
* or famst eq '4'
* order by pernr.
*-- Adres Bilgileri
SELECT * FROM PA0006 INTO TABLE XPA0006 WHERE PERNR IN PNPPERNR
ORDER BY PERNR.
*-- Aile Bilgileri
SELECT * FROM PA0021 INTO TABLE XPA0021 WHERE PERNR IN PNPPERNR
ORDER BY PERNR.
*-- Aile (Text Bilgileri)
SELECT * FROM T591S INTO TABLE XT591S WHERE SPRSL EQ SY-LANGU AND
INFTY EQ '0021'.
ENDFORM. " SET_INITIAL_VALUES
*&---------------------------------------------------------------------*
*& Form WRITE_LIST_SOYADI
*&---------------------------------------------------------------------*
FORM WRITE_LIST_SOYADI.
SORT P BY NACHN HIRE.
CLEAR : MYTOPLAM_AILE, MYTOPLAM_FERT, MYTOPLAM_COCUK, MYTOPLAM_DUL.
LOOP AT P.
*--
MYPERS_YAS = SY-DATUM+0(4) - P-GBDAT+0(4). "Personelin Yasi
*--
FORMAT COLOR COL_KEY.
WRITE: /01 SY-VLINE NO-GAP,
(08) P-PERNR NO-ZERO UNDER TEXT-001, " pers.no
SY-VLINE NO-GAP.
WRITE: 24 SY-VLINE NO-GAP, " Aile Bireyi
(10) P-HIRE UNDER TEXT-003, " Giris tarihi
SY-VLINE NO-GAP,
(10) P-FIRE UNDER TEXT-026, " Çikis tarihi
SY-VLINE NO-GAP,
* (30) p-ename under text-002, " Name and Surname
* sy-vline no-gap,
(14) P-VORNA UNDER TEXT-002, " Adi
SY-VLINE NO-GAP,
(14) P-NACHN UNDER TEXT-010, " Soyadi
SY-VLINE NO-GAP,
(10) P-GBDAT UNDER TEXT-016, " Dogum Tarihi
SY-VLINE NO-GAP,
(03) MYPERS_YAS NO-ZERO UNDER TEXT-021, " Yas
SY-VLINE NO-GAP,
(14) P-TELNR UNDER TEXT-022, " Tel.No
SY-VLINE NO-GAP,
(19) P-STRAS UNDER TEXT-023, " Cadde
SY-VLINE NO-GAP,
(25) P-LOCAT UNDER TEXT-024, " Adresin Devami
SY-VLINE NO-GAP,
(06) P-HSNMR UNDER TEXT-025, " Ev.No
SY-VLINE NO-GAP,
(06) P-POSTA UNDER TEXT-028, " Daire
SY-VLINE NO-GAP,
(25) P-ORT01 UNDER TEXT-027, " Yer
SY-VLINE NO-GAP.
* break-point.
*-- Es ve Çocuk Bilgisi
LOOP AT S WHERE
PERNR EQ P-PERNR.
*--
IF S-ENDDA EQ '99991231'. "Personelin evli olmasi durumu
*--
MYSIGO_YAS = SY-DATUM+0(4) - S-FGBDT+0(4). "Sigortalinin Yasi
*-- Es(1) Çocuk(2)
IF S-FAMSA = '1' OR S-FAMSA = '2' AND MYSIGO_YAS <= '18'.
*--
IF S-FAMSA = '1'. "Es sayisi toplam aile sayisina ekk.
ADD 1 TO MYTOPLAM_AILE.
ENDIF.
*--
* if s-famsa = '2'. "Cocuk sayisi toplaniyor
* add 1 to mytoplam_cocuk.
* endif.
*--
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
WRITE: /01 SY-VLINE NO-GAP,
11 SY-VLINE NO-GAP,
(08) S-STEXT UNDER TEXT-007, "Aile Bireyi Text
(02) S-OBJPS,
SY-VLINE NO-GAP.
WRITE: 36 SY-VLINE NO-GAP.
WRITE: 48 SY-VLINE NO-GAP.
WRITE: 49 S-FAVOR(15) . "Sigortalinin Adi
WRITE: 64 SY-VLINE NO-GAP.
WRITE: 65 S-FANAM(15) . "Sigortalinin Soyadi
WRITE: 80 SY-VLINE NO-GAP,
(10) S-FGBDT UNDER TEXT-016, "Sigortalinin Dogum Tar.
SY-VLINE NO-GAP,
(03) MYSIGO_YAS NO-ZERO UNDER TEXT-021, "Sigortalinin Yasi
SY-VLINE NO-GAP.
ENDIF.
ELSE.
ADD 1 TO MYTOPLAM_DUL. "Esinden ayri olan personel
ENDIF.
ENDLOOP.
*-- Fert Sayisi Bulunuyor.
ADD 1 TO MYTOPLAM_FERT.
*--
ENDLOOP.
ULINE AT (C01).
ENDFORM. " WRITE_LIST_SOYADI
Hiç yorum yok:
Yorum Gönder