在此文中
接下来,我们将解释在特定国家/地区创建适用于增值税报表的Banana应用程序时需要考虑的因素。
- 为特定国家/地区创建增值税代码。
- 使用 Banana API 提供的功能创建国家特定的报告或导出文件。
文档
增值税表格
我们有两个主要的组:
- 应交增值税
- 应退增值税
为特定国家/地区创建增值税代码表
在新的国家/地区使用Banana财务会计软件时,您需要根据所在的国家/地区调整增值税代码表。基本上您可以按照这里描述的进行:
- 以该国的增值税报告格式为起点。
- 您需要在增值税代码表中创建增值税代码。
- 对于与增值税相关的每笔发生业务,用户将指定增值税代码,以便可以根据表格要求对类似发生业务进行分组和汇总。
- 对于每一种情况,都应该有一个特定的增值税代码。参数将根据以下因素而变化:
- 应交增值税和应退增值税
- 增值税的百分比
- 税务报告规定
出口货物和免税货物应有不同的增值税代码。
税务机关规定,即使适用的百分比始终为零,也必须单独申报。
例如,对于增值税率为0% 和 5%的国家/地区。
- 对于 0%,您需要报告出口销售免税:
- 创建增值税代码 S0 为免税 (即使增值税百分比为0,应付增值税为确定)
- 创建增值税代码 SE 为出口增值税 ( 即使增值税百分比为0,应付增值税为确定 )
- 对于 5%
- 创建增值税代码 S5 为销售收入的5% (应付增值税为确定)
- 创建增值税代码 P5 为购买 (应付增值税为空,意思是可以退税)
- 如果您需要在税单上单独显示折扣,创建增值税代码 SD5 为销售折扣 5%
如果没有必要单独显示折扣,在输入一个折扣发生业务时,我们在增值税代码前加上 "-S5" ,因此金额是相反的。
有些国家的增值税比率很高,纳税申报表也很复杂。在这种情况下,您需要有一个包含多个代码的增值税表格。
使用所属组1对增值税代码进行分组
如果需要将不同增值税代码的增值税金额组合在一起,可以使用所属组1输入增值税代码所属的字段。
- 当创建一个BananaApps将金额分组时,可以使用此组来报告金额。
- 如果用户需要添加一个新的增值税代码时,可以执行此操作,并将其正确汇总在税务表单中。
在所属组1中指定增值税表格的字段编号,如果相同的字段在多个组中,则用 “,”分隔该字段号。例如:
- 税务表格100指的是要求申报所有的销售金额。
- 不同的销售也需要在特定的字段中指明,因此我们也指定了其他税收字段。
- 折扣需要单独指明,因此我们为折扣指定了特定字段。购买亦如此。
提供完整的增值税代码表
您可能最终会得到一个复杂的增值税表格。
有些用户可能只需要使用他们业务活动所必需的很少的增值税代码。
最好不要给客户提供一个简化的增值税代码表,因为它可能需要一个特定的增值税代码。
在这种情况下,在禁用列中输入 1 。用户能够使用这些代码,但是在发生业务表中输入时,这些代码不会出现在增值税代码列表中。
将增值税代码分配到账户表中
对于每一个账户,您都可以分配默认的增值税代码(增值税代码列)。
当您输入或导入发生业务时,增值税代码会被检索,但是您也可以更改它。
增值税发生业务
以上我们看到了增值税发生业务的不同示例。
- 记账凭证号 10-11.
我们使用不同的金额类型记录现金销售。
我们看到发生业务金额不同,但应交增值税金额和增值税金额始终相同。
增值税登记在贷方,其税额为负数,因此必须向税务机关缴纳。 - 记账凭证号 20.
客户退货。
我们使用相同的增值税代码,但在前面添加减号。应交增值税金额和增值税金额的符号被反转。
增值税金额是正数(借方),意味着我们从税务机关那儿退回增值税。 - 记账凭证号 100-102.
购买增值税金额为正数(借方),意味着我们从税务机关那儿退回增值税。 - 记账凭证号 130.
退货给供应商的增值税代码是相反的,我们欠税务机关的税收。
增值税文件
对于每个国家/地区,都会有一份解释增值税的文件:
- 增值税代码页面
解释单一增值税代码和分组。 - 带有示例和解释的页面
在一个或多个页面中,应解释所有可能的发生业务。该页面是一个参考,让用户了解如何记录特定的案例。- 创建一个包含发生业务的示例。
- 为不同的示例创建标题和子标题,用户可以通过浏览页面和索引来查找示例。
典型元素:- 应交增值税
- 普通
- 红字发票
- 增值税反向支付
- 应退增值税
- 普通
- 红字发票
- 增值税不完全抵扣
- 增值税免税
- 增值税 0 %
- 调整
- 更正
- 期末业务
- 应交增值税
- 创建发生业务表图像。
- 使用记账凭证号列为每组发生业务编号。
- 当您写摘要时,会在摘要之前加上发生业务的记账凭证编号。
- 在解释单笔业务时使用项目符号段落。
- 期末
解释在期末做什么。- 检查账务
- 报表1 -> 增值税报表
- 国家特定报告
- 自动核算的增值税金额移至应交增值税或应退增值税的发生业务中。
- 支付增值税的发生业务。
创建Banana应用程序来创建特定国家/地区的增值税报告
在创建一个特定国家/地区的增值税报告之前,应该创建一个包含:
- 该国的账户计划。
- 增值税代码表包含该国所有必要的增值税代码,用所属组1来设置该组。
- 测试发生业务 所有的示例和增值税代码。包括反向发生业务(如折扣或红字发票)。
此发生业务允许程序员立即测试结果。
示例文件
- 示例文件可在github/General/CaseStudies上找到。
- 使用增值税应用程序的解决方案。
Javascipt API 用于计算增值税
检索上述值的 API 是:
//get the description of the vat code Banana.document.vatDescription("S10"); // use the vatCurrent Balance to retrieve the different values Banana.document.vatCurrentBalance("S10").vatTaxable; Banana.document.vatCurrentBalance("S10").vatAmount; Banana.document.vatCurrentBalance("S102").vatNotDeductible; Banana.document.vatCurrentBalance("S10").vatPosted; Banana.document.vatCurrentBalance("S10").rowCount;
- vatTaxable 是净值,在增值税报告中通常显示地是净值,即要申报的收入金额。
- vatAmount 是增值税金额。
- vatTaxable + vatAmount 是包含增值税的金额。
- vatNotDeductible 在财政上无法被抵扣的增值税金额。如果您有增值税不能被完全抵扣的费用。
- vatPosted (vatAmount - vatNotDeductible) 是已经在增值税账户上申报的金额。
- count 是已找到的使用增值税代码的行数。
增值税代码分组
增值税调用只能用于一个或多个增值税代码。
如果需要将更多的增值税代码组合在一起,应该使用Javascript函数作为所属组1的参数。
该函数应迭代增值税代码表并返回具有相应所属组1的增值税代码。
增值税金额的标志
增值税金额的符号遵循会计惯例。
- 如果增值税金额为负数(借方),则表示应交增值税。
- 如果增值税金额为正数,则表示应退增值税。
应税增值税(vatTaxable)的符号遵循增值税金额(vatAmount)的标志。如果增值税金额(vatAmount)为零,则如果增值税代码为应付(Due)或确定(True),则应税增值税(vatTaxable)的符号为负。
如果您使用增值税金额(vatAmount)来创建纳税表,则应注意转换金额。
增值税金额(vatAmount)符号和应付(Due)标志:
- 应付(Due)为确定1(True1)时,增值税代码通常使用负数的增值税金额(vatAmount),但如果用户使用带有减号“-S10”的增值税代码,则增值税金额(vatAmount)也可以为正数。
在冲销发生业务(纠正错误的发生业务)时,增值税代码前添加“减号”。在这种情况下,增值税金额(vatAmount)为正数。 - 应付(Due)为否(void)时,增值税代码通常使用正数的增值税金额(vatAmount),但如果用户使用带有减号“-P10”的增值税代码,则增值税金额(vatAmount)也可以为负数。
在这种情况下,增值税金额(vatAmount)将以负数记录。
税务机关的增值税报告中使用的金额
应付增值税
这些金额通常为负数,因此必须反转。
Banana.document.vatCurrentBalance("S10").vatTaxable * (-1); Banana.document.vatCurrentBalance("S10").vatAmount * (-1);
如果客户退回了超过销售额的商品,它们也可能是正数。
应退增值税
这些金额通常为正数,因此必须反转。
Banana.document.vatCurrentBalance("P10").vatTaxable; Banana.document.vatCurrentBalance("P10").vatAmount;
如果退还给供应商超过销售额的商品,它们可能是负数。
期间
增值税报告通常在一段时期内(月,季度或半年)
应当把增值税当前余额(vatCurrentBalance)和起始日期(startDate),结束日期(endDate)一起使用。
//vat report for January 2018 var startDate = "2018-01-01"; var endDate = "2018-01-31 Banana.document.vatCurrentBalance("S10", startDate, endDate).vatTaxable; Banana.document.vatCurrentBalance("P10", startDate, endDate).vatTaxable;
多个增值税代码汇总
您可以通过将增值税代码用符号 "|"分隔,来获得不同代码的总数。
//vat report for January 2018 var startDate = "2018-01-01"; var endDate = "2018-01-31 // The taxable amount Banana.document.vatCurrentBalance("S0|S5|S10|SD5|SD10", startDate, endDate).vatTaxable * (-1); // The vat due Banana.document.vatCurrentBalance("S0|S5|S10|SD5|SD10", startDate, endDate).vatAmount * (-1); // The vat taxable vat recoverable Banana.document.vatCurrentBalance("P0|P5|P10|PD5|PD10", startDate, endDate).vatTaxable; // The vat vat recoverable Banana.document.vatCurrentBalance("P0|P5|P10|PD5|PD10", startDate, endDate).vatAmount;
打印增值税发生业务列表
如需打印增值税发生业务或进行增值税核算,请使用 Banana.document.journal(). 函数
// use the data from the transactions and only normal accounts (exclude cost centers) var journal = Banana.document.journal(Banana.document.ORIGINTYPE_CURRENT, Banana.document.ACCOUNTTYPE_NORMAL); for (i = 0; i < journal.rowCount; i++) { var tRow = journal.row(i); // we get the vat values var vatTaxable = tRow.value('JVatTaxable'); var vatAmount = tRow.value('VatAmount'); var vatPosted = tRow.value('VatPosted'); }
在 示例应用程序库 中,您可以找到两个发生业务示例列表:
- transactions with vatTaxable, vatAmount and vatPosted 列表。
- transctions with vatTaxable, vatAmount and vatPosted also converted in the transaction's currency 列表。