Chinaunix首页 | 论坛 | 博客
  • 博客访问: 710408
  • 博文数量: 145
  • 博客积分: 3446
  • 博客等级: 中校
  • 技术积分: 1567
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-30 13:58
文章分类

全部博文(145)

文章存档

2021年(1)

2020年(1)

2019年(1)

2018年(6)

2017年(1)

2016年(10)

2015年(12)

2014年(10)

2013年(15)

2012年(33)

2011年(21)

2010年(9)

2009年(18)

2008年(2)

2006年(5)

我的朋友

分类: Web开发

2013-04-27 15:22:31


FUNCTION zmoney_convert.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     REFERENCE(DATE) TYPE D DEFAULT SY-DATUM
*"     REFERENCE(FOREIGN_AMOUNT) TYPE  CRMT_NET_VALUE
*"     REFERENCE(FOREIGN_CURRENCY) TYPE  CRMT_CURRENCY
*"     REFERENCE(LOCAL_CURRENCY) TYPE  CRMT_CURRENCY DEFAULT 'RMB'
*"  EXPORTING
*"     REFERENCE(EXCHANGE_RATE) TYPE  UKURS_CURR
*"     REFERENCE(FOREIGN_FACTOR) TYPE  FFACT_CURR
*"     REFERENCE(LOCAL_AMOUNT) TYPE  CRMT_NET_VALUE
*"     REFERENCE(LOCAL_FACTOR) TYPE  FFACT_CURR
*"----------------------------------------------------------------------
  DATA dest LIKE rfcdes-rfcdest .

  IF sy-mandt = '777'.
    dest = 'RFC_P01_666_GE'.
  ELSEIF sy-mandt = '162'.
    dest = 'RFC_P01_666_GE'.
  ELSEIF sy-mandt = '137'.
    dest = 'RFC_RS1_666_HQ'.
  ENDIF .

  CALL FUNCTION 'Z1CONVERT_TO_LOCAL_CURRENCY'
    DESTINATION dest
    EXPORTING
      date             = date
      foreign_amount   = foreign_amount
      foreign_currency = foreign_currency
      local_currency   = local_currency
    IMPORTING
      exchange_rate    = exchange_rate
      foreign_factor   = foreign_factor
      local_amount     = local_amount
      local_factor     = local_factor
    EXCEPTIONS
      no_rate_found    = 1
      overflow         = 2
      no_factors_found = 3
      no_spread_found  = 4
      derived_2_times  = 5
      OTHERS           = 6.

  local_amount = local_amount * local_factor / foreign_factor.

ENDFUNCTION.




FUNCTION Z1CONVERT_TO_LOCAL_CURRENCY.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(CLIENT) LIKE SY-MANDT DEFAULT SY-MANDT
*"     VALUE(DATE) LIKE  SYST-DATUM
*"     VALUE(FOREIGN_AMOUNT) TYPE  PBR_ACURR
*"     VALUE(FOREIGN_CURRENCY) TYPE  FCURR_CURR
*"     VALUE(LOCAL_CURRENCY) TYPE  TCURR_CURR
*"     VALUE(RATE) TYPE  WT_RATEZ DEFAULT 0
*"     VALUE(TYPE_OF_RATE) TYPE  KURST_CURR DEFAULT 'M'
*"     VALUE(READ_TCURR) TYPE  CHAR1 DEFAULT 'X'
*"  EXPORTING
*"     VALUE(EXCHANGE_RATE) LIKE  TCURR-UKURS
*"     VALUE(FOREIGN_FACTOR) TYPE  FFACT_CURR
*"     VALUE(LOCAL_AMOUNT) TYPE  PBR_ACURR
*"     VALUE(LOCAL_FACTOR) TYPE  FFACT_CURR
*"     VALUE(EXCHANGE_RATEX) TYPE  PBR_ACURR
*"     VALUE(FIXED_RATE) TYPE  UKURS_CURR
*"     VALUE(DERIVED_RATE_TYPE) LIKE  TCURR-KURST
*"  EXCEPTIONS
*"      NO_RATE_FOUND
*"      OVERFLOW
*"      NO_FACTORS_FOUND
*"      NO_SPREAD_FOUND
*"      DERIVED_2_TIMES
*"----------------------------------------------------------------------
  CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
       EXPORTING
            CLIENT            = CLIENT
            DATE              = DATE
            FOREIGN_AMOUNT    = FOREIGN_AMOUNT
            FOREIGN_CURRENCY = FOREIGN_CURRENCY
            LOCAL_CURRENCY    = LOCAL_CURRENCY
            RATE              = RATE
            TYPE_OF_RATE      = TYPE_OF_RATE
            READ_TCURR        = READ_TCURR
       IMPORTING
            EXCHANGE_RATE     = EXCHANGE_RATE
            FOREIGN_FACTOR    = FOREIGN_FACTOR
            LOCAL_AMOUNT      = LOCAL_AMOUNT
            LOCAL_FACTOR      = LOCAL_FACTOR
            EXCHANGE_RATEX    = EXCHANGE_RATEX
            FIXED_RATE        = FIXED_RATE
            DERIVED_RATE_TYPE = DERIVED_RATE_TYPE
       EXCEPTIONS
            NO_RATE_FOUND     = 1
            OVERFLOW          = 2
            NO_FACTORS_FOUND = 3
            NO_SPREAD_FOUND   = 4
            DERIVED_2_TIMES   = 5
            OTHERS            = 6.

  CASE SY-SUBRC.
    WHEN 1.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
      RAISING NO_RATE_FOUND.
    WHEN 2.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
      RAISING OVERFLOW.
    WHEN 3.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
      RAISING NO_FACTORS_FOUND.
    WHEN 4.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
      RAISING NO_SPREAD_FOUND.
    WHEN 5.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
      RAISING DERIVED_2_TIMES.
    WHEN 6.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
      WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4
      RAISING OTHERS.
  ENDCASE.

ENDFUNCTION.

阅读(2340) | 评论(0) | 转发(0) |
0

上一篇:sap crm badi

下一篇:RH_STRUC_GET

给主人留下些什么吧!~~