高凡
摘 要:為響應(yīng)國家稅務(wù)總局金三期中關(guān)于“三代”手續(xù)費的稅務(wù)系統(tǒng)的推廣實行,如何整理出準(zhǔn)確的數(shù)據(jù)并利用整理出的數(shù)據(jù)完成整個“三代”手續(xù)費計算是廣大稅務(wù)工作者關(guān)心的問題。文章利用數(shù)據(jù)庫技術(shù)的多庫抽取數(shù)據(jù)、合并數(shù)據(jù)計算手續(xù)費比例等,準(zhǔn)確完成了金三期中關(guān)于三代手續(xù)費的計算、核實與支付。
關(guān)鍵詞:稅收;審查;支付;數(shù)據(jù)庫
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-1302(2017)06-00-04
0 引 言
伴隨著國家“金稅三期”稅收系統(tǒng)的正式上線運(yùn)營,國家為調(diào)動相關(guān)稅種的扣繳義務(wù)人、代征單位和個人的積極性,每年在一定時間按其實際代扣代繳、代收代繳和代征稅款的一定比例返還給這些單位和人員費用,但由于錄入的個人或企業(yè)代扣代繳、代收代繳的稅額量不同,因此返還給個人或企業(yè)的手續(xù)費用也不相同。針對扣繳義務(wù)人的類型不同,結(jié)合稅務(wù)工作的實際情況,文章主要研究B/S模式下對于發(fā)起手續(xù)費申請的個人或企業(yè)進(jìn)行審查和發(fā)放手續(xù)費的設(shè)計與實現(xiàn)。
1 三代手續(xù)費模塊的需求分析
三代手續(xù)費模塊設(shè)計基于國家統(tǒng)一推廣運(yùn)營的“金稅三期”稅收管理系統(tǒng)。稅務(wù)人員對想獲得手續(xù)費的企業(yè)或個人從“金三”系統(tǒng)中提取征收代理方式為代扣代繳、代收代繳、委托代征相關(guān)數(shù)據(jù)至特色軟件三代手續(xù)費管理模塊,根據(jù)納稅人的申請,在特色軟件三代手續(xù)費管理模塊支付審核功能節(jié)點調(diào)取該納稅人三代稅款數(shù)據(jù),按規(guī)定的三代手續(xù)費比例,計算應(yīng)付三代手續(xù)費金額并推送至財務(wù)集中系統(tǒng)支付三代手續(xù)費,財務(wù)集中系統(tǒng)實時關(guān)聯(lián)反寫特色軟件三代手續(xù)費管理模塊決算功能節(jié)點,對已支付手續(xù)費的三代稅款進(jìn)行標(biāo)記,下一年度根據(jù)上一年度已支付的三代手續(xù)費情況從特色軟件三代手續(xù)費管理模塊決算節(jié)點中抽取數(shù)據(jù)至特色軟件三代手續(xù)費管理模塊預(yù)算節(jié)點中進(jìn)行粗預(yù)算。通過以上各功能節(jié)點,實現(xiàn)三代手續(xù)費預(yù)算、支付、決算管理以及相關(guān)查詢功能。
2 三代手續(xù)費后臺模塊的設(shè)計
2.1 類圖用例圖的設(shè)計
類圖與用例圖的構(gòu)建,要綜合稅務(wù)部門的實際需求,保證其準(zhǔn)確性與可靠性。
根據(jù)主體稅務(wù)部門的需要,將需求中的業(yè)務(wù)表現(xiàn)關(guān)系通過用例圖的形式表現(xiàn)出來,如圖1所示。
通過圖中的關(guān)系來構(gòu)建此次三代手續(xù)費項目的需求,同時對整個過程中的工作流起到了指導(dǎo)作用。
2.2 基表體系的設(shè)計
構(gòu)建好用例圖后,根據(jù)用例圖的關(guān)系從稅務(wù)部門提供的 “金三”系統(tǒng)與生產(chǎn)環(huán)境相關(guān)的完稅證(ZS_WSZ)與繳款書(ZS_JKS)中抽取相關(guān)字段屬性,見表1所列。
除此之外,抽取的字段依據(jù)規(guī)定的法律政策依據(jù),具有特定含義,對稅務(wù)系統(tǒng)中的數(shù)據(jù)做出相應(yīng)篩選。在定義基表取數(shù)口徑時,根據(jù)SPUUID唯一主鍵做關(guān)聯(lián),同時通過征收代理方式和稅收票款結(jié)報繳銷單編號信息。
指標(biāo)取數(shù)口徑(表中ZS_WSZ_JKS_SDSXFC的SPUUID字段)定義為如下形式:
2.3 查詢手續(xù)費支付條件
在構(gòu)建基表及取數(shù)口徑后,根據(jù)稅務(wù)部門的指示和法律政策依據(jù),通過上一年度的繳稅明細(xì)以及手續(xù)費支付情況設(shè)計出查詢(ZS_WSZ_JKS_SDSXFC)中三代未付手續(xù)費的相關(guān)數(shù)據(jù)過程,PROCEDURE P_GETSDSKXX,并通過登記序號等查詢條件搜索出未支付手續(xù)的相關(guān)數(shù)據(jù):
SELECT ckzhzhuuid, djxh, djzclx_dm,(select DJZCLXMC from DM_DJ_DJZCLX DJZCLX where A.djzclx_dm=DJZCLX.DJZCLX_DM) as DJZCLXMC, ||
‘to_char(dzsphm) dzsphm, hy_dm ,(select hymc from dm_gy_hy hy where A.hy_dm=hy.hy_dm) as hymc, hzspuuid, hzjksbz, kjdjxh, pzhm, ||
‘ pzzg_dm,(SELECT PZZG
FROM HX_CS_ZDY.CS_PZ_PZZGB@GZLT_SC_FF_01.GZDS.GOV.CN PZZG
其中,djxh、zhuuid是納稅人在稅務(wù)系統(tǒng)中的唯一編號, djzclx_dm為登記注冊類型,hy_dm為行業(yè)代碼,PZZG_DM則是票證字軌,再通過票證號碼的起止作為判斷條件,使其查詢出的數(shù)據(jù)更加準(zhǔn)確,具體語句如下:
CHR(39) || V_DJXH || CHR(39);
IF V_PZHMQ <> ‘% THEN
V_SQL := V_SQL || ‘ AND PZHM >= TO_NUMBER(‘ || CHR(39) || V_PZHMQ ||
CHR(39) || ‘);
END IF;
IF V_PZHMZ <> ‘% THEN
V_SQL := V_SQL || ‘ AND PZHM <= TO_NUMBER(‘ || CHR(39) || V_PZHMZ ||
CHR(39) || ‘);
END IF;
最終查詢結(jié)果如圖2所示。
2.4 手續(xù)費的支付審核
根據(jù)之前的查詢結(jié)果判斷申請三代手續(xù)費的委托代征單位是否已按時進(jìn)行票款結(jié)報,并推送至相關(guān)崗位審核,審核處理規(guī)則業(yè)務(wù)流轉(zhuǎn)到計財股主要領(lǐng)導(dǎo)崗進(jìn)行初核,后流轉(zhuǎn)至分管領(lǐng)導(dǎo)崗進(jìn)行審核,分管領(lǐng)導(dǎo)崗審核同意后流轉(zhuǎn)至計財股收入核算崗(每一環(huán)節(jié)審核未通過均能回退上一環(huán)節(jié))。核對無誤后提交推送支付申請單到財務(wù)集中系統(tǒng),財務(wù)集中系統(tǒng)未支付前發(fā)現(xiàn)錯誤則回退到上一環(huán)節(jié)。業(yè)務(wù)流程如圖3所示。
審核流程包含4步,每一流程中若發(fā)現(xiàn)錯誤都能返回到上一流程狀態(tài),在此以主要領(lǐng)導(dǎo)崗審核為例,供大家理解其狀態(tài)扭轉(zhuǎn)的過程。
設(shè)計出PROCEDURE P_ZGLDSH(V_TY IN CHAR),以數(shù)字類型1、0來判斷主管領(lǐng)導(dǎo)是否審核通過:
SELECT COUNT(1)
INTO V_CNT
FROM TA_SD_SXFZFSQ_ZB
WHERE ID = V_ID
AND DQZTDM = ‘040001000002;
IF V_CNT >= 1 THEN
--找得到主表數(shù)據(jù)
IF V_TY = ‘1 THEN
-- --1.同意,推分管領(lǐng)導(dǎo)
SELECT LRR_DM
INTO V_LRR_DM
FROM TA_SD_SXFZFSQ_ZB
WHERE ID = V_ID
AND DQZTDM = ‘040001000002;
SELECT COUNT(1)
INTO V_CNT
FROM DM_GY_SWJG_LD
AND FGLDDM IS NOT NULL
AND FGLDBMBM IS NOT NULL;
其中XH作為扭轉(zhuǎn)狀態(tài),表明當(dāng)前操作所處的審核崗位,當(dāng)主管領(lǐng)導(dǎo)審核通過時,更新主表、扭轉(zhuǎn)狀態(tài),但可能出現(xiàn)意外情況,比如更新失敗或此納稅人申請三代手續(xù)費的稅務(wù)機(jī)關(guān)并無分管領(lǐng)導(dǎo)的狀態(tài)時,我們需要做出判斷,具體過程如下:
IF V_CNT >= 1 THEN
--取得到分管領(lǐng)導(dǎo)
SELECT FGLDDM, FGLDBMBM
INTO V_NEXTCZYBM, V_NEXTCZYBMBM
FROM DM_GY_SWJG_LD
SELECT DQZT, DQZTMC, SYZT, SYZTMC
INTO V_DQZTDM, V_DQZTMC, V_SYZTDM, V_SYZTMC
FROM DM_ZTLZB
WHERE XH = ‘142;
IF (V_RETURN = 1) THEN
UPDATE TA_SD_SXFZFSQ_ZB
SET ZYLD_DM = V_LDDM,
ZYLDMC = V_LDMC,
ZYLDGSHYJ = V_SHYJ,
ZYLDGSHSJ = SYSDATE,
DQZTDM = V_DQZTDM,
DQZTMC = V_DQZTMC,
SYZTDM = V_SYZTDM,
SYZTMC = V_SYZTMC
WHERE ID = V_ID
AND DQZTDM = ‘040001000002;
IF SQL%ROWCOUNT = 1 THEN
--更新成功
V_RESULT := ‘1;
ELSE
--失敗,提示
V_RESULT := ‘0;
V_SQLERROR := ‘將工作流推送至分管領(lǐng)導(dǎo)成功,但業(yè)務(wù)表更新失敗,流程ID為: || V_ID;
ROLLBACK;
END IF;
COMMIT;
ELSE
V_RESULT := ‘0;
V_SQLERROR := ‘將工作流推送至分管領(lǐng)導(dǎo)失敗,流程ID為: || V_ID;
END IF;
ELSE
--取不得到分管領(lǐng)導(dǎo)
V_RESULT := ‘0;
V_SQLERROR := ‘取不得到分管領(lǐng)導(dǎo),無法將工作流推送至分管領(lǐng)導(dǎo),流程ID為: || V_ID;
END IF;
若主管領(lǐng)導(dǎo)審核不通過,則退回收入核算崗:
ELSE
SELECT DJXH, LRR_DM, TEMP3, SQUUID
INTO V_DJXH, V_NEXTCZYBM, V_NEXTCZYBMBM, V_SQUUID
FROM TA_SD_SXFZFSQ_ZB
WHERE ID = V_ID
AND DQZTDM = ‘040001000002;
SELECT DQZT, DQZTMC, SYZT, SYZTMC
INTO V_DQZTDM, V_DQZTMC, V_SYZTDM, V_SYZTMC
FROM DM_ZTLZB
WHERE XH = ‘143;
同時更新主表及扭轉(zhuǎn)狀態(tài),更新時出現(xiàn)的意外情況:
IF (V_RETURN = 1) THEN
UPDATE TA_SD_SXFZFSQ_ZB
SET ZYLD_DM = V_LDDM,
ZYLDMC = V_LDMC,
ZYLDGSHYJ = V_SHYJ,
ZYLDGSHSJ = SYSDATE,
DQZTDM = V_DQZTDM,
DQZTMC = V_DQZTMC,
SYZTDM = V_SYZTDM,
SYZTMC = V_SYZTMC
WHERE ID = V_ID
AND DQZTDM = ‘040001000002;
IF (SQL%ROWCOUNT = 1) THEN
--更新成功
V_RESULT := ‘1;
ELSE
--失敗,提示
V_RESULT := ‘0;
V_SQLERROR := ‘返回收入核算崗工作流成功,但業(yè)務(wù)表更新失敗,流程ID為: || V_ID;
ROLLBACK;
END IF;
COMMIT;
ELSE
--失敗,提示
V_RESULT := ‘0;
V_SQLERROR := ‘返回收入核算崗工作流失敗,流程ID為: || V_ID;
END IF;
END IF;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
V_RESULT := ‘0;
V_SQLERROR := SUBSTR(SQLERRM, 1, 180) || V_ID;
INSERT INTO TA_HT_RUNLOG
(LOGID, RUNTIME, PROCNAME, LOGTEXT, RUNSTATES)
VALUES
(LPAD(TO_CHAR(SEQ_TA_HT_RUNLOG.NEXTVAL), 20, ‘0),
SYSDATE,
‘PKG_SDSXF.P_ZGLDSH,
‘審核保存異常: || V_SQLERROR || ‘ID: || V_ID,
‘異常);
COMMIT;
END P_ZGLDSH;
由于在崗位審核時需判斷的情況較多,容易出現(xiàn)錯誤,因此建立TA_HT_RUNLOG日志表。該表設(shè)計用于記錄在審核過程時的運(yùn)行情況,可以方便的查看當(dāng)前過程的運(yùn)行階段及狀態(tài),便于后期調(diào)試、維護(hù),記錄信息。在審核過程P_ZGLDSH及其他審核過程中,由于定義的參數(shù)多,需要判斷的情況較復(fù)雜,所以對過程的編輯需要很強(qiáng)的邏輯性與嚴(yán)謹(jǐn)性,同時考驗掌握SQL語法的熟練程度。
3 三代手續(xù)費后臺的實現(xiàn)
三代手續(xù)費后臺根據(jù)稅務(wù)部門的需求考慮采用Oracle數(shù)據(jù)庫架構(gòu),其開發(fā)運(yùn)行的環(huán)境為Oracle 11g R2,開發(fā)語言為SQL。為實現(xiàn)數(shù)據(jù)的定時抓取,設(shè)計采用Oracle定時計劃,建立Job,每天凌晨調(diào)度過程:
DECLARE
JOB NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT(job => JOB,
what => ‘PKG_SDSXF.P_ SDSXF _AUTORUN;,
NEXT_DATE => TRUNC(SYSDATE) + 1,
INTERVAL => ‘TRUNC(SYSDATE)+1);
COMMIT;
END;
當(dāng)數(shù)據(jù)量達(dá)到一定數(shù)量級后,數(shù)據(jù)庫的查詢效率會變得很慢,為了提高查詢效率,通常我們會在相應(yīng)的數(shù)據(jù)表上建立索引以提高效率,這里需要在ZS_WSZ_JKS_SDSXFC和TA_SD_SXFZFSQ_ZB都建立索引。
由于三代手續(xù)費采用獨立數(shù)據(jù)庫,在抽取相關(guān)數(shù)據(jù)時就需要對遠(yuǎn)程數(shù)據(jù)庫進(jìn)行數(shù)據(jù)抽取,可由Oracle數(shù)據(jù)庫中的DataBase Link來實現(xiàn)這一需要。DataBase Link定義一個數(shù)據(jù)庫訪問另一個數(shù)據(jù)庫的路徑,允許本地數(shù)據(jù)庫用戶訪問遠(yuǎn)程數(shù)據(jù)庫下的數(shù)據(jù)并查詢或執(zhí)行程序,但需要注意DataBase只是一種單向訪問,若想從遠(yuǎn)程數(shù)據(jù)庫訪問本地數(shù)據(jù)庫則必須在遠(yuǎn)程庫上定義訪問本地庫的DataBase Link。
4 結(jié) 語
本文主要探究了基于Oracle數(shù)據(jù)庫的三代手續(xù)費后臺的設(shè)計與實現(xiàn),并希望對實際的稅務(wù)部門生產(chǎn)管理產(chǎn)生積極影響。隨著國家稅務(wù)部門需求自動化的逐步推進(jìn),“金稅三期”系統(tǒng)也將進(jìn)一步完善。
參考文獻(xiàn)
[1]高允斌,吳明泉.手續(xù)費及傭金支出會計與稅務(wù)處理差異分析[J].財務(wù)與會計,2010(12):31-33.
[2]張基溫.計算機(jī)網(wǎng)絡(luò)原理[M].北京:高等教育出版社,2006.
[3]鄧睿.基于Web的稅收輔助管理服務(wù)系統(tǒng)設(shè)計與實現(xiàn)[D].廈門:廈門大學(xué),2013.
[4]稅光澤.VPD技術(shù)在貴州地稅核心征管系統(tǒng)省級應(yīng)用集中項目中的應(yīng)用[D].武漢:湖北大學(xué),2014.
[5]陳雙.稅收監(jiān)控預(yù)警系統(tǒng)的設(shè)計與實現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2016,6 (4):96-99.
[6]李鵬飛,徐俊剛,周紹君,等.物聯(lián)網(wǎng)技術(shù)在稅源信息管理中的應(yīng)用[J].物聯(lián)網(wǎng)技術(shù),2014,4(4):72-75.
[7]張瀟月.論如何規(guī)范“三代”稅款手續(xù)費收入的核算[J].普洱學(xué)院學(xué)報,2011(3):134-135.
[8]洪俊中.企業(yè)“三代”手續(xù)費收入的會計及稅務(wù)處理[J].財會月刊,2010(22):59.