go_import 3.0.40 → 3.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,235 @@
1
+ require 'go_import'
2
+ require_relative("../converter")
3
+
4
+ REPORT_RESULT = true
5
+ COWORKER_FILE = "data/coworkers.csv"
6
+ ORGANIZATION_FILE = "data/contacts.csv"
7
+ LEADS_FILE = "data/leads.csv"
8
+ PERSON_FILE = "data/contacts.csv"
9
+ DEAL_FILE = "data/deals.csv"
10
+ NOTE_FILE = "data/notes.csv"
11
+ SOURCE_ENCODING = "utf-8"
12
+
13
+
14
+
15
+ def process_rows(file_name, source_encoding)
16
+ data = File.read(file_name, :encoding => source_encoding)
17
+ rows = GoImport::CsvHelper::text_to_hashes(data)
18
+ rows.each do |row|
19
+ yield row
20
+ end
21
+ end
22
+
23
+ def convert_source
24
+ puts "Trying to convert Base CRM source to LIME Go..."
25
+
26
+ converter = Converter.new
27
+ ignored_notes = 0
28
+ ignored_persons = 0
29
+
30
+ # A rootmodel is used to represent all entitite/models that is
31
+ # exported
32
+ rootmodel = GoImport::RootModel.new
33
+
34
+ converter.configure(rootmodel)
35
+ source_encoding = defined?(SOURCE_ENCODING) ? SOURCE_ENCODING : 'ISO-8859-1'
36
+
37
+ # coworkers
38
+ # start with these since they are referenced
39
+ # from everywhere....
40
+ if defined?(COWORKER_FILE) && !COWORKER_FILE.nil? && !COWORKER_FILE.empty?
41
+ process_rows(COWORKER_FILE, source_encoding) do |row|
42
+ coworker = converter.to_coworker(row)
43
+ coworker.integration_id = "#{row['first_name']} #{row['last_name']}"
44
+ coworker.first_name = row['first_name']
45
+ coworker.last_name = row['last_name']
46
+ coworker.email = row['email']
47
+ rootmodel.add_coworker(coworker)
48
+ end
49
+ end
50
+
51
+ # organizations
52
+ if defined?(ORGANIZATION_FILE) && !ORGANIZATION_FILE.nil? && !ORGANIZATION_FILE.empty?
53
+ process_rows(ORGANIZATION_FILE, source_encoding) do |row|
54
+ next if row["is_organisation"] == "false"
55
+ organization = converter.to_organization(row, rootmodel)
56
+ organization = GoImport::Organization.new
57
+ organization.integration_id = row['id']
58
+ organization.name = row['name']
59
+ organization.email = row['email']
60
+ organization.web_site = row['website']
61
+ organization.central_phone_number = GoImport::PhoneHelper.parse_numbers(row['phone']) if not row['phone'].nil?
62
+
63
+ organization.with_visit_address do |address|
64
+ address.street = row['address']
65
+ address.zip_code = row['zip']
66
+ address.city = row['city']
67
+ end
68
+
69
+ organization.with_postal_address do |address|
70
+ address.street = row['address']
71
+ address.zip_code = row['zip']
72
+ address.city = row['city']
73
+ end
74
+
75
+ case row['prospect_status']
76
+ when "current"
77
+ organization.relation = GoImport::Relation::WorkingOnIt
78
+ else
79
+ organization.relation = GoImport::Relation::BeenInTouch
80
+ end
81
+
82
+ case row['customer_status']
83
+ when "current"
84
+ organization.relation = GoImport::Relation::IsACustomer
85
+ when "past"
86
+ organization.relation = GoImport::Relation::WasACustomer
87
+ else
88
+ organization.relation = GoImport::Relation::BeenInTouch
89
+ end
90
+
91
+ coworker = rootmodel.find_coworker_by_integration_id row['owner']
92
+ organization.responsible_coworker = coworker
93
+ tags = row['tags'].split(",")
94
+ tags.each do |tag|
95
+ organization.set_tag(tag)
96
+ end
97
+
98
+ rootmodel.add_organization(organization)
99
+ end
100
+ end
101
+
102
+ # persons
103
+ # depends on organizations
104
+ if defined?(PERSON_FILE) && !PERSON_FILE.nil? && !PERSON_FILE.empty?
105
+ process_rows(PERSON_FILE, source_encoding) do |row|
106
+ # adds it self to the employer
107
+ next if row["is_organisation"] == "true"
108
+ person = converter.to_person(row, rootmodel)
109
+
110
+ person.integration_id = row['id']
111
+
112
+ person.first_name = row['first_name']
113
+ person.last_name = row['last_name']
114
+
115
+ person.direct_phone_number = GoImport::PhoneHelper.parse_numbers(row['phone'])
116
+ person.mobile_phone_number = GoImport::PhoneHelper.parse_numbers(row['mobile'])
117
+ person.email = row['email']
118
+
119
+ organization = rootmodel.find_organization {|org|
120
+ org.name == row["organisation_name"]
121
+ }
122
+ if not organization.nil?
123
+ organization.add_employee(person)
124
+ else
125
+ puts "No organization for person '#{person.first_name} #{person.last_name}, #{person.integration_id}' could be found. Person will not be imported!"
126
+ ignored_persons += 1
127
+ end
128
+ end
129
+ end
130
+
131
+ # leads
132
+ if defined?(LEADS_FILE) && !LEADS_FILE.nil? && !LEADS_FILE.empty?
133
+ process_rows(LEADS_FILE, source_encoding) do |row|
134
+ organization = converter.to_organization_from_lead(row, rootmodel)
135
+
136
+ organization.integration_id = "l#{row['id']}"
137
+ organization.name = row['company_name']
138
+ organization.relation = GoImport::Relation::WorkingOnIt
139
+
140
+ organization.central_phone_number = GoImport::PhoneHelper.parse_numbers(row['phone']) if not row['phone'].nil?
141
+
142
+ organization.with_visit_address do |address|
143
+ address.street = row['street']
144
+ address.city = row['city']
145
+ end
146
+
147
+ coworker = rootmodel.find_coworker_by_integration_id row['owner']
148
+ organization.responsible_coworker = coworker
149
+
150
+ if not row['tags'].nil?
151
+ tags = row['tags'].split(",")
152
+ tags.each do |tag|
153
+ organization.set_tag(tag)
154
+ end
155
+ end
156
+
157
+ person = GoImport::Person.new
158
+
159
+ person.integration_id = "p#{row['id']}"
160
+ person.first_name = row['first_name']
161
+ person.last_name = row['last_name']
162
+ person.direct_phone_number = GoImport::PhoneHelper.parse_numbers(row['phone']) if not row['phone'].nil?
163
+ person.mobile_phone_number = GoImport::PhoneHelper.parse_numbers(row['mobile']) if not row['mobile'].nil?
164
+ person.email = row['email']
165
+
166
+ organization.add_employee(person)
167
+
168
+ if row['description']
169
+ note = GoImport::Note.new()
170
+
171
+ note.text = row['description']
172
+ note.person = person
173
+ note.organization = organization
174
+ note.created_by = coworker
175
+
176
+ rootmodel.add_note(note)
177
+ end
178
+ rootmodel.add_organization(organization)
179
+ end
180
+ end
181
+
182
+ # deals
183
+ if defined?(DEAL_FILE) && !DEAL_FILE.nil? && !DEAL_FILE.empty?
184
+ process_rows(DEAL_FILE, source_encoding) do |row|
185
+ deal = converter.to_deal(row, rootmodel)
186
+ deal.integration_id = row['id']
187
+ deal.name = row['name']
188
+
189
+ deal.value = row['scope']
190
+ deal.customer = rootmodel.find_organization_by_integration_id(row['company_id'])
191
+ deal.customer_contact = rootmodel.find_person_by_integration_id(row['main_contact_id'])
192
+ deal.responsible_coworker = rootmodel.find_coworker_by_integration_id(row['owner'])
193
+
194
+ values = row['tags'].split(",")
195
+ values.each do |value|
196
+ deal.set_tag(value)
197
+ end
198
+ rootmodel.add_deal(deal)
199
+ end
200
+ end
201
+
202
+ # notes
203
+ if defined?(NOTE_FILE) && !NOTE_FILE.nil? && !NOTE_FILE.empty?
204
+ process_rows(NOTE_FILE, source_encoding) do |row|
205
+ note = converter.to_note(row, rootmodel)
206
+ note.integration_id = row['id']
207
+ note.text = row['content']
208
+ note.created_by = rootmodel.find_coworker_by_integration_id(row["owner"])
209
+ notable_id = row['noteable_id']
210
+ case row["noteable_type"]
211
+ when "Deal"
212
+ deal = rootmodel.find_deal_by_integration_id(notable_id)
213
+ note.deal = deal
214
+ when "Lead"
215
+ note.person = rootmodel.find_person_by_integration_id("p#{notable_id}")
216
+ note.organization = rootmodel.find_organization_by_integration_id("l#{notable_id}")
217
+ when "Contact"
218
+ puts "Ignoreing note for unbound person: #{row['owner']}"
219
+ ignored_notes += 1
220
+ next
221
+ else
222
+ org = rootmodel.find_organization_by_integration_id(notable_id)
223
+ if org.nil?
224
+ person = rootmodel.find_person_by_integration_id(notable_id)
225
+ org = person.organization
226
+ note.person = person
227
+ end
228
+ note.organization = org
229
+ end
230
+ rootmodel.add_note(note)
231
+ end
232
+ end
233
+ puts "Ignored #{ignored_persons} persons and #{ignored_notes} notes"
234
+ return rootmodel
235
+ end
@@ -0,0 +1,5 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'thor'
4
+ gem 'go_import'
5
+ gem 'rspec'
@@ -0,0 +1,9 @@
1
+ # Base CRM migration
2
+
3
+ 1. Export your Base CRM data with the built in export in Base CRM
4
+ 2. Put the exported data into the `data` folder
5
+ 3. Coworkers has to be entered manually into the coworkers file. A template file is provided
6
+ 4. All mappings are done in `runner.rb` but special unique things can be configured in `converter.rb`
7
+
8
+ Note: In Base CRM you can have contacts persons without a corresponding organization.
9
+ This is not allowed in LIME Go and these persons and notes just linked to them will be ignored.
@@ -0,0 +1,62 @@
1
+
2
+ class Converter
3
+
4
+ def configure(rootmodel)
5
+ # add custom field to your model here. Custom fields can be
6
+ # added to organization, deal and person. Valid types are
7
+ # :String and :Link. If no type is specified :String is used
8
+ # as default.
9
+ rootmodel.settings.with_organization do |organization|
10
+
11
+ end
12
+
13
+ rootmodel.settings.with_deal do |deal|
14
+ deal.add_status({:label => "Prospecting", :integration_id => "Prospecting"})
15
+ deal.add_status({:label => "Qualified", :integration_id => "Qualified"})
16
+ deal.add_status({:label => "Won", :integration_id => "Won",
17
+ :assessment => GoImport::DealState::PositiveEndState })
18
+ deal.add_status({:label => "Lost", :integration_id => "Lost",
19
+ :assessment => GoImport::DealState::NegativeEndState })
20
+ end
21
+ end
22
+
23
+ def to_organization(row, rootmodel)
24
+
25
+ organization = GoImport::Organization.new
26
+ # All built in fields are automagically mapped. Add your custom stuff here...
27
+
28
+ return organization
29
+ end
30
+
31
+ def to_organization_from_lead(row, rootmodel)
32
+ organization = GoImport::Organization.new
33
+ # All built in fields are automagically mapped. Add your custom stuff here...
34
+ return organization
35
+ end
36
+
37
+ def to_coworker(row)
38
+ coworker = GoImport::Coworker.new
39
+ # All built in fields are automagically mapped. Add your custom stuff here...
40
+ return coworker
41
+ end
42
+
43
+ def to_person(row, rootmodel)
44
+ person = GoImport::Person.new
45
+ # All built in fields are automagically mapped. Add your custom stuff here...
46
+ return person
47
+ end
48
+
49
+ def to_deal(row, rootmodel)
50
+ deal = GoImport::Deal.new
51
+ # All built in fields are automagically mapped. Add your custom stuff here...
52
+ deal.status = rootmodel.settings.deal.find_status_by_label row['stage_name']
53
+ return deal
54
+ end
55
+
56
+ def to_note(row, rootmodel)
57
+ note = GoImport::Note.new()
58
+ # All built in fields are automagically mapped. Add your custom stuff here...
59
+ return note
60
+ end
61
+
62
+ end
@@ -0,0 +1,13 @@
1
+ first_name,last_name,is_organisation,name,organisation_name,owner,tags,email,address,mobile,phone,customer_status,prospect_status,custom Name#1,custom First name#1,city,country,created_at,creator,description,facebook,fax,id,industry,last_activity_date,linkedin,linkedin_display,private,region,skype,title,twitter,updated_at,website,zip
2
+ Håka,Lind,false,Håka Lind,AD Company,Kalle Kula,"",hakan.lind@ad.com,gatan 2,+46701234123,"",current,,,,Göteborg,Sweden,2015-08-12T09:59:32Z,Kalle Kula,,,,98153928,,,,,false,"",,"Service Manager production system, IT coordinator",,2015-10-02T09:19:17Z,,56130
3
+ ,,true,itteknik,,Kalle Kula,from iPhone,,vägen 23,,,current,,,,Malmö,Sverige,2015-11-25T15:17:20Z,Kalle Kula,,,,108910004,,,,,false,,,,,2015-11-25T15:17:21Z,,34250
4
+ Anna,Berg,false,Anna Berg,itteknik,Kalle Kula,"Flexibla Kontoret,Hantverksappen,vvs",info@roret.se,Brunnvägen 1,070-1110000,"",current,,,,Stockholm,Sweden,2016-02-15T07:41:56Z,Kalle Kula,,,,117069853,,,,,false,"",,"Ekonomi, Admin",,2016-02-15T07:41:56Z,,57450
5
+ Anna,Ståhl,false,Anna Ståhl,AB Bors Rör,Kalle Kula,from iPhone,,,076-800 10 00,,,,,,,,2015-08-19T08:49:26Z,Kalle Kula,,,,98708109,,,,,false,,,,,2015-08-19T08:49:26Z,,
6
+ ,,true,AB Bors Rör,,Kalle Kula,"flexibla kontoret,vvs","","","","",,,,,"","",2015-09-17T12:01:44Z,Kalle Kula,,,,101402913,,,,,false,"",,,,2015-11-09T13:45:58Z,,""
7
+ ,,true,AB Familjen,,Kalle Kula,from iPhone,,,,,,,,,Åre,Sweden,2015-08-19T06:26:58Z,Kalle Kula,,,,98702143,,,,,false,Jämtlands Län,,,,2015-08-21T07:29:44Z,,
8
+ ,,true,AB Laholms,,Kalle Kula,from iPhone,,,,,,,,,,,2015-08-19T06:21:27Z,Kalle Kula,,,,98702035,,,,,false,,,,,2015-08-19T06:21:27Z,,
9
+ ,,true,AD Company,,Kalle Kula,from iPhone,,gatan 2,,,current,,,,Lund,,2015-10-12T14:38:43Z,Kalle Kula,,,,104062513,,,,,false,,,,,2015-11-19T10:40:39Z,,553 00
10
+ ,,true,AB Affär,,Kalle Kula,"",,,,,current,,,,Lund,Sweden,2015-08-18T21:59:33Z,Kalle Kula,,,,98677167,Digital sinage mm,,,,false,,,,,2015-08-18T21:59:33Z,,
11
+ ,,true,AB Affären,,Kalle Kula,"",,,,,,,,,,,2014-09-05T07:45:04Z,Kalle Kula,,,,69769303,Redovisnings konsult,,,,false,,,,,2014-09-05T15:33:17Z,,
12
+ ,,true,Ahlgrens Bilar,,Kalle Kula,"from iPhone,flexibla kontoret,Flexibla/Hantverksappen",,,,,,,,,,,2015-08-19T06:37:39Z,Kalle Kula,,,,98702525,,,,,false,,,,,2015-08-19T06:37:39Z,,
13
+ Alex,Alexandersson,false,Alex Alexandersson,Ahlgrens Bilar,Kalle Kula,from iPhone,Alex.Alexandersson@ahlgrens.se,,0707 840000,,,,,,,,2015-08-19T09:30:24Z,Kalle Kula,,,,98710895,,,,,false,,,,,2015-08-19T09:30:24Z,,
@@ -0,0 +1,3 @@
1
+ first_name,last_name,email
2
+ Kalle,Kula,Kalle@kula.se
3
+ Kalle,Gula,Kalle@gula.se
@@ -0,0 +1,5 @@
1
+ id,name,scope,pipeline_name,pipeline_id,stage_name,stage_id,owner,tags,main_contact_id,main_contact,company_id,company,added_at,added_on,created_at,creator,currency,forecasted_deal_value,hot,last_activity_date,last_stage_change_at,loss_reason,source,updated_at
2
+ 10926776,"avtal, ca 40st",300000,Sales Pipeline,60134,Prospecting,432286,Kalle Kula,"",117069853,Anna Berg,108910004,"itteknik",2015-10-05 08:28:00 UTC,2015-10-05,2015-10-05T08:29:47Z,Kalle Kula,SEK,,true,2015-10-05T08:29:47Z,2015-10-05T08:28:47Z,"",Butiken1,2015-10-05T08:29:47Z
3
+ 11973819,Deal2,100000,Sales Pipeline,60134,Qualified,432290,Kalle Kula,"ftp,filserver,service avtal",98708109,Anna Ståhl,101402913,AB Bors Rör,2015-11-19 10:38:00 UTC,2015-11-19,2015-11-19T10:39:51Z,Kalle Kula,SEK,,true,2015-11-19T10:39:51Z,2015-11-19T10:38:51Z,"",Henrik Henriksson konsult,2015-11-19T10:39:51Z
4
+ 4636237,Deal1,4500,Sales Pipeline,60134,Won,432287,Kalle Kula,cloud,98153928,Håka Lind,104062513,AD Company,2014-09-02 09:40:00 UTC,2014-09-02,2014-09-03T09:41:05Z,Kalle Kula,SEK,,true,2015-02-18T07:39:45Z,2015-02-18T07:39:45Z,"",konsollen,2015-02-18T07:39:45Z
5
+ 4653104,Deal3,2300,Sales Pipeline,60134,Won,432287,Kalle Kula,"",98710895,Alex Alexandersson,98702525,Ahlgrens Bilar,2014-09-04 07:53:00 UTC,2014-09-04,2014-09-04T07:54:31Z,Kalle Kula,SEK,,false,2014-09-04T07:55:07Z,2014-09-04T07:53:00Z,"",Hyresavtal,2014-09-04T07:54:31Z
@@ -0,0 +1,4 @@
1
+ first_name,last_name,company_name,owner,city,country,created_at,creator,description,email,facebook,fax,id,industry,linkedin,mobile,phone,region,skype,status,street,tags,title,twitter,updated_at,website,zip
2
+ Robin,Hood,Reklam1 AB,Kalle Kula,Lund,Sweden,2014-09-04T09:42:33Z,Kalle Kula,,,,,16685740,tillverkning,,0733-11 11 11,,,,Working,,reklam,Försäljnings- och marknadschef,,2014-09-04T09:42:33Z,,
3
+ Tony,Tonfisk,Hantverkare2,Kalle Kula,Borås,,2014-09-04T14:36:01Z,Kalle Kula,"Ringde, intresse finns",tony@tonfisk.se,,,16694927,Magasin/katalog,,0701121212,,,,Unqualified,gatan 11,,Ansvarig,,2014-09-10T14:44:29Z,,
4
+ Thomas,Tomasso,"Bregott fabriken",Kalle Kula,Jönköping,Sweden,2015-06-30T12:47:04Z,Kalle Kula,,thomas.tomasso@bregott.se,,,35451881,,,07088000 00,090505050,,,Working,gatan 12,,Delägare,,2015-06-30T12:47:04Z,,553 17
@@ -0,0 +1,6 @@
1
+ content,owner,noteable_id,noteable_type,noteable_name,created_at,id,noteable_company_name,noteable_first_name,noteable_last_name,updated_at
2
+ Uppdatering av underhållsavtal på befintlig,Kalle Kula,10926776,Deal,Sannarp,2014-09-03T08:49:07Z,22606121,,,,2014-09-03T08:49:07Z
3
+ "Mailat offert, Återkommer...",Kalle Kula,10926776,Deal,Sannarp,2014-09-03T08:50:01Z,22606134,,,,2014-09-03T08:50:01Z
4
+ "Kund mailar och...",Kalle Kula,11973819,Deal,Sannarp,2014-09-03T08:50:28Z,22606143,,,,2014-09-03T08:50:28Z
5
+ "Kört igång...",Kalle Kula,98702525,SalesAccount,,2014-09-03T08:56:28Z,22606290,"",Peder,Johansson,2014-09-03T08:56:28Z
6
+ "Påminnelse ,1, 2...",Kalle Kula,108910004,SalesAccount,,2014-09-03T08:58:13Z,22606323,"",Peder,Johansson,2014-09-03T08:58:13Z
@@ -0,0 +1,5 @@
1
+ content,owner,send_time,done_at,created_at,date,id,remind,taskable_company_name,taskable_first_name,taskable_id,taskable_last_name,taskable_name,taskable_type,updated_at
2
+ "Ring kund ang uppföljning,Kalle Kula,2014-09-04T06:15:00Z,2014-09-04T06:59:32Z,2014-09-03T08:59:53Z,,7338118,true,"""",Petter,69512473,Johansson,,SalesAccount,2014-09-04T06:59:32Z"
3
+ "Ring boka ny utb!,Kalle Kula,2014-09-08T07:45:00Z,,2014-09-04T07:00:36Z,,7402212,true,"""",Petter,69512473,Johansson,,SalesAccount,2014-09-07T14:45:04Z"
4
+ "Ring boka möte för fördjupat samarbete,Kalle Kula,2014-09-08T08:00:00Z,,2014-09-04T07:25:17Z,,7402869,true,"""",Anna,69512622,Andersson,,SalesAccount,2014-09-04T07:25:17Z"
5
+ "Boka nytt möte,Kalle Kula,2014-09-08T10:45:00Z,,2014-09-04T07:18:36Z,,7402562,true,"""",Cyrus,69512640,TheVirus,,SalesAccount,2014-09-07T14:44:51Z"
@@ -94,4 +94,26 @@ describe GoImport::PhoneHelper do
94
94
  # then
