Проблемы с удалением инвойса при обновлении с плагином - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь создать плагин, который удаляет каждый InvoiceDetail в состоянии Обновление и Синхронный режим (поскольку Asyncronous также не работает), поэтому я пытаюсь получить InvoiceDetailId каждого InvoiceDetail при обновлении и затем удалить его

Во-первых:

// get the invoicedetailid  
var The_Guid_InvoiceDetail_ID = entity.GetAttributeValue<Guid>("invoicedetailid");

, а затем

// just delet it
service.Delete("invoicedetail", The_Guid_InvoiceDetail_ID);

Теоретически, если я нахожусь в заказе с несколькими OrderDetails , и я нажимаю «Создать счет» , каждый новый InvoiceDetail должен быть удаляется автоматически, и мой новый счет будет без InvoiceDetail

но я получаю сообщение об ошибке

Счет-фактура с идентификатором = 3851d9d4-5e4c-e811-80fe-3863bb35fc90 Не существует

это просто произойдет, если у меня будет более одной детали заказа, если у меня будет только одна, она будет удалена

пожалуйста, помогите !!

Мой код:

namespace My_Cool_Plugin
{
    public class Class1 : IPlugin
    {
        public void Execute(IServiceProvider serviceProvider)
        {
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            IOrganizationServiceFactory factory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = (IOrganizationService)factory.CreateOrganizationService(context.UserId);
            ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));


            if (context.InputParameters.Contains("Target") && context.InputParameters["Target"] is Entity)
            {
                Entity entity = (Entity)context.InputParameters["Target"];

                var The_Guid_InvoiceDetail_ID = entity.GetAttributeValue<Guid>("invoicedetailid");

                service.Delete("invoicedetail", The_Guid_InvoiceDetail_ID);

            } // if context end
        } // Execute end
    } // class Class1 end
} // namespace end
...