3 window._w.stockview = {
14 onStockViewTemplateReady : function( template, event, eventData )
16 _w.stockview.itemData = null;
17 _w.stockview.ti = _t[template];
18 _w.stockview.limited = ('limitedstockview' == template)
21 _w.stockview.itemId = App.Util.getUrlParam('id');
22 if (0 == _w.stockview.itemId || null == _w.stockview.itemId)
24 _w.stockview.newItem = true;
25 _w.stockview.itemData = {
41 _w.stockview.dates = [];
42 var phData = App.DataStore.getData('publicHolidays');
43 for (var i = 0; i < phData.length; i++)
45 var dateParts = phData[i].holiday.split('-').map(function(part){
46 return parseInt(part, 10);
48 var holiday = new Date(dateParts[0], dateParts[1]-1, dateParts[2]);
49 _w.stockview.dates.push(holiday.toDateString());
52 App.DataStore.setData('sparekeys', [{"value":"1", "label":"Yes"}, {"value":"0", "label":"No"}]);
55 onStockViewPublished : function( template, event, eventData )
58 _w.stockview.ti = _t[template];
59 _w.stockview.limited = ('limitedstockview' == template)
62 _w.stockview.setStockViewFormMeta();
63 _w.stockview.ti.hydrate(_w.stockview.formMeta);
64 if (_w.stockview.newItem)
66 _w.stockview._setupValidation();
67 $('#btnSendToAuction').show();
68 $('#btnUpdate').prop('disabled', false);
69 $('#printStockPdf').hide();
74 true == App.permissions.stockCreate ? $('#btnUpdate').show() : $('#btnUpdate').hide();
75 true == App.permissions.stockRouteAuction && !App.companyData.tC ? $('#optSendToAuction').show() : $('#optSendToAuction').hide();
76 if (!App.permissions.stockUpdateDamages)
78 $('.damages-form').hide();
81 if (!App.permissions.stockUploadPhotos)
83 $('.photos-form').hide();
87 if ( $('#tuhpiDate').val= '' )
89 $('#downloadTuhpi').hide();
92 $('#btnRequestHPI').click(function () {
94 if ('' == $('#HPIusername').val() || '' == $('#HPIpin').val())
96 alert('Please enter a valid username and password.');
100 $('#HPIdropConfirm').slideToggle();
101 $('#HPIresponse').html('');
104 $('#btnRequestHPIAccident').click(function () {
106 if ('' == $('#HPIAccidentUsername').val() || '' == $('#HPIAccidentPin').val())
108 alert('Please enter a valid username and password.');
112 $('#HPIAccidentDropConfirm').slideToggle();
113 $('#HPIAccidentResponse').html('');
117 App.Util.updateCheckboxStyle($('#acceptHPIdisclaimer'));
118 $('#HPIbtnConfirm').click(function () {
120 if ( $('#engineNumber').val() == '' )
122 alert('Please update the Vehicle Engine Number and try again');
125 if ( $('#vinNumber').val() == '' && $('#registrationNumber').val() == '')
127 alert('Please update the Vin Number or the Registration Number and and try again');
130 if (!$('#acceptHPIdisclaimer').is(':checked'))
132 alert('Please accept the conditions before sending.');
135 if (!$('#frmStockView').valid())
139 $('#HPIbtnConfirm').prop('disabled', true);
140 var data = _w.stockview._prepStockUpdateData();
142 'updateStock:' + _w.stockview.itemId, {"Stock":data}, {},
145 var task = _w.stockview.limited
146 ? 'Stock.LimitedUpdate'
149 'updateStock:' + _w.stockview.itemId, 'Stock', task, _w.stockview.itemId,
150 {}, function(){}, _w.taskContractError
152 var user = $('#HPIusername').val();
153 var pass = $('#HPIpin').val();
156 'TransUnionForHPI', 'Stock', 'Utility.TransUnionForHPI', null,
157 {'Filter' : {'username' : user ,'pass' : pass , 'stock' : _w.stockview.itemId}},
160 'TransUnionForHPI',{}, {},
163 $('#HPIdropConfirm').hide();
164 if ('Success' == data.Status)
166 $('#HPIresponse').html('Success on HPI Report');
167 alert('Success on HPI Report');
168 App.DataStore.loadSelectListData(
169 'tuhpi', false, 'Stock', 'Tuhpi.List', null,
172 "stock" : _w.stockview.itemId,
173 "company" : App.companyData.id
178 var tuHpiData = App.DataStore.getData('tuhpi');
180 _w.stockview._loadHpiReportData(tuHpiData);
182 //for (var i = 0; i < tuHpiData.length; i++)
184 // var tuHpiId = tuHpiData[i].id
185 // var tuHpiCreated = tuHpiData[i].created
188 // $('#tuhpiDate').html(tuHpiCreated);
189 // $('#downloadTuhpi').show();
190 // $('#HPIbtnConfirm').prop('disabled', true);
195 // $('#tuhpiDate').html('Not Requested Yet');
196 // $('#downloadTuhpi').hide();
197 // $('#HPIbtnConfirm').prop('disabled', false);
205 $('#HPIresponse').html('API call to remote host failed. No data could be retrieved from remote service.');
206 $('#HPIbtnConfirm').prop('disabled', false);
208 }, function(response)
211 undefined != response.StatusReason
212 ? response.StatusReason
213 : 'API call to remote host failed. No data could be retrieved from remote service.'
215 $('#HPIbtnConfirm').prop('disabled', false);
219 , _w.taskContractError
225 App.Util.updateCheckboxStyle($('#acceptHPIAccidentDisclaimer'));
226 $('#HPIAccidentBtnConfirm').click(function () {
228 if ( $('#engineNumber').val() == '' )
230 alert('Please update the Vehicle Engine Number and try again');
233 if ( $('#vinNumber').val() == '' && $('#registrationNumber').val() == '')
235 alert('Please update the Vin Number or the Registration Number and and try again');
238 if (!$('#acceptHPIAccidentDisclaimer').is(':checked'))
240 alert('Please accept the conditions before sending.');
243 if (!$('#frmStockView').valid())
247 $('#HPIAccidentBtnConfirm').prop('disabled', true);
248 var data = _w.stockview._prepStockUpdateData();
251 'updateStock:' + _w.stockview.itemId, {"Stock":data}, {},
254 var task = _w.stockview.limited
255 ? 'Stock.LimitedUpdate'
258 'updateStock:' + _w.stockview.itemId, 'Stock', task, _w.stockview.itemId,
259 {}, function(){}, _w.taskContractError
261 var user = $('#HPIAccidentUsername').val();
262 var pass = $('#HPIAccidentPin').val();
265 'TransUnionForHPIAccident', 'Stock', 'Utility.TransUnionForHPIAccident', null,
266 {'Filter' : {'username' : user ,'pass' : pass , 'stock' : _w.stockview.itemId}},
269 'TransUnionForHPIAccident',{}, {},
272 $('#HPIdropConfirm').hide();
273 if ('Success' == data.Status)
275 $('#HPIresponse').html('Success on HPI Report');
276 alert('Success on HPI Report');
277 App.DataStore.loadSelectListData(
278 'tuhpi', false, 'Stock', 'Tuhpi.List', null,
281 "stock" : _w.stockview.itemId,
282 "company" : App.companyData.id
287 var tuHpiData = App.DataStore.getData('tuhpi');
289 _w.stockview._loadHpiReportData(tuHpiData);
296 $('#HPIresponse').html('API call to remote host failed. No data could be retrieved from remote service.');
297 $('#HPIbtnConfirm').prop('disabled', false);
299 }, function(response)
302 undefined != response.StatusReason
303 ? response.StatusReason
304 : 'API call to remote host failed. No data could be retrieved from remote service.'
306 $('#HPIbtnConfirm').prop('disabled', false);
310 , _w.taskContractError
316 //$('#downloadTuhpi').click(function () {
318 // 'printTuhpi:' + _w.stockview.itemId, 'Stock', 'Tuhpi.Print', _w.stockview.itemId,
321 // 'printTuhpi:' + _w.stockview.itemId, {}, {},
322 // function () {}, _w.taskExecError,
325 // }, _w.taskContractError
329 $('#btn_mainImage').change(function () {
330 if ('' == $('#mainImage').val())
332 $('#img_mainImage').addClass('error');
333 $('#img_mainImage').removeClass('valid');
337 $('#img_mainImage').removeClass('error');
338 $('#img_mainImage').addClass('valid');
342 $('#btnFetchTu').click(function () {
343 if (!$('#vehicleYear').val()
344 || !$('#vehicleType').val())
346 alert('Vehicle year and type is required to fetch Trade and Retail pricing.');
350 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
351 {}, _w.stockview._onTuReady, _w.taskContractError
354 $('#btnUpdate').prop('disabled', true);
355 $('#btnArchive').click(function () {
357 'archiveStock:' + _w.stockview.itemId,
358 'Stock', 'Stock.MoveToArchive', _w.stockview.itemId, {},
359 _w.stockview._onStockUpdated, _w.taskExecError
362 $('#btnUnarchive').click(function () {
364 'unarchiveStock:' + _w.stockview.itemId,
365 'Stock', 'Stock.MoveToStock', _w.stockview.itemId, {},
366 _w.stockview._onStockUpdated, _w.taskExecError
369 App.Util.updateCheckboxStyle($('#acceptPgHPIdisclaimer'));
370 $('#btnSendToPg').click(function () {
371 var clubs = $('#clubs').val();
374 alert('Please select at least one club.');
377 if (!$('#acceptPgHPIdisclaimer').is(':checked'))
379 alert('Please accept the conditions before sending.');
382 if ('' == $('#registrationNumber').val())
384 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to price guide.');
385 $('#registrationNumber').addClass('error');
386 $('#registrationNumber').removeClass('valid');
391 $('#registrationNumber').removeClass('error');
392 $('#registrationNumber').addClass('valid');
394 if ('' == $('#vinNumber').val())
396 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to price guide.');
397 $('#vinNumber').addClass('error');
398 $('#vinNumber').removeClass('valid');
403 $('#vinNumber').removeClass('error');
404 $('#vinNumber').addClass('valid');
406 if ('' == $('#engineNumber').val())
408 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to price guide.');
409 $('#engineNumber').addClass('error');
410 $('#engineNumber').removeClass('valid');
415 $('#engineNumber').removeClass('error');
416 $('#engineNumber').addClass('valid');
418 if (!$('#frmStockView').valid())
422 $('#btnSendToPg').prop('disabled', true);
424 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
427 'sendToPg:' + _w.stockview.itemId, 'Stock', 'Stock.SendToPriceGuide', _w.stockview.itemId,
429 var clubList = $('#clubs').val();
431 for (var i = 0; i < clubList.length; i++)
433 clubs.push({id: clubList[i]});
436 'sendToPg:' + _w.stockview.itemId, {Context: {clubs: clubs}}, {},
437 _w.stockview._onStockUpdated, _w.taskExecError
439 }, _w.taskContractError
445 $('.back-btn').on('click', function(){
446 window.history.back();
449 $('#btnSendToRetail').click(function () {
450 var reservePrice = $('#retailAmountRequired').val();
451 if ('' == reservePrice || isNaN(reservePrice))
453 alert('Please provide minimum retail price.');
456 if (!$('#frmStockView').valid())
460 $('#btnSendToRetail').prop('disabled', true);
462 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
465 'retailStock:' + _w.stockview.itemId,
466 'Stock', 'Stock.SendToRetail', _w.stockview.itemId, {},
467 _w.stockview._onStockUpdated, _w.taskExecError
472 $('#btnReclaimFromRetail').click(function () {
473 if (!$('#frmStockView').valid())
477 $('#btnReclaimFromRetail').prop('disabled', true);
479 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
482 'retailReclaimStock:' + _w.stockview.itemId,
483 'Stock', 'Stock.ReclaimFromRetail', _w.stockview.itemId, {},
484 _w.stockview._onStockUpdated, _w.taskExecError
489 $('#btnSendToTc').click(function () {
490 if (!$('#frmStockView').valid())
494 $('#btnSendToTc').prop('disabled', true);
495 if (8 != $('#vehicleCategory').val())
498 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
499 {}, _w.stockview._onTuTcUpdateReady, _w.taskContractError
505 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
508 'tcStock:' + _w.stockview.itemId,
509 'Stock', 'Stock.SendToTradeCenter', _w.stockview.itemId, {},
510 _w.stockview._onStockUpdated, _w.taskExecError
516 App.Util.updateCheckboxStyle($('#acceptAuctionHPIdisclaimer'));
517 $('#btnSendToAuction').click(function () {
518 var endDate = $('#endDate').val();
519 var reservePrice = $('#reservePrice').val();
520 if ('' == endDate || '' == reservePrice || isNaN(reservePrice))
522 alert('Please provide end date and reserve price.');
526 if (!$('#frmStockView').valid())
530 if (!$('#acceptAuctionHPIdisclaimer').is(':checked'))
532 alert('Please accept the conditions before sending.');
536 if ('' == $('#mainImage').val())
538 alert('The main image is mandatory for moving a vehicle to auction.');
539 $('#img_mainImage').addClass('error');
540 $('#img_mainImage').removeClass('valid');
545 $('#img_mainImage').removeClass('error');
546 $('#img_mainImage').addClass('valid');
548 if ('' == $('#registrationNumber').val())
550 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to auction.');
551 $('#registrationNumber').addClass('error');
552 $('#registrationNumber').removeClass('valid');
557 $('#registrationNumber').removeClass('error');
558 $('#registrationNumber').addClass('valid');
560 if ('' == $('#vinNumber').val())
562 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to auction.');
563 $('#vinNumber').addClass('error');
564 $('#vinNumber').removeClass('valid');
569 $('#vinNumber').removeClass('error');
570 $('#vinNumber').addClass('valid');
572 if ('' == $('#engineNumber').val())
574 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to auction.');
575 $('#engineNumber').addClass('error');
576 $('#engineNumber').removeClass('valid');
581 $('#engineNumber').removeClass('error');
582 $('#engineNumber').addClass('valid');
586 $('#btnSendToAuction').prop('disabled', true);
587 if (_w.stockview.newItem)
590 data.Stock = _w.stockview._prepStockUpdateData();
591 data.Context = {endDate: endDate, reservePrice: reservePrice};
593 'createStockAuction', data, {},
594 _w.stockview._onStockUpdated, _w.taskExecError
599 if (8 != $('#vehicleCategory').val())
602 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
603 {}, _w.stockview._onTuUpdateReady, _w.taskContractError
609 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
612 'sendToAuction:' + _w.stockview.itemId, 'Stock', 'Stock.SendToAuction', _w.stockview.itemId,
614 var endDate = $('#endDate').val();
615 var reservePrice = $('#reservePrice').val();
617 'sendToAuction:' + _w.stockview.itemId, {Context: {endDate: endDate, reservePrice: reservePrice}}, {},
618 _w.stockview._onStockUpdated, _w.taskExecError
620 }, _w.taskContractError
627 if (null != _w.stockview.itemData)
629 _w.stockview._onDataAndTemplate();
631 if (false == _w.stockview.newItem)
633 _w.stockview.ti.hydrate({
634 'gridPricingHistoryColumnHeaders': {
635 constructor: 'GridColumnHeader',
638 id: 'gridPricingHistoryColumn_Date',
642 id: 'gridPricingHistoryColumn_Trade',
646 id: 'gridPricingHistoryColumn_totalRecon',
647 title: 'Total Recon',
650 id: 'gridPricingHistoryColumn_km',
654 id: 'gridPricingHistoryColumn_pricegOffer',
655 title: 'Priceguide Offer',
658 id: 'gridPricingHistoryColumn_auctionWinningBid',
659 title: 'Auction Winning Bid',
663 'gridPricingHistoryRowRepeater': {}
668 $('#pricinghistory').hide();
671 _w.stockview.itemId = App.Util.getUrlParam('id');
672 if (0 == _w.stockview.itemId || null == _w.stockview.itemId)
675 'createStock', 'Stock', 'Stock.Create',
676 null, {}, function(){}, _w.taskContractError
679 'createStockAuction', 'Stock', 'Stock.CreateAuction',
680 null, {}, function(){}, _w.taskContractError
682 App.DataStore.loadSelectListGroup([
683 {dataId: 'years', isStatic: true, workspace: 'Stock', task: 'Year.SelectList'},
684 {dataId: 'categories', isStatic: true, workspace: 'Stock', task: 'Category.SelectList'},
685 {dataId: 'conditions', isStatic: true, workspace: 'Stock', task: 'Condition.SelectList'},
686 {dataId: 'exteriorColours', isStatic: true, workspace: 'Stock', task: 'ExteriorColour.SelectList'},
687 {dataId: 'interiorColours', isStatic: true, workspace: 'Stock', task: 'InteriorColour.SelectList'},
688 {dataId: 'upholsteries', isStatic: true, workspace: 'Stock', task: 'Upholstery.SelectList'},
689 {dataId: 'papers', isStatic: true, workspace: 'Stock', task: 'Paper.SelectList'},
690 {dataId: 'natis', isStatic: true, workspace: 'Stock', task: 'Natis.SelectList'},
691 {dataId: 'fsh', isStatic: true, workspace: 'Stock', task: 'FullServiceHistory.SelectList'},
692 {dataId: 'fuelTypes', isStatic: true, workspace: 'Stock', task: 'FuelType.SelectList'},
693 {dataId: 'transmissionTypes', isStatic: true, workspace: 'Stock', task: 'TransmissionType.SelectList'},
694 {dataId: 'damages', isStatic: true, workspace: 'Stock', task: 'Damage.SelectList'},
695 {dataId: 'accessories', isStatic: true, workspace: 'Stock', task: 'Accessory.SelectList'},
696 {dataId: 'clubs', isStatic: true, workspace: 'PriceGuide', task: 'Club.SelectList'}
702 _w.stockview.newItem = false;
703 var task = _w.stockview.limited
704 ? 'Stock.LimitedUpdate'
707 'updateStock:' + _w.stockview.itemId, 'Stock', task, _w.stockview.itemId,
708 {}, $.proxy( _w.stockview._onStockViewDataReceived, this ), _w.taskContractError
713 setStockViewFormMeta : function( data )
716 if (undefined != data)
718 for (var i = 0; i < data.damages.length; i++)
720 damages['d' + data.damages[i].damage] = data.damages[i].amount;
728 _w.stockview.formMeta = {
733 dataStoreId : 'years',
734 value : data.vehicleYear ? data.vehicleYear : '',
735 onChange : function () {
736 if (!App.DataStore.getItem('BuildSelect:vehicleYear', false))
738 if (_w.stockview.itemData)
740 _w.stockview.itemData.vehicleYear = $('#vehicleYear').val();
741 _w.stockview._listMakesModelsTypes(function () {
742 if ($('#vehicleYear').val() && $('#vehicleType').val())
745 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
746 {}, _w.stockview._onTuReady, _w.taskContractError
756 id : 'vehicleCategory',
758 dataStoreId : 'categories',
759 value : data.type ? data.type.category.id : '',
760 onChange : function () {
762 if ($(this).val() == 8)
764 $('#retailPrice').val('');
765 $('#tradePrice').val('');
766 $('#listPrice').val('');
767 $('#' + _w.stockview.ti.tid + '_initialTradePrice').val($('#' + _w.stockview.ti.tid + '_tradePrice').html());
768 $('#' + _w.stockview.ti.tid + '_updatedTradePrice').val('');
769 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + '.00');
770 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + '.00');
771 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + '.00');
776 if ($(this).val() == 8 && _w.stockview.itemId == 0)
778 $('#mmCode').html("Other");
781 if (!App.DataStore.getItem('BuildSelect:vehicleCategory', false))
783 if (_w.stockview.itemData)
785 _w.stockview.itemData.type.category.id = $('#vehicleCategory').val();
786 _w.stockview._listMakesModelsTypes();
789 $('#' + _w.stockview.ti.tid + '_makeManual').hide();
790 $('#' + _w.stockview.ti.tid + '_modelManual').hide();
791 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
792 $('#makeManual').val('');
793 $('#modelManual').val('');
794 $('#typeManual').val('');
795 $('#' + _w.stockview.ti.tid + '_make').show();
796 $('#' + _w.stockview.ti.tid + '_model').show();
797 $('#' + _w.stockview.ti.tid + '_type').show();
803 title : 'Vehicle Make',
804 dataStoreId : 'makes',
805 value : data.type ? data.type.model.make.id : '',
806 onChange : function () {
807 if (!App.DataStore.getItem('BuildSelect:vehicleMake', false))
809 $('#vehicleMakeManual').val('');
810 $('#vehicleModelManual').val('');
811 $('#vehicleTypeManual').val('');
812 if (-1 == $('#vehicleMake').val())
814 $('#' + _w.stockview.ti.tid + '_make').hide();
815 $('#' + _w.stockview.ti.tid + '_model').hide();
816 $('#' + _w.stockview.ti.tid + '_type').hide();
817 $('#' + _w.stockview.ti.tid + '_makeManual').show();
818 $('#' + _w.stockview.ti.tid + '_modelManual').show();
819 $('#' + _w.stockview.ti.tid + '_typeManual').show();
823 $('#' + _w.stockview.ti.tid + '_makeManual').hide();
824 $('#' + _w.stockview.ti.tid + '_modelManual').hide();
825 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
826 $('#' + _w.stockview.ti.tid + '_make').show();
827 $('#' + _w.stockview.ti.tid + '_model').show();
828 $('#' + _w.stockview.ti.tid + '_type').show();
829 if (_w.stockview.itemData)
831 _w.stockview.itemData.type.model.make.id = $('#vehicleMake').val();
832 _w.stockview._listMakesModelsTypes();
841 title : 'Vehicle Model',
842 dataStoreId : 'models',
843 value : data.type ? data.type.model.id : '',
844 onChange : function () {
845 if (!App.DataStore.getItem('BuildSelect:vehicleModel', false))
847 $('#vehicleModelManual').val('');
848 $('#vehicleTypeManual').val('');
850 if (-1 == $('#vehicleModel').val())
852 $('#' + _w.stockview.ti.tid + '_model').hide();
853 $('#' + _w.stockview.ti.tid + '_type').hide();
854 $('#' + _w.stockview.ti.tid + '_modelManual').show();
855 $('#' + _w.stockview.ti.tid + '_typeManual').show();
859 $('#' + _w.stockview.ti.tid + '_modelManual').hide();
860 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
861 $('#' + _w.stockview.ti.tid + '_model').show();
862 $('#' + _w.stockview.ti.tid + '_type').show();
863 if (_w.stockview.itemData)
865 _w.stockview.itemData.type.model.id = $('#vehicleModel').val();
866 _w.stockview._listMakesModelsTypes();
875 title : 'Vehicle Type',
876 dataStoreId : 'types',
877 value : data.type ? data.type.id : '',
878 onChange : function () {
879 if (!App.DataStore.getItem('BuildSelect:vehicleType', false))
881 $('#vehicleTypeManual').val('');
882 if (-1 == $('#vehicleType').val())
884 $('#' + _w.stockview.ti.tid + '_type').hide();
885 $('#' + _w.stockview.ti.tid + '_typeManual').show();
889 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
890 $('#' + _w.stockview.ti.tid + '_type').show();
891 if ($('#vehicleYear').val()
892 && $('#vehicleType').val())
895 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
896 {}, _w.stockview._onTuReady, _w.taskContractError
899 if ('' != $(this).val() && null != $(this).val())
903 'GetMmCode' + $(this).val(), 'Stock', 'Type.GetMmCode', null,
904 {id:$(this).val()}, function(response){
905 $('#mmCode').html(response.Data.mmCode);
906 }, _w.taskContractError
911 $('#mmCode').html('');
920 id : 'vehicleMakeManual',
921 title : 'Vehicle Make',
922 //dataStoreId : 'makesManual',
923 value : data.type ? data.type.model.make.id : '',
927 id : 'vehicleModelManual',
928 title : 'Vehicle Model',
929 //dataStoreId : 'modelsManual',
930 value : data.type ? data.type.model.id : '',
934 id : 'vehicleTypeManual',
935 title : 'Vehicle Type',
936 //dataStoreId : 'typesManual',
937 value : data.type ? data.type.id : '',
945 setAttrib : 'readonly',
946 value : data.type ? data.type.mmCode : ''
952 title : 'Stock number',
953 value : data.stockNumber ? data.stockNumber : ''
958 id : 'vehicleFuelType',
960 dataStoreId : 'fuelTypes',
961 value : data.fuelType ? data.fuelType : ''
963 'transmissionType' : {
965 id : 'vehicleTransmissionType',
966 title : 'Transmission Type',
967 dataStoreId : 'transmissionTypes',
968 value : data.transmissionType ? data.transmissionType : ''
972 id : 'vehicleCondition',
974 dataStoreId : 'conditions',
975 value : data.condition ? data.condition : ''
979 id : 'exteriorColour',
980 title : 'Main ext. colour',
981 dataStoreId : 'exteriorColours',
982 value : data.exteriorColour ? data.exteriorColour : ''
986 id : 'interiorColour',
987 title : 'Main int. colour',
988 dataStoreId : 'interiorColours',
989 value : data.interiorColour ? data.interiorColour : ''
993 id : 'vehicleUpholstery',
994 title : 'Upholstery',
995 dataStoreId : 'upholsteries',
996 value : data.upholstery ? data.upholstery : ''
1000 id : 'vehiclePapers',
1002 dataStoreId : 'papers',
1003 value : data.papers ? data.papers : ''
1007 id : 'vehicleNatis',
1009 dataStoreId : 'natis',
1010 value : data.natis ? data.natis : ''
1015 title : 'Spare keys',
1016 dataStoreId : 'sparekeys',
1017 value : undefined != data.spareKeys && null != data.spareKeys
1018 ? (data.spareKeys == true ? "1" : "0")
1021 'fullServiceHistory' : {
1023 id : 'fullServiceHistory',
1024 title : 'Full service history',
1025 dataStoreId : 'fsh',
1026 value : data.fullServiceHistory ? data.fullServiceHistory : ''
1028 'registrationNumber' : {
1030 id : 'registrationNumber',
1031 title : 'Registration no',
1032 value : data.registrationNumber ? data.registrationNumber : '',
1033 style : 'capitalise'
1039 value : data.vinNumber ? data.vinNumber : '',
1040 style : 'capitalise'
1044 id : 'engineNumber',
1046 value : data.engineNumber ? data.engineNumber : '',
1047 style : 'capitalise'
1053 value : data.km ? data.km : ''
1056 type : 'textarea-small',
1058 title : 'FSH notes',
1059 value : data.fshNotes ? data.fshNotes : ''
1062 type : 'damageDetails',
1063 disabled : !App.permissions.stockUpdateDamages,
1065 dataStoreId : 'damages',
1066 data : data.damages ? data.damages : {}
1068 'previousRepairsNoted' : {
1070 id : 'previousRepairsNoted',
1071 title : 'Previous repairs',
1072 style : 'damages-comments',
1073 value : data.previousRepairsNoted ? data.previousRepairsNoted : false
1075 'previousRepairsNotes' : {
1076 type : 'textarea-styled',
1077 disabled : !App.permissions.stockUpdateDamages,
1078 id : 'previousRepairsNotes',
1079 title : 'Previous repairs notes',
1080 style : 'damages-comments',
1081 value : data.previousRepairsNotes ? data.previousRepairsNotes : '',
1082 onChange: function(){
1083 var haveData = ('' != $(this).val() ? true : false);
1084 $('#previousRepairsNoted').prop('checked', haveData);
1087 'damageTotal' : 'R 0.00',
1089 type : 'textarea-styled',
1090 disabled : !App.permissions.stockUpdateDamages,
1092 title : 'Damages comments',
1093 style : 'damages-comments',
1094 value : data.damageNotes ? data.damageNotes : ''
1097 type : 'textarea-styled',
1098 disabled : !App.permissions.stockUpdateCoverReceived,
1099 id : 'coverReceived',
1100 title : 'Cover Received',
1101 style : 'cover-received',
1102 value : data.coverReceived ? data.coverReceived : ''
1105 type : 'checkGroup',
1107 dataStoreId : 'accessories',
1108 itemName : 'accessory',
1109 data : data.accessories ? data.accessories : {}
1111 'accessoryNotes' : {
1112 type : 'textarea-styled',
1113 id : 'accessoryNotes',
1116 areaStyle : 'comment-text-box',
1117 value : data.accessoryNotes ? data.accessoryNotes : ''
1122 baseImage : 'main_img_car.jpg',
1123 view : !App.permissions.stockUploadPhotos,
1124 value : data.mainImage ? data.mainImage : ''
1129 baseImage : 'front_car.jpg',
1130 view : !App.permissions.stockUploadPhotos,
1131 value : data.frontImage ? data.frontImage : ''
1136 baseImage : 'left_car.jpg',
1137 view : !App.permissions.stockUploadPhotos,
1138 value : data.leftImage ? data.leftImage : ''
1143 baseImage : 'right_car.jpg',
1144 view : !App.permissions.stockUploadPhotos,
1145 value : data.rightImage ? data.rightImage : ''
1150 baseImage : 'back_car.jpg',
1151 view : !App.permissions.stockUploadPhotos,
1152 value : data.backImage ? data.backImage : ''
1156 id : 'interiorImage',
1157 baseImage : 'interior_car.jpg',
1158 view : !App.permissions.stockUploadPhotos,
1159 value : data.interiorImage ? data.interiorImage : ''
1164 baseImage : 'engine_car.jpg',
1165 view : !App.permissions.stockUploadPhotos,
1166 value : data.engineImage ? data.engineImage : ''
1171 baseImage : 'copy_of_natis_car.jpg',
1172 view : !App.permissions.stockUploadPhotos,
1173 value : data.natisImage ? data.natisImage : ''
1178 title : 'Select clubs',
1179 dataStoreId : 'clubs',
1186 title : 'Auction end date',
1187 dtopt : {startDate: "+1d", endDate:"+" + App.serverConfig.auctionMaxDays + "d", daysOfWeekDisabled: [0], beforeShowDay: function(date) {
1188 if (date.getDay() == 6 && !App.openDays[App.Util.formatDate(date, 'yyyy-mm-dd')])
1192 for (var i = 0; i < _w.stockview.dates.length; i++)
1194 if (_w.stockview.dates[i] == date.toDateString())
1205 id : 'reservePrice',
1206 title : 'Reserve price',
1209 'retailAmountRequired' : {
1211 id : 'retailAmountRequired',
1212 title : 'Minimum retail price',
1213 value : data.retailAmountRequired ? data.retailAmountRequired : ''
1216 constructor: 'Button',
1220 id: 'printStockPdf',
1221 handler: _w.stockview.printStockPdf
1226 constructor: 'Button',
1230 id: 'printStockAuctionPdf',
1231 handler: _w.stockview.printStockAuctionPdf
1236 type : 'textarea-styled',
1238 title : 'Complaint',
1240 areaStyle : 'span12',
1245 'dateCreatedPriceGuide': data.created,
1246 'loadedOnPriceGuide': data.loadedOnPriceGuide,
1247 'numberOfOffers': data.numberOfOffers,
1248 'highestOffer': 'R ' + data.highestOffer,
1249 'timesListed': data.timesListed,
1250 'highestBid': 'R ' + data.highestBid,
1251 'referenceNumber': data.referenceNumber,
1252 'jobState': ('Stock' == data.jobState || 'Trade Center' == data.jobState)
1255 data.auction.jobState == 'Undone'
1256 || data.auction.jobState == 'Relist'
1264 'tradePrice' : data.tradePrice ? 'R ' + data.tradePrice : 'R 0.00',
1265 'initialTradePrice' : 0.00 != data.oldTradePrice
1266 ? 'R ' + data.oldTradePrice + (data.oldTradePriceDate ? '<br/>' + data.oldTradePriceDate : '')
1268 ? 'R ' + data.tradePrice + (data.tradePriceDate ? '<br/>' + data.tradePriceDate : '')
1271 'updatedTradePrice' : 0.00 != data.oldTradePrice
1272 ? 'R ' + data.tradePrice + (data.tradePriceDate ? '<br/>' + data.tradePriceDate : '')
1274 'retailPrice': data.retailPrice ? 'R ' + data.retailPrice : 'R 0.00',
1276 'listPrice' : data.listPrice ? 'R ' + data.listPrice : 'R 0.00',
1281 printStockPdf : function()
1284 'printStock:' + _w.stockview.itemId, 'Stock', 'Pdf.Print', _w.stockview.itemId,
1287 'printStock:' + _w.stockview.itemId, {}, {},
1288 function () {}, _w.taskExecError,
1291 }, _w.taskContractError
1294 printStockAuctionPdf : function()
1297 'printStock:' + _w.stockview.itemId, 'Auction', 'Pdf.PrintPortal', _w.stockview.itemData.auction.id,
1300 'printStock:' + _w.stockview.itemId, {}, {},
1301 function () {}, _w.taskExecError,
1304 }, _w.taskContractError
1307 loadHistoricalGrid : function( contract, data, options )
1310 'gridStockHistory', {Grid:{Filter:{"PricingHistory.stockId":_w.stockview.itemId}}}, options,
1311 _w.stockview._onHistoryGridDataReceived, _w.taskExecError
1315 _onHistoryGridDataReceived : function( response )
1317 _w.stockview.gridStatus = 'Active';
1318 _w.stockview.ti.hydrateParam('gridPricingHistoryRowRepeater', {});
1321 if (response.Data.DataSet.length == 0)
1323 $('#pricing_history_none_found').show();
1324 $('#PHColumnHeaders').hide();
1328 $('#pricing_history_none_found').hide();
1329 $('#PHColumnHeaders').show();
1332 for (var i = 0; i < response.Data.DataSet.length; i++)
1334 var row = response.Data.DataSet[i];
1340 PriceguideOffer : 'R ',
1341 AuctionWinningBid : 'R '
1349 PriceguideOffer : '',
1350 AuctionWinningBid : '',
1358 'Trade' : row.trade,
1359 'TotalRecon' : row.totalRecon,
1361 'PriceguideOffer' : row.pricegOffer,
1362 'AuctionWinningBid' : row.auctionWinningBid,
1367 _w.stockview.ti.hydrateParam('gridPricingHistoryRowRepeater', {
1368 constructor : 'GridDataRow',
1371 //response.Data.Meta.bind = _w.stockview.pageStockGrid;
1374 _listMakesModelsTypes : function( callback )
1378 if (!_w.stockview.itemData.vehicleYear)
1382 if (_w.stockview.itemData.type
1383 && _w.stockview.itemData.type.category
1384 && _w.stockview.itemData.type.category.id)
1386 App.DataStore.loadSelectListData(
1387 'makes', false, 'Stock', 'Utility.ListMakes', null,
1389 "category" : _w.stockview.itemData.type.category.id,
1390 "year" : _w.stockview.itemData.vehicleYear
1391 }}, {}, $.proxy(function(categoryId)
1393 if (8 == categoryId)
1395 var data = App.DataStore.getData('makes');
1400 App.DataStore.setData('makes', data);
1402 }, this, _w.stockview.itemData.type.category.id)
1404 if (_w.stockview.itemData.type
1405 && _w.stockview.itemData.type.model
1406 && _w.stockview.itemData.type.model.make
1407 && _w.stockview.itemData.type.model.make.id)
1409 App.DataStore.loadSelectListData(
1410 'models', false, 'Stock', 'Utility.ListModels', null,
1412 "make" : _w.stockview.itemData.type.model.make.id,
1413 "category" : _w.stockview.itemData.type.category.id,
1414 "year" : _w.stockview.itemData.vehicleYear
1415 }}, {}, $.proxy(function(categoryId)
1417 if (8 == categoryId)
1419 var data = App.DataStore.getData('models');
1424 App.DataStore.setData('models', data);
1426 }, this, _w.stockview.itemData.type.category.id)
1428 if (_w.stockview.itemData.type.model.id)
1430 App.DataStore.loadSelectListData(
1431 'types', false, 'Stock', 'Utility.ListTypes', null,
1433 "model" : _w.stockview.itemData.type.model.id,
1434 "category" : _w.stockview.itemData.type.category.id,
1435 "year" : _w.stockview.itemData.vehicleYear
1436 }}, {}, $.proxy(function(categoryId, callback)
1438 if (8 == categoryId)
1440 var data = App.DataStore.getData('types');
1445 App.DataStore.setData('types', data);
1451 }, this, _w.stockview.itemData.type.category.id, callback)
1458 _onDataAndTemplate : function ()
1460 _w.stockview.relistReservePrice = _w.stockview.itemData.auction
1461 && _w.stockview.itemData.auction.reservePrice
1462 ? _w.stockview.itemData.auction.reservePrice
1464 $('#reservePrice').val(_w.stockview.relistReservePrice);
1465 if (!_w.stockview.newItem)
1467 App.DataStore.loadSelectListData(
1468 'tuhpi', false, 'Stock', 'Tuhpi.List', null,{"Filter":
1470 "stock" : _w.stockview.itemId,
1471 "company" : App.companyData.id
1474 // data is retrieved
1475 var tuHpiData = App.DataStore.getData('tuhpi');
1477 _w.stockview._loadHpiReportData(tuHpiData);
1479 //for (var i = 0; i < tuHpiData.length; i++)
1481 // var tuHpiId = tuHpiData[i].id
1482 // var tuHpiCreated = tuHpiData[i].created
1487 // $('#tuhpiDate').html(tuHpiCreated);
1488 // $('#downloadTuhpi').show();
1489 // $('#HPIbtnConfirm').prop('disabled', false);
1494 // $('#tuhpiDate').html('Not Requested Yet');
1495 // $('#downloadTuhpi').hide();
1496 // $('#HPIbtnConfirm').prop('disabled', false);
1500 if ('Sold' == _w.stockview.itemData.jobState
1501 && true == _w.stockview.itemData.auction.Within30DaysOfEnd
1502 && App.companyData.id == _w.stockview.itemData.auction.company)
1504 $('#btnDispute').show();
1505 $('#btnLogDispute').click(function() {
1506 var comp = $('#complaint').val();
1509 alert('Please specify the complaint.');
1514 againstCompany : _w.stockview.itemData.auction.soldToCompany,
1515 auction : _w.stockview.itemData.auction.id,
1520 'createDispute', 'Dispute', 'Dispute.Create',
1521 null, {}, function(){
1523 'createDispute', data, {},
1525 alert('Dispute logged.');
1526 $('#dropDsp').slideToggle();
1529 }, _w.taskContractError
1535 $('#endDate').prop('readonly', true);
1538 $.each($.find('.rand-input'), function(i, input) {
1539 total += parseFloat($(input).val());
1541 $('#' + _w.stockview.ti.tid + '_damageTotal').html('R ' + total);
1542 $('#' + _w.stockview.ti.tid + '_initialTradePrice').val($('#' + _w.stockview.ti.tid + '_tradePrice').html());
1543 $('#' + _w.stockview.ti.tid + '_updatedTradePrice').val(_w.stockview.itemData.tradePrice);
1544 $('#retailPrice').val(_w.stockview.itemData.retailPrice);
1545 $('#tradePrice').val(_w.stockview.itemData.tradePrice);
1546 $('#listPrice').val(_w.stockview.itemData.listPrice);
1547 if ('Archived' == _w.stockview.itemData.jobState)
1549 true == App.permissions.stockUnarchive ? $('#btnUnarchive').show() : $('#btnUnarchive').hide();
1551 if ('Retail' == _w.stockview.itemData.jobState)
1553 true == App.permissions.stockReclaimRetail ? $('#btnReclaimFromRetail').show() : $('#btnReclaimFromRetail').hide();
1559 if ('Stock' == _w.stockview.itemData.jobState || _w.stockview.newItem)
1561 true == App.permissions.stockUpdate ? $('#btnUpdate').show() : $('#btnUpdate').hide();
1562 true == App.permissions.stockRouteRetail && !_w.stockview.newItem ? $('#optSendToRetail').show() : $('#optSendToRetail').hide();
1563 true == App.permissions.stockRoutePriceguide ? $('#optSendToPg').show() : $('#optSendToPg').hide();
1564 if (true == App.permissions.stockRouteAuction)
1567 ? $('#btnSendToTc').show()
1568 : $('#optSendToAction').show();
1569 if (_w.stockview.newItem)
1571 $('#btnSendToTc').hide();
1576 $('#optSendToAction').hide();
1578 true == App.permissions.stockArchive ? $('#btnArchive').show() : $('#btnArchive').hide();
1580 if ('Auction' == _w.stockview.itemData.jobState)
1582 (true == App.permissions.stockUpdate && "0.00" == _w.stockview.itemData.highestBid) ? $('#btnUpdate').show() : $('#btnUpdate').hide();
1583 $('#btnSendToTc').hide();
1584 $('#optSendToAction').hide();
1585 $('#optSendToRetail').hide();
1586 $('#optSendToPg').hide();
1587 $('#btnArchive').hide();
1589 if ('Relist' == _w.stockview.itemData.jobState)
1591 (true == App.permissions.stockUpdate && "0.00" == _w.stockview.itemData.highestBid) ? $('#btnUpdate').show() : $('#btnUpdate').hide();
1592 $('#btnSendToTc').hide();
1593 $('#optSendToAction').hide();
1594 $('#optSendToRetail').hide();
1595 $('#optSendToPg').hide();
1596 $('#btnArchive').show();
1599 true == App.permissions.stockPrint ? $('#printStockPdf').show() : $('#printStockPdf').hide();
1600 true == App.permissions.stockB4cReport ? $('#btnB4cAccidentReport').show() : $('#btnB4cAccidentReport').hide();
1601 true == App.permissions.stockBmw ? $('#btnBwmAccidentReport').show() : $('#btnBwmAccidentReport').hide();
1603 if (!App.permissions.pgPage && !App.permissions.auctionPag)
1605 $('.pg-a-data-wrapper').hide();
1607 if (true == App.permissions.pgPage) { $('.price-guide-info').show(); };
1608 if (true == App.permissions.auctionPage) { $('.auction-info').show(); };
1610 if (App.permissions.settingsHpiReport == false)
1612 $('#requestHPIreport').hide();
1613 $('#requestHPIAccidentReport').hide();
1616 if (_w.stockview.newItem)
1618 $('.info-block').hide();
1619 $('#optSendToPg').hide();
1620 $('#printStockPdf').hide();
1621 $('#btnArchive').hide();
1623 //HPI Report Hide on New
1624 $('#requestHPIreport').hide();
1625 $('#requestHPIAccidentReport').hide();
1626 $('.hpiReport').hide();
1630 if (App.permissions.settingsHpiReport)
1632 $('#requestHPIreport').show();
1633 $('#requestHPIAccidentReport').show();
1635 if (null == App.API.taskContract('gridStockHistory'))
1638 'gridStockHistory', 'Stock', 'PricingHistory.Grid', null,
1639 {}, _w.stockview.loadHistoricalGrid, _w.taskContractError
1641 $('#pricing_history_none_found').hide();
1642 $('#PHColumnHeaders').hide();
1646 _w.stockview.loadHistoricalGrid( null, {}, {} );
1650 if ('Sold' == _w.stockview.itemData.jobState)
1652 $('.printStockPdf').addClass('hide');
1653 $('.printStockAuctionPdf').removeClass('hide');
1656 _w.stockview._setupValidation();
1659 _onStockViewDataReceived : function( response )
1661 _w.stockview.itemId = response.Data.id;
1662 _w.stockview.itemData = response.Data;
1663 _w.stockview._listMakesModelsTypes();
1664 _w.stockview.setStockViewFormMeta(response.Data);
1665 _w.stockview.ti.hydrate(_w.stockview.formMeta);
1666 if (_w.stockview.ti.published)
1668 _w.stockview._onDataAndTemplate();
1670 App.DataStore.loadSelectListGroup([
1671 {dataId: 'years', isStatic: true, workspace: 'Stock', task: 'Year.SelectList'},
1672 {dataId: 'categories', isStatic: true, workspace: 'Stock', task: 'Category.SelectList'},
1673 {dataId: 'conditions', isStatic: true, workspace: 'Stock', task: 'Condition.SelectList'},
1674 {dataId: 'exteriorColours', isStatic: true, workspace: 'Stock', task: 'ExteriorColour.SelectList'},
1675 {dataId: 'interiorColours', isStatic: true, workspace: 'Stock', task: 'InteriorColour.SelectList'},
1676 {dataId: 'upholsteries', isStatic: true, workspace: 'Stock', task: 'Upholstery.SelectList'},
1677 {dataId: 'papers', isStatic: true, workspace: 'Stock', task: 'Paper.SelectList'},
1678 {dataId: 'natis', isStatic: true, workspace: 'Stock', task: 'Natis.SelectList'},
1679 {dataId: 'fsh', isStatic: true, workspace: 'Stock', task: 'FullServiceHistory.SelectList'},
1680 {dataId: 'fuelTypes', isStatic: true, workspace: 'Stock', task: 'FuelType.SelectList'},
1681 {dataId: 'transmissionTypes', isStatic: true, workspace: 'Stock', task: 'TransmissionType.SelectList'},
1682 {dataId: 'damages', isStatic: true, workspace: 'Stock', task: 'Damage.SelectList'},
1683 {dataId: 'accessories', isStatic: true, workspace: 'Stock', task: 'Accessory.SelectList'},
1684 {dataId: 'clubs', isStatic: true, workspace: 'PriceGuide', task: 'Club.SelectList'}
1688 _setupValidation : function ()
1690 App.DataStore.listen('regValidation', 'damages', function(id, damages) {
1692 mainImage: "required",
1693 vehicleYear: "required",
1694 vehicleCategory: "required",
1698 vehicleMake: { required: function(){
1699 return $('#vehicleMake').parent().css('display') != 'none';
1701 vehicleModel: { required: function(){
1702 return $('#vehicleModel').parent().css('display') != 'none';
1704 vehicleType: { required: function(){
1705 return $('#vehicleType').parent().css('display') != 'none';
1708 stockNumber: "required",
1710 vehicleMakeManual: { required: function(){
1711 return $('#vehicleMakeManual').parent().parent().css('display') != 'none';
1713 vehicleModelManual: { required: function(){
1714 return $('#vehicleModelManual').parent().parent().css('display') != 'none';
1716 vehicleTypeManual: { required: function(){
1717 return $('#vehicleTypeManual').parent().parent().css('display') != 'none';
1720 vehicleFuelType: "required",
1721 vehicleTransmissionType: "required",
1722 registrationNumber: "required",
1723 km: { required: true, digits: true }
1725 for (var i = 0; i < damages.length; i++)
1727 rules['damage' + damages[i].value + 'Amount'] = {number: true};
1730 $('#frmStockView').validate({
1733 mainImage : "This field is required.",
1734 vehicleYear : "This field is required.",
1735 vehicleCategory : "This field is required.",
1736 vehicleMake : "This field is required.",
1737 vehicleModel : "This field is required.",
1738 stockNumber : "This field is required.",
1739 vehicleType : "This field is required.",
1741 vehicleMakeManual : "This field is required.",
1742 vehicleModelManual : "This field is required.",
1743 vehicleTypeManual : "This field is required.",
1745 vehicleFuelType : "This field is required.",
1746 vehicleTransmissionType : "This field is required.",
1747 registrationNumber : "This field is required.",
1748 km : {required: "This field is required."}
1750 invalidHandler: function(event, validator) {
1751 var errors = validator.numberOfInvalids();
1752 if (0 < _w.stockview.validations && errors)
1754 var message = errors == 1
1755 ? 'You missed 1 field. It has been highlighted'
1756 : 'You missed ' + errors + ' fields. They have been highlighted';
1759 _w.stockview.validations++;
1761 submitHandler: function( form ) {
1762 $('#btnUpdate').prop('disabled', true);
1763 var data = _w.stockview._prepStockUpdateData();
1764 if (_w.stockview.newItem)
1767 'createStock', {"Stock":data}, {},
1768 _w.stockview._onStockUpdated, _w.taskExecError
1774 'updateStock:' + _w.stockview.itemId, {"Stock":data}, {},
1775 _w.stockview._onStockUpdated, _w.taskExecError
1780 $('#btnUpdate').prop('disabled', false);
1783 _w.stockview.validations = 0;
1784 $('#frmStockView').valid();
1786 $('label.error').remove();
1787 $('.valid').removeClass('valid');
1791 _onTuTcUpdateReady : function ()
1794 'TransUnionFromMmCode', {
1796 vehicleYear : parseInt($('#vehicleYear').val()),
1797 type : parseInt($('#vehicleType').val()),
1798 stockId : _w.stockview.itemId
1801 _w.stockview._onTuTcUpdateReceived, function(){}
1805 _onTuTcUpdateReceived : function ( response )
1807 if ('Success' != response.Data.Status)
1810 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1812 App.API.directRoute(
1813 'tcStock:' + _w.stockview.itemId,
1814 'Stock', 'Stock.SendToTradeCenter', _w.stockview.itemId, {},
1815 _w.stockview._onStockUpdated, _w.taskExecError
1821 var vals = response.Data.VehicleDetails[0].Value;
1822 $('#retailPrice').val(vals.RetailPrice);
1823 $('#tradePrice').val(vals.TradePrice);
1824 $('#listPrice').val(vals.NewPrice);
1825 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + vals.RetailPrice + '.00');
1826 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + vals.TradePrice + '.00');
1827 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + vals.NewPrice + '.00');
1829 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1831 App.API.directRoute(
1832 'tcStock:' + _w.stockview.itemId,
1833 'Stock', 'Stock.SendToTradeCenter', _w.stockview.itemId, {},
1834 _w.stockview._onStockUpdated, _w.taskExecError
1840 _onTuUpdateReady : function ()
1843 'TransUnionFromMmCode', {
1845 vehicleYear : parseInt($('#vehicleYear').val()),
1846 type : parseInt($('#vehicleType').val()),
1847 stockId : _w.stockview.itemId
1850 _w.stockview._onTuUpdateReceived, function(){}
1854 _onTuUpdateReceived : function ( response )
1856 if ('Success' != response.Data.Status)
1859 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1862 'sendToAuction:' + _w.stockview.itemId, 'Stock', 'Stock.SendToAuction', _w.stockview.itemId,
1864 var endDate = $('#endDate').val();
1865 var reservePrice = $('#reservePrice').val();
1867 'sendToAuction:' + _w.stockview.itemId, {Context: {endDate: endDate, reservePrice: reservePrice}}, {},
1868 _w.stockview._onStockUpdated, _w.taskExecError
1870 }, _w.taskContractError
1876 var vals = response.Data.VehicleDetails[0].Value;
1877 $('#retailPrice').val(vals.RetailPrice);
1878 $('#tradePrice').val(vals.TradePrice);
1879 $('#listPrice').val(vals.NewPrice);
1880 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + vals.RetailPrice + '.00');
1881 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + vals.TradePrice + '.00');
1882 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + vals.NewPrice + '.00');
1884 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1887 'sendToAuction:' + _w.stockview.itemId, 'Stock', 'Stock.SendToAuction', _w.stockview.itemId,
1889 var endDate = $('#endDate').val();
1890 var reservePrice = $('#reservePrice').val();
1892 'sendToAuction:' + _w.stockview.itemId, {Context: {endDate: endDate, reservePrice: reservePrice}}, {},
1893 _w.stockview._onStockUpdated, _w.taskExecError
1895 }, _w.taskContractError
1901 _onTuReady : function ()
1904 'TransUnionFromMmCode', {
1906 vehicleYear : parseInt($('#vehicleYear').val()),
1907 type : parseInt($('#vehicleType').val())
1910 _w.stockview._onTuReceived, function(){alert('There were no trade and retail from TransUnion');}
1914 _onTuReceived : function ( response )
1916 if ('Success' != response.Data.Status)
1918 if ('No Results From TransUnion' == response.Data.Status || 'No Values From TransUnion' == response.Data.Status) {
1919 //write zero values for transunion failed
1921 $('#retailPrice').val(vals);
1922 $('#tradePrice').val(vals);
1923 $('#listPrice').val(vals);
1924 $('#' + _w.stockview.ti.tid + '_retailPrice').html(vals);
1925 $('#' + _w.stockview.ti.tid + '_tradePrice').html(vals);
1926 $('#' + _w.stockview.ti.tid + '_listPrice').html(vals);
1928 alert(response.Data.Status);
1931 var vals = response.Data.VehicleDetails[0].Value;
1932 $('#retailPrice').val(vals.RetailPrice);
1933 $('#tradePrice').val(vals.TradePrice);
1934 $('#listPrice').val(vals.NewPrice);
1935 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + vals.RetailPrice + '.00');
1936 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + vals.TradePrice + '.00');
1937 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + vals.NewPrice + '.00');
1940 _prepStockUpdateData : function()
1942 var data = _w.stockview.ti.harvest();
1943 data.km = '' == data.km
1945 : parseInt(data.km);
1946 var retailPrice = $('#retailPrice').val();
1947 var tradePrice = $('#tradePrice').val();
1948 var listPrice = $('#listPrice').val();
1949 var retailAmountRequired = $('#retailAmountRequired').val();
1950 data.retailPrice = ('' == retailPrice)
1952 : parseFloat(retailPrice);
1953 data.tradePrice = ('' == tradePrice)
1955 : parseFloat(tradePrice);
1956 data.listPrice = ('' == listPrice)
1958 : parseFloat(listPrice);
1959 data.retailAmountRequired = ('' == retailAmountRequired)
1961 : parseFloat(retailAmountRequired);
1962 delete data.damageTotal;
1963 if (-1 == data.make)
1969 if (-1 == data.model)
1974 if (-1 == data.type)
1978 if ('' == data.mainImage)
1980 delete data.mainImage;
1982 if ('' == data.leftImage)
1984 delete data.leftImage;
1986 if ('' == data.backImage)
1988 delete data.backImage;
1990 if ('' == data.engineImage)
1992 delete data.engineImage;
1994 if ('' == data.frontImage)
1996 delete data.frontImage;
1998 if ('' == data.rightImage)
2000 delete data.rightImage;
2002 if ('' == data.interiorImage)
2004 delete data.interiorImage;
2006 if ('' == data.natisImage)
2008 delete data.natisImage;
2014 _onStockUpdated : function( response )
2016 window.location.hash = '/stock';
2018 _onHpiDownloadButtonClick: function (event)
2020 //console.log('event.currentTarget.dataset',event.currentTarget.dataset);
2022 var hpiType = event.currentTarget.dataset.value;
2023 var hpiId = event.currentTarget.dataset.id;
2025 //console.log('hpiId',hpiId);
2026 //console.log('hpiType',hpiType);
2028 if('ACC' == hpiType)
2031 'printTuhpiAccident:' + _w.stockview.itemId, 'Stock', 'Tuhpi.PrintAccident', _w.stockview.itemId,
2032 {'PdfTemplate':{'recordId':hpiId}}, function () {
2034 'printTuhpiAccident:' + _w.stockview.itemId, {}, {},
2036 }, _w.taskExecError,
2039 }, _w.taskContractError
2045 'printTuhpi:' + _w.stockview.itemId, 'Stock', 'Tuhpi.Print', _w.stockview.itemId,
2046 {'PdfTemplate':{'recordId':hpiId}}, function () {
2048 'printTuhpi:' + _w.stockview.itemId, {}, {},
2050 }, _w.taskExecError,
2053 }, _w.taskContractError
2059 _loadHpiReportData: function (hpiData) {
2060 var tuHpiData = hpiData;
2062 if (0 < tuHpiData.length) {
2063 $('#HPIreportData').html('');
2065 var tuHpiCreated = '';
2067 var tuHpiButtonType = '';
2070 for (var i = 0; i < tuHpiData.length; i++) {
2073 tuHpiId = tuHpiData[i].id;
2074 tuHpiCreated = tuHpiData[i].created;
2075 tuHpiType = tuHpiData[i].hpi_type;
2076 tuHpiButtonType = tuHpiData[i].hpi_type;
2078 var hpiDataHtml = '<div class="control-group mobile-control-group row-fluid" style="display: block;border:1px solid #d3d3d3;" id="' + i + '">'
2079 + '<div class="control-group mobile-control-group span4" style="padding-left:10px; padding-top:13px;">Last date requested:</div>'
2080 + '<div class="control-group mobile-control-group span4" style="padding-left:10px;border-left:1px solid #d3d3d3; padding-top:13px;">'
2081 + '<div id="tuhpiDate_' + i + '" class="span9">Not requested yet.</div>'
2083 + '<div class="control-group mobile-control-group span4" style="padding-left:10px;border-left:1px solid #d3d3d3; padding-top:13px;">'
2084 + '<div id="tuhpiType_' + i + '" class="span8">Not requested yet.</div>'
2085 + '<div class="span4">'
2086 + '<button id="downloadTuhpi_' + tuHpiId + '" class="btn pull-right span12" data-id="' + tuHpiId + '" data-value="' + tuHpiButtonType + '" type="button" style="margin:-5px 0 0 0;">view</button>'
2091 $('#HPIreportData').append(hpiDataHtml);
2094 $('#tuhpiDate_' + i).html(tuHpiCreated);
2095 $('#tuhpiType_' + i).html(tuHpiType);
2096 $('#downloadTuhpi').show();
2097 $('#HPIbtnConfirm').prop('disabled', false);
2100 $('#tuhpiDate_' + i).html('Not Requested Yet');
2101 $('#tuhpiType_' + i).html('Not Requested Yet');
2102 $('#downloadTuhpi').hide();
2106 $('#downloadTuhpi_' + tuHpiId).click(function (event) {
2107 _w.stockview._onHpiDownloadButtonClick(event);