Sie sind auf Seite 1von 46

*&---------------------------------------------------------------------* *& Include ZMM_I_STOK_RAPORU_FRM *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* FORM f_get_data .

DATA : BEGIN OF tb_gemi OCCURS 0, vbeln LIKE zsd_t_tartim_det-vbeln, posnr LIKE zsd_t_tartim_det-posnr, charg LIKE zsd_t_tartim_det-charg, kg LIKE zsd_t_tartim_det-kg, gerkg LIKE zsd_t_tartim_det-gerkg, END OF tb_gemi , BEGIN OF tb_kamy OCCURS 0, vbeln LIKE zsd_t_tartim_det-vbeln, posnr LIKE zsd_t_tartim_det-posnr, charg LIKE zsd_t_tartim_det-charg, kg LIKE zsd_t_tartim_det-kg, gerkg LIKE zsd_t_tartim_det-gerkg, END OF tb_kamy , tx_boy TYPE string , tx_kal TYPE string , tx_cap TYPE string , tx_gen TYPE string . DATA : tb_mkpf LIKE mkpf OCCURS 0 WITH HEADER LINE. CLEAR : tx_boy, tx_gen, tx_kal, tx_cap . FREE : tb_gemi . REFRESH gt_zpp_t_krk . SELECT * INTO TABLE gt_zpp_t_krk FROM zpp_t_krk . SORT gt_zpp_t_krk BY mtart krkad . IF c_gemi EQ 'X'. SELECT a~vbeln a~posnr a~charg a~kg a~gerkg FROM zsd_t_tartim_det AS a INNER JOIN zsd_t_tartim_bas AS b ON a~fisno AND a~klmno INTO CORRESPONDING FIELDS OF TABLE tb_gemi WHERE a~tesno EQ space AND b~loekz EQ space AND b~sefer NE space . ENDIF. IF c_kamy EQ 'X'. SELECT a~vbeln a~posnr a~charg a~kg a~gerkg FROM zsd_t_tartim_det AS a INNER JOIN zsd_t_tartim_bas AS b ON a~fisno AND a~klmno INTO CORRESPONDING FIELDS OF TABLE tb_kamy WHERE b~loekz EQ space AND b~sefer EQ space AND b~bitti EQ space .

= b~fisno = b~klmno

= b~fisno = b~klmno

SELECT a~vbeln a~posnr a~charg a~kg a~gerkg FROM zsd_t_tartim_dfs AS a INNER JOIN zsd_t_tartim_bfs AS b ON a~fisno = b~fisno AND a~klmno = b~klmno APPENDING CORRESPONDING FIELDS OF TABLE tb_kamy

WHERE b~loekz EQ space AND b~sefer EQ space AND b~bitti EQ space . ENDIF. CASE 'X'. WHEN r_nostok. CASE 'X' . WHEN r_must . SELECT c~vbeln c~auart c~kunnr d~name1 e~kdmat e~posnr e~arktx b~mtart a~matnr f~maktx a~lgort a~charg a~kalab a~kains a~kaspe b~meins a~werks b~matkl INTO CORRESPONDING FIELDS OF TABLE tb_mska FROM mska AS a INNER JOIN mara AS b ON b~matnr = a~matnr INNER JOIN vbak AS c ON c~vbeln = a~vbeln LEFT JOIN kna1 AS d ON d~kunnr = c~kunnr INNER JOIN vbap AS e ON e~vbeln = a~vbeln AND e~posnr = a~posnr LEFT JOIN makt AS f ON a~matnr = f~matnr AND f~spras = sy-langu WHERE a~matnr IN so_matnr AND a~werks IN so_werks AND a~lgort IN so_lgort AND a~charg IN so_charg AND a~vbeln IN so_vbeln AND e~posnr IN so_posnr AND b~mtart IN so_mtart AND c~kunnr IN so_kunnr AND c~auart IN so_auart . LOOP AT tb_mska . CLEAR tb_data . MOVE-CORRESPONDING tb_mska TO tb_data . * * * PERFORM cmno_getir USING tb_data-vbeln tb_data-posnr CHANGING tb_data-cmno tb_data-cmkl . IF tb_data-cmno IN so_cmno. tb_data-labst = tb_mska-kalab .

IF c_gemi EQ 'X'. LOOP AT tb_gemi WHERE charg EQ tb_mska-charg AND vbeln EQ tb_mska-vbeln AND posnr EQ tb_mska-posnr . IF tb_data-mtart EQ 'ZSLB'. *parti baznda...slab gemide ise tamam gemiye yklenmitir. tb_data-labst = 0 . ELSE. IF tb_gemi-gerkg IS NOT INITIAL. tb_data-labst = tb_data-labst - tb_gemi-gerkg . ELSEIF tb_gemi-kg IS NOT INITIAL . tb_data-labst = tb_data-labst - tb_gemi-kg . ENDIF. ENDIF. ENDLOOP. ENDIF. IF c_kamy EQ 'X'. LOOP AT tb_kamy WHERE charg EQ tb_mska-charg AND vbeln EQ tb_mska-vbeln AND posnr EQ tb_mska-posnr .

IF tb_data-mtart EQ 'ZSLB'. *parti baznda...slab gemide ise tamam gemiye yklenmitir. tb_data-labst = 0 . ELSE. IF tb_kamy-gerkg IS NOT INITIAL. tb_data-labst = tb_data-labst - tb_kamy-gerkg . ELSEIF tb_kamy-kg IS NOT INITIAL . tb_data-labst = tb_data-labst - tb_kamy-kg . ENDIF. ENDIF . ENDLOOP. IF tb_data-labst < 0. tb_data-labst = 0 . ENDIF. ENDIF. tb_data-insme = tb_mska-kains . tb_data-speme = tb_mska-kaspe . APPEND tb_data . ENDIF. ENDLOOP. WHEN r_parti . SELECT b~mtart a~matnr c~maktx a~lgort a~charg a~clabs a~cinsm a~cspem b~meins a~werks b~matkl INTO CORRESPONDING FIELDS OF TABLE tb_mchb FROM mchb AS a INNER JOIN mara AS b ON b~matnr = a~matnr LEFT JOIN makt AS c ON a~matnr = c~matnr AND c~spras = sy-langu WHERE a~matnr IN so_matnr AND a~werks IN so_werks AND a~lgort IN so_lgort AND a~charg IN so_charg AND b~mtart IN so_mtart . LOOP AT tb_mchb . MOVE-CORRESPONDING tb_mchb TO tb_data-labst = tb_mchb-clabs tb_data-insme = tb_mchb-cinsm tb_data-speme = tb_mchb-cspem APPEND tb_data . ENDLOOP. tb_data . . . .

WHEN r_hepsi . SELECT c~vbeln c~auart c~kunnr d~name1 e~kdmat e~posnr e~arktx b~mtart a~matnr f~maktx a~lgort a~charg a~kalab a~kains a~kaspe b~meins a~werks b~matkl INTO CORRESPONDING FIELDS OF TABLE tb_mska FROM mska AS a INNER JOIN mara AS b ON b~matnr = a~matnr INNER JOIN vbak AS c ON c~vbeln = a~vbeln LEFT JOIN kna1 AS d ON d~kunnr = c~kunnr INNER JOIN vbap AS e ON e~vbeln = a~vbeln AND e~posnr = a~posnr LEFT JOIN makt AS f ON a~matnr = f~matnr AND f~spras = sy-langu WHERE a~matnr IN so_matnr AND a~werks IN so_werks AND a~lgort IN so_lgort

AND AND AND AND AND AND

a~charg a~vbeln e~posnr b~mtart c~kunnr c~auart

IN IN IN IN IN IN

so_charg so_vbeln so_posnr so_mtart so_kunnr so_auart .

* * *

LOOP AT tb_mska . CLEAR tb_data . MOVE-CORRESPONDING tb_mska TO tb_data . PERFORM cmno_getir USING tb_data-vbeln tb_data-posnr CHANGING tb_data-cmno tb_data-cmkl . IF tb_data-cmno IN so_cmno. tb_data-labst = tb_mska-kalab . tb_data-insme = tb_mska-kains . tb_data-speme = tb_mska-kaspe .

IF c_gemi EQ 'X'. LOOP AT tb_gemi WHERE charg EQ tb_mska-charg AND vbeln EQ tb_mska-vbeln AND posnr EQ tb_mska-posnr . IF tb_data-mtart EQ 'ZSLB'. *parti baznda...slab gemide ise tamam gemiye yklenmitir. tb_data-labst = 0 . ELSE. IF tb_gemi-gerkg IS NOT INITIAL. tb_data-labst = tb_data-labst - tb_gemi-gerkg . ELSEIF tb_gemi-kg IS NOT INITIAL . tb_data-labst = tb_data-labst - tb_gemi-kg . ENDIF. ENDIF . ENDLOOP. ENDIF. IF c_kamy EQ 'X'. LOOP AT tb_kamy WHERE charg EQ tb_mska-charg AND vbeln EQ tb_mska-vbeln AND posnr EQ tb_mska-posnr . IF tb_data-mtart EQ 'ZSLB'. *parti baznda...slab gemide ise tamam gemiye yklenmitir. tb_data-labst = 0 . ELSE. IF tb_kamy-gerkg IS NOT INITIAL. tb_data-labst = tb_data-labst - tb_kamy-gerkg . ELSEIF tb_kamy-kg IS NOT INITIAL . tb_data-labst = tb_data-labst - tb_kamy-kg . ENDIF. ENDIF . ENDLOOP. ENDIF. IF tb_data-labst < 0. tb_data-labst = 0 . ENDIF. * APPEND tb_data . ENDIF . ENDLOOP. CLEAR tb_data . SELECT b~mtart a~matnr c~maktx a~lgort a~charg a~clabs a~cinsm a~cspem b~meins a~werks b~matkl

INTO CORRESPONDING FIELDS OF TABLE tb_mchb FROM mchb AS a INNER JOIN mara AS b ON b~matnr = a~matnr LEFT JOIN makt AS c ON a~matnr = c~matnr AND c~spras = sy-langu WHERE a~matnr IN so_matnr AND a~werks IN so_werks AND a~lgort IN so_lgort AND a~charg IN so_charg AND b~mtart IN so_mtart . LOOP AT tb_mchb . MOVE-CORRESPONDING tb_mchb TO tb_data-labst = tb_mchb-clabs tb_data-insme = tb_mchb-cinsm tb_data-speme = tb_mchb-cspem APPEND tb_data . ENDLOOP. ENDCASE. tb_data . . . .

WHEN r_stok. CASE 'X' . WHEN r_must . SELECT c~vbeln c~auart c~kunnr d~name1 e~kdmat e~posnr e~arktx b~mtart a~matnr f~maktx a~lgort a~charg a~kalab a~kains a~kaspe b~meins a~werks b~matkl INTO CORRESPONDING FIELDS OF TABLE tb_mska FROM mska AS a INNER JOIN mara AS b ON b~matnr = a~matnr INNER JOIN vbak AS c ON c~vbeln = a~vbeln LEFT JOIN kna1 AS d ON d~kunnr = c~kunnr INNER JOIN vbap AS e ON e~vbeln = a~vbeln AND e~posnr = a~posnr LEFT JOIN makt AS f ON a~matnr = f~matnr AND f~spras = sy-langu WHERE a~matnr IN so_matnr AND a~werks IN so_werks AND a~lgort IN so_lgort AND a~charg IN so_charg AND a~vbeln IN so_vbeln AND e~posnr IN so_posnr AND b~mtart IN so_mtart AND c~kunnr IN so_kunnr AND c~auart IN so_auart AND ( a~kalab NE 0 OR a~kains NE 0 OR a~kaspe NE 0 ) . LOOP AT tb_mska . CLEAR tb_data . MOVE-CORRESPONDING tb_mska TO tb_data . * * * PERFORM cmno_getir USING tb_data-vbeln tb_data-posnr CHANGING tb_data-cmno tb_data-cmkl . IF tb_data-cmno IN so_cmno. tb_data-labst = tb_mska-kalab . tb_data-insme = tb_mska-kains . tb_data-speme = tb_mska-kaspe . IF c_gemi EQ 'X'.

LOOP AT tb_gemi WHERE charg EQ tb_mska-charg AND vbeln EQ tb_mska-vbeln AND posnr EQ tb_mska-posnr . IF tb_data-mtart EQ 'ZSLB'. *parti baznda...slab gemide ise tamam gemiye yklenmitir. tb_data-labst = 0 . ELSE. IF tb_gemi-gerkg IS NOT INITIAL. tb_data-labst = tb_data-labst - tb_gemi-gerkg . ELSEIF tb_gemi-kg IS NOT INITIAL . tb_data-labst = tb_data-labst - tb_gemi-kg . ENDIF. ENDIF . ENDLOOP. LOOP AT tb_kamy WHERE charg EQ tb_mska-charg AND vbeln EQ tb_mska-vbeln AND posnr EQ tb_mska-posnr . IF tb_data-mtart EQ 'ZSLB'. *parti baznda...slab gemide ise tamam gemiye yklenmitir. tb_data-labst = 0 . ELSE. IF tb_kamy-gerkg IS NOT INITIAL. tb_data-labst = tb_data-labst - tb_kamy-gerkg . ELSEIF tb_kamy-kg IS NOT INITIAL . tb_data-labst = tb_data-labst - tb_kamy-kg . ENDIF. ENDIF . ENDLOOP. IF tb_data-labst LE 0. DELETE tb_mska . CONTINUE . ENDIF. * ENDIF. APPEND tb_data . ENDIF . ENDLOOP. WHEN r_parti . SELECT b~mtart a~matnr c~maktx a~lgort a~charg a~clabs a~cinsm a~cspem b~meins a~werks b~matkl INTO CORRESPONDING FIELDS OF TABLE tb_mchb FROM mchb AS a INNER JOIN mara AS b ON b~matnr = a~matnr LEFT JOIN makt AS c ON a~matnr = c~matnr AND c~spras = sy-langu WHERE a~matnr IN so_matnr AND a~werks IN so_werks AND a~lgort IN so_lgort AND a~charg IN so_charg AND b~mtart IN so_mtart AND ( a~clabs NE 0 OR a~cinsm NE 0 OR a~cspem NE 0 ) . LOOP AT tb_mchb . MOVE-CORRESPONDING tb_mchb TO tb_data . tb_data-labst = tb_mchb-clabs . tb_data-insme = tb_mchb-cinsm .

tb_data-speme = tb_mchb-cspem . APPEND tb_data . ENDLOOP. WHEN r_hepsi . SELECT c~vbeln c~auart c~kunnr d~name1 e~kdmat e~posnr e~arktx b~mtart a~matnr f~maktx a~lgort a~charg a~kalab a~kains a~kaspe b~meins a~werks b~matkl INTO CORRESPONDING FIELDS OF TABLE tb_mska FROM mska AS a INNER JOIN mara AS b ON b~matnr = a~matnr INNER JOIN vbak AS c ON c~vbeln = a~vbeln LEFT JOIN kna1 AS d ON d~kunnr = c~kunnr INNER JOIN vbap AS e ON e~vbeln = a~vbeln AND e~posnr = a~posnr LEFT JOIN makt AS f ON a~matnr = f~matnr AND f~spras = sy-langu WHERE a~matnr IN so_matnr AND a~werks IN so_werks AND a~lgort IN so_lgort AND a~charg IN so_charg AND a~vbeln IN so_vbeln AND e~posnr IN so_posnr AND b~mtart IN so_mtart AND c~kunnr IN so_kunnr AND c~auart IN so_auart AND ( a~kalab NE 0 OR a~kains NE 0 OR a~kaspe NE 0 ) . LOOP AT tb_mska . CLEAR tb_data . MOVE-CORRESPONDING tb_mska TO tb_data . * * * PERFORM cmno_getir USING tb_data-vbeln tb_data-posnr CHANGING tb_data-cmno tb_data-cmkl . IF tb_data-cmno IN so_cmno. tb_data-labst = tb_mska-kalab . tb_data-insme = tb_mska-kains . tb_data-speme = tb_mska-kaspe .

IF c_gemi EQ 'X'. LOOP AT tb_gemi WHERE charg EQ tb_mska-charg AND vbeln EQ tb_mska-vbeln AND posnr EQ tb_mska-posnr . IF tb_data-mtart EQ 'ZSLB'. *parti baznda...slab gemide ise tamam gemiye yklenmitir. tb_data-labst = 0 . ELSE. IF tb_gemi-gerkg IS NOT INITIAL. tb_data-labst = tb_data-labst - tb_gemi-gerkg . ELSEIF tb_gemi-kg IS NOT INITIAL . tb_data-labst = tb_data-labst - tb_gemi-kg . ENDIF. ENDIF . ENDLOOP. LOOP AT tb_kamy WHERE charg EQ tb_mska-charg AND vbeln EQ tb_mska-vbeln AND posnr EQ tb_mska-posnr .

IF tb_data-mtart EQ 'ZSLB'. *parti baznda...slab gemide ise tamam gemiye yklenmitir. tb_data-labst = 0 . ELSE. IF tb_kamy-gerkg IS NOT INITIAL. tb_data-labst = tb_data-labst - tb_kamy-gerkg . ELSEIF tb_kamy-kg IS NOT INITIAL . tb_data-labst = tb_data-labst - tb_kamy-kg . ENDIF. ENDIF . ENDLOOP. IF tb_data-labst LE 0. DELETE tb_mska . CONTINUE . ENDIF. ENDIF. * APPEND tb_data . ENDIF . ENDLOOP. CLEAR tb_data . SELECT b~mtart a~matnr c~maktx a~lgort a~charg a~clabs a~cinsm a~cspem b~meins a~werks b~matkl INTO CORRESPONDING FIELDS OF TABLE tb_mchb FROM mchb AS a INNER JOIN mara AS b ON b~matnr = a~matnr LEFT JOIN makt AS c ON a~matnr = c~matnr AND c~spras = sy-langu WHERE a~matnr IN so_matnr AND a~werks IN so_werks AND a~lgort IN so_lgort AND a~charg IN so_charg AND b~mtart IN so_mtart AND ( a~clabs NE 0 OR a~cinsm NE 0 OR a~cspem NE 0 ) . LOOP AT tb_mchb . MOVE-CORRESPONDING tb_mchb TO tb_data-labst = tb_mchb-clabs tb_data-insme = tb_mchb-cinsm tb_data-speme = tb_mchb-cspem APPEND tb_data . ENDLOOP. ENDCASE. ENDCASE. tb_data . . . .

LOOP AT tb_data. CLEAR sales_documents . sales_documents-vbeln = tb_data-vbeln . COLLECT sales_documents . ENDLOOP. i_bapi_view-configure = 'X' . CALL FUNCTION 'BAPISDORDER_GETDETAILEDLIST' EXPORTING i_bapi_view = i_bapi_view

TABLES sales_documents = sales_documents order_cfgs_curefs_out = order_cfgs_curefs_out order_cfgs_cuvals_out = order_cfgs_cuvals_out. confix_id = order_cfgs_curefs_out-config_id. id yaptm. "isim uzun old. iin confix_

LOOP AT tb_data. PERFORM f_karakt_deger USING 'DKALI' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-dkali . PERFORM f_karakt_deger USING 'KALIN' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-kalin . PERFORM f_karakt_deger USING 'GNSLK' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-genis . PERFORM f_karakt_deger USING 'YUKSEK' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-yuksek . PERFORM f_karakt_deger USING 'STURU' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-sturu . DATA : ls_zpp_t_sapma TYPE zpp_t_sapma . CLEAR ls_zpp_t_sapma . SELECT SINGLE * INTO ls_zpp_t_sapma FROM zpp_t_sapma WHERE sapma = tb_data-sturu . tb_data-sneden = ls_zpp_t_sapma-sapmat . * * * PERFORM f_karakt_deger USING 'SNEDEN' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-sneden . PERFORM f_karakt_deger USING 'UZNLK' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-lvboy . PERFORM f_karakt_deger USING 'CAP' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-cap . PERFORM f_karakt_deger USING 'DOKNO' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-dokum . * * * * * * PERFORM f_karakt_deger USING 'KESIT' tb_data-mtart tb_data-matnr tb_data-charg CHANGING tb_data-kesit . PERFORM karakt_deger USING 'CLK_10030' tb_data-slabparti tb_data-matnr tb_data-charg. PERFORM karakt_deger

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ag. * * *

USING 'CLK_10000' tb_data-mbkali tb_data-matnr tb_data-charg. IF tb_data-mbkali IS NOT INITIAL. SELECT SINGLE bkalit_new FROM zsd_t_klt_mstr_n INTO tb_data-mbkalit WHERE bkali_new = tb_data-mbkali. ENDIF. PERFORM karakt_deger USING 'CLK_00055' tb_data-olckln tb_data-matnr tb_data-charg. PERFORM karakt_deger USING 'CLK_00065' tb_data-olcgns tb_data-matnr tb_data-charg. PERFORM karakt_deger USING 'CLK_00075' tb_data-olcuzn tb_data-matnr tb_data-charg. DATA lv_teoag TYPE p LENGTH 6 DECIMALS 0 . CLEAR : yn_lvboy , yn_dkali, yn_gnslk, yn_kalin . FREE : yn_ret. CALL FUNCTION 'ZSD_F_PARTI_KARAKTERISTIK' EXPORTING va_matnr = tb_data-matnr va_charg = tb_data-charg IMPORTING va_etboy = yn_lvboy va_dkali = yn_dkali va_gnslk = yn_gnslk va_kalin = yn_kalin. CLEAR : va_oran3. CALL FUNCTION 'ZPP_F_KUTUK_AGIRLIK' EXPORTING va_etboy = yn_lvboy va_gnslk = yn_gnslk va_kalin = yn_kalin va_dkali = yn_dkali va_matnr = tb_data-matnr IMPORTING va_kg = va_oran3 TABLES tb_return = yn_ret. lv_teoag = va_oran3. IF lv_teoag IS NOT INITIAL. tb_data-adet = ( tb_data-labst + tb_data-insme + tb_data-speme ) / lv_teo ELSE. tb_data-adet = 0 . ENDIF. DATA : lt_zpp_t_dokum TYPE TABLE OF zpp_t_dokum , ls_zpp_t_dokum TYPE zpp_t_dokum . REFRESH lt_zpp_t_dokum . SELECT * INTO TABLE lt_zpp_t_dokum FROM zpp_t_dokum WHERE matnr = tb_data-matnr AND satildi = space AND charg = tb_data-charg AND tuketim = space . DATA : lv_line TYPE i .

CLEAR lv_line . DESCRIBE TABLE lt_zpp_t_dokum LINES lv_line . tb_data-adet = lv_line . SELECT SINGLE dkalit FROM zsd_t_klt_dkm INTO tb_data-dkalit WHERE dkali = tb_data-dkali . DATA : ls_zsd_t_spec_fast TYPE zsd_t_spec_fast . CLEAR ls_zsd_t_spec_fast . SELECT SINGLE * INTO ls_zsd_t_spec_fast FROM zsd_t_spec_fast WHERE kdmat = tb_data-kdmat . tb_data-ukali = ls_zsd_t_spec_fast-kalite . DATA : ls_zsd_t_klt_uyg TYPE zsd_t_klt_uyg . SELECT SINGLE * INTO ls_zsd_t_klt_uyg FROM zsd_t_klt_uyg WHERE ukali = tb_data-ukali . tb_data-bkali_new = ls_zsd_t_klt_uyg-bkali_new . DATA : ls_zsd_t_klt_mstr_n TYPE zsd_t_klt_mstr_n . CLEAR ls_zsd_t_klt_mstr_n . SELECT SINGLE * INTO ls_zsd_t_klt_mstr_n FROM zsd_t_klt_mstr_n WHERE bkali_new = tb_data-bkali_new . tb_data-bkalit_new = ls_zsd_t_klt_mstr_n-bkalit_new . IF "tb_data-dkali "tb_data-bkali tb_data-kalin tb_data-genis tb_data-yuksek tb_data-lvboy tb_data-cap tb_data-kesit tb_data-sturu tb_data-sturu IN so_dkali AND IN so_bkali AND IN so_kalin AND IN so_genis AND IN so_yukse AND IN so_lvboy AND IN so_cap AND IN so_kesit AND IN so_sturu AND IN so_snedn .

