Stock overview and cost assignment - 6
来源:互联网 发布:世界各国gdp数据 编辑:程序博客网 时间:2024/06/10 06:07
* Get Cost of Goods Sold data
* Get the Material data
* Get WIP data
* Get Inventory data[@more@]
*&---------------------------------------------------------------------*
*& Form ARRANGE_CONS_STOCK
*&---------------------------------------------------------------------*
* Arrange the Valuated Stock with Subcontractor
*----------------------------------------------------------------------*
FORM ARRANGE_CONS_STOCK .
* Extract Valuated Stock with Subcontractor(From OBEW/OBEWH)
PERFORM FRM_GET_CONS_STOCK.
* Get the CONS batch
PERFORM GET_CONS_BATCH.
* Assign amount to batch SO stock
PERFORM ASSIGN_TO_CONS_BATCH.
ENDFORM. " ARRANGE_CONS_STOCK
*&---------------------------------------------------------------------*
*& Form GET_CONS_BATCH
*&---------------------------------------------------------------------*
* Get the CONS batch
*----------------------------------------------------------------------*
FORM GET_CONS_BATCH .
DATA:
LTH_MSLB LIKE LINE OF TD_MSLB,
LTD_MSLBH TYPE TABLE OF TYP_MSLB,
LTH_MSLBH LIKE LINE OF LTD_MSLBH.
DATA:
LW_INDEX TYPE SY-TABIX.
SELECT MATNR " Material Number
WERKS " Plant
CHARG " Batch Number
LIFNR " Account Number of Vendor or Creditor
LFGJA " Fiscal Year of Current Period
LFMON " Current period (posting period)
LBLAB " Valuated Unrestricted-Use Stock
LBINS " Stock in Quality Inspection
LBEIN " Total Stock of All Restricted Batches
LBUML " Stock in Transfer for Subcontracting (Plant to Plant)
INTO CORRESPONDING FIELDS OF TABLE TD_MSLB
FROM MSLB
FOR ALL ENTRIES IN TD_OBEW
WHERE WERKS = P_WERKS "Valuation Area
AND MATNR = TD_OBEW-MATNR. " Material Number
LOOP AT TD_MSLB INTO LTH_MSLB.
LW_INDEX = SY-TABIX.
IF LTH_MSLB-LFGJA > P_GJAHR
OR ( LTH_MSLB-LFGJA = P_GJAHR
AND LTH_MSLB-LFMON > P_PERID ).
SELECT MATNR " Material Number
WERKS " Plant
CHARG " Batch Number
LIFNR " Account Number of Vendor or Creditor
LFGJA " Fiscal Year of Current Period
LFMON " Current period (posting period)
LBLAB " Valuated Unrestricted-Use Stock
LBINS " Stock in Quality Inspection
LBEIN " Total Stock of All Restricted Batches
LBUML " Stock in Transfer for Subcontracting (Plant to Plant)
FROM MSLBH
INTO CORRESPONDING FIELDS OF TABLE LTD_MSLBH
UP TO 1 ROWS
WHERE MATNR = LTH_MSLB-MATNR " Material Number
AND WERKS = LTH_MSLB-WERKS " Plant
AND CHARG = LTH_MSLB-CHARG " Batch Number
AND ( LFGJA < P_GJAHR
OR ( LFGJA = P_GJAHR
AND LFMON <= P_PERID ) )
ORDER BY LFGJA DESCENDING
LFMON DESCENDING.
IF SY-SUBRC = 0.
READ TABLE LTD_MSLBH INTO LTH_MSLBH INDEX 1.
IF SY-SUBRC = 0.
MODIFY TD_MSLB FROM LTH_MSLBH INDEX LW_INDEX.
ENDIF.
ENDIF.
ENDIF.
REFRESH LTD_MSLBH.
CLEAR LTH_MSLBH.
CLEAR LTH_MSLB.
ENDLOOP.
ENDFORM. " GET_CONS_BATCH
*&---------------------------------------------------------------------*
*& Form ASSIGN_TO_CONS_BATCH
*&---------------------------------------------------------------------*
* Assign amount to batch SO stock
*----------------------------------------------------------------------*
FORM ASSIGN_TO_CONS_BATCH .
DATA:
LTH_OBEW LIKE LINE OF TD_OBEW,
LTH_MSLB LIKE LINE OF TD_MSLB,
LTH_CT000401 LIKE LINE OF TD_CT000401.
DATA:
LW_AMOUNT TYPE MSLB-LBLAB,
LW_SALK3 TYPE OBEW-SALK3.
LOOP AT TD_OBEW INTO LTH_OBEW.
LOOP AT TD_MSLB INTO LTH_MSLB WHERE MATNR = LTH_OBEW-MATNR
AND WERKS = LTH_OBEW-BWKEY
AND LIFNR = LTH_OBEW-LIFNR.
LTH_CT000401-MATNR = LTH_MSLB-MATNR.
LTH_CT000401-WERKS = LTH_MSLB-WERKS.
LTH_CT000401-LGORT = SPACE.
LTH_CT000401-CHARG = LTH_MSLB-CHARG.
LTH_CT000401-SOBKZ = C_CNCS_STOCK. "Stock Indicator
LTH_CT000401-BUKRS = P_BUKRS.
LTH_CT000401-GJAHR = P_GJAHR.
LTH_CT000401-MONAT = P_PERID. "Perid
LTH_CT000401-BKLAS = LTH_OBEW-BKLAS. "Valuetion class
LTH_CT000401-QUANT = LTH_MSLB-LBLAB + " Valuated Unrestricted-Use Stock
LTH_MSLB-LBINS + " Stock in Quality Inspection
LTH_MSLB-LBEIN + " Total Stock of All Restricted Batches.
LTH_MSLB-LBUML. " Stock in Transfer for Subcontracting
LTH_CT000401-MEINS = LTH_OBEW-PEINH. "Price Unit
IF LTH_OBEW-VPRSV = C_S.
LTH_CT000401-AMOUNT = LTH_CT000401-QUANT * LTH_OBEW-STPRS / LTH_OBEW-PEINH.
ELSE.
LTH_CT000401-AMOUNT = LTH_CT000401-QUANT * LTH_OBEW-VERPR / LTH_OBEW-PEINH.
ENDIF.
* Get Account
IF LTH_OBEW-BKLAS = C_2110.
LTH_CT000401-HKONT = W_FACCOUNT.
ELSE.
LTH_CT000401-HKONT = W_SACCOUNT.
ENDIF.
* Get the routing data
PERFORM GET_ROUTING_DATA USING '
LTH_CT000401-WERKS
LTH_CT000401-LGORT
LTH_CT000401-MATNR
LTH_CT000401-CHARG
CHANGING LTH_CT000401-RTGRP1
LTH_CT000401-RTGRP2
LTH_CT000401-RTGRP3
LTH_CT000401-RTGRP4
LTH_CT000401-RTGRP5
LTH_CT000401-RTGRP6
LTH_CT000401-RTGRP7
LTH_CT000401-RTGRP8.
* Get profit center
SELECT SINGLE PRCTR
FROM MARC
INTO LTH_CT000401-PRCTR
WHERE MATNR = LTH_CT000401-MATNR
AND WERKS = LTH_CT000401-WERKS.
APPEND LTH_CT000401 TO TD_CT000401.
LW_AMOUNT = LW_AMOUNT + LTH_CT000401-QUANT.
LW_SALK3 = LW_SALK3 + LTH_CT000401-AMOUNT.
CLEAR LTH_CT000401.
ENDLOOP.
* Qty without batch
IF LW_AMOUNT < LTH_OBEW-LBKUM.
LW_AMOUNT = LTH_OBEW-LBKUM - LW_AMOUNT.
IF LTH_OBEW-VPRSV = C_S.
LTH_CT000401-AMOUNT = LW_AMOUNT * LTH_OBEW-STPRS / LTH_OBEW-PEINH.
ELSE.
LTH_CT000401-AMOUNT = LW_AMOUNT * LTH_OBEW-VERPR / LTH_OBEW-PEINH.
ENDIF.
LTH_CT000401-MATNR = LTH_OBEW-MATNR.
LTH_CT000401-WERKS = LTH_OBEW-BWKEY.
LTH_CT000401-LGORT = SPACE.
LTH_CT000401-CHARG = SPACE.
LTH_CT000401-SOBKZ = C_CNCS_STOCK. "Stock Indicator
LTH_CT000401-BUKRS = P_BUKRS.
LTH_CT000401-GJAHR = P_GJAHR.
LTH_CT000401-MONAT = P_PERID. "Perid
LTH_CT000401-BKLAS = LTH_OBEW-BKLAS. "Valuetion class
LTH_CT000401-QUANT = LW_AMOUNT. "Total stock qty
LTH_CT000401-MEINS = LTH_OBEW-PEINH. "Price Unit
* Get Account
IF LTH_OBEW-BKLAS = C_2110.
LTH_CT000401-HKONT = W_FACCOUNT.
ELSE.
LTH_CT000401-HKONT = W_SACCOUNT.
ENDIF.
* Get the routing data
PERFORM GET_ROUTING_DATA USING '
LTH_CT000401-WERKS
LTH_CT000401-LGORT
LTH_CT000401-MATNR
LTH_CT000401-CHARG
CHANGING LTH_CT000401-RTGRP1
LTH_CT000401-RTGRP2
LTH_CT000401-RTGRP3
LTH_CT000401-RTGRP4
LTH_CT000401-RTGRP5
LTH_CT000401-RTGRP6
LTH_CT000401-RTGRP7
LTH_CT000401-RTGRP8.
* Get profit center
SELECT SINGLE PRCTR
FROM MARC
INTO LTH_CT000401-PRCTR
WHERE MATNR = LTH_CT000401-MATNR
AND WERKS = LTH_CT000401-WERKS.
APPEND LTH_CT000401 TO TD_TEMP401.
LW_SALK3 = LW_SALK3 + LTH_CT000401-AMOUNT.
CLEAR LTH_CT000401.
ENDIF.
* Balance the total amount
IF LW_SALK3 <> LTH_OBEW-SALK3.
LTH_CT000401-AMOUNT = LTH_OBEW-SALK3 - LW_SALK3.
LTH_CT000401-MATNR = LTH_OBEW-MATNR.
LTH_CT000401-WERKS = LTH_OBEW-BWKEY.
LTH_CT000401-LGORT = SPACE.
LTH_CT000401-CHARG = SPACE.
LTH_CT000401-SOBKZ = C_SO_STOCK. "Stock Indicator
LTH_CT000401-BUKRS = P_BUKRS.
LTH_CT000401-GJAHR = P_GJAHR.
LTH_CT000401-MONAT = P_PERID. "Perid
LTH_CT000401-BKLAS = LTH_OBEW-BKLAS. "Valuetion class
* LTH_CT000401-QUANT = LW_AMOUNT. "Total stock qty
LTH_CT000401-MEINS = LTH_OBEW-PEINH. "Price Unit
* Get Account
IF LTH_OBEW-BKLAS = C_2110.
LTH_CT000401-HKONT = W_FACCOUNT.
ELSE.
LTH_CT000401-HKONT = W_SACCOUNT.
ENDIF.
* Get the routing data
PERFORM GET_ROUTING_DATA USING '
LTH_CT000401-WERKS
LTH_CT000401-LGORT
LTH_CT000401-MATNR
LTH_CT000401-CHARG
CHANGING LTH_CT000401-RTGRP1
LTH_CT000401-RTGRP2
LTH_CT000401-RTGRP3
LTH_CT000401-RTGRP4
LTH_CT000401-RTGRP5
LTH_CT000401-RTGRP6
LTH_CT000401-RTGRP7
LTH_CT000401-RTGRP8.
* Get profit center
SELECT SINGLE PRCTR
FROM MARC
INTO LTH_CT000401-PRCTR
WHERE MATNR = LTH_CT000401-MATNR
AND WERKS = LTH_CT000401-WERKS.
APPEND LTH_CT000401 TO TD_CT000401.
CLEAR LTH_CT000401.
ENDIF.
CLEAR: LW_SALK3,
LW_AMOUNT.
CLEAR LTH_OBEW.
ENDLOOP.
ENDFORM. " ASSIGN_TO_CONS_BATCH
- Stock overview and cost assignment - 6
- Stock overview and cost assignment - 5
- Stock overview and cost assignment - 4
- Stock overview and cost assignment - 2
- Stock overview and cost assignment - 1
- Stock overview and cost assignment - 3
- Sherlock and Cost
- Assignment > Count and Histogram
- Stock Tables and Stock Types
- Assignment 6
- Introduction and Overview
- Servlets and JSP overview
- Mininet overview and installation
- Animation and Graphics-- overview
- Animation and Graphics Overview
- Analysis and Design Overview
- HIVE 0.14 Cost Based Optimizer (CBO) Technical Overview
- [Coursera_Machine_learning]--Model and Cost Funtion
- 10.4 复制CONNECT BY的功能
- Stock overview and cost assignment - 4
- Java的一些坑
- Stock overview and cost assignment - 2
- 10.4.1 LEVEL伪列
- Stock overview and cost assignment - 6
- Delphi 操作“任务栏”
- Stock overview and cost assignment - 1
- html的表单标签
- 10.4.4 CONNECT_BY_ISCYCLE伪列和NOCYCLE参数
- spring整合junit集成测试
- 使用Eclipse将Android项目打Jar包
- Stock overview and cost assignment - 3
- 牛掰网址收藏