3 window._w.stockview = {
14 onStockViewTemplateReady : function( template, event, eventData )
16 console.log('onstockready');
17 _w.stockview.itemData = null;
18 _w.stockview.ti = _t[template];
19 _w.stockview.limited = ('limitedstockview' == template)
22 _w.stockview.itemId = App.Util.getUrlParam('id');
23 if (0 == _w.stockview.itemId || null == _w.stockview.itemId)
25 _w.stockview.newItem = true;
26 _w.stockview.itemData = {
42 _w.stockview.dates = [];
43 var phData = App.DataStore.getData('publicHolidays');
44 for (var i = 0; i < phData.length; i++)
46 var dateParts = phData[i].holiday.split('-').map(function(part){
47 return parseInt(part, 10);
49 var holiday = new Date(dateParts[0], dateParts[1]-1, dateParts[2]);
50 _w.stockview.dates.push(holiday.toDateString());
53 App.DataStore.setData('sparekeys', [{"value":"1", "label":"Yes"}, {"value":"0", "label":"No"}]);
56 onStockViewPublished : function( template, event, eventData )
59 _w.stockview.ti = _t[template];
60 _w.stockview.limited = ('limitedstockview' == template)
63 _w.stockview.setStockViewFormMeta();
64 _w.stockview.ti.hydrate(_w.stockview.formMeta);
65 if (_w.stockview.newItem)
67 _w.stockview._setupValidation();
68 $('#btnSendToAuction').show();
69 $('#btnUpdate').prop('disabled', false);
70 $('#printStockPdf').hide();
75 true == App.permissions.stockCreate ? $('#btnUpdate').show() : $('#btnUpdate').hide();
76 true == App.permissions.stockRouteAuction && !App.companyData.tC ? $('#optSendToAuction').show() : $('#optSendToAuction').hide();
77 if (!App.permissions.stockUpdateDamages)
79 $('.damages-form').hide();
82 if (!App.permissions.stockUploadPhotos)
84 $('.photos-form').hide();
88 if ( $('#tuhpiDate').val= '' )
90 $('#downloadTuhpi').hide();
93 $('#btnRequestHPI').click(function () {
95 if ('' == $('#HPIusername').val() || '' == $('#HPIpin').val())
97 alert('Please enter a valid username and password.');
101 $('#HPIdropConfirm').slideToggle();
102 $('#HPIresponse').html('');
105 $('#btnRequestHPIAccident').click(function () {
107 if ('' == $('#HPIAccidentUsername').val() || '' == $('#HPIAccidentPin').val())
109 alert('Please enter a valid username and password.');
113 $('#HPIAccidentDropConfirm').slideToggle();
114 $('#HPIAccidentResponse').html('');
118 App.Util.updateCheckboxStyle($('#acceptHPIdisclaimer'));
119 $('#HPIbtnConfirm').click(function () {
121 if ( $('#engineNumber').val() == '' )
123 alert('Please update the Vehicle Engine Number and try again');
126 if ( $('#vinNumber').val() == '' && $('#registrationNumber').val() == '')
128 alert('Please update the Vin Number or the Registration Number and and try again');
131 if (!$('#acceptHPIdisclaimer').is(':checked'))
133 alert('Please accept the conditions before sending.');
136 if (!$('#frmStockView').valid())
140 $('#HPIbtnConfirm').prop('disabled', true);
141 var data = _w.stockview._prepStockUpdateData();
143 'updateStock:' + _w.stockview.itemId, {"Stock":data}, {},
146 var task = _w.stockview.limited
147 ? 'Stock.LimitedUpdate'
150 'updateStock:' + _w.stockview.itemId, 'Stock', task, _w.stockview.itemId,
151 {}, function(){}, _w.taskContractError
153 var user = $('#HPIusername').val();
154 var pass = $('#HPIpin').val();
157 'TransUnionForHPI', 'Stock', 'Utility.TransUnionForHPI', null,
158 {'Filter' : {'username' : user ,'pass' : pass , 'stock' : _w.stockview.itemId}},
161 'TransUnionForHPI',{}, {},
164 $('#HPIdropConfirm').hide();
165 if ('Success' == data.Status)
167 $('#HPIresponse').html('Success on HPI Report');
168 alert('Success on HPI Report');
169 App.DataStore.loadSelectListData(
170 'tuhpi', false, 'Stock', 'Tuhpi.List', null,
173 "stock" : _w.stockview.itemId,
174 "company" : App.companyData.id
179 var tuHpiData = App.DataStore.getData('tuhpi');
181 _w.stockview._loadHpiReportData(tuHpiData);
183 //for (var i = 0; i < tuHpiData.length; i++)
185 // var tuHpiId = tuHpiData[i].id
186 // var tuHpiCreated = tuHpiData[i].created
189 // $('#tuhpiDate').html(tuHpiCreated);
190 // $('#downloadTuhpi').show();
191 // $('#HPIbtnConfirm').prop('disabled', true);
196 // $('#tuhpiDate').html('Not Requested Yet');
197 // $('#downloadTuhpi').hide();
198 // $('#HPIbtnConfirm').prop('disabled', false);
206 $('#HPIresponse').html('API call to remote host failed. No data could be retrieved from remote service.');
207 $('#HPIbtnConfirm').prop('disabled', false);
209 }, function(response)
212 undefined != response.StatusReason
213 ? response.StatusReason
214 : 'API call to remote host failed. No data could be retrieved from remote service.'
216 $('#HPIbtnConfirm').prop('disabled', false);
220 , _w.taskContractError
226 App.Util.updateCheckboxStyle($('#acceptHPIAccidentDisclaimer'));
227 $('#HPIAccidentBtnConfirm').click(function () {
229 if ( $('#engineNumber').val() == '' )
231 alert('Please update the Vehicle Engine Number and try again');
234 if ( $('#vinNumber').val() == '' && $('#registrationNumber').val() == '')
236 alert('Please update the Vin Number or the Registration Number and and try again');
239 if (!$('#acceptHPIAccidentDisclaimer').is(':checked'))
241 alert('Please accept the conditions before sending.');
244 if (!$('#frmStockView').valid())
248 $('#HPIAccidentBtnConfirm').prop('disabled', true);
249 var data = _w.stockview._prepStockUpdateData();
252 'updateStock:' + _w.stockview.itemId, {"Stock":data}, {},
255 var task = _w.stockview.limited
256 ? 'Stock.LimitedUpdate'
259 'updateStock:' + _w.stockview.itemId, 'Stock', task, _w.stockview.itemId,
260 {}, function(){}, _w.taskContractError
262 var user = $('#HPIAccidentUsername').val();
263 var pass = $('#HPIAccidentPin').val();
266 'TransUnionForHPIAccident', 'Stock', 'Utility.TransUnionForHPIAccident', null,
267 {'Filter' : {'username' : user ,'pass' : pass , 'stock' : _w.stockview.itemId}},
270 'TransUnionForHPIAccident',{}, {},
273 $('#HPIdropConfirm').hide();
274 if ('Success' == data.Status)
276 $('#HPIresponse').html('Success on HPI Report');
277 alert('Success on HPI Report');
278 App.DataStore.loadSelectListData(
279 'tuhpi', false, 'Stock', 'Tuhpi.List', null,
282 "stock" : _w.stockview.itemId,
283 "company" : App.companyData.id
288 var tuHpiData = App.DataStore.getData('tuhpi');
290 _w.stockview._loadHpiReportData(tuHpiData);
297 $('#HPIresponse').html('API call to remote host failed. No data could be retrieved from remote service.');
298 $('#HPIbtnConfirm').prop('disabled', false);
300 }, function(response)
303 undefined != response.StatusReason
304 ? response.StatusReason
305 : 'API call to remote host failed. No data could be retrieved from remote service.'
307 $('#HPIbtnConfirm').prop('disabled', false);
311 , _w.taskContractError
317 //$('#downloadTuhpi').click(function () {
319 // 'printTuhpi:' + _w.stockview.itemId, 'Stock', 'Tuhpi.Print', _w.stockview.itemId,
322 // 'printTuhpi:' + _w.stockview.itemId, {}, {},
323 // function () {}, _w.taskExecError,
326 // }, _w.taskContractError
330 $('#btn_mainImage').change(function () {
331 if ('' == $('#mainImage').val())
333 $('#img_mainImage').addClass('error');
334 $('#img_mainImage').removeClass('valid');
338 $('#img_mainImage').removeClass('error');
339 $('#img_mainImage').addClass('valid');
343 $('#btnFetchTu').click(function () {
344 if (!$('#vehicleYear').val()
345 || !$('#vehicleType').val())
347 alert('Vehicle year and type is required to fetch Trade and Retail pricing.');
351 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
352 {}, _w.stockview._onTuReady, _w.taskContractError
355 $('#btnUpdate').prop('disabled', true);
356 $('#btnArchive').click(function () {
358 'archiveStock:' + _w.stockview.itemId,
359 'Stock', 'Stock.MoveToArchive', _w.stockview.itemId, {},
360 _w.stockview._onStockUpdated, _w.taskExecError
363 $('#btnUnarchive').click(function () {
365 'unarchiveStock:' + _w.stockview.itemId,
366 'Stock', 'Stock.MoveToStock', _w.stockview.itemId, {},
367 _w.stockview._onStockUpdated, _w.taskExecError
370 App.Util.updateCheckboxStyle($('#acceptPgHPIdisclaimer'));
371 $('#btnSendToPg').click(function () {
372 var clubs = $('#clubs').val();
375 alert('Please select at least one club.');
378 if (!$('#acceptPgHPIdisclaimer').is(':checked'))
380 alert('Please accept the conditions before sending.');
383 if ('' == $('#registrationNumber').val())
385 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to price guide.');
386 $('#registrationNumber').addClass('error');
387 $('#registrationNumber').removeClass('valid');
392 $('#registrationNumber').removeClass('error');
393 $('#registrationNumber').addClass('valid');
395 if ('' == $('#vinNumber').val())
397 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to price guide.');
398 $('#vinNumber').addClass('error');
399 $('#vinNumber').removeClass('valid');
404 $('#vinNumber').removeClass('error');
405 $('#vinNumber').addClass('valid');
407 if ('' == $('#engineNumber').val())
409 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to price guide.');
410 $('#engineNumber').addClass('error');
411 $('#engineNumber').removeClass('valid');
416 $('#engineNumber').removeClass('error');
417 $('#engineNumber').addClass('valid');
419 if (!$('#frmStockView').valid())
423 $('#btnSendToPg').prop('disabled', true);
425 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
428 'sendToPg:' + _w.stockview.itemId, 'Stock', 'Stock.SendToPriceGuide', _w.stockview.itemId,
430 var clubList = $('#clubs').val();
432 for (var i = 0; i < clubList.length; i++)
434 clubs.push({id: clubList[i]});
437 'sendToPg:' + _w.stockview.itemId, {Context: {clubs: clubs}}, {},
438 _w.stockview._onStockUpdated, _w.taskExecError
440 }, _w.taskContractError
446 $('.back-btn').on('click', function(){
447 window.history.back();
450 $('#btnSendToRetail').click(function () {
451 var reservePrice = $('#retailAmountRequired').val();
452 if ('' == reservePrice || isNaN(reservePrice))
454 alert('Please provide minimum retail price.');
457 if (!$('#frmStockView').valid())
461 $('#btnSendToRetail').prop('disabled', true);
463 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
466 'retailStock:' + _w.stockview.itemId,
467 'Stock', 'Stock.SendToRetail', _w.stockview.itemId, {},
468 _w.stockview._onStockUpdated, _w.taskExecError
473 $('#btnReclaimFromRetail').click(function () {
474 if (!$('#frmStockView').valid())
478 $('#btnReclaimFromRetail').prop('disabled', true);
480 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
483 'retailReclaimStock:' + _w.stockview.itemId,
484 'Stock', 'Stock.ReclaimFromRetail', _w.stockview.itemId, {},
485 _w.stockview._onStockUpdated, _w.taskExecError
490 $('#btnSendToTc').click(function () {
491 if (!$('#frmStockView').valid())
495 $('#btnSendToTc').prop('disabled', true);
496 if (8 != $('#vehicleCategory').val())
499 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
500 {}, _w.stockview._onTuTcUpdateReady, _w.taskContractError
506 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
509 'tcStock:' + _w.stockview.itemId,
510 'Stock', 'Stock.SendToTradeCenter', _w.stockview.itemId, {},
511 _w.stockview._onStockUpdated, _w.taskExecError
517 App.Util.updateCheckboxStyle($('#acceptAuctionHPIdisclaimer'));
518 $('#btnSendToAuction').click(function () {
519 var endDate = $('#endDate').val();
520 var reservePrice = $('#reservePrice').val();
521 if ('' == endDate || '' == reservePrice || isNaN(reservePrice))
523 alert('Please provide end date and reserve price.');
527 if (!$('#frmStockView').valid())
531 if (!$('#acceptAuctionHPIdisclaimer').is(':checked'))
533 alert('Please accept the conditions before sending.');
537 if ('' == $('#mainImage').val())
539 alert('The main image is mandatory for moving a vehicle to auction.');
540 $('#img_mainImage').addClass('error');
541 $('#img_mainImage').removeClass('valid');
546 $('#img_mainImage').removeClass('error');
547 $('#img_mainImage').addClass('valid');
549 if ('' == $('#registrationNumber').val())
551 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to auction.');
552 $('#registrationNumber').addClass('error');
553 $('#registrationNumber').removeClass('valid');
558 $('#registrationNumber').removeClass('error');
559 $('#registrationNumber').addClass('valid');
561 if ('' == $('#vinNumber').val())
563 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to auction.');
564 $('#vinNumber').addClass('error');
565 $('#vinNumber').removeClass('valid');
570 $('#vinNumber').removeClass('error');
571 $('#vinNumber').addClass('valid');
573 if ('' == $('#engineNumber').val())
575 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to auction.');
576 $('#engineNumber').addClass('error');
577 $('#engineNumber').removeClass('valid');
582 $('#engineNumber').removeClass('error');
583 $('#engineNumber').addClass('valid');
587 $('#btnSendToAuction').prop('disabled', true);
588 if (_w.stockview.newItem)
591 data.Stock = _w.stockview._prepStockUpdateData();
592 data.Context = {endDate: endDate, reservePrice: reservePrice};
594 'createStockAuction', data, {},
595 _w.stockview._onStockUpdated, _w.taskExecError
600 if (8 != $('#vehicleCategory').val())
603 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
604 {}, _w.stockview._onTuUpdateReady, _w.taskContractError
610 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
613 'sendToAuction:' + _w.stockview.itemId, 'Stock', 'Stock.SendToAuction', _w.stockview.itemId,
615 var endDate = $('#endDate').val();
616 var reservePrice = $('#reservePrice').val();
618 'sendToAuction:' + _w.stockview.itemId, {Context: {endDate: endDate, reservePrice: reservePrice}}, {},
619 _w.stockview._onStockUpdated, _w.taskExecError
621 }, _w.taskContractError
628 if (null != _w.stockview.itemData)
630 _w.stockview._onDataAndTemplate();
632 if (false == _w.stockview.newItem)
634 _w.stockview.ti.hydrate({
635 'gridPricingHistoryColumnHeaders': {
636 constructor: 'GridColumnHeader',
639 id: 'gridPricingHistoryColumn_Date',
643 id: 'gridPricingHistoryColumn_Trade',
647 id: 'gridPricingHistoryColumn_totalRecon',
648 title: 'Total Recon',
651 id: 'gridPricingHistoryColumn_km',
655 id: 'gridPricingHistoryColumn_pricegOffer',
656 title: 'Priceguide Offer',
659 id: 'gridPricingHistoryColumn_auctionWinningBid',
660 title: 'Auction Winning Bid',
664 'gridPricingHistoryRowRepeater': {}
669 $('#pricinghistory').hide();
672 _w.stockview.itemId = App.Util.getUrlParam('id');
673 if (0 == _w.stockview.itemId || null == _w.stockview.itemId)
676 'createStock', 'Stock', 'Stock.Create',
677 null, {}, function(){}, _w.taskContractError
680 'createStockAuction', 'Stock', 'Stock.CreateAuction',
681 null, {}, function(){}, _w.taskContractError
683 App.DataStore.loadSelectListGroup([
684 {dataId: 'years', isStatic: true, workspace: 'Stock', task: 'Year.SelectList'},
685 {dataId: 'categories', isStatic: true, workspace: 'Stock', task: 'Category.SelectList'},
686 {dataId: 'conditions', isStatic: true, workspace: 'Stock', task: 'Condition.SelectList'},
687 {dataId: 'exteriorColours', isStatic: true, workspace: 'Stock', task: 'ExteriorColour.SelectList'},
688 {dataId: 'interiorColours', isStatic: true, workspace: 'Stock', task: 'InteriorColour.SelectList'},
689 {dataId: 'upholsteries', isStatic: true, workspace: 'Stock', task: 'Upholstery.SelectList'},
690 {dataId: 'papers', isStatic: true, workspace: 'Stock', task: 'Paper.SelectList'},
691 {dataId: 'natis', isStatic: true, workspace: 'Stock', task: 'Natis.SelectList'},
692 {dataId: 'fsh', isStatic: true, workspace: 'Stock', task: 'FullServiceHistory.SelectList'},
693 {dataId: 'fuelTypes', isStatic: true, workspace: 'Stock', task: 'FuelType.SelectList'},
694 {dataId: 'transmissionTypes', isStatic: true, workspace: 'Stock', task: 'TransmissionType.SelectList'},
695 {dataId: 'damages', isStatic: true, workspace: 'Stock', task: 'Damage.SelectList'},
696 {dataId: 'accessories', isStatic: true, workspace: 'Stock', task: 'Accessory.SelectList'},
697 {dataId: 'clubs', isStatic: true, workspace: 'PriceGuide', task: 'Club.SelectList'}
703 _w.stockview.newItem = false;
704 var task = _w.stockview.limited
705 ? 'Stock.LimitedUpdate'
708 'updateStock:' + _w.stockview.itemId, 'Stock', task, _w.stockview.itemId,
709 {}, $.proxy( _w.stockview._onStockViewDataReceived, this ), _w.taskContractError
714 setStockViewFormMeta : function( data )
717 if (undefined != data)
719 for (var i = 0; i < data.damages.length; i++)
721 damages['d' + data.damages[i].damage] = data.damages[i].amount;
729 _w.stockview.formMeta = {
734 dataStoreId : 'years',
735 value : data.vehicleYear ? data.vehicleYear : '',
736 onChange : function () {
737 if (!App.DataStore.getItem('BuildSelect:vehicleYear', false))
739 if (_w.stockview.itemData)
741 _w.stockview.itemData.vehicleYear = $('#vehicleYear').val();
742 _w.stockview._listMakesModelsTypes(function () {
743 if ($('#vehicleYear').val() && $('#vehicleType').val())
746 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
747 {}, _w.stockview._onTuReady, _w.taskContractError
757 id : 'vehicleCategory',
759 dataStoreId : 'categories',
760 value : data.type ? data.type.category.id : '',
761 onChange : function () {
763 if ($(this).val() == 8)
765 $('#retailPrice').val('');
766 $('#tradePrice').val('');
767 $('#listPrice').val('');
768 $('#' + _w.stockview.ti.tid + '_initialTradePrice').val($('#' + _w.stockview.ti.tid + '_tradePrice').html());
769 $('#' + _w.stockview.ti.tid + '_updatedTradePrice').val('');
770 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + '.00');
771 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + '.00');
772 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + '.00');
777 if ($(this).val() == 8 && _w.stockview.itemId == 0)
779 $('#mmCode').html("Other");
782 if (!App.DataStore.getItem('BuildSelect:vehicleCategory', false))
784 if (_w.stockview.itemData)
786 _w.stockview.itemData.type.category.id = $('#vehicleCategory').val();
787 _w.stockview._listMakesModelsTypes();
790 $('#' + _w.stockview.ti.tid + '_makeManual').hide();
791 $('#' + _w.stockview.ti.tid + '_modelManual').hide();
792 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
793 $('#makeManual').val('');
794 $('#modelManual').val('');
795 $('#typeManual').val('');
796 $('#' + _w.stockview.ti.tid + '_make').show();
797 $('#' + _w.stockview.ti.tid + '_model').show();
798 $('#' + _w.stockview.ti.tid + '_type').show();
804 title : 'Vehicle Make',
805 dataStoreId : 'makes',
806 value : data.type ? data.type.model.make.id : '',
807 onChange : function () {
808 if (!App.DataStore.getItem('BuildSelect:vehicleMake', false))
810 $('#vehicleMakeManual').val('');
811 $('#vehicleModelManual').val('');
812 $('#vehicleTypeManual').val('');
813 if (-1 == $('#vehicleMake').val())
815 $('#' + _w.stockview.ti.tid + '_make').hide();
816 $('#' + _w.stockview.ti.tid + '_model').hide();
817 $('#' + _w.stockview.ti.tid + '_type').hide();
818 $('#' + _w.stockview.ti.tid + '_makeManual').show();
819 $('#' + _w.stockview.ti.tid + '_modelManual').show();
820 $('#' + _w.stockview.ti.tid + '_typeManual').show();
824 $('#' + _w.stockview.ti.tid + '_makeManual').hide();
825 $('#' + _w.stockview.ti.tid + '_modelManual').hide();
826 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
827 $('#' + _w.stockview.ti.tid + '_make').show();
828 $('#' + _w.stockview.ti.tid + '_model').show();
829 $('#' + _w.stockview.ti.tid + '_type').show();
830 if (_w.stockview.itemData)
832 _w.stockview.itemData.type.model.make.id = $('#vehicleMake').val();
833 _w.stockview._listMakesModelsTypes();
842 title : 'Vehicle Model',
843 dataStoreId : 'models',
844 value : data.type ? data.type.model.id : '',
845 onChange : function () {
846 if (!App.DataStore.getItem('BuildSelect:vehicleModel', false))
848 $('#vehicleModelManual').val('');
849 $('#vehicleTypeManual').val('');
851 if (-1 == $('#vehicleModel').val())
853 $('#' + _w.stockview.ti.tid + '_model').hide();
854 $('#' + _w.stockview.ti.tid + '_type').hide();
855 $('#' + _w.stockview.ti.tid + '_modelManual').show();
856 $('#' + _w.stockview.ti.tid + '_typeManual').show();
860 $('#' + _w.stockview.ti.tid + '_modelManual').hide();
861 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
862 $('#' + _w.stockview.ti.tid + '_model').show();
863 $('#' + _w.stockview.ti.tid + '_type').show();
864 if (_w.stockview.itemData)
866 _w.stockview.itemData.type.model.id = $('#vehicleModel').val();
867 _w.stockview._listMakesModelsTypes();
876 title : 'Vehicle Type',
877 dataStoreId : 'types',
878 value : data.type ? data.type.id : '',
879 onChange : function () {
880 if (!App.DataStore.getItem('BuildSelect:vehicleType', false))
882 $('#vehicleTypeManual').val('');
883 if (-1 == $('#vehicleType').val())
885 $('#' + _w.stockview.ti.tid + '_type').hide();
886 $('#' + _w.stockview.ti.tid + '_typeManual').show();
890 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
891 $('#' + _w.stockview.ti.tid + '_type').show();
892 if ($('#vehicleYear').val()
893 && $('#vehicleType').val())
896 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
897 {}, _w.stockview._onTuReady, _w.taskContractError
900 if ('' != $(this).val() && null != $(this).val())
904 'GetMmCode' + $(this).val(), 'Stock', 'Type.GetMmCode', null,
905 {id:$(this).val()}, function(response){
906 $('#mmCode').html(response.Data.mmCode);
907 }, _w.taskContractError
912 $('#mmCode').html('');
921 id : 'vehicleMakeManual',
922 title : 'Vehicle Make',
923 //dataStoreId : 'makesManual',
924 value : data.type ? data.type.model.make.id : '',
928 id : 'vehicleModelManual',
929 title : 'Vehicle Model',
930 //dataStoreId : 'modelsManual',
931 value : data.type ? data.type.model.id : '',
935 id : 'vehicleTypeManual',
936 title : 'Vehicle Type',
937 //dataStoreId : 'typesManual',
938 value : data.type ? data.type.id : '',
946 setAttrib : 'readonly',
947 value : data.type ? data.type.mmCode : ''
953 title : 'Stock number',
954 value : data.stockNumber ? data.stockNumber : ''
959 id : 'vehicleFuelType',
961 dataStoreId : 'fuelTypes',
962 value : data.fuelType ? data.fuelType : ''
964 'transmissionType' : {
966 id : 'vehicleTransmissionType',
967 title : 'Transmission Type',
968 dataStoreId : 'transmissionTypes',
969 value : data.transmissionType ? data.transmissionType : ''
973 id : 'vehicleCondition',
975 dataStoreId : 'conditions',
976 value : data.condition ? data.condition : ''
980 id : 'exteriorColour',
981 title : 'Main ext. colour',
982 dataStoreId : 'exteriorColours',
983 value : data.exteriorColour ? data.exteriorColour : ''
987 id : 'interiorColour',
988 title : 'Main int. colour',
989 dataStoreId : 'interiorColours',
990 value : data.interiorColour ? data.interiorColour : ''
994 id : 'vehicleUpholstery',
995 title : 'Upholstery',
996 dataStoreId : 'upholsteries',
997 value : data.upholstery ? data.upholstery : ''
1001 id : 'vehiclePapers',
1003 dataStoreId : 'papers',
1004 value : data.papers ? data.papers : ''
1008 id : 'vehicleNatis',
1010 dataStoreId : 'natis',
1011 value : data.natis ? data.natis : ''
1016 title : 'Spare keys',
1017 dataStoreId : 'sparekeys',
1018 value : undefined != data.spareKeys && null != data.spareKeys
1019 ? (data.spareKeys == true ? "1" : "0")
1022 'fullServiceHistory' : {
1024 id : 'fullServiceHistory',
1025 title : 'Full service history',
1026 dataStoreId : 'fsh',
1027 value : data.fullServiceHistory ? data.fullServiceHistory : ''
1029 'registrationNumber' : {
1031 id : 'registrationNumber',
1032 title : 'Registration no',
1033 value : data.registrationNumber ? data.registrationNumber : '',
1034 style : 'capitalise'
1040 value : data.vinNumber ? data.vinNumber : '',
1041 style : 'capitalise'
1045 id : 'engineNumber',
1047 value : data.engineNumber ? data.engineNumber : '',
1048 style : 'capitalise'
1054 value : data.km ? data.km : ''
1057 type : 'textarea-small',
1059 title : 'FSH notes',
1060 value : data.fshNotes ? data.fshNotes : ''
1063 type : 'damageDetails',
1064 disabled : !App.permissions.stockUpdateDamages,
1066 dataStoreId : 'damages',
1067 data : data.damages ? data.damages : {}
1069 'previousRepairsNoted' : {
1071 id : 'previousRepairsNoted',
1072 title : 'Previous repairs',
1073 style : 'damages-comments',
1074 value : data.previousRepairsNoted ? data.previousRepairsNoted : false
1076 'previousRepairsNotes' : {
1077 type : 'textarea-styled',
1078 disabled : !App.permissions.stockUpdateDamages,
1079 id : 'previousRepairsNotes',
1080 title : 'Previous repairs notes',
1081 style : 'damages-comments',
1082 value : data.previousRepairsNotes ? data.previousRepairsNotes : '',
1083 onChange: function(){
1084 var haveData = ('' != $(this).val() ? true : false);
1085 $('#previousRepairsNoted').prop('checked', haveData);
1088 'damageTotal' : 'R 0.00',
1090 type : 'textarea-styled',
1091 disabled : !App.permissions.stockUpdateDamages,
1093 title : 'Damages comments',
1094 style : 'damages-comments',
1095 value : data.damageNotes ? data.damageNotes : ''
1098 type : 'textarea-styled',
1099 disabled : !App.permissions.stockUpdateCoverReceived,
1100 id : 'coverReceived',
1101 title : 'Cover Received',
1102 style : 'cover-received',
1103 value : data.coverReceived ? data.coverReceived : ''
1106 type : 'checkGroup',
1108 dataStoreId : 'accessories',
1109 itemName : 'accessory',
1110 data : data.accessories ? data.accessories : {}
1112 'accessoryNotes' : {
1113 type : 'textarea-styled',
1114 id : 'accessoryNotes',
1117 areaStyle : 'comment-text-box',
1118 value : data.accessoryNotes ? data.accessoryNotes : ''
1123 baseImage : 'main_img_car.jpg',
1124 view : !App.permissions.stockUploadPhotos,
1125 value : data.mainImage ? data.mainImage : ''
1130 baseImage : 'front_car.jpg',
1131 view : !App.permissions.stockUploadPhotos,
1132 value : data.frontImage ? data.frontImage : ''
1137 baseImage : 'left_car.jpg',
1138 view : !App.permissions.stockUploadPhotos,
1139 value : data.leftImage ? data.leftImage : ''
1144 baseImage : 'right_car.jpg',
1145 view : !App.permissions.stockUploadPhotos,
1146 value : data.rightImage ? data.rightImage : ''
1151 baseImage : 'back_car.jpg',
1152 view : !App.permissions.stockUploadPhotos,
1153 value : data.backImage ? data.backImage : ''
1157 id : 'interiorImage',
1158 baseImage : 'interior_car.jpg',
1159 view : !App.permissions.stockUploadPhotos,
1160 value : data.interiorImage ? data.interiorImage : ''
1165 baseImage : 'engine_car.jpg',
1166 view : !App.permissions.stockUploadPhotos,
1167 value : data.engineImage ? data.engineImage : ''
1172 baseImage : 'copy_of_natis_car.jpg',
1173 view : !App.permissions.stockUploadPhotos,
1174 value : data.natisImage ? data.natisImage : ''
1179 title : 'Select clubs',
1180 dataStoreId : 'clubs',
1187 title : 'Auction end date',
1188 dtopt : {startDate: "+1d", endDate:"+" + App.serverConfig.auctionMaxDays + "d", daysOfWeekDisabled: [0], beforeShowDay: function(date) {
1189 if (date.getDay() == 6 && !App.openDays[App.Util.formatDate(date, 'yyyy-mm-dd')])
1193 for (var i = 0; i < _w.stockview.dates.length; i++)
1195 if (_w.stockview.dates[i] == date.toDateString())
1206 id : 'reservePrice',
1207 title : 'Reserve price',
1210 'retailAmountRequired' : {
1212 id : 'retailAmountRequired',
1213 title : 'Minimum retail price',
1214 value : data.retailAmountRequired ? data.retailAmountRequired : ''
1217 constructor: 'Button',
1221 id: 'printStockPdf',
1222 handler: _w.stockview.printStockPdf
1227 constructor: 'Button',
1231 id: 'printStockAuctionPdf',
1232 handler: _w.stockview.printStockAuctionPdf
1237 type : 'textarea-styled',
1239 title : 'Complaint',
1241 areaStyle : 'span12',
1246 'dateCreatedPriceGuide': data.created,
1247 'loadedOnPriceGuide': data.loadedOnPriceGuide,
1248 'numberOfOffers': data.numberOfOffers,
1249 'highestOffer': 'R ' + data.highestOffer,
1250 'timesListed': data.timesListed,
1251 'highestBid': 'R ' + data.highestBid,
1252 'referenceNumber': data.referenceNumber,
1253 'jobState': ('Stock' == data.jobState || 'Trade Center' == data.jobState)
1256 data.auction.jobState == 'Undone'
1257 || data.auction.jobState == 'Relist'
1265 'tradePrice' : data.tradePrice ? 'R ' + data.tradePrice : 'R 0.00',
1266 'initialTradePrice' : 0.00 != data.oldTradePrice
1267 ? 'R ' + data.oldTradePrice + (data.oldTradePriceDate ? '<br/>' + data.oldTradePriceDate : '')
1269 ? 'R ' + data.tradePrice + (data.tradePriceDate ? '<br/>' + data.tradePriceDate : '')
1272 'updatedTradePrice' : 0.00 != data.oldTradePrice
1273 ? 'R ' + data.tradePrice + (data.tradePriceDate ? '<br/>' + data.tradePriceDate : '')
1275 'retailPrice': data.retailPrice ? 'R ' + data.retailPrice : 'R 0.00',
1277 'listPrice' : data.listPrice ? 'R ' + data.listPrice : 'R 0.00',
1282 printStockPdf : function()
1285 'printStock:' + _w.stockview.itemId, 'Stock', 'Pdf.Print', _w.stockview.itemId,
1288 'printStock:' + _w.stockview.itemId, {}, {},
1289 function () {}, _w.taskExecError,
1292 }, _w.taskContractError
1295 printStockAuctionPdf : function()
1298 'printStock:' + _w.stockview.itemId, 'Auction', 'Pdf.PrintPortal', _w.stockview.itemData.auction.id,
1301 'printStock:' + _w.stockview.itemId, {}, {},
1302 function () {}, _w.taskExecError,
1305 }, _w.taskContractError
1308 loadHistoricalGrid : function( contract, data, options )
1311 'gridStockHistory', {Grid:{Filter:{"PricingHistory.stockId":_w.stockview.itemId}}}, options,
1312 _w.stockview._onHistoryGridDataReceived, _w.taskExecError
1316 _onHistoryGridDataReceived : function( response )
1318 _w.stockview.gridStatus = 'Active';
1319 _w.stockview.ti.hydrateParam('gridPricingHistoryRowRepeater', {});
1322 if (response.Data.DataSet.length == 0)
1324 $('#pricing_history_none_found').show();
1325 $('#PHColumnHeaders').hide();
1329 $('#pricing_history_none_found').hide();
1330 $('#PHColumnHeaders').show();
1333 for (var i = 0; i < response.Data.DataSet.length; i++)
1335 var row = response.Data.DataSet[i];
1341 PriceguideOffer : 'R ',
1342 AuctionWinningBid : 'R '
1350 PriceguideOffer : '',
1351 AuctionWinningBid : '',
1359 'Trade' : row.trade,
1360 'TotalRecon' : row.totalRecon,
1362 'PriceguideOffer' : row.pricegOffer,
1363 'AuctionWinningBid' : row.auctionWinningBid,
1368 _w.stockview.ti.hydrateParam('gridPricingHistoryRowRepeater', {
1369 constructor : 'GridDataRow',
1372 //response.Data.Meta.bind = _w.stockview.pageStockGrid;
1375 _listMakesModelsTypes : function( callback )
1379 if (!_w.stockview.itemData.vehicleYear)
1383 if (_w.stockview.itemData.type
1384 && _w.stockview.itemData.type.category
1385 && _w.stockview.itemData.type.category.id)
1387 App.DataStore.loadSelectListData(
1388 'makes', false, 'Stock', 'Utility.ListMakes', null,
1390 "category" : _w.stockview.itemData.type.category.id,
1391 "year" : _w.stockview.itemData.vehicleYear
1392 }}, {}, $.proxy(function(categoryId)
1394 if (8 == categoryId)
1396 var data = App.DataStore.getData('makes');
1401 App.DataStore.setData('makes', data);
1403 }, this, _w.stockview.itemData.type.category.id)
1405 if (_w.stockview.itemData.type
1406 && _w.stockview.itemData.type.model
1407 && _w.stockview.itemData.type.model.make
1408 && _w.stockview.itemData.type.model.make.id)
1410 App.DataStore.loadSelectListData(
1411 'models', false, 'Stock', 'Utility.ListModels', null,
1413 "make" : _w.stockview.itemData.type.model.make.id,
1414 "category" : _w.stockview.itemData.type.category.id,
1415 "year" : _w.stockview.itemData.vehicleYear
1416 }}, {}, $.proxy(function(categoryId)
1418 if (8 == categoryId)
1420 var data = App.DataStore.getData('models');
1425 App.DataStore.setData('models', data);
1427 }, this, _w.stockview.itemData.type.category.id)
1429 if (_w.stockview.itemData.type.model.id)
1431 App.DataStore.loadSelectListData(
1432 'types', false, 'Stock', 'Utility.ListTypes', null,
1434 "model" : _w.stockview.itemData.type.model.id,
1435 "category" : _w.stockview.itemData.type.category.id,
1436 "year" : _w.stockview.itemData.vehicleYear
1437 }}, {}, $.proxy(function(categoryId, callback)
1439 if (8 == categoryId)
1441 var data = App.DataStore.getData('types');
1446 App.DataStore.setData('types', data);
1452 }, this, _w.stockview.itemData.type.category.id, callback)
1459 _onDataAndTemplate : function ()
1461 _w.stockview.relistReservePrice = _w.stockview.itemData.auction
1462 && _w.stockview.itemData.auction.reservePrice
1463 ? _w.stockview.itemData.auction.reservePrice
1465 $('#reservePrice').val(_w.stockview.relistReservePrice);
1466 if (!_w.stockview.newItem)
1468 App.DataStore.loadSelectListData(
1469 'tuhpi', false, 'Stock', 'Tuhpi.List', null,{"Filter":
1471 "stock" : _w.stockview.itemId,
1472 "company" : App.companyData.id
1475 // data is retrieved
1476 var tuHpiData = App.DataStore.getData('tuhpi');
1478 _w.stockview._loadHpiReportData(tuHpiData);
1480 //for (var i = 0; i < tuHpiData.length; i++)
1482 // var tuHpiId = tuHpiData[i].id
1483 // var tuHpiCreated = tuHpiData[i].created
1488 // $('#tuhpiDate').html(tuHpiCreated);
1489 // $('#downloadTuhpi').show();
1490 // $('#HPIbtnConfirm').prop('disabled', false);
1495 // $('#tuhpiDate').html('Not Requested Yet');
1496 // $('#downloadTuhpi').hide();
1497 // $('#HPIbtnConfirm').prop('disabled', false);
1501 if ('Sold' == _w.stockview.itemData.jobState
1502 && true == _w.stockview.itemData.auction.Within30DaysOfEnd
1503 && App.companyData.id == _w.stockview.itemData.auction.company)
1505 $('#btnDispute').show();
1506 $('#btnLogDispute').click(function() {
1507 var comp = $('#complaint').val();
1510 alert('Please specify the complaint.');
1515 againstCompany : _w.stockview.itemData.auction.soldToCompany,
1516 auction : _w.stockview.itemData.auction.id,
1521 'createDispute', 'Dispute', 'Dispute.Create',
1522 null, {}, function(){
1524 'createDispute', data, {},
1526 alert('Dispute logged.');
1527 $('#dropDsp').slideToggle();
1530 }, _w.taskContractError
1536 $('#endDate').prop('readonly', true);
1539 $.each($.find('.rand-input'), function(i, input) {
1540 total += parseFloat($(input).val());
1542 $('#' + _w.stockview.ti.tid + '_damageTotal').html('R ' + total);
1543 $('#' + _w.stockview.ti.tid + '_initialTradePrice').val($('#' + _w.stockview.ti.tid + '_tradePrice').html());
1544 $('#' + _w.stockview.ti.tid + '_updatedTradePrice').val(_w.stockview.itemData.tradePrice);
1545 $('#retailPrice').val(_w.stockview.itemData.retailPrice);
1546 $('#tradePrice').val(_w.stockview.itemData.tradePrice);
1547 $('#listPrice').val(_w.stockview.itemData.listPrice);
1548 if ('Archived' == _w.stockview.itemData.jobState)
1550 true == App.permissions.stockUnarchive ? $('#btnUnarchive').show() : $('#btnUnarchive').hide();
1552 if ('Retail' == _w.stockview.itemData.jobState)
1554 true == App.permissions.stockReclaimRetail ? $('#btnReclaimFromRetail').show() : $('#btnReclaimFromRetail').hide();
1560 if ('Stock' == _w.stockview.itemData.jobState || _w.stockview.newItem)
1562 true == App.permissions.stockUpdate ? $('#btnUpdate').show() : $('#btnUpdate').hide();
1563 true == App.permissions.stockRouteRetail && !_w.stockview.newItem ? $('#optSendToRetail').show() : $('#optSendToRetail').hide();
1564 true == App.permissions.stockRoutePriceguide ? $('#optSendToPg').show() : $('#optSendToPg').hide();
1565 if (true == App.permissions.stockRouteAuction)
1568 ? $('#btnSendToTc').show()
1569 : $('#optSendToAction').show();
1570 if (_w.stockview.newItem)
1572 $('#btnSendToTc').hide();
1577 $('#optSendToAction').hide();
1579 true == App.permissions.stockArchive ? $('#btnArchive').show() : $('#btnArchive').hide();
1581 if ('Auction' == _w.stockview.itemData.jobState)
1583 (true == App.permissions.stockUpdate && "0.00" == _w.stockview.itemData.highestBid) ? $('#btnUpdate').show() : $('#btnUpdate').hide();
1584 $('#btnSendToTc').hide();
1585 $('#optSendToAction').hide();
1586 $('#optSendToRetail').hide();
1587 $('#optSendToPg').hide();
1588 $('#btnArchive').hide();
1590 if ('Relist' == _w.stockview.itemData.jobState)
1592 (true == App.permissions.stockUpdate && "0.00" == _w.stockview.itemData.highestBid) ? $('#btnUpdate').show() : $('#btnUpdate').hide();
1593 $('#btnSendToTc').hide();
1594 $('#optSendToAction').hide();
1595 $('#optSendToRetail').hide();
1596 $('#optSendToPg').hide();
1597 $('#btnArchive').show();
1600 true == App.permissions.stockPrint ? $('#printStockPdf').show() : $('#printStockPdf').hide();
1601 true == App.permissions.stockB4cReport ? $('#btnB4cAccidentReport').show() : $('#btnB4cAccidentReport').hide();
1602 true == App.permissions.stockBmw ? $('#btnBwmAccidentReport').show() : $('#btnBwmAccidentReport').hide();
1604 if (!App.permissions.pgPage && !App.permissions.auctionPag)
1606 $('.pg-a-data-wrapper').hide();
1608 if (true == App.permissions.pgPage) { $('.price-guide-info').show(); };
1609 if (true == App.permissions.auctionPage) { $('.auction-info').show(); };
1611 if (App.permissions.settingsHpiReport == false)
1613 $('#requestHPIreport').hide();
1614 $('#requestHPIAccidentReport').hide();
1617 if (_w.stockview.newItem)
1619 $('.info-block').hide();
1620 $('#optSendToPg').hide();
1621 $('#printStockPdf').hide();
1622 $('#btnArchive').hide();
1624 //HPI Report Hide on New
1625 $('#requestHPIreport').hide();
1626 $('#requestHPIAccidentReport').hide();
1627 $('.hpiReport').hide();
1631 if (App.permissions.settingsHpiReport)
1633 $('#requestHPIreport').show();
1634 $('#requestHPIAccidentReport').show();
1636 if (null == App.API.taskContract('gridStockHistory'))
1639 'gridStockHistory', 'Stock', 'PricingHistory.Grid', null,
1640 {}, _w.stockview.loadHistoricalGrid, _w.taskContractError
1642 $('#pricing_history_none_found').hide();
1643 $('#PHColumnHeaders').hide();
1647 _w.stockview.loadHistoricalGrid( null, {}, {} );
1651 if ('Sold' == _w.stockview.itemData.jobState)
1653 $('.printStockPdf').addClass('hide');
1654 $('.printStockAuctionPdf').removeClass('hide');
1657 _w.stockview._setupValidation();
1660 _onStockViewDataReceived : function( response )
1662 _w.stockview.itemId = response.Data.id;
1663 _w.stockview.itemData = response.Data;
1664 _w.stockview._listMakesModelsTypes();
1665 _w.stockview.setStockViewFormMeta(response.Data);
1666 _w.stockview.ti.hydrate(_w.stockview.formMeta);
1667 if (_w.stockview.ti.published)
1669 _w.stockview._onDataAndTemplate();
1671 App.DataStore.loadSelectListGroup([
1672 {dataId: 'years', isStatic: true, workspace: 'Stock', task: 'Year.SelectList'},
1673 {dataId: 'categories', isStatic: true, workspace: 'Stock', task: 'Category.SelectList'},
1674 {dataId: 'conditions', isStatic: true, workspace: 'Stock', task: 'Condition.SelectList'},
1675 {dataId: 'exteriorColours', isStatic: true, workspace: 'Stock', task: 'ExteriorColour.SelectList'},
1676 {dataId: 'interiorColours', isStatic: true, workspace: 'Stock', task: 'InteriorColour.SelectList'},
1677 {dataId: 'upholsteries', isStatic: true, workspace: 'Stock', task: 'Upholstery.SelectList'},
1678 {dataId: 'papers', isStatic: true, workspace: 'Stock', task: 'Paper.SelectList'},
1679 {dataId: 'natis', isStatic: true, workspace: 'Stock', task: 'Natis.SelectList'},
1680 {dataId: 'fsh', isStatic: true, workspace: 'Stock', task: 'FullServiceHistory.SelectList'},
1681 {dataId: 'fuelTypes', isStatic: true, workspace: 'Stock', task: 'FuelType.SelectList'},
1682 {dataId: 'transmissionTypes', isStatic: true, workspace: 'Stock', task: 'TransmissionType.SelectList'},
1683 {dataId: 'damages', isStatic: true, workspace: 'Stock', task: 'Damage.SelectList'},
1684 {dataId: 'accessories', isStatic: true, workspace: 'Stock', task: 'Accessory.SelectList'},
1685 {dataId: 'clubs', isStatic: true, workspace: 'PriceGuide', task: 'Club.SelectList'}
1689 _setupValidation : function ()
1691 App.DataStore.listen('regValidation', 'damages', function(id, damages) {
1693 mainImage: "required",
1694 vehicleYear: "required",
1695 vehicleCategory: "required",
1699 vehicleMake: { required: function(){
1700 return $('#vehicleMake').parent().css('display') != 'none';
1702 vehicleModel: { required: function(){
1703 return $('#vehicleModel').parent().css('display') != 'none';
1705 vehicleType: { required: function(){
1706 return $('#vehicleType').parent().css('display') != 'none';
1709 stockNumber: "required",
1711 vehicleMakeManual: { required: function(){
1712 return $('#vehicleMakeManual').parent().parent().css('display') != 'none';
1714 vehicleModelManual: { required: function(){
1715 return $('#vehicleModelManual').parent().parent().css('display') != 'none';
1717 vehicleTypeManual: { required: function(){
1718 return $('#vehicleTypeManual').parent().parent().css('display') != 'none';
1721 vehicleFuelType: "required",
1722 vehicleTransmissionType: "required",
1723 registrationNumber: "required",
1724 km: { required: true, digits: true }
1726 for (var i = 0; i < damages.length; i++)
1728 rules['damage' + damages[i].value + 'Amount'] = {number: true};
1731 $('#frmStockView').validate({
1734 mainImage : "This field is required.",
1735 vehicleYear : "This field is required.",
1736 vehicleCategory : "This field is required.",
1737 vehicleMake : "This field is required.",
1738 vehicleModel : "This field is required.",
1739 stockNumber : "This field is required.",
1740 vehicleType : "This field is required.",
1742 vehicleMakeManual : "This field is required.",
1743 vehicleModelManual : "This field is required.",
1744 vehicleTypeManual : "This field is required.",
1746 vehicleFuelType : "This field is required.",
1747 vehicleTransmissionType : "This field is required.",
1748 registrationNumber : "This field is required.",
1749 km : {required: "This field is required."}
1751 invalidHandler: function(event, validator) {
1752 var errors = validator.numberOfInvalids();
1753 if (0 < _w.stockview.validations && errors)
1755 var message = errors == 1
1756 ? 'You missed 1 field. It has been highlighted'
1757 : 'You missed ' + errors + ' fields. They have been highlighted';
1760 _w.stockview.validations++;
1762 submitHandler: function( form ) {
1763 $('#btnUpdate').prop('disabled', true);
1764 var data = _w.stockview._prepStockUpdateData();
1765 if (_w.stockview.newItem)
1768 'createStock', {"Stock":data}, {},
1769 _w.stockview._onStockUpdated, _w.taskExecError
1775 'updateStock:' + _w.stockview.itemId, {"Stock":data}, {},
1776 _w.stockview._onStockUpdated, _w.taskExecError
1781 $('#btnUpdate').prop('disabled', false);
1784 _w.stockview.validations = 0;
1785 $('#frmStockView').valid();
1787 $('label.error').remove();
1788 $('.valid').removeClass('valid');
1792 _onTuTcUpdateReady : function ()
1795 'TransUnionFromMmCode', {
1797 vehicleYear : parseInt($('#vehicleYear').val()),
1798 type : parseInt($('#vehicleType').val()),
1799 stockId : _w.stockview.itemId
1802 _w.stockview._onTuTcUpdateReceived, function(){}
1806 _onTuTcUpdateReceived : function ( response )
1808 if ('Success' != response.Data.Status)
1811 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1813 App.API.directRoute(
1814 'tcStock:' + _w.stockview.itemId,
1815 'Stock', 'Stock.SendToTradeCenter', _w.stockview.itemId, {},
1816 _w.stockview._onStockUpdated, _w.taskExecError
1822 var vals = response.Data.VehicleDetails[0].Value;
1823 $('#retailPrice').val(vals.RetailPrice);
1824 $('#tradePrice').val(vals.TradePrice);
1825 $('#listPrice').val(vals.NewPrice);
1826 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + vals.RetailPrice + '.00');
1827 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + vals.TradePrice + '.00');
1828 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + vals.NewPrice + '.00');
1830 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1832 App.API.directRoute(
1833 'tcStock:' + _w.stockview.itemId,
1834 'Stock', 'Stock.SendToTradeCenter', _w.stockview.itemId, {},
1835 _w.stockview._onStockUpdated, _w.taskExecError
1841 _onTuUpdateReady : function ()
1844 'TransUnionFromMmCode', {
1846 vehicleYear : parseInt($('#vehicleYear').val()),
1847 type : parseInt($('#vehicleType').val()),
1848 stockId : _w.stockview.itemId
1851 _w.stockview._onTuUpdateReceived, function(){}
1855 _onTuUpdateReceived : function ( response )
1857 if ('Success' != response.Data.Status)
1860 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1863 'sendToAuction:' + _w.stockview.itemId, 'Stock', 'Stock.SendToAuction', _w.stockview.itemId,
1865 var endDate = $('#endDate').val();
1866 var reservePrice = $('#reservePrice').val();
1868 'sendToAuction:' + _w.stockview.itemId, {Context: {endDate: endDate, reservePrice: reservePrice}}, {},
1869 _w.stockview._onStockUpdated, _w.taskExecError
1871 }, _w.taskContractError
1877 var vals = response.Data.VehicleDetails[0].Value;
1878 $('#retailPrice').val(vals.RetailPrice);
1879 $('#tradePrice').val(vals.TradePrice);
1880 $('#listPrice').val(vals.NewPrice);
1881 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + vals.RetailPrice + '.00');
1882 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + vals.TradePrice + '.00');
1883 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + vals.NewPrice + '.00');
1885 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1888 'sendToAuction:' + _w.stockview.itemId, 'Stock', 'Stock.SendToAuction', _w.stockview.itemId,
1890 var endDate = $('#endDate').val();
1891 var reservePrice = $('#reservePrice').val();
1893 'sendToAuction:' + _w.stockview.itemId, {Context: {endDate: endDate, reservePrice: reservePrice}}, {},
1894 _w.stockview._onStockUpdated, _w.taskExecError
1896 }, _w.taskContractError
1902 _onTuReady : function ()
1905 'TransUnionFromMmCode', {
1907 vehicleYear : parseInt($('#vehicleYear').val()),
1908 type : parseInt($('#vehicleType').val())
1911 _w.stockview._onTuReceived, function(){alert('There were no trade and retail from TransUnion');}
1915 _onTuReceived : function ( response )
1917 if ('Success' != response.Data.Status)
1919 if ('No Results From TransUnion' == response.Data.Status || 'No Values From TransUnion' == response.Data.Status) {
1920 //write zero values for transunion failed
1922 $('#retailPrice').val(vals);
1923 $('#tradePrice').val(vals);
1924 $('#listPrice').val(vals);
1925 $('#' + _w.stockview.ti.tid + '_retailPrice').html(vals);
1926 $('#' + _w.stockview.ti.tid + '_tradePrice').html(vals);
1927 $('#' + _w.stockview.ti.tid + '_listPrice').html(vals);
1929 alert(response.Data.Status);
1932 var vals = response.Data.VehicleDetails[0].Value;
1933 $('#retailPrice').val(vals.RetailPrice);
1934 $('#tradePrice').val(vals.TradePrice);
1935 $('#listPrice').val(vals.NewPrice);
1936 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + vals.RetailPrice + '.00');
1937 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + vals.TradePrice + '.00');
1938 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + vals.NewPrice + '.00');
1941 _prepStockUpdateData : function()
1943 var data = _w.stockview.ti.harvest();
1944 data.km = '' == data.km
1946 : parseInt(data.km);
1947 var retailPrice = $('#retailPrice').val();
1948 var tradePrice = $('#tradePrice').val();
1949 var listPrice = $('#listPrice').val();
1950 var retailAmountRequired = $('#retailAmountRequired').val();
1951 data.retailPrice = ('' == retailPrice)
1953 : parseFloat(retailPrice);
1954 data.tradePrice = ('' == tradePrice)
1956 : parseFloat(tradePrice);
1957 data.listPrice = ('' == listPrice)
1959 : parseFloat(listPrice);
1960 data.retailAmountRequired = ('' == retailAmountRequired)
1962 : parseFloat(retailAmountRequired);
1963 delete data.damageTotal;
1964 if (-1 == data.make)
1970 if (-1 == data.model)
1975 if (-1 == data.type)
1979 if ('' == data.mainImage)
1981 delete data.mainImage;
1983 if ('' == data.leftImage)
1985 delete data.leftImage;
1987 if ('' == data.backImage)
1989 delete data.backImage;
1991 if ('' == data.engineImage)
1993 delete data.engineImage;
1995 if ('' == data.frontImage)
1997 delete data.frontImage;
1999 if ('' == data.rightImage)
2001 delete data.rightImage;
2003 if ('' == data.interiorImage)
2005 delete data.interiorImage;
2007 if ('' == data.natisImage)
2009 delete data.natisImage;
2015 _onStockUpdated : function( response )
2017 window.location.hash = '/stock';
2019 _onHpiDownloadButtonClick: function (event)
2021 //console.log('event.currentTarget.dataset',event.currentTarget.dataset);
2023 var hpiType = event.currentTarget.dataset.value;
2024 var hpiId = event.currentTarget.dataset.id;
2026 //console.log('hpiId',hpiId);
2027 //console.log('hpiType',hpiType);
2029 if('ACC' == hpiType)
2032 'printTuhpiAccident:' + _w.stockview.itemId, 'Stock', 'Tuhpi.PrintAccident', _w.stockview.itemId,
2033 {'PdfTemplate':{'recordId':hpiId}}, function () {
2035 'printTuhpiAccident:' + _w.stockview.itemId, {}, {},
2037 }, _w.taskExecError,
2040 }, _w.taskContractError
2046 'printTuhpi:' + _w.stockview.itemId, 'Stock', 'Tuhpi.Print', _w.stockview.itemId,
2047 {'PdfTemplate':{'recordId':hpiId}}, function () {
2049 'printTuhpi:' + _w.stockview.itemId, {}, {},
2051 }, _w.taskExecError,
2054 }, _w.taskContractError
2060 _loadHpiReportData: function (hpiData) {
2061 var tuHpiData = hpiData;
2063 if (0 < tuHpiData.length) {
2064 $('#HPIreportData').html('');
2066 var tuHpiCreated = '';
2068 var tuHpiButtonType = '';
2071 for (var i = 0; i < tuHpiData.length; i++) {
2074 tuHpiId = tuHpiData[i].id;
2075 tuHpiCreated = tuHpiData[i].created;
2076 tuHpiType = tuHpiData[i].hpi_type;
2077 tuHpiButtonType = tuHpiData[i].hpi_type;
2079 var hpiDataHtml = '<div class="control-group mobile-control-group row-fluid" style="display: block;border:1px solid #d3d3d3;" id="' + i + '">'
2080 + '<div class="control-group mobile-control-group span4" style="padding-left:10px; padding-top:13px;">Last date requested:</div>'
2081 + '<div class="control-group mobile-control-group span4" style="padding-left:10px;border-left:1px solid #d3d3d3; padding-top:13px;">'
2082 + '<div id="tuhpiDate_' + i + '" class="span9">Not requested yet.</div>'
2084 + '<div class="control-group mobile-control-group span4" style="padding-left:10px;border-left:1px solid #d3d3d3; padding-top:13px;">'
2085 + '<div id="tuhpiType_' + i + '" class="span8">Not requested yet.</div>'
2086 + '<div class="span4">'
2087 + '<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>'
2092 $('#HPIreportData').append(hpiDataHtml);
2095 $('#tuhpiDate_' + i).html(tuHpiCreated);
2096 $('#tuhpiType_' + i).html(tuHpiType);
2097 $('#downloadTuhpi').show();
2098 $('#HPIbtnConfirm').prop('disabled', false);
2101 $('#tuhpiDate_' + i).html('Not Requested Yet');
2102 $('#tuhpiType_' + i).html('Not Requested Yet');
2103 $('#downloadTuhpi').hide();
2107 $('#downloadTuhpi_' + tuHpiId).click(function (event) {
2108 _w.stockview._onHpiDownloadButtonClick(event);