過程及描述
| 過程 | 描述 |
|---|---|
| ** p_Template ** | 無 |
| p_grzc_save_detail | 個人轉(zhuǎn)出詳細信息 |
過程實現(xiàn)邏輯及代碼
** p_grzc_save_detail **
- 輸入?yún)?shù)
PROCEDURE p_grzc_save_detail(prm_yac071 IN VARCHAR2, --
prm_yac072 IN VARCHAR2, --
prm_AppCode OUT VARCHAR2,
prm_ErrorMsg OUT VARCHAR2) IS
- 變量申明
n_count NUMBER(6);
n_aae030 NUMBER(6);
n_aae031 NUMBER(6);
n_aae031_t NUMBER(6);
n_aic079_ycx NUMBER(6); --一次性繳費月數(shù)
n_aae180_ycx NUMBER(6); --一次性繳費基數(shù)
n_aae001 NUMBER(4);
s_aaz159 ac02.aaz159%TYPE;
s_aac001 ac01.aac001%TYPE;
s_aae140 ac02.aae140%TYPE;
s_aab034 af01.aab034%TYPE;
s_aab034_c af01.aab034%TYPE;
s_aaz223 ac43.aaz223%TYPE;
n_aae003 ac43.aae003%TYPE;
n_aic079 NUMBER(4);
s_aab301 VARCHAR2(16); --參保地區(qū)行政區(qū)劃
s_aab300 VARCHAR2(200); -- aab300 參保地區(qū)機構(gòu)名稱 VARCHAR2(200)
n_aae180 NUMBER(14, 2); --月繳費基數(shù) NUMBER(14,2)
n_aae181 NUMBER(10, 4); --單位繳費比例 NUMBER(10,4)
n_aae183 NUMBER(10, 4); --其中單位繳費劃入個人賬戶比例 NUMBER(10,4)
n_aae182 NUMBER(10, 4); --個人繳費比例 NUMBER(10,4)
n_yae121 NUMBER(14, 2); --當年記賬金額小計 NUMBER(14,2)
n_aic072 NUMBER(14, 2); --當年記賬金額個人繳費部分 NUMBER(14,2)
n_yae122 NUMBER(14, 2); --當年記賬利息 NUMBER(14,2)
n_yae123 NUMBER(14, 2); --當年記賬利息個人繳費部分 NUMBER(14,2)
n_yae124 NUMBER(14, 2); --至本年末賬戶累計存儲額 NUMBER(14,2)
n_yae125 NUMBER(14, 2); --至本年末賬戶累計存儲額個人繳費部分 NUMBER(14,2)
n_aae002 NUMBER(6); --費款所屬期 NUMBER(6)
n_yaz341 NUMBER(14, 2); --轉(zhuǎn)移人員歷年繳費及個人賬戶記賬信息ID VARCHAR2(16)
s_aae013 VARCHAR2(200);
n_aaa041_dw NUMBER(10, 4); --單位繳費比例
n_aaa042_dw NUMBER(10, 4); --單位繳費劃賬比例
n_aaa041_gr NUMBER(10, 4); --個人繳費比例
n_aaa042_gr NUMBER(10, 4); --個人繳費劃賬比例
n_aaa041_dw_bs NUMBER(10, 4); --單位繳費比例(比例調(diào)整補收)
n_aaa042_dw_bs NUMBER(10, 4); --單位繳費劃賬比例(比例調(diào)整補收)
n_aaa041_gr_bs NUMBER(10, 4); --個人繳費比例(比例調(diào)整補收)
n_aaa042_gr_bs NUMBER(10, 4); --個人繳費劃賬比例(比例調(diào)整補收)
s_aae300 VARCHAR2(1); --一次性躉交標志
n_aae030_ycx NUMBER(6);
- 初始化變量
BEGIN
prm_AppCode := PKG_Constants.GN_DEF_OK;
prm_ErrorMsg := '';
- 刪除ac07a3人員歷年繳費信息及個人賬戶記賬信息中該人員轉(zhuǎn)移ID,轉(zhuǎn)移明細ID對應的條目
DELETE ac07a3
WHERE yac071 = prm_yac071
AND yac072 = prm_yac072;
- 查詢AC07A1人員轉(zhuǎn)移明細表中的aac001個人編號、aaz159人員參保關系ID、aae140險種類型、在本地終止繳費時間aae031賦值到變量中
SELECT a.aac001, a.aaz159, a.aae140, to_char(a.aae035, 'yyyymm')
INTO s_aac001, s_aaz159, s_aae140, n_aae031--個人編號 人員參保關系id 險種類型 在本地繳費終止時間
FROM ac07a1 a
WHERE a.yac071 = prm_yac071--人員轉(zhuǎn)移記錄id
AND a.yac072 = prm_yac072;--人員轉(zhuǎn)移明細id ;
- 查詢AC06人員轉(zhuǎn)移記錄中個人編碼aac001、人員轉(zhuǎn)移記錄ID yac071對應的aab034社會保險經(jīng)辦機構(gòu)編碼賦值到變量s_aab034_
SELECT aab034--社會保險經(jīng)辦機構(gòu)編碼
INTO s_aab034_c
FROM ac06
WHERE aac001 = s_aac001
AND yac071 = prm_yac071;
- 調(diào)用過程pkg_pa_conmmon.p_getEmployeeJfxx獲取指定期間內(nèi),某人某險種的累積實繳月數(shù),累積實繳繳費基數(shù)(不包含任何一次性繳費),并判斷是否執(zhí)行成功
pkg_pa_common.p_getEmployeeJfxx( prm_aac001 => s_aac001, --個人編號
prm_aaz159 => s_aaz159, --人員參保關系ID
prm_aae140 => s_aae140, --險種編號
prm_aab001 => NULL, --單位編號(允許為空)
prm_aab034 => NULL, --經(jīng)辦機構(gòu)(允許為空)
prm_aae002_ks => NULL, --開始期號(允許為空)
prm_aae002_jz => NULL, --截止期號(允許為空)
prm_aae041 => n_aae030, --最小做賬期號
prm_aae042 => n_aae031_t, --最大做賬期號
prm_appcode => prm_appcode, --執(zhí)行代碼
prm_ErrorMsg => prm_ErrorMsg); --執(zhí)行失敗信息
IF prm_AppCode != PKG_Constants.gn_def_OK THEN
RETURN;
END IF;
- 查詢ac01社會保險參保人員中aac001、aac146首次參工用工形式為原固定職工條目的個數(shù)賦值到n_count
如果是固定工且非一次性繳費開始月小于199204,則起始年月設為199204,這樣明細就不會顯示199204前記錄n_aae030 := 199204
SELECT COUNT(1)
INTO n_count
FROM ac01--社會保險參保人員
WHERE aac001 = s_aac001
AND aac146 != pkg_constants.AAC013_YGDZG;--首次參工用工形式
IF n_count <= 0 AND n_aae030 <> 0 AND n_aae030 <= 199204 THEN
n_aae030 := 199204;
END IF;
n_aae002 := n_aae030;
- 本地不存在歷年記錄的話也檢查是否有一次性記錄,有一次性記錄的話也得參與循環(huán)
BEGIN
SELECT MIN(AAE002)--費款所屬期
INTO N_AAE030_YCX
FROM AC43--人員征繳明細
WHERE AAC001 = S_AAC001
AND AAE140 = '110'
AND AAA115 IN ('41', '42', '43', '44', '45')--應繳類型
AND AAE073 > 0--實收總金額
AND YAE230 = 0--退收標志
AND AAE100 = '1';
EXCEPTION
WHEN OTHERS THEN
N_AAE030_YCX := 0;
END;
- 判斷一次性繳費和非一次性繳費在本地是否有數(shù)據(jù),都沒有則n_aae002費款所屬期設為999912即從未有繳費記錄,有非一次性繳費null不做處理,只有一次性繳費按一次性繳費時間賦值到n_aae002,都有取兩者最近記錄
IF n_aae002 = 0 AND N_AAE030_YCX = 0 THEN
n_aae002 := 999912;
ELSIF n_aae002 > 0 AND N_AAE030_YCX = 0 THEN
NULL;
ELSIF n_aae002 = 0 AND N_AAE030_YCX > 0 THEN
n_aae002 := N_AAE030_YCX;
ELSIF n_aae002 > 0 AND N_AAE030_YCX > 0 THEN
n_aae002 := least(n_aae002, N_AAE030_YCX);
END IF;
- 如果費款所屬期為零
IF n_aae002 = 0 THEN
n_aae002 := 999912;
END IF;
- while loop,當費款所屬期n_aae002小于等于系統(tǒng)當前時間時,循環(huán)loop
WHILE n_aae002 <= n_aae031 LOOP
--n_aae031 取得是轉(zhuǎn)移日期,即系統(tǒng)當月
n_aae180 := 0; --月繳費基數(shù) NUMBER(14,2)
n_aae181 := 0; --單位繳費比例 NUMBER(10,4)
n_aae183 := 0; --其中單位繳費劃入個人賬戶比例 NUMBER(10,4)
n_aae182 := 0; --個人繳費比例 NUMBER(10,4)
n_aic079 := 0; --月數(shù)
s_aab300 := '';
s_aab034 := '';
s_aab301 := '';
s_aae013 := '';
N_AIC079_YCX := 0;
N_AAE180_YCX := 0;
s_aae300 := '';
--獲取本地非一次性繳費月數(shù)的 繳費基數(shù) 和 月數(shù)
pkg_pa_common.p_getEmployeeJfxx(prm_aac001 => s_aac001, --個人編號
prm_aaz159 => s_aaz159, --人員參保關系ID
prm_aae140 => s_aae140, --險種編號
prm_aab001 => NULL, --單位編號(允許為空)
prm_aab034 => NULL, --經(jīng)辦機構(gòu)(允許為空)
prm_aae002_ks => n_aae002, --開始期號(允許為空)
prm_aae002_jz => n_aae002, --截止期號(允許為空)
prm_aae202_sj => n_aic079, --實繳月數(shù)
prm_aae180_sj => n_aae180, --實繳基數(shù)
prm_appcode => prm_appcode, --執(zhí)行代碼
prm_ErrorMsg => prm_ErrorMsg); --執(zhí)行失敗信息
IF prm_appcode != pkg_constants.GN_DEF_OK THEN
RETURN;
END IF;
--獲取本地一次性繳費月數(shù)的 繳費基數(shù) 和 月數(shù)
BEGIN
SELECT SUM(AAE202), SUM(NVL(AAE180, 0))--累計繳費月數(shù)增加額 人員繳費基數(shù)
INTO N_AIC079_YCX, N_AAE180_YCX
FROM AC43
WHERE AAC001 = S_AAC001
AND AAE002 = N_AAE002--費款所屬期
AND AAE140 = '110'
AND AAA115 IN ('41', '42', '43', '44', '45')
AND AAE073 > 0
AND YAE230 = 0
AND AAE100 = '1';
EXCEPTION
WHEN no_data_found THEN
N_AIC079_YCX := 0;
N_AAE180_YCX := 0;
END;
--本月有歷年繳費 ( 不包含有一次性繳費 )
IF n_aae180 > 0 AND NVL(N_AAE180_YCX, 0) = 0 THEN
BEGIN
SELECT a.aaz223, a.aab034, a.aae003
INTO s_aaz223, s_aab034, n_aae003
FROM ac43 a
WHERE a.aae140 = s_aae140
AND a.aae002 = n_aae002
AND a.aae100 = pkg_constants.GN_DEF_YES
AND a.aae078 = pkg_constants.GN_DEF_YES
AND a.aaz159 = s_aaz159
AND a.aac001 = s_aac001
AND a.aaa115 IN (pkg_constants.AAA115_ZCYJ, --正常應繳
pkg_constants.AAA115_SJLSSJ, --實繳歷史數(shù)據(jù)
pkg_constants.AAA115_SBJJDJYBF, --失業(yè)保險代繳醫(yī)保費
pkg_constants.AAA115_BZD, --中斷或延遲年限補收
pkg_constants.AAA115_YCXBS, --一次性補收
'37',
'38')
AND rownum = 1;
EXCEPTION
WHEN OTHERS THEN
PRM_APPCODE := PKG_CONSTANTS.GN_DEF_ERR;
PRM_ERRORMSG := '獲取本人歷年繳費出錯,請檢查![' || s_aae140 || ']-[' ||
n_aae002 || ']-[' || s_aaz159 || ']' || SQLERRM ||
PKG_COMMON.F_get_error_line(DBMS_UTILITY.format_call_stack);
RETURN;
END;
--獲取繳費比例
--獲取單位、個人繳費比例
BEGIN
SELECT nvl(a.aaa041, 0), nvl(a.aaa042, 0)
INTO n_aaa041_dw, n_aaa042_dw
FROM ac44 a, aa20 b
WHERE a.aaz223 = s_aaz223
AND a.aae140 = s_aae140
AND a.aae140 = b.aae140
AND a.aae341 = b.aae341
AND b.aae342 = '01'
AND b.aae343 = '01'
AND rownum = 1;
EXCEPTION
WHEN no_data_found THEN
n_aaa041_dw := 0;
n_aaa042_dw := 0;
END;
BEGIN
SELECT nvl(a.aaa041, 0), nvl(a.aaa042, 0)
INTO n_aaa041_gr, n_aaa042_gr
FROM ac44 a, aa20 b
WHERE a.aaz223 = s_aaz223
AND a.aae140 = s_aae140
AND a.aae140 = b.aae140
AND a.aae341 = b.aae341
AND b.aae342 = '02'
AND b.aae343 = '01'
AND rownum = 1;
EXCEPTION
WHEN no_data_found THEN
n_aaa041_gr := 0;
n_aaa042_gr := 0;
END;
-- aae181 單位繳費比例 NUMBER(14,2)
n_aae181 := n_aaa041_dw + n_aaa041_gr - n_aaa042_gr;
-- aae182 個人繳費比例 NUMBER(14,2)
n_aae182 := n_aaa042_gr;
-- aae183 其中單位繳費劃入個人賬戶比例
n_aae183 := n_aaa042_dw;
--備注
IF trunc(n_aae002 / 100) < trunc(n_aae003 / 100) THEN
s_aae013 := n_aae003 || '補繳';
END IF;
--獲取比例調(diào)整補收 20130822 begin --
begin
SELECT a.aaz223
INTO s_aaz223
FROM ac43 a
WHERE a.aae140 = s_aae140
AND a.aae002 = n_aae002
AND a.aae100 = pkg_constants.GN_DEF_YES
AND a.aaz159 = s_aaz159
AND a.aac001 = s_aac001
AND a.aaa115 = pkg_constants.AAA115_JFBLTZBS --繳費比例調(diào)整補收
AND rownum = 1;
--獲取繳費比例調(diào)整補收 繳費比例
--獲取繳費比例調(diào)整補收 單位、個人繳費比例
BEGIN
SELECT nvl(a.aaa041, 0), nvl(a.aaa042, 0)
INTO n_aaa041_dw_bs, n_aaa042_dw_bs
FROM ac44 a, aa20 b
WHERE a.aaz223 = s_aaz223
AND a.aae140 = s_aae140
AND a.aae140 = b.aae140
AND a.aae341 = b.aae341
AND b.aae342 = '01'
AND b.aae343 = '01'
AND rownum = 1;
EXCEPTION
WHEN no_data_found THEN
n_aaa041_dw_bs := 0;
n_aaa042_dw_bs := 0;
END;
BEGIN
SELECT nvl(a.aaa041, 0), nvl(a.aaa042, 0)
INTO n_aaa041_gr_bs, n_aaa042_gr_bs
FROM ac44 a, aa20 b
WHERE a.aaz223 = s_aaz223
AND a.aae140 = s_aae140
AND a.aae140 = b.aae140
AND a.aae341 = b.aae341
AND b.aae342 = '02'
AND b.aae343 = '01'
AND rownum = 1;
EXCEPTION
WHEN no_data_found THEN
n_aaa041_gr_bs := 0;
n_aaa042_gr_bs := 0;
end;
-- aae181 單位繳費比例 NUMBER(14,2)
n_aae181 := n_aae181 + n_aaa041_dw_bs + n_aaa041_gr_bs -
n_aaa042_gr_bs;
-- aae182 個人繳費比例 NUMBER(14,2)
n_aae182 := n_aae182 + n_aaa042_gr_bs;
-- aae183 其中單位繳費劃入個人賬戶比例
n_aae183 := n_aae183 + n_aaa042_dw_bs;
EXCEPTION
WHEN no_data_found THEN
null;
END;
--基數(shù)進行匯總 這時只有歷年繳費的當月基數(shù)
n_aae180 := NVL(n_aae180, 0) + NVL(N_AAE180_YCX, 0);
n_aic079 := NVL(n_aic079, 0) + NVL(N_AIC079_YCX, 0);
s_aae300 := '0';
-- 只有一次性繳費
ELSIF n_aae180 = 0 AND NVL(N_AAE180_YCX, 0) > 0 THEN
SELECT a.aab034
INTO s_aab034
FROM ac43 a
WHERE a.aae140 = s_aae140
AND a.aae002 = n_aae002
AND a.aae100 = pkg_constants.GN_DEF_YES
AND a.aae078 = pkg_constants.GN_DEF_YES
AND a.aaz159 = s_aaz159
AND a.aac001 = s_aac001
AND a.aaa115 IN
(pkg_constants.AAA115_ZDNZFYCXJF, '42', '43', '44', '45') --征地一次性補及其他
AND rownum = 1;
-- aae181 單位繳費比例 NUMBER(14,2)
n_aae181 := 0.2;
-- aae182 個人繳費比例 NUMBER(14,2)
n_aae182 := 0.08;
-- aae183 其中單位繳費劃入個人賬戶比例
n_aae183 := 0;
n_aae180 := NVL(n_aae180, 0) + NVL(N_AAE180_YCX, 0);
n_aic079 := NVL(n_aic079, 0) + NVL(N_AIC079_YCX, 0);
s_aae300 := '1';
--如果歷年和一次性繳費都存在,則一次性繳費先生成一條AC07A3,然后再生成走循環(huán)生成歷年的那條AC07A3
ELSIF n_aae180 > 0 AND NVL(N_AAE180_YCX, 0) > 0 THEN
SELECT a.aab034
INTO s_aab034
FROM ac43 a
WHERE a.aae140 = s_aae140
AND a.aae002 = n_aae002
AND a.aae100 = pkg_constants.GN_DEF_YES
AND a.aae078 = pkg_constants.GN_DEF_YES
AND a.aaz159 = s_aaz159
AND a.aac001 = s_aac001
AND a.aaa115 IN
(pkg_constants.AAA115_ZDNZFYCXJF, '42', '43', '44', '45') --征地一次性補及其他
AND rownum = 1;
-- aae181 單位繳費比例 NUMBER(14,2)
n_aae181 := 0.2;
-- aae182 個人繳費比例 NUMBER(14,2)
n_aae182 := 0.08;
-- aae183 其中單位繳費劃入個人賬戶比例
n_aae183 := 0;
--獲取行政區(qū)劃代碼,參保地區(qū)名稱
SELECT a.aab301, a.aab131
INTO s_aab301, s_aab300
FROM aa48 a, af01 b, ae10 c
WHERE a.aab301 = c.aab301
AND b.aaz198 = c.aaz001
AND b.aab034 = s_aab034;
INSERT INTO AC07A3
(aac001, --個人編號 VARCHAR2(20)
yac071, --人員轉(zhuǎn)移記錄ID VARCHAR2(16)
yac072, --
aab301, --參保地區(qū)行政區(qū)劃 VARCHAR2(16)
aab300, --參保地區(qū)機構(gòu)名稱 VARCHAR2(200)
aae001, --年度 NUMBER(4)
aae002, --費款所屬期 NUMBER(6)
aae180, --月繳費基數(shù) NUMBER(14,2)
aic079, --月數(shù)
aae181, --單位繳費比例 NUMBER(10,4)
aae182, --個人繳費比例 NUMBER(10,4)
aae183, --其中單位繳費劃入個人賬戶比例 NUMBER(10,4)
yae121, --當年記賬金額小計 NUMBER(14,2)
aic072, --當年記賬金額個人繳費部分 NUMBER(14,2)
yae122, --當年記賬利息 NUMBER(14,2)
yae123, --當年記賬利息個人繳費部分 NUMBER(14,2)
yae124, --至本年末賬戶累計存儲額 NUMBER(14,2)
yae125, --至本年末賬戶累計存儲額個人繳費部分 NUMBER(14,2)
yaz341, --轉(zhuǎn)移人員歷年繳費及個人賬戶記賬信息ID VARCHAR2(16)
aae180_fz, --
aae300, --一次性躉交標志
aae013) --備注 VARCHAR2(200)
VALUES
(s_aac001, -- aac001 個人編號 VARCHAR2(20)
prm_yac071, -- yac071 人員轉(zhuǎn)移記錄ID VARCHAR2(16)
prm_yac072, --
s_aab301, -- aab301 參保地區(qū)行政區(qū)劃 VARCHAR2(16)
s_aab300, -- aab300 參保地區(qū)機構(gòu)名稱 VARCHAR2(200)
trunc(n_aae002 / 100), -- aae001 年度 NUMBER(4)
n_aae002, -- aae002 費款所屬期 NUMBER(6)
NVL(N_AAE180_YCX, 0), -- aae180 月繳費基數(shù) NUMBER(14,2)
NVL(N_AIC079_YCX, 0), -- aic079 月數(shù)
n_aae181, -- aae181 單位繳費比例 NUMBER(10,4)
n_aae182, -- aae182 個人繳費比例 NUMBER(10,4)
n_aae183, -- aae183 其中單位繳費劃入個人賬戶比例 NUMBER(10,4)
n_yae121, -- yae121 當年記賬金額小計 NUMBER(14,2)
n_aic072, -- aic072 當年記賬金額個人繳費部分 NUMBER(14,2)
n_yae122, -- yae122 當年記賬利息 NUMBER(14,2)
n_yae123, -- yae123 當年記賬利息個人繳費部分 NUMBER(14,2)
n_yae124, -- yae124 至本年末賬戶累計存儲額 NUMBER(14,2)
n_yae125, -- yae125 至本年末賬戶累計存儲額個人繳費部分 NUMBER(14,2)
NULL, -- yaz341 轉(zhuǎn)移人員歷年繳費及個人賬戶記賬信息ID VARCHAR2(16)
ceil(NVL(N_AAE180_YCX, 0)), --
'1', --一次性躉交標志
''); -- aae013 備注 VARCHAR2(200)
--一次性繳費的那條AC07A3寫完,現(xiàn)在寫歷年的AC07A3
n_aae181 := 0; --單位繳費比例 NUMBER(10,4)
n_aae183 := 0; --其中單位繳費劃入個人賬戶比例 NUMBER(10,4)
n_aae182 := 0; --個人繳費比例 NUMBER(10,4)
s_aab300 := '';
s_aab034 := '';
s_aae013 := '';
SELECT a.aaz223, a.aab034, a.aae003--人員征繳明細id 社會保險經(jīng)辦機構(gòu)編碼 對應費款所屬期
INTO s_aaz223, s_aab034, n_aae003
FROM ac43 a
WHERE a.aae140 = s_aae140
AND a.aae002 = n_aae002
AND a.aae100 = pkg_constants.GN_DEF_YES
AND a.aae078 = pkg_constants.GN_DEF_YES
AND a.aaz159 = s_aaz159
AND a.aac001 = s_aac001
AND a.aaa115 IN (pkg_constants.AAA115_ZCYJ, --正常應繳
pkg_constants.AAA115_SJLSSJ, --實繳歷史數(shù)據(jù)
pkg_constants.AAA115_SBJJDJYBF, --失業(yè)保險代繳醫(yī)保費
pkg_constants.AAA115_BZD, --中斷或延遲年限補收
pkg_constants.AAA115_YCXBS, --一次性補收
'37',
'38')
AND rownum = 1;
--獲取繳費比例
--獲取單位、個人繳費比例
BEGIN
SELECT nvl(a.aaa041, 0), nvl(a.aaa042, 0)
INTO n_aaa041_dw, n_aaa042_dw
FROM ac44 a, aa20 b
WHERE a.aaz223 = s_aaz223
AND a.aae140 = s_aae140
AND a.aae140 = b.aae140
AND a.aae341 = b.aae341
AND b.aae342 = '01'
AND b.aae343 = '01'
AND rownum = 1;
EXCEPTION
WHEN no_data_found THEN
n_aaa041_dw := 0;
n_aaa042_dw := 0;
END;
BEGIN
SELECT nvl(a.aaa041, 0), nvl(a.aaa042, 0)
INTO n_aaa041_gr, n_aaa042_gr
FROM ac44 a, aa20 b
WHERE a.aaz223 = s_aaz223
AND a.aae140 = s_aae140
AND a.aae140 = b.aae140
AND a.aae341 = b.aae341
AND b.aae342 = '02'
AND b.aae343 = '01'
AND rownum = 1;
EXCEPTION
WHEN no_data_found THEN
n_aaa041_gr := 0;
n_aaa042_gr := 0;
END;
-- aae181 單位繳費比例 NUMBER(14,2)
n_aae181 := n_aaa041_dw + n_aaa041_gr - n_aaa042_gr;
-- aae182 個人繳費比例 NUMBER(14,2)
n_aae182 := n_aaa042_gr;
-- aae183 其中單位繳費劃入個人賬戶比例
n_aae183 := n_aaa042_dw;
--備注
IF trunc(n_aae002 / 100) < trunc(n_aae003 / 100) THEN
s_aae013 := n_aae003 || '補繳';
END IF;
--獲取比例調(diào)整補收 20130822 begin --
begin
SELECT a.aaz223
INTO s_aaz223
FROM ac43 a
WHERE a.aae140 = s_aae140
AND a.aae002 = n_aae002
AND a.aae100 = pkg_constants.GN_DEF_YES
AND a.aaz159 = s_aaz159
AND a.aac001 = s_aac001
AND a.aaa115 = pkg_constants.AAA115_JFBLTZBS --繳費比例調(diào)整補收
AND rownum = 1;
--獲取繳費比例調(diào)整補收 繳費比例
--獲取繳費比例調(diào)整補收 單位、個人繳費比例
BEGIN
SELECT nvl(a.aaa041, 0), nvl(a.aaa042, 0)
INTO n_aaa041_dw_bs, n_aaa042_dw_bs
FROM ac44 a, aa20 b
WHERE a.aaz223 = s_aaz223
AND a.aae140 = s_aae140
AND a.aae140 = b.aae140
AND a.aae341 = b.aae341
AND b.aae342 = '01'
AND b.aae343 = '01'
AND rownum = 1;
EXCEPTION
WHEN no_data_found THEN
n_aaa041_dw_bs := 0;
n_aaa042_dw_bs := 0;
END;
BEGIN
SELECT nvl(a.aaa041, 0), nvl(a.aaa042, 0)
INTO n_aaa041_gr_bs, n_aaa042_gr_bs
FROM ac44 a, aa20 b
WHERE a.aaz223 = s_aaz223
AND a.aae140 = s_aae140
AND a.aae140 = b.aae140
AND a.aae341 = b.aae341
AND b.aae342 = '02'
AND b.aae343 = '01'
AND rownum = 1;
EXCEPTION
WHEN no_data_found THEN
n_aaa041_gr_bs := 0;
n_aaa042_gr_bs := 0;
end;
-- aae181 單位繳費比例 NUMBER(14,2)
n_aae181 := n_aae181 + n_aaa041_dw_bs + n_aaa041_gr_bs -
n_aaa042_gr_bs;
-- aae182 個人繳費比例 NUMBER(14,2)
n_aae182 := n_aae182 + n_aaa042_gr_bs;
-- aae183 其中單位繳費劃入個人賬戶比例
n_aae183 := n_aae183 + n_aaa042_dw_bs;
EXCEPTION
WHEN no_data_found THEN
null;
END;
--基數(shù)進行匯總 這時只有歷年繳費的當月基數(shù)
n_aae180 := NVL(n_aae180, 0);
n_aic079 := NVL(n_aic079, 0);
s_aae300 := '0';
ELSE
s_aab034 := s_aab034_c;
n_aae180 := NVL(n_aae180, 0) + NVL(N_AAE180_YCX, 0);
n_aic079 := NVL(n_aic079, 0) + NVL(N_AIC079_YCX, 0);
s_aae300 := '0';
END IF;
--end----
--獲取行政區(qū)劃代碼,參保地區(qū)名稱
SELECT a.aab301, a.aab131
INTO s_aab301, s_aab300
FROM aa48 a, af01 b, ae10 c
WHERE a.aab301 = c.aab301
AND b.aaz198 = c.aaz001
AND b.aab034 = s_aab034;
INSERT INTO AC07A3
(aac001, --個人編號 VARCHAR2(20)
yac071, --人員轉(zhuǎn)移記錄ID VARCHAR2(16)
yac072, --
aab301, --參保地區(qū)行政區(qū)劃 VARCHAR2(16)
aab300, --參保地區(qū)機構(gòu)名稱 VARCHAR2(200)
aae001, --年度 NUMBER(4)
aae002, --費款所屬期 NUMBER(6)
aae180, --月繳費基數(shù) NUMBER(14,2)
aic079, --月數(shù)
aae181, --單位繳費比例 NUMBER(10,4)
aae182, --個人繳費比例 NUMBER(10,4)
aae183, --其中單位繳費劃入個人賬戶比例 NUMBER(10,4)
yae121, --當年記賬金額小計 NUMBER(14,2)
aic072, --當年記賬金額個人繳費部分 NUMBER(14,2)
yae122, --當年記賬利息 NUMBER(14,2)
yae123, --當年記賬利息個人繳費部分 NUMBER(14,2)
yae124, --至本年末賬戶累計存儲額 NUMBER(14,2)
yae125, --至本年末賬戶累計存儲額個人繳費部分 NUMBER(14,2)
yaz341, --轉(zhuǎn)移人員歷年繳費及個人賬戶記賬信息ID VARCHAR2(16)
aae180_fz, --
aae300, --一次性躉交標志
aae013) --備注 VARCHAR2(200)
VALUES
(s_aac001, -- aac001 個人編號 VARCHAR2(20)
prm_yac071, -- yac071 人員轉(zhuǎn)移記錄ID VARCHAR2(16)
prm_yac072, --
s_aab301, -- aab301 參保地區(qū)行政區(qū)劃 VARCHAR2(16)
s_aab300, -- aab300 參保地區(qū)機構(gòu)名稱 VARCHAR2(200)
trunc(n_aae002 / 100), -- aae001 年度 NUMBER(4)
n_aae002, -- aae002 費款所屬期 NUMBER(6)
n_aae180, -- aae180 月繳費基數(shù) NUMBER(14,2)
n_aic079, -- aic079 月數(shù)
n_aae181, -- aae181 單位繳費比例 NUMBER(10,4)
n_aae182, -- aae182 個人繳費比例 NUMBER(10,4)
n_aae183, -- aae183 其中單位繳費劃入個人賬戶比例 NUMBER(10,4)
n_yae121, -- yae121 當年記賬金額小計 NUMBER(14,2)
n_aic072, -- aic072 當年記賬金額個人繳費部分 NUMBER(14,2)
n_yae122, -- yae122 當年記賬利息 NUMBER(14,2)
n_yae123, -- yae123 當年記賬利息個人繳費部分 NUMBER(14,2)
n_yae124, -- yae124 至本年末賬戶累計存儲額 NUMBER(14,2)
n_yae125, -- yae125 至本年末賬戶累計存儲額個人繳費部分 NUMBER(14,2)
NULL, -- yaz341 轉(zhuǎn)移人員歷年繳費及個人賬戶記賬信息ID VARCHAR2(16)
ceil(n_aae180), --
s_aae300, --一次性躉交標志
''); -- aae013 備注 VARCHAR2(200)
n_aae002 := to_number(to_char(add_months(to_date(to_char(n_aae002),
'yyyymm'),
1),
'yyyymm'));
END LOOP;