广告费收入及应缴税收计算机审计一例,本文主要内容关键词为:广告费论文,一例论文,税收论文,应缴论文,收入论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
笔者年参加了对某局原局长任职期间经济责任履行情况的审计。经审计,发现该局下属事业单位的广告费收入和所缴流转税金额不符合法定比例关系,存在明显疑点。笔者应用计算机辅助审计,计算其应缴税收,结合从地税部门取得的该单位实际税收入库数据,对比分析,发现该单位当年应缴流转税88.58万元,实缴15.28万元,漏缴流转税73.3万元,占应缴税收的82.75%。
疑团重重
疑点之一:笔者在查看被审计单位财务数据时,发现该单位当年广告收入1400万元,上缴营业税13.77万元、城市维护建设税0.96万元、教育费附加0.41万元、地方教育附加0.14万元。根据法律规定,营业税按营业收入的5%计算,应该缴纳营业税为70万元,而实缴营业税只有13.77万元。是该单位虚报营业收入,或是漏缴税收,还是两者兼而有之呢?
疑点之二:与被审计单位会计人员谈话了解到,财务反映的广告收入就是广告合同反映的已收金额,二者是一致的,有单独的信息系统对广告合同进行管理。广告的播出流程:客户部的业务员与客户洽谈,签订广告合同→客户根据合同约定金额,到财务部交纳广告费→财务部门收到客户的广告费,通知广告部制作广告→广告部将广告制作完毕,将广告拷贝给发射部→发射部手工登记广告的相关信息,按登记信息安排播出广告,且不存在播放无收费广告。由此可知,广告合同管理系统、广告制作系统、业务发射管理系统分别由三个不同部门管理,数据不共享。笔者想到从广告合同管理系统到发射业务管理系统数据是否还存在关联性、一致性,是否存在播出超出合同约定的广告或播出无合同广告呢。
蛛丝马迹
为了解开疑团,笔者深入调查了被审计单位广告合同管理系统、广告制作系统和广告发射系统三套电子数据,发现广告制作系统是制作视频、音频的软件系统,生成与广告相对应的视频或音频文件,没有相应的管理数据。而广告合同管理系统、业务发射管理系统均有管理数据。找到数据库所在的目录后发现,两个数据库均为Access数据库,于是笔者就将这两个数据库采集到自己的电脑中,结合纸质账表,分别找到广告合同表、广告播出表。通过对两张表的反复比对分析,发现广告播出表中有一个“编号”字段,除空值外,大部分与广告合同表中的“合同号”字段相匹配。抽查了广告播出表中的部分合同号,发现在广告合同表中无对应的合同。笔者根据这个蛛丝马迹,整理审计思路:运用计算机辅助审计,利用AO2008审计软件的分析功能,通过合同号将广告播放数据与广告合同数据进行关联,计算超合同广告收入、无合同广告收入及合同收入;比对电视台实际取得的广告收入及应缴营业税、城市维护建设税、教育费附加及地方教育费附加。
数据准备
笔者还从被审计单位会计了解到,广告费是根据广告的时长、类型及所在频道计算的,并取得了相应的收费标准。为了计算广告费应缴营业税等税费,笔者又到地税部门取得了当年地方税收入库明细,将从被审计单位取得的电子数据和从地税部门取得的税收入库数据,经过数据清理后作为业务数据导入AO2008。其中,电视台广告合同2834条,播出广告6186条,2009年度市本级税收入库明细5.4万条记录。
深入分析
根据取得的电子数据,分步骤计算各月实际取得的广告费收入、无合同收入、超合同约定收入,根据应收广告费=广告费收入+无合同广告收入+超合同约定收入,计算出各月应收广告费,再根据应收广告费计算应缴税收入,将应缴税收与实际缴纳税收相比对,从而得出应补交的税收金额。具体实施过程如下:
第一步,计算各月实际取得的广告收入(全年实际取得广告费收入1382万元)。
根据“业务__广告合同”表中“是否欠款”字段,筛选出“是否欠款”=0的记录,按月汇总电视台各月实际收取的广告,生成“各月实收广告费”表。打开审计软件AO2008,在“审计分析”——“数据分析”——“SQL编辑器”内,输入以下SQL语句:
select month([付款日期])as收款月份,sum([合计金额])as实收广告费into各月实收广告费from [业务__广告合同]where[欠款金额]=0 group by month(付款日期)order by month(付款日期)
第二步,计算各月应取得的无合同广告收入(全年无合同收入85万元)。
首先,已播出但未签订合同(即没有收费)的广告明细。根据广告编号,比较“业务__播出广告”和合同广告表,找出无相应合同号的条目,筛选播出的无合同广告,生成已经播出但没有签订合同(即没有收费)的中间表“播出无合同广告_t”。SQL语句如下:
select distinct[节目单日期],[频道缩写],[广告编号],[广告名称]into播出广告_t1 from[业务__播出广告]
select distinct[编号]into广告合同_t1 from[业务__广告合同]where[编号]is not null
select*into播出无合同广告_t from [业务__播出广告]where广告编号not in(select编号from广告合同_t1)
其次,计算各月无合同广告应收广告费。根据“播出无合同广告_t”中间表中“频道缩写”字段,与[业务__频道代码]进行关联,在“播出无合同广告__t”中间表中添加“频道名称”字段,生成中间表“播出无合同广告_t1”。SQL语句如下:
select a.节目单日期,a,频道缩写,b.频道名称,广告编号,广告名称,广告长度into播出无合同广告_t1 from[播出无合同广告_t] a left join[业务__频道代码]b on a.频道缩写=b.频道代码
然后,通过“频道名称”字段及“广告长度”字段与“[业务__广告价格]”进行关联,添加“价格”字段,生成中间表“播出无合同广告_t2”。SQL语句如下:
select a.节目单日期,a.频道缩写,a.频道名称,a.广告编号,a.广告名称,a.广告长度,b.价格into播出无合同广告_t2 from[播出无合同广告_t1]a left join [业务__广告价格]b on 2.频道名称=b.频道and(a.广告长度between b.最短时间and b.最长时间)
最后,在“播出无合同广告_t2”表中,根据广告的时长及播出所在的频道,确定无合同广告的价格,按月汇各月无合同广告应收广告费。SQL语句如下:
select month([节目单日期])as月份,sum([价格])as无合同金额from播出无合同广告_t2 group by month([节目单日期])order by month([节目单日期])
第三步,计算各月超合同约定的广告费(全年超合同收入132万元)。
首先,在[业务__广告合同]中,按编号和发布媒体分组统计广告的合同天数,生成中间表“广告合同_t1”。SQL语句如下:
select编号,发布媒体,sum(次数)as合同天数into广告合同t1 from业务__广告合同where len(编号)<>0 group by编号,发布媒体
其次,将“广告合同_t1”与“业务__播出广告”两张表,通过“编号”(即合同号)和“发布媒体”字段进行关联,筛选出已经播出并且签订合同的广告,生成中间表“播出有合同广告_t1”.SQL语句如下:
select distinct a.节目单日期,a.频道缩写,a.广告编号,a.广告名称,a.广告长度into播出有合同广告_t1 from业务__播出广告a,广告合同_t1 b where a.频道缩写=b.发布媒体and a.广告编号=b.编号
在“播出有合同广告_t1”中,根据频道缩写、广告编号、广告名称、广告长度,统计广告的播放天数,生成中间表“播出有合同广告_t2”。SQL语句如下:
select month(节目单日期)as月份,频道缩写,广告编号,广告名称,广告长度,count(节目单日期)as播出天数into播出有合同广告_t2 from播出有合同广告_t1 group by month(节目单日期),频道缩写,广告编号,广告名称,广告长度order by month(节目单日期),频道缩写,广告编号,广告名称,广告长度
接着,为了计算价格,将中间表“播出有合同广告_t2”与[业务__频道代码]表,通过“频道缩写”字段进行关联,添加频道名称,生成中间表“播出有合同广告_t3”。SQL语句如下:
select a.月份,a.频道缩写,b.频道名称,a.广告编号,a.广告名称,a.广告长度,a.播出天数into播出有合同广告_t3 from播出有合同广告_t2 a left join[业务__频道代码]b on a.频道缩写=b.频道代码
将中间表“播出有合同广告_t3”与中间表“广告合同_t1”通过“广告编号”、“频道缩写”进行关联,筛选播出天数大于合同天数的记录,并计算超合同天数,生成中间表“播出有合同广告_t4”。SQL语句如下:
select a.月份,a.频道缩写,a.频道名称,a.广告编号,a.广告名称,a.广告长度,a.播出天数,b.合同天数,a.播出天数-b.合同天数as超合同天数into播出有合同广告_t4 from播出有合同广告_t3 a,广告合同_t1 b where a.频道缩写=b.发布媒体and a.广告编号=b.编号and a.播出天数-b.合同天数>0
然后,将中间表“播出有合同广告_t4”与“业务__广告价格”通过“频道名称”和播出时长范围进行关联,根据播出有合同广告的时长及所在频道,计算超合同天数的广告应收广告费,生成“各月超合同广告费”表。SQL语句如下:
select月份,a.频道缩写,a.频道名称,a.广告编号,a.广告名称,a.广告长度,a.播出天数,a.合同天数,a.超合同天数,b.价格as每日价格,a.超合同天数*b.价格as超合同金额into播出有合同广告巧from播出有合同广告_t4 a left join[业务__广告价格]b on a.频道名称=b.频道and(a.广告长度between b.最短时间and b.最长时间)
最后,在中间表“播出有合同广告_t5”中,统计各月应收超合同广告费金额,生成“各月超合同广告费”。SQL语句如下:
select月份,sum([超合同金额])as超合同金额into各月超合同广告费from播出有合同广告_t5 group by月份order by月份
第四步,计算各月应收广告费(全年应收广告费1596万元)。
首先,将“各月实收广告费”与“各月无合同广告费”通过“月份”字段进行关联,生成中间表“广告费分月统计_1”:
select收款月份as月份,[实收广告费],无合同金额into广告费分月统计_1 from[各月实收广告费]a left join[各月无合同广告费]b on a.收款月份=b.月份
其次,将“广告费分月统计_1”与“各月超合同广告费”通过“月份”字段进行关联,添加字段“应收金额”,并使其值为0,生成是中间表“各月应收广告费”:
select a.月份,a.实收广告费,a.无合同金额,b.超合同金额,0as应收金额into各月应收广告费from广告费分月统计_1 a left join[各月超合同广告费]b on a.月份=b.月份
接着,需要进行空值处理。由于空值不参加运算,必须将空值替换为0:
update各月应收广告费set无合同金额=0 where无合同金额is null
update各月应收广告费set超合同金额=0 where超合同金额is null
最后,在“各月应收广告费”表中,计算应收金额,即应收金额=实收广告费+超合同金额+无合同金额:
update各月应收广告费set应收金额=实收广告费+超合同金额+无合同金额
第五步,计算应补缴税款。(全年应补缴税款67.6万元。其中,应补营业税60.9万元,应补城市维护建设税4.26万元,教育费附加1.83万元,地方教育费附加0.61万元)
根据《中华人民共和国营业税暂行条例》等有关规定,按取得的广告收入的5%缴纳营业税,按营业税的7%、3%及1%缴纳城市维护建设税、教育费附加及地方教育费附加,将各月取得广告费收入,分税种按月统计应缴流转税;从地税部门取得的入库数据,将电视台缴费记录筛选出来,分税种按月统计入库金额,并计算应缴税额与实缴税额的差额,生成相应的疑点。ASL语句如下:
var a,b;
begin
CreateTempTable('各月应缴流转税','select月份,应收金额as广告费收入,"营业税"as税种名称,应收金额*0.05as应缴税金from[各月应收广告费]union select月份,应收金额ss广告费收入,“城市维护建设税”as税种名称,应收金额*0.05*0.07 as应缴税金from[各月应收广告费]union select月份,应收金额as广告费收入,"教育费附加"as税种名称,应收金额*0.05*0.03as应缴税金from[各月应收广告费]union select月份,应收金额as广告费收入,"地方教育附加"as税种名称,应收金额*0.05*0.01 as应缴税金from[各月应收广告费]');
∥计算取得广告费收入应缴流转税,营业税按广告收入的5%,城市维护教育税、教育费附加和地方教育费附加分别按营业税的7%、3%和1%。
CreateTempTable('各月实际入库流转税','xlectmonth ([所属起始日期])as月份,[税种名称],sum([入库税金])as入库金额from[业务_地税09年度入库明细]where[纳税人名称]like "%有线电视台%"and([税种名称]like"营业税"or[税种名称]like"城市维护建设税"or[税种名称]like"教育费附加"or[税种名称]like"地方教育费附加")group by month([所属起始日期]),[税种名称]order by month([所属起始日期]),[税种名称)');
CreateTemoTable('各月补缴流转税','select a.[月份],a.[广告费收入],a.[税种名称],a.[应缴税金],b.[入库金额],0 as补缴税金from[各月应缴流转税]a left join[各月实际入库流转税]b on a.[月份]=b.[月份]and a.[税种名称]=b.[税种名称]');
ExecuteUDdate('update各月补缴流转税set入库金额=0 where入库金额is null');
ExecuteUpdate('update各月补缴流转税set补缴税金=应缴税金-入库金额');
a:=createq('select*from各月补缴流转税',-1);
b:=qeof(a);
if b<>1 then
begin
repeat
AddTransRslt(a,'计算补缴税金');
b:=Qmov(a,1);
b:=Qeof(a);
until b=1;
end;
TransBatch(a,'计算各月补缴流转税');
end.
以上语句运行结果如(左下图):
本实例思路流程图如(右上图):