Как изменить UnitPrice с помощью API Dynamics GP - PullRequest
0 голосов
/ 23 мая 2018

Я хотел бы изменить UnitPrice при создании заказа через Dynamics GP API,

Поэтому я запускаю следующий код:

// Create a sales order object
        var salesOrder = new SalesOrder();

        // Create a sales document type key for the sales order
        var salesOrderType = new SalesDocumentTypeKey();
        salesOrderType.Type = SalesDocumentType.Order;

        // Populate the document type key of the sales order object
        salesOrder.DocumentTypeKey = salesOrderType;

        // Create a customer key
        var customerKey = new CustomerKey();
        customerKey.Id = customerSummary[0].Key.Id;

        // Set the customer key property of the sales order object
        salesOrder.CustomerKey = customerKey;

        // Create a batch key
        var batchKey = new BatchKey();
        batchKey.Id = "01-INBOUND";

        // Set the batch key property of the sales order object
        salesOrder.BatchKey = batchKey;

        // Create a sales order line to specify the ordered item
        var salesOrderLine = new SalesOrderLine();

        // Create an item key
        var orderedItem = new ItemKey();
        orderedItem.Id = "AA1111";

        // Set the item key property of the sales order line object
        salesOrderLine.ItemKey = orderedItem;

        // Create a sales order quantity object
        var orderedAmount = new Quantity();
        orderedAmount.Value = 1;

        // Set the quantity of the sales order line object
        salesOrderLine.Quantity = orderedAmount;


        // THIS DOESN'T WORK
        salesOrderLine.UnitPrice = new MoneyAmount { Value = 1.11m, Currency = "USD"  };

        // Discount works ok
        // salesOrderLine.Discount = new MoneyPercentChoice { Item = new MoneyAmount { Value = 1.25m } };

        // Create an array of sales order lines
        // Initialize the array with sales order line object
        SalesOrderLine[] orders = { salesOrderLine };

        // Add the sales order line array to the sales order
        salesOrder.Lines = orders;

        // Get the create policy for the sales order object
        var salesOrderCreatePolicy = dynamicsGP.GetPolicyByOperation("CreateSalesOrder", context);

        // Create the sales order
        dynamicsGP.CreateSalesOrder(salesOrder, context, salesOrderCreatePolicy);

Но строка для изменения UnitPrice не работает.

        salesOrderLine.UnitPrice = new MoneyAmount { Value = 1.11m, Currency = "USD"  };

Что я делаю не так?Цени любую помощь.

Спасибо!

1 Ответ

0 голосов
/ 05 июня 2018

Найденное решение:

В конфигурации политики веб-службы Dynamics GP для обновления политики счетов-фактур продаж необходимо обновить «Рассчитать поведение цены за единицу» на «Не рассчитывать».

Кроме того, убедитесь, что вы выбрали правильную компанию и назначили соответствующие роли для политики.Роль не должна быть по умолчанию.

Источник: https://www.cloudfronts.com/dynamics-gp-sales-invoice-unit-price-always-0/

...