95
95
  number.should eq "+4722130030"
96
96
  end
97
+
98
+ it "should handle nil" do
99
+ # given
100
+ source = nil
101
+
102
+ # when
103
+ number = GoImport::PhoneHelper.parse_numbers(source)
104
+
105
+ # then
106
+ number.should eq nil
107
+ end
108
+
109
+ it "should handle empty string" do
110
+ # given
111
+ source = ""
112
+
113
+ # when
114
+ number = GoImport::PhoneHelper.parse_numbers(source)
115
+
116
+ # then
117
+ number.should eq ""
118
+ end
97
119
  end
@@ -27,12 +27,12 @@ describe GoImport::ShardHelper do
27
27
  organization = GoImport::Organization.new
28
28
  organization.name = "Ankeborgs bibliotek"
29
29
  organization.integration_id = n.to_s
30
-
30
+
31
31
  person = GoImport::Person.new
32
32
  person.first_name = "Kalle"
33
33
  person.last_name = "Kula"
34
34
  organization.add_employee(person)
35
-
35
+
36
36
  person = GoImport::Person.new
37
37
  person.first_name = "Nisse"
38
38
  person.last_name = "Nice"
@@ -79,7 +79,7 @@ describe GoImport::ShardHelper do
79
79
  end
80
80
 
