首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动力GP销售订单税

动力GP销售订单税
EN

Stack Overflow用户
提问于 2016-03-29 04:38:04
回答 1查看 521关注 0票数 0

在中,我需要将单个订单的税收设置为应税/非纳税(不能对客户记录进行征税)。

出于某种原因,无论我将什么传递到web服务的CreateSalesOrder调用中,它都不会保存税务信息。

我试过:

  • 使用已将“创建税收行为”设置为“将提供税收”的CreateSalesInvoice策略
  • 使用“使用报头级税收行为”和“创建税收行为”的策略已经尝试过所有4种模式。
  • 提供销售订单的总税金
  • 提供税金作为销售订单的税务细节
  • 所列项目的总税额
  • 提供税金作为销售订单的税务细节
  • 在订单上设置TaxScheduleKey
  • 在行项上设置TaxScheduleKey

税收在大奖赛中被取消了,这很让人恼火.的想法吗?我确实可以访问database,但如果可能的话,我真的不想走这条路。

我的研究让我相信,这是断断续续的(关于这个主题的每一条线都没有答案),微软也不会修复它,但这确实损害了自动化--一些可怕的东西。

EN

回答 1

Stack Overflow用户

发布于 2017-01-25 09:21:19

今天碰到了这个问题。一些背景:

在尝试了上面概述的所有内容之后,修改了策略--特别是销售文档--创建了销售文档策略,并且对于没有允许指定税收的创建销售订单的策略感到沮丧,我遇到了一篇关于如何设计或扩展GP服务的MSDN文章:https://msdn.microsoft.com/en-us/library/dd996499.aspx

我发现- "Program \MicrosoftDynamics\GPWebServices\XSLT“,特别是"Microsoft.Dynamics.GP.SalesOrderCreate.xslt”文件。

当它随GreatPlains一起安装时,根本不存在利用传入税收数据的转换(考虑到已经尝试过的内容,这并不令人惊讶)。USINGHEADERLEVELTAXES设置为0。

将"Microsoft.Dynamics.GP.SalesInvoiceCreate.xslt“文件中的纳税行组合到SalesOrderCreate.xslt文件中,您可以修改发送到eConnect for SalesOrderCreate中的XML,以正确地创建赋税。

