Class: Merge::Accounting::PurchaseOrderLineItem

Inherits:
Object
  • Object
show all
Defined in:
lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb

Overview

# The PurchaseOrderLineItem Object

### Description
The `PurchaseOrderLineItem` object is used to represent a purchase order's line
item.
### Usage Example
Fetch from the `GET PurchaseOrder` endpoint and view a company's purchase
orders.

Constant Summary collapse

OMIT =
Object.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, description: OMIT, unit_price: OMIT, quantity: OMIT, item: OMIT, account: OMIT, tracking_category: OMIT, tracking_categories: OMIT, tax_amount: OMIT, total_line_amount: OMIT, currency: OMIT, tax_rate: OMIT, exchange_rate: OMIT, company: OMIT, remote_was_deleted: OMIT, remote_fields: OMIT, additional_properties: nil) ⇒ Merge::Accounting::PurchaseOrderLineItem



705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 705

def initialize(id: OMIT, remote_id: OMIT, created_at: OMIT, modified_at: OMIT, description: OMIT,
               unit_price: OMIT, quantity: OMIT, item: OMIT, account: OMIT, tracking_category: OMIT, tracking_categories: OMIT, tax_amount: OMIT, total_line_amount: OMIT, currency: OMIT, tax_rate: OMIT, exchange_rate: OMIT, company: OMIT, remote_was_deleted: OMIT, remote_fields: OMIT, additional_properties: nil)
  @id = id if id != OMIT
  @remote_id = remote_id if remote_id != OMIT
  @created_at = created_at if created_at != OMIT
  @modified_at = modified_at if modified_at != OMIT
  @description = description if description != OMIT
  @unit_price = unit_price if unit_price != OMIT
  @quantity = quantity if quantity != OMIT
  @item = item if item != OMIT
  @account =  if  != OMIT
  @tracking_category = tracking_category if tracking_category != OMIT
  @tracking_categories = tracking_categories if tracking_categories != OMIT
  @tax_amount = tax_amount if tax_amount != OMIT
  @total_line_amount = total_line_amount if total_line_amount != OMIT
  @currency = currency if currency != OMIT
  @tax_rate = tax_rate if tax_rate != OMIT
  @exchange_rate = exchange_rate if exchange_rate != OMIT
  @company = company if company != OMIT
  @remote_was_deleted = remote_was_deleted if remote_was_deleted != OMIT
  @remote_fields = remote_fields if remote_fields != OMIT
  @additional_properties = additional_properties
  @_field_set = {
    "id": id,
    "remote_id": remote_id,
    "created_at": created_at,
    "modified_at": modified_at,
    "description": description,
    "unit_price": unit_price,
    "quantity": quantity,
    "item": item,
    "account": ,
    "tracking_category": tracking_category,
    "tracking_categories": tracking_categories,
    "tax_amount": tax_amount,
    "total_line_amount": total_line_amount,
    "currency": currency,
    "tax_rate": tax_rate,
    "exchange_rate": exchange_rate,
    "company": company,
    "remote_was_deleted": remote_was_deleted,
    "remote_fields": remote_fields
  }.reject do |_k, v|
    v == OMIT
  end
end

Instance Attribute Details

#accountString (readonly)



37
38
39
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 37

def 
  @account
end

#additional_propertiesOpenStruct (readonly)



368
369
370
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 368

def additional_properties
  @additional_properties
end

#companyString (readonly)



359
360
361
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 359

def company
  @company
end

#created_atDateTime (readonly)



25
26
27
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 25

def created_at
  @created_at
end

#currencyMerge::Accounting::TransactionCurrencyEnum (readonly)



353
354
355
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 353

def currency
  @currency
end

#descriptionString (readonly)



29
30
31
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 29

def description
  @description
end

#exchange_rateString (readonly)



357
358
359
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 357

def exchange_rate
  @exchange_rate
end

#idString (readonly)



21
22
23
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 21

def id
  @id
end

#itemMerge::Accounting::PurchaseOrderLineItemItem (readonly)



35
36
37
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 35

def item
  @item
end

#modified_atDateTime (readonly)



27
28
29
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 27

def modified_at
  @modified_at
end

#quantityFloat (readonly)



33
34
35
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 33

def quantity
  @quantity
end

#remote_fieldsArray<Merge::Accounting::RemoteField> (readonly)



366
367
368
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 366

def remote_fields
  @remote_fields
end

#remote_idString (readonly)



23
24
25
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 23

def remote_id
  @remote_id
end

#remote_was_deletedBoolean (readonly)



364
365
366
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 364

def remote_was_deleted
  @remote_was_deleted
end

#tax_amountString (readonly)



43
44
45
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 43

def tax_amount
  @tax_amount
end

#tax_rateString (readonly)



355
356
357
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 355

def tax_rate
  @tax_rate
end

#total_line_amountString (readonly)



45
46
47
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 45

def total_line_amount
  @total_line_amount
end

#tracking_categoriesArray<String> (readonly)



41
42
43
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 41

def tracking_categories
  @tracking_categories
end

#tracking_categoryString (readonly)



39
40
41
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 39

def tracking_category
  @tracking_category
end

#unit_priceFloat (readonly)



31
32
33
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 31

def unit_price
  @unit_price
end

Class Method Details

.from_json(json_object:) ⇒ Merge::Accounting::PurchaseOrderLineItem

Deserialize a JSON object to an instance of PurchaseOrderLineItem



756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 756

def self.from_json(json_object:)
  struct = JSON.parse(json_object, object_class: OpenStruct)
  parsed_json = JSON.parse(json_object)
  id = parsed_json["id"]
  remote_id = parsed_json["remote_id"]
  created_at = (DateTime.parse(parsed_json["created_at"]) unless parsed_json["created_at"].nil?)
  modified_at = (DateTime.parse(parsed_json["modified_at"]) unless parsed_json["modified_at"].nil?)
  description = parsed_json["description"]
  unit_price = parsed_json["unit_price"]
  quantity = parsed_json["quantity"]
  if parsed_json["item"].nil?
    item = nil
  else
    item = parsed_json["item"].to_json
    item = Merge::Accounting::PurchaseOrderLineItemItem.from_json(json_object: item)
  end
   = parsed_json["account"]
  tracking_category = parsed_json["tracking_category"]
  tracking_categories = parsed_json["tracking_categories"]
  tax_amount = parsed_json["tax_amount"]
  total_line_amount = parsed_json["total_line_amount"]
  currency = parsed_json["currency"]
  tax_rate = parsed_json["tax_rate"]
  exchange_rate = parsed_json["exchange_rate"]
  company = parsed_json["company"]
  remote_was_deleted = parsed_json["remote_was_deleted"]
  remote_fields = parsed_json["remote_fields"]&.map do |item|
    item = item.to_json
    Merge::Accounting::RemoteField.from_json(json_object: item)
  end
  new(
    id: id,
    remote_id: remote_id,
    created_at: created_at,
    modified_at: modified_at,
    description: description,
    unit_price: unit_price,
    quantity: quantity,
    item: item,
    account: ,
    tracking_category: tracking_category,
    tracking_categories: tracking_categories,
    tax_amount: tax_amount,
    total_line_amount: total_line_amount,
    currency: currency,
    tax_rate: tax_rate,
    exchange_rate: exchange_rate,
    company: company,
    remote_was_deleted: remote_was_deleted,
    remote_fields: remote_fields,
    additional_properties: struct
  )
end

.validate_raw(obj:) ⇒ Void

Leveraged for Union-type generation, validate_raw attempts to parse the given

hash and check each fields type against the current object's property
definitions.


823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 823

def self.validate_raw(obj:)
  obj.id&.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
  obj.remote_id&.is_a?(String) != false || raise("Passed value for field obj.remote_id is not the expected type, validation failed.")
  obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
  obj.modified_at&.is_a?(DateTime) != false || raise("Passed value for field obj.modified_at is not the expected type, validation failed.")
  obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
  obj.unit_price&.is_a?(Float) != false || raise("Passed value for field obj.unit_price is not the expected type, validation failed.")
  obj.quantity&.is_a?(Float) != false || raise("Passed value for field obj.quantity is not the expected type, validation failed.")
  obj.item.nil? || Merge::Accounting::PurchaseOrderLineItemItem.validate_raw(obj: obj.item)
  obj.&.is_a?(String) != false || raise("Passed value for field obj.account is not the expected type, validation failed.")
  obj.tracking_category&.is_a?(String) != false || raise("Passed value for field obj.tracking_category is not the expected type, validation failed.")
  obj.tracking_categories&.is_a?(Array) != false || raise("Passed value for field obj.tracking_categories is not the expected type, validation failed.")
  obj.tax_amount&.is_a?(String) != false || raise("Passed value for field obj.tax_amount is not the expected type, validation failed.")
  obj.total_line_amount&.is_a?(String) != false || raise("Passed value for field obj.total_line_amount is not the expected type, validation failed.")
  obj.currency&.is_a?(Merge::Accounting::TransactionCurrencyEnum) != false || raise("Passed value for field obj.currency is not the expected type, validation failed.")
  obj.tax_rate&.is_a?(String) != false || raise("Passed value for field obj.tax_rate is not the expected type, validation failed.")
  obj.exchange_rate&.is_a?(String) != false || raise("Passed value for field obj.exchange_rate is not the expected type, validation failed.")
  obj.company&.is_a?(String) != false || raise("Passed value for field obj.company is not the expected type, validation failed.")
  obj.remote_was_deleted&.is_a?(Boolean) != false || raise("Passed value for field obj.remote_was_deleted is not the expected type, validation failed.")
  obj.remote_fields&.is_a?(Array) != false || raise("Passed value for field obj.remote_fields is not the expected type, validation failed.")
end

Instance Method Details

#to_json(*_args) ⇒ String

Serialize an instance of PurchaseOrderLineItem to a JSON object



813
814
815
# File 'lib/merge_ruby_client/accounting/types/purchase_order_line_item.rb', line 813

def to_json(*_args)
  @_field_set&.to_json
end