Автоматически фиксировать платеж CC при подтверждении доставки

Один из моих клиентов задал мне вопрос о том, что он хотел бы автоматически «Захватить платеж CC» для заказов на продажу во время подтверждения грузоотправителя.

Я знаю, что в Acumatica есть методы пакетной обработки, которые позволяют делать это массово, но они все равно хотели бы, чтобы это выполнялось автоматически, как упомянуто выше.

Мои первоначальные мысли были о настройке, которая будет использовать этап автоматизации, когда грузоотправитель получит подтверждение о загрузке заказа и выполнении этапа «Захват платежа по CC».

Более или менее этап настройки, состоящий из 1) настраиваемого метода на экране грузоотправителя, который загружает рассматриваемый (ые) заказ (ы), а затем выполняет кнопку / функцию «Захватить платеж по CC» 2) этап автоматизации, назначаемый грузоотправителю на время подтверждения, которое выполняет вышеуказанный метод.

Это лучший способ обработки этого запроса или есть другой уже существующий метод, который я мог пропустить?

В настоящее время клиент пользуется версией 4.20.2115 и не заинтересован в переходе на 5.1 в ближайшее время.

Спасибо


person Jeff Williams    schedule 16.04.2015    source источник


Ответы (1)


Если в руках хаммер - все гвоздь :). Я могу предложить вам решение с точки зрения C #. В качестве решения я предлагаю вам переопределить метод подтверждения в классе расширения с использованием делегата. Я не знаю, о какой форме вы говорите, но предположим, что у этой формы есть SubmitterManager графа. Предположим также, что вы хотите отслеживать метод CreatePayment, у которого есть строка параметров, IDictionary, IDictionary. Затем вы можете создать расширение графика SubmitterManagerExt и использовать атрибут PXOverride с делегатом следующим образом:

public class SubmitterManagerExt : PXGraphExtension<SubmitterManager>
{
    [PXOverride]
    public bool CreatePayment(string viewName,
    IDictionary keys,
    IDictionary values,
    Func<string, IDictionary,
    IDictionary, bool> method)
    {
        // Call your method CreatePayment
        bool result = method(viewName, keys, values);
        if(result)
            {
                // here you can add some C# code, which will do something 
                // with created payments
             }
    }
    return result;
    }
}
person Yuriy Zaletskyy    schedule 17.04.2015