<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for CashSale StructType
 * Meta information extracted from the WSDL
 * - type: tranSales:CashSale
 * @subpackage Structs
 */
class CashSale extends Record
{
    /**
     * The createdDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $createdDate;
    /**
     * The lastModifiedDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $lastModifiedDate;
    /**
     * The nexus
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $nexus;
    /**
     * The subsidiaryTaxRegNum
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $subsidiaryTaxRegNum;
    /**
     * The taxRegOverride
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $taxRegOverride;
    /**
     * The taxDetailsOverride
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $taxDetailsOverride;
    /**
     * The customForm
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $customForm;
    /**
     * The entity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $entity;
    /**
     * The billingAccount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $billingAccount;
    /**
     * The recurringBill
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $recurringBill;
    /**
     * The tranDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $tranDate;
    /**
     * The tranId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $tranId;
    /**
     * The entityTaxRegNum
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $entityTaxRegNum;
    /**
     * The taxPointDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $taxPointDate;
    /**
     * The source
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $source;
    /**
     * The postingPeriod
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $postingPeriod;
    /**
     * The createdFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $createdFrom;
    /**
     * The opportunity
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $opportunity;
    /**
     * The department
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $department;
    /**
     * The class
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $class;
    /**
     * The location
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $location;
    /**
     * The subsidiary
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $subsidiary;
    /**
     * The salesRep
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $salesRep;
    /**
     * The contribPct
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $contribPct;
    /**
     * The partner
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $partner;
    /**
     * The leadSource
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $leadSource;
    /**
     * The startDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $startDate;
    /**
     * The endDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $endDate;
    /**
     * The otherRefNum
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $otherRefNum;
    /**
     * The memo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $memo;
    /**
     * The salesEffectiveDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $salesEffectiveDate;
    /**
     * The excludeCommission
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $excludeCommission;
    /**
     * The revRecSchedule
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $revRecSchedule;
    /**
     * The undepFunds
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $undepFunds;
    /**
     * The canHaveStackable
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $canHaveStackable;
    /**
     * The currency
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $currency;
    /**
     * The account
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $account;
    /**
     * The revRecStartDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $revRecStartDate;
    /**
     * The revRecEndDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $revRecEndDate;
    /**
     * The totalCostEstimate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $totalCostEstimate;
    /**
     * The estGrossProfit
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $estGrossProfit;
    /**
     * The estGrossProfitPercent
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $estGrossProfitPercent;
    /**
     * The exchangeRate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $exchangeRate;
    /**
     * The currencyName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $currencyName;
    /**
     * The promoCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $promoCode;
    /**
     * The discountItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $discountItem;
    /**
     * The discountRate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $discountRate;
    /**
     * The isTaxable
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isTaxable;
    /**
     * The taxItem
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $taxItem;
    /**
     * The taxRate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $taxRate;
    /**
     * The toBePrinted
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $toBePrinted;
    /**
     * The toBeEmailed
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $toBeEmailed;
    /**
     * The toBeFaxed
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $toBeFaxed;
    /**
     * The fax
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $fax;
    /**
     * The messageSel
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $messageSel;
    /**
     * The message
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $message;
    /**
     * The paymentOption
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $paymentOption;
    /**
     * The inputAuthCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $inputAuthCode;
    /**
     * The inputReferenceCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $inputReferenceCode;
    /**
     * The checkNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $checkNumber;
    /**
     * The paymentCardCsc
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $paymentCardCsc;
    /**
     * The paymentProcessingProfile
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $paymentProcessingProfile;
    /**
     * The handlingMode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $handlingMode;
    /**
     * The outputAuthCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $outputAuthCode;
    /**
     * The outputReferenceCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $outputReferenceCode;
    /**
     * The paymentOperation
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $paymentOperation;
    /**
     * The dynamicDescriptor
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $dynamicDescriptor;
    /**
     * The billingAddress
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\Address
     */
    public $billingAddress;
    /**
     * The billAddressList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $billAddressList;
    /**
     * The shippingAddress
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\Address
     */
    public $shippingAddress;
    /**
     * The shipIsResidential
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $shipIsResidential;
    /**
     * The shipAddressList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $shipAddressList;
    /**
     * The fob
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $fob;
    /**
     * The shipDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $shipDate;
    /**
     * The shipMethod
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $shipMethod;
    /**
     * The shippingCost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $shippingCost;
    /**
     * The shippingTax1Rate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $shippingTax1Rate;
    /**
     * The shippingTax2Rate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $shippingTax2Rate;
    /**
     * The shippingTaxCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $shippingTaxCode;
    /**
     * The handlingTaxCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $handlingTaxCode;
    /**
     * The handlingTax1Rate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $handlingTax1Rate;
    /**
     * The handlingCost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $handlingCost;
    /**
     * The handlingTax2Rate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $handlingTax2Rate;
    /**
     * The linkedTrackingNumbers
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $linkedTrackingNumbers;
    /**
     * The trackingNumbers
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $trackingNumbers;
    /**
     * The salesGroup
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $salesGroup;
    /**
     * The revenueStatus
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $revenueStatus;
    /**
     * The recognizedRevenue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $recognizedRevenue;
    /**
     * The deferredRevenue
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $deferredRevenue;
    /**
     * The revRecOnRevCommitment
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $revRecOnRevCommitment;
    /**
     * The syncSalesTeams
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $syncSalesTeams;
    /**
     * The paymentMethod
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $paymentMethod;
    /**
     * The payPalStatus
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $payPalStatus;
    /**
     * The creditCard
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $creditCard;
    /**
     * The ccNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ccNumber;
    /**
     * The ccExpireDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ccExpireDate;
    /**
     * The ccName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ccName;
    /**
     * The ccStreet
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ccStreet;
    /**
     * The ccZipCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ccZipCode;
    /**
     * The creditCardProcessor
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $creditCardProcessor;
    /**
     * The ccApproved
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ccApproved;
    /**
     * The authCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $authCode;
    /**
     * The ccAvsStreetMatch
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ccAvsStreetMatch;
    /**
     * The ccAvsZipMatch
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ccAvsZipMatch;
    /**
     * The isRecurringPayment
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isRecurringPayment;
    /**
     * The payPalTranId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $payPalTranId;
    /**
     * The subTotal
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $subTotal;
    /**
     * The ccIsPurchaseCardBin
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ccIsPurchaseCardBin;
    /**
     * The ignoreAvs
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ignoreAvs;
    /**
     * The ccProcessAsPurchaseCard
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $ccProcessAsPurchaseCard;
    /**
     * The itemCostDiscount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $itemCostDiscount;
    /**
     * The itemCostDiscRate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $itemCostDiscRate;
    /**
     * The itemCostDiscAmount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $itemCostDiscAmount;
    /**
     * The itemCostTaxRate1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $itemCostTaxRate1;
    /**
     * The itemCostTaxRate2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $itemCostTaxRate2;
    /**
     * The itemCostDiscTaxable
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $itemCostDiscTaxable;
    /**
     * The itemCostTaxCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $itemCostTaxCode;
    /**
     * The itemCostDiscTax1Amt
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $itemCostDiscTax1Amt;
    /**
     * The itemCostDiscPrint
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $itemCostDiscPrint;
    /**
     * The expCostDiscount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $expCostDiscount;
    /**
     * The expCostDiscRate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $expCostDiscRate;
    /**
     * The expCostDiscAmount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $expCostDiscAmount;
    /**
     * The expCostDiscTaxable
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $expCostDiscTaxable;
    /**
     * The expCostDiscprint
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $expCostDiscprint;
    /**
     * The expCostTaxRate1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $expCostTaxRate1;
    /**
     * The timeDiscount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $timeDiscount;
    /**
     * The expCostTaxCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $expCostTaxCode;
    /**
     * The timeDiscRate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $timeDiscRate;
    /**
     * The expCostTaxRate2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $expCostTaxRate2;
    /**
     * The expCostDiscTax1Amt
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $expCostDiscTax1Amt;
    /**
     * The timeDiscAmount
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $timeDiscAmount;
    /**
     * The timeDiscTaxable
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $timeDiscTaxable;
    /**
     * The timeDiscPrint
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $timeDiscPrint;
    /**
     * The discountTotal
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $discountTotal;
    /**
     * The taxTotal
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $taxTotal;
    /**
     * The timeTaxRate1
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $timeTaxRate1;
    /**
     * The altShippingCost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $altShippingCost;
    /**
     * The timeTaxCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $timeTaxCode;
    /**
     * The altHandlingCost
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $altHandlingCost;
    /**
     * The total
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $total;
    /**
     * The timeDiscTax1Amt
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $timeDiscTax1Amt;
    /**
     * The ccSecurityCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ccSecurityCode;
    /**
     * The timeTaxRate2
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $timeTaxRate2;
    /**
     * The ccSecurityCodeMatch
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $ccSecurityCodeMatch;
    /**
     * The chargeIt
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $chargeIt;
    /**
     * The debitCardIssueNo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $debitCardIssueNo;
    /**
     * The threeDStatusCode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $threeDStatusCode;
    /**
     * The pnRefNum
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $pnRefNum;
    /**
     * The paypalAuthId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $paypalAuthId;
    /**
     * The status
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $status;
    /**
     * The paypalProcess
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $paypalProcess;
    /**
     * The job
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $job;
    /**
     * The billingSchedule
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\RecordRef
     */
    public $billingSchedule;
    /**
     * The email
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $email;
    /**
     * The tax2Total
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $tax2Total;
    /**
     * The validFrom
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $validFrom;
    /**
     * The vatRegNum
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $vatRegNum;
    /**
     * The giftCertApplied
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $giftCertApplied;
    /**
     * The tranIsVsoeBundle
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $tranIsVsoeBundle;
    /**
     * The vsoeAutoCalc
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $vsoeAutoCalc;
    /**
     * The syncPartnerTeams
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $syncPartnerTeams;
    /**
     * The salesTeamList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CashSaleSalesTeamList
     */
    public $salesTeamList;
    /**
     * The partnersList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CashSalePartnersList
     */
    public $partnersList;
    /**
     * The itemList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CashSaleItemList
     */
    public $itemList;
    /**
     * The accountingBookDetailList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\AccountingBookDetailList
     */
    public $accountingBookDetailList;
    /**
     * The itemCostList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CashSaleItemCostList
     */
    public $itemCostList;
    /**
     * The giftCertRedemptionList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\GiftCertRedemptionList
     */
    public $giftCertRedemptionList;
    /**
     * The promotionsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\PromotionsList
     */
    public $promotionsList;
    /**
     * The expCostList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CashSaleExpCostList
     */
    public $expCostList;
    /**
     * The timeList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CashSaleTimeList
     */
    public $timeList;
    /**
     * The shipGroupList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CashSaleShipGroupList
     */
    public $shipGroupList;
    /**
     * The taxDetailsList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\TaxDetailsList
     */
    public $taxDetailsList;
    /**
     * The customFieldList
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var \StructType\CustomFieldList
     */
    public $customFieldList;
    /**
     * The internalId
     * @var string
     */
    public $internalId;
    /**
     * The externalId
     * @var string
     */
    public $externalId;
    /**
     * Constructor method for CashSale
     * @uses CashSale::setCreatedDate()
     * @uses CashSale::setLastModifiedDate()
     * @uses CashSale::setNexus()
     * @uses CashSale::setSubsidiaryTaxRegNum()
     * @uses CashSale::setTaxRegOverride()
     * @uses CashSale::setTaxDetailsOverride()
     * @uses CashSale::setCustomForm()
     * @uses CashSale::setEntity()
     * @uses CashSale::setBillingAccount()
     * @uses CashSale::setRecurringBill()
     * @uses CashSale::setTranDate()
     * @uses CashSale::setTranId()
     * @uses CashSale::setEntityTaxRegNum()
     * @uses CashSale::setTaxPointDate()
     * @uses CashSale::setSource()
     * @uses CashSale::setPostingPeriod()
     * @uses CashSale::setCreatedFrom()
     * @uses CashSale::setOpportunity()
     * @uses CashSale::setDepartment()
     * @uses CashSale::setClass()
     * @uses CashSale::setLocation()
     * @uses CashSale::setSubsidiary()
     * @uses CashSale::setSalesRep()
     * @uses CashSale::setContribPct()
     * @uses CashSale::setPartner()
     * @uses CashSale::setLeadSource()
     * @uses CashSale::setStartDate()
     * @uses CashSale::setEndDate()
     * @uses CashSale::setOtherRefNum()
     * @uses CashSale::setMemo()
     * @uses CashSale::setSalesEffectiveDate()
     * @uses CashSale::setExcludeCommission()
     * @uses CashSale::setRevRecSchedule()
     * @uses CashSale::setUndepFunds()
     * @uses CashSale::setCanHaveStackable()
     * @uses CashSale::setCurrency()
     * @uses CashSale::setAccount()
     * @uses CashSale::setRevRecStartDate()
     * @uses CashSale::setRevRecEndDate()
     * @uses CashSale::setTotalCostEstimate()
     * @uses CashSale::setEstGrossProfit()
     * @uses CashSale::setEstGrossProfitPercent()
     * @uses CashSale::setExchangeRate()
     * @uses CashSale::setCurrencyName()
     * @uses CashSale::setPromoCode()
     * @uses CashSale::setDiscountItem()
     * @uses CashSale::setDiscountRate()
     * @uses CashSale::setIsTaxable()
     * @uses CashSale::setTaxItem()
     * @uses CashSale::setTaxRate()
     * @uses CashSale::setToBePrinted()
     * @uses CashSale::setToBeEmailed()
     * @uses CashSale::setToBeFaxed()
     * @uses CashSale::setFax()
     * @uses CashSale::setMessageSel()
     * @uses CashSale::setMessage()
     * @uses CashSale::setPaymentOption()
     * @uses CashSale::setInputAuthCode()
     * @uses CashSale::setInputReferenceCode()
     * @uses CashSale::setCheckNumber()
     * @uses CashSale::setPaymentCardCsc()
     * @uses CashSale::setPaymentProcessingProfile()
     * @uses CashSale::setHandlingMode()
     * @uses CashSale::setOutputAuthCode()
     * @uses CashSale::setOutputReferenceCode()
     * @uses CashSale::setPaymentOperation()
     * @uses CashSale::setDynamicDescriptor()
     * @uses CashSale::setBillingAddress()
     * @uses CashSale::setBillAddressList()
     * @uses CashSale::setShippingAddress()
     * @uses CashSale::setShipIsResidential()
     * @uses CashSale::setShipAddressList()
     * @uses CashSale::setFob()
     * @uses CashSale::setShipDate()
     * @uses CashSale::setShipMethod()
     * @uses CashSale::setShippingCost()
     * @uses CashSale::setShippingTax1Rate()
     * @uses CashSale::setShippingTax2Rate()
     * @uses CashSale::setShippingTaxCode()
     * @uses CashSale::setHandlingTaxCode()
     * @uses CashSale::setHandlingTax1Rate()
     * @uses CashSale::setHandlingCost()
     * @uses CashSale::setHandlingTax2Rate()
     * @uses CashSale::setLinkedTrackingNumbers()
     * @uses CashSale::setTrackingNumbers()
     * @uses CashSale::setSalesGroup()
     * @uses CashSale::setRevenueStatus()
     * @uses CashSale::setRecognizedRevenue()
     * @uses CashSale::setDeferredRevenue()
     * @uses CashSale::setRevRecOnRevCommitment()
     * @uses CashSale::setSyncSalesTeams()
     * @uses CashSale::setPaymentMethod()
     * @uses CashSale::setPayPalStatus()
     * @uses CashSale::setCreditCard()
     * @uses CashSale::setCcNumber()
     * @uses CashSale::setCcExpireDate()
     * @uses CashSale::setCcName()
     * @uses CashSale::setCcStreet()
     * @uses CashSale::setCcZipCode()
     * @uses CashSale::setCreditCardProcessor()
     * @uses CashSale::setCcApproved()
     * @uses CashSale::setAuthCode()
     * @uses CashSale::setCcAvsStreetMatch()
     * @uses CashSale::setCcAvsZipMatch()
     * @uses CashSale::setIsRecurringPayment()
     * @uses CashSale::setPayPalTranId()
     * @uses CashSale::setSubTotal()
     * @uses CashSale::setCcIsPurchaseCardBin()
     * @uses CashSale::setIgnoreAvs()
     * @uses CashSale::setCcProcessAsPurchaseCard()
     * @uses CashSale::setItemCostDiscount()
     * @uses CashSale::setItemCostDiscRate()
     * @uses CashSale::setItemCostDiscAmount()
     * @uses CashSale::setItemCostTaxRate1()
     * @uses CashSale::setItemCostTaxRate2()
     * @uses CashSale::setItemCostDiscTaxable()
     * @uses CashSale::setItemCostTaxCode()
     * @uses CashSale::setItemCostDiscTax1Amt()
     * @uses CashSale::setItemCostDiscPrint()
     * @uses CashSale::setExpCostDiscount()
     * @uses CashSale::setExpCostDiscRate()
     * @uses CashSale::setExpCostDiscAmount()
     * @uses CashSale::setExpCostDiscTaxable()
     * @uses CashSale::setExpCostDiscprint()
     * @uses CashSale::setExpCostTaxRate1()
     * @uses CashSale::setTimeDiscount()
     * @uses CashSale::setExpCostTaxCode()
     * @uses CashSale::setTimeDiscRate()
     * @uses CashSale::setExpCostTaxRate2()
     * @uses CashSale::setExpCostDiscTax1Amt()
     * @uses CashSale::setTimeDiscAmount()
     * @uses CashSale::setTimeDiscTaxable()
     * @uses CashSale::setTimeDiscPrint()
     * @uses CashSale::setDiscountTotal()
     * @uses CashSale::setTaxTotal()
     * @uses CashSale::setTimeTaxRate1()
     * @uses CashSale::setAltShippingCost()
     * @uses CashSale::setTimeTaxCode()
     * @uses CashSale::setAltHandlingCost()
     * @uses CashSale::setTotal()
     * @uses CashSale::setTimeDiscTax1Amt()
     * @uses CashSale::setCcSecurityCode()
     * @uses CashSale::setTimeTaxRate2()
     * @uses CashSale::setCcSecurityCodeMatch()
     * @uses CashSale::setChargeIt()
     * @uses CashSale::setDebitCardIssueNo()
     * @uses CashSale::setThreeDStatusCode()
     * @uses CashSale::setPnRefNum()
     * @uses CashSale::setPaypalAuthId()
     * @uses CashSale::setStatus()
     * @uses CashSale::setPaypalProcess()
     * @uses CashSale::setJob()
     * @uses CashSale::setBillingSchedule()
     * @uses CashSale::setEmail()
     * @uses CashSale::setTax2Total()
     * @uses CashSale::setValidFrom()
     * @uses CashSale::setVatRegNum()
     * @uses CashSale::setGiftCertApplied()
     * @uses CashSale::setTranIsVsoeBundle()
     * @uses CashSale::setVsoeAutoCalc()
     * @uses CashSale::setSyncPartnerTeams()
     * @uses CashSale::setSalesTeamList()
     * @uses CashSale::setPartnersList()
     * @uses CashSale::setItemList()
     * @uses CashSale::setAccountingBookDetailList()
     * @uses CashSale::setItemCostList()
     * @uses CashSale::setGiftCertRedemptionList()
     * @uses CashSale::setPromotionsList()
     * @uses CashSale::setExpCostList()
     * @uses CashSale::setTimeList()
     * @uses CashSale::setShipGroupList()
     * @uses CashSale::setTaxDetailsList()
     * @uses CashSale::setCustomFieldList()
     * @uses CashSale::setInternalId()
     * @uses CashSale::setExternalId()
     * @param string $createdDate
     * @param string $lastModifiedDate
     * @param \StructType\RecordRef $nexus
     * @param \StructType\RecordRef $subsidiaryTaxRegNum
     * @param bool $taxRegOverride
     * @param bool $taxDetailsOverride
     * @param \StructType\RecordRef $customForm
     * @param \StructType\RecordRef $entity
     * @param \StructType\RecordRef $billingAccount
     * @param bool $recurringBill
     * @param string $tranDate
     * @param string $tranId
     * @param \StructType\RecordRef $entityTaxRegNum
     * @param string $taxPointDate
     * @param string $source
     * @param \StructType\RecordRef $postingPeriod
     * @param \StructType\RecordRef $createdFrom
     * @param \StructType\RecordRef $opportunity
     * @param \StructType\RecordRef $department
     * @param \StructType\RecordRef $class
     * @param \StructType\RecordRef $location
     * @param \StructType\RecordRef $subsidiary
     * @param \StructType\RecordRef $salesRep
     * @param string $contribPct
     * @param \StructType\RecordRef $partner
     * @param \StructType\RecordRef $leadSource
     * @param string $startDate
     * @param string $endDate
     * @param string $otherRefNum
     * @param string $memo
     * @param string $salesEffectiveDate
     * @param bool $excludeCommission
     * @param \StructType\RecordRef $revRecSchedule
     * @param bool $undepFunds
     * @param bool $canHaveStackable
     * @param \StructType\RecordRef $currency
     * @param \StructType\RecordRef $account
     * @param string $revRecStartDate
     * @param string $revRecEndDate
     * @param float $totalCostEstimate
     * @param float $estGrossProfit
     * @param float $estGrossProfitPercent
     * @param float $exchangeRate
     * @param string $currencyName
     * @param \StructType\RecordRef $promoCode
     * @param \StructType\RecordRef $discountItem
     * @param string $discountRate
     * @param bool $isTaxable
     * @param \StructType\RecordRef $taxItem
     * @param float $taxRate
     * @param bool $toBePrinted
     * @param bool $toBeEmailed
     * @param bool $toBeFaxed
     * @param string $fax
     * @param \StructType\RecordRef $messageSel
     * @param string $message
     * @param \StructType\RecordRef $paymentOption
     * @param string $inputAuthCode
     * @param string $inputReferenceCode
     * @param string $checkNumber
     * @param string $paymentCardCsc
     * @param \StructType\RecordRef $paymentProcessingProfile
     * @param string $handlingMode
     * @param string $outputAuthCode
     * @param string $outputReferenceCode
     * @param string $paymentOperation
     * @param string $dynamicDescriptor
     * @param \StructType\Address $billingAddress
     * @param \StructType\RecordRef $billAddressList
     * @param \StructType\Address $shippingAddress
     * @param bool $shipIsResidential
     * @param \StructType\RecordRef $shipAddressList
     * @param string $fob
     * @param string $shipDate
     * @param \StructType\RecordRef $shipMethod
     * @param float $shippingCost
     * @param float $shippingTax1Rate
     * @param string $shippingTax2Rate
     * @param \StructType\RecordRef $shippingTaxCode
     * @param \StructType\RecordRef $handlingTaxCode
     * @param float $handlingTax1Rate
     * @param float $handlingCost
     * @param string $handlingTax2Rate
     * @param string $linkedTrackingNumbers
     * @param string $trackingNumbers
     * @param \StructType\RecordRef $salesGroup
     * @param string $revenueStatus
     * @param float $recognizedRevenue
     * @param float $deferredRevenue
     * @param bool $revRecOnRevCommitment
     * @param bool $syncSalesTeams
     * @param \StructType\RecordRef $paymentMethod
     * @param string $payPalStatus
     * @param \StructType\RecordRef $creditCard
     * @param string $ccNumber
     * @param string $ccExpireDate
     * @param string $ccName
     * @param string $ccStreet
     * @param string $ccZipCode
     * @param \StructType\RecordRef $creditCardProcessor
     * @param bool $ccApproved
     * @param string $authCode
     * @param string $ccAvsStreetMatch
     * @param string $ccAvsZipMatch
     * @param bool $isRecurringPayment
     * @param string $payPalTranId
     * @param float $subTotal
     * @param bool $ccIsPurchaseCardBin
     * @param bool $ignoreAvs
     * @param bool $ccProcessAsPurchaseCard
     * @param \StructType\RecordRef $itemCostDiscount
     * @param string $itemCostDiscRate
     * @param float $itemCostDiscAmount
     * @param float $itemCostTaxRate1
     * @param float $itemCostTaxRate2
     * @param bool $itemCostDiscTaxable
     * @param \StructType\RecordRef $itemCostTaxCode
     * @param float $itemCostDiscTax1Amt
     * @param bool $itemCostDiscPrint
     * @param \StructType\RecordRef $expCostDiscount
     * @param string $expCostDiscRate
     * @param float $expCostDiscAmount
     * @param bool $expCostDiscTaxable
     * @param bool $expCostDiscprint
     * @param float $expCostTaxRate1
     * @param \StructType\RecordRef $timeDiscount
     * @param \StructType\RecordRef $expCostTaxCode
     * @param string $timeDiscRate
     * @param float $expCostTaxRate2
     * @param float $expCostDiscTax1Amt
     * @param float $timeDiscAmount
     * @param bool $timeDiscTaxable
     * @param bool $timeDiscPrint
     * @param float $discountTotal
     * @param float $taxTotal
     * @param float $timeTaxRate1
     * @param float $altShippingCost
     * @param \StructType\RecordRef $timeTaxCode
     * @param float $altHandlingCost
     * @param float $total
     * @param float $timeDiscTax1Amt
     * @param string $ccSecurityCode
     * @param float $timeTaxRate2
     * @param string $ccSecurityCodeMatch
     * @param bool $chargeIt
     * @param string $debitCardIssueNo
     * @param string $threeDStatusCode
     * @param string $pnRefNum
     * @param string $paypalAuthId
     * @param string $status
     * @param bool $paypalProcess
     * @param \StructType\RecordRef $job
     * @param \StructType\RecordRef $billingSchedule
     * @param string $email
     * @param float $tax2Total
     * @param string $validFrom
     * @param string $vatRegNum
     * @param float $giftCertApplied
     * @param bool $tranIsVsoeBundle
     * @param bool $vsoeAutoCalc
     * @param bool $syncPartnerTeams
     * @param \StructType\CashSaleSalesTeamList $salesTeamList
     * @param \StructType\CashSalePartnersList $partnersList
     * @param \StructType\CashSaleItemList $itemList
     * @param \StructType\AccountingBookDetailList $accountingBookDetailList
     * @param \StructType\CashSaleItemCostList $itemCostList
     * @param \StructType\GiftCertRedemptionList $giftCertRedemptionList
     * @param \StructType\PromotionsList $promotionsList
     * @param \StructType\CashSaleExpCostList $expCostList
     * @param \StructType\CashSaleTimeList $timeList
     * @param \StructType\CashSaleShipGroupList $shipGroupList
     * @param \StructType\TaxDetailsList $taxDetailsList
     * @param \StructType\CustomFieldList $customFieldList
     * @param string $internalId
     * @param string $externalId
     */
    public function __construct($createdDate = null, $lastModifiedDate = null, \StructType\RecordRef $nexus = null, \StructType\RecordRef $subsidiaryTaxRegNum = null, $taxRegOverride = null, $taxDetailsOverride = null, \StructType\RecordRef $customForm = null, \StructType\RecordRef $entity = null, \StructType\RecordRef $billingAccount = null, $recurringBill = null, $tranDate = null, $tranId = null, \StructType\RecordRef $entityTaxRegNum = null, $taxPointDate = null, $source = null, \StructType\RecordRef $postingPeriod = null, \StructType\RecordRef $createdFrom = null, \StructType\RecordRef $opportunity = null, \StructType\RecordRef $department = null, \StructType\RecordRef $class = null, \StructType\RecordRef $location = null, \StructType\RecordRef $subsidiary = null, \StructType\RecordRef $salesRep = null, $contribPct = null, \StructType\RecordRef $partner = null, \StructType\RecordRef $leadSource = null, $startDate = null, $endDate = null, $otherRefNum = null, $memo = null, $salesEffectiveDate = null, $excludeCommission = null, \StructType\RecordRef $revRecSchedule = null, $undepFunds = null, $canHaveStackable = null, \StructType\RecordRef $currency = null, \StructType\RecordRef $account = null, $revRecStartDate = null, $revRecEndDate = null, $totalCostEstimate = null, $estGrossProfit = null, $estGrossProfitPercent = null, $exchangeRate = null, $currencyName = null, \StructType\RecordRef $promoCode = null, \StructType\RecordRef $discountItem = null, $discountRate = null, $isTaxable = null, \StructType\RecordRef $taxItem = null, $taxRate = null, $toBePrinted = null, $toBeEmailed = null, $toBeFaxed = null, $fax = null, \StructType\RecordRef $messageSel = null, $message = null, \StructType\RecordRef $paymentOption = null, $inputAuthCode = null, $inputReferenceCode = null, $checkNumber = null, $paymentCardCsc = null, \StructType\RecordRef $paymentProcessingProfile = null, $handlingMode = null, $outputAuthCode = null, $outputReferenceCode = null, $paymentOperation = null, $dynamicDescriptor = null, \StructType\Address $billingAddress = null, \StructType\RecordRef $billAddressList = null, \StructType\Address $shippingAddress = null, $shipIsResidential = null, \StructType\RecordRef $shipAddressList = null, $fob = null, $shipDate = null, \StructType\RecordRef $shipMethod = null, $shippingCost = null, $shippingTax1Rate = null, $shippingTax2Rate = null, \StructType\RecordRef $shippingTaxCode = null, \StructType\RecordRef $handlingTaxCode = null, $handlingTax1Rate = null, $handlingCost = null, $handlingTax2Rate = null, $linkedTrackingNumbers = null, $trackingNumbers = null, \StructType\RecordRef $salesGroup = null, $revenueStatus = null, $recognizedRevenue = null, $deferredRevenue = null, $revRecOnRevCommitment = null, $syncSalesTeams = null, \StructType\RecordRef $paymentMethod = null, $payPalStatus = null, \StructType\RecordRef $creditCard = null, $ccNumber = null, $ccExpireDate = null, $ccName = null, $ccStreet = null, $ccZipCode = null, \StructType\RecordRef $creditCardProcessor = null, $ccApproved = null, $authCode = null, $ccAvsStreetMatch = null, $ccAvsZipMatch = null, $isRecurringPayment = null, $payPalTranId = null, $subTotal = null, $ccIsPurchaseCardBin = null, $ignoreAvs = null, $ccProcessAsPurchaseCard = null, \StructType\RecordRef $itemCostDiscount = null, $itemCostDiscRate = null, $itemCostDiscAmount = null, $itemCostTaxRate1 = null, $itemCostTaxRate2 = null, $itemCostDiscTaxable = null, \StructType\RecordRef $itemCostTaxCode = null, $itemCostDiscTax1Amt = null, $itemCostDiscPrint = null, \StructType\RecordRef $expCostDiscount = null, $expCostDiscRate = null, $expCostDiscAmount = null, $expCostDiscTaxable = null, $expCostDiscprint = null, $expCostTaxRate1 = null, \StructType\RecordRef $timeDiscount = null, \StructType\RecordRef $expCostTaxCode = null, $timeDiscRate = null, $expCostTaxRate2 = null, $expCostDiscTax1Amt = null, $timeDiscAmount = null, $timeDiscTaxable = null, $timeDiscPrint = null, $discountTotal = null, $taxTotal = null, $timeTaxRate1 = null, $altShippingCost = null, \StructType\RecordRef $timeTaxCode = null, $altHandlingCost = null, $total = null, $timeDiscTax1Amt = null, $ccSecurityCode = null, $timeTaxRate2 = null, $ccSecurityCodeMatch = null, $chargeIt = null, $debitCardIssueNo = null, $threeDStatusCode = null, $pnRefNum = null, $paypalAuthId = null, $status = null, $paypalProcess = null, \StructType\RecordRef $job = null, \StructType\RecordRef $billingSchedule = null, $email = null, $tax2Total = null, $validFrom = null, $vatRegNum = null, $giftCertApplied = null, $tranIsVsoeBundle = null, $vsoeAutoCalc = null, $syncPartnerTeams = null, \StructType\CashSaleSalesTeamList $salesTeamList = null, \StructType\CashSalePartnersList $partnersList = null, \StructType\CashSaleItemList $itemList = null, \StructType\AccountingBookDetailList $accountingBookDetailList = null, \StructType\CashSaleItemCostList $itemCostList = null, \StructType\GiftCertRedemptionList $giftCertRedemptionList = null, \StructType\PromotionsList $promotionsList = null, \StructType\CashSaleExpCostList $expCostList = null, \StructType\CashSaleTimeList $timeList = null, \StructType\CashSaleShipGroupList $shipGroupList = null, \StructType\TaxDetailsList $taxDetailsList = null, \StructType\CustomFieldList $customFieldList = null, $internalId = null, $externalId = null)
    {
        $this
            ->setCreatedDate($createdDate)
            ->setLastModifiedDate($lastModifiedDate)
            ->setNexus($nexus)
            ->setSubsidiaryTaxRegNum($subsidiaryTaxRegNum)
            ->setTaxRegOverride($taxRegOverride)
            ->setTaxDetailsOverride($taxDetailsOverride)
            ->setCustomForm($customForm)
            ->setEntity($entity)
            ->setBillingAccount($billingAccount)
            ->setRecurringBill($recurringBill)
            ->setTranDate($tranDate)
            ->setTranId($tranId)
            ->setEntityTaxRegNum($entityTaxRegNum)
            ->setTaxPointDate($taxPointDate)
            ->setSource($source)
            ->setPostingPeriod($postingPeriod)
            ->setCreatedFrom($createdFrom)
            ->setOpportunity($opportunity)
            ->setDepartment($department)
            ->setClass($class)
            ->setLocation($location)
            ->setSubsidiary($subsidiary)
            ->setSalesRep($salesRep)
            ->setContribPct($contribPct)
            ->setPartner($partner)
            ->setLeadSource($leadSource)
            ->setStartDate($startDate)
            ->setEndDate($endDate)
            ->setOtherRefNum($otherRefNum)
            ->setMemo($memo)
            ->setSalesEffectiveDate($salesEffectiveDate)
            ->setExcludeCommission($excludeCommission)
            ->setRevRecSchedule($revRecSchedule)
            ->setUndepFunds($undepFunds)
            ->setCanHaveStackable($canHaveStackable)
            ->setCurrency($currency)
            ->setAccount($account)
            ->setRevRecStartDate($revRecStartDate)
            ->setRevRecEndDate($revRecEndDate)
            ->setTotalCostEstimate($totalCostEstimate)
            ->setEstGrossProfit($estGrossProfit)
            ->setEstGrossProfitPercent($estGrossProfitPercent)
            ->setExchangeRate($exchangeRate)
            ->setCurrencyName($currencyName)
            ->setPromoCode($promoCode)
            ->setDiscountItem($discountItem)
            ->setDiscountRate($discountRate)
            ->setIsTaxable($isTaxable)
            ->setTaxItem($taxItem)
            ->setTaxRate($taxRate)
            ->setToBePrinted($toBePrinted)
            ->setToBeEmailed($toBeEmailed)
            ->setToBeFaxed($toBeFaxed)
            ->setFax($fax)
            ->setMessageSel($messageSel)
            ->setMessage($message)
            ->setPaymentOption($paymentOption)
            ->setInputAuthCode($inputAuthCode)
            ->setInputReferenceCode($inputReferenceCode)
            ->setCheckNumber($checkNumber)
            ->setPaymentCardCsc($paymentCardCsc)
            ->setPaymentProcessingProfile($paymentProcessingProfile)
            ->setHandlingMode($handlingMode)
            ->setOutputAuthCode($outputAuthCode)
            ->setOutputReferenceCode($outputReferenceCode)
            ->setPaymentOperation($paymentOperation)
            ->setDynamicDescriptor($dynamicDescriptor)
            ->setBillingAddress($billingAddress)
            ->setBillAddressList($billAddressList)
            ->setShippingAddress($shippingAddress)
            ->setShipIsResidential($shipIsResidential)
            ->setShipAddressList($shipAddressList)
            ->setFob($fob)
            ->setShipDate($shipDate)
            ->setShipMethod($shipMethod)
            ->setShippingCost($shippingCost)
            ->setShippingTax1Rate($shippingTax1Rate)
            ->setShippingTax2Rate($shippingTax2Rate)
            ->setShippingTaxCode($shippingTaxCode)
            ->setHandlingTaxCode($handlingTaxCode)
            ->setHandlingTax1Rate($handlingTax1Rate)
            ->setHandlingCost($handlingCost)
            ->setHandlingTax2Rate($handlingTax2Rate)
            ->setLinkedTrackingNumbers($linkedTrackingNumbers)
            ->setTrackingNumbers($trackingNumbers)
            ->setSalesGroup($salesGroup)
            ->setRevenueStatus($revenueStatus)
            ->setRecognizedRevenue($recognizedRevenue)
            ->setDeferredRevenue($deferredRevenue)
            ->setRevRecOnRevCommitment($revRecOnRevCommitment)
            ->setSyncSalesTeams($syncSalesTeams)
            ->setPaymentMethod($paymentMethod)
            ->setPayPalStatus($payPalStatus)
            ->setCreditCard($creditCard)
            ->setCcNumber($ccNumber)
            ->setCcExpireDate($ccExpireDate)
            ->setCcName($ccName)
            ->setCcStreet($ccStreet)
            ->setCcZipCode($ccZipCode)
            ->setCreditCardProcessor($creditCardProcessor)
            ->setCcApproved($ccApproved)
            ->setAuthCode($authCode)
            ->setCcAvsStreetMatch($ccAvsStreetMatch)
            ->setCcAvsZipMatch($ccAvsZipMatch)
            ->setIsRecurringPayment($isRecurringPayment)
            ->setPayPalTranId($payPalTranId)
            ->setSubTotal($subTotal)
            ->setCcIsPurchaseCardBin($ccIsPurchaseCardBin)
            ->setIgnoreAvs($ignoreAvs)
            ->setCcProcessAsPurchaseCard($ccProcessAsPurchaseCard)
            ->setItemCostDiscount($itemCostDiscount)
            ->setItemCostDiscRate($itemCostDiscRate)
            ->setItemCostDiscAmount($itemCostDiscAmount)
            ->setItemCostTaxRate1($itemCostTaxRate1)
            ->setItemCostTaxRate2($itemCostTaxRate2)
            ->setItemCostDiscTaxable($itemCostDiscTaxable)
            ->setItemCostTaxCode($itemCostTaxCode)
            ->setItemCostDiscTax1Amt($itemCostDiscTax1Amt)
            ->setItemCostDiscPrint($itemCostDiscPrint)
            ->setExpCostDiscount($expCostDiscount)
            ->setExpCostDiscRate($expCostDiscRate)
            ->setExpCostDiscAmount($expCostDiscAmount)
            ->setExpCostDiscTaxable($expCostDiscTaxable)
            ->setExpCostDiscprint($expCostDiscprint)
            ->setExpCostTaxRate1($expCostTaxRate1)
            ->setTimeDiscount($timeDiscount)
            ->setExpCostTaxCode($expCostTaxCode)
            ->setTimeDiscRate($timeDiscRate)
            ->setExpCostTaxRate2($expCostTaxRate2)
            ->setExpCostDiscTax1Amt($expCostDiscTax1Amt)
            ->setTimeDiscAmount($timeDiscAmount)
            ->setTimeDiscTaxable($timeDiscTaxable)
            ->setTimeDiscPrint($timeDiscPrint)
            ->setDiscountTotal($discountTotal)
            ->setTaxTotal($taxTotal)
            ->setTimeTaxRate1($timeTaxRate1)
            ->setAltShippingCost($altShippingCost)
            ->setTimeTaxCode($timeTaxCode)
            ->setAltHandlingCost($altHandlingCost)
            ->setTotal($total)
            ->setTimeDiscTax1Amt($timeDiscTax1Amt)
            ->setCcSecurityCode($ccSecurityCode)
            ->setTimeTaxRate2($timeTaxRate2)
            ->setCcSecurityCodeMatch($ccSecurityCodeMatch)
            ->setChargeIt($chargeIt)
            ->setDebitCardIssueNo($debitCardIssueNo)
            ->setThreeDStatusCode($threeDStatusCode)
            ->setPnRefNum($pnRefNum)
            ->setPaypalAuthId($paypalAuthId)
            ->setStatus($status)
            ->setPaypalProcess($paypalProcess)
            ->setJob($job)
            ->setBillingSchedule($billingSchedule)
            ->setEmail($email)
            ->setTax2Total($tax2Total)
            ->setValidFrom($validFrom)
            ->setVatRegNum($vatRegNum)
            ->setGiftCertApplied($giftCertApplied)
            ->setTranIsVsoeBundle($tranIsVsoeBundle)
            ->setVsoeAutoCalc($vsoeAutoCalc)
            ->setSyncPartnerTeams($syncPartnerTeams)
            ->setSalesTeamList($salesTeamList)
            ->setPartnersList($partnersList)
            ->setItemList($itemList)
            ->setAccountingBookDetailList($accountingBookDetailList)
            ->setItemCostList($itemCostList)
            ->setGiftCertRedemptionList($giftCertRedemptionList)
            ->setPromotionsList($promotionsList)
            ->setExpCostList($expCostList)
            ->setTimeList($timeList)
            ->setShipGroupList($shipGroupList)
            ->setTaxDetailsList($taxDetailsList)
            ->setCustomFieldList($customFieldList)
            ->setInternalId($internalId)
            ->setExternalId($externalId);
    }
    /**
     * Get createdDate value
     * @return string|null
     */
    public function getCreatedDate()
    {
        return $this->createdDate;
    }
    /**
     * Set createdDate value
     * @param string $createdDate
     * @return \StructType\CashSale
     */
    public function setCreatedDate($createdDate = null)
    {
        // validation for constraint: string
        if (!is_null($createdDate) && !is_string($createdDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($createdDate, true), gettype($createdDate)), __LINE__);
        }
        $this->createdDate = $createdDate;
        return $this;
    }
    /**
     * Get lastModifiedDate value
     * @return string|null
     */
    public function getLastModifiedDate()
    {
        return $this->lastModifiedDate;
    }
    /**
     * Set lastModifiedDate value
     * @param string $lastModifiedDate
     * @return \StructType\CashSale
     */
    public function setLastModifiedDate($lastModifiedDate = null)
    {
        // validation for constraint: string
        if (!is_null($lastModifiedDate) && !is_string($lastModifiedDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($lastModifiedDate, true), gettype($lastModifiedDate)), __LINE__);
        }
        $this->lastModifiedDate = $lastModifiedDate;
        return $this;
    }
    /**
     * Get nexus value
     * @return \StructType\RecordRef|null
     */
    public function getNexus()
    {
        return $this->nexus;
    }
    /**
     * Set nexus value
     * @param \StructType\RecordRef $nexus
     * @return \StructType\CashSale
     */
    public function setNexus(\StructType\RecordRef $nexus = null)
    {
        $this->nexus = $nexus;
        return $this;
    }
    /**
     * Get subsidiaryTaxRegNum value
     * @return \StructType\RecordRef|null
     */
    public function getSubsidiaryTaxRegNum()
    {
        return $this->subsidiaryTaxRegNum;
    }
    /**
     * Set subsidiaryTaxRegNum value
     * @param \StructType\RecordRef $subsidiaryTaxRegNum
     * @return \StructType\CashSale
     */
    public function setSubsidiaryTaxRegNum(\StructType\RecordRef $subsidiaryTaxRegNum = null)
    {
        $this->subsidiaryTaxRegNum = $subsidiaryTaxRegNum;
        return $this;
    }
    /**
     * Get taxRegOverride value
     * @return bool|null
     */
    public function getTaxRegOverride()
    {
        return $this->taxRegOverride;
    }
    /**
     * Set taxRegOverride value
     * @param bool $taxRegOverride
     * @return \StructType\CashSale
     */
    public function setTaxRegOverride($taxRegOverride = null)
    {
        // validation for constraint: boolean
        if (!is_null($taxRegOverride) && !is_bool($taxRegOverride)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($taxRegOverride, true), gettype($taxRegOverride)), __LINE__);
        }
        $this->taxRegOverride = $taxRegOverride;
        return $this;
    }
    /**
     * Get taxDetailsOverride value
     * @return bool|null
     */
    public function getTaxDetailsOverride()
    {
        return $this->taxDetailsOverride;
    }
    /**
     * Set taxDetailsOverride value
     * @param bool $taxDetailsOverride
     * @return \StructType\CashSale
     */
    public function setTaxDetailsOverride($taxDetailsOverride = null)
    {
        // validation for constraint: boolean
        if (!is_null($taxDetailsOverride) && !is_bool($taxDetailsOverride)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($taxDetailsOverride, true), gettype($taxDetailsOverride)), __LINE__);
        }
        $this->taxDetailsOverride = $taxDetailsOverride;
        return $this;
    }
    /**
     * Get customForm value
     * @return \StructType\RecordRef|null
     */
    public function getCustomForm()
    {
        return $this->customForm;
    }
    /**
     * Set customForm value
     * @param \StructType\RecordRef $customForm
     * @return \StructType\CashSale
     */
    public function setCustomForm(\StructType\RecordRef $customForm = null)
    {
        $this->customForm = $customForm;
        return $this;
    }
    /**
     * Get entity value
     * @return \StructType\RecordRef|null
     */
    public function getEntity()
    {
        return $this->entity;
    }
    /**
     * Set entity value
     * @param \StructType\RecordRef $entity
     * @return \StructType\CashSale
     */
    public function setEntity(\StructType\RecordRef $entity = null)
    {
        $this->entity = $entity;
        return $this;
    }
    /**
     * Get billingAccount value
     * @return \StructType\RecordRef|null
     */
    public function getBillingAccount()
    {
        return $this->billingAccount;
    }
    /**
     * Set billingAccount value
     * @param \StructType\RecordRef $billingAccount
     * @return \StructType\CashSale
     */
    public function setBillingAccount(\StructType\RecordRef $billingAccount = null)
    {
        $this->billingAccount = $billingAccount;
        return $this;
    }
    /**
     * Get recurringBill value
     * @return bool|null
     */
    public function getRecurringBill()
    {
        return $this->recurringBill;
    }
    /**
     * Set recurringBill value
     * @param bool $recurringBill
     * @return \StructType\CashSale
     */
    public function setRecurringBill($recurringBill = null)
    {
        // validation for constraint: boolean
        if (!is_null($recurringBill) && !is_bool($recurringBill)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($recurringBill, true), gettype($recurringBill)), __LINE__);
        }
        $this->recurringBill = $recurringBill;
        return $this;
    }
    /**
     * Get tranDate value
     * @return string|null
     */
    public function getTranDate()
    {
        return $this->tranDate;
    }
    /**
     * Set tranDate value
     * @param string $tranDate
     * @return \StructType\CashSale
     */
    public function setTranDate($tranDate = null)
    {
        // validation for constraint: string
        if (!is_null($tranDate) && !is_string($tranDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($tranDate, true), gettype($tranDate)), __LINE__);
        }
        $this->tranDate = $tranDate;
        return $this;
    }
    /**
     * Get tranId value
     * @return string|null
     */
    public function getTranId()
    {
        return $this->tranId;
    }
    /**
     * Set tranId value
     * @param string $tranId
     * @return \StructType\CashSale
     */
    public function setTranId($tranId = null)
    {
        // validation for constraint: string
        if (!is_null($tranId) && !is_string($tranId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($tranId, true), gettype($tranId)), __LINE__);
        }
        $this->tranId = $tranId;
        return $this;
    }
    /**
     * Get entityTaxRegNum value
     * @return \StructType\RecordRef|null
     */
    public function getEntityTaxRegNum()
    {
        return $this->entityTaxRegNum;
    }
    /**
     * Set entityTaxRegNum value
     * @param \StructType\RecordRef $entityTaxRegNum
     * @return \StructType\CashSale
     */
    public function setEntityTaxRegNum(\StructType\RecordRef $entityTaxRegNum = null)
    {
        $this->entityTaxRegNum = $entityTaxRegNum;
        return $this;
    }
    /**
     * Get taxPointDate value
     * @return string|null
     */
    public function getTaxPointDate()
    {
        return $this->taxPointDate;
    }
    /**
     * Set taxPointDate value
     * @param string $taxPointDate
     * @return \StructType\CashSale
     */
    public function setTaxPointDate($taxPointDate = null)
    {
        // validation for constraint: string
        if (!is_null($taxPointDate) && !is_string($taxPointDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($taxPointDate, true), gettype($taxPointDate)), __LINE__);
        }
        $this->taxPointDate = $taxPointDate;
        return $this;
    }
    /**
     * Get source value
     * @return string|null
     */
    public function getSource()
    {
        return $this->source;
    }
    /**
     * Set source value
     * @param string $source
     * @return \StructType\CashSale
     */
    public function setSource($source = null)
    {
        // validation for constraint: string
        if (!is_null($source) && !is_string($source)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($source, true), gettype($source)), __LINE__);
        }
        $this->source = $source;
        return $this;
    }
    /**
     * Get postingPeriod value
     * @return \StructType\RecordRef|null
     */
    public function getPostingPeriod()
    {
        return $this->postingPeriod;
    }
    /**
     * Set postingPeriod value
     * @param \StructType\RecordRef $postingPeriod
     * @return \StructType\CashSale
     */
    public function setPostingPeriod(\StructType\RecordRef $postingPeriod = null)
    {
        $this->postingPeriod = $postingPeriod;
        return $this;
    }
    /**
     * Get createdFrom value
     * @return \StructType\RecordRef|null
     */
    public function getCreatedFrom()
    {
        return $this->createdFrom;
    }
    /**
     * Set createdFrom value
     * @param \StructType\RecordRef $createdFrom
     * @return \StructType\CashSale
     */
    public function setCreatedFrom(\StructType\RecordRef $createdFrom = null)
    {
        $this->createdFrom = $createdFrom;
        return $this;
    }
    /**
     * Get opportunity value
     * @return \StructType\RecordRef|null
     */
    public function getOpportunity()
    {
        return $this->opportunity;
    }
    /**
     * Set opportunity value
     * @param \StructType\RecordRef $opportunity
     * @return \StructType\CashSale
     */
    public function setOpportunity(\StructType\RecordRef $opportunity = null)
    {
        $this->opportunity = $opportunity;
        return $this;
    }
    /**
     * Get department value
     * @return \StructType\RecordRef|null
     */
    public function getDepartment()
    {
        return $this->department;
    }
    /**
     * Set department value
     * @param \StructType\RecordRef $department
     * @return \StructType\CashSale
     */
    public function setDepartment(\StructType\RecordRef $department = null)
    {
        $this->department = $department;
        return $this;
    }
    /**
     * Get class value
     * @return \StructType\RecordRef|null
     */
    public function getClass()
    {
        return $this->class;
    }
    /**
     * Set class value
     * @param \StructType\RecordRef $class
     * @return \StructType\CashSale
     */
    public function setClass(\StructType\RecordRef $class = null)
    {
        $this->class = $class;
        return $this;
    }
    /**
     * Get location value
     * @return \StructType\RecordRef|null
     */
    public function getLocation()
    {
        return $this->location;
    }
    /**
     * Set location value
     * @param \StructType\RecordRef $location
     * @return \StructType\CashSale
     */
    public function setLocation(\StructType\RecordRef $location = null)
    {
        $this->location = $location;
        return $this;
    }
    /**
     * Get subsidiary value
     * @return \StructType\RecordRef|null
     */
    public function getSubsidiary()
    {
        return $this->subsidiary;
    }
    /**
     * Set subsidiary value
     * @param \StructType\RecordRef $subsidiary
     * @return \StructType\CashSale
     */
    public function setSubsidiary(\StructType\RecordRef $subsidiary = null)
    {
        $this->subsidiary = $subsidiary;
        return $this;
    }
    /**
     * Get salesRep value
     * @return \StructType\RecordRef|null
     */
    public function getSalesRep()
    {
        return $this->salesRep;
    }
    /**
     * Set salesRep value
     * @param \StructType\RecordRef $salesRep
     * @return \StructType\CashSale
     */
    public function setSalesRep(\StructType\RecordRef $salesRep = null)
    {
        $this->salesRep = $salesRep;
        return $this;
    }
    /**
     * Get contribPct value
     * @return string|null
     */
    public function getContribPct()
    {
        return $this->contribPct;
    }
    /**
     * Set contribPct value
     * @param string $contribPct
     * @return \StructType\CashSale
     */
    public function setContribPct($contribPct = null)
    {
        // validation for constraint: string
        if (!is_null($contribPct) && !is_string($contribPct)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($contribPct, true), gettype($contribPct)), __LINE__);
        }
        $this->contribPct = $contribPct;
        return $this;
    }
    /**
     * Get partner value
     * @return \StructType\RecordRef|null
     */
    public function getPartner()
    {
        return $this->partner;
    }
    /**
     * Set partner value
     * @param \StructType\RecordRef $partner
     * @return \StructType\CashSale
     */
    public function setPartner(\StructType\RecordRef $partner = null)
    {
        $this->partner = $partner;
        return $this;
    }
    /**
     * Get leadSource value
     * @return \StructType\RecordRef|null
     */
    public function getLeadSource()
    {
        return $this->leadSource;
    }
    /**
     * Set leadSource value
     * @param \StructType\RecordRef $leadSource
     * @return \StructType\CashSale
     */
    public function setLeadSource(\StructType\RecordRef $leadSource = null)
    {
        $this->leadSource = $leadSource;
        return $this;
    }
    /**
     * Get startDate value
     * @return string|null
     */
    public function getStartDate()
    {
        return $this->startDate;
    }
    /**
     * Set startDate value
     * @param string $startDate
     * @return \StructType\CashSale
     */
    public function setStartDate($startDate = null)
    {
        // validation for constraint: string
        if (!is_null($startDate) && !is_string($startDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($startDate, true), gettype($startDate)), __LINE__);
        }
        $this->startDate = $startDate;
        return $this;
    }
    /**
     * Get endDate value
     * @return string|null
     */
    public function getEndDate()
    {
        return $this->endDate;
    }
    /**
     * Set endDate value
     * @param string $endDate
     * @return \StructType\CashSale
     */
    public function setEndDate($endDate = null)
    {
        // validation for constraint: string
        if (!is_null($endDate) && !is_string($endDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($endDate, true), gettype($endDate)), __LINE__);
        }
        $this->endDate = $endDate;
        return $this;
    }
    /**
     * Get otherRefNum value
     * @return string|null
     */
    public function getOtherRefNum()
    {
        return $this->otherRefNum;
    }
    /**
     * Set otherRefNum value
     * @param string $otherRefNum
     * @return \StructType\CashSale
     */
    public function setOtherRefNum($otherRefNum = null)
    {
        // validation for constraint: string
        if (!is_null($otherRefNum) && !is_string($otherRefNum)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($otherRefNum, true), gettype($otherRefNum)), __LINE__);
        }
        $this->otherRefNum = $otherRefNum;
        return $this;
    }
    /**
     * Get memo value
     * @return string|null
     */
    public function getMemo()
    {
        return $this->memo;
    }
    /**
     * Set memo value
     * @param string $memo
     * @return \StructType\CashSale
     */
    public function setMemo($memo = null)
    {
        // validation for constraint: string
        if (!is_null($memo) && !is_string($memo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($memo, true), gettype($memo)), __LINE__);
        }
        $this->memo = $memo;
        return $this;
    }
    /**
     * Get salesEffectiveDate value
     * @return string|null
     */
    public function getSalesEffectiveDate()
    {
        return $this->salesEffectiveDate;
    }
    /**
     * Set salesEffectiveDate value
     * @param string $salesEffectiveDate
     * @return \StructType\CashSale
     */
    public function setSalesEffectiveDate($salesEffectiveDate = null)
    {
        // validation for constraint: string
        if (!is_null($salesEffectiveDate) && !is_string($salesEffectiveDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($salesEffectiveDate, true), gettype($salesEffectiveDate)), __LINE__);
        }
        $this->salesEffectiveDate = $salesEffectiveDate;
        return $this;
    }
    /**
     * Get excludeCommission value
     * @return bool|null
     */
    public function getExcludeCommission()
    {
        return $this->excludeCommission;
    }
    /**
     * Set excludeCommission value
     * @param bool $excludeCommission
     * @return \StructType\CashSale
     */
    public function setExcludeCommission($excludeCommission = null)
    {
        // validation for constraint: boolean
        if (!is_null($excludeCommission) && !is_bool($excludeCommission)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($excludeCommission, true), gettype($excludeCommission)), __LINE__);
        }
        $this->excludeCommission = $excludeCommission;
        return $this;
    }
    /**
     * Get revRecSchedule value
     * @return \StructType\RecordRef|null
     */
    public function getRevRecSchedule()
    {
        return $this->revRecSchedule;
    }
    /**
     * Set revRecSchedule value
     * @param \StructType\RecordRef $revRecSchedule
     * @return \StructType\CashSale
     */
    public function setRevRecSchedule(\StructType\RecordRef $revRecSchedule = null)
    {
        $this->revRecSchedule = $revRecSchedule;
        return $this;
    }
    /**
     * Get undepFunds value
     * @return bool|null
     */
    public function getUndepFunds()
    {
        return $this->undepFunds;
    }
    /**
     * Set undepFunds value
     * @param bool $undepFunds
     * @return \StructType\CashSale
     */
    public function setUndepFunds($undepFunds = null)
    {
        // validation for constraint: boolean
        if (!is_null($undepFunds) && !is_bool($undepFunds)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($undepFunds, true), gettype($undepFunds)), __LINE__);
        }
        $this->undepFunds = $undepFunds;
        return $this;
    }
    /**
     * Get canHaveStackable value
     * @return bool|null
     */
    public function getCanHaveStackable()
    {
        return $this->canHaveStackable;
    }
    /**
     * Set canHaveStackable value
     * @param bool $canHaveStackable
     * @return \StructType\CashSale
     */
    public function setCanHaveStackable($canHaveStackable = null)
    {
        // validation for constraint: boolean
        if (!is_null($canHaveStackable) && !is_bool($canHaveStackable)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($canHaveStackable, true), gettype($canHaveStackable)), __LINE__);
        }
        $this->canHaveStackable = $canHaveStackable;
        return $this;
    }
    /**
     * Get currency value
     * @return \StructType\RecordRef|null
     */
    public function getCurrency()
    {
        return $this->currency;
    }
    /**
     * Set currency value
     * @param \StructType\RecordRef $currency
     * @return \StructType\CashSale
     */
    public function setCurrency(\StructType\RecordRef $currency = null)
    {
        $this->currency = $currency;
        return $this;
    }
    /**
     * Get account value
     * @return \StructType\RecordRef|null
     */
    public function getAccount()
    {
        return $this->account;
    }
    /**
     * Set account value
     * @param \StructType\RecordRef $account
     * @return \StructType\CashSale
     */
    public function setAccount(\StructType\RecordRef $account = null)
    {
        $this->account = $account;
        return $this;
    }
    /**
     * Get revRecStartDate value
     * @return string|null
     */
    public function getRevRecStartDate()
    {
        return $this->revRecStartDate;
    }
    /**
     * Set revRecStartDate value
     * @param string $revRecStartDate
     * @return \StructType\CashSale
     */
    public function setRevRecStartDate($revRecStartDate = null)
    {
        // validation for constraint: string
        if (!is_null($revRecStartDate) && !is_string($revRecStartDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($revRecStartDate, true), gettype($revRecStartDate)), __LINE__);
        }
        $this->revRecStartDate = $revRecStartDate;
        return $this;
    }
    /**
     * Get revRecEndDate value
     * @return string|null
     */
    public function getRevRecEndDate()
    {
        return $this->revRecEndDate;
    }
    /**
     * Set revRecEndDate value
     * @param string $revRecEndDate
     * @return \StructType\CashSale
     */
    public function setRevRecEndDate($revRecEndDate = null)
    {
        // validation for constraint: string
        if (!is_null($revRecEndDate) && !is_string($revRecEndDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($revRecEndDate, true), gettype($revRecEndDate)), __LINE__);
        }
        $this->revRecEndDate = $revRecEndDate;
        return $this;
    }
    /**
     * Get totalCostEstimate value
     * @return float|null
     */
    public function getTotalCostEstimate()
    {
        return $this->totalCostEstimate;
    }
    /**
     * Set totalCostEstimate value
     * @param float $totalCostEstimate
     * @return \StructType\CashSale
     */
    public function setTotalCostEstimate($totalCostEstimate = null)
    {
        // validation for constraint: float
        if (!is_null($totalCostEstimate) && !(is_float($totalCostEstimate) || is_numeric($totalCostEstimate))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($totalCostEstimate, true), gettype($totalCostEstimate)), __LINE__);
        }
        $this->totalCostEstimate = $totalCostEstimate;
        return $this;
    }
    /**
     * Get estGrossProfit value
     * @return float|null
     */
    public function getEstGrossProfit()
    {
        return $this->estGrossProfit;
    }
    /**
     * Set estGrossProfit value
     * @param float $estGrossProfit
     * @return \StructType\CashSale
     */
    public function setEstGrossProfit($estGrossProfit = null)
    {
        // validation for constraint: float
        if (!is_null($estGrossProfit) && !(is_float($estGrossProfit) || is_numeric($estGrossProfit))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($estGrossProfit, true), gettype($estGrossProfit)), __LINE__);
        }
        $this->estGrossProfit = $estGrossProfit;
        return $this;
    }
    /**
     * Get estGrossProfitPercent value
     * @return float|null
     */
    public function getEstGrossProfitPercent()
    {
        return $this->estGrossProfitPercent;
    }
    /**
     * Set estGrossProfitPercent value
     * @param float $estGrossProfitPercent
     * @return \StructType\CashSale
     */
    public function setEstGrossProfitPercent($estGrossProfitPercent = null)
    {
        // validation for constraint: float
        if (!is_null($estGrossProfitPercent) && !(is_float($estGrossProfitPercent) || is_numeric($estGrossProfitPercent))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($estGrossProfitPercent, true), gettype($estGrossProfitPercent)), __LINE__);
        }
        $this->estGrossProfitPercent = $estGrossProfitPercent;
        return $this;
    }
    /**
     * Get exchangeRate value
     * @return float|null
     */
    public function getExchangeRate()
    {
        return $this->exchangeRate;
    }
    /**
     * Set exchangeRate value
     * @param float $exchangeRate
     * @return \StructType\CashSale
     */
    public function setExchangeRate($exchangeRate = null)
    {
        // validation for constraint: float
        if (!is_null($exchangeRate) && !(is_float($exchangeRate) || is_numeric($exchangeRate))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($exchangeRate, true), gettype($exchangeRate)), __LINE__);
        }
        $this->exchangeRate = $exchangeRate;
        return $this;
    }
    /**
     * Get currencyName value
     * @return string|null
     */
    public function getCurrencyName()
    {
        return $this->currencyName;
    }
    /**
     * Set currencyName value
     * @param string $currencyName
     * @return \StructType\CashSale
     */
    public function setCurrencyName($currencyName = null)
    {
        // validation for constraint: string
        if (!is_null($currencyName) && !is_string($currencyName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($currencyName, true), gettype($currencyName)), __LINE__);
        }
        $this->currencyName = $currencyName;
        return $this;
    }
    /**
     * Get promoCode value
     * @return \StructType\RecordRef|null
     */
    public function getPromoCode()
    {
        return $this->promoCode;
    }
    /**
     * Set promoCode value
     * @param \StructType\RecordRef $promoCode
     * @return \StructType\CashSale
     */
    public function setPromoCode(\StructType\RecordRef $promoCode = null)
    {
        $this->promoCode = $promoCode;
        return $this;
    }
    /**
     * Get discountItem value
     * @return \StructType\RecordRef|null
     */
    public function getDiscountItem()
    {
        return $this->discountItem;
    }
    /**
     * Set discountItem value
     * @param \StructType\RecordRef $discountItem
     * @return \StructType\CashSale
     */
    public function setDiscountItem(\StructType\RecordRef $discountItem = null)
    {
        $this->discountItem = $discountItem;
        return $this;
    }
    /**
     * Get discountRate value
     * @return string|null
     */
    public function getDiscountRate()
    {
        return $this->discountRate;
    }
    /**
     * Set discountRate value
     * @param string $discountRate
     * @return \StructType\CashSale
     */
    public function setDiscountRate($discountRate = null)
    {
        // validation for constraint: string
        if (!is_null($discountRate) && !is_string($discountRate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($discountRate, true), gettype($discountRate)), __LINE__);
        }
        $this->discountRate = $discountRate;
        return $this;
    }
    /**
     * Get isTaxable value
     * @return bool|null
     */
    public function getIsTaxable()
    {
        return $this->isTaxable;
    }
    /**
     * Set isTaxable value
     * @param bool $isTaxable
     * @return \StructType\CashSale
     */
    public function setIsTaxable($isTaxable = null)
    {
        // validation for constraint: boolean
        if (!is_null($isTaxable) && !is_bool($isTaxable)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isTaxable, true), gettype($isTaxable)), __LINE__);
        }
        $this->isTaxable = $isTaxable;
        return $this;
    }
    /**
     * Get taxItem value
     * @return \StructType\RecordRef|null
     */
    public function getTaxItem()
    {
        return $this->taxItem;
    }
    /**
     * Set taxItem value
     * @param \StructType\RecordRef $taxItem
     * @return \StructType\CashSale
     */
    public function setTaxItem(\StructType\RecordRef $taxItem = null)
    {
        $this->taxItem = $taxItem;
        return $this;
    }
    /**
     * Get taxRate value
     * @return float|null
     */
    public function getTaxRate()
    {
        return $this->taxRate;
    }
    /**
     * Set taxRate value
     * @param float $taxRate
     * @return \StructType\CashSale
     */
    public function setTaxRate($taxRate = null)
    {
        // validation for constraint: float
        if (!is_null($taxRate) && !(is_float($taxRate) || is_numeric($taxRate))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($taxRate, true), gettype($taxRate)), __LINE__);
        }
        $this->taxRate = $taxRate;
        return $this;
    }
    /**
     * Get toBePrinted value
     * @return bool|null
     */
    public function getToBePrinted()
    {
        return $this->toBePrinted;
    }
    /**
     * Set toBePrinted value
     * @param bool $toBePrinted
     * @return \StructType\CashSale
     */
    public function setToBePrinted($toBePrinted = null)
    {
        // validation for constraint: boolean
        if (!is_null($toBePrinted) && !is_bool($toBePrinted)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($toBePrinted, true), gettype($toBePrinted)), __LINE__);
        }
        $this->toBePrinted = $toBePrinted;
        return $this;
    }
    /**
     * Get toBeEmailed value
     * @return bool|null
     */
    public function getToBeEmailed()
    {
        return $this->toBeEmailed;
    }
    /**
     * Set toBeEmailed value
     * @param bool $toBeEmailed
     * @return \StructType\CashSale
     */
    public function setToBeEmailed($toBeEmailed = null)
    {
        // validation for constraint: boolean
        if (!is_null($toBeEmailed) && !is_bool($toBeEmailed)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($toBeEmailed, true), gettype($toBeEmailed)), __LINE__);
        }
        $this->toBeEmailed = $toBeEmailed;
        return $this;
    }
    /**
     * Get toBeFaxed value
     * @return bool|null
     */
    public function getToBeFaxed()
    {
        return $this->toBeFaxed;
    }
    /**
     * Set toBeFaxed value
     * @param bool $toBeFaxed
     * @return \StructType\CashSale
     */
    public function setToBeFaxed($toBeFaxed = null)
    {
        // validation for constraint: boolean
        if (!is_null($toBeFaxed) && !is_bool($toBeFaxed)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($toBeFaxed, true), gettype($toBeFaxed)), __LINE__);
        }
        $this->toBeFaxed = $toBeFaxed;
        return $this;
    }
    /**
     * Get fax value
     * @return string|null
     */
    public function getFax()
    {
        return $this->fax;
    }
    /**
     * Set fax value
     * @param string $fax
     * @return \StructType\CashSale
     */
    public function setFax($fax = null)
    {
        // validation for constraint: string
        if (!is_null($fax) && !is_string($fax)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fax, true), gettype($fax)), __LINE__);
        }
        $this->fax = $fax;
        return $this;
    }
    /**
     * Get messageSel value
     * @return \StructType\RecordRef|null
     */
    public function getMessageSel()
    {
        return $this->messageSel;
    }
    /**
     * Set messageSel value
     * @param \StructType\RecordRef $messageSel
     * @return \StructType\CashSale
     */
    public function setMessageSel(\StructType\RecordRef $messageSel = null)
    {
        $this->messageSel = $messageSel;
        return $this;
    }
    /**
     * Get message value
     * @return string|null
     */
    public function getMessage()
    {
        return $this->message;
    }
    /**
     * Set message value
     * @param string $message
     * @return \StructType\CashSale
     */
    public function setMessage($message = null)
    {
        // validation for constraint: string
        if (!is_null($message) && !is_string($message)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($message, true), gettype($message)), __LINE__);
        }
        $this->message = $message;
        return $this;
    }
    /**
     * Get paymentOption value
     * @return \StructType\RecordRef|null
     */
    public function getPaymentOption()
    {
        return $this->paymentOption;
    }
    /**
     * Set paymentOption value
     * @param \StructType\RecordRef $paymentOption
     * @return \StructType\CashSale
     */
    public function setPaymentOption(\StructType\RecordRef $paymentOption = null)
    {
        $this->paymentOption = $paymentOption;
        return $this;
    }
    /**
     * Get inputAuthCode value
     * @return string|null
     */
    public function getInputAuthCode()
    {
        return $this->inputAuthCode;
    }
    /**
     * Set inputAuthCode value
     * @param string $inputAuthCode
     * @return \StructType\CashSale
     */
    public function setInputAuthCode($inputAuthCode = null)
    {
        // validation for constraint: string
        if (!is_null($inputAuthCode) && !is_string($inputAuthCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($inputAuthCode, true), gettype($inputAuthCode)), __LINE__);
        }
        $this->inputAuthCode = $inputAuthCode;
        return $this;
    }
    /**
     * Get inputReferenceCode value
     * @return string|null
     */
    public function getInputReferenceCode()
    {
        return $this->inputReferenceCode;
    }
    /**
     * Set inputReferenceCode value
     * @param string $inputReferenceCode
     * @return \StructType\CashSale
     */
    public function setInputReferenceCode($inputReferenceCode = null)
    {
        // validation for constraint: string
        if (!is_null($inputReferenceCode) && !is_string($inputReferenceCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($inputReferenceCode, true), gettype($inputReferenceCode)), __LINE__);
        }
        $this->inputReferenceCode = $inputReferenceCode;
        return $this;
    }
    /**
     * Get checkNumber value
     * @return string|null
     */
    public function getCheckNumber()
    {
        return $this->checkNumber;
    }
    /**
     * Set checkNumber value
     * @param string $checkNumber
     * @return \StructType\CashSale
     */
    public function setCheckNumber($checkNumber = null)
    {
        // validation for constraint: string
        if (!is_null($checkNumber) && !is_string($checkNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($checkNumber, true), gettype($checkNumber)), __LINE__);
        }
        $this->checkNumber = $checkNumber;
        return $this;
    }
    /**
     * Get paymentCardCsc value
     * @return string|null
     */
    public function getPaymentCardCsc()
    {
        return $this->paymentCardCsc;
    }
    /**
     * Set paymentCardCsc value
     * @param string $paymentCardCsc
     * @return \StructType\CashSale
     */
    public function setPaymentCardCsc($paymentCardCsc = null)
    {
        // validation for constraint: string
        if (!is_null($paymentCardCsc) && !is_string($paymentCardCsc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($paymentCardCsc, true), gettype($paymentCardCsc)), __LINE__);
        }
        $this->paymentCardCsc = $paymentCardCsc;
        return $this;
    }
    /**
     * Get paymentProcessingProfile value
     * @return \StructType\RecordRef|null
     */
    public function getPaymentProcessingProfile()
    {
        return $this->paymentProcessingProfile;
    }
    /**
     * Set paymentProcessingProfile value
     * @param \StructType\RecordRef $paymentProcessingProfile
     * @return \StructType\CashSale
     */
    public function setPaymentProcessingProfile(\StructType\RecordRef $paymentProcessingProfile = null)
    {
        $this->paymentProcessingProfile = $paymentProcessingProfile;
        return $this;
    }
    /**
     * Get handlingMode value
     * @return string|null
     */
    public function getHandlingMode()
    {
        return $this->handlingMode;
    }
    /**
     * Set handlingMode value
     * @uses \EnumType\CashSaleHandlingMode::valueIsValid()
     * @uses \EnumType\CashSaleHandlingMode::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $handlingMode
     * @return \StructType\CashSale
     */
    public function setHandlingMode($handlingMode = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CashSaleHandlingMode::valueIsValid($handlingMode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CashSaleHandlingMode', is_array($handlingMode) ? implode(', ', $handlingMode) : var_export($handlingMode, true), implode(', ', \EnumType\CashSaleHandlingMode::getValidValues())), __LINE__);
        }
        $this->handlingMode = $handlingMode;
        return $this;
    }
    /**
     * Get outputAuthCode value
     * @return string|null
     */
    public function getOutputAuthCode()
    {
        return $this->outputAuthCode;
    }
    /**
     * Set outputAuthCode value
     * @param string $outputAuthCode
     * @return \StructType\CashSale
     */
    public function setOutputAuthCode($outputAuthCode = null)
    {
        // validation for constraint: string
        if (!is_null($outputAuthCode) && !is_string($outputAuthCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($outputAuthCode, true), gettype($outputAuthCode)), __LINE__);
        }
        $this->outputAuthCode = $outputAuthCode;
        return $this;
    }
    /**
     * Get outputReferenceCode value
     * @return string|null
     */
    public function getOutputReferenceCode()
    {
        return $this->outputReferenceCode;
    }
    /**
     * Set outputReferenceCode value
     * @param string $outputReferenceCode
     * @return \StructType\CashSale
     */
    public function setOutputReferenceCode($outputReferenceCode = null)
    {
        // validation for constraint: string
        if (!is_null($outputReferenceCode) && !is_string($outputReferenceCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($outputReferenceCode, true), gettype($outputReferenceCode)), __LINE__);
        }
        $this->outputReferenceCode = $outputReferenceCode;
        return $this;
    }
    /**
     * Get paymentOperation value
     * @return string|null
     */
    public function getPaymentOperation()
    {
        return $this->paymentOperation;
    }
    /**
     * Set paymentOperation value
     * @uses \EnumType\CashSalePaymentOperation::valueIsValid()
     * @uses \EnumType\CashSalePaymentOperation::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $paymentOperation
     * @return \StructType\CashSale
     */
    public function setPaymentOperation($paymentOperation = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\CashSalePaymentOperation::valueIsValid($paymentOperation)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\CashSalePaymentOperation', is_array($paymentOperation) ? implode(', ', $paymentOperation) : var_export($paymentOperation, true), implode(', ', \EnumType\CashSalePaymentOperation::getValidValues())), __LINE__);
        }
        $this->paymentOperation = $paymentOperation;
        return $this;
    }
    /**
     * Get dynamicDescriptor value
     * @return string|null
     */
    public function getDynamicDescriptor()
    {
        return $this->dynamicDescriptor;
    }
    /**
     * Set dynamicDescriptor value
     * @param string $dynamicDescriptor
     * @return \StructType\CashSale
     */
    public function setDynamicDescriptor($dynamicDescriptor = null)
    {
        // validation for constraint: string
        if (!is_null($dynamicDescriptor) && !is_string($dynamicDescriptor)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($dynamicDescriptor, true), gettype($dynamicDescriptor)), __LINE__);
        }
        $this->dynamicDescriptor = $dynamicDescriptor;
        return $this;
    }
    /**
     * Get billingAddress value
     * @return \StructType\Address|null
     */
    public function getBillingAddress()
    {
        return $this->billingAddress;
    }
    /**
     * Set billingAddress value
     * @param \StructType\Address $billingAddress
     * @return \StructType\CashSale
     */
    public function setBillingAddress(\StructType\Address $billingAddress = null)
    {
        $this->billingAddress = $billingAddress;
        return $this;
    }
    /**
     * Get billAddressList value
     * @return \StructType\RecordRef|null
     */
    public function getBillAddressList()
    {
        return $this->billAddressList;
    }
    /**
     * Set billAddressList value
     * @param \StructType\RecordRef $billAddressList
     * @return \StructType\CashSale
     */
    public function setBillAddressList(\StructType\RecordRef $billAddressList = null)
    {
        $this->billAddressList = $billAddressList;
        return $this;
    }
    /**
     * Get shippingAddress value
     * @return \StructType\Address|null
     */
    public function getShippingAddress()
    {
        return $this->shippingAddress;
    }
    /**
     * Set shippingAddress value
     * @param \StructType\Address $shippingAddress
     * @return \StructType\CashSale
     */
    public function setShippingAddress(\StructType\Address $shippingAddress = null)
    {
        $this->shippingAddress = $shippingAddress;
        return $this;
    }
    /**
     * Get shipIsResidential value
     * @return bool|null
     */
    public function getShipIsResidential()
    {
        return $this->shipIsResidential;
    }
    /**
     * Set shipIsResidential value
     * @param bool $shipIsResidential
     * @return \StructType\CashSale
     */
    public function setShipIsResidential($shipIsResidential = null)
    {
        // validation for constraint: boolean
        if (!is_null($shipIsResidential) && !is_bool($shipIsResidential)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($shipIsResidential, true), gettype($shipIsResidential)), __LINE__);
        }
        $this->shipIsResidential = $shipIsResidential;
        return $this;
    }
    /**
     * Get shipAddressList value
     * @return \StructType\RecordRef|null
     */
    public function getShipAddressList()
    {
        return $this->shipAddressList;
    }
    /**
     * Set shipAddressList value
     * @param \StructType\RecordRef $shipAddressList
     * @return \StructType\CashSale
     */
    public function setShipAddressList(\StructType\RecordRef $shipAddressList = null)
    {
        $this->shipAddressList = $shipAddressList;
        return $this;
    }
    /**
     * Get fob value
     * @return string|null
     */
    public function getFob()
    {
        return $this->fob;
    }
    /**
     * Set fob value
     * @param string $fob
     * @return \StructType\CashSale
     */
    public function setFob($fob = null)
    {
        // validation for constraint: string
        if (!is_null($fob) && !is_string($fob)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($fob, true), gettype($fob)), __LINE__);
        }
        $this->fob = $fob;
        return $this;
    }
    /**
     * Get shipDate value
     * @return string|null
     */
    public function getShipDate()
    {
        return $this->shipDate;
    }
    /**
     * Set shipDate value
     * @param string $shipDate
     * @return \StructType\CashSale
     */
    public function setShipDate($shipDate = null)
    {
        // validation for constraint: string
        if (!is_null($shipDate) && !is_string($shipDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($shipDate, true), gettype($shipDate)), __LINE__);
        }
        $this->shipDate = $shipDate;
        return $this;
    }
    /**
     * Get shipMethod value
     * @return \StructType\RecordRef|null
     */
    public function getShipMethod()
    {
        return $this->shipMethod;
    }
    /**
     * Set shipMethod value
     * @param \StructType\RecordRef $shipMethod
     * @return \StructType\CashSale
     */
    public function setShipMethod(\StructType\RecordRef $shipMethod = null)
    {
        $this->shipMethod = $shipMethod;
        return $this;
    }
    /**
     * Get shippingCost value
     * @return float|null
     */
    public function getShippingCost()
    {
        return $this->shippingCost;
    }
    /**
     * Set shippingCost value
     * @param float $shippingCost
     * @return \StructType\CashSale
     */
    public function setShippingCost($shippingCost = null)
    {
        // validation for constraint: float
        if (!is_null($shippingCost) && !(is_float($shippingCost) || is_numeric($shippingCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($shippingCost, true), gettype($shippingCost)), __LINE__);
        }
        $this->shippingCost = $shippingCost;
        return $this;
    }
    /**
     * Get shippingTax1Rate value
     * @return float|null
     */
    public function getShippingTax1Rate()
    {
        return $this->shippingTax1Rate;
    }
    /**
     * Set shippingTax1Rate value
     * @param float $shippingTax1Rate
     * @return \StructType\CashSale
     */
    public function setShippingTax1Rate($shippingTax1Rate = null)
    {
        // validation for constraint: float
        if (!is_null($shippingTax1Rate) && !(is_float($shippingTax1Rate) || is_numeric($shippingTax1Rate))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($shippingTax1Rate, true), gettype($shippingTax1Rate)), __LINE__);
        }
        $this->shippingTax1Rate = $shippingTax1Rate;
        return $this;
    }
    /**
     * Get shippingTax2Rate value
     * @return string|null
     */
    public function getShippingTax2Rate()
    {
        return $this->shippingTax2Rate;
    }
    /**
     * Set shippingTax2Rate value
     * @param string $shippingTax2Rate
     * @return \StructType\CashSale
     */
    public function setShippingTax2Rate($shippingTax2Rate = null)
    {
        // validation for constraint: string
        if (!is_null($shippingTax2Rate) && !is_string($shippingTax2Rate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($shippingTax2Rate, true), gettype($shippingTax2Rate)), __LINE__);
        }
        $this->shippingTax2Rate = $shippingTax2Rate;
        return $this;
    }
    /**
     * Get shippingTaxCode value
     * @return \StructType\RecordRef|null
     */
    public function getShippingTaxCode()
    {
        return $this->shippingTaxCode;
    }
    /**
     * Set shippingTaxCode value
     * @param \StructType\RecordRef $shippingTaxCode
     * @return \StructType\CashSale
     */
    public function setShippingTaxCode(\StructType\RecordRef $shippingTaxCode = null)
    {
        $this->shippingTaxCode = $shippingTaxCode;
        return $this;
    }
    /**
     * Get handlingTaxCode value
     * @return \StructType\RecordRef|null
     */
    public function getHandlingTaxCode()
    {
        return $this->handlingTaxCode;
    }
    /**
     * Set handlingTaxCode value
     * @param \StructType\RecordRef $handlingTaxCode
     * @return \StructType\CashSale
     */
    public function setHandlingTaxCode(\StructType\RecordRef $handlingTaxCode = null)
    {
        $this->handlingTaxCode = $handlingTaxCode;
        return $this;
    }
    /**
     * Get handlingTax1Rate value
     * @return float|null
     */
    public function getHandlingTax1Rate()
    {
        return $this->handlingTax1Rate;
    }
    /**
     * Set handlingTax1Rate value
     * @param float $handlingTax1Rate
     * @return \StructType\CashSale
     */
    public function setHandlingTax1Rate($handlingTax1Rate = null)
    {
        // validation for constraint: float
        if (!is_null($handlingTax1Rate) && !(is_float($handlingTax1Rate) || is_numeric($handlingTax1Rate))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($handlingTax1Rate, true), gettype($handlingTax1Rate)), __LINE__);
        }
        $this->handlingTax1Rate = $handlingTax1Rate;
        return $this;
    }
    /**
     * Get handlingCost value
     * @return float|null
     */
    public function getHandlingCost()
    {
        return $this->handlingCost;
    }
    /**
     * Set handlingCost value
     * @param float $handlingCost
     * @return \StructType\CashSale
     */
    public function setHandlingCost($handlingCost = null)
    {
        // validation for constraint: float
        if (!is_null($handlingCost) && !(is_float($handlingCost) || is_numeric($handlingCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($handlingCost, true), gettype($handlingCost)), __LINE__);
        }
        $this->handlingCost = $handlingCost;
        return $this;
    }
    /**
     * Get handlingTax2Rate value
     * @return string|null
     */
    public function getHandlingTax2Rate()
    {
        return $this->handlingTax2Rate;
    }
    /**
     * Set handlingTax2Rate value
     * @param string $handlingTax2Rate
     * @return \StructType\CashSale
     */
    public function setHandlingTax2Rate($handlingTax2Rate = null)
    {
        // validation for constraint: string
        if (!is_null($handlingTax2Rate) && !is_string($handlingTax2Rate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($handlingTax2Rate, true), gettype($handlingTax2Rate)), __LINE__);
        }
        $this->handlingTax2Rate = $handlingTax2Rate;
        return $this;
    }
    /**
     * Get linkedTrackingNumbers value
     * @return string|null
     */
    public function getLinkedTrackingNumbers()
    {
        return $this->linkedTrackingNumbers;
    }
    /**
     * Set linkedTrackingNumbers value
     * @param string $linkedTrackingNumbers
     * @return \StructType\CashSale
     */
    public function setLinkedTrackingNumbers($linkedTrackingNumbers = null)
    {
        // validation for constraint: string
        if (!is_null($linkedTrackingNumbers) && !is_string($linkedTrackingNumbers)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($linkedTrackingNumbers, true), gettype($linkedTrackingNumbers)), __LINE__);
        }
        $this->linkedTrackingNumbers = $linkedTrackingNumbers;
        return $this;
    }
    /**
     * Get trackingNumbers value
     * @return string|null
     */
    public function getTrackingNumbers()
    {
        return $this->trackingNumbers;
    }
    /**
     * Set trackingNumbers value
     * @param string $trackingNumbers
     * @return \StructType\CashSale
     */
    public function setTrackingNumbers($trackingNumbers = null)
    {
        // validation for constraint: string
        if (!is_null($trackingNumbers) && !is_string($trackingNumbers)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($trackingNumbers, true), gettype($trackingNumbers)), __LINE__);
        }
        $this->trackingNumbers = $trackingNumbers;
        return $this;
    }
    /**
     * Get salesGroup value
     * @return \StructType\RecordRef|null
     */
    public function getSalesGroup()
    {
        return $this->salesGroup;
    }
    /**
     * Set salesGroup value
     * @param \StructType\RecordRef $salesGroup
     * @return \StructType\CashSale
     */
    public function setSalesGroup(\StructType\RecordRef $salesGroup = null)
    {
        $this->salesGroup = $salesGroup;
        return $this;
    }
    /**
     * Get revenueStatus value
     * @return string|null
     */
    public function getRevenueStatus()
    {
        return $this->revenueStatus;
    }
    /**
     * Set revenueStatus value
     * @uses \EnumType\RevenueStatus::valueIsValid()
     * @uses \EnumType\RevenueStatus::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $revenueStatus
     * @return \StructType\CashSale
     */
    public function setRevenueStatus($revenueStatus = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\RevenueStatus::valueIsValid($revenueStatus)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\RevenueStatus', is_array($revenueStatus) ? implode(', ', $revenueStatus) : var_export($revenueStatus, true), implode(', ', \EnumType\RevenueStatus::getValidValues())), __LINE__);
        }
        $this->revenueStatus = $revenueStatus;
        return $this;
    }
    /**
     * Get recognizedRevenue value
     * @return float|null
     */
    public function getRecognizedRevenue()
    {
        return $this->recognizedRevenue;
    }
    /**
     * Set recognizedRevenue value
     * @param float $recognizedRevenue
     * @return \StructType\CashSale
     */
    public function setRecognizedRevenue($recognizedRevenue = null)
    {
        // validation for constraint: float
        if (!is_null($recognizedRevenue) && !(is_float($recognizedRevenue) || is_numeric($recognizedRevenue))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($recognizedRevenue, true), gettype($recognizedRevenue)), __LINE__);
        }
        $this->recognizedRevenue = $recognizedRevenue;
        return $this;
    }
    /**
     * Get deferredRevenue value
     * @return float|null
     */
    public function getDeferredRevenue()
    {
        return $this->deferredRevenue;
    }
    /**
     * Set deferredRevenue value
     * @param float $deferredRevenue
     * @return \StructType\CashSale
     */
    public function setDeferredRevenue($deferredRevenue = null)
    {
        // validation for constraint: float
        if (!is_null($deferredRevenue) && !(is_float($deferredRevenue) || is_numeric($deferredRevenue))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($deferredRevenue, true), gettype($deferredRevenue)), __LINE__);
        }
        $this->deferredRevenue = $deferredRevenue;
        return $this;
    }
    /**
     * Get revRecOnRevCommitment value
     * @return bool|null
     */
    public function getRevRecOnRevCommitment()
    {
        return $this->revRecOnRevCommitment;
    }
    /**
     * Set revRecOnRevCommitment value
     * @param bool $revRecOnRevCommitment
     * @return \StructType\CashSale
     */
    public function setRevRecOnRevCommitment($revRecOnRevCommitment = null)
    {
        // validation for constraint: boolean
        if (!is_null($revRecOnRevCommitment) && !is_bool($revRecOnRevCommitment)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($revRecOnRevCommitment, true), gettype($revRecOnRevCommitment)), __LINE__);
        }
        $this->revRecOnRevCommitment = $revRecOnRevCommitment;
        return $this;
    }
    /**
     * Get syncSalesTeams value
     * @return bool|null
     */
    public function getSyncSalesTeams()
    {
        return $this->syncSalesTeams;
    }
    /**
     * Set syncSalesTeams value
     * @param bool $syncSalesTeams
     * @return \StructType\CashSale
     */
    public function setSyncSalesTeams($syncSalesTeams = null)
    {
        // validation for constraint: boolean
        if (!is_null($syncSalesTeams) && !is_bool($syncSalesTeams)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($syncSalesTeams, true), gettype($syncSalesTeams)), __LINE__);
        }
        $this->syncSalesTeams = $syncSalesTeams;
        return $this;
    }
    /**
     * Get paymentMethod value
     * @return \StructType\RecordRef|null
     */
    public function getPaymentMethod()
    {
        return $this->paymentMethod;
    }
    /**
     * Set paymentMethod value
     * @param \StructType\RecordRef $paymentMethod
     * @return \StructType\CashSale
     */
    public function setPaymentMethod(\StructType\RecordRef $paymentMethod = null)
    {
        $this->paymentMethod = $paymentMethod;
        return $this;
    }
    /**
     * Get payPalStatus value
     * @return string|null
     */
    public function getPayPalStatus()
    {
        return $this->payPalStatus;
    }
    /**
     * Set payPalStatus value
     * @param string $payPalStatus
     * @return \StructType\CashSale
     */
    public function setPayPalStatus($payPalStatus = null)
    {
        // validation for constraint: string
        if (!is_null($payPalStatus) && !is_string($payPalStatus)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($payPalStatus, true), gettype($payPalStatus)), __LINE__);
        }
        $this->payPalStatus = $payPalStatus;
        return $this;
    }
    /**
     * Get creditCard value
     * @return \StructType\RecordRef|null
     */
    public function getCreditCard()
    {
        return $this->creditCard;
    }
    /**
     * Set creditCard value
     * @param \StructType\RecordRef $creditCard
     * @return \StructType\CashSale
     */
    public function setCreditCard(\StructType\RecordRef $creditCard = null)
    {
        $this->creditCard = $creditCard;
        return $this;
    }
    /**
     * Get ccNumber value
     * @return string|null
     */
    public function getCcNumber()
    {
        return $this->ccNumber;
    }
    /**
     * Set ccNumber value
     * @param string $ccNumber
     * @return \StructType\CashSale
     */
    public function setCcNumber($ccNumber = null)
    {
        // validation for constraint: string
        if (!is_null($ccNumber) && !is_string($ccNumber)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ccNumber, true), gettype($ccNumber)), __LINE__);
        }
        $this->ccNumber = $ccNumber;
        return $this;
    }
    /**
     * Get ccExpireDate value
     * @return string|null
     */
    public function getCcExpireDate()
    {
        return $this->ccExpireDate;
    }
    /**
     * Set ccExpireDate value
     * @param string $ccExpireDate
     * @return \StructType\CashSale
     */
    public function setCcExpireDate($ccExpireDate = null)
    {
        // validation for constraint: string
        if (!is_null($ccExpireDate) && !is_string($ccExpireDate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ccExpireDate, true), gettype($ccExpireDate)), __LINE__);
        }
        $this->ccExpireDate = $ccExpireDate;
        return $this;
    }
    /**
     * Get ccName value
     * @return string|null
     */
    public function getCcName()
    {
        return $this->ccName;
    }
    /**
     * Set ccName value
     * @param string $ccName
     * @return \StructType\CashSale
     */
    public function setCcName($ccName = null)
    {
        // validation for constraint: string
        if (!is_null($ccName) && !is_string($ccName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ccName, true), gettype($ccName)), __LINE__);
        }
        $this->ccName = $ccName;
        return $this;
    }
    /**
     * Get ccStreet value
     * @return string|null
     */
    public function getCcStreet()
    {
        return $this->ccStreet;
    }
    /**
     * Set ccStreet value
     * @param string $ccStreet
     * @return \StructType\CashSale
     */
    public function setCcStreet($ccStreet = null)
    {
        // validation for constraint: string
        if (!is_null($ccStreet) && !is_string($ccStreet)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ccStreet, true), gettype($ccStreet)), __LINE__);
        }
        $this->ccStreet = $ccStreet;
        return $this;
    }
    /**
     * Get ccZipCode value
     * @return string|null
     */
    public function getCcZipCode()
    {
        return $this->ccZipCode;
    }
    /**
     * Set ccZipCode value
     * @param string $ccZipCode
     * @return \StructType\CashSale
     */
    public function setCcZipCode($ccZipCode = null)
    {
        // validation for constraint: string
        if (!is_null($ccZipCode) && !is_string($ccZipCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ccZipCode, true), gettype($ccZipCode)), __LINE__);
        }
        $this->ccZipCode = $ccZipCode;
        return $this;
    }
    /**
     * Get creditCardProcessor value
     * @return \StructType\RecordRef|null
     */
    public function getCreditCardProcessor()
    {
        return $this->creditCardProcessor;
    }
    /**
     * Set creditCardProcessor value
     * @param \StructType\RecordRef $creditCardProcessor
     * @return \StructType\CashSale
     */
    public function setCreditCardProcessor(\StructType\RecordRef $creditCardProcessor = null)
    {
        $this->creditCardProcessor = $creditCardProcessor;
        return $this;
    }
    /**
     * Get ccApproved value
     * @return bool|null
     */
    public function getCcApproved()
    {
        return $this->ccApproved;
    }
    /**
     * Set ccApproved value
     * @param bool $ccApproved
     * @return \StructType\CashSale
     */
    public function setCcApproved($ccApproved = null)
    {
        // validation for constraint: boolean
        if (!is_null($ccApproved) && !is_bool($ccApproved)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($ccApproved, true), gettype($ccApproved)), __LINE__);
        }
        $this->ccApproved = $ccApproved;
        return $this;
    }
    /**
     * Get authCode value
     * @return string|null
     */
    public function getAuthCode()
    {
        return $this->authCode;
    }
    /**
     * Set authCode value
     * @param string $authCode
     * @return \StructType\CashSale
     */
    public function setAuthCode($authCode = null)
    {
        // validation for constraint: string
        if (!is_null($authCode) && !is_string($authCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($authCode, true), gettype($authCode)), __LINE__);
        }
        $this->authCode = $authCode;
        return $this;
    }
    /**
     * Get ccAvsStreetMatch value
     * @return string|null
     */
    public function getCcAvsStreetMatch()
    {
        return $this->ccAvsStreetMatch;
    }
    /**
     * Set ccAvsStreetMatch value
     * @uses \EnumType\AvsMatchCode::valueIsValid()
     * @uses \EnumType\AvsMatchCode::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $ccAvsStreetMatch
     * @return \StructType\CashSale
     */
    public function setCcAvsStreetMatch($ccAvsStreetMatch = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\AvsMatchCode::valueIsValid($ccAvsStreetMatch)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\AvsMatchCode', is_array($ccAvsStreetMatch) ? implode(', ', $ccAvsStreetMatch) : var_export($ccAvsStreetMatch, true), implode(', ', \EnumType\AvsMatchCode::getValidValues())), __LINE__);
        }
        $this->ccAvsStreetMatch = $ccAvsStreetMatch;
        return $this;
    }
    /**
     * Get ccAvsZipMatch value
     * @return string|null
     */
    public function getCcAvsZipMatch()
    {
        return $this->ccAvsZipMatch;
    }
    /**
     * Set ccAvsZipMatch value
     * @uses \EnumType\AvsMatchCode::valueIsValid()
     * @uses \EnumType\AvsMatchCode::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $ccAvsZipMatch
     * @return \StructType\CashSale
     */
    public function setCcAvsZipMatch($ccAvsZipMatch = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\AvsMatchCode::valueIsValid($ccAvsZipMatch)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\AvsMatchCode', is_array($ccAvsZipMatch) ? implode(', ', $ccAvsZipMatch) : var_export($ccAvsZipMatch, true), implode(', ', \EnumType\AvsMatchCode::getValidValues())), __LINE__);
        }
        $this->ccAvsZipMatch = $ccAvsZipMatch;
        return $this;
    }
    /**
     * Get isRecurringPayment value
     * @return bool|null
     */
    public function getIsRecurringPayment()
    {
        return $this->isRecurringPayment;
    }
    /**
     * Set isRecurringPayment value
     * @param bool $isRecurringPayment
     * @return \StructType\CashSale
     */
    public function setIsRecurringPayment($isRecurringPayment = null)
    {
        // validation for constraint: boolean
        if (!is_null($isRecurringPayment) && !is_bool($isRecurringPayment)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isRecurringPayment, true), gettype($isRecurringPayment)), __LINE__);
        }
        $this->isRecurringPayment = $isRecurringPayment;
        return $this;
    }
    /**
     * Get payPalTranId value
     * @return string|null
     */
    public function getPayPalTranId()
    {
        return $this->payPalTranId;
    }
    /**
     * Set payPalTranId value
     * @param string $payPalTranId
     * @return \StructType\CashSale
     */
    public function setPayPalTranId($payPalTranId = null)
    {
        // validation for constraint: string
        if (!is_null($payPalTranId) && !is_string($payPalTranId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($payPalTranId, true), gettype($payPalTranId)), __LINE__);
        }
        $this->payPalTranId = $payPalTranId;
        return $this;
    }
    /**
     * Get subTotal value
     * @return float|null
     */
    public function getSubTotal()
    {
        return $this->subTotal;
    }
    /**
     * Set subTotal value
     * @param float $subTotal
     * @return \StructType\CashSale
     */
    public function setSubTotal($subTotal = null)
    {
        // validation for constraint: float
        if (!is_null($subTotal) && !(is_float($subTotal) || is_numeric($subTotal))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($subTotal, true), gettype($subTotal)), __LINE__);
        }
        $this->subTotal = $subTotal;
        return $this;
    }
    /**
     * Get ccIsPurchaseCardBin value
     * @return bool|null
     */
    public function getCcIsPurchaseCardBin()
    {
        return $this->ccIsPurchaseCardBin;
    }
    /**
     * Set ccIsPurchaseCardBin value
     * @param bool $ccIsPurchaseCardBin
     * @return \StructType\CashSale
     */
    public function setCcIsPurchaseCardBin($ccIsPurchaseCardBin = null)
    {
        // validation for constraint: boolean
        if (!is_null($ccIsPurchaseCardBin) && !is_bool($ccIsPurchaseCardBin)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($ccIsPurchaseCardBin, true), gettype($ccIsPurchaseCardBin)), __LINE__);
        }
        $this->ccIsPurchaseCardBin = $ccIsPurchaseCardBin;
        return $this;
    }
    /**
     * Get ignoreAvs value
     * @return bool|null
     */
    public function getIgnoreAvs()
    {
        return $this->ignoreAvs;
    }
    /**
     * Set ignoreAvs value
     * @param bool $ignoreAvs
     * @return \StructType\CashSale
     */
    public function setIgnoreAvs($ignoreAvs = null)
    {
        // validation for constraint: boolean
        if (!is_null($ignoreAvs) && !is_bool($ignoreAvs)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($ignoreAvs, true), gettype($ignoreAvs)), __LINE__);
        }
        $this->ignoreAvs = $ignoreAvs;
        return $this;
    }
    /**
     * Get ccProcessAsPurchaseCard value
     * @return bool|null
     */
    public function getCcProcessAsPurchaseCard()
    {
        return $this->ccProcessAsPurchaseCard;
    }
    /**
     * Set ccProcessAsPurchaseCard value
     * @param bool $ccProcessAsPurchaseCard
     * @return \StructType\CashSale
     */
    public function setCcProcessAsPurchaseCard($ccProcessAsPurchaseCard = null)
    {
        // validation for constraint: boolean
        if (!is_null($ccProcessAsPurchaseCard) && !is_bool($ccProcessAsPurchaseCard)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($ccProcessAsPurchaseCard, true), gettype($ccProcessAsPurchaseCard)), __LINE__);
        }
        $this->ccProcessAsPurchaseCard = $ccProcessAsPurchaseCard;
        return $this;
    }
    /**
     * Get itemCostDiscount value
     * @return \StructType\RecordRef|null
     */
    public function getItemCostDiscount()
    {
        return $this->itemCostDiscount;
    }
    /**
     * Set itemCostDiscount value
     * @param \StructType\RecordRef $itemCostDiscount
     * @return \StructType\CashSale
     */
    public function setItemCostDiscount(\StructType\RecordRef $itemCostDiscount = null)
    {
        $this->itemCostDiscount = $itemCostDiscount;
        return $this;
    }
    /**
     * Get itemCostDiscRate value
     * @return string|null
     */
    public function getItemCostDiscRate()
    {
        return $this->itemCostDiscRate;
    }
    /**
     * Set itemCostDiscRate value
     * @param string $itemCostDiscRate
     * @return \StructType\CashSale
     */
    public function setItemCostDiscRate($itemCostDiscRate = null)
    {
        // validation for constraint: string
        if (!is_null($itemCostDiscRate) && !is_string($itemCostDiscRate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($itemCostDiscRate, true), gettype($itemCostDiscRate)), __LINE__);
        }
        $this->itemCostDiscRate = $itemCostDiscRate;
        return $this;
    }
    /**
     * Get itemCostDiscAmount value
     * @return float|null
     */
    public function getItemCostDiscAmount()
    {
        return $this->itemCostDiscAmount;
    }
    /**
     * Set itemCostDiscAmount value
     * @param float $itemCostDiscAmount
     * @return \StructType\CashSale
     */
    public function setItemCostDiscAmount($itemCostDiscAmount = null)
    {
        // validation for constraint: float
        if (!is_null($itemCostDiscAmount) && !(is_float($itemCostDiscAmount) || is_numeric($itemCostDiscAmount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($itemCostDiscAmount, true), gettype($itemCostDiscAmount)), __LINE__);
        }
        $this->itemCostDiscAmount = $itemCostDiscAmount;
        return $this;
    }
    /**
     * Get itemCostTaxRate1 value
     * @return float|null
     */
    public function getItemCostTaxRate1()
    {
        return $this->itemCostTaxRate1;
    }
    /**
     * Set itemCostTaxRate1 value
     * @param float $itemCostTaxRate1
     * @return \StructType\CashSale
     */
    public function setItemCostTaxRate1($itemCostTaxRate1 = null)
    {
        // validation for constraint: float
        if (!is_null($itemCostTaxRate1) && !(is_float($itemCostTaxRate1) || is_numeric($itemCostTaxRate1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($itemCostTaxRate1, true), gettype($itemCostTaxRate1)), __LINE__);
        }
        $this->itemCostTaxRate1 = $itemCostTaxRate1;
        return $this;
    }
    /**
     * Get itemCostTaxRate2 value
     * @return float|null
     */
    public function getItemCostTaxRate2()
    {
        return $this->itemCostTaxRate2;
    }
    /**
     * Set itemCostTaxRate2 value
     * @param float $itemCostTaxRate2
     * @return \StructType\CashSale
     */
    public function setItemCostTaxRate2($itemCostTaxRate2 = null)
    {
        // validation for constraint: float
        if (!is_null($itemCostTaxRate2) && !(is_float($itemCostTaxRate2) || is_numeric($itemCostTaxRate2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($itemCostTaxRate2, true), gettype($itemCostTaxRate2)), __LINE__);
        }
        $this->itemCostTaxRate2 = $itemCostTaxRate2;
        return $this;
    }
    /**
     * Get itemCostDiscTaxable value
     * @return bool|null
     */
    public function getItemCostDiscTaxable()
    {
        return $this->itemCostDiscTaxable;
    }
    /**
     * Set itemCostDiscTaxable value
     * @param bool $itemCostDiscTaxable
     * @return \StructType\CashSale
     */
    public function setItemCostDiscTaxable($itemCostDiscTaxable = null)
    {
        // validation for constraint: boolean
        if (!is_null($itemCostDiscTaxable) && !is_bool($itemCostDiscTaxable)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($itemCostDiscTaxable, true), gettype($itemCostDiscTaxable)), __LINE__);
        }
        $this->itemCostDiscTaxable = $itemCostDiscTaxable;
        return $this;
    }
    /**
     * Get itemCostTaxCode value
     * @return \StructType\RecordRef|null
     */
    public function getItemCostTaxCode()
    {
        return $this->itemCostTaxCode;
    }
    /**
     * Set itemCostTaxCode value
     * @param \StructType\RecordRef $itemCostTaxCode
     * @return \StructType\CashSale
     */
    public function setItemCostTaxCode(\StructType\RecordRef $itemCostTaxCode = null)
    {
        $this->itemCostTaxCode = $itemCostTaxCode;
        return $this;
    }
    /**
     * Get itemCostDiscTax1Amt value
     * @return float|null
     */
    public function getItemCostDiscTax1Amt()
    {
        return $this->itemCostDiscTax1Amt;
    }
    /**
     * Set itemCostDiscTax1Amt value
     * @param float $itemCostDiscTax1Amt
     * @return \StructType\CashSale
     */
    public function setItemCostDiscTax1Amt($itemCostDiscTax1Amt = null)
    {
        // validation for constraint: float
        if (!is_null($itemCostDiscTax1Amt) && !(is_float($itemCostDiscTax1Amt) || is_numeric($itemCostDiscTax1Amt))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($itemCostDiscTax1Amt, true), gettype($itemCostDiscTax1Amt)), __LINE__);
        }
        $this->itemCostDiscTax1Amt = $itemCostDiscTax1Amt;
        return $this;
    }
    /**
     * Get itemCostDiscPrint value
     * @return bool|null
     */
    public function getItemCostDiscPrint()
    {
        return $this->itemCostDiscPrint;
    }
    /**
     * Set itemCostDiscPrint value
     * @param bool $itemCostDiscPrint
     * @return \StructType\CashSale
     */
    public function setItemCostDiscPrint($itemCostDiscPrint = null)
    {
        // validation for constraint: boolean
        if (!is_null($itemCostDiscPrint) && !is_bool($itemCostDiscPrint)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($itemCostDiscPrint, true), gettype($itemCostDiscPrint)), __LINE__);
        }
        $this->itemCostDiscPrint = $itemCostDiscPrint;
        return $this;
    }
    /**
     * Get expCostDiscount value
     * @return \StructType\RecordRef|null
     */
    public function getExpCostDiscount()
    {
        return $this->expCostDiscount;
    }
    /**
     * Set expCostDiscount value
     * @param \StructType\RecordRef $expCostDiscount
     * @return \StructType\CashSale
     */
    public function setExpCostDiscount(\StructType\RecordRef $expCostDiscount = null)
    {
        $this->expCostDiscount = $expCostDiscount;
        return $this;
    }
    /**
     * Get expCostDiscRate value
     * @return string|null
     */
    public function getExpCostDiscRate()
    {
        return $this->expCostDiscRate;
    }
    /**
     * Set expCostDiscRate value
     * @param string $expCostDiscRate
     * @return \StructType\CashSale
     */
    public function setExpCostDiscRate($expCostDiscRate = null)
    {
        // validation for constraint: string
        if (!is_null($expCostDiscRate) && !is_string($expCostDiscRate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($expCostDiscRate, true), gettype($expCostDiscRate)), __LINE__);
        }
        $this->expCostDiscRate = $expCostDiscRate;
        return $this;
    }
    /**
     * Get expCostDiscAmount value
     * @return float|null
     */
    public function getExpCostDiscAmount()
    {
        return $this->expCostDiscAmount;
    }
    /**
     * Set expCostDiscAmount value
     * @param float $expCostDiscAmount
     * @return \StructType\CashSale
     */
    public function setExpCostDiscAmount($expCostDiscAmount = null)
    {
        // validation for constraint: float
        if (!is_null($expCostDiscAmount) && !(is_float($expCostDiscAmount) || is_numeric($expCostDiscAmount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($expCostDiscAmount, true), gettype($expCostDiscAmount)), __LINE__);
        }
        $this->expCostDiscAmount = $expCostDiscAmount;
        return $this;
    }
    /**
     * Get expCostDiscTaxable value
     * @return bool|null
     */
    public function getExpCostDiscTaxable()
    {
        return $this->expCostDiscTaxable;
    }
    /**
     * Set expCostDiscTaxable value
     * @param bool $expCostDiscTaxable
     * @return \StructType\CashSale
     */
    public function setExpCostDiscTaxable($expCostDiscTaxable = null)
    {
        // validation for constraint: boolean
        if (!is_null($expCostDiscTaxable) && !is_bool($expCostDiscTaxable)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($expCostDiscTaxable, true), gettype($expCostDiscTaxable)), __LINE__);
        }
        $this->expCostDiscTaxable = $expCostDiscTaxable;
        return $this;
    }
    /**
     * Get expCostDiscprint value
     * @return bool|null
     */
    public function getExpCostDiscprint()
    {
        return $this->expCostDiscprint;
    }
    /**
     * Set expCostDiscprint value
     * @param bool $expCostDiscprint
     * @return \StructType\CashSale
     */
    public function setExpCostDiscprint($expCostDiscprint = null)
    {
        // validation for constraint: boolean
        if (!is_null($expCostDiscprint) && !is_bool($expCostDiscprint)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($expCostDiscprint, true), gettype($expCostDiscprint)), __LINE__);
        }
        $this->expCostDiscprint = $expCostDiscprint;
        return $this;
    }
    /**
     * Get expCostTaxRate1 value
     * @return float|null
     */
    public function getExpCostTaxRate1()
    {
        return $this->expCostTaxRate1;
    }
    /**
     * Set expCostTaxRate1 value
     * @param float $expCostTaxRate1
     * @return \StructType\CashSale
     */
    public function setExpCostTaxRate1($expCostTaxRate1 = null)
    {
        // validation for constraint: float
        if (!is_null($expCostTaxRate1) && !(is_float($expCostTaxRate1) || is_numeric($expCostTaxRate1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($expCostTaxRate1, true), gettype($expCostTaxRate1)), __LINE__);
        }
        $this->expCostTaxRate1 = $expCostTaxRate1;
        return $this;
    }
    /**
     * Get timeDiscount value
     * @return \StructType\RecordRef|null
     */
    public function getTimeDiscount()
    {
        return $this->timeDiscount;
    }
    /**
     * Set timeDiscount value
     * @param \StructType\RecordRef $timeDiscount
     * @return \StructType\CashSale
     */
    public function setTimeDiscount(\StructType\RecordRef $timeDiscount = null)
    {
        $this->timeDiscount = $timeDiscount;
        return $this;
    }
    /**
     * Get expCostTaxCode value
     * @return \StructType\RecordRef|null
     */
    public function getExpCostTaxCode()
    {
        return $this->expCostTaxCode;
    }
    /**
     * Set expCostTaxCode value
     * @param \StructType\RecordRef $expCostTaxCode
     * @return \StructType\CashSale
     */
    public function setExpCostTaxCode(\StructType\RecordRef $expCostTaxCode = null)
    {
        $this->expCostTaxCode = $expCostTaxCode;
        return $this;
    }
    /**
     * Get timeDiscRate value
     * @return string|null
     */
    public function getTimeDiscRate()
    {
        return $this->timeDiscRate;
    }
    /**
     * Set timeDiscRate value
     * @param string $timeDiscRate
     * @return \StructType\CashSale
     */
    public function setTimeDiscRate($timeDiscRate = null)
    {
        // validation for constraint: string
        if (!is_null($timeDiscRate) && !is_string($timeDiscRate)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($timeDiscRate, true), gettype($timeDiscRate)), __LINE__);
        }
        $this->timeDiscRate = $timeDiscRate;
        return $this;
    }
    /**
     * Get expCostTaxRate2 value
     * @return float|null
     */
    public function getExpCostTaxRate2()
    {
        return $this->expCostTaxRate2;
    }
    /**
     * Set expCostTaxRate2 value
     * @param float $expCostTaxRate2
     * @return \StructType\CashSale
     */
    public function setExpCostTaxRate2($expCostTaxRate2 = null)
    {
        // validation for constraint: float
        if (!is_null($expCostTaxRate2) && !(is_float($expCostTaxRate2) || is_numeric($expCostTaxRate2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($expCostTaxRate2, true), gettype($expCostTaxRate2)), __LINE__);
        }
        $this->expCostTaxRate2 = $expCostTaxRate2;
        return $this;
    }
    /**
     * Get expCostDiscTax1Amt value
     * @return float|null
     */
    public function getExpCostDiscTax1Amt()
    {
        return $this->expCostDiscTax1Amt;
    }
    /**
     * Set expCostDiscTax1Amt value
     * @param float $expCostDiscTax1Amt
     * @return \StructType\CashSale
     */
    public function setExpCostDiscTax1Amt($expCostDiscTax1Amt = null)
    {
        // validation for constraint: float
        if (!is_null($expCostDiscTax1Amt) && !(is_float($expCostDiscTax1Amt) || is_numeric($expCostDiscTax1Amt))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($expCostDiscTax1Amt, true), gettype($expCostDiscTax1Amt)), __LINE__);
        }
        $this->expCostDiscTax1Amt = $expCostDiscTax1Amt;
        return $this;
    }
    /**
     * Get timeDiscAmount value
     * @return float|null
     */
    public function getTimeDiscAmount()
    {
        return $this->timeDiscAmount;
    }
    /**
     * Set timeDiscAmount value
     * @param float $timeDiscAmount
     * @return \StructType\CashSale
     */
    public function setTimeDiscAmount($timeDiscAmount = null)
    {
        // validation for constraint: float
        if (!is_null($timeDiscAmount) && !(is_float($timeDiscAmount) || is_numeric($timeDiscAmount))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($timeDiscAmount, true), gettype($timeDiscAmount)), __LINE__);
        }
        $this->timeDiscAmount = $timeDiscAmount;
        return $this;
    }
    /**
     * Get timeDiscTaxable value
     * @return bool|null
     */
    public function getTimeDiscTaxable()
    {
        return $this->timeDiscTaxable;
    }
    /**
     * Set timeDiscTaxable value
     * @param bool $timeDiscTaxable
     * @return \StructType\CashSale
     */
    public function setTimeDiscTaxable($timeDiscTaxable = null)
    {
        // validation for constraint: boolean
        if (!is_null($timeDiscTaxable) && !is_bool($timeDiscTaxable)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($timeDiscTaxable, true), gettype($timeDiscTaxable)), __LINE__);
        }
        $this->timeDiscTaxable = $timeDiscTaxable;
        return $this;
    }
    /**
     * Get timeDiscPrint value
     * @return bool|null
     */
    public function getTimeDiscPrint()
    {
        return $this->timeDiscPrint;
    }
    /**
     * Set timeDiscPrint value
     * @param bool $timeDiscPrint
     * @return \StructType\CashSale
     */
    public function setTimeDiscPrint($timeDiscPrint = null)
    {
        // validation for constraint: boolean
        if (!is_null($timeDiscPrint) && !is_bool($timeDiscPrint)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($timeDiscPrint, true), gettype($timeDiscPrint)), __LINE__);
        }
        $this->timeDiscPrint = $timeDiscPrint;
        return $this;
    }
    /**
     * Get discountTotal value
     * @return float|null
     */
    public function getDiscountTotal()
    {
        return $this->discountTotal;
    }
    /**
     * Set discountTotal value
     * @param float $discountTotal
     * @return \StructType\CashSale
     */
    public function setDiscountTotal($discountTotal = null)
    {
        // validation for constraint: float
        if (!is_null($discountTotal) && !(is_float($discountTotal) || is_numeric($discountTotal))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($discountTotal, true), gettype($discountTotal)), __LINE__);
        }
        $this->discountTotal = $discountTotal;
        return $this;
    }
    /**
     * Get taxTotal value
     * @return float|null
     */
    public function getTaxTotal()
    {
        return $this->taxTotal;
    }
    /**
     * Set taxTotal value
     * @param float $taxTotal
     * @return \StructType\CashSale
     */
    public function setTaxTotal($taxTotal = null)
    {
        // validation for constraint: float
        if (!is_null($taxTotal) && !(is_float($taxTotal) || is_numeric($taxTotal))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($taxTotal, true), gettype($taxTotal)), __LINE__);
        }
        $this->taxTotal = $taxTotal;
        return $this;
    }
    /**
     * Get timeTaxRate1 value
     * @return float|null
     */
    public function getTimeTaxRate1()
    {
        return $this->timeTaxRate1;
    }
    /**
     * Set timeTaxRate1 value
     * @param float $timeTaxRate1
     * @return \StructType\CashSale
     */
    public function setTimeTaxRate1($timeTaxRate1 = null)
    {
        // validation for constraint: float
        if (!is_null($timeTaxRate1) && !(is_float($timeTaxRate1) || is_numeric($timeTaxRate1))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($timeTaxRate1, true), gettype($timeTaxRate1)), __LINE__);
        }
        $this->timeTaxRate1 = $timeTaxRate1;
        return $this;
    }
    /**
     * Get altShippingCost value
     * @return float|null
     */
    public function getAltShippingCost()
    {
        return $this->altShippingCost;
    }
    /**
     * Set altShippingCost value
     * @param float $altShippingCost
     * @return \StructType\CashSale
     */
    public function setAltShippingCost($altShippingCost = null)
    {
        // validation for constraint: float
        if (!is_null($altShippingCost) && !(is_float($altShippingCost) || is_numeric($altShippingCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($altShippingCost, true), gettype($altShippingCost)), __LINE__);
        }
        $this->altShippingCost = $altShippingCost;
        return $this;
    }
    /**
     * Get timeTaxCode value
     * @return \StructType\RecordRef|null
     */
    public function getTimeTaxCode()
    {
        return $this->timeTaxCode;
    }
    /**
     * Set timeTaxCode value
     * @param \StructType\RecordRef $timeTaxCode
     * @return \StructType\CashSale
     */
    public function setTimeTaxCode(\StructType\RecordRef $timeTaxCode = null)
    {
        $this->timeTaxCode = $timeTaxCode;
        return $this;
    }
    /**
     * Get altHandlingCost value
     * @return float|null
     */
    public function getAltHandlingCost()
    {
        return $this->altHandlingCost;
    }
    /**
     * Set altHandlingCost value
     * @param float $altHandlingCost
     * @return \StructType\CashSale
     */
    public function setAltHandlingCost($altHandlingCost = null)
    {
        // validation for constraint: float
        if (!is_null($altHandlingCost) && !(is_float($altHandlingCost) || is_numeric($altHandlingCost))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($altHandlingCost, true), gettype($altHandlingCost)), __LINE__);
        }
        $this->altHandlingCost = $altHandlingCost;
        return $this;
    }
    /**
     * Get total value
     * @return float|null
     */
    public function getTotal()
    {
        return $this->total;
    }
    /**
     * Set total value
     * @param float $total
     * @return \StructType\CashSale
     */
    public function setTotal($total = null)
    {
        // validation for constraint: float
        if (!is_null($total) && !(is_float($total) || is_numeric($total))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($total, true), gettype($total)), __LINE__);
        }
        $this->total = $total;
        return $this;
    }
    /**
     * Get timeDiscTax1Amt value
     * @return float|null
     */
    public function getTimeDiscTax1Amt()
    {
        return $this->timeDiscTax1Amt;
    }
    /**
     * Set timeDiscTax1Amt value
     * @param float $timeDiscTax1Amt
     * @return \StructType\CashSale
     */
    public function setTimeDiscTax1Amt($timeDiscTax1Amt = null)
    {
        // validation for constraint: float
        if (!is_null($timeDiscTax1Amt) && !(is_float($timeDiscTax1Amt) || is_numeric($timeDiscTax1Amt))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($timeDiscTax1Amt, true), gettype($timeDiscTax1Amt)), __LINE__);
        }
        $this->timeDiscTax1Amt = $timeDiscTax1Amt;
        return $this;
    }
    /**
     * Get ccSecurityCode value
     * @return string|null
     */
    public function getCcSecurityCode()
    {
        return $this->ccSecurityCode;
    }
    /**
     * Set ccSecurityCode value
     * @param string $ccSecurityCode
     * @return \StructType\CashSale
     */
    public function setCcSecurityCode($ccSecurityCode = null)
    {
        // validation for constraint: string
        if (!is_null($ccSecurityCode) && !is_string($ccSecurityCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($ccSecurityCode, true), gettype($ccSecurityCode)), __LINE__);
        }
        $this->ccSecurityCode = $ccSecurityCode;
        return $this;
    }
    /**
     * Get timeTaxRate2 value
     * @return float|null
     */
    public function getTimeTaxRate2()
    {
        return $this->timeTaxRate2;
    }
    /**
     * Set timeTaxRate2 value
     * @param float $timeTaxRate2
     * @return \StructType\CashSale
     */
    public function setTimeTaxRate2($timeTaxRate2 = null)
    {
        // validation for constraint: float
        if (!is_null($timeTaxRate2) && !(is_float($timeTaxRate2) || is_numeric($timeTaxRate2))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($timeTaxRate2, true), gettype($timeTaxRate2)), __LINE__);
        }
        $this->timeTaxRate2 = $timeTaxRate2;
        return $this;
    }
    /**
     * Get ccSecurityCodeMatch value
     * @return string|null
     */
    public function getCcSecurityCodeMatch()
    {
        return $this->ccSecurityCodeMatch;
    }
    /**
     * Set ccSecurityCodeMatch value
     * @uses \EnumType\AvsMatchCode::valueIsValid()
     * @uses \EnumType\AvsMatchCode::getValidValues()
     * @throws \InvalidArgumentException
     * @param string $ccSecurityCodeMatch
     * @return \StructType\CashSale
     */
    public function setCcSecurityCodeMatch($ccSecurityCodeMatch = null)
    {
        // validation for constraint: enumeration
        if (!\EnumType\AvsMatchCode::valueIsValid($ccSecurityCodeMatch)) {
            throw new \InvalidArgumentException(sprintf('Invalid value(s) %s, please use one of: %s from enumeration class \EnumType\AvsMatchCode', is_array($ccSecurityCodeMatch) ? implode(', ', $ccSecurityCodeMatch) : var_export($ccSecurityCodeMatch, true), implode(', ', \EnumType\AvsMatchCode::getValidValues())), __LINE__);
        }
        $this->ccSecurityCodeMatch = $ccSecurityCodeMatch;
        return $this;
    }
    /**
     * Get chargeIt value
     * @return bool|null
     */
    public function getChargeIt()
    {
        return $this->chargeIt;
    }
    /**
     * Set chargeIt value
     * @param bool $chargeIt
     * @return \StructType\CashSale
     */
    public function setChargeIt($chargeIt = null)
    {
        // validation for constraint: boolean
        if (!is_null($chargeIt) && !is_bool($chargeIt)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($chargeIt, true), gettype($chargeIt)), __LINE__);
        }
        $this->chargeIt = $chargeIt;
        return $this;
    }
    /**
     * Get debitCardIssueNo value
     * @return string|null
     */
    public function getDebitCardIssueNo()
    {
        return $this->debitCardIssueNo;
    }
    /**
     * Set debitCardIssueNo value
     * @param string $debitCardIssueNo
     * @return \StructType\CashSale
     */
    public function setDebitCardIssueNo($debitCardIssueNo = null)
    {
        // validation for constraint: string
        if (!is_null($debitCardIssueNo) && !is_string($debitCardIssueNo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($debitCardIssueNo, true), gettype($debitCardIssueNo)), __LINE__);
        }
        $this->debitCardIssueNo = $debitCardIssueNo;
        return $this;
    }
    /**
     * Get threeDStatusCode value
     * @return string|null
     */
    public function getThreeDStatusCode()
    {
        return $this->threeDStatusCode;
    }
    /**
     * Set threeDStatusCode value
     * @param string $threeDStatusCode
     * @return \StructType\CashSale
     */
    public function setThreeDStatusCode($threeDStatusCode = null)
    {
        // validation for constraint: string
        if (!is_null($threeDStatusCode) && !is_string($threeDStatusCode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($threeDStatusCode, true), gettype($threeDStatusCode)), __LINE__);
        }
        $this->threeDStatusCode = $threeDStatusCode;
        return $this;
    }
    /**
     * Get pnRefNum value
     * @return string|null
     */
    public function getPnRefNum()
    {
        return $this->pnRefNum;
    }
    /**
     * Set pnRefNum value
     * @param string $pnRefNum
     * @return \StructType\CashSale
     */
    public function setPnRefNum($pnRefNum = null)
    {
        // validation for constraint: string
        if (!is_null($pnRefNum) && !is_string($pnRefNum)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($pnRefNum, true), gettype($pnRefNum)), __LINE__);
        }
        $this->pnRefNum = $pnRefNum;
        return $this;
    }
    /**
     * Get paypalAuthId value
     * @return string|null
     */
    public function getPaypalAuthId()
    {
        return $this->paypalAuthId;
    }
    /**
     * Set paypalAuthId value
     * @param string $paypalAuthId
     * @return \StructType\CashSale
     */
    public function setPaypalAuthId($paypalAuthId = null)
    {
        // validation for constraint: string
        if (!is_null($paypalAuthId) && !is_string($paypalAuthId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($paypalAuthId, true), gettype($paypalAuthId)), __LINE__);
        }
        $this->paypalAuthId = $paypalAuthId;
        return $this;
    }
    /**
     * Get status value
     * @return string|null
     */
    public function getStatus()
    {
        return $this->status;
    }
    /**
     * Set status value
     * @param string $status
     * @return \StructType\CashSale
     */
    public function setStatus($status = null)
    {
        // validation for constraint: string
        if (!is_null($status) && !is_string($status)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($status, true), gettype($status)), __LINE__);
        }
        $this->status = $status;
        return $this;
    }
    /**
     * Get paypalProcess value
     * @return bool|null
     */
    public function getPaypalProcess()
    {
        return $this->paypalProcess;
    }
    /**
     * Set paypalProcess value
     * @param bool $paypalProcess
     * @return \StructType\CashSale
     */
    public function setPaypalProcess($paypalProcess = null)
    {
        // validation for constraint: boolean
        if (!is_null($paypalProcess) && !is_bool($paypalProcess)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($paypalProcess, true), gettype($paypalProcess)), __LINE__);
        }
        $this->paypalProcess = $paypalProcess;
        return $this;
    }
    /**
     * Get job value
     * @return \StructType\RecordRef|null
     */
    public function getJob()
    {
        return $this->job;
    }
    /**
     * Set job value
     * @param \StructType\RecordRef $job
     * @return \StructType\CashSale
     */
    public function setJob(\StructType\RecordRef $job = null)
    {
        $this->job = $job;
        return $this;
    }
    /**
     * Get billingSchedule value
     * @return \StructType\RecordRef|null
     */
    public function getBillingSchedule()
    {
        return $this->billingSchedule;
    }
    /**
     * Set billingSchedule value
     * @param \StructType\RecordRef $billingSchedule
     * @return \StructType\CashSale
     */
    public function setBillingSchedule(\StructType\RecordRef $billingSchedule = null)
    {
        $this->billingSchedule = $billingSchedule;
        return $this;
    }
    /**
     * Get email value
     * @return string|null
     */
    public function getEmail()
    {
        return $this->email;
    }
    /**
     * Set email value
     * @param string $email
     * @return \StructType\CashSale
     */
    public function setEmail($email = null)
    {
        // validation for constraint: string
        if (!is_null($email) && !is_string($email)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($email, true), gettype($email)), __LINE__);
        }
        $this->email = $email;
        return $this;
    }
    /**
     * Get tax2Total value
     * @return float|null
     */
    public function getTax2Total()
    {
        return $this->tax2Total;
    }
    /**
     * Set tax2Total value
     * @param float $tax2Total
     * @return \StructType\CashSale
     */
    public function setTax2Total($tax2Total = null)
    {
        // validation for constraint: float
        if (!is_null($tax2Total) && !(is_float($tax2Total) || is_numeric($tax2Total))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($tax2Total, true), gettype($tax2Total)), __LINE__);
        }
        $this->tax2Total = $tax2Total;
        return $this;
    }
    /**
     * Get validFrom value
     * @return string|null
     */
    public function getValidFrom()
    {
        return $this->validFrom;
    }
    /**
     * Set validFrom value
     * @param string $validFrom
     * @return \StructType\CashSale
     */
    public function setValidFrom($validFrom = null)
    {
        // validation for constraint: string
        if (!is_null($validFrom) && !is_string($validFrom)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($validFrom, true), gettype($validFrom)), __LINE__);
        }
        $this->validFrom = $validFrom;
        return $this;
    }
    /**
     * Get vatRegNum value
     * @return string|null
     */
    public function getVatRegNum()
    {
        return $this->vatRegNum;
    }
    /**
     * Set vatRegNum value
     * @param string $vatRegNum
     * @return \StructType\CashSale
     */
    public function setVatRegNum($vatRegNum = null)
    {
        // validation for constraint: string
        if (!is_null($vatRegNum) && !is_string($vatRegNum)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($vatRegNum, true), gettype($vatRegNum)), __LINE__);
        }
        $this->vatRegNum = $vatRegNum;
        return $this;
    }
    /**
     * Get giftCertApplied value
     * @return float|null
     */
    public function getGiftCertApplied()
    {
        return $this->giftCertApplied;
    }
    /**
     * Set giftCertApplied value
     * @param float $giftCertApplied
     * @return \StructType\CashSale
     */
    public function setGiftCertApplied($giftCertApplied = null)
    {
        // validation for constraint: float
        if (!is_null($giftCertApplied) && !(is_float($giftCertApplied) || is_numeric($giftCertApplied))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($giftCertApplied, true), gettype($giftCertApplied)), __LINE__);
        }
        $this->giftCertApplied = $giftCertApplied;
        return $this;
    }
    /**
     * Get tranIsVsoeBundle value
     * @return bool|null
     */
    public function getTranIsVsoeBundle()
    {
        return $this->tranIsVsoeBundle;
    }
    /**
     * Set tranIsVsoeBundle value
     * @param bool $tranIsVsoeBundle
     * @return \StructType\CashSale
     */
    public function setTranIsVsoeBundle($tranIsVsoeBundle = null)
    {
        // validation for constraint: boolean
        if (!is_null($tranIsVsoeBundle) && !is_bool($tranIsVsoeBundle)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($tranIsVsoeBundle, true), gettype($tranIsVsoeBundle)), __LINE__);
        }
        $this->tranIsVsoeBundle = $tranIsVsoeBundle;
        return $this;
    }
    /**
     * Get vsoeAutoCalc value
     * @return bool|null
     */
    public function getVsoeAutoCalc()
    {
        return $this->vsoeAutoCalc;
    }
    /**
     * Set vsoeAutoCalc value
     * @param bool $vsoeAutoCalc
     * @return \StructType\CashSale
     */
    public function setVsoeAutoCalc($vsoeAutoCalc = null)
    {
        // validation for constraint: boolean
        if (!is_null($vsoeAutoCalc) && !is_bool($vsoeAutoCalc)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($vsoeAutoCalc, true), gettype($vsoeAutoCalc)), __LINE__);
        }
        $this->vsoeAutoCalc = $vsoeAutoCalc;
        return $this;
    }
    /**
     * Get syncPartnerTeams value
     * @return bool|null
     */
    public function getSyncPartnerTeams()
    {
        return $this->syncPartnerTeams;
    }
    /**
     * Set syncPartnerTeams value
     * @param bool $syncPartnerTeams
     * @return \StructType\CashSale
     */
    public function setSyncPartnerTeams($syncPartnerTeams = null)
    {
        // validation for constraint: boolean
        if (!is_null($syncPartnerTeams) && !is_bool($syncPartnerTeams)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($syncPartnerTeams, true), gettype($syncPartnerTeams)), __LINE__);
        }
        $this->syncPartnerTeams = $syncPartnerTeams;
        return $this;
    }
    /**
     * Get salesTeamList value
     * @return \StructType\CashSaleSalesTeamList|null
     */
    public function getSalesTeamList()
    {
        return $this->salesTeamList;
    }
    /**
     * Set salesTeamList value
     * @param \StructType\CashSaleSalesTeamList $salesTeamList
     * @return \StructType\CashSale
     */
    public function setSalesTeamList(\StructType\CashSaleSalesTeamList $salesTeamList = null)
    {
        $this->salesTeamList = $salesTeamList;
        return $this;
    }
    /**
     * Get partnersList value
     * @return \StructType\CashSalePartnersList|null
     */
    public function getPartnersList()
    {
        return $this->partnersList;
    }
    /**
     * Set partnersList value
     * @param \StructType\CashSalePartnersList $partnersList
     * @return \StructType\CashSale
     */
    public function setPartnersList(\StructType\CashSalePartnersList $partnersList = null)
    {
        $this->partnersList = $partnersList;
        return $this;
    }
    /**
     * Get itemList value
     * @return \StructType\CashSaleItemList|null
     */
    public function getItemList()
    {
        return $this->itemList;
    }
    /**
     * Set itemList value
     * @param \StructType\CashSaleItemList $itemList
     * @return \StructType\CashSale
     */
    public function setItemList(\StructType\CashSaleItemList $itemList = null)
    {
        $this->itemList = $itemList;
        return $this;
    }
    /**
     * Get accountingBookDetailList value
     * @return \StructType\AccountingBookDetailList|null
     */
    public function getAccountingBookDetailList()
    {
        return $this->accountingBookDetailList;
    }
    /**
     * Set accountingBookDetailList value
     * @param \StructType\AccountingBookDetailList $accountingBookDetailList
     * @return \StructType\CashSale
     */
    public function setAccountingBookDetailList(\StructType\AccountingBookDetailList $accountingBookDetailList = null)
    {
        $this->accountingBookDetailList = $accountingBookDetailList;
        return $this;
    }
    /**
     * Get itemCostList value
     * @return \StructType\CashSaleItemCostList|null
     */
    public function getItemCostList()
    {
        return $this->itemCostList;
    }
    /**
     * Set itemCostList value
     * @param \StructType\CashSaleItemCostList $itemCostList
     * @return \StructType\CashSale
     */
    public function setItemCostList(\StructType\CashSaleItemCostList $itemCostList = null)
    {
        $this->itemCostList = $itemCostList;
        return $this;
    }
    /**
     * Get giftCertRedemptionList value
     * @return \StructType\GiftCertRedemptionList|null
     */
    public function getGiftCertRedemptionList()
    {
        return $this->giftCertRedemptionList;
    }
    /**
     * Set giftCertRedemptionList value
     * @param \StructType\GiftCertRedemptionList $giftCertRedemptionList
     * @return \StructType\CashSale
     */
    public function setGiftCertRedemptionList(\StructType\GiftCertRedemptionList $giftCertRedemptionList = null)
    {
        $this->giftCertRedemptionList = $giftCertRedemptionList;
        return $this;
    }
    /**
     * Get promotionsList value
     * @return \StructType\PromotionsList|null
     */
    public function getPromotionsList()
    {
        return $this->promotionsList;
    }
    /**
     * Set promotionsList value
     * @param \StructType\PromotionsList $promotionsList
     * @return \StructType\CashSale
     */
    public function setPromotionsList(\StructType\PromotionsList $promotionsList = null)
    {
        $this->promotionsList = $promotionsList;
        return $this;
    }
    /**
     * Get expCostList value
     * @return \StructType\CashSaleExpCostList|null
     */
    public function getExpCostList()
    {
        return $this->expCostList;
    }
    /**
     * Set expCostList value
     * @param \StructType\CashSaleExpCostList $expCostList
     * @return \StructType\CashSale
     */
    public function setExpCostList(\StructType\CashSaleExpCostList $expCostList = null)
    {
        $this->expCostList = $expCostList;
        return $this;
    }
    /**
     * Get timeList value
     * @return \StructType\CashSaleTimeList|null
     */
    public function getTimeList()
    {
        return $this->timeList;
    }
    /**
     * Set timeList value
     * @param \StructType\CashSaleTimeList $timeList
     * @return \StructType\CashSale
     */
    public function setTimeList(\StructType\CashSaleTimeList $timeList = null)
    {
        $this->timeList = $timeList;
        return $this;
    }
    /**
     * Get shipGroupList value
     * @return \StructType\CashSaleShipGroupList|null
     */
    public function getShipGroupList()
    {
        return $this->shipGroupList;
    }
    /**
     * Set shipGroupList value
     * @param \StructType\CashSaleShipGroupList $shipGroupList
     * @return \StructType\CashSale
     */
    public function setShipGroupList(\StructType\CashSaleShipGroupList $shipGroupList = null)
    {
        $this->shipGroupList = $shipGroupList;
        return $this;
    }
    /**
     * Get taxDetailsList value
     * @return \StructType\TaxDetailsList|null
     */
    public function getTaxDetailsList()
    {
        return $this->taxDetailsList;
    }
    /**
     * Set taxDetailsList value
     * @param \StructType\TaxDetailsList $taxDetailsList
     * @return \StructType\CashSale
     */
    public function setTaxDetailsList(\StructType\TaxDetailsList $taxDetailsList = null)
    {
        $this->taxDetailsList = $taxDetailsList;
        return $this;
    }
    /**
     * Get customFieldList value
     * @return \StructType\CustomFieldList|null
     */
    public function getCustomFieldList()
    {
        return $this->customFieldList;
    }
    /**
     * Set customFieldList value
     * @param \StructType\CustomFieldList $customFieldList
     * @return \StructType\CashSale
     */
    public function setCustomFieldList(\StructType\CustomFieldList $customFieldList = null)
    {
        $this->customFieldList = $customFieldList;
        return $this;
    }
    /**
     * Get internalId value
     * @return string|null
     */
    public function getInternalId()
    {
        return $this->internalId;
    }
    /**
     * Set internalId value
     * @param string $internalId
     * @return \StructType\CashSale
     */
    public function setInternalId($internalId = null)
    {
        // validation for constraint: string
        if (!is_null($internalId) && !is_string($internalId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($internalId, true), gettype($internalId)), __LINE__);
        }
        $this->internalId = $internalId;
        return $this;
    }
    /**
     * Get externalId value
     * @return string|null
     */
    public function getExternalId()
    {
        return $this->externalId;
    }
    /**
     * Set externalId value
     * @param string $externalId
     * @return \StructType\CashSale
     */
    public function setExternalId($externalId = null)
    {
        // validation for constraint: string
        if (!is_null($externalId) && !is_string($externalId)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($externalId, true), gettype($externalId)), __LINE__);
        }
        $this->externalId = $externalId;
        return $this;
    }
}
