根据ccid取得账户,更改某段值再创建账户,返回新的ccid

原创 2013年12月04日 23:17:22
CREATE OR REPLACE PACKAGE cux_cuxaprebate_utl IS

 
  * ===============================================
  *   PROGRAM NAME:
  *          cux_price_utl_pkg
  *   DESCRIPTION:
  *          CUX:应付发票平台返利开发FORM 工具包
  *   HISTORY:
  *        1.00 2013-12-01 cxy
  * ==============================================*/
  /* =============================================
  *   FUNCTION / PROCEDURE
  *       create_account
  *   DESCRIPTION:
  *       根据ccid取得账户,更改某段值再创建账户,返回新的ccid
  *   ARGUMENT:
          p_sql_stmt :动态SQL语句
  *   RETURN:
  *        N/A
  *   HISTORY:
  *        1.00 2013-12-01 cxy
  * =============================================*/
  PROCEDURE create_account(p_org_id IN NUMBER,
                           p_ccid   IN NUMBER,
                           x_ccid   OUT NUMBER);

END cux_cuxaprebate_utl;
/
CREATE OR REPLACE PACKAGE BODY cux_cuxaprebate_utl IS
  -- Constant Variable
  g_pkg_name        CONSTANT VARCHAR2(30) := 'cux_CUXAPREBATE_utl';
  g_conc_request_id CONSTANT NUMBER := fnd_global.conc_request_id;
  g_login_id     NUMBER := fnd_global.conc_login_id;
  g_user_id      NUMBER := fnd_global.user_id;
  g_prog_appl_id NUMBER := fnd_global.prog_appl_id;
  g_prog_id      NUMBER := fnd_global.conc_program_id;
  g_request_id      CONSTANT NUMBER := fnd_global.conc_request_id;
  g_conc_program_id CONSTANT NUMBER := fnd_global.conc_program_id;
  -- Global constant variable
  g_debug_flag VARCHAR2(1) := nvl(fnd_profile.value('AFLOG_ENABLED'), 'N');
  g_bg_id CONSTANT NUMBER := fnd_profile.value('PER_BUSINESS_GROUP_ID');
  TYPE account_type IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
  v_account_type account_type;
 /* =============================================
  *   FUNCTION / PROCEDURE
  *       create_account
  *   DESCRIPTION:
  *       根据ccid取得账户,更改某段值再创建账户,返回新的ccid
  *   ARGUMENT:
          p_org_id :OU ID
	  p_ccid   :原ccid
 	  x_ccid   :生成新的ccid
  *   RETURN:
  *        N/A
  *   HISTORY:
  *        1.00 2013-12-01 cxy
  * =============================================*/
  PROCEDURE create_account(p_org_id IN NUMBER,
                           p_ccid   IN NUMBER,
                           x_ccid   OUT NUMBER) IS
    comma_location NUMBER := 0;
    v_location     VARCHAR2(100);
    v_count        NUMBER := 0;
    account        VARCHAR2(100) := '06.0.212101.0.0.0.0';
    account_adj    VARCHAR2(100);
    prev_location  NUMBER := 0;
    v_account      VARCHAR2(100);
    x_account      VARCHAR2(100);
  
    p_segment1 VARCHAR2(30);
    p_segment2 VARCHAR2(30);
    p_segment3 VARCHAR2(30);
    p_segment4 VARCHAR2(30);
    p_segment5 VARCHAR2(30);
    p_segment6 VARCHAR2(30);
    p_segment7 VARCHAR2(30);
    --x_ccid    NUMBER;
    v_segment3 VARCHAR2(30);
  BEGIN
    --在最后一个段后面加一个点
    account     := cux_flex_pkg.get_gl_flexfields(p_ccid   => p_ccid,
                                                  p_return => 'A');
    account_adj := account || '.';
    LOOP
      v_count        := v_count + 1;
      comma_location := instr(account_adj, '.', comma_location + 1);
      EXIT WHEN comma_location = 0;
      v_location := substr(account_adj,
                           prev_location + 1,
                           comma_location - prev_location - 1);
      prev_location := comma_location;
      v_account_type(v_account_type.count + 1) := v_location;
    
    END LOOP;
    SELECT attribute1
      INTO v_segment3
      FROM cux_lookup_codes v
     WHERE v.lookup_type = 'CUX_PUBLIC_ACCOUNT_DEFINE'
       AND v.enabled_flag = 'Y'
       AND v.lookup_code = 'AP_REBATE_MD';
    v_account_type(3) := v_segment3;
    FOR i IN v_account_type.first .. v_account_type.last LOOP
      IF i = 1 THEN
        p_segment1 := v_account_type(i);
      ELSIF i = 2 THEN
        p_segment2 := v_account_type(i);
      ELSIF i = 3 THEN
        p_segment3 := v_account_type(i);
      ELSIF i = 4 THEN
        p_segment4 := v_account_type(i);
      ELSIF i = 5 THEN
        p_segment5 := v_account_type(i);
      ELSIF i = 6 THEN
        p_segment6 := v_account_type(i);
      ELSIF i = 7 THEN
        p_segment7 := v_account_type(i);
      END IF;
    END LOOP;
  
    x_ccid := cux_gl_public_pkg.get_code_combination_id(p_org_id   => 101,
                                                        p_segment1 => p_segment1,
                                                        p_segment2 => p_segment2,
                                                        p_segment3 => p_segment3,
                                                        p_segment4 => p_segment4,
                                                        p_segment5 => p_segment5,
                                                        p_segment6 => p_segment6,
                                                        p_segment7 => p_segment7);
    /* dbms_output.put_line(x_ccid);*/
  END;

