Git Repository Public Repository

namibia

URLs

Copy to Clipboard
 
df0489e1eeeeab5a9bd44e1d84fce49924fe1bac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
;
(function () {

    window._w.historicaldata = {

        ti: null,
        rawData: {},
        gridData: {},
        dfrom: '',
        dto: '',
        basketOnly: false,
        gridStatus: null,

        onPageDestruct: function ()
        {
            App.Event.removeListener('historicaldataGridSuFilter', 'SuChange');

        },

        onHistoricaldataPageTemplateReady: function (template, event, eventData)
        {
            _w.historicaldata.ti = _t[template];

            App.DataStore.setData('filterhistoricmakes', []);
            App.DataStore.setData('filterhistoricmodels', []);
            App.DataStore.setData('filterhistorictypes', []);
            App.DataStore.setData('filterhistoricyears', []);

            App.DataStore.loadSelectListData('filterhistoricmakes', false, 'Auction', 'Auction.HistoricMakeSelectList');
            App.DataStore.loadSelectListData('filterhistoricmodels', false, 'Auction', 'Auction.HistoricModelSelectList');
            App.DataStore.loadSelectListData('filterhistorictypes', false, 'Auction', 'Auction.HistoricTypeSelectList');
            App.DataStore.loadSelectListData('filterhistoricyears', false, 'Auction', 'Auction.HistoricYearSelectList');
            _w.historicaldata.ti.hydrate({
                'gridTitle': 'Historical Data',
                'gridTitleSubtext': 'Please use the filters below to narrow down the view',
                'gridTitleButtons': {
                    constructor: 'Button',
                    items: {
                        Export: {
                            preset: 'GridExport',
                            id: 'exportHistoricGrid',
                            handler: _w.historicaldata.exportHistoricGrid,
                            permission: App.permissions.historicalPage
                        }
                    }

                },
                'gridContextFilter': {
                    constructor: 'GridContextFilter',
                    items: {
                        Buttons: {
                            actions: true,
                            searchId: 'btnSearch',
                            bindSearch: _w.historicaldata.searchHistoricGrid,
                            clearId: 'btnClearSearch',
                            bindClear: _w.historicaldata.clearHistoricGridContext

                        }
                    }
                },
                'gridColumnHeaders': {
                    constructor: 'GridColumnHeader',
                    items: {
                        Make: {
                            id: 'gridHistoricalColumn_Make',
                            title: 'MAKE',
                            orderAsc: {
                                id: 'gridHistoricalOrder_MakeAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'make.name', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_MakeDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'make.name', 'DESC')
                            },
                            style: 'hidden-phone'
                        },
                        Model: {
                            id: 'gridHistoricalColumn_Model',
                            title: 'MODEL',
                            orderAsc: {
                                id: 'gridHistoricalOrder_ModelAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'model.name', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_ModelDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'model.name', 'DESC')
                            },
                            style: 'hidden-phone'
                        },
                        Type: {
                            id: 'gridHistoricalColumn_Type',
                            title: 'TYPE',
                            orderAsc: {
                                id: 'gridHistoricalOrder_TypeAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'type.name', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_TypeDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'type.name', 'DESC')
                            }

                        },
                        MMCode: {
                            id: 'gridHistoricalColumn_MMCode',
                            title: 'MM CODE',
                            orderAsc: {
                                id: 'gridHistoricalOrder_MMCodeAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'type.mmCode', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_MMCodeDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'type.mmCode', 'DESC')
                            }

                        },
                        Year: {
                            id: 'gridHistoricalColumn_Year',
                            title: 'YEAR',
                            orderAsc: {
                                id: 'gridHistoricalOrder_YearAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'vehicleYear.name', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_YearDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'vehicleYear.name', 'DESC')
                            },
                            style: 'year'
                        },
                        KM: {
                            id: 'gridHistoricalColumn_KM',
                            title: 'KM'S',
                            orderAsc: {
                                id: 'gridHistoricalOrder_KMAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.km', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_KMDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.km', 'DESC')
                            },
                            style: 'kms hidden-phone'
                        },
                        TradePrice: {
                            id: 'gridHistoricalColumn_TradePrice',
                            title: 'TRADE PRICE',
                            orderAsc: {
                                id: 'gridHistoricalOrder_TradePriceAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.tradePrice', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_TradePriceDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.tradePrice', 'DESC')
                            },
                            style: 'amount'
                        },
                        ReconCosts: {
                            id: 'gridHistoricalColumn_ReconCosts',
                            title: 'RECON COSTS',
                            orderAsc: {
                                id: 'gridHistoricalOrder_ReconCostsAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.damageTotal', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_ReconCostsDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'stock.damageTotal', 'DESC')
                            },
                            style: 'amount'
                        },
                        HighestBid: {
                            id: 'gridHistoricalColumn_HighestBid',
                            title: 'HIGHEST BID',
                            orderAsc: {
                                id: 'gridHistoricalOrder_HighestBidAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'currentBid.amount', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_HighestBidDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'currentBid.amount', 'DESC')
                            },
                            style: 'amount'
                        },
                        DateSold: {
                            id: 'gridHistoricalColumn_DateSold',
                            title: 'DATE SOLD',
                            orderAsc: {
                                id: 'gridHistoricalOrder_DateSoldAsc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'auction.endDate', 'ASC')
                            },
                            orderDesc: {
                                id: 'gridHistoricalOrder_DateSoldDesc',
                                bind: $.proxy(_w.historicaldata.orderHistoricGrid, this, 'auction.endDate', 'DESC')
                            },
                            style: 'date'
                        },
                    }
                },

                'gridColumnFilters': {
                    constructor: 'GridColumnFilter',
                    items: {
                        Make: {
                            id: 'gridHistoricalFilter_Make',
                            context: 'gridHistoricalFilter',
                            dataStoreId: 'filterhistoricmakes',
                            selectEmpty: 'All',
                            bind: function (meta) {
                                _w.historicaldata.changes = 0;
                                $('#' + meta.id).unbind('change');
                                $('#' + meta.id).change(function () {
                                    _w.historicaldata.changes++;
                                    if (1 == _w.historicaldata.changes || 'Active' != _w.historicaldata.gridStatus)
                                    {
                                        return;
                                    }
                                    _w.historicaldata.searchHistoricGrid();
                                });
                            }
                        },
                        Model: {
                            id: 'gridHistoricalFilter_Model',
                            context: 'gridHistoricalFilter',
                            dataStoreId: 'filterhistoricmodels',
                            selectEmpty: 'All',
                        },
                        Type: {
                            id: 'gridHistoricalFilter_Type',
                            context: 'gridHistoricalFilter',
                            dataStoreId: 'filterhistorictypes',
                            selectEmpty: 'All',
                        },
                        MMCode: {
                            id: 'gridHistoricalFilter_MMCode',
                            context: 'gridHistoricalFilter'
                        },
                        Year: {
                            id: 'gridHistoricalFilter_Year',
                            context: 'gridHistoricalFilter',
                            dataStoreId: 'filterhistoricyears',
                            selectEmpty: 'All',
                        },
                        KM: {
                            id: 'gridHistoricalFilter_KM',
                            context: 'gridHistoricalFilter'
                        },
                        TradePrice: {
                            id: 'gridHistoricalFilter_TradePrice',
                            context: 'gridHistoricalFilter'
                        },
                        ReconCosts: {
                            id: 'gridHistoricalFilter_ReconCosts',
                            context: 'gridHistoricalFilter'
                        },
                        HighestBid: {
                            id: 'gridHistoricalFilter_HighestBid',
                            context: 'gridHistoricalFilter'
                        },
                        DateSold: {
                            id: false,
                        },
                    }
                },
                'gridRowRepeater': {},
                'gridPager': {}
            });

            // Retrieve initial grid data.
            if (null == App.API.taskContract('gridHistorical'))
            {
                App.API.getTask(
                    'gridHistorical', 'Auction', 'Auction.HistoricGrid', null,
                    {}, function () {
                        request = {
                            "Grid": {
                                "Page": 1,
                                "Filter": {
                                    'auction.jobState': 'Sold'
                                }
                            }
                        };
                    }, _w.taskContractError
                );
            }
        },

        onHistoricGridPublished: function ()
        {
            $(".gridHistoricalFilter").keyup(function (evt) {
                var charCode = evt.charCode || evt.keyCode;
                if (charCode == 13)
                { //Enter key's keycode
                    $('#btnSearch').click();
                }

            });

            $("body").on('click', 'div.gridHistoricalFilter li', function () {
                $('#btnSearch').click();
            });

            $(".gridHistoricalContext").keyup(function (evt) {
                var charCode = evt.charCode || evt.keyCode;
                if (charCode == 13)
                { //Enter key's keycode
                    $('#btnSearch').click();
                }

            });

            var setTableFormWidth = function ()
            {
                $('.table-form').css({
                    width: $(window).width() * 0.98
                });
            };

            $(window).on('resize', setTableFormWidth);
            setTableFormWidth();
            App.Event.listen('historicaldataGridSuFilter', 'SuChange', $.proxy(_w.historicaldata.loadHistoricGrid, this), 'Recurring');
            setTimeout(_w.historicaldata.refreshGrid, 1200000);
        },

        refreshGrid: function ()
        {
            if ('historicaldata' != App.activePage)
            {
                return;
            }
            _w.historicaldata.loadHistoricGrid(null, {}, {});
            setTimeout(_w.historicaldata.refreshGrid, 1200000);
        },

        pageHistoricGrid: function (page)
        {
            _w.historicaldata.loadHistoricGrid({}, {"Grid": {"Page": page}});
        },

        loadHistoricGrid: function (contract, data, options)
        {
            App.API.execTask(
                'gridHistorical', data, options,
                _w.historicaldata._onHistoricGridDataReceived, _w.taskExecError
            );
        },

        _buildGrid: function ()
        {
            _w.historicaldata.gridData = {};
            for (var i in _w.historicaldata.rawData.DataSet)
            {
                var row = _w.historicaldata.rawData.DataSet[i];

                _w.historicaldata.gridData['i' + row.id] = {
                    bind: function (meta) {
                        $('#row' + meta.rowId).click(function (e) {
                            window.location = '#/' + meta.surl + '?id=' + meta.rowId;
                            console.log('#/' + meta.surl + '?id=' + meta.rowId);
                        });
                    },
                    surl: 'historyview',
                    prepend: {
                        TradePrice: 'R ',
                        ReconCosts: 'R ',
                        HighestBid: 'R '
                    },
                    rowId: row.id,
                    style: {
                        Make: 'make hidden-phone',
                        Model: 'hidden-phone',
                        Type: 'type',
                        MMCode: '',
                        Year: 'year',
                        KM: 'hidden-phone',
                        TradePrice: 'amount',
                        ReconCosts: 'amount',
                        HighestBid: 'amount',
                        DateSold: 'date'
                    },
                    items: {
                        'id': row.id,
                        'Make': row.stock.type.model.make.name,
                        'Model': row.stock.type.model.name,
                        'Type': row.stock.type.name,
                        'MMCode': row.stock.type.mmCode,
                        'Year': row.stock.vehicleYear.name,
                        'KM': row.stock.km,
                        'TradePrice': row.stock.tradePrice,
                        'ReconCosts': row.stock.damageTotal,
                        'HighestBid': row.currentBid.amount,
                        'DateSold': row.endDate
                    }
                };
            }
            _w.historicaldata.ti.hydrateParam('gridRowRepeater', {
                constructor: 'GridDataRow',
                items: _w.historicaldata.gridData
            });
        },

        rebuildGrid: function ()
        {
            if ('historicaldata' != App.activePage)
            {
                return;
            }
            _w.historicaldata._buildGrid();
            setTimeout(_w.historicaldata.rebuildGrid, 5000);
        },

        _onHistoricGridDataReceived: function (response)
        {
            _w.historicaldata.gridStatus = 'Sold';
            if (!_w.timeRebuilder)
            {
                _w.timeRebuilder = true;
                setTimeout(_w.historicaldata.rebuildGrid, 5000);
            }
            _w.historicaldata.ti.hydrateParam('gridRowRepeater', {});
            _w.historicaldata.currentFilters = response.Data.Meta.Filters;
            _w.populateFilters(response.Data.Meta.Filters, {
                'make.id': 'gridHistoricalFilter_Make',
                'model.id': 'gridHistoricalFilter_Model',
                'type.id': 'gridHistoricalFilter_Type',
                'type.mmCode': 'gridHistoricalFilter_MMCode',
                'vehicleYear.id': 'gridHistoricalFilter_Year',
                'stock.km': 'gridHistoricalFilter_KM',
                'stock.tradePrice': 'gridHistoricalFilter_TradePrice',
                'stock.damageTotal': 'gridHistoricalFilter_ReconCosts',
                'currentBid.amount': 'gridHistoricalFilter_HighestBid',
            });
            $('select.gridHistoricalFilter').each(function (i, elem) {
                $(elem).selectpicker('refresh');
            });
            _w.historicaldata.rawData = {
                DataSet: {},
                Meta: response.Data.Meta
            };
            for (var i = 0; i < response.Data.DataSet.length; i++)
            {
                _w.historicaldata.rawData.DataSet['a' + response.Data.DataSet[i]['id']] = response.Data.DataSet[i];
            }


            $('#placeholderLogo').hide();
            _w.historicaldata._buildGrid();
            _w.historicaldata.rawData.Meta.itemName = 'stockPager';
            _w.historicaldata.rawData.Meta.bind = _w.historicaldata.pageHistoricGrid;
            _w.historicaldata.ti.hydrateParam('gridPager', {
                constructor: 'GridPager',
                items: [_w.historicaldata.rawData.Meta]
            });
        },

        exportHistoricGrid: function ()
        {
            App.API.execTask(
                'gridHistorical', {}, {'ExportToExcel': true},
                _w.historicaldata._onExportReceived, _w.taskExecError,
                'EXPORT', true
            );
        },

        _onExportReceived: function (response)
        {
            var win = window.open();
            win.document.write(response);
        },

        clearHistoricGridContext: function ()
        {
            _w.historicaldata.gridStatus = 'Inactive';
            try
            {
                $('select.gridHistoricalFilter').each(function (i, elem) {
                    $(elem).selectpicker('val', '');
                    $(elem).selectpicker('refresh');
                });
            }
            catch (err)
            {
                console.log(err);
            }
            $('.gridHistoricalContext').val('');
            $('.gridHistoricalFilter').val('');
            $('#gridHistoricalFilter_Status').val('Sold');
            _w.historicaldata.searchHistoricGrid(true);
        },

        searchHistoricGrid: function (resetOrder)
        {
            _w.historicaldata.gridStatus = 'Inactive';
            var filter = {
                count: 0,
                filters: {}
            };

            filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_Make', 'make.id');
            filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_Model', 'model.id');
            filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_Type', 'type.id');
            filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_MMCode', 'type.mmCode');
            filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_Year', 'vehicleYear.id');
            filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_KM', 'stock.km');
            filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_TradePrice', 'stock.tradePrice');
            filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_ReconCosts', 'stock.damageTotal');
            filter = _w.filterIfnotEmpty(filter, 'gridHistoricalFilter_HighestBid', 'currentBid.amount');

            var data = {
                "filter": {
                    "Filters": filter.filters
                }
            };

            App.DataStore.loadSelectListData('filterhistoricmakes', false, 'Auction', 'Auction.HistoricMakeSelectList', null, data, undefined, function()
            {
                if (undefined != _w.historicaldata.currentFilters['make.id'])
                {
                    $('#gridHistoricalFilter_Make').val(_w.historicaldata.currentFilters['make.id']);
                    $('#gridHistoricalFilter_Make').selectpicker('refresh');
                }
            });
            App.DataStore.loadSelectListData('filterhistoricmodels', false, 'Auction', 'Auction.HistoricModelSelectList', null, data, undefined, function()
            {
                if (undefined != _w.historicaldata.currentFilters['model.id'])
                {
                    $('#gridHistoricalFilter_Model').val(_w.historicaldata.currentFilters['model.id']);
                    $('#gridHistoricalFilter_Model').selectpicker('refresh');
                }
            });
            App.DataStore.loadSelectListData('filterhistorictypes', false, 'Auction', 'Auction.HistoricTypeSelectList', null, data, undefined, function()
            {
                if (undefined != _w.historicaldata.currentFilters['type.id'])
                {
                    $('#gridHistoricalFilter_Type').val(_w.historicaldata.currentFilters['type.id']);
                    $('#gridHistoricalFilter_Type').selectpicker('refresh');
                }
            });
            App.DataStore.loadSelectListData('filterhistoricyears', false, 'Auction', 'Auction.HistoricYearSelectList', null, data, undefined, function()
            {
                if (undefined != _w.historicaldata.currentFilters['vehicleYear.id'])
                {
                    $('#gridHistoricalFilter_Year').val(_w.historicaldata.currentFilters['vehicleYear.id']);
                    $('#gridHistoricalFilter_Year').selectpicker('refresh');
                }
            });


            var request = {
                "Grid": {
                    "Page": 1,
                    "Filter": filter.filters
                }
            };
            if (resetOrder)
            {
                request.Grid.OrderBy = {
                    'make.name': 'ASC',
                    'model.name': 'ASC',
                    'auction.endDate': 'DESC'
                };
            }
            _w.historicaldata.loadHistoricGrid(null, request, {});
        },

        orderHistoricGrid: function (field, direction)
        {
            var order = {};
            order[field] = direction;
            _w.historicaldata.loadHistoricGrid({}, {"Grid": {"Page": 1, "OrderBy": order}});
        }

    };

})();

Commits for namibiapublic/js/app/portal-workspace/historicaldata.js

Diff revisions: vs.
Revision Author Commited Message
df0489 ... Mark Fri 14 Oct, 2016 10:01:00 +0000

initial commit