zoukankan      html  css  js  c++  java
  • 根据ccid取得账户,更改某段值再创建账户,返回新的ccid

    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;
    /
    

  • 相关阅读:
    eclipse安装m2e
    Ubuntu安装Maven(转)
    父亲节点的实现
    vscode go linux 依赖包
    golang DHCPv4/v6 demo
    解决golang.org模块无法下载的问题
    go 网络数据包分析(3)
    go 网络数据包分析(2)
    Go语言:判断IP是否合法是IPv4还是IPv6
    go IP地址转化为二进制数
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299528.html
Copyright © 2011-2022 走看看