<?php

namespace EnumType;

/**
 * This class stands for PaidStatusCodeType EnumType
 * Meta informations extracted from the WSDL
 * - documentation: Specifies the payment status of an order, as seen by the buyer and seller.
 * @subpackage Enumerations
 */
class PaidStatusCodeType
{
    /**
     * Constant for value 'NotPaid'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has not completed checkout, but has not paid through PayPal or PaisaPay (but please also see the documentation for PaymentHoldStatus and its applicable values). The buyer might have paid using another method, but the
     * payment might not have been received or cleared. Important: Please see the documentation for PaymentHoldStatus and its applicable values. PaymentHoldStatus contains the current status of a hold on a PayPal payment.
     * @return string 'NotPaid'
     */
    const VALUE_NOT_PAID = 'NotPaid';
    /**
     * Constant for value 'BuyerHasNotCompletedCheckout'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has not completed the checkout process and so has not made payment.
     * @return string 'BuyerHasNotCompletedCheckout'
     */
    const VALUE_BUYER_HAS_NOT_COMPLETED_CHECKOUT = 'BuyerHasNotCompletedCheckout';
    /**
     * Constant for value 'PaymentPendingWithPayPal'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has made a PayPal payment, but the seller has not yet received it.
     * @return string 'PaymentPendingWithPayPal'
     */
    const VALUE_PAYMENT_PENDING_WITH_PAY_PAL = 'PaymentPendingWithPayPal';
    /**
     * Constant for value 'PaidWithPayPal'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has made a PayPal payment, and the payment is complete. But please also see the documentation for PaymentHoldStatus and its applicable values. PaymentHoldStatus contains the current status of a hold on a PayPal payment.
     * @return string 'PaidWithPayPal'
     */
    const VALUE_PAID_WITH_PAY_PAL = 'PaidWithPayPal';
    /**
     * Constant for value 'MarkedAsPaid'
     * Meta informations extracted from the WSDL
     * - documentation: The order is marked as paid by either the buyer or seller.
     * @return string 'MarkedAsPaid'
     */
    const VALUE_MARKED_AS_PAID = 'MarkedAsPaid';
    /**
     * Constant for value 'PaymentPendingWithEscrow'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has made an escrow payment, but the seller has not yet received it.
     * @return string 'PaymentPendingWithEscrow'
     */
    const VALUE_PAYMENT_PENDING_WITH_ESCROW = 'PaymentPendingWithEscrow';
    /**
     * Constant for value 'PaidWithEscrow'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has made an escrow payment, and the seller has received payment.
     * @return string 'PaidWithEscrow'
     */
    const VALUE_PAID_WITH_ESCROW = 'PaidWithEscrow';
    /**
     * Constant for value 'EscrowPaymentCancelled'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has made an escrow payment, but has cancelled the payment.
     * @return string 'EscrowPaymentCancelled'
     */
    const VALUE_ESCROW_PAYMENT_CANCELLED = 'EscrowPaymentCancelled';
    /**
     * Constant for value 'PaymentPendingWithPaisaPay'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has paid with PaisaPay, but the payment is still being processed. The seller has not yet received payment.
     * @return string 'PaymentPendingWithPaisaPay'
     */
    const VALUE_PAYMENT_PENDING_WITH_PAISA_PAY = 'PaymentPendingWithPaisaPay';
    /**
     * Constant for value 'PaidWithPaisaPay'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has paid with PaisaPay, and the payment is complete.
     * @return string 'PaidWithPaisaPay'
     */
    const VALUE_PAID_WITH_PAISA_PAY = 'PaidWithPaisaPay';
    /**
     * Constant for value 'PaymentPending'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has made a payment other than PayPal, but the payment is still being processed.
     * @return string 'PaymentPending'
     */
    const VALUE_PAYMENT_PENDING = 'PaymentPending';
    /**
     * Constant for value 'PaymentPendingWithPaisaPayEscrow'
     * Meta informations extracted from the WSDL
     * - documentation: This enumeration value is deprecated since eBay India is no longer a functioning marketplace.
     * @return string 'PaymentPendingWithPaisaPayEscrow'
     */
    const VALUE_PAYMENT_PENDING_WITH_PAISA_PAY_ESCROW = 'PaymentPendingWithPaisaPayEscrow';
    /**
     * Constant for value 'PaidWithPaisaPayEscrow'
     * Meta informations extracted from the WSDL
     * - documentation: This enumeration value is deprecated since eBay India is no longer a functioning marketplace.
     * @return string 'PaidWithPaisaPayEscrow'
     */
    const VALUE_PAID_WITH_PAISA_PAY_ESCROW = 'PaidWithPaisaPayEscrow';
    /**
     * Constant for value 'PaisaPayNotPaid'
     * Meta informations extracted from the WSDL
     * - documentation: The selected payment method is PaisaPay, but the buyer has not made the payment.
     * @return string 'PaisaPayNotPaid'
     */
    const VALUE_PAISA_PAY_NOT_PAID = 'PaisaPayNotPaid';
    /**
     * Constant for value 'Refunded'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer's payment was refunded.
     * @return string 'Refunded'
     */
    const VALUE_REFUNDED = 'Refunded';
    /**
     * Constant for value 'WaitingForCODPayment'
     * Meta informations extracted from the WSDL
     * - documentation: The selected payment method is COD and the buyer will make the payment upon delivery.
     * @return string 'WaitingForCODPayment'
     */
    const VALUE_WAITING_FOR_CODPAYMENT = 'WaitingForCODPayment';
    /**
     * Constant for value 'PaidCOD'
     * Meta informations extracted from the WSDL
     * - documentation: The buyer has paid for the order with the COD payment method.
     * @return string 'PaidCOD'
     */
    const VALUE_PAID_COD = 'PaidCOD';
    /**
     * Constant for value 'CustomCode'
     * Meta informations extracted from the WSDL
     * - documentation: Reserved for future use.
     * @return string 'CustomCode'
     */
    const VALUE_CUSTOM_CODE = 'CustomCode';
    /**
     * Constant for value 'Paid'
     * Meta informations extracted from the WSDL
     * - documentation: The order has been paid for.
     * @return string 'Paid'
     */
    const VALUE_PAID = 'Paid';
    /**
     * Constant for value 'PayUponInvoice'
     * Meta informations extracted from the WSDL
     * - documentation: This value indicates that the buyer was offered the 'Pay Upon Invoice' option. The 'Pay Upon Invoice' option is only available to eligible German buyers as part of Progressive Checkout on the German site. If a German buyer is offered
     * the 'Pay Upon Invoice' option, that buyer is not required to pay for the order until after receiving an order invoice from the seller.
     * @return string 'PayUponInvoice'
     */
    const VALUE_PAY_UPON_INVOICE = 'PayUponInvoice';
    /**
     * Return true if value is allowed
     * @uses self::getValidValues()
     * @param mixed $value value
     * @return bool true|false
     */
    public static function valueIsValid($value)
    {
        return ($value === null) || in_array($value, self::getValidValues(), true);
    }
    /**
     * Return allowed values
     * @uses self::VALUE_NOT_PAID
     * @uses self::VALUE_BUYER_HAS_NOT_COMPLETED_CHECKOUT
     * @uses self::VALUE_PAYMENT_PENDING_WITH_PAY_PAL
     * @uses self::VALUE_PAID_WITH_PAY_PAL
     * @uses self::VALUE_MARKED_AS_PAID
     * @uses self::VALUE_PAYMENT_PENDING_WITH_ESCROW
     * @uses self::VALUE_PAID_WITH_ESCROW
     * @uses self::VALUE_ESCROW_PAYMENT_CANCELLED
     * @uses self::VALUE_PAYMENT_PENDING_WITH_PAISA_PAY
     * @uses self::VALUE_PAID_WITH_PAISA_PAY
     * @uses self::VALUE_PAYMENT_PENDING
     * @uses self::VALUE_PAYMENT_PENDING_WITH_PAISA_PAY_ESCROW
     * @uses self::VALUE_PAID_WITH_PAISA_PAY_ESCROW
     * @uses self::VALUE_PAISA_PAY_NOT_PAID
     * @uses self::VALUE_REFUNDED
     * @uses self::VALUE_WAITING_FOR_CODPAYMENT
     * @uses self::VALUE_PAID_COD
     * @uses self::VALUE_CUSTOM_CODE
     * @uses self::VALUE_PAID
     * @uses self::VALUE_PAY_UPON_INVOICE
     * @return string[]
     */
    public static function getValidValues()
    {
        return array(
            self::VALUE_NOT_PAID,
            self::VALUE_BUYER_HAS_NOT_COMPLETED_CHECKOUT,
            self::VALUE_PAYMENT_PENDING_WITH_PAY_PAL,
            self::VALUE_PAID_WITH_PAY_PAL,
            self::VALUE_MARKED_AS_PAID,
            self::VALUE_PAYMENT_PENDING_WITH_ESCROW,
            self::VALUE_PAID_WITH_ESCROW,
            self::VALUE_ESCROW_PAYMENT_CANCELLED,
            self::VALUE_PAYMENT_PENDING_WITH_PAISA_PAY,
            self::VALUE_PAID_WITH_PAISA_PAY,
            self::VALUE_PAYMENT_PENDING,
            self::VALUE_PAYMENT_PENDING_WITH_PAISA_PAY_ESCROW,
            self::VALUE_PAID_WITH_PAISA_PAY_ESCROW,
            self::VALUE_PAISA_PAY_NOT_PAID,
            self::VALUE_REFUNDED,
            self::VALUE_WAITING_FOR_CODPAYMENT,
            self::VALUE_PAID_COD,
            self::VALUE_CUSTOM_CODE,
            self::VALUE_PAID,
            self::VALUE_PAY_UPON_INVOICE,
        );
    }
    /**
     * Method returning the class name
     * @return string __CLASS__
     */
    public function __toString()
    {
        return __CLASS__;
    }
}