FREE : tb_mkpf. SELECT * FROM mseg AS a INNER JOIN mkpf AS b ON b~mblnr = a~mblnr AND b~mjahr = a~mjahr INTO CORRESPONDING FIELDS OF TABLE tb_mkpf WHERE a~charg EQ tb_data-charg AND a~bwart EQ '101' AND a~aufnr NE space AND ( NOT EXISTS ( SELECT smbln FROM mseg AS c WHERE c~smbln = a~mblnr AND c~sjahr = a~mjahr AND c~smblp = a~zeile ) ). SORT tb_mkpf BY budat ASCENDING. READ TABLE tb_mkpf INDEX 1. tb_data-101tar = tb_mkpf-budat.

IF tb_data-101tar NOT IN s_101tar. DELETE tb_data. CONTINUE. ENDIF. CASE tb_data-mtart. WHEN 'ZKTK'. tx_boy = tb_data-lvboy . * * * * * IF tb_data-matkl EQ '33-02-002'. CONCATENATE 'Ktk' tb_data-dkalit 'A' tb_data-kesit 'X' tx_boy INTO tb_data-acikl SEPARATED BY space . ELSE. CONCATENATE tb_data-maktx tb_data-dkalit 'X' tx_boy INTO tb_data-acikl SEPARATED BY space . ENDIF. WHEN 'ZCBK'. tx_cap = tb_data-cap . tx_boy = tb_data-lvboy . CONCATENATE tb_data-maktx tb_data-dkalit tx_cap 'X' tx_boy INTO tb_data-acikl SEPARATED BY space . WHEN 'ZSLB'. tx_boy = tb_data-lvboy . tx_kal = tb_data-kalin . tx_gen = tb_data-genis . CONCATENATE tb_data-maktx tb_data-dkalit tx_kal 'X' tx_gen 'X' tx_boy INTO tb_data-acikl SEPARATED BY space . WHEN 'ZBLM'. tx_boy = tb_data-lvboy . tx_kal = tb_data-kalin . tx_gen = tb_data-genis . CONCATENATE tb_data-maktx tb_data-dkalit tx_kal 'X' tx_gen 'X' tx_boy INTO tb_data-acikl SEPARATED BY space . WHEN 'ZFLM'. tx_boy = tb_data-cap . CONCATENATE tb_data-maktx tb_data-dkalit tx_boy 'X' tx_boy INTO tb_data-acikl SEPARATED BY space . ENDCASE. SELECT SINGLE bezei FROM tvakt INTO tb_data-auartt WHERE spras EQ 'TR' AND auart EQ tb_data-auart . ****istenen retim tarih aral IF c_bekle EQ 'X'. READ TABLE order_cfgs_curefs_out WITH KEY sd_doc = tb_data-vbeln posex = tb_data-posnr . confix_id = order_cfgs_curefs_out-config_id. "isim ok uzun geldi! PERFORM konf_verisi USING tb_data-vbeln confix_id 'TSY_08060' CHANGING e_dec. tb_data-bslur_tar = e_dec. ***

MODIFY tb_data . PERFORM konf_verisi USING tb_data-vbeln confix_id 'TSY_08070' CHANGING e_dec. tb_data-btsur_tar = e_dec. ENDIF. *** MODIFY tb_data . ELSE. DELETE tb_data . ENDIF. ENDLOOP. PERFORM dokum_analiz_verileri. * Background job olarak schedulda altrlrsa tabloya stok verilerini yaz. IF sy-batch = 'X'. DELETE FROM zmm_t_stok_urun WHERE tarih = sy-datum. LOOP AT tb_data. CLEAR wa_data. MOVE-CORRESPONDING tb_data TO wa_data. wa_data-tarih = sy-datum. wa_data-zkyttm = sy-uzeit. wa_data-zkytus = sy-uname. MODIFY zmm_t_stok_urun FROM wa_data. ENDLOOP. LEAVE PROGRAM. ENDIF. IF c_bekle EQ 'X' OR c_ortgun EQ 'X'. LOOP AT tb_data. * IF tb_data-mtart = 'ZHRC' OR * tb_data-mtart = 'ZSLB'. IF tb_data-mtart tb_data-mtart tb_data-mtart tb_data-mtart FREE : tb_hrkt. P SELECT * FROM mseg AS a INNER JOIN mkpf AS b ON b~mblnr = a~mblnr AND b~mjahr = a~mjahr INTO CORRESPONDING FIELDS OF TABLE tb_hrkt WHERE a~charg EQ tb_data-charg AND a~matnr EQ tb_data-matnr AND ( a~bwart EQ '413' OR a~bwart EQ '414' ). SORT tb_hrkt BY mblnr DESCENDING. READ TABLE tb_hrkt INDEX 1. IF sy-subrc = 0. tb_data-son_hrkt = tb_hrkt-budat. ELSE. tb_data-son_hrkt = tb_data-101tar. = = = = 'ZHRC' OR 'ZSLB' OR 'ZKTK' OR 'ZCBK'. "O bobinin son hrkt trh. /ZYN

ENDIF. IF tb_data-son_hrkt NE 0. tb_data-gun_sss = sy-datum - tb_data-son_hrkt. ENDIF. IF tb_data-101tar NE 0. tb_data-gun_say = sy-datum - tb_data-101tar. ENDIF. MODIFY tb_data. ENDIF. ENDLOOP. IF c_bekle EQ 'X' OR c_ortgun EQ 'X'. PERFORM fiyat_bul. ENDIF. ENDIF. ENDFORM. " GET_DATA *&---------------------------------------------------------------------* *& Form LIST_DATA *&---------------------------------------------------------------------* FORM list_data . st_layout-zebra = 'X'. st_layout-colwidth_optimize = 'X'. st_layout-box_fieldname = 'SEL' . FREE: tb_fcat. PERFORM fcat_fill CHANGING tb_fcat. l_disvariant-report = 'ZMM_R_STOK_RAPORU'. l_disvariant-variant = p_var. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = 'ZMM_R_STOK_RAPORU' i_callback_top_of_page = 'ALV_TOP_OF_PAGE' i_callback_pf_status_set = 'SET_STAT' i_callback_user_command = 'USER_KOMUT' is_layout = st_layout it_fieldcat = tb_fcat i_save = 'A' * i_bypassing_buffer = 'X' * i_default = space is_variant = l_disvariant TABLES t_outtab = tb_data EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " LIST_DATA *--------------------------------------------------------FORM user_komut USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. CASE r_ucomm.

WHEN 'OZT'. PERFORM ozet_bilgi_goster . PERFORM list_data2 . WHEN 'SIPYARAT' . PERFORM f_siparis_yarat . ENDCASE. rs_selfield-refresh = 'X' . ENDFORM. "user_komut *&---------------------------------------------------------------------* FORM set_stat USING rt_extab TYPE slis_t_extab. SET PF-STATUS 'STANDARD_ALV'. ENDFORM. "f01_alv_event_pf_status_set

*&---------------------------------------------------------------------* *& Form KARAKT_DEGER *&---------------------------------------------------------------------* FORM f_karakt_deger USING p_krkad p_mtart p_matnr p_charg CHANGING p_value . DATA: i_objek LIKE inob-objek, lv_kalin TYPE zmm_s_stok-kalin, lv_genis TYPE zmm_s_stok-genis, lv_yuksek TYPE zmm_s_stok-yuksek, lv_boy TYPE zmm_s_stok-lvboy. CLEAR : lv_kalin, lv_boy, lv_genis, lv_yuksek . DATA : ls_zpp_t_krk TYPE zpp_t_krk . CLEAR ls_zpp_t_krk . READ TABLE gt_zpp_t_krk INTO ls_zpp_t_krk WITH KEY mtart = p_mtart krkad = p_krkad BINARY SEARCH . i_objek+0(18) = p_matnr. i_objek+18(10) = p_charg. CLEAR: ausp, cabn. CLEAR: inob, ausp. SELECT SINGLE cuobj INTO inob-cuobj FROM inob WHERE klart EQ '023' AND obtab EQ 'MCH1' AND objek EQ i_objek. SELECT SINGLE atinn atfor INTO (cabn-atinn, cabn-atfor) FROM cabn WHERE atnam EQ ls_zpp_t_krk-atnam . SELECT SINGLE * FROM ausp WHERE objek atinn mafid klart IF NOT sy-subrc IS INITIAL. EQ EQ EQ EQ inob-cuobj cabn-atinn 'O' '023' AND AND AND .

ELSE. CASE cabn-atfor. WHEN 'CHAR'. p_value = ausp-atwrt . WHEN OTHERS. IF p_krkad = 'KALIN' . p_value = lv_kalin = ausp-atflv. ELSEIF p_krkad = 'GNSLK' . p_value = lv_genis = ausp-atflv. ELSEIF p_krkad = 'UZNLK' . p_value = lv_boy = ausp-atflv. ELSEIF p_krkad = 'YUKSEK' . p_value = lv_yuksek = ausp-atflv. ELSE. p_value = ausp-atflv. ENDIF. ENDCASE. ENDIF. ENDFORM. "karakt_deger

*&---------------------------------------------------------------------* *& Form KARAKT_DEGER *&---------------------------------------------------------------------* FORM karakt_deger USING p_atnam p_value p_matnr p_charg. DATA: i_objek LIKE inob-objek, lv_kalin TYPE zmm_s_stok-kalin, lv_genis TYPE zmm_s_stok-genis, lv_yukseklik TYPE zmm_s_stok-yuksek, lv_boy TYPE zmm_s_stok-lvboy. CLEAR : lv_kalin, lv_boy, lv_genis. i_objek+0(18) = p_matnr. i_objek+18(10) = p_charg. CLEAR: ausp, cabn. CLEAR: inob, ausp. SELECT SINGLE cuobj INTO inob-cuobj FROM inob WHERE klart EQ '023' AND obtab EQ 'MCH1' AND objek EQ i_objek. SELECT SINGLE atinn atfor INTO (cabn-atinn, cabn-atfor) FROM cabn WHERE atnam EQ p_atnam. SELECT SINGLE * FROM ausp WHERE objek atinn mafid klart IF NOT sy-subrc IS INITIAL. ELSE. CASE cabn-atfor. WHEN 'CHAR'. p_value = ausp-atwrt . EQ EQ EQ EQ inob-cuobj cabn-atinn 'O' '023' AND AND AND .

WHEN OTHERS. IF p_atnam EQ 'CLK_00050' OR p_atnam EQ 'CLK_00055'. p_value = lv_kalin = ausp-atflv. ELSEIF p_atnam EQ 'CLK_00060' OR p_atnam EQ 'CLK_00065'. p_value = lv_genis = ausp-atflv. ELSEIF p_atnam EQ 'CLK_00060' OR p_atnam EQ 'CLK_00065'. p_value = lv_yukseklik = ausp-atflv. ELSEIF p_atnam EQ 'CLK_00070' OR p_atnam EQ 'CLK_00075'. p_value = lv_boy = ausp-atflv. ELSE. p_value = ausp-atflv. ENDIF. ENDCASE. ENDIF. ENDFORM. "karakt_deger *&---------------------------------------------------------------------* *& Form FCAT_FILL *&---------------------------------------------------------------------* FORM fcat_fill CHANGING ct_fcat TYPE slis_t_fieldcat_alv. DATA: ls_fcat TYPE slis_fieldcat_alv. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'ZMM_S_STOK2' i_client_never_display = 'X' CHANGING ct_fieldcat = ct_fcat EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. DEFINE text_change. clear ls_fcat. ls_fcat-seltext_l = &2. ls_fcat-seltext_m = ls_fcat-seltext_l. ls_fcat-seltext_s = &1. ls_fcat-reptext_ddic = ls_fcat-seltext_l. ls_fcat-ddictxt = 'M'. modify ct_fcat from ls_fcat transporting seltext_s seltext_m seltext_l reptext_ddic where fieldname = &3. END-OF-DEFINITION. text_change text_change text_change text_change text_change text_change text_change text_change 'Mt. Ad' 'Mteri Ad' 'NAME1'. 'Adet' 'Yaklak adet' 'ADET' . 'Sipari tr tanm' 'Sipari tr tanm' 'AUARTT'. 'Slab parti no' 'Slab parti no' 'SLABPARTI'. 'Kalnlk' 'Kalnlk' 'KALIN'. 'Genilik' 'Genilik' 'GENIS'. 'Ykseklik' 'Ykseklik' 'YUKSEK'. 'Boy' 'Boy' 'LVBOY'. 'STURU'.

