3

当我试图通过 Acumatica Web 服务 API 将我们的电子商务订单添加到 Acumatica 中时,Acumatica 中总是会根据我从我们的电子商务系统发送到 Acumatica 的产品和客户信息自动计算包括总计在内的税收详细信息。

由于我们的客户已经在我们的电子商务网站上为他们的订单支付了全部款项,包括税款,我想用任何数据覆盖这些与税收相关的信息,例如每件商品的税款总额和税款,我从电子商务中获取以避免电子商务和 Acumatica 之间的潜在冲突(在大多数情况下,两个系统中的税收计算应该完全相同,但有时由于某些配置或系统错误可能会有所不同),但是,我尝试了不同的方式,但没有一个有效。

有人知道该怎么做吗?我的部分代码如下:

SO301000Content SO301000 = context.SO301000GetSchema();
context.SO301000Clear();

List<Command> cmds = new List<Command>();

cmds.Add(new Value { Value = "SO", LinkedCommand = SO301000.OrderSummary.OrderType });
cmds.Add(new Value { Value = "<NEW>", LinkedCommand = SO301000.OrderSummary.OrderNbr });
cmds.Add(new Value { Value = "ABCD", LinkedCommand = SO301000.OrderSummary.Customer });
cmds.Add(new Value { Value = "ABCD1234", LinkedCommand = SO301000.OrderSummary.Location }); 

//please note I could add extra tax item as below:
cmds.Add(SO301000.TaxDetails.ServiceCommands.NewRow);
cmds.Add(new Value { Value = "0.5", LinkedCommand = SO301000.TaxDetails.TaxAmount });
cmds.Add(new Value { Value = "ON HST", LinkedCommand = SO301000.TaxDetails.TaxID });
cmds.Add(new Value { Value = "10", LinkedCommand = SO301000.TaxDetails.TaxRate });
cmds.Add(new Value { Value = "289", LinkedCommand = SO301000.TaxDetails.TaxableAmount });

//however when I was trying to add the number for tax total, it doesn't work
cmds.Add(new Value { Value = "1.5", LinkedCommand = SO301000.OrderSummary.TaxTotal });
cmds.Add(new Value { Value = "GST", LinkedCommand = SO301000.TaxDetails.TaxID });
//the two lines above do not work

//add line items
foreach (OrderItem item in orderInfo.OrderItems)
{
    cmds.Add(SO301000.DocumentDetails.ServiceCommands.NewRow);
    cmds.Add(new Value { Value = item.InventoryCD, LinkedCommand = SO301000.DocumentDetails.InventoryID });
    cmds.Add(new Value { Value = item.Quantity.ToString(), LinkedCommand = SO301000.DocumentDetails.Quantity });

}

cmds.Add(SO301000.Actions.Save);
cmds.Add(SO301000.OrderSummary.OrderNbr);

SO301000Content[] SO30100content = context.SO301000Submit(cmds.ToArray());

谢谢。

4

3 回答 3

1

让我澄清一下 Acumatica 中的工作税计算方式。Acumatica 根据客户税区属性表格财务设置选项卡计算税金。

正如杰夫所写的那样,您将如何向税务局报告税款的主要问题是您有几个选择。

如果您只需要文件的全部税额并且您不想控制文件中使用了哪些税款,那么下一个方法适合您:

  1. 使用默认税区和税种创建默认税。
  2. 从过去设置开始日期,税率 = 0
  3. 对于来自电子商务的任何新 SO,设置 Customer Tax Zone = Default
  4. 然后,当您根据税收设置保存文档时,acumatica 将在税收详细信息下创建一个税额为 0 的行,以便您可以对其进行编辑。可能您也可以在 api 调用期间动态创建该行。

注意:如果您需要更详细的数据,例如从电子商务获取 SO 的所有税款(州税、县税 + 等),您可以使用相同的方法,但您需要动态创建您的税/税区。

另一种选择可能是使用 Avalara 税务提供商。

我希望这些信息会有所帮助。

于 2015-06-25T11:18:49.623 回答
0

TaxTotal 是基于税表行项目总计的计算字段。如果没有一些自定义工作来启用该字段并删除计算,我认为不可能覆盖计算值。

我可以看到的几个选项 1) 根据您的行项目的总税额手动输入所有税行 2) 修改行项目以包含税并将税类别设置为“不可税”或为“创建一个新类别” PRETAXED/INCLUDINGTAX”或类似的东西,所以税收不会自动计算。3) 让 Acumatica 根据税收规则自动计算税收。

过去,我根据要求倾向于#2 和#3。

于 2015-06-24T16:17:54.140 回答
0

这是一篇旧帖子,但我想我会发布对 2019 R2 有用的答案。出于某种原因,Acumatica 不允许您在创建销售订单时更新 TaxDetails 税额字段。使用您分配的税区创建销售订单后,“税额”字段只能使用税明细对象 ID 进行更新。因此,您需要通过使用 ODATA 查询 $expand=TaxDetails 展开“税务详细信息”来获取销售订单的税务详细信息

然后使用 PUT 更新销售订单,并使用对象的现有“id”将税额发送到“TaxAmount”键值。根据您编写代码的方式,这将每次都能完美运行。下面是引用 TaxDetails 对象 ID 的屏幕截图。

显示 TaxDetails 对象 ID 的 JSON 示例

于 2020-12-23T15:31:57.570 回答