ronaldkwandy

sp_test1

Dec 22nd, 2019
493
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION spHAT_Get_Inq_Data_Rekap_Penghasilan_Karyawan (REFCURSOR, -- PHasil
  2.                                                                           VARCHAR, -- PSessionId
  3.                                                                           VARCHAR, -- PTanggalProses
  4.                                                                           VARCHAR, -- PJamProses
  5.                                                                           VARCHAR, -- PGridFields
  6.                                                                           VARCHAR, -- PGroupBy
  7.                                                                           VARCHAR, -- PTahunBulanGajiAwal
  8.                                                                           VARCHAR, -- PTahunBulanGajiAkhir
  9.                                                                           VARCHAR, -- PKelompokPayrollId
  10.                                                                           VARCHAR, -- PNik
  11.                                                                           VARCHAR, -- PNama
  12.                                                                           VARCHAR, -- PNpwpId
  13.                                                                           VARCHAR, -- PStatusKaryawanId
  14.                                                                           VARCHAR, -- PDepartemenId
  15.                                                                           VARCHAR, -- PJabatanId
  16.                                                                           VARCHAR, -- PLevelJabatanId
  17.                                                                           VARCHAR, -- PAttribute1Id
  18.                                                                           VARCHAR, -- PAttribute1value
  19.                                                                           VARCHAR, -- PAttribute2Id
  20.                                                                           VARCHAR, -- PAttribute2value
  21.                                                                           VARCHAR, -- PAttribute3Id
  22.                                                                           VARCHAR, -- PAttribute3value
  23.                                                                           VARCHAR, -- PAttribute4Id
  24.                                                                           VARCHAR, -- PAttribute4value
  25.                                                                           VARCHAR, -- PAttribute5Id
  26.                                                                           VARCHAR, -- PAttribute5value
  27.                                                                           VARCHAR, -- PAttribute6Id
  28.                                                                           VARCHAR, -- PAttribute6value
  29.                                                                           VARCHAR, -- PAttribute7Id
  30.                                                                           VARCHAR, -- PAttribute7value
  31.                                                                           VARCHAR, -- PAttribute8Id
  32.                                                                           VARCHAR, -- PAttribute8value
  33.                                                                           VARCHAR, -- PAttribute9Id
  34.                                                                           VARCHAR, -- PAttribute9value
  35.                                                                           VARCHAR, -- PAttribute10Id
  36.                                                                           VARCHAR) -- PAttribute10value
  37. RETURNS REFCURSOR
  38. AS
  39. $BODY$
  40. DECLARE
  41.     PHasil                  ALIAS FOR $1;
  42.     PSessionID              ALIAS FOR $2;
  43.     PTanggalProses          ALIAS FOR $3;
  44.     PJamProses              ALIAS FOR $4;
  45.     PGridFields             ALIAS FOR $5;
  46.     PGroupBy                ALIAS FOR $6;
  47.     PTahunBulanGajiAwal     ALIAS FOR $7;
  48.     PTahunBulanGajiAkhir    ALIAS FOR $8;
  49.     PKelompokPayrollId      ALIAS FOR $9;
  50.     PNik                    ALIAS FOR $10;
  51.     PNama                   ALIAS FOR $11;
  52.     PNpwpId                 ALIAS FOR $12;
  53.     PStatusKaryawanId       ALIAS FOR $13;
  54.     PDepartemenId           ALIAS FOR $14;
  55.     PJabatanId              ALIAS FOR $15;
  56.     PLevelJabatanId         ALIAS FOR $16;
  57.     PAttribute1Id           ALIAS FOR $17;
  58.     PAttribute1value        ALIAS FOR $18;
  59.     PAttribute2Id           ALIAS FOR $19;
  60.     PAttribute2value        ALIAS FOR $20;
  61.     PAttribute3Id           ALIAS FOR $21;
  62.     PAttribute3value        ALIAS FOR $22;
  63.     PAttribute4Id           ALIAS FOR $23;
  64.     PAttribute4value        ALIAS FOR $24;
  65.     PAttribute5Id           ALIAS FOR $25;
  66.     PAttribute5value        ALIAS FOR $26;
  67.     PAttribute6Id           ALIAS FOR $27;
  68.     PAttribute6value        ALIAS FOR $28;
  69.     PAttribute7Id           ALIAS FOR $29;
  70.     PAttribute7value        ALIAS FOR $30;
  71.     PAttribute8Id           ALIAS FOR $31;
  72.     PAttribute8value        ALIAS FOR $32;
  73.     PAttribute9Id           ALIAS FOR $33;
  74.     PAttribute9value        ALIAS FOR $34;
  75.     PAttribute10Id          ALIAS FOR $35;
  76.     PAttribute10value       ALIAS FOR $36;
  77.    
  78.     VStmt                   VARCHAR (100000);
  79.    
  80. BEGIN
  81.    
  82.     VStmt   := 'SELECT ';
  83.        
  84.     VStmt   := VStmt || PGridFields ;
  85.    
  86.     VStmt   := VStmt || ' FROM      public.spHPY_Data_Inq_Rekap_Penghasilan_Kry_001 A';
  87.     VStmt   := VStmt || ' LEFT JOIN hm_opy009 B ON B.hm_msy012_ref_byr_trx_id = B.byrtrxid AND
  88.                                                    B.ref_byr_trx_number = A.byrtrxnumber AND
  89.                                                    B.ref_byr_trx_date = A.byrtrxdate AND
  90.                                                    B.hm_oem001_karyawan_id = A.idkry AND
  91.                                                    B.tahun_bulan_gaji = A.thnblngaji';
  92.  
  93.     VStmt   := VStmt || ' WHERE     A.sessid = ' || chr(39) || PSessionId || chr(39) || ' AND
  94.                                     A.tanggalproses = ' || chr(39) || PTanggalProses || chr(39) || ' AND
  95.                                     A.jamproses = ' || chr(39) || PJamProses || chr(39);
  96.                                    
  97.     IF (TRIM(PTahunBulanGajiAwal) <> '' AND TRIM(PTahunBulanGajiAkhir) <> '') THEN
  98.         VStmt   := VStmt || ' AND A.thnblngaji BETWEEN ' || TRIM(PTahunBulanGajiAwal) || ' AND ' || TRIM(PTahunBulanGajiAkhir);
  99.     END IF;
  100.    
  101.     IF (TRIM(PKelompokPayrollId) <> '' AND PKelompokPayrollId IS NOT NULL) THEN
  102.         VStmt   := VStmt || ' AND A.idkelpayroll = ' || chr(39) || PKelompokPayrollId || chr(39);
  103.     END IF;
  104.    
  105.     IF (TRIM(PNik) <> '' AND PNik IS NOT NULL) THEN
  106.         VStmt   := VStmt || ' AND A.nik LIKE ' || chr(39) || chr(37) || PNik || chr(37) || chr(39);
  107.     END IF;
  108.    
  109.     IF (TRIM(PNama) <> '' AND PNama IS NOT NULL) THEN
  110.         VStmt   := VStmt || ' AND A.nmkry LIKE ' || chr(39) || chr(37) || PNama || chr(37) || chr(39);
  111.     END IF;
  112.    
  113.     IF (TRIM(PNpwpId) <> '' AND PNpwpId IS NOT NULL) THEN
  114.         VStmt   := VStmt || ' AND A.idnpwpperush = ' || chr(39) || PNpwpId || chr(39);
  115.     END IF;
  116.    
  117.     IF (TRIM(PStatusKaryawanId) <> '' AND PStatusKaryawanId IS NOT NULL) THEN
  118.         VStmt   := VStmt || ' AND A.idstatuskry = ' || chr(39) || PStatusKaryawanId || chr(39);
  119.     END IF;
  120.    
  121.     IF (TRIM(PDepartemenId) <> '' AND PDepartemenId IS NOT NULL) THEN
  122.         VStmt   := VStmt || ' AND A.iddepartemen = ' || chr(39) || PDepartemenId || chr(39);
  123.     END IF;
  124.    
  125.     IF (TRIM(PJabatanId) <> '' AND PJabatanId IS NOT NULL) THEN
  126.         VStmt   := VStmt || ' AND A.idjabatan = ' || chr(39) || PJabatanId || chr(39);
  127.     END IF;
  128.    
  129.     IF (TRIM(PLevelJabatanId) <> '' AND PLevelJabatanId IS NOT NULL) THEN
  130.         VStmt   := VStmt || ' AND A.idleveljabatan = ' || chr(39) || PLevelJabatanId || chr(39);
  131.     END IF;
  132.    
  133.     IF (TRIM(PAttribute1Id) <> '' AND PAttribute1Id IS NOT NULL) THEN
  134.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute1Id || chr(39);
  135.     END IF;
  136.    
  137.     IF (TRIM(PAttribute1value) <> '' AND PAttribute1value IS NOT NULL) THEN
  138.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute1value || chr(37) || chr(39);
  139.     END IF;
  140.    
  141.     IF (TRIM(PAttribute2Id) <> '' AND PAttribute2Id IS NOT NULL) THEN
  142.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute2Id || chr(39);
  143.     END IF;
  144.    
  145.     IF (TRIM(PAttribute2value) <> '' AND PAttribute2value IS NOT NULL) THEN
  146.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute2value || chr(37) || chr(39);
  147.     END IF;
  148.    
  149.     IF (TRIM(PAttribute3Id) <> '' AND PAttribute3Id IS NOT NULL) THEN
  150.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute3Id || chr(39);
  151.     END IF;
  152.    
  153.     IF (TRIM(PAttribute3value) <> '' AND PAttribute3value IS NOT NULL) THEN
  154.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute3value || chr(37) || chr(39);
  155.     END IF;
  156.    
  157.     IF (TRIM(PAttribute4Id) <> '' AND PAttribute4Id IS NOT NULL) THEN
  158.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute4Id || chr(39);
  159.     END IF;
  160.    
  161.     IF (TRIM(PAttribute4value) <> '' AND PAttribute4value IS NOT NULL) THEN
  162.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute4value || chr(37) || chr(39);
  163.     END IF;
  164.    
  165.     IF (TRIM(PAttribute5Id) <> '' AND PAttribute5Id IS NOT NULL) THEN
  166.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute5Id || chr(39);
  167.     END IF;
  168.    
  169.     IF (TRIM(PAttribute5value) <> '' AND PAttribute5value IS NOT NULL) THEN
  170.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute5value || chr(37) || chr(39);
  171.     END IF;
  172.    
  173.     IF (TRIM(PAttribute6Id) <> '' AND PAttribute6Id IS NOT NULL) THEN
  174.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute6Id || chr(39);
  175.     END IF;
  176.    
  177.     IF (TRIM(PAttribute6value) <> '' AND PAttribute6value IS NOT NULL) THEN
  178.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute6value || chr(37) || chr(39);
  179.     END IF;
  180.    
  181.     IF (TRIM(PAttribute7Id) <> '' AND PAttribute7Id IS NOT NULL) THEN
  182.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute7Id || chr(39);
  183.     END IF;
  184.    
  185.     IF (TRIM(PAttribute7value) <> '' AND PAttribute7value IS NOT NULL) THEN
  186.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute7value || chr(37) || chr(39);
  187.     END IF;
  188.    
  189.     IF (TRIM(PAttribute8Id) <> '' AND PAttribute8Id IS NOT NULL) THEN
  190.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute8Id || chr(39);
  191.     END IF;
  192.    
  193.     IF (TRIM(PAttribute8value) <> '' AND PAttribute8value IS NOT NULL) THEN
  194.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute8value || chr(37) || chr(39);
  195.     END IF;
  196.    
  197.     IF (TRIM(PAttribute9Id) <> '' AND PAttribute9Id IS NOT NULL) THEN
  198.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute9Id || chr(39);
  199.     END IF;
  200.    
  201.     IF (TRIM(PAttribute9value) <> '' AND PAttribute9value IS NOT NULL) THEN
  202.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute9value || chr(37) || chr(39);
  203.     END IF;
  204.    
  205.     IF (TRIM(PAttribute10Id) <> '' AND PAttribute10Id IS NOT NULL) THEN
  206.         VStmt   := VStmt || ' AND A.idatributtambahan1 = ' || chr(39) || PAttribute10Id || chr(39);
  207.     END IF;
  208.    
  209.     IF (TRIM(PAttribute10value) <> '' AND PAttribute10value IS NOT NULL) THEN
  210.         VStmt   := VStmt || ' AND A.atributtambahan1value LIKE ' || chr(39) || chr(37) || PAttribute10value || chr(37) || chr(39);
  211.     END IF;
  212.  
  213.     VStmt   := VStmt || ' GROUP BY ' || PGroupBy || ';';
  214.    
  215.     OPEN PHasil FOR EXECUTE VStmt;
  216.    
  217.     RETURN PHasil;
  218.    
  219. END;
  220.  
  221. $BODY$
  222. LANGUAGE 'plpgsql';
Advertisement
Add Comment
Please, Sign In to add comment