text_change 'Sapma tr' 'Sapma tr'

text_change 'Sapma nedeni' 'Sapma nedeni' * text_change 'l.Kalnlk' 'l.Kalnlk' * text_change 'l.Genilik' 'l.Genilik' * text_change 'l.Boy' 'l.Boy' text_change text_change text_change text_change text_change text_change text_change 'OLCKLN'. 'OLCGNS'. 'OLCUZN'.

'SNEDEN'.

'Mal giri tarihi' 'Mal giri tarihi' '101TAR'. 'Stoktaki Gn' 'Stoktaki Gn' 'GUN_SAY'. 'st.rt.Bl.Trh.' 'st.rt.Bl.Trh.' 'BSLUR_TAR'. 'st.rt.Bt.Trh.' 'st.rt.Bt.Trh.' 'BTSUR_TAR'. 'Sip.Bal Gn' 'Sip.Bal Gn' 'GUN_SSS'. 'Sip.Balanma Trh' 'Sip.Balanma Trh' 'SON_HRKT'. 'Fiyat(USD)' 'Fiyat(USD)' 'DFIYAT'.

DATA : lv_tabix TYPE sy-tabix . LOOP AT ct_fcat INTO ls_fcat . lv_tabix = sy-tabix . IF ls_fcat-fieldname = 'SEL' . ls_fcat-no_out = 'X' . ENDIF . MODIFY ct_fcat FROM ls_fcat INDEX lv_tabix . ENDLOOP . ENDFORM. " fcat_fill *&---------------------------------------------------------------------* *& Form ALV_TOP_OF_PAGE *&---------------------------------------------------------------------* FORM alv_top_of_page . DATA : vi_str(250). CLEAR : st_header_line. FREE : tb_header. st_header_line-typ = 'H'. CASE 'X'. WHEN r_nostok . st_header_line-info = 'STOK RAPORU (Btn malzemeler)'. WHEN r_stok . st_header_line-info = 'STOK RAPORU (Stoktaki malzemeler)'. ENDCASE. APPEND st_header_line TO tb_header . * * * * * CLEAR: st_header_line. st_header_line-typ = 'S'. st_header_line-key = text-003 . WRITE p_mtart TO st_header_line-info. APPEND st_header_line TO tb_header . IF so_werks IS NOT INITIAL. CLEAR: st_header_line. st_header_line-typ = 'S'. st_header_line-key = text-004 . LOOP AT so_werks . IF so_werks-option EQ 'BT' . CONCATENATE so_werks-low so_werks-high INTO st_header_line-info SEPARATED BY ' - ' .

ELSEIF so_werks-option EQ 'EQ' . CONCATENATE st_header_line-info so_werks-low INTO st_header_line-info SEPARATED BY space . IF sy-tabix EQ 5. CONCATENATE st_header_line-info '...' INTO st_header_line-info . EXIT . ENDIF. ENDIF. ENDLOOP . APPEND st_header_line TO tb_header . ENDIF . IF so_lgort IS NOT INITIAL. CLEAR: st_header_line. st_header_line-typ = 'S'. st_header_line-key = text-005 . LOOP AT so_lgort . IF so_lgort-option EQ 'BT' . CONCATENATE so_lgort-low so_lgort-high INTO st_header_line-info SEPARATED BY ' - ' . ELSEIF so_lgort-option EQ 'EQ' . CONCATENATE st_header_line-info so_lgort-low INTO st_header_line-info SEPARATED BY space . IF sy-tabix EQ 5. CONCATENATE st_header_line-info '...' INTO st_header_line-info . EXIT . ENDIF. ENDIF. ENDLOOP . APPEND st_header_line TO tb_header . ENDIF . IF so_charg IS NOT INITIAL. CLEAR: st_header_line. st_header_line-typ = 'S'. st_header_line-key = text-006 . LOOP AT so_charg . IF so_charg-option EQ 'BT' . CONCATENATE so_charg-low so_charg-high INTO st_header_line-info SEPARATED BY ' - ' . ELSEIF so_charg-option EQ 'EQ' . CONCATENATE so_charg-low st_header_line-info INTO st_header_line-info SEPARATED BY space . IF sy-tabix EQ 5. CONCATENATE st_header_line-info '...' INTO st_header_line-info . EXIT . ENDIF. ENDIF. ENDLOOP . APPEND st_header_line TO tb_header . ENDIF. IF so_matnr IS NOT INITIAL. CLEAR: st_header_line. st_header_line-typ = 'S'. st_header_line-key = text-007 . LOOP AT so_matnr . IF so_matnr-option EQ 'BT' . CONCATENATE so_matnr-low so_matnr-high INTO st_header_line-info SEPARATED BY ' - ' . ELSEIF so_matnr-option EQ 'EQ' . CONCATENATE so_matnr-low st_header_line-info INTO st_header_line-info SEPARATED BY space .

IF sy-tabix EQ 5. CONCATENATE st_header_line-info '...' INTO st_header_line-info . EXIT . ENDIF. ENDIF. ENDLOOP . APPEND st_header_line TO tb_header . ENDIF. IF so_mtart IS NOT INITIAL. CLEAR: st_header_line. st_header_line-typ = 'S'. st_header_line-key = text-007 . LOOP AT so_mtart . IF so_mtart-option EQ 'BT' . CONCATENATE so_mtart-low so_mtart-high INTO st_header_line-info SEPARATED BY ' - ' . ELSEIF so_mtart-option EQ 'EQ' . CONCATENATE so_mtart-low st_header_line-info INTO st_header_line-info SEPARATED BY space . IF sy-tabix EQ 5. CONCATENATE st_header_line-info '...' INTO st_header_line-info . EXIT . ENDIF. ENDIF. ENDLOOP . APPEND st_header_line TO tb_header . ENDIF. IF so_kunnr IS NOT INITIAL. CLEAR: st_header_line. st_header_line-typ = 'S'. st_header_line-key = text-008 . LOOP AT so_kunnr . IF so_kunnr-option EQ 'BT' . CONCATENATE so_kunnr-low so_kunnr-high INTO st_header_line-info SEPARATED BY ' - ' . ELSEIF so_kunnr-option EQ 'EQ' . CONCATENATE so_kunnr-low st_header_line-info INTO st_header_line-info SEPARATED BY space . IF sy-tabix EQ 5. CONCATENATE st_header_line-info '...' INTO st_header_line-info . EXIT . ENDIF. ENDIF. ENDLOOP . APPEND st_header_line TO tb_header . ENDIF. IF so_auart IS NOT INITIAL. CLEAR: st_header_line. st_header_line-typ = 'S'. st_header_line-key = text-009 . LOOP AT so_auart . IF so_auart-option EQ 'BT' . CONCATENATE so_auart-low so_auart-high INTO st_header_line-info SEPARATED BY ' - ' . ELSEIF so_auart-option EQ 'EQ' . CONCATENATE so_auart-low st_header_line-info INTO st_header_line-info SEPARATED BY space . IF sy-tabix EQ 5. CONCATENATE st_header_line-info '...' INTO st_header_line-info . EXIT .

ENDIF. ENDIF. ENDLOOP . APPEND st_header_line TO tb_header . ENDIF. CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = tb_header i_logo = 'ENJOYSAP_LOGO'. ENDFORM . "ALV_TOP_OF_PAGE *&---------------------------------------------------------------------* *& Form F4_FOR_VARIANT *&---------------------------------------------------------------------* FORM f4_for_variant . CLEAR: l_disvariant. l_disvariant-report = 'ZMM_R_STOK_RAPORU'. CALL FUNCTION 'REUSE_ALV_VARIANT_F4' EXPORTING is_variant = l_disvariant IMPORTING es_variant = l_disvariant EXCEPTIONS not_found = 2. IF sy-subrc = 2. MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. p_var = l_disvariant-variant. ENDIF. ENDFORM. " F4_FOR_VARIANT *&---------------------------------------------------------------------* *& Form CMNO_GETIR *&---------------------------------------------------------------------* FORM cmno_getir USING p_vbeln p_posnr CHANGING p_cmno p_cmkl. SELECT SINGLE vbelv posnv FROM vbfa INTO (p_cmno, p_cmkl) WHERE vbeln = p_vbeln AND posnn = p_posnr AND vbtyp_n = 'C' AND vbtyp_v = 'G' . ENDFORM. " CMNO_GETIR *&---------------------------------------------------------------------* FORM dokum_analiz_verileri . * HRC ve SLAB larn dkm nolarna ait kimyasal analiz verileri. FREE: tb_dokum. LOOP AT tb_data WHERE mtart = 'ZSLB' OR mtart = 'ZHRC'. tb_dokum-dokum = tb_data-dokum. COLLECT tb_dokum. ENDLOOP.

LOOP AT tb_dokum. CLEAR: tb_data-si, tb_data-c, tb_data-mn, tb_data-cu. SELECT * FROM zpp_t_kimyasal WHERE dokum_kodu = tb_dokum-dokum ORDER BY dokum_kodu DESCENDING yil DESCENDING ay DESCENDING gun DESCENDING spek_saat DESCENDING spek_dk DESCENDING sira DESCE NDING. tb_data-si = zpp_t_kimyasal-si. tb_data-c = zpp_t_kimyasal-c . tb_data-mn = zpp_t_kimyasal-mn. tb_data-cu = zpp_t_kimyasal-cu. EXIT. ENDSELECT. IF sy-subrc = 0. MODIFY tb_data FROM tb_data TRANSPORTING si c mn cu WHERE dokum = tb_dokum-dokum. ENDIF. ENDLOOP. ENDFORM. " DOKUM_ANALIZ_VERILERI *&---------------------------------------------------------------------* FORM ozet_bilgi_goster . REFRESH tb_ozet. LOOP AT tb_data WHERE matnr = 'SLAB' OR matnr = 'HRC'. LOOP AT tb_ozet WHERE matnr = tb_data-matnr AND dkali = tb_data-dkali AND kalin = tb_data-kalin AND genis = tb_data-genis AND yuksek = tb_data-yuksek AND lvboy = tb_data-lvboy. ADD tb_data-labst TO tb_ozet-labst. ADD 1 TO tb_ozet-adet. MODIFY tb_ozet. ENDLOOP. IF sy-subrc NE 0. MOVE-CORRESPONDING tb_data TO tb_ozet. tb_ozet-adet = 1. APPEND tb_ozet. ENDIF. ENDLOOP. ENDFORM. " OZET_BILGI_GOSTER *&---------------------------------------------------------------------* FORM list_data2 . st_layout-zebra st_layout-colwidth_optimize FREE: tb_fcat. = 'X'. = 'X'.

PERFORM fcat_fill2 CHANGING tb_fcat. l_disvariant-report = 'ZMM_R_STOK_RAPORU'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = 'ZMM_R_STOK_RAPORU' i_callback_top_of_page = 'ALV_TOP_OF_PAGE' is_layout = st_layout it_fieldcat = tb_fcat TABLES t_outtab = tb_ozet EXCEPTIONS

program_error = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " LIST_DATA2 *&---------------------------------------------------------------------* FORM fcat_fill2 CHANGING ct_fcat TYPE slis_t_fieldcat_alv. DATA: ls_fcat TYPE slis_fieldcat_alv. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'ZMM_S_STOK_OZET' i_client_never_display = 'X' CHANGING ct_fieldcat = ct_fcat EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. * define text_change. * clear ls_fcat. * ls_fcat-seltext_l = &2. * ls_fcat-seltext_m = ls_fcat-seltext_l. * ls_fcat-seltext_s = &1. * ls_fcat-reptext_ddic = ls_fcat-seltext_l. * ls_fcat-ddictxt = 'M'. * modify ct_fcat from ls_fcat * transporting seltext_s seltext_m seltext_l reptext_ddic * where fieldname = &3. * end-of-definition. text_change 'Kalnlk' 'Kalnlk' 'KALIN'. text_change 'Genilik' 'Genilik' 'GENIS'. text_change 'Ykseklik' 'Ykseklik' 'YUKSEK'. text_change 'Boy' 'Boy' 'LVBOY'. text_change 'Adet' 'Adet' 'ADET'. ENDFORM. " FCAT_FILL2 *----------------------------------------------------------------------* FORM konf_verisi USING p_tb_data_vbeln p_confix_id p_charc CHANGING p_e_dec. CLEAR order_cfgs_cuvals_out . READ TABLE order_cfgs_cuvals_out WITH KEY sd_doc = p_tb_data_vbeln config_id = p_confix_id charc = p_charc. CLEAR : i_float, e_dec.

CONCATENATE order_cfgs_cuvals_out-value+0(1) order_cfgs_cuvals_out-value+2(8) INTO i_float. p_e_dec = i_float. ENDFORM. " KONF_VERISI *&---------------------------------------------------------------------* FORM must_ortgun . "mteri ort.gn DATA: kunnrx LIKE kna1-kunnr. SORT tb_data BY kunnr. LOOP AT tb_data. *** READ TABLE tb_kunnr WITH KEY kunnr = tb_data-kunnr BINARY SEARCH. IF tb_data-kunnr+0(1) EQ 'U' OR tb_data-kunnr+0(1) EQ 'E'. CONCATENATE '0000' tb_data-kunnr+1(6) INTO kunnrx. tb_data-kunnr = kunnrx. MODIFY tb_data. ENDIF. *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** if sy-subrc ne 0. append tb_kunnr. CONCATENATE 'U' TB_kunnr-KUNNR+4(6) INTO kunnrx. READ TABLE tb_kunnr WITH KEY kunnr = kunnrx BINARY SEARCH. tb_kunnr-kunnr = kunnrx. if sy-subrc ne 0. append tb_kunnr. else . tb_kunnr-kunnr = kunnrx. modify tb_kunnr. endif. CONCATENATE 'E' TB_data-KUNNR+4(6) INTO kunnrx. READ TABLE tb_kunnr WITH KEY kunnr = kunnrx BINARY SEARCH. tb_kunnr-kunnr = kunnrx. if sy-subrc ne 0. append tb_kunnr. else . tb_kunnr-kunnr = kunnrx. modify tb_kunnr. endif. endif.

ENDLOOP. SORT tb_data BY kunnr. LOOP AT tb_data. IF tb_data-kunnr EQ space. tb_data-kunnr = 'SERBEST STOK'. ENDIF. IF tb_data-kunnr NE kunnrx. tb_ortgun-kunnr = kunnrx. tb_ortgun-name1 = name1x. tb_ortgun-gun_ort = gv_top2 / tb_ortgun-topmik. tb_ortgun-ort_fiyat = gv_topf2 / tb_ortgun-topmik. * IF tb_ortgun-gun_ort NE 0. IF kunnrx NE space. tb_ortgun-kdvli_tut = tb_ortgun-topmik * tb_ortgun-ort_fiyat.

tb_ortgun-kdvli_tut = tb_ortgun-kdvli_tut * '1.18'. APPEND tb_ortgun. * ENDIF. ENDIF. CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR ENDIF. gv_top1. gv_top2. gv_topf1. gv_topf2. tb_ortgun-topmik. tb_ortgun-kdvli_tut.

kunnrx = tb_data-kunnr. name1x = tb_data-name1. gv_top1 = tb_data-labst * tb_data-gun_sss. ADD gv_top1 TO gv_top2. gv_topf1 = tb_data-labst * tb_data-dfiyat. ADD gv_topf1 TO gv_topf2. ADD tb_data-labst TO tb_ortgun-topmik. ENDLOOP. IF gv_top2 NE 0. tb_ortgun-kunnr tb_ortgun-name1 tb_ortgun-gun_ort tb_ortgun-ort_fiyat "A.ORT.STOKTAK GN "A.oRT. USD FYATI

= = = =

kunnrx. name1x. gv_top2 / tb_ortgun-topmik. gv_topf2 / tb_ortgun-topmik.

IF tb_ortgun-gun_ort NE 0 AND kunnrx NE space. tb_ortgun-kdvli_tut = tb_ortgun-topmik * tb_ortgun-ort_fiyat. tb_ortgun-kdvli_tut = ( tb_ortgun-kdvli_tut * 118 ) / 100. APPEND tb_ortgun. ENDIF. CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR ENDIF. gv_top1. gv_top2. gv_topf1. gv_topf2. tb_ortgun-topmik. tb_ortgun-kdvli_tut.

ENDFORM. " MUST_ORTGUN *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* FORM list_ortgun . st_layout-zebra st_layout-colwidth_optimize FREE: tb_fcat. = 'X'. = 'X'.

PERFORM fcat_fill3 CHANGING tb_fcat. l_disvariant-report = 'ZMM_R_STOK_RAPORU'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = 'ZMM_R_STOK_RAPORU' i_callback_top_of_page = 'ALV_TOP_OF_PAGE' is_layout = st_layout it_fieldcat = tb_fcat i_save = 'A' TABLES t_outtab = tb_ortgun EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " LIST_DATA2 *&---------------------------------------------------------------------* FORM fcat_fill3 CHANGING ct_fcat TYPE slis_t_fieldcat_alv. DATA: ls_fcat TYPE slis_fieldcat_alv. CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'ZMM_S_ORTGUN' i_client_never_display = 'X' CHANGING ct_fieldcat = ct_fcat EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. DEFINE text_change. clear ls_fcat. ls_fcat-seltext_l = &2. ls_fcat-seltext_m = ls_fcat-seltext_l. ls_fcat-seltext_s = &1. ls_fcat-reptext_ddic = ls_fcat-seltext_l. ls_fcat-ddictxt = 'M'. modify ct_fcat from ls_fcat transporting seltext_s seltext_m seltext_l reptext_ddic where fieldname = &3. END-OF-DEFINITION. text_change text_change text_change text_change text_change text_change text_change 'Mteri Hsp' 'Mteri Hsp' 'Mteri Ad' 'Mteri Ad' 'Stok Miktar' 'Stok Miktar' 'Stk.Gn(A.Ort.)' 'Stk.Gn(A.Ort.)' 'USD Fiyat(A.Ort)' 'USD Fiyat(A.Ort)' 'KDV L TUTAR' 'KDV L TUTAR' 'CAR HES.BAKYES' 'CAR HES.BAKYES' 'KUNNR'. 'NAME1'. 'TOPMIK'. 'GUN_ORT'. 'ORT_FIYAT'. 'KDVLI_TUT'. 'CARI_BKY'.

ENDFORM. " FCAT_FILL2 *----------------------------------------------------------------------* FORM fiyat_bul.

LOOP AT tb_data. * Birim fiyat deeri bulunuyor CLEAR vbak. SELECT SINGLE * FROM vbak WHERE vbeln EQ tb_data-vbeln. IF sy-subrc NE 0. CONTINUE. ENDIF. tb_data-bukrs_vf tb_data-waerk tb_data-vkorg tb_data-vtweg tb_data-knumv tb_data-audat = = = = = = vbak-bukrs_vf. vbak-waerk. vbak-vkorg. vbak-vtweg. vbak-knumv. vbak-audat. t001 bukrs EQ tb_data-bukrs_vf. vbkd vbeln EQ tb_data-vbeln posnr EQ '0'.

CLEAR t001. SELECT SINGLE * FROM WHERE CLEAR vbkd. SELECT SINGLE * FROM WHERE AND

tb_data-kursk = vbkd-kursk. IF tb_data-waerk EQ t001-waers. PERFORM convert_to_local_currency. ENDIF. CLEAR konv. IF tb_data-vkorg EQ '1000' AND tb_data-vtweg EQ '10' . SELECT SINGLE * FROM konv WHERE AND AND AND knumv kposn kschl kinak EQ EQ EQ EQ tb_data-knumv tb_data-posnr 'Z001' space.

IF sy-subrc <> 0. SELECT SINGLE * FROM konv WHERE knumv AND kposn AND kschl AND kinak ENDIF.

EQ EQ EQ EQ

tb_data-knumv tb_data-posnr 'Z014' space.

ELSEIF tb_data-vkorg EQ '1100' AND tb_data-vtweg EQ '20' . SELECT SINGLE * FROM konv WHERE AND AND AND knumv kposn kschl kinak EQ EQ EQ EQ tb_data-knumv tb_data-posnr 'Z004' space.

IF sy-subrc <> 0. " kayt bulursa 0 SELECT SINGLE * FROM konv WHERE knumv EQ tb_data-knumv

AND kposn EQ tb_data-posnr AND kschl EQ 'Z014' AND kinak EQ space. ENDIF. SELECT SINGLE * FROM *konv WHERE knumv EQ tb_data-knumv AND kposn EQ tb_data-posnr AND kschl EQ 'Z006'. ENDIF. IF ( konv-kmein EQ 'KG' AND konv-kpein EQ '1000' ) OR ( konv-kmein EQ 'TO' AND konv-kpein EQ '1' tb_data-sfiyat = konv-kbetr. ELSEIF konv-kmein EQ 'KG' AND konv-kpein EQ '1'. tb_data-sfiyat = konv-kbetr * 1000. ELSE. tb_data-sfiyat = konv-kbetr / konv-kpein. ENDIF. CLEAR t001. SELECT SINGLE * FROM t001 WHERE bukrs EQ tb_data-bukrs_vf. IF konv-waers NE t001-waers . tb_data-dfiyat = tb_data-sfiyat. tb_data-dwaers = konv-waers. tb_data-sfiyat = tb_data-sfiyat * tb_data-kursk . ELSEIF konv-waers EQ t001-waers . IF tb_data-kursk NE 0. tb_data-dfiyat = tb_data-sfiyat / tb_data-kursk . tb_data-dwaers = konv-waers. ENDIF. ENDIF. * fob fiyat iin IF ( *konv-kmein EQ 'KG' AND *konv-kpein EQ '1000' ) OR ( *konv-kmein EQ 'TO' AND *konv-kpein EQ '1' tb_data-sfiyatfob = *konv-kbetr. ELSEIF *konv-kmein EQ 'KG' AND *konv-kpein EQ '1'. tb_data-sfiyatfob = *konv-kbetr * 1000. ELSE. tb_data-sfiyatfob = *konv-kbetr / *konv-kpein. ENDIF. CLEAR t001. SELECT SINGLE * FROM t001 WHERE bukrs EQ tb_data-bukrs_vf. IF *konv-waers NE t001-waers . tb_data-dfiyatfob = tb_data-sfiyatfob. tb_data-dwaersfob = *konv-waers. tb_data-sfiyatfob = tb_data-sfiyatfob * tb_data-kursk . ELSEIF *konv-waers EQ t001-waers . ).

).

IF tb_data-kursk NE 0. tb_data-dfiyatfob = tb_data-sfiyatfob / tb_data-kursk . tb_data-dwaersfob = *konv-waers. ENDIF. ENDIF. MODIFY tb_data. ENDLOOP. ENDFORM. " GET_DATA *&---------------------------------------------------------------------* FORM convert_to_local_currency . **** vbak-kurst = 'B'. <<<<<<<<<< CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = tb_data-audat foreign_amount = 1 foreign_currency = 'USD' local_currency = t001-waers type_of_rate = vbak-kurst "<<<<<<<<<<<<!!!!!1 IMPORTING exchange_rate = tb_data-kursk EXCEPTIONS no_rate_found = 1 overflow = 2 no_factors_found = 3 no_spread_found = 4 derived_2_times = 5 OTHERS = 6. IF sy-subrc <> 0. tb_data-kursk = 0. ENDIF. IF tb_data-kursk LE 0. tb_data-kursk = -1 * tb_data-kursk. ENDIF. ENDFORM. **** FORM select_data . SELECT kna1~kunnr kna1~name1 FROM knb1 INNER JOIN kna1 ON kna1~kunnr = knb1~kunnr INTO TABLE tb_kna1 WHERE knb1~bukrs = '1000' "so_werks AND knb1~kunnr IN so_kunnr. IF sy-subrc <> 0. MESSAGE s002(zfi_k_001). STOP. ENDIF. SELECT bsid~kunnr bsid~zfbdt bsid~dmbtr bkpf~hwae3 FROM bsid INNER bsid~belnr bsid~gjahr bsid~buzei bsid~budat bsid~sgtxt bsid~shkzg bsid~wrbtr bsid~waers bkpf~hwaer bsid~dmbe2 bkpf~hwae2 bsid~dmbe3 bsid~zbd1t bsid~umskz JOIN bkpf ON bkpf~bukrs = bsid~bukrs AND bkpf~belnr = bsid~belnr AND bkpf~gjahr = bsid~gjahr INTO CORRESPONDING FIELDS OF TABLE tb_bak " CONVERT_TO_LOCAL_CURRENCY

