Advertisement
Guest User

f_validate_mapping_user_salesman

a guest
Jun 17th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     CREATE OR REPLACE FUNCTION f_validate_mapping_user_salesman(character varying,bigint, bigint,character varying)
  2.         RETURNS void AS
  3.     $BODY$
  4.     DECLARE
  5.    
  6.         pSessionId      ALIAS FOR $1;
  7.         pTenantId       ALIAS FOR $2;
  8.         pUserId         ALIAS FOR $3;
  9.         datetime        ALIAS FOR $4;
  10.    
  11.         vYes            CHARACTER VARYING;
  12.         vNo             CHARACTER VARYING;
  13.         vInProgress     CHARACTER VARYING;
  14.        
  15.     BEGIN
  16.         vYes    :=  'Y';
  17.         vNo :=  'N';
  18.         vInProgress :=  'I';
  19.        
  20.         RAISE NOTICE 'function dimulai';
  21.         RAISE NOTICE 'Session Id : %',pSessionId;
  22.         RAISE NOTICE 'Tenant Id : %',pTenantId;
  23.        
  24.         UPDATE tt_migrate_mapping_user_salesman
  25.         SET flg_validate = vInProgress, message = ''
  26.         WHERE session_id = pSessionId;
  27.        
  28.         --Validasi Username, Kode Salesman, dan Active yang harus diisi
  29.            UPDATE tt_migrate_mapping_user_salesman A
  30.             SET flg_validate = vNo, message = message || 'Username harus diisi, '
  31.             WHERE session_id = pSessionId
  32.             AND flg_validate IN ( vNo, vInProgress)
  33.             AND A.username = '';
  34.            
  35.            UPDATE tt_migrate_mapping_user_salesman A
  36.             SET flg_validate = vNo, message = message || 'Kode Salesman harus diisi, '
  37.             WHERE session_id = pSessionId
  38.             AND flg_validate IN ( vNo, vInProgress)
  39.             AND A.partner_code = '';
  40.        
  41.            UPDATE tt_migrate_mapping_user_salesman A
  42.             SET flg_validate = vNo, message = message || 'Active harus diisi, '
  43.             WHERE session_id = pSessionId
  44.             AND flg_validate IN ( vNo, vInProgress)
  45.             AND A.active = '';
  46.        
  47.         -- Validasi username harus terdaftar di table t_user
  48.             UPDATE tt_migrate_mapping_user_salesman A
  49.                SET flg_validate = vNo, message = message || 'Username tidak terdaftar, '
  50.                WHERE session_id = pSessionId
  51.                AND flg_validate IN ( vNo, vInProgress)
  52.                AND NOT EXISTS (
  53.                     SELECT 1 FROM t_user B WHERE A.username = B.username
  54.                );
  55.                
  56.         --Validasi kode salesman harus terdaftar di table m_partner
  57.            UPDATE tt_migrate_mapping_user_salesman A
  58.             SET flg_validate = vNo, message = message || 'Kode Salesman tidak terdaftar, '
  59.             WHERE session_id = pSessionId
  60.             AND flg_validate IN ( vNo, vInProgress)
  61.             AND NOT EXISTS (
  62.                 SELECT 1 FROM m_partner B WHERE A.partner_code = B.partner_code
  63.             );
  64.            
  65.         --Validasi Active berisi Y/N
  66.            UPDATE tt_migrate_mapping_user_salesman A
  67.             SET flg_validate = vNo, message = message || 'Active harus berisi Y atau N, '
  68.             WHERE session_id = pSessionId
  69.             AND flg_validate = vInProgress
  70.             AND A.active NOT IN ( vYes, vNo);
  71.            
  72.         /*--Validasi data duplikat berdasarkan username dan kode salesman
  73.             WITH duplicateCode AS (
  74.                 SELECT username, partner_code
  75.                 FROM tt_migrate_mapping_user_salesman
  76.                 WHERE session_id = pSessionId
  77.                     AND tenant_id = pTenantId
  78.                 GROUP BY partner_code,username
  79.                 HAVING COUNT(partner_code) > 1 AND COUNT(username) > 1
  80.             )  
  81.             UPDATE tt_migrate_mapping_user_salesman Z
  82.                 SET flg_validate=vYes, message = 'Username dan Kode Salesman Duplikat'
  83.             FROM t_user A, duplicateCode B
  84.             WHERE Z.session_id = pSessionId
  85.                 AND A.session_id = Z.session_id
  86.                 AND A.tenantt_id = Z.tenant_id
  87.                 AND Z.partner_code = B.partner_code
  88.                 AND A.username = B.username
  89.                 AND A.flg_validate = vInProgress;*/
  90.                
  91.           --Validasi data yang di migrasi belum terdaftar
  92.            UPDATE tt_migrate_mapping_user_salesman Z
  93.             SET flg_validate = vNo, message = message || 'Data telah terdaftar, '
  94.             WHERE session_id = pSessionId
  95.             AND flg_validate IN ( vNo, vInProgress)
  96.             AND  EXISTS (
  97.                 SELECT 1 FROM m_policy_salesman A
  98.                 INNER JOIN t_user B ON A.user_id = B.user_id
  99.                 INNER JOIN m_partner C ON A.partner_id = C.partner_id
  100.                 WHERE Z.username = B.username
  101.                     AND Z.partner_code = C.partner_code
  102.             );
  103.            
  104.         UPDATE tt_migrate_mapping_user_salesman
  105.         SET flg_validate = vYes, flg_migrate = vInProgress
  106.         WHERE session_id = pSessionId AND flg_validate=vInProgress;
  107.            
  108.     END ;
  109.     $BODY$
  110.       LANGUAGE plpgsql VOLATILE
  111.       COST 100;
  112.     ALTER FUNCTION f_validate_mapping_user_salesman(CHARACTER VARYING, bigint,bigint, CHARACTER VARYING)
  113.       OWNER TO postgres;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement