Vous êtes sur la page 1sur 3

*&---------------------------------------------------------------------*

*& Form DATEN_KOPIEREN_911


*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM daten_kopieren_911.

TABLES: kna1,
mvke.

DATA: vl_tabix LIKE sy-tabix,


vl_valor LIKE konv-kwert,
vl_liq LIKE konv-kwert,
vl_limite LIKE konv-kwert VALUE '951000',
vl_split(2) TYPE n.

DATA: BEGIN OF zuk,


modul(3) VALUE '003',
vtweg LIKE vbak-vtweg,
spart LIKE vbak-spart,
vgbel LIKE vbrp-vgbel,
END OF zuk.

DATA: BEGIN OF it_konv OCCURS 0.


INCLUDE STRUCTURE konv.
DATA: END OF it_konv.

DATA: BEGIN OF it_mvke OCCURS 0.


INCLUDE STRUCTURE mvke.
DATA: END OF it_mvke.

DATA: BEGIN OF it_lips OCCURS 0,


vbeln LIKE lips-vbeln,
posnr LIKE lips-posnr,
matnr LIKE lips-matnr,
vgbel LIKE lips-vgbel,
vgpos LIKE lips-vgpos,
kondm LIKE mvke-kondm,
split(2) TYPE n.
DATA: END OF it_lips.

zuk-vtweg = vbak-vtweg.
zuk-spart = vbak-spart.
IF kurgv-perfk = space.
zuk-vgbel = vbrp-vgbel.
ENDIF.
vbrk-zukri = zuk.

* Seleciona pre�o
SELECT * FROM konv
INTO TABLE it_konv
WHERE knumv = vbak-knumv AND
( kschl = 'IBRX' OR
kschl = 'IPI3' OR
kschl = 'ICS3' ).

SORT it_konv BY kposn.


* Seleciona itens da remessa em processamento na VF01
SELECT vbeln
posnr
matnr
vgbel
vgpos
FROM lips
INTO TABLE it_lips
WHERE vbeln = likp-vbeln AND
uecha = space.

IF sy-subrc = 0.

* Grupo de mercadorias/tipo de material


SELECT * FROM mvke
INTO TABLE it_mvke
FOR ALL ENTRIES IN it_lips
WHERE matnr = it_lips-matnr AND
vkorg = vbak-vkorg AND
vtweg = vbak-vtweg.

IF sy-subrc = 0.

LOOP AT it_lips.
vl_tabix = sy-tabix.

CLEAR vl_liq.
LOOP AT it_konv WHERE kposn = it_lips-vgpos.
vl_liq = vl_liq + it_konv-kwert.
ENDLOOP.

CHECK NOT vl_liq IS INITIAL.

READ TABLE it_mvke WITH KEY matnr = it_lips-matnr.


IF sy-subrc = 0.

* Atribui Grp de Materiais 12(Lista Neutra) quando for 13(Mat.Isento).


*** IF it_mvke-kondm EQ '13'.
*** MOVE '12' TO it_mvke-kondm.
*** ENDIF.

* Valida��o do valor - Se valor total acumulado dos itens > 951.000,00, acumula 1
* na vari�vel split para quebra das faturas
vl_valor = vl_valor + vl_liq.
IF vl_valor > vl_limite.
vl_split = vl_split + 1.
vl_valor = it_konv-kwert.
ENDIF.

ENDIF.

* Guarda vari�vel grupo de material e split


it_lips-kondm = it_mvke-kondm.
it_lips-split = vl_split.
MODIFY it_lips INDEX vl_tabix.
ENDLOOP.

* Leitura da tabela interna de itens de remessa para selecionar item


* de quebra de fatura
READ TABLE it_lips WITH KEY vgbel = vbap-vbeln
vgpos = vbap-posnr.
IF sy-subrc = 0.
CONCATENATE zuk it_lips-kondm it_lips-split lips-j_1bcfop INTO vbrk-zukri.
ENDIF.
ENDIF.
ENDIF.

ENDFORM. "DATEN_KOPIEREN_911

----------------------------------------------------------------------------------
Extracted by Direct Download Enterprise version 1.3.1 - Desenvolvedor JCremm Sap
Release 700

Vous aimerez peut-être aussi