81
81
  sharder = GoImport::ShardHelper.new(5)
82
-
82
+
83
83
  # when, then
84
84
  sharder.shard_model(model).length.should eq 4
85
85
  end
@@ -116,6 +116,26 @@ describe GoImport::ShardHelper do
116
116
  sharder.shard_model(model)[0].find_deal_by_integration_id("123").should eq deal
117
117
  end
118
118
 
119
- end
119
+ it "should keep the settings into a shard" do
120
+ # given
121
+
122
+ model = GoImport::RootModel.new
123
+
124
+ model.settings.with_organization do |organization|
125
+ organization.set_custom_field( { :integrationid => 'external_url', :title => 'Link to external system', :type => :Link } )
126
+ end
127
+
128
+ model.settings.with_deal do |deal|
129
+ deal.add_status({:label => "Prospecting", :integration_id => "prospect"})
130
+ deal.add_status({:label => "Qualified", :integration_id => "qualification"})
131
+ deal.add_status({:label => "Won", :integration_id => "won", :assessment => GoImport::DealState::PositiveEndState })
132
+ deal.add_status({:label => "Lost", :integration_id => "Lost", :assessment => GoImport::DealState::NegativeEndState })
133
+ end
134
+
135
+ sharder = GoImport::ShardHelper.new()
120
136
 
137
+ # when, then
138
+ sharder.shard_model(model)[0].settings.should eq model.settings
139
+ end
121
140
 
141
+ end
data/spec/person_spec.rb CHANGED
@@ -25,7 +25,7 @@ describe "Person" do
25
25
  person.set_custom_value('the key', 'the value')
26
26
 
27
27
  person.set_custom_value('the key', 'the value 2')
28
-
28
+
29
29
  value = person.custom_values[0]
30
30
  field = value.field
31
31
 
@@ -78,7 +78,7 @@ describe "Person" do
78
78
  org = GoImport::Organization.new({:integration_id => "123", :name => "Lundalogik"})
79
79
 
80
80
  # when
81
- person.organization = org
81
+ person.set_organization_reference = org
82
82
 
83
83
  # then
84
84
  person.organization.is_a?(GoImport::OrganizationReference).should eq true
@@ -86,7 +86,7 @@ describe "Person" do
86
86
 
87
87
  # *** TODO:
88
88
  # Enable this when sources are fixed, see comment in organization.add_employee
89
-
89
+
90
90
  # it "should be immutable when added to an organization" do
91
91
  # # given
92
92
  # org = GoImport::Organization.new({:integration_id => "123", :name => "Lundalogik"})
@@ -127,4 +127,3 @@ describe "Person" do
127
127
  end
128
128
  end
129
129
  end
130
-