在此文中
在下文中,我们来解释当创建一个Banana应用程序,适用于特定国家的增值税报告时需要考虑的问题。
- 为特定国家创建增值税代码。
- 使用 Banana API 提供的功能创建国家特定报告或导出文件。
文档
示例文件
- 示例文件在 github/General/CaseStudies上可使用。
- 使用增值税 API 的解决方案。
增值税表
我们有两个主要的组:
- 销项税
- 进项税
为特定国家创建增值税代码
当您在一个新的国家使用 Banana 财务会计软件时,您需要根据您的国家需求调整增值税代码表。基本上您应该像这里描述的那样进行。
- 您应当知道增值税报告的格式。您需要创建增值税代码表,以便使用者可以为发生业务选择正确的代码,计算增值税并将金额分配在增值税纳税申报表的特定项目中。
- 如果有不同的增值税税率,您需要创建为销售的增值税代码和为抵扣的增值税代码。因为在增值税纳税申报时,增值税的销项税和增值税的进项税必须是分开的。
- 如果增值税纳税申报表要求您分开一些金额,则您可能需要为同一税率创建更多的增值税代码。
例如, 对于一个国家有增值税税率为5% 和10%。
- 对于 0%,您需要报告出口和销售免税:
- 为增值税免税创建一个增值税代码 S0 (即使税率为0,应付增值税额为确定)
- 为增值税出口创建一个增值税代码 SE (即使税率为0,应付增值税额为确定)
- 对于 5%
- 为销售税率为 5% 创建一个增值税代码 S5 (应付增值税额为确定)
- 为购买创建一个增值税代码 P5 (应付增值税额为否, 意味着退税)
- 如果您需要在纳税申报表中分开显示折扣,则为销售折扣为 5%创建一个增值税代码 SD5。
如果没有必要分开显示折扣,当进行折扣的发生业务时,我们用增值税代码"-S5",这样金额会反转。
有些国家有多个增值税税率和复杂的纳税申报表。在这种情况下,您最终将得到一个许多代码的增值税表。
使用组1将增值税代码分组
如果需要将不同增值税代码的增值税组合在一起,则可以使用 组1 进入增值税代码所属的领域。
- 当创建一个 Banana应用程序去分组在一起的金额时,您可以使用此组来报告金额。
- 如果用户需要为适合一个表格而添加新的增值税代码,它可以这样做,并可在纳税申报表中正确汇总。
在组1中指定增值税纳税表的栏位编号,用 ";" 来分隔数字,如果是相同的业务,则在组中输入多个栏位编号。例如:
- 纳税申报表中的栏100要求申报所有的销售金额。
- 不同的销售也需要在特定的税务栏中指出,所以我们也指定其他的税务栏。
- 折扣需要单独注明,所以我们指定折扣的特定栏。对于购买也同样适用。
给出完整的增值税代码表
有可能您会得到一个非常复杂的增值代码表。
一些用户可能只使用他们业务所必需的几个增值税代码。
但最好不要给用户一个精简的增值税代码表,因为他可能需要一个特定的增值税代码。
在这种情况下,在“禁止”列中输入1。用户能够使用这个代码,但在“发生业务”表中,该代码不会显示在“增值税码”可选列里。
设定增值税代码到账户表
对于每个账户,您可以分配一个默认的增值税代码 (增值税代码列)。
当您进入或输入发生业务时,增值税代码可以被搜索到,但是您也可以改变它。
含增值税的发生业务
我们看到以上不同的含增值税发生业务的例子。
- 记账凭证号 01-01 - 01-03。
我们使用不同的金额类型记录现金销售。
我们看到发生业务的金额是不同的,但应征税额和增值税金额总是相同的。
增值税金额为负值,因为增值税金额登记在贷方,因此该金额必须向税务机关缴纳。 - 记账凭证号 01-05。
客户退货。
我们使用相同的增值税代码,但是前面用减号标记。应征税额和增值税金额标志是倒置的。
增值税金额为正值 (借方) ,这意味着我们从税务机关那里得到增值税返还。 - 记账凭证号 01-06 - 01-08。
购买增值税金额为正值 (借方),这意味着我们从税务机关那里得到增值税返还。 - 记账凭证号 01-08。
向供应商退货,增值税代码被倒置,我们可以从税务机关得到增值税返还。
Excel表摘要
使用 Banana Excel同步功能 ,我们创建了一个Excel电子表格,其中包含了增值税代码的汇总值。
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;
- 增值税应征税是明确的金额,通常必须在增值税纳税申报表中作为销售收入金额来申报。
- 增值税金额是应交增值税的金额。
- 增值税应征税 + 增值税金额是包含增值税的销售额。
- 增值税不可免税金额是增值税金额在财政上不能被扣除。比如您有一笔费用的增值税不能被完全抵扣。
- 已交增值税 (增值税金额 - 增值税免税额) 是在增值税账户上已经缴纳的金额。
- 计数是使用增值税代码的行数。
增值税金额的标志
增值税金额遵循以下会计惯例。
- 如果增值税金额的标志是负值 (贷方) 则表示该增值税是销项税。
- 如果增值税金额的标志是正数,则表示该增值税是进项税。
应征增值税的标志遵循增值税金额的标志。如果增值税金额是零,应付增值税额的代码为确定,则应征增值税的标志为负值。
如果您使用增值税金额来创建一个税务报表,则应注意转换金额。
增值税金额标志和应付增值税额标志:
- 增值税代码有金额类型为(1) ,一般有增值税金额为负数,但是如果用户输入了增值税码为负值,“-1-1701”,增值税金额也可以为正数。
增值税码前面减号的标志被使用在反转发生业务中 (纠正一个错误的发生业务)。在这种情况下,增值税金额将被记录为正数。 - 增值税代码有应付增值税额为否 (空) ,一般有增值税金额为正数,但是如果用户使用了增值税码有减号标志“-1-1701”,增值税金额也可以是负数。
在这种情况下,增值税金额将被记录为负数。
为报税在增值税纳税申报表中所使用的金额
销项税
这个数额通常为负值,所以他们必须被反转。
Banana.document.vatCurrentBalance("S10").vatTaxable * (-1); Banana.document.vatCurrentBalance("S10").vatAmount * (-1);
如果客户退货超过了销售额,它们也会是正值。
进项税
这个数额通常为正值,所以他们必须被反转。
Banana.document.vatCurrentBalance("P10").vatTaxable; Banana.document.vatCurrentBalance("P10").vatAmount;
如果给供应商的退货超过了销售额,它们也会是负值。
时期
增值税报告通常按时期来出具 (月度, 季度或半年度)。
您可以使用增值税有开始日期和结束日期的当前余额。
//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'); }
在示例应用程序库中,您可以发现两个发生业务列表的示例: