1
+ chrome . runtime . onMessage . addListener ( function ( message , sender , sendResponse ) {
2
+ // Remove any existing warnings
3
+ let previousWarning = $ ( "#existing-order-warning" )
4
+ if ( previousWarning . length > 0 ) {
5
+ previousWarning . remove ( ) ;
6
+ }
7
+ waitForBrewmanLoad ( showWarning ) ;
8
+ } ) ;
9
+
10
+ function showWarning ( ) {
11
+ jNode = $ ( "div[value='[object Object]']" ) ;
12
+ url = window . location . pathname . split ( "/" ) ;
13
+
14
+ // If page is outlet CRM screen
15
+ if ( url [ 1 ] == "outlet" && url [ 3 ] == "crm" ) {
16
+ chrome . storage . local . get ( "apiKey" , ( storage ) => {
17
+
18
+ // Get tenant from user API
19
+ fetch ( "https://brewman.premiersystems.com/webapi/user/v1/getCurrentUserContext" , {
20
+ method : "POST" ,
21
+ headers : {
22
+ "Api-Token" : storage [ "apiKey" ] ,
23
+ "Accept" : "*/*" ,
24
+ "content-type" : "application/json"
25
+ } ,
26
+ body : JSON . stringify ( { } )
27
+ } )
28
+ . then ( ( response ) => response . json ( ) )
29
+ . then ( ( data ) => {
30
+ let tenantId = data [ "userContext" ] [ "user" ] [ "readOnly" ] [ "selectedTenant" ] ;
31
+ let outletId = url [ 2 ] ;
32
+ let d = new Date ( ) ;
33
+ d . setMonth ( d . getMonth ( ) - 3 ) ;
34
+ let dateFilter = d . getFullYear ( ) + "-" + d . getMonth ( ) + "-" + d . getDate ( ) ;
35
+ return fetch ( "https://brewman.premiersystems.com/webapi/order/v1/getOrdersByFilter" , {
36
+ method : "POST" ,
37
+ headers : {
38
+ "Api-Token" : storage [ "apiKey" ] ,
39
+ "Accept" : "*/*" ,
40
+ "content-type" : "application/json"
41
+ } ,
42
+ body : JSON . stringify ( {
43
+ tenantId : tenantId ,
44
+ filter : {
45
+ fromDespatchDate : dateFilter ,
46
+ maximumResults : 100 ,
47
+ singleOutletId : outletId ,
48
+ limitStatuses : [ "Open" ]
49
+ }
50
+ } )
51
+ } )
52
+ } )
53
+ . then ( ( response ) => response . json ( ) )
54
+ . then ( ( data ) => {
55
+ if ( data [ "results" ] [ "matchingCount" ] > 0 ) {
56
+ // TODO: Write function for creating alerts
57
+
58
+ let orderWarning = document . createElement ( "div" ) ;
59
+ orderWarning . setAttribute ( "class" , "v-alert bm-headline warning" ) ;
60
+ orderWarning . setAttribute ( "id" , "existing-order-warning" )
61
+
62
+ let orderWarningWrapper = document . createElement ( "div" ) ;
63
+ orderWarningWrapper . setAttribute ( "class" , "v-alert__content" ) ;
64
+ orderWarningWrapper . innerText = " There is currently already an open order for this outlet: " ;
65
+
66
+ orderWarning . prepend ( orderWarningWrapper ) ;
67
+
68
+ data [ "results" ] [ "orders" ] . forEach ( ( value , index , array ) => {
69
+ console . log ( value ) ;
70
+ let orderLink = document . createElement ( "a" ) ;
71
+ orderLink . setAttribute ( "href" , "https://brewman.premiersystems.com/orders/" + value [ "header" ] [ "readOnly" ] [ "id" ] + "/view" ) ;
72
+ orderLink . innerText = value [ "header" ] [ "readOnly" ] [ "orderNumber" ] ;
73
+ orderWarningWrapper . append ( orderLink ) ;
74
+ if ( index + 1 != array . length ) {
75
+ orderWarningWrapper . append ( ", " ) ;
76
+ }
77
+ } ) ;
78
+
79
+ jNode . prepend ( orderWarning ) ;
80
+ }
81
+ } )
82
+ } ) ;
83
+ } ;
84
+ }
0 commit comments