END cux_cuxaprebate_utl;
/

相关文章推荐

EBS-自动获取/创建CCID

DECLARE   l_ccid NUMBER;   l_msg  VARCHAR2(1000);   l_chart_of_account_id NUMBER;   l_set_of_boo...

通过CCID获得各个段的描述的方法

gl_code_combination 是存放会计科目组合的键弹性域的表单。 该表单中没有字段的描述,一个段一个段的加描述太麻烦了。 我通常都是通过以下的方法来获得描述 sql语句上: S...

ccid驱动支持

编这个有几点要注意,一是交叉编译的工具链,二是安装路径要统一,比如大家都一起安装到ccid下面。三是如果在虚拟机上编,可能会出libusb找不到的问题。而在服务器上,就没有这个问题。本总近一周的血泪啊...
  • MJL007
  • MJL007
  • 2015年03月16日 15:59
  • 655

Linux 平台下Libusb & ccid & pcsc-lite & OpenSC 通用安装步骤

Linux 平台下Libusb & ccid & pcsc-lite & OpenSC 通用安装步骤

Function:通过帐户CCID获取帐户描述

CREATE OR REPLACE FUNCTION MEW_GET_ACCOUNT_DESC_FNC(P_CHART_OF_ACCOUNTS_ID IN NUMBER --科目结构ID      ...
  • gsairon
  • gsairon
  • 2012年12月26日 14:38
  • 439

为Linux集群创建新账户,并配置hadoop集群

之前装python、jdk、hadoop都是用的root账户,这是一个绝对的失策,linux对用户访问权限很严格,新创的hod账户根本无法启动hadoop,而root在hod模式下使用torque是不...

自动创建账户

  • 2012年07月30日 17:25
  • 232KB
  • 下载

HID、SCSI、CCID设备的通信

个人较少接触HID、SCSI设备相关方向的通信,近期接触到几个这类项目,完成后写点心得体会,个人观点,如果有误,敬请指正: 1、HID设备通信      代码开始都是从列举HID设备开始的,中间应用函...
  • jhy8421
  • jhy8421
  • 2015年04月24日 15:19
  • 2012

UKEY通信CCID

CCID通信和HID通信代码相似,借用微软API接口,可以查询到UKEY 所需特殊的头文件:winscard.h http://blog.csdn.net/xiven/article/detail...

USB CCID理解

名词解释 CCID: Integrated Circuit(s) Cards Interface Device ICC: Integrated Circuit(s) Cards 这两天在调C...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:根据ccid取得账户,更改某段值再创建账户,返回新的ccid
举报原因:
原因补充:

(最多只允许输入30个字)