3 window._w.systembidview = {
17 onTemplateReady : function( template, event, eventData )
20 _w.systembidview.ti = _t[template];
21 _w.systembidview.limited = ('limitedbidview' == template)
25 _w.systembidview.setStockViewFormMeta();
26 _w.systembidview.ti.hydrate(_w.systembidview.formMeta);
28 // Retrieve initial view data.
29 _w.systembidview.itemId = App.Util.getUrlParam('id');
30 _w.systembidview.bidId = null;
33 var task = 'Auction.View';
35 'viewAuction:' + _w.systembidview.itemId, 'Auction', task, _w.systembidview.itemId,
36 {}, $.proxy( _w.systembidview._onStockViewDataReceived, this ), _w.taskContractError
41 'gridBid' + _w.systembidview.itemId, 'Auction', 'Bid.Grid', _w.systembidview.itemId,
42 {}, _w.systembidview.loadGrid, _w.taskContractError
46 onTemplatePublished : function( template, event, eventData )
49 $('.mobile-header-bottom .bottom-heading').text('BID DETAILS');
55 if (null != _w.systembidview.itemData)
57 _w.systembidview._onStockDataAndTemplate();
59 $('#btnRemove').click(function(){
61 'removeAuction:' + _w.systembidview.itemId, 'Auction', 'Auction.Remove', _w.systembidview.itemId,
64 'removeAuction:' + _w.systembidview.itemId, {}, {},
66 alert('Item removed from auction');
67 window.location.hash = '/systemauctions';
70 }, _w.taskContractError
74 $('#btnUndo').click(function(){
76 'undoAuction:' + _w.systembidview.itemId, 'Auction', 'Auction.Undo', _w.systembidview.itemId,
79 'undoAuction:' + _w.systembidview.itemId, {}, {},
81 alert('Auction Undone');
82 window.location.hash = '/systemauctions';
85 }, _w.taskContractError
88 setTimeout(_w.systembidview.refreshGrid, 30000);
91 refreshGrid : function()
93 if ('systembidview' != App.activePage)
97 _w.systembidview.loadGrid( null, {}, {} );
98 setTimeout(_w.systembidview.refreshGrid, 30000);
101 loadGrid : function( contract, data, options )
104 'gridBid' + _w.systembidview.itemId, data, options,
105 _w.systembidview._onGridDataReceived, _w.taskExecError
109 _onGridDataReceived : function( response )
111 _w.systembidview.ti.hydrateParam('gridRowRepeater', {});
112 _w.systembidview.gridData = {};
113 for (var i = 0; i < response.Data.DataSet.length; i++)
115 var row = response.Data.DataSet[i];
116 _w.systembidview.gridData['i' + row.id] = {
124 'Company' : row.company.name,
125 'Profile' : row.profile.firstName + ' ' + row.profile.familyName,
127 'Created' : row.created,
128 'Status' : row.status
132 _w.systembidview._buildGrid();
135 _buildGrid : function()
137 _w.systembidview.ti.hydrateParam('gridRowRepeater', {
138 constructor : 'GridDataRow',
139 items : _w.systembidview.gridData
143 setStockViewFormMeta : function( data )
145 data = (undefined == data)
148 var damagesHtml = '';
149 var accessoriesHtml = '';
150 if (undefined != data && undefined != data.stock && undefined != data.stock.damages)
152 for (var i = 0; i < data.stock.damages.length; i++)
154 damagesHtml += '<div class="control-group">';
155 damagesHtml += '<label class="control-label valuation-line">' + data.stock.damages[i].damage.name + ':</label>';
156 damagesHtml += '<div class="controls">';
157 damagesHtml += '<p class="information-lines">R ' + data.stock.damages[i].amount + '</p>';
158 damagesHtml += '</div>';
159 damagesHtml += '</div>';
162 if (undefined != data && undefined != data.stock && undefined != data.stock.accessories)
164 for (var i = 0; i < data.stock.accessories.length; i+=2)
166 var acc1 = data.stock.accessories[i]
167 ? data.stock.accessories[i].accessory.name
169 var acc2 = data.stock.accessories[i+1]
170 ? data.stock.accessories[i+1].accessory.name
172 accessoriesHtml += '<div class="row-fluid">';
173 accessoriesHtml += '<div class="span6 textshow">' + acc1 + '</div>';
174 accessoriesHtml += '<div class="span6 textshow">' + acc2 + '</div>';
175 accessoriesHtml += '</div>';
178 if (data.currentBidPrice)
180 _w.systembidview.nextBid = 0.0 == data.currentBidPrice
181 ? parseFloat(data.reservePrice) + parseFloat(data.bidIncrement)
182 : parseFloat(data.currentBidPrice) + parseFloat(data.bidIncrement);
186 _w.systembidview.nextBid = 0.0;
188 _w.systembidview.formMeta = {
189 'gridTitle': 'Bid History',
190 'gridColumnHeaders': {
191 constructor: 'GridColumnHeader',
194 id: 'gridBidColumn_Company',
198 id: 'gridBidColumn_Profile',
202 id: 'gridBidColumn_Bid',
204 style: 'offer-submitted'
207 id: 'gridBidColumn_Created',
211 id: 'gridBidColumn_Status',
216 'gridRowRepeater': {},
217 'vehicle' : data.stock.type
218 ? data.stock.type.model.make.name + ', '
219 + data.stock.type.model.name + ', '
220 + data.stock.type.name
224 value : data.stock.vehicleYear ? data.stock.vehicleYear.name : ''
228 value : data.stock.type ? data.stock.type.category.name : ''
231 title : 'Vehicle Make',
232 value : data.stock.type ? data.stock.type.model.make.name : ''
236 title : 'Vehicle Model',
237 value : data.stock.type ? data.stock.type.model.name : ''
240 title : 'Vehicle Type',
241 value : data.stock.type ? data.stock.type.name : ''
245 value : data.stock.fuelType ? data.stock.fuelType.name : ''
247 'transmissionType' : {
248 title : 'Transmission Type',
249 value : data.stock.transmissionType ? data.stock.transmissionType.name : ''
253 value : data.stock.condition ? data.stock.condition.name : ''
256 title : 'Main ext. colour',
257 value : data.stock.exteriorColour ? data.stock.exteriorColour.name : ''
260 title : 'Main int. colour',
261 value : data.stock.interiorColour ? data.stock.interiorColour.name : ''
264 title : 'Upholstery',
265 value : data.stock.upholstery ? data.stock.upholstery.name : ''
269 value : data.stock.papers ? data.stock.papers.name : ''
273 value : data.stock.natis ? data.stock.natis.name : ''
276 title : 'Spare keys',
277 value : undefined == data.stock.spareKeys
279 : (data.stock.spareKeys ? 'Yes' : 'No')
281 'fullServiceHistory' : {
282 title : 'Full service history',
283 value : undefined == data.stock.fullServiceHistory
285 : data.stock.fullServiceHistory.name
287 'registrationNumber' : {
288 title : 'Registration no',
289 value : data.stock.registrationNumber ? data.stock.registrationNumber : ''
293 value : data.stock.vinNumber ? data.stock.vinNumber : ''
297 value : data.stock.engineNumber ? data.stock.engineNumber : ''
301 value : data.stock.km ? data.stock.km : ''
305 value : data.stock.fshNotes ? data.stock.fshNotes : ''
307 'damages' : damagesHtml,
309 title : 'Total estimated repair price',
310 value : 'R ' + (data.stock ? data.stock.damageTotal : '0.00')
313 title : 'Damages comments',
314 value : data.stock.damageNotes ? data.stock.damageNotes : ''
316 'previousRepairsNoted' : {
317 title : 'Previous repairs noted',
318 value : data.stock.previousRepairsNoted ? 'Yes' : 'No'
320 'previousRepairsNotes' : {
321 title : 'Previous repairs comments',
322 value : data.stock.previousRepairsNotes ? data.stock.previousRepairsNotes : ''
324 'accessories' : accessoriesHtml,
327 value : data.stock.accessoryNotes ? data.stock.accessoryNotes : ''
333 baseImage : 'main_img_car.jpg',
334 value : data.stock.mainImage ? data.stock.mainImage : ''
340 baseImage : 'front_car.jpg',
341 value : data.stock.frontImage ? data.stock.frontImage : ''
347 baseImage : 'left_car.jpg',
348 value : data.stock.leftImage ? data.stock.leftImage : ''
354 baseImage : 'right_car.jpg',
355 value : data.stock.rightImage ? data.stock.rightImage : ''
361 baseImage : 'back_car.jpg',
362 value : data.stock.backImage ? data.stock.backImage : ''
367 id : 'interiorImage',
368 baseImage : 'interior_car.jpg',
369 value : data.stock.interiorImage ? data.stock.interiorImage : ''
375 baseImage : 'engine_car.jpg',
376 value : data.stock.engineImage ? data.stock.engineImage : ''
382 baseImage : 'copy_of_natis_car.jpg',
383 value : data.stock.natisImage ? data.stock.natisImage : ''
386 'infCreated': data.created ? ((data.created).split(' '))[0] : '',
387 'infLoadedOnAuction': data.stock.loadedOnAuction
388 ? ((data.stock.loadedOnAuction).split(' '))[0] : '',
391 value : data.stock.tradePrice ? 'R ' + data.stock.tradePrice : '0.00'
395 value : data.stock.retailPrice ? 'R ' + data.stock.retailPrice : '0.00'
398 title : 'New list price',
399 value : data.stock.listPrice ? 'R ' + data.stock.listPrice : '0.00'
403 title : 'Dealership name',
404 value : data.company ? data.company.name : ''
407 title : 'Name and surname',
408 value : data.company && data.company.contact
409 ? data.company.contact.firstName + ' ' + data.company.contact.familyName
414 value : data.company && data.company.contact
415 ? data.company.contact.mobile
420 value : data.company && data.company.contact
421 ? data.company.contact.email
428 value : _w.systembidview.nextBid,
435 //value : parseFloat(_w.systembidview.nextBid) + parseFloat(data.bidIncrement)
436 value : parseFloat(_w.systembidview.nextBid).toPrecision(2) + parseFloat(data.bidIncrement).toPrecision(2)
439 'infAmount' : _w.systembidview.nextBid,
441 title : 'Active auto-bid',
442 value : data.currentBid && data.currentBid.autoBid
444 ? '<b>R ' + data.currentBid.autoBid.amount + '</b>'
445 : '<b>no current auto-bid.</b>'
449 value : '<b>R ' + _w.systembidview.nextBid + '</b>'
452 title : 'Winning bid',
453 value : data.currentBid ? '<b>R ' + data.currentBid.amount + '</b>' : '<b>R 0.00</b>'
457 value : '<b>' + data.jobState + '</b>'
460 constructor: 'Button',
464 id: 'printAuctionPdf',
465 handler: _w.systembidview.printAuctionPdf
472 printAuctionPdf : function()
475 'printAuctionPdf:' + _w.systembidview.itemId, 'Auction', 'Pdf.Print', _w.systembidview.itemId,
478 'printAuctionPdf:' + _w.systembidview.itemId, {}, {},
479 function () {}, _w.systembidview,
482 }, _w.taskContractError
486 _onBidDataAndTemplate : function ()
488 if ('Archived' == _w.systembidview.bidData.status)
490 true == App.permissions.pgUnArchive ? $('#btnUnarchive').show() : $('#btnUnarchive').hide();
491 $('#btnArchive').hide();
492 $('#optMakeBid').hide();
496 true == App.permissions.pgArchive ? $('#btnArchive').show() : $('#btnArchive').hide();
497 $('#btnUnarchive').hide();
501 _onStockDataAndTemplate : function ()
503 if ('Active' != _w.systembidview.itemData.jobState)
505 $('#btnRemove').hide();
509 $('#btnRemove').show();
512 if ('Sold' != _w.systembidview.itemData.jobState)
514 $('#btnUndo').hide();
518 $('#btnUndo').show();
521 if ('Active' != _w.systembidview.itemData.jobState)
523 $('#optMakeBid').hide();
528 'createBid', 'Auction', 'Bid.Create',
529 _w.systembidview.itemId, {}, function(){}, _w.taskContractError
532 'createAutoBid', 'Auction', 'AutoBid.Create',
533 _w.systembidview.itemId, {}, function(){}, _w.taskContractError
536 $('div.table-header-wrapper').hide();
539 _onStockViewDataReceived : function( response )
541 _w.systembidview.itemId = response.Data.id;
542 _w.systembidview.itemData = response.Data;
543 _w.systembidview.setStockViewFormMeta(response.Data);
544 _w.systembidview.ti.hydrate(_w.systembidview.formMeta);
545 if (response.Data.currentBid)
547 console.log(response.Data.currentBid);
548 _w.systembidview.bidId = response.Data.currentBid.id;
549 _w.systembidview.bidData = response.Data.currentBid;
550 if (_w.systembidview.bidData.company.id != App.companyData.id)
552 $('#bidSection').show();
556 $('#winningBid').show();
561 $('#bidSection').show();
562 _w.systembidview.newItem = true;
563 _w.systembidview.bidData = {};
565 if (_w.systembidview.ti.published)
567 _w.systembidview._onStockDataAndTemplate();
571 _onBidUpdated : function( response )
573 window.location.hash = '/auction';