License | Maintainer : |
---|---|
Stability | Portability : |
Safe Haskell | None |
Language | Haskell2010 |
- type Logger = LoggerSet
- type CallbackURL = String
- newtype OAuthVerifier = OAuthVerifier {}
- data AppConfig = AppConfig {}
- data APIConfig = APIConfig {}
- type APIEnv = (?apiConfig :: APIConfig, AppEnv, NetworkEnv)
- type AppEnv = (?appConfig :: AppConfig, NetworkEnv)
- type NetworkEnv = (?manager :: Manager, ?logger :: Logger)
- data OAuthToken = OAuthToken {}
- data family QuickBooksResponse a
- type QuickBooksQuery a = QuickBooksRequest (QuickBooksResponse a)
- type QuickBooksOAuthQuery a = QuickBooksOAuthRequest (QuickBooksResponse a)
- data QuickBooksOAuthRequest a where
- data QuickBooksRequest a where
- CreateInvoice :: Invoice -> QuickBooksQuery Invoice
- ReadInvoice :: InvoiceId -> QuickBooksQuery Invoice
- UpdateInvoice :: Invoice -> QuickBooksQuery Invoice
- DeleteInvoice :: InvoiceId -> SyncToken -> QuickBooksQuery DeletedInvoice
- SendInvoice :: InvoiceId -> EmailAddress -> QuickBooksQuery Invoice
- QueryCustomer :: Text -> QuickBooksQuery [Customer]
- QueryItem :: Text -> QuickBooksQuery [Item]
- newtype InvoiceId = InvoiceId {
- unInvoiceId :: Text
- newtype LineId = LineId {}
- newtype SyncToken = SyncToken {
- unSyncToken :: Text
- data DescriptionLineDetail = DescriptionLineDetail {}
- data DiscountLineDetail = DiscountLineDetail {}
- data SalesItemLineDetail = SalesItemLineDetail {
- salesItemLineDetailItemRef :: !(Maybe ItemRef)
- salesItemLineDetailClassRef :: !(Maybe ClassRef)
- salesItemLineDetailUnitPrice :: !(Maybe Double)
- salesItemLineDetailRatePercent :: !(Maybe Double)
- salesItemLineDetailPriceLevelRef :: !(Maybe PriceLevelRef)
- salesItemLineDetailMarkupInfo :: !(Maybe Text)
- salesItemLineDetailQty :: !(Maybe Double)
- salesItemLineDetailTaxCodeRef :: !(Maybe TaxCodeRef)
- salesItemLineDetailServiceData :: !(Maybe Text)
- salesItemLineDetailTaxInclusiveAmt :: !(Maybe Double)
- salesItemLineDetail :: ItemRef -> SalesItemLineDetail
- data SubTotalLineDetail = SubTotalLineDetail {}
- data Line = Line {
- lineId :: !(Maybe LineId)
- lineLineNum :: !(Maybe Double)
- lineDescription :: !(Maybe Text)
- lineAmount :: !(Maybe Double)
- lineLinkedTxn :: !(Maybe [LinkedTxn])
- lineDetailType :: !Text
- lineDescriptionLineDetail :: !(Maybe DescriptionLineDetail)
- lineDiscountLineDetail :: !(Maybe DiscountLineDetail)
- lineSalesItemLineDetail :: !(Maybe SalesItemLineDetail)
- lineSubTotalLineDetail :: !(Maybe SubTotalLineDetail)
- lineCustomField :: !(Maybe [CustomField])
- salesItemLine :: Double -> SalesItemLineDetail -> Line
- emptySalesItemLine :: Line
- newtype DeletedInvoiceId = DeletedInvoiceId {}
- data DeletedInvoice = DeletedInvoice {}
- data Reference = Reference {
- referenceName :: !(Maybe Text)
- referenceType :: !(Maybe Text)
- referenceValue :: !Text
- reference :: Text -> Reference
- type ClassRef = Reference
- type CurrencyRef = Reference
- type CustomerRef = Reference
- type DepartmentRef = Reference
- type DepositToAccountRef = Reference
- type DiscountAccountRef = Reference
- type DiscountRef = Reference
- type ItemRef = Reference
- type PriceLevelRef = Reference
- type SalesTermRef = Reference
- type ShipMethodRef = Reference
- type TaxCodeRef = Reference
- type TxnTaxCodeRef = Reference
- data ModificationMetaData = ModificationMetaData {}
- data TelephoneNumber = TelephoneNumber {}
- data WebSiteAddress = WebAddress {}
- data PhysicalAddress = PhysicalAddress {
- physicalAddressId :: !Text
- physicalAddressLine1 :: !Text
- physicalAddressLine2 :: !(Maybe Text)
- physicalAddressLine3 :: !(Maybe Text)
- physicalAddressLine4 :: !(Maybe Text)
- physicalAddressLine5 :: !(Maybe Text)
- physicalAddressCity :: !Text
- physicalAddressCountry :: !(Maybe Text)
- physicalAddressCountrySubDivisionCode :: !Text
- physicalAddressPostalCode :: !Text
- physicalAddressNote :: !(Maybe Text)
- physicalAddressLat :: !(Maybe Text)
- physicalAddressLong :: !(Maybe Text)
- type BillAddr = PhysicalAddress
- type ShipAddr = PhysicalAddress
- data EmailAddress = EmailAddress {
- emailAddress :: !Text
- data TxnTaxDetail = TxnTaxDetail {}
- data DeliveryInfo = DeliveryInfo {}
- data LinkedTxn = LinkedTxn {
- linkedTxnId :: !(Maybe Text)
- linkedTxnType :: !(Maybe Text)
- linkedTxnLineId :: !(Maybe Text)
- data CustomField = CustomField {}
- data CustomFieldType
- data GlobalTaxModel
- data Invoice = Invoice {
- invoiceId :: !(Maybe InvoiceId)
- invoiceSyncToken :: !(Maybe SyncToken)
- invoiceMetaData :: !(Maybe ModificationMetaData)
- invoiceCustomField :: !(Maybe [CustomField])
- invoiceDocNumber :: !(Maybe Text)
- invoiceTxnDate :: !(Maybe Text)
- invoiceDepartmentRef :: !(Maybe DepartmentRef)
- invoiceCurrencyRef :: !(Maybe CurrencyRef)
- invoiceExchangeRate :: !(Maybe Double)
- invoicePrivateNote :: !(Maybe Text)
- invoiceLinkedTxn :: !(Maybe [LinkedTxn])
- invoiceLine :: ![Line]
- invoiceTxnTaxDetail :: !(Maybe TxnTaxDetail)
- invoiceCustomerRef :: !CustomerRef
- invoiceCustomerMemo :: !(Maybe Text)
- invoiceBillAddr :: !(Maybe BillAddr)
- invoiceShipAddr :: !(Maybe ShipAddr)
- invoiceClassRef :: !(Maybe ClassRef)
- invoiceSalesTermRef :: !(Maybe SalesTermRef)
- invoiceDueDate :: !(Maybe Text)
- invoiceGlobalTaxCalculation :: !(Maybe GlobalTaxModel)
- invoiceShipMethodRef :: !(Maybe ShipMethodRef)
- invoiceShipDate :: !(Maybe Text)
- invoiceTrackingNum :: !(Maybe Text)
- invoiceTotalAmt :: !(Maybe Double)
- invoiceHomeTotalAmt :: !(Maybe Double)
- invoiceApplyTaxAfterDiscount :: !(Maybe Bool)
- invoicePrintStatus :: !(Maybe Text)
- invoiceEmailStatus :: !(Maybe Text)
- invoiceBillEmail :: !(Maybe EmailAddress)
- invoiceDeliveryInfo :: !(Maybe DeliveryInfo)
- invoiceBalance :: !(Maybe Double)
- invoiceDepositToAccountRef :: !(Maybe DepositToAccountRef)
- invoiceDeposit :: !(Maybe Double)
- invoiceAllowIPNPayment :: !(Maybe Bool)
- invoiceDomain :: !(Maybe Text)
- invoiceSparse :: !(Maybe Bool)
- defaultInvoice :: [Line] -> CustomerRef -> Invoice
- data InvoiceResponse = InvoiceResponse {}
- data CustomerResponse = CustomerResponse {}
- data Customer = Customer {
- customerId :: !(Maybe Text)
- customerSyncToken :: !(Maybe SyncToken)
- customerMetaData :: !(Maybe ModificationMetaData)
- customerTitle :: !(Maybe Text)
- customerGivenName :: !(Maybe Text)
- customerMiddleName :: !(Maybe Text)
- customerFamilyName :: !(Maybe Text)
- customerSuffix :: !(Maybe Text)
- customerFullyQualifiedName :: !(Maybe Text)
- customerCompanyName :: !(Maybe Text)
- customerDisplayName :: !Text
- customerPrintOnCheckName :: !(Maybe Text)
- customerActive :: !(Maybe Bool)
- customerPrimaryPhone :: !(Maybe TelephoneNumber)
- customerAlternatePhone :: !(Maybe TelephoneNumber)
- customerMobile :: !(Maybe TelephoneNumber)
- customerFax :: !(Maybe TelephoneNumber)
- customerPrimaryEmailAddress :: !(Maybe EmailAddress)
- customerWebAddr :: !(Maybe WebSiteAddress)
- customerDefaultTaxCodeRef :: !(Maybe TaxCodeRef)
- customerTaxable :: !(Maybe Bool)
- customerBillAddr :: !(Maybe BillAddr)
- customerShipAddr :: !(Maybe ShipAddr)
- customerNotes :: !(Maybe Text)
- customerJob :: !(Maybe Bool)
- customerBillWithParent :: !(Maybe Bool)
- customerParentRef :: !(Maybe CustomerRef)
- customerLevel :: !(Maybe Int)
- customerSalesTermRef :: !(Maybe SalesTermRef)
- customerPaymentMethodRef :: !(Maybe Reference)
- customerBalance :: !(Maybe Double)
- customerOpenBalanceDate :: !(Maybe Text)
- customerBalanceWithJobs :: !(Maybe Double)
- customerCurrencyRef :: !(Maybe CurrencyRef)
- customerPreferredDeliveryMethod :: !(Maybe Text)
- customerResaleNum :: !(Maybe Text)
- data ItemResponse = ItemResponse {
- itemResponseItem :: !Item
- data Item = Item {
- itemId :: !(Maybe Text)
- itemSyncToken :: !(Maybe SyncToken)
- itemMetaData :: !(Maybe ModificationMetaData)
- itemName :: !Text
- itemDescription :: !(Maybe Text)
- itemActive :: !(Maybe Bool)
- itemSubItem :: !(Maybe Bool)
- itemParentRef :: !(Maybe ItemRef)
- itemLevel :: !(Maybe Int)
- itemFullyQualifiedName :: !(Maybe String)
- itemTaxable :: !(Maybe Bool)
- itemSalesTaxInclusive :: !(Maybe Bool)
- itemUnitPrice :: !(Maybe Double)
- itemType :: !(Maybe Text)
- itemIncomeAccountRef :: !(Maybe Reference)
- itemPurchaseDesc :: !(Maybe String)
- itemPurchaseTaxInclusive :: !(Maybe Bool)
- itemPurchaseCost :: !(Maybe Double)
- itemExpenseAccountRef :: !(Maybe Reference)
- itemAssetAccountRef :: !(Maybe Reference)
- itemTrackQtyOnHand :: !(Maybe Bool)
- itemQtyOnHand :: !(Maybe Double)
- itemSalesTaxCodeRef :: !(Maybe Reference)
- itemPurchaseTaxCodeRef :: !(Maybe Reference)
- itemInvStartDate :: !(Maybe Text)
Documentation
type CallbackURL = String Source
newtype OAuthVerifier Source
QuickBooks Application Keys
APIConfig | |
|
type APIEnv = (?apiConfig :: APIConfig, AppEnv, NetworkEnv) Source
type AppEnv = (?appConfig :: AppConfig, NetworkEnv) Source
type NetworkEnv = (?manager :: Manager, ?logger :: Logger) Source
data OAuthToken Source
A request or access OAuth token.
data family QuickBooksResponse a Source
type QuickBooksQuery a = QuickBooksRequest (QuickBooksResponse a) Source
data QuickBooksOAuthRequest a where Source
data QuickBooksRequest a where Source
CreateInvoice :: Invoice -> QuickBooksQuery Invoice | |
ReadInvoice :: InvoiceId -> QuickBooksQuery Invoice | |
UpdateInvoice :: Invoice -> QuickBooksQuery Invoice | |
DeleteInvoice :: InvoiceId -> SyncToken -> QuickBooksQuery DeletedInvoice | |
SendInvoice :: InvoiceId -> EmailAddress -> QuickBooksQuery Invoice | |
QueryCustomer :: Text -> QuickBooksQuery [Customer] | |
QueryItem :: Text -> QuickBooksQuery [Item] |
data SalesItemLineDetail Source
Details of a sales item line.
In order to create a sales item line detail, use salesItemLineDetail
.
salesItemLineDetail :: ItemRef -> SalesItemLineDetail Source
Create a sales item line detail with a reference to an item.
Example:
>>>
let aSalesItemLineDetail = salesItemLineDetail ((reference "1") {referenceName = Just "Services"})
>>>
salesItemLineDetailItemRef aSalesItemLineDetail
Just (Reference {referenceName = Just "Services", referenceType = Nothing, referenceValue = "1"})
data SubTotalLineDetail Source
Details of a subtotal line.
An individual line item of a transaction.
Line | |
|
salesItemLine :: Double -> SalesItemLineDetail -> Line Source
Create a sales item line with amount and details.
Example:
>>>
let aSalesItemLineDetail = salesItemLineDetail ((reference "1") {referenceName = Just "Services"})
>>>
let aSalesItemLine = salesItemLine 100.0 aSalesItemLineDetail
emptySalesItemLine :: Line Source
if you are using a salesItemLineDetail that has a Qty and a price it generates amount automatically
newtype DeletedInvoiceId Source
A reference.
In order to create a reference, use reference
.
Reference | |
|
reference :: Text -> Reference Source
Create a reference with a value.
Example:
>>>
reference "21"
Reference {referenceName = Nothing, referenceType = Nothing, referenceValue = "21"}
type CurrencyRef = Reference Source
type CustomerRef = Reference Source
A reference to a customer or a job.
Example:
>>>
(reference "21") {referenceName = Just "John Doe"} :: CustomerRef
Reference {referenceName = Just "John Doe", referenceType = Nothing, referenceValue = "21"}
type DepartmentRef = Reference Source
type DepositToAccountRef = Reference Source
type DiscountAccountRef = Reference Source
type DiscountRef = Reference Source
type PriceLevelRef = Reference Source
type SalesTermRef = Reference Source
type ShipMethodRef = Reference Source
type TaxCodeRef = Reference Source
type TxnTaxCodeRef = Reference Source
data TelephoneNumber Source
data WebSiteAddress Source
data PhysicalAddress Source
PhysicalAddress | |
|
type BillAddr = PhysicalAddress Source
type ShipAddr = PhysicalAddress Source
data EmailAddress Source
data DeliveryInfo Source
LinkedTxn | |
|
data CustomField Source
CustomField | |
|
data CustomFieldType Source
data GlobalTaxModel Source
An invoice transaction entity, that is, a sales form where the customer pays for a product or service later.
Business rules:
- An invoice must have at least one
Line
that describes an item. - An invoice must have a
CustomerRef
.
In order to create an invoice, use defaultInvoice
.
:: [Line] | The line items of a transaction |
-> CustomerRef | Reference to a customer or a job |
-> Invoice |
Create an Invoice
with the minimum elements.
Example:
>>>
let customer21 = reference "21" :: CustomerRef
>>>
let aSalesItemLineDetail = salesItemLineDetail ((reference "1") {referenceName = Just "Services"})
>>>
let aSalesItemLine = salesItemLine 100.0 aSalesItemLineDetail
>>>
let anInvoice = defaultInvoice [aSalesItemLine] customer21
data InvoiceResponse Source
data CustomerResponse Source
data ItemResponse Source
Item | |
|