税务和财务【申报】 - 流程图
2021-07-02 17:25:40 0 举报
本流程图主要梳理了小企业,企业以及非盈利企业会计准则下如何生成税务和财务申报记录以及如何生成税务和财务申报表的过程。
作者其他创作
大纲/内容
N
生成申报表
获取税务设置之税务报表信息
tax_info_report和tax_info_category数据表中是否存在符合条件的
格式化数据填充上一步中的模板(其实就是拼装tax_report_info税种报表表头信息)
获取模板数据(附加税(小规模 一般纳税人))
未完成:0
失败:全部失败-2
累计无需扣款个数等于总记录数
1. 此方法主要就是将上一步填充到模板中的数据保存到对应的数据表中;
申报记录至少有一个生成成功或者未生成并且至少有一个生成失败
开启资产负债表
获取申报总状态
从上一部类中实例化出一个对象
成功:全部成功-1
申报表生成状态(report_excel_status)
总记录数与累计申报状态
单个申报表
扣款中
注意此处是重点和核心,注意其继承的类
设置本期税种申报总状态
用户标识,账期截止日,税项编码
获取税种数据和税目数据
1. 根据当前账期,计算上一年度同期账期和申报周期的起止时间; * 当前账期 2020-09 * 按季度 去年同期开始 201907(申报周期),截止201909(申报周期)span style=\
1.向即将生成的税务记录添加一个账套唯一标示uuid字段,即customer_uuid
保存数据,判断上述实例中是否存在对应省份的方法saveData%s
累计申报成功个数等于总记录数
按照版本和Excel格式进行组装拼接成最后的格式即可
是否存在申报记录(tax_check_status)
1.注意:此处返回的数据格式是从表report_formula_personal解析出来的;
确认中
根据税项编码映射到映射到对应的省份、税种的数据处理类
1. 此处可以获取利润表和现金流量表所需数据;2. 根据会计准则获取利润表/现金流量表的数据模板、本月/季度数据、本年累计数据;3. 根据报表类型,取出报表各项的别名(key)和名称(name)对应关系;这里是从数据表finance_map获取的;4. 需要注意本年累计金额和本月金额这两列,代码定义的两个变量$columnOne和$columnTwo好像是相反的,需要注意下!已核对确实不是样式表的第一列和第二列,正好相反。即第一列数据源取至$columnTwo,第二列数据取至$columnOne;
完成:3
部分成功
0 未申报1 手工调整2 申报成功3 申报失败7 申报中
累计税金确认状态确认中(至少有一个)
获取客户信息(customer)
未生成:全部未生成-0
此方法financeResponse支持资产负债表,利润表以及业务活动表数据的获取
1. tax_setting_financial_report_info配置有该客户税务设置财务报表相关的记录,最后生成的记录是根据此表的设置信息生成的。2. 一个客户就只有一条记录;
至少一个申报成功或者一个申报未生成,没有失败的
1.申报状态!=2or!=7,即排除生成成功和生成中的;
总记录数与累计扣款状态
1. 相关数据表tax_xa_reduction_detailed;2. 存在删除,然后插入,否则直接插入;
客户以及用户合法性校验
保存数据 - 结束
税务申报记录 - 结束
报表总状态1或者3
统计每条申报记录的申报表状态(report_excel_status)和总的申报记录数
1. 获取账期对应的目录绝对路径parent_directory_path;2. 获取所有票据列表信息 - 通过接口调用第三方拿到税票信息进行数据格式化处理;3. 进项票据列表以及销项票据列表;4. 返回的是进项和销项票据列表以及列表中表明是否是资产;
1. 这里的数据格式化是以财务申报记录表tax_info_report为参考进行的;2. 税项编码处理,判断税目表中是否支持财务设置记录中存在的税项,如果支持,那么就采用对应税目编码,否则统一采用北京的税项编码;3. 财务申报记录中的是否删除del_flag是根据财务申报设置表中financial_report_balance_enable、financial_report_profit_enable、financial_report_cash_enable、financial_report_owner_enable字段值设置的;4. 税种申报记录表中sign的取值判断,根据税种设置之财务设置数据表中的申报周期决定的;
累计未生成个数等于总记录数据
获取全部时间范围的全部账期
1.如果是1月,税款所属期实则是前年12月;2.如果是2-10月那么就要加上前导0;3.剩下就是当前月减1。
1. tax_xa_subsidiary数据表;2. 查询是否存在符合条件(客户和账期)的数据,存在删除,然后插入;
Y
本期资产负债表是否为空
税务设置列表
1. 条件是:del_flag=1,is_zq=0;2. 这里如果是用列表查询,tax_info_report和tax_items,那么返回的数据中id是tax_items对应的id并不是tax_info_report对应的id;
累计申报中个数大于等于1
调用对应税种的保存方法
tax_setting_tax_report_info配置有该客户税务设置税务报表相关的记录,最后生成的记录是根据此表的设置信息生成的。
tax_check_status = 1
获取托盘数据(累加价税合计)
累计生成个数等于总记录数
成功:全部成功
多个申报表
生成申报表 - 结束
1. 注意此字段countAmount
判断上述实例中是否存在listDataTemplate,存在调用
更新账套申报表总状态(生成中3)
customer_tax_total_status
存储 - 增值税纳税申报表
累计扣款成功个数等于总记录数或者累计扣款成功个数+无须扣款个数等于总记录数
获取有效财务申报记录
遍历上一步结果集取出可以生成申报表的财务记录
累计失败个数等于总记录数
处理销项发票
存储表头信息 - excel展示用
保存数据
存储 - 税种对应申报表工作区是否必报表(每个表保存完,都有这个表的动作)
设置报表的开始和结束账期
开启所有者权益变动表
部分成功-4
1.根据总状态来判断;2.如果总状态是生成成功和生成中,那么就不需要生成申报表,如果不是,那么在进行判断总状态中是否需要从税局获取申报表,如果需要那么就不用生成申报表,不需要则需要生成申报表;3.申报表和申报记录是一张表;4.申报记录不存在,那么申报表一定不存在;
以小规模增值税纳税人为例
返回 - 财务报表列表
补充扩展逻辑(tax_info_report)
查询资产负债表本期的数据
申报总状态的处理(7类状态判定)
至少一个成功或者一个未生成,没有失败的
确定帆软报表模板名称
1. 一定要注意继承的类,因为下面的方法不一定在当前类中,可能在父类中
1. 根据省份ID分别从tax_items税目表和tax_category税种表获取符合条件的数据;2.获取的数据分别是以税目编码和税种编码为下标;3. 其实根据省份获取对应的税项记录和税种记录都是以北京id作为查询条件,进行模板匹配的,所以其实最后查询的都是北京地区的;
税务:客户标识、用户标识、税项编码、账期
1. 首先通过判断计算获取申报周期,要么月报,要么季报;2. 如果是月报,那么申报表的起始账期就是一样的;如果是季报,那么就要在进行判断,开始日期一般是季度月的下一月(4/7/10/1)
累计申报失败个数等于总记录数
生成中
定义:本期 1%、3% 货物、服务的专票、普票不含税销售额
0 未扣款1 零申报2 扣款成功3 无需扣款4 扣款失败6 暂不支持扣款7 扣款中
遍历上一步结果集取出可以生成申报表的税务记录
统计每条申报记录的申报表状态(report_status)和总的申报记录数
1.账期是否合法;2.账套是否存在
将需要生成报表的记录更新成申报中(税务和财务申报记录)
总结:1. 根据税种设置之税务信息表,以及税目表,格式化成税务申报记录表所需要的数据格式,然后插入数据,最后在根据税种申报记录信息格式化成税种报表表头信息表的数据的格式,然后插入数据,至此,税务报表记录生成完毕;2. 税务申报记录的个数取决于税种设置之税务设置数据表中相关客户的有效税种数量;
1.查询日期超过当前最新账期,提示最新的账期未结账,否则使用实际账期;2.查询账期大于等于当前账期,则未结账,否则已结账。
生成申报表数据并保存
开始 - 申报数据
1. 目前操作数据表tax_fill_detail;2. tax_xa_taxable_list (目前无默认数据,故不做录入数据操作);暂时没有这个表,所以直接默认生成一个sheet表;3. tax_fill_detail这个表很是关键,绝对申报表的sheet和一些字段显示,请注意以下几个字段: ①tax_type:税种类型:0:小规、一般人增值税;1:小规模、一般人附加税;2:企业所得税A、B;3:个人所得税;4:印花说;5:消费税;6:文化建设费; ②tax_code:SHEET编号,从0开始; ③type:本期是否填报
扣款至少一个扣款成功或者一个未扣款或者至少一个无须扣款的
未申报:全部未申报
税金确认状态
税金确认状态 - 只有税务才需要发送税金确认
排除本期未启用的财务报表
有效税务申报记录
生成财务税项编码
根据税务设置生成税务和财务记录
结束 - 申报数据
1. 相关数据表tax_fill_detail;2. 相应条件下,存在更新,否则插入;
完成确认个数是否大于完成扣款个数
1. 取出本期所有需要申报的税种,排除已申报、申报中的;2. 申报状态不是成功或者申报中的……report_status != 2or !=7
1. 相关数据表tax_xa_main;2. 存在删除,然后插入,否则直接插入;
无需扣款:全部无需扣款
总状态获取结束
添加税务申报记录(tax_info_category)
设置税额
修改财务申报表状态
获取票据列表信息
1. 插入逻辑都是存在则删除,重写插入即可;
存在更新,否则插入
模板数据填充
否
累加销项总金额
利润表/现金流量表数据填充
税金确认状态是否完成(至少有一个)
修改税种申报表状态
填充数据到模板-结束
是:至少一个在确认中
填充数据到模板
完成:1
失败:全部失败
申报表税局状态
tax_check_status:标识总状态:0 未核定,1已核定,2核定失败 3核定中
1. 根据总状态的判断,更新账套总状态;
是否存在有效记录
未扣款:全部未扣款
开启现金流量表
1. 根据生成申报表的结果,更新税务申报记录报表生成状态,要么成功,要么失败
1. 是否需要从税局获取申报表;2. 根据tax_info_category和tax_info_report数据表中的字段is_bureau进行辅助判断;
1.查询条件:①客户唯一标识;②查询账期。
部分失败-5
1. 税款所属期止判断:税款所属期止就是当前账期月的最后一日;2. 税款所属期起判断:要根据申报周期进行相应处理,对应的月份第一日;3. 每个客户每个账期的每个税种只会生成一条报表表头信息;
处理托盘数据
1. is_zq = 1 and del_flag = 0
会计制度准则判断
部分失败
生成中-3
1. 根据生成申报表的结果,更新财务申报记录报表生成状态,要么成功,要么失败
更新财务税务报表中的tax_info_extend
格式化成利润表/现金流量表数据格式
判断上述实例中是否存在thisPeriod,存在调用
客户标识、用户标识、开始日期,结束日期。税项编码
thirdData
1. 获取免税额度,增值税可以开启免税金额,对应字段是:税务设置的税务报表信息表的tax_report_added_single_goods_allowance_amount字段
1. 如果是月报,因为start=end,所以就是一个,例如:202105,那么就是202105;2. 如果是季报,起止时间就是202104-202106那么结果就是:202104/202105/202106;
总结:涉及到的数据表用: ①tax_xa_subsidiary; ②tax_fill_detail; ③tax_xa_real_estate; ④tax_xa_reduction_detailed; ⑤tax_xa_main; ⑥tax_info_category;
客户报税(申报表)总状态customer_tax_total_status
财务申报记录 - 开始
存储 - 销售不动产情况表(第5个sheet)
完成状态
客户标识、用户标识、账期
申报设置数据获取
结束 - 申报记录
申报至少有一个申报成功或者未申报并且至少有一个申报失败
返回 - 当期无需申报财务报表
1. 根据税项编码解析出对应的省份和数据处理文件,然后加载注入类文件;2. 这里有几个处理需要特别处理: ①印花税、地税通用(工会经费、地方水利建设基金),安徽特殊处理,使用独立的文件、模板; ②增值税,深圳特殊处理,使用独立的文件、模板-深圳地区增值税一般纳税人采用独立模板;
0 未生成1 生成成功2 生成失败3 生成中
统计每条申报记录的扣款状态(deduct_status)和总的申报记录数
是否请求本期数据判断
单个税种or多个税种申报表生成
生成税务记录 - 开始
生成申报表 - 开始
财务报表生成
申报状态
添加财务申报记录(tax_info_report)
插入或者更新税种报表表头信息记录tax_report_info
财务报表生成 - 结束
获取前端需要展示的金额和是否启用的标识
累计生成中个数大于等于1
财务申报记录 - 结束
1. 涉及到的表bill_expending_receive_invoice
申报记录生成状态(tax_check_status)
格式化处理财务申报记录(其实就是处理,税目表、税种表以及税项申报记录表之间的数据关系)
获取芸豆数据,填充到模板中,判断上述实例中是否存在thirdData
1. 相关数据表tax_xa_real_estate;2. 填充模板时如果有这个这段则会进行填充;
全部扣款成功或者全部无须扣款
扣款状态
最新账期和结账处理
tax_check_status = 0
根据不同的企业会计制度保存数据到对应的数据表中去
1.tax_info_report、tax_info_category数据表中存在符合条件的记录就标识已存在申报记录;
1. Excel有空行的插入空行,补全Excel账期信息等;2. 根据不同会计准则和资产负债表的格式和计算格式进行数据格式化处理;3. 最后形成资产负债表需要的数据格式即可;
根据客户唯一标识,以及账期获取总状态数据
1.未生成、生成失败,或者生成成功,并且可以覆盖生成;
1. 这里的数据格式化是以税务申报记录表tax_info_category为参考进行的;2.有几个税种需要特别处理: ①工会经费:如果是,那么就用税务设置表中的tax_report_union_rate作为税率,否则用tax_report_surtax_construction_rate作为税率;3. 税项编码处理,判断税目表中是否支持税务设置记录中存在的税项,如果支持,那么就采用对应税目编码,否则统一采用北京的税项编码;4. 税务申报记录中的是否删除del_flag是根据税务申报设置表中tax_report_enable税务报表是否启用进行的;5. 税务申报记录中的扣款状态deduct_status为暂不支持的扣款的条件是,税务设置表的three_party_signed未签订三方协议;6. 税务申报记录中当前账期的判断是根据,税务设置中申报周期declare_period是否是季报并且是季度月决定的,如果满足此条件就不在当前账期,否则就是在当前账期;7. 税务申报记录表中sign的取值判断,税种是否是企业所得税,如果是,则根据customer_exp中enterprise_scale(1:小微企业,2:非小微企业)决定;
实例化申报表驱动引擎
格式化处理税务申报记录(其实就是处理,税目表、税种表以及税项申报记录表之间的数据关系)
1. report_excel_status!=1 or !=3,即也就是报告生成中和生成成功;2. 注意有一种是虽然生成成功但是需要覆盖的,也会重写生成;
总状态获取 - 结束
是否有符合条件的申报记录
更行账套申报表总状态
参考税务记录生成的业务逻辑几乎一直;
生成申报表(税务和财务)
是否需要生成申报表
1. 就是补充下财务申报记录数据表中的tax_info_extend字段值;2. 主要存储资产负债表、利润表、现金流量表以及所有者权益表是否启用的状态;
开启业务活动表
是否无须税金确认
未确认:0
生成税务和财务报表
参数校验
累计扣款中个数大于等于1
有效财务申报记录
获取财务设置列表
税金缴纳:2
下面这块的流程有更新,要注意!
扣款至少有一个扣款成功或者未扣款并且至少有一个扣款失败
一、小规模增值税主表;小规模增值税附表一;增值税减免税申报明细表;销售不动产情况表;应税服务扣除项目清单;二、根据税目编码找到对应的处理类文件,找到对应的模板数据格式,其实这里主要是根据税种的数据表类决定的。
生成主税和附加税税项编码
累计未申报个数等于总记录数据
1. TaxDataService类saveDataService方法
总记录数与累计申报记录报表状态
1. 相关数据表tax_info_category;2. 更新税额;3. 这里有条件进行判断获取相应的结果集;4. 这里会涉及到成功率的判断;
存储 - 应税服务扣除项目清单(第6个sheet)
1. 税率;2. 不含税销售额;3. 税额;4. 所属分类;
存储 - 小规模增值税附表一(第3个sheet)
总结:1. 根据税种设置之财务设置信息表,以及税目表,格式化成税务申报记录表所需要的数据格式,然后插入数据,最后在根据财务申报记录信息格式化成税种报表表头信息表的数据的格式,然后插入数据,至此,财务报表记录生成完毕;2. 财务申报记录的个数取决于税种设置之财务设置数据表中相关客户的有效税种数量;
累计未扣款个数等于总记录数
存储 - 增值税减免税申报明细表(第4个sheet)
资产负债表数据填充
此处加了获取期初报表的业务逻辑
0 条评论
下一页