下面的示例使用/测试了头级的纳税行为。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:mbs="http://schemas.microsoft.com/dynamics/2006/01"
    xmlns:gputil="urn:Microsoft.Dynamics.GP.TransformUtilities"
    version="1.0">

  <xsl:import href="Microsoft.Dynamics.GP.SalesCreateUpdateLibrary.xslt"/>
  <xsl:import href="Microsoft.Dynamics.GP.StandardLibrary.xslt"/>

  <xsl:variable name="CompanyId">
    <xsl:value-of select="/SalesOrder/mbs:Context/mbs:OrganizationKey/mbs:Id"/>
  </xsl:variable>

  <xsl:template match ="/">
    <eConnect xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsl:apply-templates />
    </eConnect>
  </xsl:template>

  <xsl:template match="SalesOrder">
    <SOPTransactionType>
      <xsl:apply-templates select="Lines/SalesOrderLine/Serials/SalesLineSerial">
        <xsl:with-param name="UpdateIfExists">0</xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select="Lines/SalesOrderLine/Components/SalesOrderComponent/Serials/SalesComponentSerial">
        <xsl:with-param name="UpdateIfExists">0</xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select="Lines/SalesOrderLine/Lots/SalesLineLot">
        <xsl:with-param name="UpdateIfExists">0</xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select="Lines/SalesOrderLine/Components/SalesOrderComponent/Lots/SalesComponentLot">
        <xsl:with-param name="UpdateIfExists">0</xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select="Lines/SalesOrderLine" />
      <xsl:apply-templates select="Lines/SalesOrderLine/Components/SalesOrderComponent" />
      <xsl:apply-templates select="TrackingNumbers/SalesTrackingNumber" />
      <xsl:apply-templates select="Taxes/SalesDocumentTax" />
      <xsl:apply-templates select="Commissions/SalesCommission" />
      <xsl:apply-templates select="Payments/SalesPayment">
        <xsl:with-param name="UpdateIfExists">0</xsl:with-param>
      </xsl:apply-templates>
      <xsl:apply-templates select="UserDefined" />
      <xsl:apply-templates select="Lines/SalesOrderLine/Bins/SalesLineBin" />
      <xsl:apply-templates select="Lines/SalesOrderLine/Components/SalesOrderComponent/Bins/SalesComponentBin" />
      <xsl:call-template name="SalesHeader" />
      <xsl:apply-templates select="ProcessHolds/SalesProcessHold">
        <xsl:with-param name="UpdateIfExists">0</xsl:with-param>
      </xsl:apply-templates>
    </SOPTransactionType>
  </xsl:template>

  <xsl:template match="SalesOrderLine">
    <taSopLineIvcInsert>
      <xsl:call-template name="CreateUpdateLine">
        <xsl:with-param name="UpdateIfExists">0</xsl:with-param>
        <xsl:with-param name="CompanyId">
          <xsl:value-of select="$CompanyId" />
        </xsl:with-param>
      </xsl:call-template>
      <xsl:if test="QuantityToBackorder/Value != ''">
        <QTYTBAOR>
          <xsl:value-of select="QuantityToBackorder/Value" />
        </QTYTBAOR>
      </xsl:if>
      <xsl:if test="QuantityToInvoice/Value != ''">
        <QUANTITY>
          <xsl:value-of select="QuantityToInvoice/Value" />
        </QUANTITY>
      </xsl:if>
      <xsl:if test="QuantityCanceled/Value != ''">
        <QTYCANCE>
          <xsl:value-of select="QuantityCanceled/Value" />
        </QTYCANCE>
      </xsl:if>
      <xsl:if test="QuantityFulfilled/Value != ''">
        <QTYFULFI>
          <xsl:value-of select="QuantityFulfilled/Value" />
        </QTYFULFI>
      </xsl:if>
      <xsl:if test="TaxAmount/Value != ''">
        <TAXAMNT>
          <xsl:value-of select="TaxAmount/Value" />
        </TAXAMNT>
      </xsl:if>
      <RecreateDist>0</RecreateDist>
    </taSopLineIvcInsert>
  </xsl:template>
  <xsl:template match="SalesOrderComponent">
    <taSopLineIvcInsertComponent>
      <xsl:call-template name="CreateUpdateComponent">
        <xsl:with-param name="UpdateIfExists">0</xsl:with-param>
      </xsl:call-template>
      <xsl:if test="QuantityToBackorder/Value != ''">
        <QTYTBAOR>
          <xsl:value-of select="QuantityToBackorder/Value" />
        </QTYTBAOR>
      </xsl:if>
      <xsl:if test="QuantityToInvoice/Value != ''">
        <QUANTITY>
          <xsl:value-of select="QuantityToInvoice/Value" />
        </QUANTITY>
      </xsl:if>
      <xsl:if test="QuantityCanceled/Value != ''">
        <QTYCANCE>
          <xsl:value-of select="QuantityCanceled/Value" />
        </QTYCANCE>
      </xsl:if>
      <xsl:if test="QuantityFulfilled/Value != ''">
        <QTYFULFI>
          <xsl:value-of select="QuantityFulfilled/Value" />
        </QTYFULFI>
      </xsl:if>
    </taSopLineIvcInsertComponent>
  </xsl:template>
  <xsl:template name="SalesHeader">
    <taSopHdrIvcInsert>
      <xsl:call-template name="CreateUpdateDocument">
        <xsl:with-param name="UpdateIfExists">0</xsl:with-param>
        <xsl:with-param name="CompanyId">
          <xsl:value-of select="$CompanyId" />
        </xsl:with-param>
      </xsl:call-template>
      <xsl:if test="PaymentAmount/Value != ''">
        <PYMTRCVD>
          <xsl:value-of select="PaymentAmount/Value" />
        </PYMTRCVD>
      </xsl:if>
      <xsl:if test="TaxAmount/Value != ''">
        <TAXAMNT>
          <xsl:value-of select="TaxAmount/Value" />
        </TAXAMNT>
      </xsl:if>
      <USINGHEADERLEVELTAXES>1</USINGHEADERLEVELTAXES>
      <CREATEDIST>0</CREATEDIST>
      <CREATETAXES>0</CREATETAXES>
    </taSopHdrIvcInsert>
  </xsl:template>
</xsl:stylesheet>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36275559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档