class Quickbooks::Model::InvoiceLineItem

def description_only!

def description_only!
  self.detail_type = DESCRIPTION_DETAIL_TYPE
  self.description_line_detail = DescriptionLineDetail.new
  yield self.description_line_detail if block_given?
end

def description_only?

def description_only?
  # The detail type for a description-only line detail differs slightly
  # from the node name (DescriptionOnly vs DescriptionLineDetail)
  detail_type.to_s == DESCRIPTION_DETAIL_TYPE
end

def discount_item!

def discount_item!
  self.detail_type = DISCOUNT_LINE_DETAIL
  self.discount_line_detail = DiscountLineDetail.new
  yield self.discount_line_detail if block_given?
end

def discount_item?

def discount_item?
  detail_type.to_s == DISCOUNT_LINE_DETAIL
end

def group_line_detail!

def group_line_detail!
  self.detail_type = INVOICE_GROUP_LINE_DETAIL
  self.group_line_detail = InvoiceGroupLineDetail.new
  yield self.group_line_detail if block_given?
end

def group_line_detail?

def group_line_detail?
  detail_type.to_s == INVOICE_GROUP_LINE_DETAIL
end

def payment_item!

def payment_item!
  self.detail_type = PAYMENT_LINE_DETAIL
  self.payment_line_detail = PaymentLineDetail.new
  yield self.payment_line_detail if block_given?
end

def sales_item!

def sales_item!
  self.detail_type = SALES_LINE_ITEM_DETAIL
  self.sales_line_item_detail = SalesItemLineDetail.new
  yield self.sales_line_item_detail if block_given?
end

def sales_item?

def sales_item?
  detail_type.to_s == SALES_LINE_ITEM_DETAIL
end

def sub_total_item?

def sub_total_item?
  detail_type.to_s == SUB_TOTAL_LINE_DETAIL
end