Views 221
Visitors 141

ZXLRPU01

Home 
| Top Page | Threads |
Previous  Next

*&---------------------------------------------------------------------*
*&  Include           ZXLRPU01                                         *
*&---------------------------------------------------------------------*
 
DATA: BEGIN OF li_lipos OCCURS 0.
DATA: sammg  LIKE vbss-sammg.
       INCLUDE STRUCTURE lrp_lipos.
DATA: END OF li_lipos.
DATA: lv_sammg    LIKE vbss-sammg,
     lv_matnr    LIKE lrp_lipos-matnr,
     lv_tabix    LIKE sy-tabix.
DATA: lv_lips LIKE lips.
 
*---- re-calculate order quantity,
LOOP AT t_lipos.
t_lipos-mamng = t_lipos-mamng + 1.
IF t_lipos-lgmng > t_lipos-mamng.
   COMPUTE t_lipos-bedmng
         = t_lipos-lgmng MOD t_lipos-mamng.
ELSE.
   MOVE t_lipos-lgmng TO t_lipos-bedmng.
ENDIF.
MODIFY t_lipos INDEX sy-tabix TRANSPORTING bedmng.
ENDLOOP.
*--------------------
 
 
LOOP AT t_lipos.
MOVE-CORRESPONDING t_lipos TO li_lipos.
SELECT SINGLE sammg
   INTO li_lipos-sammg
   FROM vbss
   WHERE vbeln EQ t_lipos-vbeln
   AND   sortf NE space.
APPEND li_lipos.
ENDLOOP.
 
REFRESH t_lipos.
CLEAR t_lipos.
SORT li_lipos BY matnr sammg.
LOOP AT li_lipos.
*  read table T_LIPOS with key MATNR = LI_LIPOS-MATNR.
IF li_lipos-matnr NE lv_matnr OR li_lipos-sammg NE lv_sammg.
   MOVE-CORRESPONDING li_lipos TO t_lipos.
   APPEND t_lipos.
   MOVE sy-tabix TO lv_tabix.
   MOVE li_lipos-sammg TO lv_sammg.
   MOVE li_lipos-matnr TO lv_matnr.
   CONTINUE.
ENDIF.
t_lipos-bedmng = t_lipos-bedmng + li_lipos-bedmng.
MODIFY t_lipos INDEX lv_tabix.
ENDLOOP.
 
LOOP AT t_lipos.
IF t_lipos-bedmng GT 0.
   IF t_lipos-bedmng GT t_lipos-nsmng.
 
*      T_LIPOS-BEDMNG = T_LIPOS-BEDMNG - T_LIPOS-NSMNG.
 
*------ added,
     t_lipos-mamng = t_lipos-mamng + 1.
     COMPUTE t_lipos-bedmng
           = t_lipos-bedmng MOD t_lipos-mamng.
*------ end add,
 
   ENDIF.
 
*--- check apakah bedmng bisa diconvert ke sales unit tanpa ada sisa
*--- jika bisa maka set to 0, artinya tidak akan dicreate TR
 
   SELECT SINGLE meins vrkme umvkz umvkn
     INTO CORRESPONDING FIELDS OF lv_lips
     FROM lips
     WHERE vbeln =  t_lipos-vbeln
     AND   posnr =  t_lipos-posnr.
 
* convert bedmng to sales unit
* ambil sisanya yg akan dijadikan TR
   IF lv_lips-umvkz <> lv_lips-umvkn .
     t_lipos-lgmng = t_lipos-bedmng MOD ( lv_lips-umvkz / lv_lips-umvkn ).
   ELSE.
     t_lipos-lgmng = t_lipos-bedmng.
   ENDIF.
 
   t_lipos-bedmng = t_lipos-lgmng.
*--- end by
 
   MODIFY t_lipos INDEX sy-tabix TRANSPORTING lgmng bedmng.
ENDIF.
ENDLOOP.

User Threads | New Thread ( Only for Donators )

Threads Last Post Replies Views