atg.commerce.payment.processor

Class ProcCreateInvoiceRequestInfo

    • Field Detail

      • CLASS_VERSION

        public static java.lang.String CLASS_VERSION
      • SUCCESS

        public static final int SUCCESS
        Return values for this processor.
        See Also:
        Constant Field Values
    • Constructor Detail

      • ProcCreateInvoiceRequestInfo

        public ProcCreateInvoiceRequestInfo()
    • Method Detail

      • setInvoiceRequestInfoClass

        public void setInvoiceRequestInfoClass(java.lang.String pInvoiceRequestInfoClass)
        Specify the class to instantiate when creating a new InvoiceRequestInfo object. If the GenericInvoiceRequestInfo class is extended to include more information, this property can be changed to reflect the new class.
      • getInvoiceRequestInfoClass

        public java.lang.String getInvoiceRequestInfoClass()
        Return the class to instantiate when creating a new InvoiceRequestInfo object.
      • addDataToInvoiceRequestInfo

        protected void addDataToInvoiceRequestInfo(Order pOrder,
                                       InvoiceRequest pPaymentGroup,
                                       double pAmount,
                                       PaymentManagerPipelineArgs pParams,
                                       GenericInvoiceRequestInfo pInvoiceRequestInfo)
        This method populates the InvoiceRequestInfo object with data. If the additional data is required, a subclass of GenericInvoiceRequestInfo can be created with additional properties, the invoiceRequestInfoClass property can be changed to specify the new class, and this method can be overridden to add data for the new properties (or another pipeline processor could be added after this processor to populate the additional properties).
        Parameters:
        pOrder - The order being paid for.
        pPaymentGroup - The payment group being processed.
        pAmount - The amount being authorized, debited, or credited
        pParams - The parameter dictionary passed to this pipeline processor
        pInvoiceRequestInfo - An object that holds information understood by the invoice request payment processor.
      • computeBalanceDue

        protected java.lang.Double computeBalanceDue(double pAmount,
                                         PaymentGroup pPmt)
        Compute the balance due on the invoice by looking at the payment group original amount, subtracting anything that's already been debited, and adding back in any credits applied to the payment group.

        The assumption here is that credits don't reduce the total amount billed to the payment group, they only affect the outstanding balance. If one wants to reduce the total amount billed, one would presumably change the amount field in the payment group. If this assumption is incorrect and a different balance due behavior is desired, applications can subclass this class and replace the computeBalanceDue method to return a different value.

        Parameters:
        pAmount - The amount value passed by the payment manager as the amount to authorize, debit, or credit. This value is not used by the default implementation of computeBalanceDue but is included in the method signature in case subclassed versions of the method require it.
        pPmt - The payment group for which an InvoiceRequestInfo object is being created.
        Returns:
        The amount to list as "balance due" in the invoice request info.
      • getInvoiceRequestInfo

        protected GenericInvoiceRequestInfo getInvoiceRequestInfo()
                                                           throws java.lang.Exception
        Factory method to create a new InvoiceRequestInfo object. The class that is created is that specified by the invoiceRequestInfoClass property, and must be a subclass of atg.payment.invoice.GenericInvoiceRequestInfo.
        Returns:
        An object of the class specified by invoiceRequestInfoClass
        Throws:
        java.lang.Exception - if any instantiation error occurs when creating the info object
      • runProcess

        public int runProcess(java.lang.Object pParam,
                     PipelineResult pResult)
                       throws java.lang.Exception
        Generate an InvoiceRequestInfo object of the class specified by invoiceRequestInfoClass, populate it with data from an InvoiceRequest payment group by calling addDataToInvoiceRequestInfo, and add it to the pipeline argument dictionary so that downstream pipeline processors can access it.
        Specified by:
        runProcess in interface PipelineProcessor
        Parameters:
        pParam - Parameter dictionary of type PaymentManagerPipelineArgs.
        pResult - Pipeline result object, not used by this method.
        Returns:
        An integer value used to determine which pipeline processor is called next.
        Throws:
        java.lang.Exception - If any error occurs creating or populating the invoice request info object.
      • getRetCodes

        public int[] getRetCodes()
        Return the possible return values for this processor. This processor always returns a success code.
        Specified by:
        getRetCodes in interface PipelineProcessor
        Returns:
        an array of all the return codes that could be returned by this PipelineProcessor.