fishbowl 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +9 -4
- data/Gemfile +10 -1
- data/Guardfile +13 -0
- data/lib/fishbowl.rb +13 -15
- data/lib/fishbowl/ext.rb +15 -0
- data/lib/fishbowl/objects.rb +5 -0
- data/lib/fishbowl/objects/account.rb +24 -2
- data/lib/fishbowl/objects/address.rb +86 -0
- data/lib/fishbowl/objects/base_object.rb +34 -5
- data/lib/fishbowl/objects/carrier.rb +15 -0
- data/lib/fishbowl/objects/carton.rb +54 -0
- data/lib/fishbowl/objects/uom.rb +47 -0
- data/lib/fishbowl/objects/user.rb +15 -0
- data/lib/fishbowl/requests.rb +6 -0
- data/lib/fishbowl/requests/add_inventory.rb +34 -0
- data/lib/fishbowl/requests/add_sales_order_item.rb +42 -0
- data/lib/fishbowl/requests/adjust_inventory.rb +28 -0
- data/lib/fishbowl/requests/get_carrier_list.rb +12 -0
- data/lib/fishbowl/version.rb +1 -1
- data/spec/examples/account.xml +6 -0
- data/spec/examples/address.xml +30 -0
- data/spec/examples/carrier.xml +3 -0
- data/spec/examples/carton.xml +93 -0
- data/spec/examples/contact_information.xml +5 -0
- data/spec/examples/contacts.xml +7 -0
- data/spec/examples/credit_card.xml +10 -0
- data/spec/examples/customer.xml +54 -0
- data/spec/examples/location.xml +14 -0
- data/spec/examples/location_group.xml +5 -0
- data/spec/examples/location_group_string.xml +1 -0
- data/spec/examples/order_history.xml +8 -0
- data/spec/examples/part.xml +105 -0
- data/spec/examples/payment.xml +6 -0
- data/spec/examples/pick.xml +265 -0
- data/spec/examples/pick_item.xml +236 -0
- data/spec/examples/product.xml +159 -0
- data/spec/examples/purchase_order.xml +53 -0
- data/spec/examples/receipt.xml +146 -0
- data/spec/examples/report.xml +10 -0
- data/spec/examples/report_tree.xml +7 -0
- data/spec/examples/sales_order.xml +47 -0
- data/spec/examples/sales_order_item.xml +32 -0
- data/spec/examples/shipping.xml +127 -0
- data/spec/examples/tag.xml +28 -0
- data/spec/examples/tax_rate.xml +10 -0
- data/spec/examples/tracking.xml +14 -0
- data/spec/examples/tracking_item.xml +12 -0
- data/spec/examples/transfer_order.xml +257 -0
- data/spec/examples/transfer_order_item.xml +147 -0
- data/spec/examples/uom.xml +26 -0
- data/spec/examples/uom_conversion.xml +8 -0
- data/spec/examples/user.xml +8 -0
- data/spec/examples/vendor.xml +19 -0
- data/spec/examples/vendor_part_number.xml +3 -0
- data/spec/examples/work_order.xml +228 -0
- data/spec/examples/work_order_item.xml +172 -0
- data/spec/objects/account_spec.rb +53 -6
- data/spec/objects/address_information_spec.rb +18 -0
- data/spec/objects/address_spec.rb +36 -0
- data/spec/objects/base_object_spec.rb +67 -23
- data/spec/objects/carrier_spec.rb +15 -0
- data/spec/objects/carton_spec.rb +23 -0
- data/spec/objects/country_spec.rb +16 -0
- data/spec/objects/shipping_item_spec.rb +21 -0
- data/spec/objects/state_spec.rb +17 -0
- data/spec/objects/uom_conversion_spec.rb +20 -0
- data/spec/objects/uom_spec.rb +20 -0
- data/spec/objects/user_spec.rb +20 -0
- data/spec/requests/add_inventory_spec.rb +79 -0
- data/spec/requests/add_sales_order_item_spec.rb +85 -0
- data/spec/requests/adjust_inventory_spec.rb +62 -0
- data/spec/requests/get_carrier_list_spec.rb +54 -0
- data/spec/spec_helper.rb +41 -11
- data/spec/support/examples_loader.rb +5 -0
- data/spec/support/response_mocks.rb +27 -0
- metadata +122 -6
- data/spec/support/fake_login.rb +0 -15
@@ -0,0 +1,15 @@
|
|
1
|
+
module Fishbowl::Objects
|
2
|
+
class User < BaseObject
|
3
|
+
attr_accessor :db_id, :user_name, :first_name, :last_name, :initials, :active
|
4
|
+
|
5
|
+
def self.attributes
|
6
|
+
%w{ID UserName FirstName LastName Initials Active}
|
7
|
+
end
|
8
|
+
|
9
|
+
def initialize(user_xml)
|
10
|
+
@xml = user_xml
|
11
|
+
parse_attributes
|
12
|
+
self
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Fishbowl::Requests
|
2
|
+
def self.add_inventory(options = {})
|
3
|
+
options = options.symbolize_keys
|
4
|
+
|
5
|
+
%w{part_number quantity uom_id cost location_tag_number tag_number}.each do |required_field|
|
6
|
+
raise ArgumentError if options[required_field.to_sym].nil?
|
7
|
+
end
|
8
|
+
|
9
|
+
raise ArgumentError unless options[:tracking].nil? || options[:tracking].is_a?(Fishbowl::Object::Tracking)
|
10
|
+
|
11
|
+
request = format_add_inventory_request(options)
|
12
|
+
Fishbowl::Objects::BaseObject.new.send_request(request, 'AddInventoryRs')
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def self.format_add_inventory_request(options)
|
18
|
+
Nokogiri::XML::Builder.new do |xml|
|
19
|
+
xml.request {
|
20
|
+
xml.AddInventoryRq {
|
21
|
+
xml.PartNum options[:part_number]
|
22
|
+
xml.Quantity options[:quantity]
|
23
|
+
xml.UOMID options[:uom_id]
|
24
|
+
xml.Cost options[:cost]
|
25
|
+
xml.Note options[:note] unless options[:note].nil?
|
26
|
+
xml.Tracking options[:tracking] unless options[:tracking].nil?
|
27
|
+
xml.LocationTagNum options[:location_tag_number]
|
28
|
+
xml.TagNum options[:tag_number]
|
29
|
+
}
|
30
|
+
}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Fishbowl::Requests
|
2
|
+
def self.add_sales_order_item(options = {})
|
3
|
+
options = options.symbolize_keys
|
4
|
+
|
5
|
+
%w{order_number id product_number sales_order_id description taxable
|
6
|
+
quantity product_price total_price uom_code item_type status
|
7
|
+
quickbooks_class_name new_item_flag}.each do |required_field|
|
8
|
+
raise ArgumentError if options[required_field.to_sym].nil?
|
9
|
+
end
|
10
|
+
|
11
|
+
request = format_add_sales_order_item_request(options)
|
12
|
+
Fishbowl::Objects::BaseObject.new.send_request(request, 'AddSOItemRs')
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def self.format_add_sales_order_item_request(options)
|
18
|
+
Nokogiri::XML::Builder.new do |xml|
|
19
|
+
xml.request {
|
20
|
+
xml.AddSOItemRq {
|
21
|
+
xml.OrderNum options[:order_number]
|
22
|
+
xml.SalesOrderItem {
|
23
|
+
xml.ID options[:id]
|
24
|
+
xml.ProductNumber options[:product_number]
|
25
|
+
xml.SOID options[:sales_order_id]
|
26
|
+
xml.Description options[:description]
|
27
|
+
xml.Taxable options[:taxable]
|
28
|
+
xml.Quantity options[:quantity]
|
29
|
+
xml.ProductPrice options[:product_price]
|
30
|
+
xml.TotalPrice options[:total_price]
|
31
|
+
xml.UOMCode options[:uom_code]
|
32
|
+
xml.ItemType options[:item_type]
|
33
|
+
xml.Status options[:status]
|
34
|
+
xml.QuickBooksClassName options[:quickbooks_class_name]
|
35
|
+
xml.NewItemFlag options[:new_item_flag]
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fishbowl::Requests
|
2
|
+
def self.adjust_inventory(options = {})
|
3
|
+
options = options.symbolize_keys
|
4
|
+
|
5
|
+
%w{tag_number quantity}.each do |required_field|
|
6
|
+
raise ArgumentError if options[required_field.to_sym].nil?
|
7
|
+
end
|
8
|
+
|
9
|
+
raise ArgumentError unless options[:tracking].nil? || options[:tracking].is_a?(Fishbowl::Object::Tracking)
|
10
|
+
|
11
|
+
request = format_adjust_inventory_request(options)
|
12
|
+
Fishbowl::Objects::BaseObject.new.send_request(request, 'AdjustInventoryRs')
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def self.format_adjust_inventory_request(options)
|
18
|
+
Nokogiri::XML::Builder.new do |xml|
|
19
|
+
xml.request {
|
20
|
+
xml.AdjustInventoryRq {
|
21
|
+
xml.TagNum options[:tag_number]
|
22
|
+
xml.Quantity options[:quantity]
|
23
|
+
xml.Tracking options[:tracking] unless options[:tracking].nil?
|
24
|
+
}
|
25
|
+
}
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Fishbowl::Requests
|
2
|
+
def self.get_carrier_list
|
3
|
+
_, _, response = Fishbowl::Objects::BaseObject.new.send_request('CarrierListRq', 'CarrierListRs')
|
4
|
+
|
5
|
+
results = []
|
6
|
+
response.xpath("//Carrier").each do |carrier_xml|
|
7
|
+
results << Fishbowl::Objects::Carrier.new(carrier_xml)
|
8
|
+
end
|
9
|
+
|
10
|
+
results
|
11
|
+
end
|
12
|
+
end
|
data/lib/fishbowl/version.rb
CHANGED
@@ -0,0 +1,30 @@
|
|
1
|
+
<Address>
|
2
|
+
<Temp-Account>
|
3
|
+
<Type>10</Type>
|
4
|
+
</Temp-Account>
|
5
|
+
<Name>Main Office</Name>
|
6
|
+
<Attn>Attn</Attn>
|
7
|
+
<Street>123 Neverland dr.</Street>
|
8
|
+
<City>Murray</City>
|
9
|
+
<Zip>84121</Zip>
|
10
|
+
<Default>true</Default>
|
11
|
+
<Residential>false</Residential>
|
12
|
+
<Type>Main Office</Type>
|
13
|
+
<State>
|
14
|
+
<Name>Utah</Name>
|
15
|
+
<Code>UT</Code>
|
16
|
+
<CountryID>2</CountryID>
|
17
|
+
</State>
|
18
|
+
<Country>
|
19
|
+
<Name>United States</Name>
|
20
|
+
<Code>US</Code>
|
21
|
+
</Country>
|
22
|
+
<AddressInformationList>
|
23
|
+
<AddressInformation>
|
24
|
+
<Name>Main Office</Name>
|
25
|
+
<Data>Address Data</Data>
|
26
|
+
<Default>true</Default>
|
27
|
+
<Type>Home</Type>
|
28
|
+
</AddressInformation>
|
29
|
+
</AddressInformationList>
|
30
|
+
</Address>
|
@@ -0,0 +1,93 @@
|
|
1
|
+
<Carton>
|
2
|
+
<ID>64</ID>
|
3
|
+
<ShipID>63</ShipID>
|
4
|
+
<CartonNum>1</CartonNum>
|
5
|
+
<TrackingNum/>
|
6
|
+
<FreightWeight>1.2</FreightWeight>
|
7
|
+
<FreightAmount>0</FreightAmount>
|
8
|
+
<ShippingItems>
|
9
|
+
<ShippingItem>
|
10
|
+
<ShipItemID>169</ShipItemID>
|
11
|
+
<ProductNumber>B201</ProductNumber>
|
12
|
+
<ProductDescription>Heavy Duty Brake Cables</ProductDescription>
|
13
|
+
<QtyShipped>1</QtyShipped>
|
14
|
+
<UOM>
|
15
|
+
<UOMID>1</UOMID>
|
16
|
+
<Name>Each</Name>
|
17
|
+
<Code>ea</Code>
|
18
|
+
<Integral>true</Integral>
|
19
|
+
<Active>true</Active>
|
20
|
+
<Type>Count</Type>
|
21
|
+
<UOMConversions>
|
22
|
+
<UOMConversion>
|
23
|
+
<MainUOMID>1</MainUOMID>
|
24
|
+
<ToUOMID>17</ToUOMID>
|
25
|
+
<ToUOMCode>pr</ToUOMCode>
|
26
|
+
<ConversionMultiply>1.0</ConversionMultiply>
|
27
|
+
<ConversionFactor>2.0</ConversionFactor>
|
28
|
+
<ToUOMIsIntegral>false</ToUOMIsIntegral>
|
29
|
+
</UOMConversion>
|
30
|
+
<UOMConversion>
|
31
|
+
<MainUOMID>1</MainUOMID>
|
32
|
+
<ToUOMID>18</ToUOMID>
|
33
|
+
<ToUOMCode>pk</ToUOMCode>
|
34
|
+
<ConversionMultiply>1.0</ConversionMultiply>
|
35
|
+
<ConversionFactor>20.0</ConversionFactor>
|
36
|
+
<ToUOMIsIntegral>false</ToUOMIsIntegral>
|
37
|
+
</UOMConversion>
|
38
|
+
</UOMConversions>
|
39
|
+
</UOM>
|
40
|
+
<Cost>0</Cost>
|
41
|
+
<SKU/>
|
42
|
+
<UPC/>
|
43
|
+
<OrderItemID>160</OrderItemID>
|
44
|
+
<OrderLineItem>1</OrderLineItem>
|
45
|
+
<CartonName>1</CartonName>
|
46
|
+
<CartonID>64</CartonID>
|
47
|
+
<TagNum>694</TagNum>
|
48
|
+
<Weight>1.2</Weight>
|
49
|
+
<WeightUOM>
|
50
|
+
<UOM>
|
51
|
+
<UOMID>3</UOMID>
|
52
|
+
<Name>Pound</Name>
|
53
|
+
<Code>lbs</Code>
|
54
|
+
<Integral>false</Integral>
|
55
|
+
<Active>true</Active>
|
56
|
+
<Type>Weight</Type>
|
57
|
+
<UOMConversions>
|
58
|
+
<UOMConversion>
|
59
|
+
<MainUOMID>3</MainUOMID>
|
60
|
+
<ToUOMID>8</ToUOMID>
|
61
|
+
<ToUOMCode>kg</ToUOMCode>
|
62
|
+
<ConversionMultiply>1.0</ConversionMultiply>
|
63
|
+
<ConversionFactor>2.2046000957489014</ConversionFactor>
|
64
|
+
<ToUOMIsIntegral>false</ToUOMIsIntegral>
|
65
|
+
</UOMConversion>
|
66
|
+
</UOMConversions>
|
67
|
+
</UOM>
|
68
|
+
</WeightUOM>
|
69
|
+
<DisplayWeight>1.2</DisplayWeight>
|
70
|
+
<DisplayWeightUOM>
|
71
|
+
<UOM>
|
72
|
+
<UOMID>3</UOMID>
|
73
|
+
<Name>Pound</Name>
|
74
|
+
<Code>lbs</Code>
|
75
|
+
<Integral>false</Integral>
|
76
|
+
<Active>true</Active>
|
77
|
+
<Type>Weight</Type>
|
78
|
+
<UOMConversions>
|
79
|
+
<UOMConversion>
|
80
|
+
<MainUOMID>3</MainUOMID>
|
81
|
+
<ToUOMID>8</ToUOMID>
|
82
|
+
<ToUOMCode>kg</ToUOMCode>
|
83
|
+
<ConversionMultiply>1.0</ConversionMultiply>
|
84
|
+
<ConversionFactor>2.2046000957489014</ConversionFactor>
|
85
|
+
<ToUOMIsIntegral>false</ToUOMIsIntegral>
|
86
|
+
</UOMConversion>
|
87
|
+
</UOMConversions>
|
88
|
+
</UOM>
|
89
|
+
</DisplayWeightUOM>
|
90
|
+
<Tracking/>
|
91
|
+
</ShippingItem>
|
92
|
+
</ShippingItems>
|
93
|
+
</Carton>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<CreditCard>
|
2
|
+
<CardNumber>411111111111111</CardNumber>
|
3
|
+
<CardExpMonth>02</CardExpMonth>
|
4
|
+
<CardExpYear>19</CardExpYear>
|
5
|
+
<SecurityCode>523</SecurityCode>
|
6
|
+
<NameOnCard>John Doe</NameOnCard>
|
7
|
+
<CardAddress>123 S Riverdale Road</CardAddress>
|
8
|
+
<CardZipCode>84172</CardZipCode>
|
9
|
+
<CardCountryCode>US</CardCountryCode>
|
10
|
+
</CreditCard>
|
@@ -0,0 +1,54 @@
|
|
1
|
+
<Customer>
|
2
|
+
<Status>Normal</Status>
|
3
|
+
<DefPaymentTerms>COD</DefPaymentTerms>
|
4
|
+
<DefShipTerms>Prepaid</DefShipTerms>
|
5
|
+
<TaxRate>None</TaxRate>
|
6
|
+
<Name>Sam Ball</Name>
|
7
|
+
<CreditLimit>1000000.00</CreditLimit>
|
8
|
+
<TaxExempt>true</TaxExempt>
|
9
|
+
<TaxExemptNumber>12345</TaxExemptNumber>
|
10
|
+
<Note>Hello World</Note>
|
11
|
+
<ActiveFlag>true</ActiveFlag>
|
12
|
+
<DefaultSalesman>jen</DefaultSalesman>
|
13
|
+
<DefaultCarrier>USPS</DefaultCarrier>
|
14
|
+
<JobDepth>1</JobDepth>
|
15
|
+
<Addresses>
|
16
|
+
<Address>
|
17
|
+
<Temp-Account>
|
18
|
+
<Type>10</Type>
|
19
|
+
</Temp-Account>
|
20
|
+
<Name>Main Office</Name>
|
21
|
+
<Attn>Attention</Attn>
|
22
|
+
<Street>123 Neverland dr.</Street>
|
23
|
+
<City>Murray</City>
|
24
|
+
<Zip>84121</Zip>
|
25
|
+
<Default>true</Default>
|
26
|
+
<Residential>false</Residential>
|
27
|
+
<Type>Main Office</Type>
|
28
|
+
<State>
|
29
|
+
<Name>Utah</Name>
|
30
|
+
<Code>UT</Code>
|
31
|
+
<CountryID>2</CountryID>
|
32
|
+
</State>
|
33
|
+
<Country>
|
34
|
+
<Name>United States</Name>
|
35
|
+
<Code>US</Code>
|
36
|
+
</Country>
|
37
|
+
<AddressInformationList>
|
38
|
+
<AddressInformation>
|
39
|
+
<Name>Main Office</Name>
|
40
|
+
<Data>Address Data</Data>
|
41
|
+
<Default>true</Default>
|
42
|
+
<Type>Home</Type>
|
43
|
+
</AddressInformation>
|
44
|
+
</AddressInformationList>
|
45
|
+
</Address>
|
46
|
+
</Addresses>
|
47
|
+
<CustomFields>
|
48
|
+
<CustomField>
|
49
|
+
<Type>CFT_TEXT</Type>
|
50
|
+
<Name>Custom1</Name>
|
51
|
+
<Info>Custom Data</Info>
|
52
|
+
</CustomField>
|
53
|
+
</CustomFields>
|
54
|
+
</Customer>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<Location>
|
2
|
+
<LocationID>0</LocationID>
|
3
|
+
<TypeID>0</TypeID>
|
4
|
+
<Name/>
|
5
|
+
<Description/>
|
6
|
+
<CountedAsAvailable>true</CountedAsAvailable>
|
7
|
+
<Active>true</Active>
|
8
|
+
<Pickable>true</Pickable>
|
9
|
+
<Receivable>true</Receivable>
|
10
|
+
<LocationGroupID>0</LocationGroupID>
|
11
|
+
<LocationGroupName/>
|
12
|
+
<TagID>-1</TagID>
|
13
|
+
<TagNumber>-1</TagNumber>
|
14
|
+
</Location>
|
@@ -0,0 +1 @@
|
|
1
|
+
<LocationGroup>SLC</LocationGroup>
|
@@ -0,0 +1,105 @@
|
|
1
|
+
<Part>
|
2
|
+
<PartID>60</PartID>
|
3
|
+
<PartClassID>0</PartClassID>
|
4
|
+
<TypeID>10</TypeID>
|
5
|
+
<UOM>
|
6
|
+
<UOMID>1</UOMID>
|
7
|
+
<Name>Each</Name>
|
8
|
+
<Code>ea</Code>
|
9
|
+
<Integral>true</Integral>
|
10
|
+
<Active>true</Active>
|
11
|
+
<Type>Count</Type>
|
12
|
+
<UOMConversions>
|
13
|
+
<UOMConversion>
|
14
|
+
<MainUOMID>1</MainUOMID>
|
15
|
+
<ToUOMID>17</ToUOMID>
|
16
|
+
<ToUOMCode>pr</ToUOMCode>
|
17
|
+
<ConversionMultiply>1.0</ConversionMultiply>
|
18
|
+
<ConversionFactor>2.0</ConversionFactor>
|
19
|
+
<ToUOMIsIntegral>false</ToUOMIsIntegral>
|
20
|
+
</UOMConversion>
|
21
|
+
<UOMConversion>
|
22
|
+
<MainUOMID>1</MainUOMID>
|
23
|
+
<ToUOMID>18</ToUOMID>
|
24
|
+
<ToUOMCode>pk</ToUOMCode>
|
25
|
+
<ConversionMultiply>1.0</ConversionMultiply>
|
26
|
+
<ConversionFactor>20.0</ConversionFactor>
|
27
|
+
<ToUOMIsIntegral>false</ToUOMIsIntegral>
|
28
|
+
</UOMConversion>
|
29
|
+
</UOMConversions>
|
30
|
+
</UOM>
|
31
|
+
<Num>BB2005</Num>
|
32
|
+
<Description>Custom Value Bike</Description>
|
33
|
+
<Details/>
|
34
|
+
<StandardCost>0</StandardCost>
|
35
|
+
<HasBOM>false</HasBOM>
|
36
|
+
<Configurable>true</Configurable>
|
37
|
+
<ActiveFlag>true</ActiveFlag>
|
38
|
+
<SerializedFlag>true</SerializedFlag>
|
39
|
+
<TrackingFlag>true</TrackingFlag>
|
40
|
+
<Weight>0</Weight>
|
41
|
+
<WeightUOM>
|
42
|
+
<UOM>
|
43
|
+
<UOMID>3</UOMID>
|
44
|
+
<Name>Pound</Name>
|
45
|
+
<Code>lbs</Code>
|
46
|
+
<Integral>false</Integral>
|
47
|
+
<Active>true</Active>
|
48
|
+
<Type>Weight</Type>
|
49
|
+
<UOMConversions>
|
50
|
+
<UOMConversion>
|
51
|
+
<MainUOMID>3</MainUOMID>
|
52
|
+
<ToUOMID>8</ToUOMID>
|
53
|
+
<ToUOMCode>kg</ToUOMCode>
|
54
|
+
<ConversionMultiply>1.0</ConversionMultiply>
|
55
|
+
<ConversionFactor>2.2046000957489014</ConversionFactor>
|
56
|
+
<ToUOMIsIntegral>false</ToUOMIsIntegral>
|
57
|
+
</UOMConversion>
|
58
|
+
</UOMConversions>
|
59
|
+
</UOM>
|
60
|
+
</WeightUOM>
|
61
|
+
<Width>0</Width>
|
62
|
+
<Height>0</Height>
|
63
|
+
<Len>0</Len>
|
64
|
+
<SizeUOM>
|
65
|
+
<UOM>
|
66
|
+
<UOMID>2</UOMID>
|
67
|
+
<Name>Foot</Name>
|
68
|
+
<Code>ft</Code>
|
69
|
+
<Integral>false</Integral>
|
70
|
+
<Active>true</Active>
|
71
|
+
<Type>Length</Type>
|
72
|
+
<UOMConversions>
|
73
|
+
<UOMConversion>
|
74
|
+
<MainUOMID>2</MainUOMID>
|
75
|
+
<ToUOMID>7</ToUOMID>
|
76
|
+
<ToUOMCode>in</ToUOMCode>
|
77
|
+
<ConversionMultiply>12.0</ConversionMultiply>
|
78
|
+
<ConversionFactor>1.0</ConversionFactor>
|
79
|
+
<ToUOMIsIntegral>false</ToUOMIsIntegral>
|
80
|
+
</UOMConversion>
|
81
|
+
<UOMConversion>
|
82
|
+
<MainUOMID>2</MainUOMID>
|
83
|
+
<ToUOMID>9</ToUOMID>
|
84
|
+
<ToUOMCode>m</ToUOMCode>
|
85
|
+
<ConversionMultiply>1.0</ConversionMultiply>
|
86
|
+
<ConversionFactor>3.2808001041412354</ConversionFactor>
|
87
|
+
<ToUOMIsIntegral>false</ToUOMIsIntegral>
|
88
|
+
</UOMConversion>
|
89
|
+
</UOMConversions>
|
90
|
+
</UOM>
|
91
|
+
</SizeUOM>
|
92
|
+
<UPC/>
|
93
|
+
<PartTrackingList>
|
94
|
+
<PartTracking>
|
95
|
+
<PartTrackingID>4</PartTrackingID>
|
96
|
+
<Name>Serial Number</Name>
|
97
|
+
<Abbr>SN(s)</Abbr>
|
98
|
+
<Description/>
|
99
|
+
<SortOrder>4</SortOrder>
|
100
|
+
<TrackingTypeID>40</TrackingTypeID>
|
101
|
+
<Active>true</Active>
|
102
|
+
<Primary>true</Primary>
|
103
|
+
</PartTracking>
|
104
|
+
</PartTrackingList>
|
105
|
+
</Part>
|