FOR ALL ENTRIES IN tb_kna1 WHERE bsid~bukrs IN so_werks AND bsid~kunnr = tb_kna1-kunnr AND ( bsid~umskz = space OR bsid~umskz = 'E' OR bsid~umskz = 'W' OR bsid~umskz = 'U' OR bsid~umskz = '1' OR bsid~umskz = '4' OR bsid~umskz = '6' OR bsid~umskz = '8' OR bsid~umskz = '<' ). tb_bak-umskz = space.

"va_bukrs

MODIFY tb_bak FROM tb_bak TRANSPORTING umskz WHERE umskz = '<'. LOOP AT tb_bak. IF tb_bak-kunnr+0(1) = 'U' OR "DVZ HESAPLARI tb_bak-kunnr+0(1) = 'E'. tb_bak-rp_tutar = tb_bak-wrbtr. ELSE. tb_bak-rp_tutar = tb_bak-dmbtr. ENDIF. IF tb_bak-shkzg = 'H'. tb_bak-wrbtr = tb_bak-wrbtr * -1. tb_bak-dmbtr = tb_bak-dmbtr * -1. tb_bak-dmbe2 = tb_bak-dmbe2 * -1. tb_bak-dmbe3 = tb_bak-dmbe3 * -1. ENDIF. ADD tb_bak-zbd1t TO tb_bak-zfbdt. IF tb_bak-umskz = space. MODIFY tb_bak. ELSEIF tb_bak-umskz BETWEEN '1' AND '8'. tb_tem = tb_bak. APPEND tb_tem. DELETE tb_bak. ELSEIF tb_bak-umskz BETWEEN 'A' AND 'Z'. tb_cek = tb_bak. APPEND tb_cek. DELETE tb_bak. ENDIF. ENDLOOP. SORT tb_bak BY kunnr zfbdt. tb_alc[] = tb_bak[]. DELETE tb_alc WHERE shkzg = 'S'. DELETE tb_bak WHERE shkzg = 'H'. PERFORM borc_alacak_ele. LOOP AT tb_tem. tb_tem-wrbtr tb_tem-dmbtr tb_tem-dmbe2 tb_tem-dmbe3 = = = = tb_tem-wrbtr tb_tem-dmbtr tb_tem-dmbe2 tb_tem-dmbe3 * * * * -1. -1. -1. -1.

PERFORM convtoloccurr USING tb_tem-budat tb_tem-wrbtr tb_tem-waers tb_tem-rp_tutar tb_tem-shkzg.

tb_tem-rp_tutar = tb_tem-rp_tutar * -1. MODIFY tb_tem. ENDLOOP. LOOP AT tb_cek. PERFORM convtoloccurr USING tb_cek-budat tb_cek-wrbtr tb_cek-waers tb_cek-rp_tutar tb_cek-shkzg. MODIFY tb_cek. ENDLOOP. ENDFORM. " SELECT_DATA *&---------------------------------------------------------------------* *& Form borc_alacak_ele *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM borc_alacak_ele . DATA : i_orj LIKE bseg-dmbtr. LOOP AT tb_alc. LOOP AT tb_bak WHERE kunnr = tb_alc-kunnr. IF tb_alc-rp_tutar > tb_bak-rp_tutar. tb_alc-rp_tutar = tb_alc-rp_tutar - tb_bak-rp_tutar. DELETE tb_bak. CONTINUE. ELSE. tb_bak-rp_tutar = tb_bak-rp_tutar - tb_alc-rp_tutar. tb_alc-rp_tutar = 0. IF tb_bak-rp_tutar = 0. DELETE tb_bak. ELSE. MODIFY tb_bak. ENDIF. EXIT. ENDIF. ENDLOOP. IF tb_alc-rp_tutar = 0. DELETE tb_alc. ELSE. MODIFY tb_alc. ENDIF. ENDLOOP. LOOP AT tb_alc. MOVE-CORRESPONDING tb_alc TO tb_bak. APPEND tb_bak. ENDLOOP. LOOP AT tb_bak. IF tb_bak-kunnr+0(1) = 'U' OR tb_bak-kunnr+0(1) = 'E'. i_orj = ABS( tb_bak-wrbtr ). ELSE. i_orj = ABS( tb_bak-dmbtr ). ENDIF. tb_bak-wrbtr = tb_bak-wrbtr * tb_bak-rp_tutar / i_orj. tb_bak-dmbtr = tb_bak-dmbtr * tb_bak-rp_tutar / i_orj. tb_bak-dmbe2 = tb_bak-dmbe2 * tb_bak-rp_tutar / i_orj.

tb_bak-dmbe3 = tb_bak-dmbe3 * tb_bak-rp_tutar / i_orj. PERFORM convtoloccurr USING tb_bak-budat tb_bak-wrbtr tb_bak-waers tb_bak-rp_tutar tb_bak-shkzg. IF tb_bak-shkzg = 'H'. tb_bak-rp_tutar = tb_bak-rp_tutar * -1. ENDIF. MODIFY tb_bak. ENDLOOP.

ENDFORM. " BORC_ALACAK_ELE *----------------------------------------------------------------------* FORM convtoloccurr USING p_budat p_wrbtr p_waers p_tutar p_shkzg. DATA i_date LIKE sy-datum. * IF vr_keydt = 'X'. i_date = sy-datum. * ELSE. * i_date = p_budat. * ENDIF. "!!!!!!!!!!!!!

CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = i_date foreign_amount = p_wrbtr foreign_currency = p_waers local_currency = 'USD' type_of_rate = 'B' IMPORTING local_amount = p_tutar. IF p_shkzg = 'H'. p_tutar = p_tutar * -1. ENDIF. ENDFORM. " CONVTOLOCCURR *&---------------------------------------------------------------------* FORM prepare_report_fi . DATA : i_bg(16) TYPE p DECIMALS 2, i_gg(16) TYPE p DECIMALS 2, i_iv(16) TYPE p DECIMALS 2, i_in LIKE sy-tabix. SORT : tb_bak, tb_tem, tb_cek, tb_ortgun. LOOP AT tb_bak. AT NEW kunnr. READ TABLE tb_kna1 WITH KEY kunnr = tb_bak-kunnr BINARY SEARCH. CLEAR : tb_list, i_bg, i_gg, i_iv. tb_list-kunnr = tb_kna1-kunnr.

* *

tb_list-kunnr = tb_ortgun-kunnr. tb_list-name1 = tb_ortgun-name1. tb_list-waers = 'USD'. ENDAT. IF tb_bak-zfbdt IS INITIAL. tb_bak-zfbdt = tb_bak-budat. ENDIF. i_bg = i_bg + ( tb_bak-rp_tutar * ( sy-datum - tb_bak-zfbdt ) ). ADD tb_bak-rp_tutar TO tb_list-bakiy. IF tb_bak-zfbdt LE sy-datum. i_gg = i_gg + ( tb_bak-rp_tutar * ( sy-datum - tb_bak-zfbdt ) ). ADD tb_bak-rp_tutar TO tb_list-gcbak. ELSE. i_iv = i_iv + ( tb_bak-rp_tutar * ( sy-datum - tb_bak-zfbdt ) ). ADD tb_bak-rp_tutar TO tb_list-ivbak. ENDIF. AT END OF kunnr. tb_list-bakog = i_bg / tb_list-bakiy. tb_list-gcbog = i_gg / tb_list-gcbak. tb_list-ivbog = i_iv / tb_list-ivbak. APPEND tb_list. ENDAT. ENDLOOP. LOOP AT tb_tem. AT NEW kunnr. CLEAR tb_list. READ TABLE tb_kna1 WITH KEY kunnr = tb_tem-kunnr BINARY SEARCH. READ TABLE tb_list WITH KEY kunnr = tb_tem-kunnr BINARY SEARCH. IF sy-subrc = 0. i_in = sy-tabix. ELSE. CLEAR i_in. ENDIF. ENDAT. ADD tb_tem-rp_tutar TO tb_list-temnt.

AT END OF kunnr. IF i_in NE 0. MODIFY tb_list INDEX i_in. ELSE. tb_list-kunnr = tb_kna1-kunnr. * tb_list-kunnr = tb_ortgun-kunnr. * tb_list-name1 = tb_ortgun-name1. tb_list-waers = 'USD'. "va_waers. APPEND tb_list. SORT tb_list. ENDIF. ENDAT. ENDLOOP. ENDFORM. " PREPARE_REPORT_FI *----------------------------------------------------------------------* FORM bakiye_getir .

DATA: kunnrx LIKE kna1-kunnr. DELETE tb_ortgun WHERE topmik EQ 0. LOOP AT tb_ortgun. READ TABLE tb_list WITH KEY kunnr = tb_ortgun-kunnr BINARY SEARCH. IF sy-subrc EQ 0. ADD tb_list-bakiy TO tb_ortgun-cari_bky. ENDIF. CONCATENATE 'U' tb_ortgun-kunnr+4(6) INTO kunnrx. READ TABLE tb_list WITH KEY kunnr = kunnrx BINARY SEARCH. IF sy-subrc EQ 0. ADD tb_list-bakiy TO tb_ortgun-cari_bky. ENDIF. CONCATENATE 'E' tb_ortgun-kunnr+4(6) INTO kunnrx. READ TABLE tb_list WITH KEY kunnr = kunnrx BINARY SEARCH. IF sy-subrc EQ 0. ADD tb_list-bakiy TO tb_ortgun-cari_bky. ENDIF. MODIFY tb_ortgun. ENDLOOP. ENDFORM.

" BAKIYE_GETIR

*&---------------------------------------------------------------------* *& Form F_SIPARIS_YARAT *&---------------------------------------------------------------------* FORM f_siparis_yarat . REFRESH gt_satisp . CLEAR gs_satisp . LOOP AT tb_data WHERE sel = 'X' . MOVE-CORRESPONDING tb_data TO gs_satisp . gs_satisp-vrkme = tb_data-meins . gs_satisp-vrkme_adt = 'ST' . APPEND gs_satisp TO gt_satisp . ENDLOOP . DATA : lt_mska TYPE TABLE OF mska , ls_mska TYPE mska . IF NOT gt_satisp[] IS INITIAL . SELECT * INTO TABLE lt_mska FROM mska FOR ALL ENTRIES IN gt_satisp WHERE matnr = gt_satisp-matnr AND werks = gt_satisp-werks AND lgort = gt_satisp-lgort AND charg = gt_satisp-charg AND sobkz = 'E' AND vbeln = gt_satisp-vbeln AND posnr = gt_satisp-posnr . ENDIF . DATA : lv_tabix TYPE sy-tabix . LOOP AT gt_satisp INTO gs_satisp .

lv_tabix = sy-tabix . CLEAR ls_mska . READ TABLE lt_mska WITH KEY matnr = werks = lgort = charg = sobkz = vbeln = posnr = INTO ls_mska gs_satisp-matnr gs_satisp-werks gs_satisp-lgort gs_satisp-charg 'E' gs_satisp-vbeln gs_satisp-posnr .

gs_satisp-labst = ls_mska-kalab . MODIFY gt_satisp FROM gs_satisp INDEX lv_tabix TRANSPORTING labst . ENDLOOP . CLEAR gs_satisk . * * * * * * * * gs_satisk-auart gs_satisk-vkorg gs_satisk-vtweg gs_satisk-spart gs_satisk-kunag gs_satisk-kunwe gs_satisk-zterm gs_satisk-inco1 CALL SCREEN 100. ENDFORM. " F_SIPARIS_YARAT = = = = = = = = 'Z405' . '1000' . '10' . '10' . '1000001' . '1000001' . '0001' . 'CIF' .

