# -*- coding: utf-8 -*-

"""
shelldatareportingapis

This file was automatically generated by APIMATIC v3.0 (
 https://www.apimatic.io ).
"""
from shelldatareportingapis.api_helper import APIHelper
from shelldatareportingapis.models.error_status import ErrorStatus


class PricedTransactionResponseTransactionsItems(object):

    """Implementation of the 'PricedTransactionResponseTransactionsItems' model.

    TODO: type model description here.

    Attributes:
        mtype (str): TransactionType is the type of transaction. Example:
            SalesItem /FeeItem
        card_id (int): Unique Card Id
        card_pan (str): Card PAN
        card_expiry (str): Card Expiry Date
        transaction_date (str): Local Transaction Date  of where the
            transaction took place
        transaction_time (str): Local Transaction Time of where the
            transaction took place
        utc_offset (str): UTC Offset extracted from Sales Date time.   Note:
            This may not be accurate for all TPN transactions  Format:
            +/-HH:mm:ss (24 hours format)  Note: - The value could be
            null/blank for fees item.
        fleet_id_input (str): Fleet Id Input as entered by the drivers at the
            time of transaction Example: XYZ1234 Note: - The value could be
            null/blank for fees item.
        odometer_input (int): Odometer Input as entered by the drivers at the
            time of transaction Example: 12345 Note: - The value could be
            null/blank for fees item.
        driver_name (str): Driver Name embossed on the card Example:  ANDREW
            GILBERRY
        vehicle_registration (str): Vehicle Registration Number embossed on
            the card Example: MV65YLH
        invoice_currency_code (str): ISO currency code   Example: GBP
        invoice_currency_symbol (str): Currency symbol of the Invoice Currency
            Code   Example: £, $
        transaction_currency_code (str): ISO currency code
        transaction_currency_symbol (str): Currency symbol of the Transaction
            Currency Code Example: £, $
        transaction_net_amount (float): Net Amount
        transaction_tax (float): Tax Amount
        transaction_gross_amount (float): Gross Amount
        invoice_net_amount (float): Invoiced Net Amount   Note: For a fee
            item, this parameter will be populated with fee InvoiceNetAmount.
        invoice_tax (float): Invoiced Tax Amount
        invoice_gross_amount (float): Invoice Gross Amount Note: For a fee
            item, this parameter will be populated with fee InvoiceGrossAmount.
        purchased_in_country (str): Country of Purchase
        account_id (int): Account Id   Example: 29484
        account_number (str): Account Number
        account_name (str): Account Name
        account_short_name (str): Account Short Name
        quantity (int): Quantity/Volume
        fuel_product (bool): True if the product on transaction is listed as a
            fuel product else return false
        unit_price_in_transaction_currency (float): Product Unit Price in
            transaction currency
        unit_price_in_invoice_currency (float): Product Unit Price in invoice
            currency
        unit_discount_transaction_currency (float): Unit Discount in
            transaction currency
        unit_discount_invoice_currency (float): Unit Discount in invoice
            currency Note: - The value could be null/blank for fees item.
        is_invoiced (bool): True when the transaction is already invoice, else
            return False
        invoice_number (str): Invoice Number if invoiced S04500493
        invoice_date (str): Invoice Date   Format: yyyyMMdd HH:mm:ss
        site_code (str): Site Code Example: 050001 -    CHARNOCK RICHARD
            NTHBOUND MWSA 0755 050002 -    CHARNOCK RICHARD STHBOUND MWSA 0755
        site_name (str): Site Name Example: 050001 -    CHARNOCK RICHARD
            NTHBOUND MWSA 0755 050002 -    CHARNOCK RICHARD STHBOUND MWSA 0755
        site_country (str): Site Country Example: France, Germany Note: - The
            value could be null/blank for fees item. Geography Location entity
            for Site Location Note: - The value could be null/blank for fees
            item.
        location (List[object | None | PricedTransactionItemsLocationItems] |
            None): Geography Location entity for Site Location Note: - The
            value could be null/blank for fees item
        card_group_name (str): Card Group Name
        receipt_number (str): Receipt Number
        product_code (str): Product Code 10    TMF Charges 11   
            Tunnel/Bridges 12    Motorway toll 13    Ferries
        product_name (str): Product Name Unleaded - High octane Unleaded -
            Medium octane Unleaded - Low octane Unleaded Environmental
        product_group_id (int): Product Group Id  Example:   1    Parent
            Product Group  2    All Fuels  3    Motor gasoline  4    2 stroke 
            5    Autogas  6    CNG
        product_group_name (str): Product Group Name  Example:   1    Parent
            Product Group  2    All Fuels  3    Motor gasoline  4    2 stroke 
            5    Autogas  6    CNG  7    Automotive Gas Oil
        del_co_exchange_rate (float): DelCo Exchange Rate (Site exchange rate)
        col_co_exchange_rate (float): ColCo Exchange Rate (Customer exchange
            rate)
        is_shell_site (bool): True when transaction occurred at a Shell site
            else return False Note: - The value could be null/blank for fees
            item.
        network (str): Network as configured in GFN (Shell PH, ESSO, etc.,)
            100013    STEINDORFER 100015    S.A. BELGIAN SHELL N.V. 100016   
            ESSO BE Note: - The value could be null/blank for fees item
        site_group_id (int): Site Group Id Example: 202 Note: - The value
            could be null/blank for fees item.
        site_group_name (str): Site Group Name Example: CZ 9100 ECONOMY NETWORK
        posting_date (str): Transaction Posting Date Format: yyyyMMdd HHmmss
        issuer_code (str): First digits of the Card PAN   7002 = Fleet    7077
            = CRT
        purchased_in_country_code (str): ISO code of the country where the
            transaction took place Example: “NL”
        customer_country_code (str): ISO code of the  Customer Country
        customer_country (str): Name of the Customer Country
        release_code (str): Release code, 7th Digit of the Card PAN
        card_group_id (str): Card group ID
        card_sequence_number (str): 3 digits, Card sequence number and Check
            digit
        check_digit (str): Check digit, Last number of the card pan
        fleet_id_description (str): FleetId/CRN description in Card Platform
            configured at the account level
        vat_rate (float): VAT Percentage 0.20 for 20%
        vat_category (str): VAT Category Id-Description 1-Zero Rated 2-A1 PH-O
            12% Sales Domestic 3-VAT exempt
        vat_country (str): VAT Country
        effective_discount_in_trx_currency (float): Effective Discount
            (excluding VAT, in transaction currency) 4 digits Example: 0.0000
            Note: - The value could be null/blank for fees item.
        transaction_type (str): Transaction Type Example: Purchase when Card
            is Present else Blank Note: - The value could be null/blank for
            fees item.
        pin_indicator (str): Pin Indicator (Indicates whether PIN used or not
            used at the time of transaction)  Example: “PIN Used'” or “No PIN”
            or “Unknown”   Note: - The value could be null/blank for fees item
        vat_applicable (str): Is VAT Applicable for this transaction
        net_invoice_indicator (str): Net Invoice Indicator, Will the customer
            receive an invoice without VAT? Example: “Y” or “N”
        customer_currency_code (str): Customer currency code
        customer_currency_symbol (str): Customer currency Symbol
        effective_unit_discount_in_customer_currency (float): Effective Unit
            Discount (excluding VAT in Customer currency) Note: - The value
            could be null/blank for fees item.
        effective_discount_in_customer_currency (float): Effective Discount
            (excluding VAT in Customer currency) Note: - The value could be
            null/blank for fees item
        va_ton_net_amount_in_customer_currency (float): VAT on Net Amount (in
            Customer currency)
        discount_type (str): Discount Type Example: 1-None 2-Pence per unit
            3-Percentage Note: - The value could be null/blank for fees item
        transaction_status (str): Transaction status "U" or "I" “U” stands for
            Uninvoiced “I” stands for Invoiced
        sales_item_id (int): Unique Sales Item Identifier Example: 18315958002
            Note: For a fee item, this parameter will be populated with
            SalesItemId.
        payer_group (str): Payer Group applicable for the Large Customer NL+8
            digit code
        payer_group_name (str): Payer Group Name
        refund_flag (str): Refund Flag “N” for Not Refunded and “Y” for
            Refunded.
        original_sales_item_id (str): Shows Sales Item Id of the original item
            that was refunded
        delco_name (str): Delco Name
        delco_code (str): Delco Code
        payer_number (str): Payer number (Country code+8 digits)
        payer_name (str): Payer name Example: V.M. LE COMTE
        card_expiry_period (str): Year/Month of the Card Expiry captured on
            the transaction
        authorisation_code (str): Authorisation code of the transaction
            Example: 011256 Note: - The value could be null/blank for fees item
        transaction_id (str): Unique id of the transaction that may include
            one or more salesitems
        transaction_line (str): Transaction line item number
        allow_clearing (str): Is the Sales Item allowed for clearing? i.e. not
            written off Example: “Y” or “N” Note: - The value could be
            null/blank for fees item.
        crm_number (str): CRM Case number if the sales item is in dispute
            Note: - The value could be null/blank for fees item.
        dispute_status (str): Sales Item Dispute Status if disputed 0    No
            Dispute 1    In Dispute 2    Re-Instated 3    Adjusted 4   
            Written Off by Colco 5    Written Off by Delco 6    Charged Back
            to Site Note: - The value could be null/blank for fees item.
        rebate_rate (float): Unit discount in customer currency. Example:
            28.279000 Note: - The value could be null/blank for fees item
        del_co_to_col_co_exchange_rate (float): Exchange rate from transaction
            currency to customer currency. Example: 1 Note: - The value could
            be null/blank for fees item
        net_euro_amount (float): Net euro amount. Example: 37.93 Note: - The
            value could be null/blank for fees item
        euro_rebate_amount (float): Euro rebate amount. Example: 0 Note: - The
            value could be null/blank for fees item
        euro_vat_amount (float): Euro VAT amount. Example: 7.96 Note: - The
            value could be null/blank for fees item
        parent_customer_number (str): Parent customer number
        parent_customer_name (str): Parent customer name.
        parent_customer_id (int): Parent customer id.
        incoming_site_number (str): Incoming Site Number Example: 100021 Note:
            - The value could be null/blank for fees item.
        incoming_site_description (str): Incoming Site Description Example:
            HN3 INTI_02-82.02 Note: - The value could be null/blank for fees
            item.
        incoming_currency_code (str): Incoming Currency Code Example: GBP
            Note: - The value could be null/blank for fees item
        incoming_product_code (str): Incoming Product Code Example: 30
        credit_debit_code (str): Credit Debit Code Example: “D” or “C” The
            value could be null/blank for fees item.
        correction_flag (str): Correction Flag Example: “Y” or “N” The value
            could be null/blank for fees item.
        additional_1 (str): Additional1
        additional_2 (str): Additional2
        additional_3 (str): Additional3
        additional_4 (str): Additional4
        rebateon_net_amount_in_customer_currency (float): Rebate on Net Amount
            In Customer Currency Example: -0.735000000000 Note: - The value
            could be null/blank for fees item.
        rebateon_net_amount_in_transaction_currency (float): Rebate on Net
            Amount In Transaction Currency Example: -0.735000000000 Note: -
            The value could be null/blank for fees item.
        network_code (str): Network Code Example: AVEE PTUAZONW CUBFAO COSFS
            Note: - The value could be null/blank for fees item
        trn_identifier (str): Transaction Identifier
        card_type (str): Card Type
        delco_list_price_unit_net (float): Delco List Price Unit Net Example:
            30.500000
        delco_retail_price_unit_net (float): Retail Net Price (or pump net
            price) per Unit in transaction currency Example: 1.921000
        delco_retail_price_unit_gross (float): Retail gross price (or pump
            gross price) per unit in transaction currency
        delco_retail_value_total_net (float): Retail net price (or net pump
            price) in transaction currency
        delco_retail_value_total_gross (float): Retail gross price (or gross
            pump price) in transaction currency
        customer_retail_price_unit_gross (float): Retail gross price (or pump
            gross price) per unit in customer currency
        customer_retail_value_total_gross (float): Retail gross price (or
            gross pump price) in customer currency
        customer_retail_value_total_net (float): Retail gross price (or gross
            pump price) in customer currency Retail net price (or net pump
            price) in customer currency
        transaction_type_description (str): Transaction Type Description Note:
            - The value could be null/blank for fees item
        error (ErrorStatus): TODO: type description here.
        request_id (str): API Request Id

    """

    # Create a mapping from Model property names to API property names
    _names = {
        "mtype": 'Type',
        "card_id": 'CardId',
        "card_pan": 'CardPAN',
        "card_expiry": 'CardExpiry',
        "transaction_date": 'TransactionDate',
        "transaction_time": 'TransactionTime',
        "utc_offset": 'UTCOffset',
        "fleet_id_input": 'FleetIdInput',
        "odometer_input": 'OdometerInput',
        "driver_name": 'DriverName',
        "vehicle_registration": 'VehicleRegistration',
        "invoice_currency_code": 'InvoiceCurrencyCode',
        "invoice_currency_symbol": 'InvoiceCurrencySymbol',
        "transaction_currency_code": 'TransactionCurrencyCode',
        "transaction_currency_symbol": 'TransactionCurrencySymbol',
        "transaction_net_amount": 'TransactionNetAmount',
        "transaction_tax": 'TransactionTax',
        "transaction_gross_amount": 'TransactionGrossAmount',
        "invoice_net_amount": 'InvoiceNetAmount',
        "invoice_tax": 'InvoiceTax',
        "invoice_gross_amount": 'InvoiceGrossAmount',
        "purchased_in_country": 'PurchasedInCountry',
        "account_id": 'AccountId',
        "account_number": 'AccountNumber',
        "account_name": 'AccountName',
        "account_short_name": 'AccountShortName',
        "quantity": 'Quantity',
        "fuel_product": 'FuelProduct',
        "unit_price_in_transaction_currency": 'UnitPriceInTransactionCurrency',
        "unit_price_in_invoice_currency": 'UnitPriceInInvoiceCurrency',
        "unit_discount_transaction_currency": 'UnitDiscountTransactionCurrency',
        "unit_discount_invoice_currency": 'UnitDiscountInvoiceCurrency',
        "is_invoiced": 'IsInvoiced',
        "invoice_number": 'InvoiceNumber',
        "invoice_date": 'InvoiceDate',
        "site_code": 'SiteCode',
        "site_name": 'SiteName',
        "site_country": 'SiteCountry',
        "location": 'Location',
        "card_group_name": 'CardGroupName',
        "receipt_number": 'ReceiptNumber',
        "product_code": 'ProductCode',
        "product_name": 'ProductName',
        "product_group_id": 'ProductGroupId',
        "product_group_name": 'ProductGroupName',
        "del_co_exchange_rate": 'DelCoExchangeRate',
        "col_co_exchange_rate": 'ColCoExchangeRate',
        "is_shell_site": 'IsShellSite',
        "network": 'Network',
        "site_group_id": 'SiteGroupId',
        "site_group_name": 'SiteGroupName',
        "posting_date": 'PostingDate',
        "issuer_code": 'IssuerCode',
        "purchased_in_country_code": 'PurchasedInCountryCode',
        "customer_country_code": 'CustomerCountryCode',
        "customer_country": 'CustomerCountry',
        "release_code": 'ReleaseCode',
        "card_group_id": 'CardGroupId',
        "card_sequence_number": 'CardSequenceNumber',
        "check_digit": 'CheckDigit',
        "fleet_id_description": 'FleetIDDescription',
        "vat_rate": 'VATRate',
        "vat_category": 'VATCategory',
        "vat_country": 'VATCountry',
        "effective_discount_in_trx_currency": 'EffectiveDiscountInTrxCurrency',
        "transaction_type": 'TransactionType',
        "pin_indicator": 'PINIndicator',
        "vat_applicable": 'VATApplicable',
        "net_invoice_indicator": 'NetInvoiceIndicator',
        "customer_currency_code": 'CustomerCurrencyCode',
        "customer_currency_symbol": 'CustomerCurrencySymbol',
        "effective_unit_discount_in_customer_currency": 'EffectiveUnitDiscountInCustomerCurrency',
        "effective_discount_in_customer_currency": 'EffectiveDiscountInCustomerCurrency',
        "va_ton_net_amount_in_customer_currency": 'VATonNetAmountInCustomerCurrency',
        "discount_type": 'DiscountType',
        "transaction_status": 'TransactionStatus',
        "sales_item_id": 'SalesItemId',
        "payer_group": 'PayerGroup',
        "payer_group_name": 'PayerGroupName',
        "refund_flag": 'RefundFlag',
        "original_sales_item_id": 'OriginalSalesItemId',
        "delco_name": 'DelcoName',
        "delco_code": 'DelcoCode',
        "payer_number": 'PayerNumber',
        "payer_name": 'PayerName',
        "card_expiry_period": 'CardExpiryPeriod',
        "authorisation_code": 'AuthorisationCode',
        "transaction_id": 'TransactionId',
        "transaction_line": 'TransactionLine',
        "allow_clearing": 'AllowClearing',
        "crm_number": 'CRMNumber',
        "dispute_status": 'DisputeStatus',
        "rebate_rate": 'RebateRate',
        "del_co_to_col_co_exchange_rate": 'DelCoToColCoExchangeRate',
        "net_euro_amount": 'NetEuroAmount',
        "euro_rebate_amount": 'EuroRebateAmount',
        "euro_vat_amount": 'EuroVATAmount',
        "parent_customer_number": 'ParentCustomerNumber',
        "parent_customer_name": 'ParentCustomerName',
        "parent_customer_id": 'ParentCustomerId',
        "incoming_site_number": 'IncomingSiteNumber',
        "incoming_site_description": 'IncomingSiteDescription',
        "incoming_currency_code": 'IncomingCurrencyCode',
        "incoming_product_code": 'IncomingProductCode',
        "credit_debit_code": 'CreditDebitCode',
        "correction_flag": 'CorrectionFlag',
        "additional_1": 'Additional1',
        "additional_2": 'Additional2',
        "additional_3": 'Additional3',
        "additional_4": 'Additional4',
        "rebateon_net_amount_in_customer_currency": 'RebateonNetAmountInCustomerCurrency',
        "rebateon_net_amount_in_transaction_currency": 'RebateonNetAmountInTransactionCurrency',
        "network_code": 'NetworkCode',
        "trn_identifier": 'TrnIdentifier',
        "card_type": 'CardType',
        "delco_list_price_unit_net": 'DelcoListPriceUnitNet',
        "delco_retail_price_unit_net": 'DelcoRetailPriceUnitNet',
        "delco_retail_price_unit_gross": 'DelcoRetailPriceUnitGross',
        "delco_retail_value_total_net": 'DelcoRetailValueTotalNet',
        "delco_retail_value_total_gross": 'DelcoRetailValueTotalGross',
        "customer_retail_price_unit_gross": 'CustomerRetailPriceUnitGross',
        "customer_retail_value_total_gross": 'CustomerRetailValueTotalGross',
        "customer_retail_value_total_net": 'CustomerRetailValueTotalNet',
        "transaction_type_description": 'TransactionTypeDescription',
        "error": 'Error',
        "request_id": 'RequestId'
    }

    _optionals = [
        'mtype',
        'card_id',
        'card_pan',
        'card_expiry',
        'transaction_date',
        'transaction_time',
        'utc_offset',
        'fleet_id_input',
        'odometer_input',
        'driver_name',
        'vehicle_registration',
        'invoice_currency_code',
        'invoice_currency_symbol',
        'transaction_currency_code',
        'transaction_currency_symbol',
        'transaction_net_amount',
        'transaction_tax',
        'transaction_gross_amount',
        'invoice_net_amount',
        'invoice_tax',
        'invoice_gross_amount',
        'purchased_in_country',
        'account_id',
        'account_number',
        'account_name',
        'account_short_name',
        'quantity',
        'fuel_product',
        'unit_price_in_transaction_currency',
        'unit_price_in_invoice_currency',
        'unit_discount_transaction_currency',
        'unit_discount_invoice_currency',
        'is_invoiced',
        'invoice_number',
        'invoice_date',
        'site_code',
        'site_name',
        'site_country',
        'location',
        'card_group_name',
        'receipt_number',
        'product_code',
        'product_name',
        'product_group_id',
        'product_group_name',
        'del_co_exchange_rate',
        'col_co_exchange_rate',
        'is_shell_site',
        'network',
        'site_group_id',
        'site_group_name',
        'posting_date',
        'issuer_code',
        'purchased_in_country_code',
        'customer_country_code',
        'customer_country',
        'release_code',
        'card_group_id',
        'card_sequence_number',
        'check_digit',
        'fleet_id_description',
        'vat_rate',
        'vat_category',
        'vat_country',
        'effective_discount_in_trx_currency',
        'transaction_type',
        'pin_indicator',
        'vat_applicable',
        'net_invoice_indicator',
        'customer_currency_code',
        'customer_currency_symbol',
        'effective_unit_discount_in_customer_currency',
        'effective_discount_in_customer_currency',
        'va_ton_net_amount_in_customer_currency',
        'discount_type',
        'transaction_status',
        'sales_item_id',
        'payer_group',
        'payer_group_name',
        'refund_flag',
        'original_sales_item_id',
        'delco_name',
        'delco_code',
        'payer_number',
        'payer_name',
        'card_expiry_period',
        'authorisation_code',
        'transaction_id',
        'transaction_line',
        'allow_clearing',
        'crm_number',
        'dispute_status',
        'rebate_rate',
        'del_co_to_col_co_exchange_rate',
        'net_euro_amount',
        'euro_rebate_amount',
        'euro_vat_amount',
        'parent_customer_number',
        'parent_customer_name',
        'parent_customer_id',
        'incoming_site_number',
        'incoming_site_description',
        'incoming_currency_code',
        'incoming_product_code',
        'credit_debit_code',
        'correction_flag',
        'additional_1',
        'additional_2',
        'additional_3',
        'additional_4',
        'rebateon_net_amount_in_customer_currency',
        'rebateon_net_amount_in_transaction_currency',
        'network_code',
        'trn_identifier',
        'card_type',
        'delco_list_price_unit_net',
        'delco_retail_price_unit_net',
        'delco_retail_price_unit_gross',
        'delco_retail_value_total_net',
        'delco_retail_value_total_gross',
        'customer_retail_price_unit_gross',
        'customer_retail_value_total_gross',
        'customer_retail_value_total_net',
        'transaction_type_description',
        'error',
        'request_id',
    ]

    _nullables = [
        'mtype',
        'card_id',
        'card_pan',
        'card_expiry',
        'transaction_date',
        'transaction_time',
        'utc_offset',
        'fleet_id_input',
        'odometer_input',
        'driver_name',
        'vehicle_registration',
        'invoice_currency_code',
        'invoice_currency_symbol',
        'transaction_currency_code',
        'transaction_currency_symbol',
        'transaction_net_amount',
        'transaction_tax',
        'transaction_gross_amount',
        'invoice_net_amount',
        'invoice_tax',
        'invoice_gross_amount',
        'purchased_in_country',
        'account_id',
        'account_number',
        'account_name',
        'account_short_name',
        'quantity',
        'fuel_product',
        'unit_price_in_transaction_currency',
        'unit_price_in_invoice_currency',
        'unit_discount_transaction_currency',
        'unit_discount_invoice_currency',
        'is_invoiced',
        'invoice_number',
        'invoice_date',
        'site_code',
        'site_name',
        'site_country',
        'card_group_name',
        'receipt_number',
        'product_code',
        'product_name',
        'product_group_id',
        'product_group_name',
        'del_co_exchange_rate',
        'col_co_exchange_rate',
        'is_shell_site',
        'network',
        'site_group_id',
        'site_group_name',
        'posting_date',
        'issuer_code',
        'purchased_in_country_code',
        'customer_country_code',
        'customer_country',
        'release_code',
        'card_group_id',
        'card_sequence_number',
        'check_digit',
        'fleet_id_description',
        'vat_rate',
        'vat_category',
        'vat_country',
        'effective_discount_in_trx_currency',
        'transaction_type',
        'pin_indicator',
        'vat_applicable',
        'net_invoice_indicator',
        'customer_currency_code',
        'customer_currency_symbol',
        'effective_unit_discount_in_customer_currency',
        'effective_discount_in_customer_currency',
        'va_ton_net_amount_in_customer_currency',
        'discount_type',
        'transaction_status',
        'sales_item_id',
        'payer_group',
        'payer_group_name',
        'refund_flag',
        'original_sales_item_id',
        'delco_name',
        'delco_code',
        'payer_number',
        'payer_name',
        'card_expiry_period',
        'authorisation_code',
        'transaction_id',
        'transaction_line',
        'allow_clearing',
        'crm_number',
        'dispute_status',
        'rebate_rate',
        'del_co_to_col_co_exchange_rate',
        'net_euro_amount',
        'euro_rebate_amount',
        'euro_vat_amount',
        'parent_customer_number',
        'parent_customer_name',
        'parent_customer_id',
        'incoming_site_number',
        'incoming_site_description',
        'incoming_currency_code',
        'incoming_product_code',
        'credit_debit_code',
        'correction_flag',
        'additional_1',
        'additional_2',
        'additional_3',
        'additional_4',
        'rebateon_net_amount_in_customer_currency',
        'rebateon_net_amount_in_transaction_currency',
        'network_code',
        'trn_identifier',
        'card_type',
        'delco_list_price_unit_net',
        'delco_retail_price_unit_net',
        'delco_retail_price_unit_gross',
        'delco_retail_value_total_net',
        'delco_retail_value_total_gross',
        'customer_retail_price_unit_gross',
        'customer_retail_value_total_gross',
        'customer_retail_value_total_net',
        'transaction_type_description',
    ]

    def __init__(self,
                 mtype=APIHelper.SKIP,
                 card_id=APIHelper.SKIP,
                 card_pan=APIHelper.SKIP,
                 card_expiry=APIHelper.SKIP,
                 transaction_date=APIHelper.SKIP,
                 transaction_time=APIHelper.SKIP,
                 utc_offset=APIHelper.SKIP,
                 fleet_id_input=APIHelper.SKIP,
                 odometer_input=APIHelper.SKIP,
                 driver_name=APIHelper.SKIP,
                 vehicle_registration=APIHelper.SKIP,
                 invoice_currency_code=APIHelper.SKIP,
                 invoice_currency_symbol=APIHelper.SKIP,
                 transaction_currency_code=APIHelper.SKIP,
                 transaction_currency_symbol=APIHelper.SKIP,
                 transaction_net_amount=APIHelper.SKIP,
                 transaction_tax=APIHelper.SKIP,
                 transaction_gross_amount=APIHelper.SKIP,
                 invoice_net_amount=APIHelper.SKIP,
                 invoice_tax=APIHelper.SKIP,
                 invoice_gross_amount=APIHelper.SKIP,
                 purchased_in_country=APIHelper.SKIP,
                 account_id=APIHelper.SKIP,
                 account_number=APIHelper.SKIP,
                 account_name=APIHelper.SKIP,
                 account_short_name=APIHelper.SKIP,
                 quantity=APIHelper.SKIP,
                 fuel_product=APIHelper.SKIP,
                 unit_price_in_transaction_currency=APIHelper.SKIP,
                 unit_price_in_invoice_currency=APIHelper.SKIP,
                 unit_discount_transaction_currency=APIHelper.SKIP,
                 unit_discount_invoice_currency=APIHelper.SKIP,
                 is_invoiced=APIHelper.SKIP,
                 invoice_number=APIHelper.SKIP,
                 invoice_date=APIHelper.SKIP,
                 site_code=APIHelper.SKIP,
                 site_name=APIHelper.SKIP,
                 site_country=APIHelper.SKIP,
                 location=APIHelper.SKIP,
                 card_group_name=APIHelper.SKIP,
                 receipt_number=APIHelper.SKIP,
                 product_code=APIHelper.SKIP,
                 product_name=APIHelper.SKIP,
                 product_group_id=APIHelper.SKIP,
                 product_group_name=APIHelper.SKIP,
                 del_co_exchange_rate=APIHelper.SKIP,
                 col_co_exchange_rate=APIHelper.SKIP,
                 is_shell_site=APIHelper.SKIP,
                 network=APIHelper.SKIP,
                 site_group_id=APIHelper.SKIP,
                 site_group_name=APIHelper.SKIP,
                 posting_date=APIHelper.SKIP,
                 issuer_code=APIHelper.SKIP,
                 purchased_in_country_code=APIHelper.SKIP,
                 customer_country_code=APIHelper.SKIP,
                 customer_country=APIHelper.SKIP,
                 release_code=APIHelper.SKIP,
                 card_group_id=APIHelper.SKIP,
                 card_sequence_number=APIHelper.SKIP,
                 check_digit=APIHelper.SKIP,
                 fleet_id_description=APIHelper.SKIP,
                 vat_rate=APIHelper.SKIP,
                 vat_category=APIHelper.SKIP,
                 vat_country=APIHelper.SKIP,
                 effective_discount_in_trx_currency=APIHelper.SKIP,
                 transaction_type=APIHelper.SKIP,
                 pin_indicator=APIHelper.SKIP,
                 vat_applicable=APIHelper.SKIP,
                 net_invoice_indicator=APIHelper.SKIP,
                 customer_currency_code=APIHelper.SKIP,
                 customer_currency_symbol=APIHelper.SKIP,
                 effective_unit_discount_in_customer_currency=APIHelper.SKIP,
                 effective_discount_in_customer_currency=APIHelper.SKIP,
                 va_ton_net_amount_in_customer_currency=APIHelper.SKIP,
                 discount_type=APIHelper.SKIP,
                 transaction_status=APIHelper.SKIP,
                 sales_item_id=APIHelper.SKIP,
                 payer_group=APIHelper.SKIP,
                 payer_group_name=APIHelper.SKIP,
                 refund_flag=APIHelper.SKIP,
                 original_sales_item_id=APIHelper.SKIP,
                 delco_name=APIHelper.SKIP,
                 delco_code=APIHelper.SKIP,
                 payer_number=APIHelper.SKIP,
                 payer_name=APIHelper.SKIP,
                 card_expiry_period=APIHelper.SKIP,
                 authorisation_code=APIHelper.SKIP,
                 transaction_id=APIHelper.SKIP,
                 transaction_line=APIHelper.SKIP,
                 allow_clearing=APIHelper.SKIP,
                 crm_number=APIHelper.SKIP,
                 dispute_status=APIHelper.SKIP,
                 rebate_rate=APIHelper.SKIP,
                 del_co_to_col_co_exchange_rate=APIHelper.SKIP,
                 net_euro_amount=APIHelper.SKIP,
                 euro_rebate_amount=APIHelper.SKIP,
                 euro_vat_amount=APIHelper.SKIP,
                 parent_customer_number=APIHelper.SKIP,
                 parent_customer_name=APIHelper.SKIP,
                 parent_customer_id=APIHelper.SKIP,
                 incoming_site_number=APIHelper.SKIP,
                 incoming_site_description=APIHelper.SKIP,
                 incoming_currency_code=APIHelper.SKIP,
                 incoming_product_code=APIHelper.SKIP,
                 credit_debit_code=APIHelper.SKIP,
                 correction_flag=APIHelper.SKIP,
                 additional_1=APIHelper.SKIP,
                 additional_2=APIHelper.SKIP,
                 additional_3=APIHelper.SKIP,
                 additional_4=APIHelper.SKIP,
                 rebateon_net_amount_in_customer_currency=APIHelper.SKIP,
                 rebateon_net_amount_in_transaction_currency=APIHelper.SKIP,
                 network_code=APIHelper.SKIP,
                 trn_identifier=APIHelper.SKIP,
                 card_type=APIHelper.SKIP,
                 delco_list_price_unit_net=APIHelper.SKIP,
                 delco_retail_price_unit_net=APIHelper.SKIP,
                 delco_retail_price_unit_gross=APIHelper.SKIP,
                 delco_retail_value_total_net=APIHelper.SKIP,
                 delco_retail_value_total_gross=APIHelper.SKIP,
                 customer_retail_price_unit_gross=APIHelper.SKIP,
                 customer_retail_value_total_gross=APIHelper.SKIP,
                 customer_retail_value_total_net=APIHelper.SKIP,
                 transaction_type_description=APIHelper.SKIP,
                 error=APIHelper.SKIP,
                 request_id=APIHelper.SKIP):
        """Constructor for the PricedTransactionResponseTransactionsItems class"""

        # Initialize members of the class
        if mtype is not APIHelper.SKIP:
            self.mtype = mtype 
        if card_id is not APIHelper.SKIP:
            self.card_id = card_id 
        if card_pan is not APIHelper.SKIP:
            self.card_pan = card_pan 
        if card_expiry is not APIHelper.SKIP:
            self.card_expiry = card_expiry 
        if transaction_date is not APIHelper.SKIP:
            self.transaction_date = transaction_date 
        if transaction_time is not APIHelper.SKIP:
            self.transaction_time = transaction_time 
        if utc_offset is not APIHelper.SKIP:
            self.utc_offset = utc_offset 
        if fleet_id_input is not APIHelper.SKIP:
            self.fleet_id_input = fleet_id_input 
        if odometer_input is not APIHelper.SKIP:
            self.odometer_input = odometer_input 
        if driver_name is not APIHelper.SKIP:
            self.driver_name = driver_name 
        if vehicle_registration is not APIHelper.SKIP:
            self.vehicle_registration = vehicle_registration 
        if invoice_currency_code is not APIHelper.SKIP:
            self.invoice_currency_code = invoice_currency_code 
        if invoice_currency_symbol is not APIHelper.SKIP:
            self.invoice_currency_symbol = invoice_currency_symbol 
        if transaction_currency_code is not APIHelper.SKIP:
            self.transaction_currency_code = transaction_currency_code 
        if transaction_currency_symbol is not APIHelper.SKIP:
            self.transaction_currency_symbol = transaction_currency_symbol 
        if transaction_net_amount is not APIHelper.SKIP:
            self.transaction_net_amount = transaction_net_amount 
        if transaction_tax is not APIHelper.SKIP:
            self.transaction_tax = transaction_tax 
        if transaction_gross_amount is not APIHelper.SKIP:
            self.transaction_gross_amount = transaction_gross_amount 
        if invoice_net_amount is not APIHelper.SKIP:
            self.invoice_net_amount = invoice_net_amount 
        if invoice_tax is not APIHelper.SKIP:
            self.invoice_tax = invoice_tax 
        if invoice_gross_amount is not APIHelper.SKIP:
            self.invoice_gross_amount = invoice_gross_amount 
        if purchased_in_country is not APIHelper.SKIP:
            self.purchased_in_country = purchased_in_country 
        if account_id is not APIHelper.SKIP:
            self.account_id = account_id 
        if account_number is not APIHelper.SKIP:
            self.account_number = account_number 
        if account_name is not APIHelper.SKIP:
            self.account_name = account_name 
        if account_short_name is not APIHelper.SKIP:
            self.account_short_name = account_short_name 
        if quantity is not APIHelper.SKIP:
            self.quantity = quantity 
        if fuel_product is not APIHelper.SKIP:
            self.fuel_product = fuel_product 
        if unit_price_in_transaction_currency is not APIHelper.SKIP:
            self.unit_price_in_transaction_currency = unit_price_in_transaction_currency 
        if unit_price_in_invoice_currency is not APIHelper.SKIP:
            self.unit_price_in_invoice_currency = unit_price_in_invoice_currency 
        if unit_discount_transaction_currency is not APIHelper.SKIP:
            self.unit_discount_transaction_currency = unit_discount_transaction_currency 
        if unit_discount_invoice_currency is not APIHelper.SKIP:
            self.unit_discount_invoice_currency = unit_discount_invoice_currency 
        if is_invoiced is not APIHelper.SKIP:
            self.is_invoiced = is_invoiced 
        if invoice_number is not APIHelper.SKIP:
            self.invoice_number = invoice_number 
        if invoice_date is not APIHelper.SKIP:
            self.invoice_date = invoice_date 
        if site_code is not APIHelper.SKIP:
            self.site_code = site_code 
        if site_name is not APIHelper.SKIP:
            self.site_name = site_name 
        if site_country is not APIHelper.SKIP:
            self.site_country = site_country 
        if location is not APIHelper.SKIP:
            self.location = location 
        if card_group_name is not APIHelper.SKIP:
            self.card_group_name = card_group_name 
        if receipt_number is not APIHelper.SKIP:
            self.receipt_number = receipt_number 
        if product_code is not APIHelper.SKIP:
            self.product_code = product_code 
        if product_name is not APIHelper.SKIP:
            self.product_name = product_name 
        if product_group_id is not APIHelper.SKIP:
            self.product_group_id = product_group_id 
        if product_group_name is not APIHelper.SKIP:
            self.product_group_name = product_group_name 
        if del_co_exchange_rate is not APIHelper.SKIP:
            self.del_co_exchange_rate = del_co_exchange_rate 
        if col_co_exchange_rate is not APIHelper.SKIP:
            self.col_co_exchange_rate = col_co_exchange_rate 
        if is_shell_site is not APIHelper.SKIP:
            self.is_shell_site = is_shell_site 
        if network is not APIHelper.SKIP:
            self.network = network 
        if site_group_id is not APIHelper.SKIP:
            self.site_group_id = site_group_id 
        if site_group_name is not APIHelper.SKIP:
            self.site_group_name = site_group_name 
        if posting_date is not APIHelper.SKIP:
            self.posting_date = posting_date 
        if issuer_code is not APIHelper.SKIP:
            self.issuer_code = issuer_code 
        if purchased_in_country_code is not APIHelper.SKIP:
            self.purchased_in_country_code = purchased_in_country_code 
        if customer_country_code is not APIHelper.SKIP:
            self.customer_country_code = customer_country_code 
        if customer_country is not APIHelper.SKIP:
            self.customer_country = customer_country 
        if release_code is not APIHelper.SKIP:
            self.release_code = release_code 
        if card_group_id is not APIHelper.SKIP:
            self.card_group_id = card_group_id 
        if card_sequence_number is not APIHelper.SKIP:
            self.card_sequence_number = card_sequence_number 
        if check_digit is not APIHelper.SKIP:
            self.check_digit = check_digit 
        if fleet_id_description is not APIHelper.SKIP:
            self.fleet_id_description = fleet_id_description 
        if vat_rate is not APIHelper.SKIP:
            self.vat_rate = vat_rate 
        if vat_category is not APIHelper.SKIP:
            self.vat_category = vat_category 
        if vat_country is not APIHelper.SKIP:
            self.vat_country = vat_country 
        if effective_discount_in_trx_currency is not APIHelper.SKIP:
            self.effective_discount_in_trx_currency = effective_discount_in_trx_currency 
        if transaction_type is not APIHelper.SKIP:
            self.transaction_type = transaction_type 
        if pin_indicator is not APIHelper.SKIP:
            self.pin_indicator = pin_indicator 
        if vat_applicable is not APIHelper.SKIP:
            self.vat_applicable = vat_applicable 
        if net_invoice_indicator is not APIHelper.SKIP:
            self.net_invoice_indicator = net_invoice_indicator 
        if customer_currency_code is not APIHelper.SKIP:
            self.customer_currency_code = customer_currency_code 
        if customer_currency_symbol is not APIHelper.SKIP:
            self.customer_currency_symbol = customer_currency_symbol 
        if effective_unit_discount_in_customer_currency is not APIHelper.SKIP:
            self.effective_unit_discount_in_customer_currency = effective_unit_discount_in_customer_currency 
        if effective_discount_in_customer_currency is not APIHelper.SKIP:
            self.effective_discount_in_customer_currency = effective_discount_in_customer_currency 
        if va_ton_net_amount_in_customer_currency is not APIHelper.SKIP:
            self.va_ton_net_amount_in_customer_currency = va_ton_net_amount_in_customer_currency 
        if discount_type is not APIHelper.SKIP:
            self.discount_type = discount_type 
        if transaction_status is not APIHelper.SKIP:
            self.transaction_status = transaction_status 
        if sales_item_id is not APIHelper.SKIP:
            self.sales_item_id = sales_item_id 
        if payer_group is not APIHelper.SKIP:
            self.payer_group = payer_group 
        if payer_group_name is not APIHelper.SKIP:
            self.payer_group_name = payer_group_name 
        if refund_flag is not APIHelper.SKIP:
            self.refund_flag = refund_flag 
        if original_sales_item_id is not APIHelper.SKIP:
            self.original_sales_item_id = original_sales_item_id 
        if delco_name is not APIHelper.SKIP:
            self.delco_name = delco_name 
        if delco_code is not APIHelper.SKIP:
            self.delco_code = delco_code 
        if payer_number is not APIHelper.SKIP:
            self.payer_number = payer_number 
        if payer_name is not APIHelper.SKIP:
            self.payer_name = payer_name 
        if card_expiry_period is not APIHelper.SKIP:
            self.card_expiry_period = card_expiry_period 
        if authorisation_code is not APIHelper.SKIP:
            self.authorisation_code = authorisation_code 
        if transaction_id is not APIHelper.SKIP:
            self.transaction_id = transaction_id 
        if transaction_line is not APIHelper.SKIP:
            self.transaction_line = transaction_line 
        if allow_clearing is not APIHelper.SKIP:
            self.allow_clearing = allow_clearing 
        if crm_number is not APIHelper.SKIP:
            self.crm_number = crm_number 
        if dispute_status is not APIHelper.SKIP:
            self.dispute_status = dispute_status 
        if rebate_rate is not APIHelper.SKIP:
            self.rebate_rate = rebate_rate 
        if del_co_to_col_co_exchange_rate is not APIHelper.SKIP:
            self.del_co_to_col_co_exchange_rate = del_co_to_col_co_exchange_rate 
        if net_euro_amount is not APIHelper.SKIP:
            self.net_euro_amount = net_euro_amount 
        if euro_rebate_amount is not APIHelper.SKIP:
            self.euro_rebate_amount = euro_rebate_amount 
        if euro_vat_amount is not APIHelper.SKIP:
            self.euro_vat_amount = euro_vat_amount 
        if parent_customer_number is not APIHelper.SKIP:
            self.parent_customer_number = parent_customer_number 
        if parent_customer_name is not APIHelper.SKIP:
            self.parent_customer_name = parent_customer_name 
        if parent_customer_id is not APIHelper.SKIP:
            self.parent_customer_id = parent_customer_id 
        if incoming_site_number is not APIHelper.SKIP:
            self.incoming_site_number = incoming_site_number 
        if incoming_site_description is not APIHelper.SKIP:
            self.incoming_site_description = incoming_site_description 
        if incoming_currency_code is not APIHelper.SKIP:
            self.incoming_currency_code = incoming_currency_code 
        if incoming_product_code is not APIHelper.SKIP:
            self.incoming_product_code = incoming_product_code 
        if credit_debit_code is not APIHelper.SKIP:
            self.credit_debit_code = credit_debit_code 
        if correction_flag is not APIHelper.SKIP:
            self.correction_flag = correction_flag 
        if additional_1 is not APIHelper.SKIP:
            self.additional_1 = additional_1 
        if additional_2 is not APIHelper.SKIP:
            self.additional_2 = additional_2 
        if additional_3 is not APIHelper.SKIP:
            self.additional_3 = additional_3 
        if additional_4 is not APIHelper.SKIP:
            self.additional_4 = additional_4 
        if rebateon_net_amount_in_customer_currency is not APIHelper.SKIP:
            self.rebateon_net_amount_in_customer_currency = rebateon_net_amount_in_customer_currency 
        if rebateon_net_amount_in_transaction_currency is not APIHelper.SKIP:
            self.rebateon_net_amount_in_transaction_currency = rebateon_net_amount_in_transaction_currency 
        if network_code is not APIHelper.SKIP:
            self.network_code = network_code 
        if trn_identifier is not APIHelper.SKIP:
            self.trn_identifier = trn_identifier 
        if card_type is not APIHelper.SKIP:
            self.card_type = card_type 
        if delco_list_price_unit_net is not APIHelper.SKIP:
            self.delco_list_price_unit_net = delco_list_price_unit_net 
        if delco_retail_price_unit_net is not APIHelper.SKIP:
            self.delco_retail_price_unit_net = delco_retail_price_unit_net 
        if delco_retail_price_unit_gross is not APIHelper.SKIP:
            self.delco_retail_price_unit_gross = delco_retail_price_unit_gross 
        if delco_retail_value_total_net is not APIHelper.SKIP:
            self.delco_retail_value_total_net = delco_retail_value_total_net 
        if delco_retail_value_total_gross is not APIHelper.SKIP:
            self.delco_retail_value_total_gross = delco_retail_value_total_gross 
        if customer_retail_price_unit_gross is not APIHelper.SKIP:
            self.customer_retail_price_unit_gross = customer_retail_price_unit_gross 
        if customer_retail_value_total_gross is not APIHelper.SKIP:
            self.customer_retail_value_total_gross = customer_retail_value_total_gross 
        if customer_retail_value_total_net is not APIHelper.SKIP:
            self.customer_retail_value_total_net = customer_retail_value_total_net 
        if transaction_type_description is not APIHelper.SKIP:
            self.transaction_type_description = transaction_type_description 
        if error is not APIHelper.SKIP:
            self.error = error 
        if request_id is not APIHelper.SKIP:
            self.request_id = request_id 

    @classmethod
    def from_dictionary(cls,
                        dictionary):
        """Creates an instance of this model from a dictionary

        Args:
            dictionary (dictionary): A dictionary representation of the object
            as obtained from the deserialization of the server's response. The
            keys MUST match property names in the API description.

        Returns:
            object: An instance of this structure class.

        """
        from shelldatareportingapis.utilities.union_type_lookup import UnionTypeLookUp

        if not isinstance(dictionary, dict) or dictionary is None:
            return None

        # Extract variables from the dictionary
        mtype = dictionary.get("Type") if "Type" in dictionary.keys() else APIHelper.SKIP
        card_id = dictionary.get("CardId") if "CardId" in dictionary.keys() else APIHelper.SKIP
        card_pan = dictionary.get("CardPAN") if "CardPAN" in dictionary.keys() else APIHelper.SKIP
        card_expiry = dictionary.get("CardExpiry") if "CardExpiry" in dictionary.keys() else APIHelper.SKIP
        transaction_date = dictionary.get("TransactionDate") if "TransactionDate" in dictionary.keys() else APIHelper.SKIP
        transaction_time = dictionary.get("TransactionTime") if "TransactionTime" in dictionary.keys() else APIHelper.SKIP
        utc_offset = dictionary.get("UTCOffset") if "UTCOffset" in dictionary.keys() else APIHelper.SKIP
        fleet_id_input = dictionary.get("FleetIdInput") if "FleetIdInput" in dictionary.keys() else APIHelper.SKIP
        odometer_input = dictionary.get("OdometerInput") if "OdometerInput" in dictionary.keys() else APIHelper.SKIP
        driver_name = dictionary.get("DriverName") if "DriverName" in dictionary.keys() else APIHelper.SKIP
        vehicle_registration = dictionary.get("VehicleRegistration") if "VehicleRegistration" in dictionary.keys() else APIHelper.SKIP
        invoice_currency_code = dictionary.get("InvoiceCurrencyCode") if "InvoiceCurrencyCode" in dictionary.keys() else APIHelper.SKIP
        invoice_currency_symbol = dictionary.get("InvoiceCurrencySymbol") if "InvoiceCurrencySymbol" in dictionary.keys() else APIHelper.SKIP
        transaction_currency_code = dictionary.get("TransactionCurrencyCode") if "TransactionCurrencyCode" in dictionary.keys() else APIHelper.SKIP
        transaction_currency_symbol = dictionary.get("TransactionCurrencySymbol") if "TransactionCurrencySymbol" in dictionary.keys() else APIHelper.SKIP
        transaction_net_amount = dictionary.get("TransactionNetAmount") if "TransactionNetAmount" in dictionary.keys() else APIHelper.SKIP
        transaction_tax = dictionary.get("TransactionTax") if "TransactionTax" in dictionary.keys() else APIHelper.SKIP
        transaction_gross_amount = dictionary.get("TransactionGrossAmount") if "TransactionGrossAmount" in dictionary.keys() else APIHelper.SKIP
        invoice_net_amount = dictionary.get("InvoiceNetAmount") if "InvoiceNetAmount" in dictionary.keys() else APIHelper.SKIP
        invoice_tax = dictionary.get("InvoiceTax") if "InvoiceTax" in dictionary.keys() else APIHelper.SKIP
        invoice_gross_amount = dictionary.get("InvoiceGrossAmount") if "InvoiceGrossAmount" in dictionary.keys() else APIHelper.SKIP
        purchased_in_country = dictionary.get("PurchasedInCountry") if "PurchasedInCountry" in dictionary.keys() else APIHelper.SKIP
        account_id = dictionary.get("AccountId") if "AccountId" in dictionary.keys() else APIHelper.SKIP
        account_number = dictionary.get("AccountNumber") if "AccountNumber" in dictionary.keys() else APIHelper.SKIP
        account_name = dictionary.get("AccountName") if "AccountName" in dictionary.keys() else APIHelper.SKIP
        account_short_name = dictionary.get("AccountShortName") if "AccountShortName" in dictionary.keys() else APIHelper.SKIP
        quantity = dictionary.get("Quantity") if "Quantity" in dictionary.keys() else APIHelper.SKIP
        fuel_product = dictionary.get("FuelProduct") if "FuelProduct" in dictionary.keys() else APIHelper.SKIP
        unit_price_in_transaction_currency = dictionary.get("UnitPriceInTransactionCurrency") if "UnitPriceInTransactionCurrency" in dictionary.keys() else APIHelper.SKIP
        unit_price_in_invoice_currency = dictionary.get("UnitPriceInInvoiceCurrency") if "UnitPriceInInvoiceCurrency" in dictionary.keys() else APIHelper.SKIP
        unit_discount_transaction_currency = dictionary.get("UnitDiscountTransactionCurrency") if "UnitDiscountTransactionCurrency" in dictionary.keys() else APIHelper.SKIP
        unit_discount_invoice_currency = dictionary.get("UnitDiscountInvoiceCurrency") if "UnitDiscountInvoiceCurrency" in dictionary.keys() else APIHelper.SKIP
        is_invoiced = dictionary.get("IsInvoiced") if "IsInvoiced" in dictionary.keys() else APIHelper.SKIP
        invoice_number = dictionary.get("InvoiceNumber") if "InvoiceNumber" in dictionary.keys() else APIHelper.SKIP
        invoice_date = dictionary.get("InvoiceDate") if "InvoiceDate" in dictionary.keys() else APIHelper.SKIP
        site_code = dictionary.get("SiteCode") if "SiteCode" in dictionary.keys() else APIHelper.SKIP
        site_name = dictionary.get("SiteName") if "SiteName" in dictionary.keys() else APIHelper.SKIP
        site_country = dictionary.get("SiteCountry") if "SiteCountry" in dictionary.keys() else APIHelper.SKIP
        location = APIHelper.deserialize_union_type(UnionTypeLookUp.get('PricedTransactionResponseTransactionsItemsLocation'), dictionary.get('Location'), False) if dictionary.get('Location') is not None else APIHelper.SKIP
        card_group_name = dictionary.get("CardGroupName") if "CardGroupName" in dictionary.keys() else APIHelper.SKIP
        receipt_number = dictionary.get("ReceiptNumber") if "ReceiptNumber" in dictionary.keys() else APIHelper.SKIP
        product_code = dictionary.get("ProductCode") if "ProductCode" in dictionary.keys() else APIHelper.SKIP
        product_name = dictionary.get("ProductName") if "ProductName" in dictionary.keys() else APIHelper.SKIP
        product_group_id = dictionary.get("ProductGroupId") if "ProductGroupId" in dictionary.keys() else APIHelper.SKIP
        product_group_name = dictionary.get("ProductGroupName") if "ProductGroupName" in dictionary.keys() else APIHelper.SKIP
        del_co_exchange_rate = dictionary.get("DelCoExchangeRate") if "DelCoExchangeRate" in dictionary.keys() else APIHelper.SKIP
        col_co_exchange_rate = dictionary.get("ColCoExchangeRate") if "ColCoExchangeRate" in dictionary.keys() else APIHelper.SKIP
        is_shell_site = dictionary.get("IsShellSite") if "IsShellSite" in dictionary.keys() else APIHelper.SKIP
        network = dictionary.get("Network") if "Network" in dictionary.keys() else APIHelper.SKIP
        site_group_id = dictionary.get("SiteGroupId") if "SiteGroupId" in dictionary.keys() else APIHelper.SKIP
        site_group_name = dictionary.get("SiteGroupName") if "SiteGroupName" in dictionary.keys() else APIHelper.SKIP
        posting_date = dictionary.get("PostingDate") if "PostingDate" in dictionary.keys() else APIHelper.SKIP
        issuer_code = dictionary.get("IssuerCode") if "IssuerCode" in dictionary.keys() else APIHelper.SKIP
        purchased_in_country_code = dictionary.get("PurchasedInCountryCode") if "PurchasedInCountryCode" in dictionary.keys() else APIHelper.SKIP
        customer_country_code = dictionary.get("CustomerCountryCode") if "CustomerCountryCode" in dictionary.keys() else APIHelper.SKIP
        customer_country = dictionary.get("CustomerCountry") if "CustomerCountry" in dictionary.keys() else APIHelper.SKIP
        release_code = dictionary.get("ReleaseCode") if "ReleaseCode" in dictionary.keys() else APIHelper.SKIP
        card_group_id = dictionary.get("CardGroupId") if "CardGroupId" in dictionary.keys() else APIHelper.SKIP
        card_sequence_number = dictionary.get("CardSequenceNumber") if "CardSequenceNumber" in dictionary.keys() else APIHelper.SKIP
        check_digit = dictionary.get("CheckDigit") if "CheckDigit" in dictionary.keys() else APIHelper.SKIP
        fleet_id_description = dictionary.get("FleetIDDescription") if "FleetIDDescription" in dictionary.keys() else APIHelper.SKIP
        vat_rate = dictionary.get("VATRate") if "VATRate" in dictionary.keys() else APIHelper.SKIP
        vat_category = dictionary.get("VATCategory") if "VATCategory" in dictionary.keys() else APIHelper.SKIP
        vat_country = dictionary.get("VATCountry") if "VATCountry" in dictionary.keys() else APIHelper.SKIP
        effective_discount_in_trx_currency = dictionary.get("EffectiveDiscountInTrxCurrency") if "EffectiveDiscountInTrxCurrency" in dictionary.keys() else APIHelper.SKIP
        transaction_type = dictionary.get("TransactionType") if "TransactionType" in dictionary.keys() else APIHelper.SKIP
        pin_indicator = dictionary.get("PINIndicator") if "PINIndicator" in dictionary.keys() else APIHelper.SKIP
        vat_applicable = dictionary.get("VATApplicable") if "VATApplicable" in dictionary.keys() else APIHelper.SKIP
        net_invoice_indicator = dictionary.get("NetInvoiceIndicator") if "NetInvoiceIndicator" in dictionary.keys() else APIHelper.SKIP
        customer_currency_code = dictionary.get("CustomerCurrencyCode") if "CustomerCurrencyCode" in dictionary.keys() else APIHelper.SKIP
        customer_currency_symbol = dictionary.get("CustomerCurrencySymbol") if "CustomerCurrencySymbol" in dictionary.keys() else APIHelper.SKIP
        effective_unit_discount_in_customer_currency = dictionary.get("EffectiveUnitDiscountInCustomerCurrency") if "EffectiveUnitDiscountInCustomerCurrency" in dictionary.keys() else APIHelper.SKIP
        effective_discount_in_customer_currency = dictionary.get("EffectiveDiscountInCustomerCurrency") if "EffectiveDiscountInCustomerCurrency" in dictionary.keys() else APIHelper.SKIP
        va_ton_net_amount_in_customer_currency = dictionary.get("VATonNetAmountInCustomerCurrency") if "VATonNetAmountInCustomerCurrency" in dictionary.keys() else APIHelper.SKIP
        discount_type = dictionary.get("DiscountType") if "DiscountType" in dictionary.keys() else APIHelper.SKIP
        transaction_status = dictionary.get("TransactionStatus") if "TransactionStatus" in dictionary.keys() else APIHelper.SKIP
        sales_item_id = dictionary.get("SalesItemId") if "SalesItemId" in dictionary.keys() else APIHelper.SKIP
        payer_group = dictionary.get("PayerGroup") if "PayerGroup" in dictionary.keys() else APIHelper.SKIP
        payer_group_name = dictionary.get("PayerGroupName") if "PayerGroupName" in dictionary.keys() else APIHelper.SKIP
        refund_flag = dictionary.get("RefundFlag") if "RefundFlag" in dictionary.keys() else APIHelper.SKIP
        original_sales_item_id = dictionary.get("OriginalSalesItemId") if "OriginalSalesItemId" in dictionary.keys() else APIHelper.SKIP
        delco_name = dictionary.get("DelcoName") if "DelcoName" in dictionary.keys() else APIHelper.SKIP
        delco_code = dictionary.get("DelcoCode") if "DelcoCode" in dictionary.keys() else APIHelper.SKIP
        payer_number = dictionary.get("PayerNumber") if "PayerNumber" in dictionary.keys() else APIHelper.SKIP
        payer_name = dictionary.get("PayerName") if "PayerName" in dictionary.keys() else APIHelper.SKIP
        card_expiry_period = dictionary.get("CardExpiryPeriod") if "CardExpiryPeriod" in dictionary.keys() else APIHelper.SKIP
        authorisation_code = dictionary.get("AuthorisationCode") if "AuthorisationCode" in dictionary.keys() else APIHelper.SKIP
        transaction_id = dictionary.get("TransactionId") if "TransactionId" in dictionary.keys() else APIHelper.SKIP
        transaction_line = dictionary.get("TransactionLine") if "TransactionLine" in dictionary.keys() else APIHelper.SKIP
        allow_clearing = dictionary.get("AllowClearing") if "AllowClearing" in dictionary.keys() else APIHelper.SKIP
        crm_number = dictionary.get("CRMNumber") if "CRMNumber" in dictionary.keys() else APIHelper.SKIP
        dispute_status = dictionary.get("DisputeStatus") if "DisputeStatus" in dictionary.keys() else APIHelper.SKIP
        rebate_rate = dictionary.get("RebateRate") if "RebateRate" in dictionary.keys() else APIHelper.SKIP
        del_co_to_col_co_exchange_rate = dictionary.get("DelCoToColCoExchangeRate") if "DelCoToColCoExchangeRate" in dictionary.keys() else APIHelper.SKIP
        net_euro_amount = dictionary.get("NetEuroAmount") if "NetEuroAmount" in dictionary.keys() else APIHelper.SKIP
        euro_rebate_amount = dictionary.get("EuroRebateAmount") if "EuroRebateAmount" in dictionary.keys() else APIHelper.SKIP
        euro_vat_amount = dictionary.get("EuroVATAmount") if "EuroVATAmount" in dictionary.keys() else APIHelper.SKIP
        parent_customer_number = dictionary.get("ParentCustomerNumber") if "ParentCustomerNumber" in dictionary.keys() else APIHelper.SKIP
        parent_customer_name = dictionary.get("ParentCustomerName") if "ParentCustomerName" in dictionary.keys() else APIHelper.SKIP
        parent_customer_id = dictionary.get("ParentCustomerId") if "ParentCustomerId" in dictionary.keys() else APIHelper.SKIP
        incoming_site_number = dictionary.get("IncomingSiteNumber") if "IncomingSiteNumber" in dictionary.keys() else APIHelper.SKIP
        incoming_site_description = dictionary.get("IncomingSiteDescription") if "IncomingSiteDescription" in dictionary.keys() else APIHelper.SKIP
        incoming_currency_code = dictionary.get("IncomingCurrencyCode") if "IncomingCurrencyCode" in dictionary.keys() else APIHelper.SKIP
        incoming_product_code = dictionary.get("IncomingProductCode") if "IncomingProductCode" in dictionary.keys() else APIHelper.SKIP
        credit_debit_code = dictionary.get("CreditDebitCode") if "CreditDebitCode" in dictionary.keys() else APIHelper.SKIP
        correction_flag = dictionary.get("CorrectionFlag") if "CorrectionFlag" in dictionary.keys() else APIHelper.SKIP
        additional_1 = dictionary.get("Additional1") if "Additional1" in dictionary.keys() else APIHelper.SKIP
        additional_2 = dictionary.get("Additional2") if "Additional2" in dictionary.keys() else APIHelper.SKIP
        additional_3 = dictionary.get("Additional3") if "Additional3" in dictionary.keys() else APIHelper.SKIP
        additional_4 = dictionary.get("Additional4") if "Additional4" in dictionary.keys() else APIHelper.SKIP
        rebateon_net_amount_in_customer_currency = dictionary.get("RebateonNetAmountInCustomerCurrency") if "RebateonNetAmountInCustomerCurrency" in dictionary.keys() else APIHelper.SKIP
        rebateon_net_amount_in_transaction_currency = dictionary.get("RebateonNetAmountInTransactionCurrency") if "RebateonNetAmountInTransactionCurrency" in dictionary.keys() else APIHelper.SKIP
        network_code = dictionary.get("NetworkCode") if "NetworkCode" in dictionary.keys() else APIHelper.SKIP
        trn_identifier = dictionary.get("TrnIdentifier") if "TrnIdentifier" in dictionary.keys() else APIHelper.SKIP
        card_type = dictionary.get("CardType") if "CardType" in dictionary.keys() else APIHelper.SKIP
        delco_list_price_unit_net = dictionary.get("DelcoListPriceUnitNet") if "DelcoListPriceUnitNet" in dictionary.keys() else APIHelper.SKIP
        delco_retail_price_unit_net = dictionary.get("DelcoRetailPriceUnitNet") if "DelcoRetailPriceUnitNet" in dictionary.keys() else APIHelper.SKIP
        delco_retail_price_unit_gross = dictionary.get("DelcoRetailPriceUnitGross") if "DelcoRetailPriceUnitGross" in dictionary.keys() else APIHelper.SKIP
        delco_retail_value_total_net = dictionary.get("DelcoRetailValueTotalNet") if "DelcoRetailValueTotalNet" in dictionary.keys() else APIHelper.SKIP
        delco_retail_value_total_gross = dictionary.get("DelcoRetailValueTotalGross") if "DelcoRetailValueTotalGross" in dictionary.keys() else APIHelper.SKIP
        customer_retail_price_unit_gross = dictionary.get("CustomerRetailPriceUnitGross") if "CustomerRetailPriceUnitGross" in dictionary.keys() else APIHelper.SKIP
        customer_retail_value_total_gross = dictionary.get("CustomerRetailValueTotalGross") if "CustomerRetailValueTotalGross" in dictionary.keys() else APIHelper.SKIP
        customer_retail_value_total_net = dictionary.get("CustomerRetailValueTotalNet") if "CustomerRetailValueTotalNet" in dictionary.keys() else APIHelper.SKIP
        transaction_type_description = dictionary.get("TransactionTypeDescription") if "TransactionTypeDescription" in dictionary.keys() else APIHelper.SKIP
        error = ErrorStatus.from_dictionary(dictionary.get('Error')) if 'Error' in dictionary.keys() else APIHelper.SKIP
        request_id = dictionary.get("RequestId") if dictionary.get("RequestId") else APIHelper.SKIP
        # Return an object of this model
        return cls(mtype,
                   card_id,
                   card_pan,
                   card_expiry,
                   transaction_date,
                   transaction_time,
                   utc_offset,
                   fleet_id_input,
                   odometer_input,
                   driver_name,
                   vehicle_registration,
                   invoice_currency_code,
                   invoice_currency_symbol,
                   transaction_currency_code,
                   transaction_currency_symbol,
                   transaction_net_amount,
                   transaction_tax,
                   transaction_gross_amount,
                   invoice_net_amount,
                   invoice_tax,
                   invoice_gross_amount,
                   purchased_in_country,
                   account_id,
                   account_number,
                   account_name,
                   account_short_name,
                   quantity,
                   fuel_product,
                   unit_price_in_transaction_currency,
                   unit_price_in_invoice_currency,
                   unit_discount_transaction_currency,
                   unit_discount_invoice_currency,
                   is_invoiced,
                   invoice_number,
                   invoice_date,
                   site_code,
                   site_name,
                   site_country,
                   location,
                   card_group_name,
                   receipt_number,
                   product_code,
                   product_name,
                   product_group_id,
                   product_group_name,
                   del_co_exchange_rate,
                   col_co_exchange_rate,
                   is_shell_site,
                   network,
                   site_group_id,
                   site_group_name,
                   posting_date,
                   issuer_code,
                   purchased_in_country_code,
                   customer_country_code,
                   customer_country,
                   release_code,
                   card_group_id,
                   card_sequence_number,
                   check_digit,
                   fleet_id_description,
                   vat_rate,
                   vat_category,
                   vat_country,
                   effective_discount_in_trx_currency,
                   transaction_type,
                   pin_indicator,
                   vat_applicable,
                   net_invoice_indicator,
                   customer_currency_code,
                   customer_currency_symbol,
                   effective_unit_discount_in_customer_currency,
                   effective_discount_in_customer_currency,
                   va_ton_net_amount_in_customer_currency,
                   discount_type,
                   transaction_status,
                   sales_item_id,
                   payer_group,
                   payer_group_name,
                   refund_flag,
                   original_sales_item_id,
                   delco_name,
                   delco_code,
                   payer_number,
                   payer_name,
                   card_expiry_period,
                   authorisation_code,
                   transaction_id,
                   transaction_line,
                   allow_clearing,
                   crm_number,
                   dispute_status,
                   rebate_rate,
                   del_co_to_col_co_exchange_rate,
                   net_euro_amount,
                   euro_rebate_amount,
                   euro_vat_amount,
                   parent_customer_number,
                   parent_customer_name,
                   parent_customer_id,
                   incoming_site_number,
                   incoming_site_description,
                   incoming_currency_code,
                   incoming_product_code,
                   credit_debit_code,
                   correction_flag,
                   additional_1,
                   additional_2,
                   additional_3,
                   additional_4,
                   rebateon_net_amount_in_customer_currency,
                   rebateon_net_amount_in_transaction_currency,
                   network_code,
                   trn_identifier,
                   card_type,
                   delco_list_price_unit_net,
                   delco_retail_price_unit_net,
                   delco_retail_price_unit_gross,
                   delco_retail_value_total_net,
                   delco_retail_value_total_gross,
                   customer_retail_price_unit_gross,
                   customer_retail_value_total_gross,
                   customer_retail_value_total_net,
                   transaction_type_description,
                   error,
                   request_id)
