@@ -170,6 +170,37 @@ export const createMessageOrFile = ({ id, quotedWareID, message, files, accessTo
170
170
return posting ( `/quote_groups/${ id } /notes.json` , note , accessToken )
171
171
}
172
172
173
+ const requestData = ( { request, shipping, billing} ) => {
174
+ return {
175
+ /* eslint-disable camelcase */
176
+ provider_ids : [ process . env . NEXT_PUBLIC_PROVIDER_ID ] ,
177
+ proposed_deadline_str : request . proposedDeadline ,
178
+ site : {
179
+ billing_same_as_shipping : request . billingSameAsShipping ,
180
+ name : request . name ,
181
+ } ,
182
+ shipping_address_attributes : {
183
+ city : shipping . city ,
184
+ country : shipping . country ,
185
+ state : shipping . state ,
186
+ street : shipping . street ,
187
+ street2 : shipping . street2 ,
188
+ zipcode : shipping . zipcode ,
189
+ organization_name : process . env . NEXT_PUBLIC_PROVIDER_NAME
190
+ } ,
191
+ billing_address_attributes : {
192
+ city : billing . city ,
193
+ country : billing . country ,
194
+ state : billing . state ,
195
+ street : billing . street ,
196
+ street2 : billing . street2 ,
197
+ zipcode : billing . zipcode ,
198
+ organization_name : process . env . NEXT_PUBLIC_PROVIDER_NAME
199
+ } ,
200
+ /* eslint-enable camelcase */
201
+ }
202
+ }
203
+
173
204
export const createRequest = async ( { dynamicFormData, wareID, accessToken } ) => {
174
205
/* eslint-disable camelcase */
175
206
// the api currently doesn't account for attachments
@@ -185,37 +216,20 @@ export const createRequest = async ({ dynamicFormData, wareID, accessToken }) =>
185
216
requestTimeline = timeline
186
217
}
187
218
219
+ let sharedRequestData = requestData ( {
220
+ request : dynamicFormData ,
221
+ shipping : dynamicFormData . shipping ,
222
+ billing : dynamicFormData . shipping ,
223
+ } )
224
+
188
225
const pg_quote_group = {
189
226
...formData ,
227
+ ...sharedRequestData ,
190
228
name : dynamicFormData . name ,
191
- provider_ids : [ process . env . NEXT_PUBLIC_PROVIDER_ID ] ,
192
229
suppliers_identified : 'Yes' ,
193
230
description : requestDescription ,
194
- proposed_deadline_str : dynamicFormData . proposedDeadline ,
195
231
no_proposed_deadline : dynamicFormData . proposedDeadline ? false : true ,
196
232
timeline : requestTimeline ,
197
- site : {
198
- billing_same_as_shipping : dynamicFormData . billingSameAsShipping ,
199
- name : dynamicFormData . name ,
200
- } ,
201
- shipping_address_attributes : {
202
- city : dynamicFormData . shipping . city ,
203
- country : dynamicFormData . shipping . country ,
204
- state : dynamicFormData . shipping . state ,
205
- street : dynamicFormData . shipping . street ,
206
- street2 : dynamicFormData . shipping . street2 ,
207
- zipcode : dynamicFormData . shipping . zipcode ,
208
- organization_name : process . env . NEXT_PUBLIC_PROVIDER_NAME
209
- } ,
210
- billing_address_attributes : {
211
- city : dynamicFormData . shipping . city ,
212
- country : dynamicFormData . shipping . country ,
213
- state : dynamicFormData . shipping . state ,
214
- street : dynamicFormData . shipping . street ,
215
- street2 : dynamicFormData . shipping . street2 ,
216
- zipcode : dynamicFormData . shipping . zipcode ,
217
- organization_name : process . env . NEXT_PUBLIC_PROVIDER_NAME
218
- } ,
219
233
}
220
234
221
235
let { data, error } = await posting ( `/wares/${ wareID } /quote_groups.json` , { pg_quote_group } , accessToken )
@@ -251,40 +265,21 @@ export const createRequest = async ({ dynamicFormData, wareID, accessToken }) =>
251
265
}
252
266
253
267
export const acceptSOW = ( request , sowID , accessToken ) => {
254
- /* eslint-disable camelcase */
268
+ let sharedRequestData = requestData ( {
269
+ request : request ,
270
+ shipping : request . shippingAddress ,
271
+ billing : request . billingAddress ,
272
+ } )
273
+
255
274
const sow = {
275
+ ...sharedRequestData ,
256
276
name : request . title ,
257
277
description : request . description ,
258
- provider_ids : [ process . env . NEXT_PUBLIC_PROVIDER_ID ] ,
259
278
provider_names : [ process . env . NEXT_PUBLIC_PROVIDER_NAME ] ,
260
- proposed_deadline_str : request . proposedDeadline ,
261
- site : {
262
- billing_same_as_shipping : request . billingSameAsShipping ,
263
- name : request . name ,
264
- } ,
265
- shipping_address_attributes : {
266
- city : request . shippingAddress . city ,
267
- country : request . shippingAddress . country ,
268
- state : request . shippingAddress . state ,
269
- street : request . shippingAddress . street ,
270
- street2 : request . shippingAddress . street2 ,
271
- zipcode : request . shippingAddress . zipcode ,
272
- organization_name : process . env . NEXT_PUBLIC_PROVIDER_NAME
273
- } ,
274
- billing_address_attributes : {
275
- city : request . billingAddress . city ,
276
- country : request . billingAddress . country ,
277
- state : request . billingAddress . state ,
278
- street : request . billingAddress . street ,
279
- street2 : request . billingAddress . street2 ,
280
- zipcode : request . billingAddress . zipcode ,
281
- organization_name : process . env . NEXT_PUBLIC_PROVIDER_NAME
282
- } ,
283
279
winning_proposal_id : sowID ,
284
280
purchase_justifications : [ '' ] ,
285
281
purchase_justification_comment : '' ,
286
282
}
287
- /* eslint-enable camelcase */
288
283
289
284
return posting ( `/quote_groups/${ request . id } /accept_sow.json` , { pg_quote_group : sow } , accessToken )
290
285
}
0 commit comments