*&---------------------------------------------------------------------* *& Form F_KAYDET *&---------------------------------------------------------------------* FORM f_kaydet . DATA : ls_order_header_in ls_order_header ls_order_header_inx lv_vbeln lt_return lt_order_items_in lt_order_items_inx lt_order_partners lt_order_schedules_in lt_order_schedules_inx lt_order_conditions_in lt_order_conditions_inx lt_order_cfgs_value lt_order_cfgs_ref lt_order_cfgs_inst lt_order_cfgs_refinst LIKE LIKE LIKE LIKE LIKE LIKE LIKE LIKE LIKE LIKE LIKE LIKE LIKE LIKE LIKE LIKE bapisdhd1, bapisdhead , bapisdhd1x, bapivbeln-vbeln, bapiret2 OCCURS bapisditm OCCURS bapisditmx OCCURS bapiparnr OCCURS bapischdl OCCURS bapischdlx OCCURS bapicond OCCURS bapicondx OCCURS bapicuval OCCURS bapicucfg OCCURS bapicuins OCCURS bapicuref OCCURS

0 0 0 0 0 0 0 0 0 0 0 0

WITH WITH WITH WITH WITH WITH WITH WITH WITH WITH WITH WITH

HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER HEADER

LINE, LINE, LINE, LINE, LINE, LINE, LINE, LINE, LINE, LINE, LINE, LINE.

DATA: lt_messtab TYPE esp1_message_wa_type OCCURS 0 WITH HEADER LINE. DATA : lv_item_no LIKE bapisditm-itm_number , lv_config_id LIKE bapisditm-itm_number , lv_root_id LIKE bapisditm-itm_number .

DATA: ls_goodsmvt_header LIKE bapi2017_gm_head_01 , lv_goodsmvt_code LIKE bapi2017_gm_code , lv_mat_doc TYPE bapi2017_gm_head_ret-mat_doc , lv_doc_year TYPE bapi2017_gm_head_ret-doc_year , lt_goodsmvt_item LIKE bapi2017_gm_item_create OCCURS 0 WITH HEADER LINE , lt_return2 LIKE bapiret2 OCCURS 0 WITH HEADER LINE . CLEAR lv_vbeln . * lv_config_id = '000010'. lv_root_id = '00000001'. * DATA : lv_config_id LIKE bapicucfg-config_id . CLEAR : ls_order_header_in, ls_order_header_inx, lt_order_items_in, lt_order_items_inx, lt_order_partners, lt_order_schedules_in, lt_order_schedules_inx, lt_order_conditions_in, lt_order_conditions_inx , lt_order_cfgs_ref, lt_order_cfgs_value, lt_order_cfgs_inst, lt_order_cfgs_refinst . REFRESH : lt_order_items_in, lt_order_items_inx, lt_order_partners, lt_order_schedules_in, lt_order_schedules_inx, lt_order_conditions_in, lt_order_conditions_inx , lt_order_cfgs_ref, lt_order_cfgs_value, lt_order_cfgs_inst, lt_order_cfgs_refinst . REFRESH lt_messtab . CLEAR lt_messtab . DATA : BEGIN OF lt_satisg OCCURS 0 , grpid1(10) TYPE c , grpid2(10) TYPE c , matnr LIKE mara-matnr , kwmeng LIKE vbap-kwmeng , vrkme LIKE vbap-vrkme , netpr netpr_c(20) waerk bkali_new cap lvboy LIKE TYPE LIKE LIKE LIKE LIKE vbap-netpr , c , vbak-waerk , zsd_s_stoksatis_p-bkali_new , zsd_s_stoksatis_p-cap , zsd_s_stoksatis_p-lvboy ,

posnr LIKE vbap-posnr , END OF lt_satisg . DATA : lv_netpr_c(20) DATA : lv_cap_c(20) lv_boy_c(20) lv_matnr_c(20) REFRESH lt_satisg . DATA : lv_tabix TYPE sy-tabix . LOOP AT gt_satisp INTO gs_satisp WHERE kwmeng GT 0 . lv_tabix = sy-tabix . TYPE TYPE TYPE TYPE c c c c . , , .

CLEAR lt_satisg . lt_satisg-matnr = gs_satisp-matnr . lt_satisg-kwmeng = gs_satisp-kwmeng . lt_satisg-vrkme = gs_satisp-vrkme . lt_satisg-netpr = gs_satisp-netpr . lt_satisg-netpr_c = gs_satisp-netpr . CONDENSE lt_satisg-netpr_c . lt_satisg-waerk = gs_satisp-waers . lt_satisg-bkali_new = gs_satisp-bkali_new . lt_satisg-cap = gs_satisp-cap . lt_satisg-lvboy = gs_satisp-lvboy . IF gs_satisp-mtart = 'ZKTK' . lt_satisg-grpid1 = 'KUTUK' . lv_netpr_c = gs_satisp-netpr . CONDENSE lv_netpr_c . CONCATENATE gs_satisp-bkali_new lv_netpr_c INTO lt_satisg-grpid2 SEPARATED BY '/'. ELSEIF gs_satisp-mtart = 'ZCBK' . lt_satisg-grpid1 = 'CUBUK' . lv_netpr_c = gs_satisp-netpr . lv_cap_c = gs_satisp-cap . lv_boy_c = gs_satisp-lvboy . CONDENSE : lv_netpr_c, lv_cap_c, lv_boy_c . CONCATENATE gs_satisp-bkali_new lv_cap_c lv_boy_c lv_netpr_c INTO lt_satisg-grpid2 SEPARATED BY '/'. ELSEIF gs_satisp-mtart = 'ZPRF' OR gs_satisp-mtart = 'ZKSB' . lt_satisg-grpid1 = 'PROFIL' . lv_netpr_c = gs_satisp-netpr . lv_boy_c = gs_satisp-lvboy . CONDENSE : lv_netpr_c, lv_boy_c . CONCATENATE gs_satisp-bkali_new lv_boy_c lv_netpr_c INTO lt_satisg-grpid2 SEPARATED BY '/'. ELSEIF gs_satisp-mtart = 'ZFLM' . lt_satisg-grpid1 = 'FILMASIN' . lv_netpr_c = gs_satisp-netpr . lv_cap_c = gs_satisp-cap . CONDENSE : lv_netpr_c, lv_cap_c . CONCATENATE gs_satisp-bkali_new lv_cap_c lv_netpr_c INTO lt_satisg-grpid2 SEPARATED BY '/'. ELSE . lt_satisg-grpid1 = 'DIGER' .

lv_netpr_c = gs_satisp-netpr . CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' EXPORTING input = gs_satisp-matnr IMPORTING output = lv_matnr_c. CONDENSE : lv_netpr_c, lv_matnr_c . CONCATENATE lv_matnr_c lv_netpr_c INTO lt_satisg-grpid2 SEPARATED BY '/'. ENDIF . gs_satisp-grpid1 = lt_satisg-grpid1 . gs_satisp-grpid2 = lt_satisg-grpid2 . MODIFY gt_satisp FROM gs_satisp INDEX lv_tabix TRANSPORTING grpid1 grpid2 . COLLECT lt_satisg . CLEAR lt_satisg . ENDLOOP . **--> REFRESH gt_simul . CLEAR : gv_refbel, gv_ref_auart, gv_ref_vbtyp . IF gs_satisk-tklref = 'X' OR gs_satisk-sozref = 'X' . DATA : lt_makt TYPE TABLE OF makt , ls_makt TYPE makt . IF NOT lt_satisg[] IS INITIAL . SELECT * INTO TABLE lt_makt FROM makt FOR ALL ENTRIES IN lt_satisg WHERE matnr = lt_satisg-matnr AND spras = 'TR' . SORT lt_makt BY matnr spras . ENDIF . CLEAR lv_item_no . LOOP AT lt_satisg . ADD 10 TO lv_item_no . CLEAR gs_simul . gs_simul-posnr = lv_item_no . gs_simul-matnr = lt_satisg-matnr . gs_simul-kwmeng = lt_satisg-kwmeng . gs_simul-vrkme = lt_satisg-vrkme . gs_simul-netpr = lt_satisg-netpr_c . gs_simul-waerk = lt_satisg-waerk . gs_simul-bkali_new = lt_satisg-bkali_new . gs_simul-cap = lt_satisg-cap . gs_simul-lvboy = lt_satisg-lvboy . CLEAR ls_makt . READ TABLE lt_makt INTO ls_makt

WITH KEY matnr = lt_satisg-matnr BINARY SEARCH . gs_simul-maktx = ls_makt-maktx . APPEND gs_simul TO gt_simul . ENDLOOP . IF gs_satisk-tklref = 'X' . gv_refbel = 'Teklif No' . gv_ref_auart = gc_auart_tkl . gv_ref_vbtyp = 'B' . ELSEIF gs_satisk-sozref = 'X' . gv_refbel = 'Szleme No' . gv_ref_auart = gc_auart_soz . gv_ref_vbtyp = 'G' . ENDIF. CLEAR gv_ok_code_101 . CALL SCREEN 101 STARTING AT 10 3 ENDING AT 150 20 . IF gv_ok_code_101 NE 'OK' . EXIT . ENDIF. ENDIF . **<-DATA : BEGIN OF lt_mara OCCURS 0 , matnr LIKE mara-matnr , mtart LIKE mara-mtart , END OF lt_mara . DATA : ls_mara LIKE LINE OF lt_mara . IF NOT lt_satisg[] IS INITIAL . SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_mara FROM mara FOR ALL ENTRIES IN lt_satisg WHERE matnr = lt_satisg-matnr . SORT lt_mara BY matnr . ENDIF . DATA : lt_zpp_t_krk TYPE TABLE OF zpp_t_krk , ls_zpp_t_krk TYPE zpp_t_krk . SELECT * INTO TABLE lt_zpp_t_krk FROM zpp_t_krk . DATA : lv_atnam_kalite lv_atnam_cap lv_atnam_uznlk TYPE atnam , TYPE atnam , TYPE atnam .

ls_order_header_in-doc_type = gs_satisk-auart. ls_order_header_in-sales_org = gs_satisk-vkorg. ls_order_header_in-distr_chan = gs_satisk-vtweg. ls_order_header_in-division = gs_satisk-spart. ls_order_header_in-incoterms1 = gs_satisk-inco1. ls_order_header_in-pmnttrms = gs_satisk-zterm. ls_order_header_in-currency = gs_satisk-waers. ls_order_header_in-created_by = sy-uname . ls_order_header_in-pymt_meth = gs_satisk-zlsch . MOVE-CORRESPONDING ls_order_header_in TO ls_order_header .

ls_order_header_inx-doc_type ls_order_header_inx-sales_org ls_order_header_inx-distr_chan ls_order_header_inx-division ls_order_header_inx-incoterms1 ls_order_header_inx-pmnttrms ls_order_header_inx-currency ls_order_header_inx-pymt_meth lt_order_partners-partn_role lt_order_partners-partn_numb APPEND lt_order_partners . lt_order_partners-partn_role lt_order_partners-partn_numb APPEND lt_order_partners . CLEAR lv_item_no . * CLEAR lv_config_id . LOOP AT lt_satisg . lv_tabix = sy-tabix . ADD 10 TO lv_item_no . lv_config_id = lv_item_no . lt_order_items_in-itm_number lt_order_items_in-material lt_order_items_in-target_qty lt_order_items_in-target_qu lt_order_items_in-po_itm_no lt_order_items_in-inst_id = = = = = =

= = = = = = = = 'X' . = 'AG'. = gs_satisk-kunag . = 'WE'. = gs_satisk-kunwe .

lv_item_no . lt_satisg-matnr . lt_satisg-kwmeng . lt_satisg-vrkme . lv_item_no . lv_root_id .

IF gs_satisk-tklref = 'X' OR gs_satisk-sozref = 'X' . CLEAR gs_simul . READ TABLE gt_simul INTO gs_simul WITH KEY posnr = lv_item_no . lt_order_items_in-ref_doc = gs_simul-vbeln_ref . lt_order_items_in-ref_doc_it = gs_simul-posnr_ref . lt_order_items_in-ref_doc_ca = gv_ref_vbtyp . ENDIF. APPEND lt_order_items_in . lt_order_items_inx-itm_number lt_order_items_inx-material lt_order_items_inx-target_qty lt_order_items_inx-target_qu lt_order_items_inx-config_id lt_order_items_inx-po_itm_no lt_order_items_inx-inst_id = lv_item_no . = = = = = = 'X' .

IF gs_satisk-tklref = 'X' OR gs_satisk-sozref = 'X' . lt_order_items_inx-ref_doc = lt_order_items_inx-ref_doc_it = lt_order_items_inx-ref_doc_ca = 'X' . ENDIF. APPEND lt_order_items_inx .

lt_order_schedules_in-itm_number lt_order_schedules_in-sched_line lt_order_schedules_in-req_date lt_order_schedules_in-req_qty APPEND lt_order_schedules_in . lt_order_schedules_inx-itm_number lt_order_schedules_inx-sched_line lt_order_schedules_inx-req_date lt_order_schedules_inx-req_qty APPEND lt_order_schedules_inx . * * * * * * * * * * * * *

= = = =

lv_item_no . 1 . sy-datum . lt_satisg-kwmeng . = lv_item_no . = 1 . = = 'X' . = = = = = lv_item_no . 1 . 'ZK01'. lt_satisg-netpr_c . lt_satisg-waerk . = lv_item_no . = 1 . = = = 'X' .

lt_order_conditions_in-itm_number lt_order_conditions_in-cond_st_no lt_order_conditions_in-cond_type lt_order_conditions_in-cond_value lt_order_conditions_in-currency APPEND lt_order_conditions_in . lt_order_conditions_inx-itm_number lt_order_conditions_inx-cond_st_no lt_order_conditions_inx-cond_type lt_order_conditions_inx-cond_value lt_order_conditions_inx-currency APPEND lt_order_conditions_inx . lt_order_cfgs_ref-posex lt_order_cfgs_ref-config_id lt_order_cfgs_ref-root_id APPEND lt_order_cfgs_ref .

= lv_item_no . = lv_config_id . = lv_root_id . = = = = = = = = lv_config_id . lv_root_id . 'MARA' . '300' . lt_satisg-matnr lt_satisg-kwmeng lt_satisg-vrkme lt_satisg-matnr

lt_order_cfgs_inst-config_id lt_order_cfgs_inst-inst_id lt_order_cfgs_inst-obj_type lt_order_cfgs_inst-class_type lt_order_cfgs_inst-obj_key lt_order_cfgs_inst-quantity lt_order_cfgs_inst-quantity_unit lt_order_cfgs_inst-object_guid APPEND lt_order_cfgs_inst .

. . . .

*kalite karakteristii CLEAR ls_mara . READ TABLE lt_mara INTO ls_mara WITH KEY matnr = lt_satisg-matnr BINARY SEARCH . CLEAR ls_zpp_t_krk . READ TABLE lt_zpp_t_krk INTO ls_zpp_t_krk WITH KEY mtart = ls_mara-mtart krkad = 'KALITE' . lv_atnam_kalite = ls_zpp_t_krk-atnam . lt_order_cfgs_value-config_id lt_order_cfgs_value-inst_id lt_order_cfgs_value-charc lt_order_cfgs_value-value lt_order_cfgs_value-valcode APPEND lt_order_cfgs_value . = = = = = lv_config_id . lv_root_id . lv_atnam_kalite . lt_satisg-bkali_new . '1' .

*ap karakteristii IF NOT lt_satisg-cap IS INITIAL . CLEAR ls_zpp_t_krk . READ TABLE lt_zpp_t_krk INTO ls_zpp_t_krk WITH KEY mtart = ls_mara-mtart krkad = 'CAP' . lv_atnam_cap = ls_zpp_t_krk-atnam . lt_order_cfgs_value-config_id lt_order_cfgs_value-inst_id lt_order_cfgs_value-charc lt_order_cfgs_value-value lt_order_cfgs_value-valcode APPEND lt_order_cfgs_value . ENDIF. = = = = = lv_config_id . lv_root_id . lv_atnam_cap . lt_satisg-cap . '1' .

*Uzunluk karakteristii CLEAR ls_zpp_t_krk . READ TABLE lt_zpp_t_krk INTO ls_zpp_t_krk WITH KEY mtart = ls_mara-mtart krkad = 'UZNLK' . lv_atnam_uznlk = ls_zpp_t_krk-atnam . lt_order_cfgs_value-config_id lt_order_cfgs_value-inst_id lt_order_cfgs_value-charc lt_order_cfgs_value-value lt_order_cfgs_value-valcode APPEND lt_order_cfgs_value . lt_satisg-posnr = lv_item_no . MODIFY lt_satisg INDEX lv_tabix . ENDLOOP . CLEAR lv_vbeln . CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2' EXPORTING order_header_in = ls_order_header_in order_header_inx = ls_order_header_inx IMPORTING salesdocument = lv_vbeln TABLES return = lt_return order_items_in = lt_order_items_in order_items_inx = lt_order_items_inx order_partners = lt_order_partners order_schedules_in = lt_order_schedules_in order_schedules_inx = lt_order_schedules_inx order_conditions_in = lt_order_conditions_in order_conditions_inx = lt_order_conditions_inx order_cfgs_ref = lt_order_cfgs_ref order_cfgs_inst = lt_order_cfgs_inst order_cfgs_value = lt_order_cfgs_value. LOOP AT lt_return WHERE type = 'E' OR type = 'A' OR type = 'X' . = = = = = lv_config_id . lv_root_id . lv_atnam_uznlk . lt_satisg-lvboy . '1' .

EXIT . ENDLOOP . IF sy-subrc EQ 0 . CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE . CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. CLEAR: ls_goodsmvt_header, lv_goodsmvt_code ,lv_mat_doc , lv_doc_year, lt_goodsmvt_item , lt_return2 . REFRESH : lt_goodsmvt_item , lt_return2 . ls_goodsmvt_header-pstng_date = sy-datum. ls_goodsmvt_header-doc_date = sy-datum. LOOP AT gt_satisp INTO gs_satisp . CLEAR lt_satisg . READ TABLE lt_satisg WITH KEY grpid1 = gs_satisp-grpid1 grpid2 = gs_satisp-grpid2 . lv_goodsmvt_code = '04'. lt_goodsmvt_item-material lt_goodsmvt_item-plant lt_goodsmvt_item-stge_loc lt_goodsmvt_item-batch lt_goodsmvt_item-move_type lt_goodsmvt_item-spec_stock lt_goodsmvt_item-val_sales_ord lt_goodsmvt_item-val_s_ord_item lt_goodsmvt_item-customer lt_goodsmvt_item-sales_ord lt_goodsmvt_item-s_ord_item lt_goodsmvt_item-entry_qnt lt_goodsmvt_item-entry_uom lt_goodsmvt_item-move_mat lt_goodsmvt_item-move_plant lt_goodsmvt_item-move_batch lt_goodsmvt_item-move_stloc APPEND lt_goodsmvt_item. ENDLOOP. REFRESH lt_return2 . CALL FUNCTION 'BAPI_GOODSMVT_CREATE' EXPORTING goodsmvt_header = ls_goodsmvt_header goodsmvt_code = lv_goodsmvt_code IMPORTING materialdocument = lv_mat_doc matdocumentyear = lv_doc_year TABLES goodsmvt_item = lt_goodsmvt_item return = lt_return2. LOOP AT lt_return2 WHERE type = 'E' OR type = 'A' OR type = 'X' . EXIT . ENDLOOP . = = = = = = = = gs_satisp-matnr. gs_satisp-werks. gs_satisp-lgort. gs_satisp-charg. '413'. 'E'. gs_satisp-vbeln. gs_satisp-posnr. = lt_satisg-kunnr. = lv_vbeln . = lt_satisg-posnr . = gs_satisp-kwmeng . = gs_satisp-vrkme . = gs_satisp-matnr. = gs_satisp-werks. = gs_satisp-charg. = gs_satisp-lgort.

IF sy-subrc EQ 0 . CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ELSE . CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. IF NOT lv_mat_doc IS INITIAL . CLEAR lt_return2 . lt_return2-id = 'M7' . lt_return2-type = 'S' . lt_return2-number = '060' . lt_return2-message_v1 = lv_mat_doc . APPEND lt_return2 . ENDIF . ENDIF . APPEND LINES OF lt_return2 TO lt_return . ENDIF . DELETE lt_return WHERE type = 'S' AND id = 'V4' AND number = '233' . LOOP AT lt_return . MOVE: lt_return-id TO lt_messtab-msgid, lt_return-type TO lt_messtab-msgty, lt_return-number TO lt_messtab-msgno, lt_return-message_v1 TO lt_messtab-msgv1, lt_return-message_v2 TO lt_messtab-msgv2, lt_return-message_v3 TO lt_messtab-msgv3, lt_return-message_v4 TO lt_messtab-msgv4. APPEND lt_messtab . ENDLOOP. IF NOT lt_messtab[] IS INITIAL . CALL FUNCTION 'C14Z_MESSAGES_SHOW_AS_POPUP' TABLES i_message_tab = lt_messtab. ENDIF . IF NOT lv_vbeln IS INITIAL . SET PARAMETER ID 'AUN' FIELD lv_vbeln . CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN . ENDIF. REFRESH tb_data . PERFORM f_get_data . SET SCREEN 0 . LEAVE SCREEN . ENDFORM. " F_KAYDET

*&---------------------------------------------------------------------* *& Form F_CHECK_SCR *&---------------------------------------------------------------------* FORM f_check_scr CHANGING p_err . IF gs_satisk-kunwe IS INITIAL . MESSAGE i001(zsd)

WITH 'Mal teslim alan zorunlu, ltfen giri yapnz' . p_err = 'X' . EXIT . ENDIF . IF gs_satisk-kunwe IS INITIAL . MESSAGE i001(zsd) WITH 'Mal teslim alan zorunlu, ltfen giri yapnz' . p_err = 'X' . EXIT . ENDIF . IF gs_satisk-zterm IS INITIAL . MESSAGE i001(zsd) WITH 'deme koulu zorunlu, ltfen giri yapnz' . p_err = 'X' . EXIT . ENDIF . IF gs_satisk-zlsch IS INITIAL . MESSAGE i001(zsd) WITH 'deme biimi zorunlu, ltfen giri yapnz' . p_err = 'X' . EXIT . ENDIF . ENDFORM. " F_CHECK_SCR

*&---------------------------------------------------------------------* *& Form F_CHECK_STOK *&---------------------------------------------------------------------* FORM f_check_stok CHANGING p_err . DATA : lt_mska TYPE TABLE OF mska , ls_mska TYPE mska . IF NOT gt_satisp[] IS INITIAL . SELECT * INTO TABLE lt_mska FROM mska FOR ALL ENTRIES IN gt_satisp WHERE matnr = gt_satisp-matnr AND werks = gt_satisp-werks AND lgort = gt_satisp-lgort AND charg = gt_satisp-charg AND sobkz = 'E' AND vbeln = gt_satisp-vbeln AND posnr = gt_satisp-posnr . ENDIF . LOOP AT gt_satisp INTO gs_satisp . CLEAR ls_mska . READ TABLE lt_mska INTO ls_mska WITH KEY matnr = gs_satisp-matnr werks = gs_satisp-werks lgort = gs_satisp-lgort charg = gs_satisp-charg sobkz = 'E' vbeln = gs_satisp-vbeln posnr = gs_satisp-posnr .

IF gs_satisp-kwmeng GT ls_mska-kalab . DATA : lv_labst_c(20) TYPE c . WRITE ls_mska-kalab TO lv_labst_c . CONDENSE lv_labst_c . MESSAGE i003(zsd) WITH gs_satisp-matnr gs_satisp-charg gs_satisp-vbeln lv_labst_c . p_err = 'X' . EXIT . ENDIF . ENDLOOP . IF p_err = 'X' . EXIT . ENDIF . ENDFORM. " F_CHECK_STOK

Das könnte Ihnen auch gefallen