Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION mlm_insert_temp_trx_penjualan_pulsa(character varying, bigint, bigint, character varying, character varying)
  2.   RETURNS VOID AS
  3. $BODY$
  4. DECLARE
  5.     pSessionId                  alias for $1;
  6.     pTenantId                   alias for $2;
  7.     pUserId                     alias for $3;
  8.     pDatetime                   alias for $4;
  9.     pDate                       alias for $5;
  10.  
  11.     vDbName                     character varying;
  12.     vDbUser                     character varying;
  13.     vDbPassword                 character varying;
  14.     vDbPort                     character varying;
  15.     vDbHostAddr                 character varying;
  16.    
  17.     vNo                         character varying(1);
  18.    
  19. BEGIN
  20.     /**
  21.      * 1. Ambil config HOST, DBNAME, PORT
  22.      * 2. Insert ke tt via dblink
  23.      */
  24.     vNo := 'N';
  25.    
  26.     RAISE NOTICE 'pDate = %', pDate;
  27.    
  28.     SELECT f_get_value_system_config_by_param_code(pTenantId, 'PALOMAWEB.DB.HOSTADDR')::text INTO vDbHostAddr;
  29.     SELECT f_get_value_system_config_by_param_code(pTenantId, 'PALOMAWEB.DB.PORT')::text INTO vDbPort;
  30.     SELECT f_get_value_system_config_by_param_code(pTenantId, 'PALOMAWEB.DB.NAME')::text INTO vDbName;
  31.     SELECT f_get_value_system_config_by_param_code(pTenantId, 'PALOMAWEB.DB.USER')::text INTO vDbUser;
  32.     SELECT f_get_value_system_config_by_param_code(pTenantId, 'PALOMAWEB.DB.PASSWORD')::text INTO vDbPassword;
  33.  
  34.     RAISE NOTICE 'vDbHostAddr = %', vDbHostAddr;
  35.     RAISE NOTICE 'vDbPort = %', vDbPort;
  36.     RAISE NOTICE 'vDbName = %', vDbName;
  37.     RAISE NOTICE 'vDbUser = %', vDbUser;
  38.     RAISE NOTICE 'vDbPassword = %', vDbPassword;
  39.    
  40.     -- DELETE TABLE tt_trx_penjualan_pulsa
  41.     DELETE FROM tt_trx_penjualan_pulsa WHERE session_id = pSessionId;
  42.    
  43.     INSERT INTO tt_trx_penjualan_pulsa(
  44.             session_id, trx_pulsa_id, member_code, item_name, item_amount,
  45.             pv_percent, msisdn, create_datetime, create_user_id, update_datetime,
  46.             update_user_id, version)
  47.     SELECT pSessionId, A.id, A.member_code, A.item_name, A.item_amount,
  48.             A.pv_percent, A.msisdn, A.create_datetime, A.create_user_id, A.update_datetime,
  49.             A.update_user_id, A.version
  50.     FROM dblink(
  51.         'dbname='||vDbName||' port='||vDbPort||' hostaddr='||vDbHostAddr||' user='||vDbUser||' password='||vDbPassword||''::text,
  52.         'SELECT trx_pulsa_id, member_code, item_name, item_amount,
  53.             pv_percent, msisdn, create_datetime, create_user_id, update_datetime,
  54.             update_user_id, version
  55.         FROM mlm_trx_penjualan_pulsa A
  56.         WHERE LEFT(A.create_datetime,8) = '''||pDate||''''::text
  57.         ) AS A
  58.         (
  59.             id                  bigint,
  60.             member_code         character varying(10),
  61.             item_name           character varying(50),
  62.             item_amount         numeric,     
  63.             pv_percent          numeric,
  64.             msisdn              character varying(30),
  65.             create_datetime     character varying(14),
  66.             create_user_id      bigint,
  67.             update_datetime     character varying(14),
  68.             update_user_id      bigint,
  69.             version             bigint
  70.         );
  71.        
  72. END;
  73. $BODY$
  74. LANGUAGE plpgsql VOLATILE
  75. COST 100;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement