@@ -385,31 +385,82 @@ async function findContact({ user, authHeader, phoneNumber, overridingFormat })
385
385
}
386
386
async function findContactWithName ( { user, authHeader, name } ) {
387
387
const matchedContactInfo = [ ] ;
388
- const contactQuery = `SELECT id,firstName,middleName,lastName,entitytitle,phone FROM contact WHERE firstname ='${ name } '` ;
389
- const personInfo = await axios . post (
390
- `https://${ user . hostname . split ( "." ) [ 0 ] } .suitetalk.api.netsuite.com/services/rest/query/v1/suiteql` ,
391
- {
392
- q : contactQuery
393
- } ,
394
- {
395
- headers : { 'Authorization' : authHeader , 'Content-Type' : 'application/json' , 'Prefer' : 'transient' }
396
- } ) ;
397
- if ( personInfo . data . items . length > 0 ) {
398
- for ( var result of personInfo . data . items ) {
399
- let firstName = result . firstname ?? '' ;
400
- let middleName = result . middlename ?? '' ;
401
- let lastName = result . lastname ?? '' ;
402
- const contactName = ( firstName + middleName + lastName ) . length > 0 ? `${ firstName } ${ middleName } ${ lastName } ` : result . entitytitle ;
403
- matchedContactInfo . push ( {
404
- id : result . id ,
405
- name : contactName ,
406
- phone : result . phone ?? '' ,
407
- homephone : result . homephone ?? '' ,
408
- mobilephone : result . mobilephone ?? '' ,
409
- officephone : result . officephone ?? '' ,
410
- additionalInfo : null ,
411
- type : 'contact'
412
- } )
388
+ const contactSearch = user . userSettings ?. contactsSearchId ?. value ?? [ ] ;
389
+ if ( contactSearch . length === 0 ) {
390
+ contactSearch . push ( 'contact' , 'customer' ) ;
391
+ }
392
+ const { enableSalesOrderLogging = false } = user . userSettings ;
393
+ // const contactQuery = `SELECT id,firstName,middleName,lastName,entitytitle,phone FROM contact WHERE firstname ='${name}' OR lastname ='${name}' OR (firstname || ' ' || lastname) ='${name}'`;
394
+ const contactQuery = `SELECT * FROM contact WHERE LOWER(firstname) =LOWER('${ name } ') OR LOWER(lastname) =LOWER('${ name } ') OR LOWER(entitytitle) =LOWER('${ name } ')` ;
395
+ const customerQuery = `SELECT * FROM customer WHERE LOWER(firstname) =LOWER('${ name } ') OR LOWER(lastname) =LOWER('${ name } ') OR LOWER(entitytitle) =LOWER('${ name } ')` ;
396
+ if ( contactSearch . includes ( 'contact' ) ) {
397
+ const personInfo = await axios . post (
398
+ `https://${ user . hostname . split ( "." ) [ 0 ] } .suitetalk.api.netsuite.com/services/rest/query/v1/suiteql` ,
399
+ {
400
+ q : contactQuery
401
+ } ,
402
+ {
403
+ headers : { 'Authorization' : authHeader , 'Content-Type' : 'application/json' , 'Prefer' : 'transient' }
404
+ } ) ;
405
+ if ( personInfo . data . items . length > 0 ) {
406
+ for ( var result of personInfo . data . items ) {
407
+ let firstName = result . firstname ?? '' ;
408
+ let middleName = result . middlename ?? '' ;
409
+ let lastName = result . lastname ?? '' ;
410
+ const contactName = ( firstName + middleName + lastName ) . length > 0 ? `${ firstName } ${ middleName } ${ lastName } ` : result . entitytitle ;
411
+ matchedContactInfo . push ( {
412
+ id : result . id ,
413
+ name : contactName ,
414
+ phone : result . phone ?? '' ,
415
+ homephone : result . homephone ?? '' ,
416
+ mobilephone : result . mobilephone ?? '' ,
417
+ officephone : result . officephone ?? '' ,
418
+ additionalInfo : null ,
419
+ type : 'contact'
420
+ } )
421
+ }
422
+ }
423
+ }
424
+ if ( contactSearch . includes ( 'customer' ) ) {
425
+ const customerInfo = await axios . post (
426
+ `https://${ user . hostname . split ( "." ) [ 0 ] } .suitetalk.api.netsuite.com/services/rest/query/v1/suiteql` ,
427
+ {
428
+ q : customerQuery
429
+ } ,
430
+ {
431
+ headers : { 'Authorization' : authHeader , 'Content-Type' : 'application/json' , 'Prefer' : 'transient' }
432
+ } ) ;
433
+ if ( customerInfo . data . items . length > 0 ) {
434
+ for ( const result of customerInfo . data . items ) {
435
+ let salesOrders = [ ] ;
436
+ try {
437
+ if ( enableSalesOrderLogging . value ) {
438
+ const salesOrderResponse = await findSalesOrdersAgainstContact ( { user, authHeader, contactId : result . id } ) ;
439
+ for ( const salesOrder of salesOrderResponse ?. data ?. items ) {
440
+ salesOrders . push ( {
441
+ const : salesOrder ?. id ,
442
+ title : salesOrder ?. trandisplayname
443
+ } ) ;
444
+ }
445
+ }
446
+ } catch ( e ) {
447
+ console . log ( { message : "Error in SalesOrder search" } ) ;
448
+ }
449
+ let firstName = result . firstname ?? '' ;
450
+ let middleName = result . middlename ?? '' ;
451
+ let lastName = result . lastname ?? '' ;
452
+ const customerName = ( firstName + middleName + lastName ) . length > 0 ? `${ firstName } ${ middleName } ${ lastName } ` : result . entitytitle ;
453
+ matchedContactInfo . push ( {
454
+ id : result . id ,
455
+ name : customerName ,
456
+ phone : result . phone ?? '' ,
457
+ homephone : result . homephone ?? '' ,
458
+ mobilephone : result . mobilephone ?? '' ,
459
+ altphone : result . altphone ?? '' ,
460
+ additionalInfo : salesOrders . length > 0 ? { salesorder : salesOrders } : { } ,
461
+ type : 'custjob'
462
+ } )
463
+ }
413
464
}
414
465
}
415
466
return {
0 commit comments