Advertisement
samuel025

Function Monthly Posting SASA

Jul 1st, 2021
1,296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. CREATE OR REPLACE FUNCTION public.gl_posting_monthly_journal(
  2.     bigint,
  3.     character varying,
  4.     character varying)
  5.     RETURNS void
  6.     LANGUAGE 'plpgsql'
  7.     COST 100
  8.     VOLATILE PARALLEL UNSAFE
  9. AS $BODY$
  10. DECLARE
  11.  
  12.     pTenantId            ALIAS FOR $1;
  13.     pSessionId            ALIAS FOR $2;
  14.     pProcessNo            ALIAS FOR $3;
  15.  
  16.     vProcessId                bigint;
  17.     vOuId                    bigint;
  18.     vUserId                    bigint;
  19.     vYearMonth                character varying(6);
  20.     vDatetime                character varying(14);
  21.     vPeriode                character varying(10);
  22.  
  23. BEGIN
  24.    
  25.     vPeriode := 'MONTHLY';
  26.    
  27.     SELECT A.process_message_id INTO vProcessId
  28.     FROM t_process_message A
  29.     WHERE A.tenant_id = pTenantId AND
  30.         A.process_name = 'gl_posting_monthly_journal' AND
  31.         A.process_no = pProcessNo;
  32.        
  33.     SELECT CAST(A.process_parameter_value AS bigint) INTO vOuId
  34.     FROM t_process_parameter A
  35.     WHERE A.process_message_id = vProcessId AND
  36.         A.process_parameter_key = 'ouId';
  37.    
  38.     SELECT CAST(A.process_parameter_value AS bigint) INTO vUserId
  39.     FROM t_process_parameter A
  40.     WHERE A.process_message_id = vProcessId AND
  41.         A.process_parameter_key = 'userId';
  42.        
  43.     SELECT CAST(A.process_parameter_value AS character varying(14)) INTO vDatetime
  44.     FROM t_process_parameter A
  45.     WHERE A.process_message_id = vProcessId AND
  46.         A.process_parameter_key = 'datetime';
  47.        
  48.     SELECT CAST(A.process_parameter_value AS character varying(6)) INTO vYearMonth
  49.     FROM t_process_parameter A
  50.     WHERE A.process_message_id = vProcessId AND
  51.         A.process_parameter_key = 'yearmonth';
  52.  
  53.     PERFORM gl_reversed_sign_amount(pTenantId, vYearMonth);
  54.     /*
  55.      * Lakukan journal posting raw material, WIP, dan finish goods
  56.      */
  57.     PERFORM gl_posting_raw_materials_costing_journal(pTenantId, pSessionId, vOuId, vUserId, vYearMonth, vDatetime);
  58.     PERFORM gl_posting_finish_goods_costing_journal(pTenantId, pSessionId, vOuId, vUserId, vYearMonth, vDatetime);
  59.    
  60.     -- ahen 10 jun 2015
  61.     PERFORM gl_validate_journal(pTenantId, vOuId, pSessionId, pProcessNo, vUserId, vDatetime, vYearMonth, vPeriode);
  62.    
  63.     --Adrian, Aug 31, 2017
  64.     UPDATE m_admin_process_ledger
  65.     SET flag_process ='N',
  66.         update_datetime = vDatetime,
  67.         update_user_id = vUserId,
  68.         version = version + 1
  69.     WHERE ledger_code = 'GL'
  70.         AND date_year_month = vYearMonth
  71.         AND ou_id = vOuId;
  72.    
  73. END;
  74. $BODY$;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement