金蝶K3发票系统与航天金税系统对接批量打印发票功能实现

金蝶K3系统发票生成后,可以通过Excel调用K3后台发票视图,生成航天金税系统可导入的Excel格式,实现发票的批量半自动打印,以节省手工KEY单时间和出错概率。

使用工具:Excel2007;金蝶K3 WISE 12.3;IMS系统;航天金税系统。

一、数据逻辑:

国内发票数据逻辑:国内发票分为专票/普票

  1. 专票、普票关联逻辑:IMS系统或者K3做好销售订单与发票种类对应关系,金税一般有普通发票与专用发票两种,需要做好对应关系以便将该字段引入金税;
  2. 软硬件价格分离逻辑:对于软件退税企业来说,发票金额一般分为三部分:标准软件类产品硬件价格、标准软件类产品软件价格、非软件类产品价格,前2类是可以退税的,需要将软件与硬件开票金额剥离以便后期退税。需要在IMS系统或者K3系统做好产品编码与软件价格、硬件价格、注册软件名称的对应关系。产品单价=软件价格+硬件价格(一般为固定值);
国际出口发票数据逻辑:国际出口发票需要在备注中带出订单相关的数据(合同号、贸易方式、币种、合同FOB总价、运保费、合同总额、汇率)

二、数据设计:根据金税系统导入模板要求设计数据库查询视图,代码如下:

国内发票:

1、创建国内发票视图

CREATE view [dbo].[cnfapiao]
as
select t.fbillno 单据编号,t6.F208SED 商品及劳务名称,t2.fname '发票抬头/客户信息(名称)','台' 计量单位,t3.fmodel 规格型号,
t1.fqty 数量,t6.FE59AXC '单价(含税/不含税)',t1.fqty*t6.FE59AXC '金额(含税/不含税)','' 备注,'0.17' 税率,
case when t5.FP7B2S6='增值税普通发票' then '普通发票' else '专用发票' end 发票种类,
'1090242040000000' '税收分类编码(16位)',--请根据公司实际情况填写
'0' 享受优惠政策,
'1.0' 版本号
 from icsale t
inner join icsaleentry t1 on t1.finterid=t.finterid
inner join t_Organization t2 on t2.fitemid=t.fcustid
inner join t_icitem t3 on t3.fitemid=t1.fitemid
inner join seorder t4 on t4.finterid=t1.forderinterid
left join [IMS].[portal].[dbo].T24162222255Xg33 t5 on t5.F15662P2222X564=right(CONVERT(varchar,t4.FBillNo),8)--根据IMS系统销售订单关联发票信息
inner join [IMS].[portal].[dbo].TTP2A0J t6 on t6.FW5M1ZH=t3.Fnumber and t6.FH20L1O-t6.FE59AXC>0--根据IMS系统物料关联硬件信息
where t.FExchangeRate=1 and t.fcheckerid is null--硬件价格

union all

select t.fbillno 单据编号,t6.FAPK2U9 商品及劳务名称,t2.fname '发票抬头/客户信息(名称)','台' 计量单位,t3.fmodel 规格型号,
t1.fqty 数量,t1.fauxtaxprice-t6.FE59AXC '单价(含税/不含税)',t1.fqty*(t1.fauxtaxprice-t6.FE59AXC) '金额(含税/不含税)','' 备注,'0.17' 税率,
case when t5.FP7B2S6='增值税普通发票' then '普通发票' else '专用发票' end 发票种类,
'1090242040000000' '税收分类编码(16位)',--请根据公司实际情况填写
'0' 享受优惠政策,'1.0' 版本号  from icsale t
inner join icsaleentry t1 on t1.finterid=t.finterid
inner join t_Organization t2 on t2.fitemid=t.fcustid
inner join t_icitem t3 on t3.fitemid=t1.fitemid
inner join seorder t4 on t4.finterid=t1.forderinterid
left join [IMS].[portal].[dbo].T24162222255Xg33 t5 on t5.F15662P2222X564=right(CONVERT(varchar,t4.FBillNo),8)--根据销售订单关联发票信息
inner join [IMS].[portal].[dbo].TTP2A0J t6 on t6.FW5M1ZH=t3.Fnumber and t6.FH20L1O-t6.FE59AXC>0--根据物料关联硬件信息
--inner join t_MeasureUnit t4 on t4.fitemid=t1.funitid
where t.FExchangeRate=1 and t.fcheckerid is null--软件价格

union all

select t.fbillno 发票号码,t6.F208SED 商品及劳务名称,t2.fname '发票抬头/客户信息(名称)','台' 计量单位,t3.fmodel 规格型号,
t1.fqty 数量,t1.fauxtaxprice '单价(含税/不含税)',t1.fqty*t1.fauxtaxprice '金额(含税/不含税)','' 备注,'0.17' 税率,
case when t5.FP7B2S6='增值税普通发票' then '普通发票' else '专用发票' end 发票种类,
'1090242040000000' '税收分类编码(16位)',--请根据公司实际情况填写
'0' 享受优惠政策,'1.0' 版本号  
from icsale t
inner join icsaleentry t1 on t1.finterid=t.finterid
inner join t_Organization t2 on t2.fitemid=t.fcustid
inner join t_icitem t3 on t3.fitemid=t1.fitemid
inner join seorder t4 on t4.finterid=t1.forderinterid
left join [IMS].[portal].[dbo].T24162222255Xg33 t5 on t5.F15662P2222X564=right(CONVERT(varchar,t4.FBillNo),8)--根据销售订单关联发票信息
INNER join [IMS].[portal].[dbo].TTP2A0J t6 on t6.FW5M1ZH=t3.Fnumber and t6.FE59AXC=t6.FH20L1O--根据物料关联硬件信息
--inner join t_MeasureUnit t4 on t4.fitemid=t1.funitid
where t.FExchangeRate=1 and t.fcheckerid is null--非软件类产品清单
2、Excel调用视图:

金蝶K3发票系统与航天金税系统对接批量打印发票功能实现_第1张图片
3、将Excel引入金税系统开票(前提是金税系统已经创建好了客户的开票数据)。不再赘述。


国际出口发票:

1、创建国际发票视图:

CREATE view [dbo].[outfapiao]
as
select distinct t.fbillno 单据编号,t3.fname 商品及劳务名称,t2.fname '发票抬头/客户信息(名称)','台' 计量单位,t3.fmodel 规格型号,
t1.fqty 数量,t1.Fstdamount/t1.fqty '单价(含税/不含税)',t1.Fstdamount '金额(含税/不含税)',
'合同号:'+t4.fbillno+'\n'+'贸易方式:一般贸易'+'\n'+'币种:'+t5.fname+'\n'+'合同FOB总价:'+convert(nvarchar,(select sum(q.famount) from icsaleentry q where q.finterid=t.finterid and (q.fitemid>22565 or q.fitemid<22563)))+'运保费:'+case when (convert(nvarchar,(select sum(u.famount) from icsaleentry u where u.finterid=t.finterid and u.fitemid<22566 and u.fitemid>22562))) is null then '0' else (convert(nvarchar,(select sum(u.famount) from icsaleentry u where u.finterid=t.finterid and u.fitemid<22566 and u.fitemid>22562))) end+'合同总额'+convert(nvarchar,(select sum(w.famount) from icsaleentry w where w.finterid=t.finterid))+'\n'+'汇率:'+convert(nvarchar,t.FExchangeRate) 备注,
'0' 税率,'普通发票' 发票种类,
'1090242040000000' '税收分类编码(16位)',--请根据公司实际情况填写
'0' 享受优惠政策,'1.0' 版本号 from icsale t
inner join icsaleentry t1 on t1.finterid=t.finterid
inner join t_Organization t2 on t2.fitemid=t.fcustid
inner join t_icitem t3 on t3.fitemid=t1.fitemid
inner join seorder t4 on t4.finterid=t1.forderinterid
inner join t_currency t5 on t5.fcurrencyid=t.fcurrencyid
where t.FExchangeRate>1 and t.fcheckerid is null and (t1.fitemid>22565 or t1.fitemid<22563) and t1.Fprice>0
2、同上Excel引入视图:

3、将Excel引入金税系统开票(前提是金税系统已经创建好了客户的开票数据)。不再赘述。


三、后续需要打印发票时,先在K3下推销售出库生成销售发票,不要审核,然后刷新Excel的数据库连接,取到数据后保存Excel,再将Excel引入金税系统开票打印。打印完毕后,可以在系统对发票进行审核勾稽等动作。


你可能感兴趣的:(金蝶K3,MSSQL)