public static SalesReceipt ToQBSalesReceipt(this Intuit.Ipp.Data.SalesReceipt salesReceipt)
        {
            var qbSalesReceipt = new SalesReceipt
            {
                Id                   = salesReceipt.Id,
                DocNumber            = salesReceipt.DocNumber,
                Currency             = salesReceipt.CurrencyRef != null ? salesReceipt.CurrencyRef.Value : PredefinedValues.NotAvailable,
                TotalAmt             = salesReceipt.TotalAmt,
                SyncToken            = salesReceipt.SyncToken,
                Balance              = salesReceipt.Balance,
                Line                 = salesReceipt.Line.Select(x => x.ToQBAccessSalesReceiptLine()).ToList(),
                PONumber             = salesReceipt.PONumber,
                ShipCity             = salesReceipt.ShipAddr != null ? salesReceipt.ShipAddr.City : PredefinedValues.NotAvailable,
                ShipCountry          = salesReceipt.ShipAddr != null ? salesReceipt.ShipAddr.Country : PredefinedValues.NotAvailable,
                ShipCountryCode      = salesReceipt.ShipAddr != null ? salesReceipt.ShipAddr.CountryCode : PredefinedValues.NotAvailable,
                ShipPostalCode       = salesReceipt.ShipAddr != null ? salesReceipt.ShipAddr.PostalCode : PredefinedValues.NotAvailable,
                ShipPostalCodeSuffix = salesReceipt.ShipAddr != null ? salesReceipt.ShipAddr.PostalCodeSuffix : PredefinedValues.NotAvailable,
                ShipDate             = salesReceipt.ShipDate,
                CreateTime           = salesReceipt.MetaData.CreateTime,
                TrackingNum          = salesReceipt.TrackingNum,
                CustomerName         = (salesReceipt.CustomerRef != null) ? salesReceipt.CustomerRef.name : null,
                CustomerValue        = (salesReceipt.CustomerRef != null) ? salesReceipt.CustomerRef.Value : null,
                PrivateNote          = salesReceipt.PrivateNote,
            };

            return(qbSalesReceipt);
        }
        public static Intuit.Ipp.Data.SalesReceipt ToIppSaleReceipt(this SaleReceipt saleReceipt)
        {
            var ippSaleReceipt = new Intuit.Ipp.Data.SalesReceipt
            {
                DocNumber        = saleReceipt.DocNumber,
                Line             = saleReceipt.Line.Select(x => x.ToIppSaleReceiptLine()).ToArray(),
                TxnDate          = saleReceipt.TnxDate,
                TxnDateSpecified = true,
                CustomerRef      = new ReferenceType {
                    Value = saleReceipt.CustomerValue, name = saleReceipt.CustomerName
                },
                CurrencyRef = new ReferenceType {
                    name = "United States Dollar", Value = "USD"
                },
                PrivateNote = saleReceipt.PrivateNote,
                CustomField = (saleReceipt.CustomFields ?? Enumerable.Empty <Models.Services.QuickBooksOnlineServicesSdk.CreateSaleReceipts.CustomField>()).Select(x => x.ToQBCustomField()).TakeWhile((cf, i) => i < 2).ToArray(),
            };

            return(ippSaleReceipt);
        }