农村居民最低生活保障资金审计方法.docx
《农村居民最低生活保障资金审计方法.docx》由会员分享,可在线阅读,更多相关《农村居民最低生活保障资金审计方法.docx(24页珍藏版)》请在冰豆网上搜索。
农村居民最低生活保障资金审计方法
农村低保标准执行情况计算机审计方法
一、方法代码
二、方法名称
农村低保标准执行情况计算机审计方法
三、目标功能
审计目标:
农村居民最低生活保障政策的执行,难点在于申请对象家庭货币收入和财产收入的认定,重点在于审批对象的合法性、合理性和平衡性,焦点在于生活水平明显高于最低生活保障水平的对象享受低保政策后引发一些社会矛盾。
此审计方法主要检查农村居民最低生活保障对象收入认定的准确性,享受资格的合法性、合理性,名册资料的真实性。
审计功能:
将社会救助部门实际执行的发放明细表与从工商部门取得的企业和个体工商户注册资料、从交警车管部门取得的车辆上户资料、从财政部门取得的房产契税征收明细资料、从社会劳动保险部门取得的离退休人员退休金发放资料相关联,检查保障对象资格认定的合法性,通过与各部门的数据关联,发现和核实疑点,实现审计目标,发挥审计监督作用。
四、所属审计事项分类
基础管理规范性审查
违规审批、发放低保金
五、所需数据
(一)社会救助业务流程:
1、农村低保申请审批程序。
个人申报→村委会入户调查→民主评议小组评议→公布初审合格对象→填写申报表→取证→乡镇(民政所)入户调查→乡镇(民政所)审核→公布准保对象名单→区县(市)民政局入户调查(抽样)→区县(市)民政局审批→张榜公布保障对象→发放低保保障金领取证→兑现领取
2、低保金发放程序。
个人申报收入→村委会入户测算→民主评议小组评议→社会救助局审定救助标准→民政资金专户下拨资金→银行(村委会)按季发放→低保对象凭证领取→银行(村委会)及时报送领取花名册→财务凭册作账
(二)所需数据和资料
根据本审计方法的目标与功能定位,确定所需数据和相关资料,包括电子数据和纸质资料。
如下表:
序号
数据资料名称
结构化
非结构化
半结构化
1
农村居民最低生活保障金发放明细表(2009年四季度)
√
2
汽车上户明细表(2000-2009年度)
√
3
摩托车上户明细表(2003-2009年度)
√
4
工商注册登记明细表(2000-2009年度)
√
5
社保退休人员表(2000-2009年度)
√
√
6
企业退休人员养老保险金发放明细表(2008-2009年度)
√
7
房产交易契税征收明细表(2005-2009年度)
√
本审计方法所需的数据资料,主要来自该审计方法所对应的审计数据规划的基础表或分析表及其数据元素。
其中车辆上户资料源于交警车管部门,工商注册登记表源于工商管理部门,社保退休人员表和企业退休人员养老保险金发放明细表源于劳动局社会劳动养老保险部门,房产交易契税征收明细表源于财政农税契税征收管理部门,也可在房产管理部门取得房产证办理的相关资料。
1、基础表:
农村居民最低生活保障金发放明细表。
数据元素:
户主姓名,身份证号码,银行帐号,季度金额,救助类别,地址。
2、基础表:
汽车上户明细表。
数据元素:
初次登记日期,车辆类型,车辆型号,中文品牌,号牌号码,强制报废期止,身份证号码,机动车所有人,住所详细地址。
3、基础表:
摩托车上户明细表。
数据元素:
初次登记日期,车辆类型,车辆型号,中文品牌,号牌号码,强制报废期止,身份证号码,机动车所有人,住所详细地址。
4、基础表:
工商注册登记明细表。
数据元素:
公司名称,法定代表人,注册资本,成立日期,法定代表人证件号码。
5、基础表:
社保退休人员表。
数据元素:
社会保障号,个人帐户,姓名,性别,出生年月,工作年月,建帐时间,离退时间,离退类别,家庭住址。
6、基础表:
企业退休人员养老保险金发放明细表。
数据元素:
单位代码[DW01],帐号[GR03],姓名[GR04],发放年月[TXMX02],工资额[TXMX04],家庭住址[TX52]。
7、基础表:
房产交易契税征收明细表。
数据元素:
完税证号码,缴款书号码,缴款时间,纳税人名称,证件号码,权属转移性质,房产类型,计税金额,实纳金额。
六、分析步骤
由于农村居民最低生活保障实行按季发放、动态管理的原则,各个季度的享受对象、户数、人数和享受标准都可能存在差异,分析以某一个季度的发放数据(2009年4季度)为例。
将以上业务数据导入到AO软件中。
以下所有步骤和SQL语句都在AO软件中进行。
(一)农村五保户重复享受农村低保情况
步骤一:
源数据清理
(1)删除“某季度农村低保发放表”中“季度金额”为零的记录。
(2)删除身份证号码中的空格。
步骤二:
建立中间表——将五保户和低保户从发放表中分离。
五保户和农村低保户属于两种不同的社会保障类型,享受五保户的对象不得重复享受低保政策。
为了简化手续,社会救助部门将每个季度五保户和低保户上卡发放申请同时提交财政部门,并在同一数据表中体现,为了便于查询,以“救助类别”为标志,分别建立“五保资金季度发放表”和“低保资金季度发放表”。
步骤三:
查询重复享受两项低保政策的发放记录
以身份证号码为联接查询条件,通过SQL语句将“五保资金季度发放表”和“低保资金季度发放表”联接查询,得出审计结果。
(二)企业业主和个体工商户享受农村低保和五保情况
步骤一:
源数据清理
(1)删除“工商注册登记表”中“法定代表人证件号码”为空的记录。
(2)删除身份证号码中的空格。
步骤二:
联接查询
以身份证号码为联接查询条件,通过SQL语句将“低保资金季度发放明细表”和“工商注册登记表”联接查询,得出审计结果。
(三)汽车所有者享受农村低保和五保情况
汽车所有者虽然没有在法规政策中明确提出,但这种情况明显属于收入或资产核定不实,审批把关或动态管理不严。
步骤一:
源数据清理:
(1)删除“汽车上户明细表”中“身份证明号码”为空的记录。
(2)删除身份证明号码中的空格。
步骤二:
联接查询
以身份证号码为联接查询条件,通过SQL语句将“低保资金季度发放明细表”和“汽车上户明细表”(包括大车、低速车、小车)联接查询,得出审计结果。
(四)摩托车所有者享受农村低保和五保情况
步骤一:
源数据清理:
(1)删除“摩托车上户明细表”中“身份证明号码”为空的记录。
(2)删除身份证明号码中的空格。
步骤二:
联接查询
以身份证号码为联接查询条件,通过SQL语句将“低保资金季度发放明细表”和“摩托车上户明细表”联接查询,得出审计结果。
(五)房产交易纳税人受农村低保和五保情况
以身份证号码为联接查询条件,通过SQL语句将“低保资金季度发放明细表”和“房产交易契税征缴明细表”联接查询,得出审计结果。
(六)社保离退人员享受农村低保和五保情况
步骤一:
源数据清理
删除“社保退休人员表”中“社会保障号”和“个人帐号”中的空格。
步骤二:
建立中间表——社保离退人员某月养老保险金发放信息表。
在社会劳动保险部门取得“企业退休人员养老保险金发放明细表”和“社保退休人员表”,由于发放明细表中只有退休金发放的时间、金额等相关信息,没有身份证号码、离退休时间等数据元素,需以两表为依据建立发放详表。
步骤三:
查询同一时间段领取退休金和低保资金的记录
以身份证号码为联接查询条件,通过SQL语句将“低保资金季度发放明细表”和“社保离退人员某月养老保险金发放详表”联接查询,得出审计结果。
(七)身份证号码异常情况
1、从位数查询无效身份证号码
一、二代身份证号码分别为15位和18位,其他位数长度均为无效号码。
通过SQL语句,使用Len函数直接查询得出审计结果。
2、从年龄查询无效身份证号码
在身份证号码中,使用Mid函数通过计算,筛选出年龄在90岁以上和18岁以下的记录,将结果与对象备案表进行核对,发现疑点(发放表以户为单位,看未成年人享受低保是否属于孤儿,重点关注100岁以上和1岁以下记录)
步骤一:
从15位证中检查
由于使用的低保数据的发放时间为2009年末,身份证号码中记载年度的字符为2位,以109减去身份证号码中的第7至8位得出年龄,筛选出过高和或低的记录。
步骤二:
从18位证中检查
身份证号码中记载年度的字符为4位,以2009减去身份证号码中的第7至10位得出年龄,筛选出过高和或低的记录。
(八)同银行帐号不同身份情况
每一个低保户均注册了自己的银行卡,财政部门将每次低保资金按时发放到各自的银行卡中,查出银行帐号相同而户主和身份证号码不同的记录进行核对。
七、流程图
1.流程一
八、方法语言
(一)农村五保户重复享受农村低保情况
//定义变量
VarSqlStr;CurQuery;IsEmpty;
Begin
ShowMsg('清除空格及空记录!
');
//清除"某季度农村低保发放表"中"季度金额"为零的记录
SqlStr:
='DELETEFROM[业务_源_某季度农村低保发放表$]WHERE[季度金额]=0';
ExecuteUpdate(SqlStr);
//清除身份证号码中的空格
SqlStr:
='UPDATE[业务_源_某季度农村低保发放表$]SET[身份证号码]=trim([身份证号码])';
ExecuteUpdate(SqlStr);
//将五保户和低保户从发放表中分离
SqlStr:
='Select*From[业务_源_某季度农村低保发放表$]WHERE[救助类别]LIKE"%低%"';
CreateTempTable('低保资金季度发放表',SqlStr);
SqlStr:
='Select*From[业务_源_某季度农村低保发放表$]WHERE[救助类别]NOTLIKE"%低%"';
CreateTempTable('五保资金季度发放表',SqlStr);
//审查重复享受两项低保政策的发放记录情况
SqlStr:
='SelectS1.[户主姓名],S1.[身份证号码],S1.[救助类别]AS农村五保,S1.[季度金额]'+
'AS五保发放额,S2.[救助类别]AS农村低保,S2.[季度金额]AS低保发放额From'+
'[五保资金季度发放表]ASS1INNERJOIN[低保资金季度发放表]ASS2ONS1.[户主姓名]'+
'=S2.[户主姓名]ANDS1.[身份证号码]=S2.[身份证号码]';
CurQuery:
=CreateQ(SqlStr,-1);
//查询结果集是否为空
IsEmpty:
=Qeof(CurQuery);
ifIsEmpty<>1then
begin
//循环将查询结果存入业务疑点临时库
repeat
AddTransRslt(CurQuery,'重复享受两项低保政策的发放情况审计疑点');
IsEmpty:
=Qmov(CurQuery,1);
IsEmpty:
=Qeof(CurQuery);
untilIsEmpty=1;
//将临时库结果集存入疑点库
TransBatch(CurQuery,'重复享受两项低保政策的发放情况审计疑点');
end;
ShowMsg('插入重复享受两项低保政策的发放情况审计疑点成功!
');
End.
(二)企业业主和个体工商户享受农村低保和五保情况
//定义变量
VarSqlStr;CurQuery;IsEmpty;
Begin
ShowMsg('清除空格及空记录!
');
//清除"工商注册登记表"中"法定代表人证件号码"为空的记录
SqlStr:
='DELETEFROM[业务_源_工商注册$]WHERE[法定代表人证件号码]ISNULL';
ExecuteUpdate(SqlStr);
//清除身份证号码中的空格
SqlStr:
='UPDATE[业务_源_工商注册$]SET[法定代表人证件号码]=trim([法定代表人证件号码])';
ExecuteUpdate(SqlStr);
//审查企业业主和个体工商户享受农村低保和五保情况
SqlStr:
='SELECTS1.[户主姓名],S1.[地址],S1.[身份证号码],S1.[救助类别],S1.[季度金额],'+
'S2.[公司名称],S2.[法定代表人],S2.[注册资本],S2.[成立日期],S2.[法定代表人证件号码]'+
'AS证件号码FROM[业务_源_某季度农村低保发放表$]ASS1innerJOIN[业务_源_工商注册$]'+
'ASS2ONS1.[户主姓名]=S2.[法定代表人]ANDS1.[身份证号码]=S2.[法定代表人证件号码]';
CurQuery:
=CreateQ(SqlStr,-1);
//查询结果集是否为空
IsEmpty:
=Qeof(CurQuery);
ifIsEmpty<>1then
begin
//循环将查询结果存入业务疑点临时库
repeat
AddTransRslt(CurQuery,'企业业主和个体工商户享受农村低保和五保情况审计疑点');
IsEmpty:
=Qmov(CurQuery,1);
IsEmpty:
=Qeof(CurQuery);
untilIsEmpty=1;
//将临时库结果集存入疑点库
TransBatch(CurQuery,'企业业主和个体工商户享受农村低保和五保情况审计疑点');
end;
ShowMsg('插入企业业主和个体工商户享受农村低保和五保情况审计疑点成功!
');
End.
(三)汽车所有者享受农村低保和五保情况
//定义变量
VarSqlStr;CurQuery;IsEmpty;
Begin
ShowMsg('清除空格及空记录!
');
//清除"汽车上户明细表"中"身份证明号码"为空的记录
SqlStr:
='DELETEFROM[业务_源_汽车上户明细表$]WHERE[身份证明号码]ISNULL';
ExecuteUpdate(SqlStr);
//清除身份证号码中的空格
SqlStr:
='UPDATE[业务_源_汽车上户明细表$]SET[身份证明号码]=trim([身份证明号码])';
ExecuteUpdate(SqlStr);
//审查汽车所有者享受农村低保和五保情况
SqlStr:
='SELECTA.户主姓名,A.身份证号码,A.银行帐号,A.季度金额,A.[救助类别],A.[地址],'+
'B.初次登记日期,B.车辆类型,B.中文品牌,B.号牌号码,B.强制报废期止FROM'+
'[业务_源_某季度农村低保发放表$]ASAINNERJOIN[业务_源_汽车上户明细表$]'+
'ASBONA.户主姓名=B.机动车所有人ANDA.身份证号码=B.身份证明号码WHERELEFT([强制报废期止],4)>2009';
CurQuery:
=CreateQ(SqlStr,-1);
//查询结果集是否为空
IsEmpty:
=Qeof(CurQuery);
ifIsEmpty<>1then
begin
//循环将查询结果存入业务疑点临时库
repeat
AddTransRslt(CurQuery,'汽车所有者享受农村低保和五保情况审计疑点');
IsEmpty:
=Qmov(CurQuery,1);
IsEmpty:
=Qeof(CurQuery);
untilIsEmpty=1;
//将临时库结果集存入疑点库
TransBatch(CurQuery,'汽车所有者享受农村低保和五保情况审计疑点');
end;
ShowMsg('插入汽车所有者享受农村低保和五保情况审计疑点成功!
');
End.
(四)摩托车所有者享受农村低保和五保情况
//定义变量
VarSqlStr;CurQuery;IsEmpty;
Begin
ShowMsg('清除空格及空记录!
');
//清除"摩托车上户明细表"中"身份证明号码"为空的记录
SqlStr:
='DELETEFROM[业务_源_摩托车上户明细表$]WHERE[身份证明号码]ISNULL';
ExecuteUpdate(SqlStr);
//清除身份证号码中的空格
SqlStr:
='UPDATE[业务_源_摩托车上户明细表$]SET[身份证明号码]=trim([身份证明号码])';
ExecuteUpdate(SqlStr);
//审查摩托车所有者享受农村低保和五保情况
SqlStr:
='SELECTA.地址,A.户主姓名,A.银行帐号,A.身份证号码,A.季度金额,A.救助类别,'+
'B.初次登记日期,B.车辆类型,B.中文品牌,B.号牌号码,B.强制报废期止FROM'+
'[源_某季度农村低保发放表$]ASAINNERJOIN[源_摩托车上户明细表$]AS'+
'BONA.户主姓名=B.机动车所有人ANDA.身份证号码=B.身份证明号码WHERELEFT([强制报废期止],4)>2009';
CurQuery:
=CreateQ(SqlStr,-1);
//查询结果集是否为空
IsEmpty:
=Qeof(CurQuery);
ifIsEmpty<>1then
begin
//循环将查询结果存入业务疑点临时库
repeat
AddTransRslt(CurQuery,'摩托车所有者享受农村低保和五保情况审计疑点');
IsEmpty:
=Qmov(CurQuery,1);
IsEmpty:
=Qeof(CurQuery);
untilIsEmpty=1;
//将临时库结果集存入疑点库
TransBatch(CurQuery,'摩托车所有者享受农村低保和五保情况审计疑点');
end;
ShowMsg('插入摩托车所有者享受农村低保和五保情况审计疑点成功!
');
End.
(五)房产交易纳税人受农村低保和五保情况
//定义变量
VarSqlStr;CurQuery;IsEmpty;
Begin
//审查房产交易纳税人受农村低保和五保情况
SqlStr:
='SELECTA.户主姓名,A.身份证号码,A.银行帐号,A.季度金额,A.救助类别,A.地址,'+
'B.完税证号码,B.缴款书号码,B.缴款时间,B.纳税人名称,B.权属转移性质,B.房产类型,'+
'B.计税金额,B.实纳金额FROM[业务_源_某季度农村低保发放表$]ASAINNERJOIN'+
'[业务_源_房产交易契税征缴明细表$]ASBONA.户主姓名=B.纳税人名称ANDA.身份证号码=B.证件号码';
CurQuery:
=CreateQ(SqlStr,-1);
//查询结果集是否为空
IsEmpty:
=Qeof(CurQuery);
ifIsEmpty<>1then
begin
//循环将查询结果存入业务疑点临时库
repeat
AddTransRslt(CurQuery,'房产交易纳税人受农村低保和五保情况审计疑点');
IsEmpty:
=Qmov(CurQuery,1);
IsEmpty:
=Qeof(CurQuery);
untilIsEmpty=1;
//将临时库结果集存入疑点库
TransBatch(CurQuery,'房产交易纳税人受农村低保和五保情况审计疑点');
end;
ShowMsg('插入房产交易纳税人受农村低保和五保情况审计疑点成功!
');
End.
(六)社保离退人员享受农村低保和五保情况
//定义变量
VarSqlStr;CurQuery;IsEmpty;
Begin
ShowMsg('清除空记录!
');
//清除"社保退休人员表"中"社会保障号"和"个人帐号"中的空格
SqlStr:
='UPDATE[业务_源_社保退休人员表$]SET[社会保障号]=trim([社会保障号]),[个人帐户]=trim([个人帐户])';
ExecuteUpdate(SqlStr);
//生成社保离退人员某月养老保险金发放信息表
SqlStr:
='SELECTA.DW01AS单位代码,A.GR04AS姓名,A.TXMX02AS发放年月,A.TXMX04'+
'AS2009年12月工资额,B.社会保障号,B.个人帐户,B.出生年月,B.工作年月,B.离退时间,'+
'B.家庭住址FROM[业务_源_企业退休人员养老保险金发放明细表$]ASAINNERJOIN'+
'[业务_源_社保退休人员表$]ASBONA.GR04=B.姓名ANDA.GR03=B.个人帐户WHEREA.TXMX02="200912"';
CreateTempTable('社保离退人员2009年12月养老金发放信息表',SqlStr);
//审查社保离退人员享受农村低保和五保情况
SqlStr:
='SELECTA.户主姓名,A.银行帐号,A.身份证号码,A.季度金额AS四季度低保额,A.救助类别,'+
'B.单位代码,B.社会保障号,B.个人帐户,B.发放年月,B.[2009年12月工资额],B.出生年月,'+
'B.离退时间FROM[业务_源_某季度农村低保发放表$]ASAINNERJOIN'+
'[社保离退人员2009年12月养老金发放信息表]ASBONA.户主姓名=B.姓名'+
'ANDA.身份证号码=B.社会保障号';
CurQuery:
=CreateQ(SqlStr,-1);
//查询结果集是否为空
IsEmpty:
=Qeof(CurQuery);
ifIsEmpty<>1then
begin
//循环将查询结果存入业务疑点临时库
repeat
AddTransRslt(CurQuery,'社保离退人员享受农村低保和五保情况审计疑点');
IsEmpty:
=Qmov(CurQuery,1);
IsEmpty:
=Qeof(CurQuery);
untilIsEmpty=1;
//将临时库结果集存入疑点库
TransBatch(CurQuery,'社保离退人员享受农村低保和五保情况审计疑点');
end;
ShowMsg('插入社保离退人员享受农村低保和五保情况审计疑点成功!
');
End.
(七)身份证号码异常情况
//定义变量
VarSqlStr;CurQuery;IsEmpty;
Begin
//审查无效身份证情况
SqlStr:
='SELECT地址,户主姓名,农户代码,银行帐号,身份证号码,LEN(身份证号码)AS身份证位数,'+
'救助类别,季度金额FROM[业务_源_某季度农村低保发放表$]WHERELEN(身份证号码)<>15'+
'ANDLEN(身份证号码)<>18';
CurQuery:
=CreateQ(SqlStr,-1);
//查询结果集是否为空
IsEmpty:
=Qeof(CurQuery);
ifIsEmpty<>1then
begin
//循环将查询结果存入业务疑点临时库
repeat
AddTransRslt(CurQuery,'无效身份证情况审计疑点');
IsEmpty:
=Qmov(CurQuery,1);
IsEmpty:
=Qeof(CurQuery);
untilIsEmpty=1;
//将临时库结果集存入疑点库
TransBatch(CurQuery,'无效身份证情况审计疑点');
end;
ShowMsg('插入无效身份证情况审计疑