Advertisement
Guest User

Untitled

a guest
Jul 11th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ABAP 7.33 KB | None | 0 0
  1. loop at lit_mseg.
  2.     insert_row_to_result_tab lit_mara lit_mseg-matnr lit_t001w lit_mseg-werks lit_result <lfs_result>.
  3.     if lit_mseg-calcdt in lr_calcdt.
  4.       case lit_mseg-bwart.
  5.         when '101' or '907' or '919' or '915' or '123'.
  6.           check lit_mseg-shkzg = 'S'.
  7.           add: lit_mseg-menge to <lfs_result>-lifin-menge,
  8.                lit_mseg-dmbtr to <lfs_result>-lifin-dmbtr.
  9.         when '102' or '908' or '920' or '916' or '122'.
  10.           check lit_mseg-shkzg = 'H'.
  11.           subtract: lit_mseg-menge from <lfs_result>-lifin-menge,
  12.                     lit_mseg-dmbtr from <lfs_result>-lifin-dmbtr.
  13.         when '309' or '310'.
  14.           read table lit_mara into ls_mara with table key key_prim components matnr = lit_mseg-ummat.
  15.           if sy-subrc ne 0. clear ls_mara.  endif. "Если материал не найден, то он с другой группы
  16.           if lit_mara-matkl ne ls_mara-matkl.
  17.             case lit_mseg-bwart.
  18.               when '309'.
  19.                 if lit_mseg-shkzg = 'S'.
  20.                   add: lit_mseg-menge to <lfs_result>-lifin-menge,
  21.                        lit_mseg-dmbtr to <lfs_result>-lifin-dmbtr.
  22.                 else.
  23.                   add: lit_mseg-menge to <lfs_result>-devout-menge,
  24.                        lit_mseg-dmbtr to <lfs_result>-devout-dmbtr.
  25.                 endif.
  26.               when '310'.
  27.                 if lit_mseg-shkzg = 'H'.
  28.                   subtract: lit_mseg-menge from <lfs_result>-lifin-menge,
  29.                             lit_mseg-dmbtr from <lfs_result>-lifin-dmbtr.
  30.                 else.
  31.                   subtract: lit_mseg-menge from <lfs_result>-devout-menge,
  32.                             lit_mseg-dmbtr from <lfs_result>-devout-dmbtr.
  33.                 endif.
  34.             endcase.
  35.           endif.
  36.         when '641'.
  37. *         read table lit_t001w  with table key werks = lit_mseg-umwrk. "Comment Lavrenyuk K. 27.01.2018 00:48:17
  38. *         if sy-subrc eq 0 and lit_mseg-bukrs ne lit_t001w-bukrs. "Comment Lavrenyuk K. 27.01.2018 00:48:17
  39.           read table lit_t001w_p with table key werks = lit_mseg-umwrk. "Add Lavrenyuk K. 27.01.2018 00:48:17
  40.           if sy-subrc eq 0 and lit_mseg-bukrs ne lit_t001w_p-bukrs. "Add Lavrenyuk K. 27.01.2018 00:48:17
  41.  
  42.             if lit_mseg-shkzg = 'S'.
  43.               add: lit_mseg-menge to <lfs_result>-bukin-menge,
  44.                    lit_mseg-dmbtr to <lfs_result>-bukin-dmbtr.
  45.             else.
  46.               add: lit_mseg-menge to <lfs_result>-bukout-menge,
  47.                    lit_mseg-dmbtr to <lfs_result>-bukout-dmbtr.
  48.             endif.
  49.           endif.
  50.         when '642'.
  51. *         read table lit_t001w  with table key werks = lit_mseg-umwrk. "Comment Lavrenyuk K. 27.01.2018 00:48:17
  52. *         if sy-subrc eq 0 and lit_mseg-bukrs ne lit_t001w-bukrs. "Comment Lavrenyuk K. 27.01.2018 00:48:17
  53.           read table lit_t001w_p with table key werks = lit_mseg-umwrk. "Add Lavrenyuk K. 27.01.2018 00:48:17
  54.           if sy-subrc eq 0 and lit_mseg-bukrs ne lit_t001w_p-bukrs. "Add Lavrenyuk K. 27.01.2018 00:48:17
  55.  
  56.             if lit_mseg-shkzg = 'H'.
  57.               subtract: lit_mseg-menge from <lfs_result>-bukin-menge,
  58.                         lit_mseg-dmbtr from <lfs_result>-bukin-dmbtr.
  59.             else.
  60.               subtract: lit_mseg-menge from <lfs_result>-bukout-menge,
  61.                         lit_mseg-dmbtr from <lfs_result>-bukout-dmbtr.
  62.             endif.
  63.           endif.
  64.         when '941' or '942'.
  65.           read table lit_mara into ls_mara with table key key_prim components matnr = lit_mseg-ummat.
  66.           if sy-subrc ne 0. clear ls_mara.  endif. "Если материал не найден, то он с другой группы
  67.           if lit_mara-matkl ne ls_mara-matkl.
  68.             if lit_mseg-bwart = '941' and lit_mseg-shkzg eq 'H'.
  69.               add: lit_mseg-menge to <lfs_result>-devout-menge,
  70.                    lit_mseg-dmbtr to <lfs_result>-devout-dmbtr.
  71.             elseif lit_mseg-bwart = '942' and lit_mseg-shkzg eq 'S'.
  72.               subtract: lit_mseg-menge from <lfs_result>-devout-menge,
  73.                         lit_mseg-dmbtr from <lfs_result>-devout-dmbtr.
  74.             endif.
  75.           endif.
  76.         when '201' or '241' or '261' or '281' or '601'
  77.           or '933' or '935' or '943'
  78.           or '945' or '947' or '949' or '955'
  79.           or '971' or 'Z51'.
  80.           if lit_mseg-shkzg = 'H'.
  81.             add:lit_mseg-menge to <lfs_result>-devout-menge,
  82.                 lit_mseg-dmbtr to <lfs_result>-devout-dmbtr.
  83.           endif.
  84.  
  85.         when '202' or '242' or '262' or '282' or '602'
  86.           or '934' or '936' or '944'
  87.           or '946' or '948' or '950' or '956'
  88.           or '972' or 'Z52'.
  89.           if lit_mseg-shkzg = 'S'.
  90.             subtract: lit_mseg-menge from <lfs_result>-devout-menge,
  91.                       lit_mseg-dmbtr from <lfs_result>-devout-dmbtr.
  92.           endif.
  93.       endcase.
  94.     endif.
  95.  
  96.     "   откатываем остатки
  97.     if lit_mseg-shkzg = 'S'.
  98.       lit_mseg-menge = - lit_mseg-menge.
  99.       lit_mseg-dmbtr = - lit_mseg-dmbtr.
  100.     endif.
  101. *     IF lit_mseg-matnr = '000000000210000047' and lit_mseg-charg <> lit_mseg-bwtar. " пока сделал исключение потом посматрю после отпуска Yaki B. 21.02.2018
  102. *      read table lit_mchb assigning <lfs_mchb> with table key primkey components matnr = lit_mseg-matnr
  103. *                                                                                 werks = lit_mseg-werks
  104. *                                                                                 charg = lit_mseg-bwtar.
  105. *     else.
  106.     IF lit_mseg-charg ne ''.
  107.       read table lit_mchb assigning <lfs_mchb> with table key primkey components matnr = lit_mseg-matnr
  108.                                                                                  werks = lit_mseg-werks
  109.                                                                                  charg = lit_mseg-charg.
  110.     ELSE.
  111.       read table lit_mchb assigning <lfs_mchb> with key  matnr = lit_mseg-matnr
  112.                                                                                  werks = lit_mseg-werks
  113.                                                                                  bwtar = lit_mseg-bwtar.
  114.       lit_mseg-menge = - lit_mseg-menge.
  115.       lit_mseg-dmbtr = - lit_mseg-dmbtr.
  116.     ENDIF.
  117.  
  118. *     ENDIF.
  119.  
  120.  
  121.     if sy-subrc ne 0.
  122.  
  123.       if sy-tabix eq 0. sy-tabix = 1. endif.
  124.       lit_mchb-matnr = lit_mseg-matnr.
  125.       lit_mchb-werks = lit_mseg-werks.
  126.  
  127.       lit_mchb-charg = lit_mseg-charg.
  128.        IF lit_mseg-charg = ''.
  129.          lit_mchb-charg = lit_mseg-bwtar.
  130.        ENDIF.
  131.  
  132.       lit_mchb-bwtar = lit_mseg-bwtar.
  133.       insert lit_mchb index sy-tabix  assigning <lfs_mchb> .
  134.     endif.
  135.  
  136.  
  137. *     IF lit_mseg-charg <> lit_mseg-bwtar and lit_mseg-matnr = '000000000210000047'.
  138. *          lit_mseg-menge = - lit_mseg-menge.
  139. *          lit_mseg-dmbtr = - lit_mseg-dmbtr.
  140. *
  141. *       IF lit_mseg-calcdt <=  lr_calcdt-low.
  142. *         add: lit_mseg-menge to <lfs_mchb>-clabs_b.
  143. *       ENDIF.
  144. *       if lit_mseg-calcdt >  lr_calcdt-low .
  145. *         add: lit_mseg-menge to <lfs_mchb>-clabs_e.
  146. *       endif.
  147. *     else.
  148.  
  149.        add: lit_mseg-menge to <lfs_mchb>-clabs_b.
  150.        if lit_mseg-calcdt >  lr_calcdt-high .
  151.          add: lit_mseg-menge to <lfs_mchb>-clabs_e.
  152.        endif.
  153. *     ENDIF.
  154.   endloop.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement