@@ -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 . billing ,
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 )
@@ -250,6 +264,26 @@ export const createRequest = async ({ dynamicFormData, wareID, accessToken }) =>
250
264
/* eslint-enable camelcase */
251
265
}
252
266
267
+ export const acceptSOW = ( request , sowID , accessToken ) => {
268
+ let sharedRequestData = requestData ( {
269
+ request : request ,
270
+ shipping : request . shippingAddress ,
271
+ billing : request . billingAddress ,
272
+ } )
273
+
274
+ const sow = {
275
+ ...sharedRequestData ,
276
+ name : request . title ,
277
+ description : request . description ,
278
+ provider_names : [ process . env . NEXT_PUBLIC_PROVIDER_NAME ] ,
279
+ winning_proposal_id : sowID ,
280
+ purchase_justifications : [ '' ] ,
281
+ purchase_justification_comment : '' ,
282
+ }
283
+
284
+ return posting ( `/quote_groups/${ request . id } /accept_sow.json` , { pg_quote_group : sow } , accessToken )
285
+ }
286
+
253
287
/** PUT METHODS */
254
288
export const sendRequestToVendor = async ( requestID , accessToken ) => {
255
289
const { data, error } = await updating ( `/quote_groups/${ requestID } /send_to_vendors.json` , { } , accessToken )
0 commit comments