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();
141 console.log('beforeupdatestock',data);
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}},
160 console.log('transunion',data);
162 'TransUnionForHPI',{}, {},
165 $('#HPIdropConfirm').hide();
166 if ('Success' == data.Status)
168 $('#HPIresponse').html('Success on HPI Report');
169 alert('Success on HPI Report');
170 App.DataStore.loadSelectListData(
171 'tuhpi', false, 'Stock', 'Tuhpi.List', null,
174 "stock" : _w.stockview.itemId,
175 "company" : App.companyData.id
180 var tuHpiData = App.DataStore.getData('tuhpi');
182 _w.stockview._loadHpiReportData(tuHpiData);
184 //for (var i = 0; i < tuHpiData.length; i++)
186 // var tuHpiId = tuHpiData[i].id
187 // var tuHpiCreated = tuHpiData[i].created
190 // $('#tuhpiDate').html(tuHpiCreated);
191 // $('#downloadTuhpi').show();
192 // $('#HPIbtnConfirm').prop('disabled', true);
197 // $('#tuhpiDate').html('Not Requested Yet');
198 // $('#downloadTuhpi').hide();
199 // $('#HPIbtnConfirm').prop('disabled', false);
207 $('#HPIresponse').html('API call to remote host failed. No data could be retrieved from remote service.');
208 $('#HPIbtnConfirm').prop('disabled', false);
210 }, function(response)
213 undefined != response.StatusReason
214 ? response.StatusReason
215 : 'API call to remote host failed. No data could be retrieved from remote service.'
217 $('#HPIbtnConfirm').prop('disabled', false);
221 , _w.taskContractError
227 App.Util.updateCheckboxStyle($('#acceptHPIAccidentDisclaimer'));
228 $('#HPIAccidentBtnConfirm').click(function () {
230 if ( $('#engineNumber').val() == '' )
232 alert('Please update the Vehicle Engine Number and try again');
235 if ( $('#vinNumber').val() == '' && $('#registrationNumber').val() == '')
237 alert('Please update the Vin Number or the Registration Number and and try again');
240 if (!$('#acceptHPIAccidentDisclaimer').is(':checked'))
242 alert('Please accept the conditions before sending.');
245 if (!$('#frmStockView').valid())
249 $('#HPIAccidentBtnConfirm').prop('disabled', true);
250 var data = _w.stockview._prepStockUpdateData();
251 console.log('updatestock2',data);
253 'updateStock:' + _w.stockview.itemId, {"Stock":data}, {},
256 var task = _w.stockview.limited
257 ? 'Stock.LimitedUpdate'
260 'updateStock:' + _w.stockview.itemId, 'Stock', task, _w.stockview.itemId,
261 {}, function(){}, _w.taskContractError
263 var user = $('#HPIAccidentUsername').val();
264 var pass = $('#HPIAccidentPin').val();
267 'TransUnionForHPIAccident', 'Stock', 'Utility.TransUnionForHPIAccident', null,
268 {'Filter' : {'username' : user ,'pass' : pass , 'stock' : _w.stockview.itemId}},
270 console.log('transunion2',data);
272 'TransUnionForHPIAccident',{}, {},
275 $('#HPIdropConfirm').hide();
276 if ('Success' == data.Status)
278 $('#HPIresponse').html('Success on HPI Report');
279 alert('Success on HPI Report');
280 App.DataStore.loadSelectListData(
281 'tuhpi', false, 'Stock', 'Tuhpi.List', null,
284 "stock" : _w.stockview.itemId,
285 "company" : App.companyData.id
290 var tuHpiData = App.DataStore.getData('tuhpi');
292 _w.stockview._loadHpiReportData(tuHpiData);
299 $('#HPIresponse').html('API call to remote host failed. No data could be retrieved from remote service.');
300 $('#HPIbtnConfirm').prop('disabled', false);
302 }, function(response)
305 undefined != response.StatusReason
306 ? response.StatusReason
307 : 'API call to remote host failed. No data could be retrieved from remote service.'
309 $('#HPIbtnConfirm').prop('disabled', false);
313 , _w.taskContractError
319 //$('#downloadTuhpi').click(function () {
321 // 'printTuhpi:' + _w.stockview.itemId, 'Stock', 'Tuhpi.Print', _w.stockview.itemId,
324 // 'printTuhpi:' + _w.stockview.itemId, {}, {},
325 // function () {}, _w.taskExecError,
328 // }, _w.taskContractError
332 $('#btn_mainImage').change(function () {
333 if ('' == $('#mainImage').val())
335 $('#img_mainImage').addClass('error');
336 $('#img_mainImage').removeClass('valid');
340 $('#img_mainImage').removeClass('error');
341 $('#img_mainImage').addClass('valid');
345 $('#btnFetchTu').click(function () {
346 if (!$('#vehicleYear').val()
347 || !$('#vehicleType').val())
349 alert('Vehicle year and type is required to fetch Trade and Retail pricing.');
353 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
354 {}, _w.stockview._onTuReady, _w.taskContractError
357 $('#btnUpdate').prop('disabled', true);
358 $('#btnArchive').click(function () {
360 'archiveStock:' + _w.stockview.itemId,
361 'Stock', 'Stock.MoveToArchive', _w.stockview.itemId, {},
362 _w.stockview._onStockUpdated, _w.taskExecError
365 $('#btnUnarchive').click(function () {
367 'unarchiveStock:' + _w.stockview.itemId,
368 'Stock', 'Stock.MoveToStock', _w.stockview.itemId, {},
369 _w.stockview._onStockUpdated, _w.taskExecError
372 App.Util.updateCheckboxStyle($('#acceptPgHPIdisclaimer'));
373 $('#btnSendToPg').click(function () {
374 var clubs = $('#clubs').val();
377 alert('Please select at least one club.');
380 if (!$('#acceptPgHPIdisclaimer').is(':checked'))
382 alert('Please accept the conditions before sending.');
385 if ('' == $('#registrationNumber').val())
387 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to price guide.');
388 $('#registrationNumber').addClass('error');
389 $('#registrationNumber').removeClass('valid');
394 $('#registrationNumber').removeClass('error');
395 $('#registrationNumber').addClass('valid');
397 if ('' == $('#vinNumber').val())
399 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to price guide.');
400 $('#vinNumber').addClass('error');
401 $('#vinNumber').removeClass('valid');
406 $('#vinNumber').removeClass('error');
407 $('#vinNumber').addClass('valid');
409 if ('' == $('#engineNumber').val())
411 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to price guide.');
412 $('#engineNumber').addClass('error');
413 $('#engineNumber').removeClass('valid');
418 $('#engineNumber').removeClass('error');
419 $('#engineNumber').addClass('valid');
421 if (!$('#frmStockView').valid())
425 $('#btnSendToPg').prop('disabled', true);
426 console.log('beforeupdatestock3',data);
428 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
431 'sendToPg:' + _w.stockview.itemId, 'Stock', 'Stock.SendToPriceGuide', _w.stockview.itemId,
433 var clubList = $('#clubs').val();
435 for (var i = 0; i < clubList.length; i++)
437 clubs.push({id: clubList[i]});
440 'sendToPg:' + _w.stockview.itemId, {Context: {clubs: clubs}}, {},
441 _w.stockview._onStockUpdated, _w.taskExecError
443 }, _w.taskContractError
449 $('.back-btn').on('click', function(){
450 window.history.back();
453 $('#btnSendToRetail').click(function () {
454 var reservePrice = $('#retailAmountRequired').val();
455 if ('' == reservePrice || isNaN(reservePrice))
457 alert('Please provide minimum retail price.');
460 if (!$('#frmStockView').valid())
464 $('#btnSendToRetail').prop('disabled', true);
466 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
469 'retailStock:' + _w.stockview.itemId,
470 'Stock', 'Stock.SendToRetail', _w.stockview.itemId, {},
471 _w.stockview._onStockUpdated, _w.taskExecError
476 $('#btnReclaimFromRetail').click(function () {
477 if (!$('#frmStockView').valid())
481 $('#btnReclaimFromRetail').prop('disabled', true);
483 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
486 'retailReclaimStock:' + _w.stockview.itemId,
487 'Stock', 'Stock.ReclaimFromRetail', _w.stockview.itemId, {},
488 _w.stockview._onStockUpdated, _w.taskExecError
493 $('#btnSendToTc').click(function () {
494 if (!$('#frmStockView').valid())
498 $('#btnSendToTc').prop('disabled', true);
499 if (8 != $('#vehicleCategory').val())
502 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
503 {}, _w.stockview._onTuTcUpdateReady, _w.taskContractError
509 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
512 'tcStock:' + _w.stockview.itemId,
513 'Stock', 'Stock.SendToTradeCenter', _w.stockview.itemId, {},
514 _w.stockview._onStockUpdated, _w.taskExecError
520 App.Util.updateCheckboxStyle($('#acceptAuctionHPIdisclaimer'));
521 $('#btnSendToAuction').click(function () {
522 var endDate = $('#endDate').val();
523 var reservePrice = $('#reservePrice').val();
524 if ('' == endDate || '' == reservePrice || isNaN(reservePrice))
526 alert('Please provide end date and reserve price.');
530 if (!$('#frmStockView').valid())
534 if (!$('#acceptAuctionHPIdisclaimer').is(':checked'))
536 alert('Please accept the conditions before sending.');
540 if ('' == $('#mainImage').val())
542 alert('The main image is mandatory for moving a vehicle to auction.');
543 $('#img_mainImage').addClass('error');
544 $('#img_mainImage').removeClass('valid');
549 $('#img_mainImage').removeClass('error');
550 $('#img_mainImage').addClass('valid');
552 if ('' == $('#registrationNumber').val())
554 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to auction.');
555 $('#registrationNumber').addClass('error');
556 $('#registrationNumber').removeClass('valid');
561 $('#registrationNumber').removeClass('error');
562 $('#registrationNumber').addClass('valid');
564 if ('' == $('#vinNumber').val())
566 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to auction.');
567 $('#vinNumber').addClass('error');
568 $('#vinNumber').removeClass('valid');
573 $('#vinNumber').removeClass('error');
574 $('#vinNumber').addClass('valid');
576 if ('' == $('#engineNumber').val())
578 alert('The Registration, VIN and Engine number is mandatory for moving a vehicle to auction.');
579 $('#engineNumber').addClass('error');
580 $('#engineNumber').removeClass('valid');
585 $('#engineNumber').removeClass('error');
586 $('#engineNumber').addClass('valid');
590 $('#btnSendToAuction').prop('disabled', true);
591 if (_w.stockview.newItem)
594 data.Stock = _w.stockview._prepStockUpdateData();
595 data.Context = {endDate: endDate, reservePrice: reservePrice};
596 console.log('createstockauction',data);
598 'createStockAuction', data, {},
599 _w.stockview._onStockUpdated, _w.taskExecError
604 if (8 != $('#vehicleCategory').val())
607 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
608 {}, _w.stockview._onTuUpdateReady, _w.taskContractError
612 {console.log('updatestock5',data);
614 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
617 'sendToAuction:' + _w.stockview.itemId, 'Stock', 'Stock.SendToAuction', _w.stockview.itemId,
619 var endDate = $('#endDate').val();
620 var reservePrice = $('#reservePrice').val();
622 'sendToAuction:' + _w.stockview.itemId, {Context: {endDate: endDate, reservePrice: reservePrice}}, {},
623 _w.stockview._onStockUpdated, _w.taskExecError
625 }, _w.taskContractError
632 if (null != _w.stockview.itemData)
634 _w.stockview._onDataAndTemplate();
636 if (false == _w.stockview.newItem)
638 _w.stockview.ti.hydrate({
639 'gridPricingHistoryColumnHeaders': {
640 constructor: 'GridColumnHeader',
643 id: 'gridPricingHistoryColumn_Date',
647 id: 'gridPricingHistoryColumn_Trade',
651 id: 'gridPricingHistoryColumn_totalRecon',
652 title: 'Total Recon',
655 id: 'gridPricingHistoryColumn_km',
659 id: 'gridPricingHistoryColumn_pricegOffer',
660 title: 'Priceguide Offer',
663 id: 'gridPricingHistoryColumn_auctionWinningBid',
664 title: 'Auction Winning Bid',
668 'gridPricingHistoryRowRepeater': {}
673 $('#pricinghistory').hide();
676 _w.stockview.itemId = App.Util.getUrlParam('id');
677 if (0 == _w.stockview.itemId || null == _w.stockview.itemId)
678 {console.log('createitems',data);
680 'createStock', 'Stock', 'Stock.Create',
681 null, {}, function(){}, _w.taskContractError
684 'createStockAuction', 'Stock', 'Stock.CreateAuction',
685 null, {}, function(){}, _w.taskContractError
687 App.DataStore.loadSelectListGroup([
688 {dataId: 'years', isStatic: true, workspace: 'Stock', task: 'Year.SelectList'},
689 {dataId: 'categories', isStatic: true, workspace: 'Stock', task: 'Category.SelectList'},
690 {dataId: 'conditions', isStatic: true, workspace: 'Stock', task: 'Condition.SelectList'},
691 {dataId: 'exteriorColours', isStatic: true, workspace: 'Stock', task: 'ExteriorColour.SelectList'},
692 {dataId: 'interiorColours', isStatic: true, workspace: 'Stock', task: 'InteriorColour.SelectList'},
693 {dataId: 'upholsteries', isStatic: true, workspace: 'Stock', task: 'Upholstery.SelectList'},
694 {dataId: 'papers', isStatic: true, workspace: 'Stock', task: 'Paper.SelectList'},
695 {dataId: 'natis', isStatic: true, workspace: 'Stock', task: 'Natis.SelectList'},
696 {dataId: 'fsh', isStatic: true, workspace: 'Stock', task: 'FullServiceHistory.SelectList'},
697 {dataId: 'fuelTypes', isStatic: true, workspace: 'Stock', task: 'FuelType.SelectList'},
698 {dataId: 'transmissionTypes', isStatic: true, workspace: 'Stock', task: 'TransmissionType.SelectList'},
699 {dataId: 'damages', isStatic: true, workspace: 'Stock', task: 'Damage.SelectList'},
700 {dataId: 'accessories', isStatic: true, workspace: 'Stock', task: 'Accessory.SelectList'},
701 {dataId: 'clubs', isStatic: true, workspace: 'PriceGuide', task: 'Club.SelectList'}
707 _w.stockview.newItem = false;
708 var task = _w.stockview.limited
709 ? 'Stock.LimitedUpdate'
712 'updateStock:' + _w.stockview.itemId, 'Stock', task, _w.stockview.itemId,
713 {}, $.proxy( _w.stockview._onStockViewDataReceived, this ), _w.taskContractError
718 setStockViewFormMeta : function( data )
721 if (undefined != data)
723 for (var i = 0; i < data.damages.length; i++)
725 damages['d' + data.damages[i].damage] = data.damages[i].amount;
733 _w.stockview.formMeta = {
738 dataStoreId : 'years',
739 value : data.vehicleYear ? data.vehicleYear : '',
740 onChange : function () {
741 if (!App.DataStore.getItem('BuildSelect:vehicleYear', false))
743 if (_w.stockview.itemData)
745 _w.stockview.itemData.vehicleYear = $('#vehicleYear').val();
746 _w.stockview._listMakesModelsTypes(function () {
747 if ($('#vehicleYear').val() && $('#vehicleType').val())
750 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
751 {}, _w.stockview._onTuReady, _w.taskContractError
761 id : 'vehicleCategory',
763 dataStoreId : 'categories',
764 value : data.type ? data.type.category.id : '',
765 onChange : function () {
767 if ($(this).val() == 8)
769 $('#retailPrice').val('');
770 $('#tradePrice').val('');
771 $('#listPrice').val('');
772 $('#' + _w.stockview.ti.tid + '_initialTradePrice').val($('#' + _w.stockview.ti.tid + '_tradePrice').html());
773 $('#' + _w.stockview.ti.tid + '_updatedTradePrice').val('');
774 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + '.00');
775 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + '.00');
776 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + '.00');
781 if ($(this).val() == 8 && _w.stockview.itemId == 0)
783 $('#mmCode').html("Other");
786 if (!App.DataStore.getItem('BuildSelect:vehicleCategory', false))
788 if (_w.stockview.itemData)
790 _w.stockview.itemData.type.category.id = $('#vehicleCategory').val();
791 _w.stockview._listMakesModelsTypes();
794 $('#' + _w.stockview.ti.tid + '_makeManual').hide();
795 $('#' + _w.stockview.ti.tid + '_modelManual').hide();
796 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
797 $('#makeManual').val('');
798 $('#modelManual').val('');
799 $('#typeManual').val('');
800 $('#' + _w.stockview.ti.tid + '_make').show();
801 $('#' + _w.stockview.ti.tid + '_model').show();
802 $('#' + _w.stockview.ti.tid + '_type').show();
808 title : 'Vehicle Make',
809 dataStoreId : 'makes',
810 value : data.type ? data.type.model.make.id : '',
811 onChange : function () {
812 if (!App.DataStore.getItem('BuildSelect:vehicleMake', false))
814 $('#vehicleMakeManual').val('');
815 $('#vehicleModelManual').val('');
816 $('#vehicleTypeManual').val('');
817 if (-1 == $('#vehicleMake').val())
819 $('#' + _w.stockview.ti.tid + '_make').hide();
820 $('#' + _w.stockview.ti.tid + '_model').hide();
821 $('#' + _w.stockview.ti.tid + '_type').hide();
822 $('#' + _w.stockview.ti.tid + '_makeManual').show();
823 $('#' + _w.stockview.ti.tid + '_modelManual').show();
824 $('#' + _w.stockview.ti.tid + '_typeManual').show();
828 $('#' + _w.stockview.ti.tid + '_makeManual').hide();
829 $('#' + _w.stockview.ti.tid + '_modelManual').hide();
830 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
831 $('#' + _w.stockview.ti.tid + '_make').show();
832 $('#' + _w.stockview.ti.tid + '_model').show();
833 $('#' + _w.stockview.ti.tid + '_type').show();
834 if (_w.stockview.itemData)
836 _w.stockview.itemData.type.model.make.id = $('#vehicleMake').val();
837 _w.stockview._listMakesModelsTypes();
846 title : 'Vehicle Model',
847 dataStoreId : 'models',
848 value : data.type ? data.type.model.id : '',
849 onChange : function () {
850 if (!App.DataStore.getItem('BuildSelect:vehicleModel', false))
852 $('#vehicleModelManual').val('');
853 $('#vehicleTypeManual').val('');
855 if (-1 == $('#vehicleModel').val())
857 $('#' + _w.stockview.ti.tid + '_model').hide();
858 $('#' + _w.stockview.ti.tid + '_type').hide();
859 $('#' + _w.stockview.ti.tid + '_modelManual').show();
860 $('#' + _w.stockview.ti.tid + '_typeManual').show();
864 $('#' + _w.stockview.ti.tid + '_modelManual').hide();
865 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
866 $('#' + _w.stockview.ti.tid + '_model').show();
867 $('#' + _w.stockview.ti.tid + '_type').show();
868 if (_w.stockview.itemData)
870 _w.stockview.itemData.type.model.id = $('#vehicleModel').val();
871 _w.stockview._listMakesModelsTypes();
880 title : 'Vehicle Type',
881 dataStoreId : 'types',
882 value : data.type ? data.type.id : '',
883 onChange : function () {
884 if (!App.DataStore.getItem('BuildSelect:vehicleType', false))
886 $('#vehicleTypeManual').val('');
887 if (-1 == $('#vehicleType').val())
889 $('#' + _w.stockview.ti.tid + '_type').hide();
890 $('#' + _w.stockview.ti.tid + '_typeManual').show();
894 $('#' + _w.stockview.ti.tid + '_typeManual').hide();
895 $('#' + _w.stockview.ti.tid + '_type').show();
896 if ($('#vehicleYear').val()
897 && $('#vehicleType').val())
900 'TransUnionFromMmCode', 'Stock', 'Utility.TransUnionFromMmCode', null,
901 {}, _w.stockview._onTuReady, _w.taskContractError
904 if ('' != $(this).val() && null != $(this).val())
908 'GetMmCode' + $(this).val(), 'Stock', 'Type.GetMmCode', null,
909 {id:$(this).val()}, function(response){
910 $('#mmCode').html(response.Data.mmCode);
911 }, _w.taskContractError
916 $('#mmCode').html('');
925 id : 'vehicleMakeManual',
926 title : 'Vehicle Make',
927 //dataStoreId : 'makesManual',
928 value : data.type ? data.type.model.make.id : '',
932 id : 'vehicleModelManual',
933 title : 'Vehicle Model',
934 //dataStoreId : 'modelsManual',
935 value : data.type ? data.type.model.id : '',
939 id : 'vehicleTypeManual',
940 title : 'Vehicle Type',
941 //dataStoreId : 'typesManual',
942 value : data.type ? data.type.id : '',
950 setAttrib : 'readonly',
951 value : data.type ? data.type.mmCode : ''
957 title : 'Stock number',
958 value : data.stockNumber ? data.stockNumber : ''
963 id : 'vehicleFuelType',
965 dataStoreId : 'fuelTypes',
966 value : data.fuelType ? data.fuelType : ''
968 'transmissionType' : {
970 id : 'vehicleTransmissionType',
971 title : 'Transmission Type',
972 dataStoreId : 'transmissionTypes',
973 value : data.transmissionType ? data.transmissionType : ''
977 id : 'vehicleCondition',
979 dataStoreId : 'conditions',
980 value : data.condition ? data.condition : ''
984 id : 'exteriorColour',
985 title : 'Main ext. colour',
986 dataStoreId : 'exteriorColours',
987 value : data.exteriorColour ? data.exteriorColour : ''
991 id : 'interiorColour',
992 title : 'Main int. colour',
993 dataStoreId : 'interiorColours',
994 value : data.interiorColour ? data.interiorColour : ''
998 id : 'vehicleUpholstery',
999 title : 'Upholstery',
1000 dataStoreId : 'upholsteries',
1001 value : data.upholstery ? data.upholstery : ''
1005 id : 'vehiclePapers',
1007 dataStoreId : 'papers',
1008 value : data.papers ? data.papers : ''
1012 id : 'vehicleNatis',
1014 dataStoreId : 'natis',
1015 value : data.natis ? data.natis : ''
1020 title : 'Spare keys',
1021 dataStoreId : 'sparekeys',
1022 value : undefined != data.spareKeys && null != data.spareKeys
1023 ? (data.spareKeys == true ? "1" : "0")
1026 'fullServiceHistory' : {
1028 id : 'fullServiceHistory',
1029 title : 'Full service history',
1030 dataStoreId : 'fsh',
1031 value : data.fullServiceHistory ? data.fullServiceHistory : ''
1033 'registrationNumber' : {
1035 id : 'registrationNumber',
1036 title : 'Registration no',
1037 value : data.registrationNumber ? data.registrationNumber : '',
1038 style : 'capitalise'
1044 value : data.vinNumber ? data.vinNumber : '',
1045 style : 'capitalise'
1049 id : 'engineNumber',
1051 value : data.engineNumber ? data.engineNumber : '',
1052 style : 'capitalise'
1058 value : data.km ? data.km : ''
1061 type : 'textarea-small',
1063 title : 'FSH notes',
1064 value : data.fshNotes ? data.fshNotes : ''
1067 type : 'damageDetails',
1068 disabled : !App.permissions.stockUpdateDamages,
1070 dataStoreId : 'damages',
1071 data : data.damages ? data.damages : {}
1073 'previousRepairsNoted' : {
1075 id : 'previousRepairsNoted',
1076 title : 'Previous repairs',
1077 style : 'damages-comments',
1078 value : data.previousRepairsNoted ? data.previousRepairsNoted : false
1080 'previousRepairsNotes' : {
1081 type : 'textarea-styled',
1082 disabled : !App.permissions.stockUpdateDamages,
1083 id : 'previousRepairsNotes',
1084 title : 'Previous repairs notes',
1085 style : 'damages-comments',
1086 value : data.previousRepairsNotes ? data.previousRepairsNotes : '',
1087 onChange: function(){
1088 var haveData = ('' != $(this).val() ? true : false);
1089 $('#previousRepairsNoted').prop('checked', haveData);
1092 'damageTotal' : 'R 0.00',
1094 type : 'textarea-styled',
1095 disabled : !App.permissions.stockUpdateDamages,
1097 title : 'Damages comments',
1098 style : 'damages-comments',
1099 value : data.damageNotes ? data.damageNotes : ''
1102 type : 'textarea-styled',
1103 disabled : !App.permissions.stockUpdateCoverReceived,
1104 id : 'coverReceived',
1105 title : 'Cover Received',
1106 style : 'cover-received',
1107 value : data.coverReceived ? data.coverReceived : ''
1110 type : 'checkGroup',
1112 dataStoreId : 'accessories',
1113 itemName : 'accessory',
1114 data : data.accessories ? data.accessories : {}
1116 'accessoryNotes' : {
1117 type : 'textarea-styled',
1118 id : 'accessoryNotes',
1121 areaStyle : 'comment-text-box',
1122 value : data.accessoryNotes ? data.accessoryNotes : ''
1127 baseImage : 'main_img_car.jpg',
1128 view : !App.permissions.stockUploadPhotos,
1129 value : data.mainImage ? data.mainImage : ''
1134 baseImage : 'front_car.jpg',
1135 view : !App.permissions.stockUploadPhotos,
1136 value : data.frontImage ? data.frontImage : ''
1141 baseImage : 'left_car.jpg',
1142 view : !App.permissions.stockUploadPhotos,
1143 value : data.leftImage ? data.leftImage : ''
1148 baseImage : 'right_car.jpg',
1149 view : !App.permissions.stockUploadPhotos,
1150 value : data.rightImage ? data.rightImage : ''
1155 baseImage : 'back_car.jpg',
1156 view : !App.permissions.stockUploadPhotos,
1157 value : data.backImage ? data.backImage : ''
1161 id : 'interiorImage',
1162 baseImage : 'interior_car.jpg',
1163 view : !App.permissions.stockUploadPhotos,
1164 value : data.interiorImage ? data.interiorImage : ''
1169 baseImage : 'engine_car.jpg',
1170 view : !App.permissions.stockUploadPhotos,
1171 value : data.engineImage ? data.engineImage : ''
1176 baseImage : 'copy_of_natis_car.jpg',
1177 view : !App.permissions.stockUploadPhotos,
1178 value : data.natisImage ? data.natisImage : ''
1183 title : 'Select clubs',
1184 dataStoreId : 'clubs',
1191 title : 'Auction end date',
1192 dtopt : {startDate: "+1d", endDate:"+" + App.serverConfig.auctionMaxDays + "d", daysOfWeekDisabled: [0], beforeShowDay: function(date) {
1193 if (date.getDay() == 6 && !App.openDays[App.Util.formatDate(date, 'yyyy-mm-dd')])
1197 for (var i = 0; i < _w.stockview.dates.length; i++)
1199 if (_w.stockview.dates[i] == date.toDateString())
1210 id : 'reservePrice',
1211 title : 'Reserve price',
1214 'retailAmountRequired' : {
1216 id : 'retailAmountRequired',
1217 title : 'Minimum retail price',
1218 value : data.retailAmountRequired ? data.retailAmountRequired : ''
1221 constructor: 'Button',
1225 id: 'printStockPdf',
1226 handler: _w.stockview.printStockPdf
1231 constructor: 'Button',
1235 id: 'printStockAuctionPdf',
1236 handler: _w.stockview.printStockAuctionPdf
1241 type : 'textarea-styled',
1243 title : 'Complaint',
1245 areaStyle : 'span12',
1250 'dateCreatedPriceGuide': data.created,
1251 'loadedOnPriceGuide': data.loadedOnPriceGuide,
1252 'numberOfOffers': data.numberOfOffers,
1253 'highestOffer': 'R ' + data.highestOffer,
1254 'timesListed': data.timesListed,
1255 'highestBid': 'R ' + data.highestBid,
1256 'referenceNumber': data.referenceNumber,
1257 'jobState': ('Stock' == data.jobState || 'Trade Center' == data.jobState)
1260 data.auction.jobState == 'Undone'
1261 || data.auction.jobState == 'Relist'
1269 'tradePrice' : data.tradePrice ? 'R ' + data.tradePrice : 'R 0.00',
1270 'initialTradePrice' : 0.00 != data.oldTradePrice
1271 ? 'R ' + data.oldTradePrice + (data.oldTradePriceDate ? '<br/>' + data.oldTradePriceDate : '')
1273 ? 'R ' + data.tradePrice + (data.tradePriceDate ? '<br/>' + data.tradePriceDate : '')
1276 'updatedTradePrice' : 0.00 != data.oldTradePrice
1277 ? 'R ' + data.tradePrice + (data.tradePriceDate ? '<br/>' + data.tradePriceDate : '')
1279 'retailPrice': data.retailPrice ? 'R ' + data.retailPrice : 'R 0.00',
1281 'listPrice' : data.listPrice ? 'R ' + data.listPrice : 'R 0.00',
1286 printStockPdf : function()
1289 'printStock:' + _w.stockview.itemId, 'Stock', 'Pdf.Print', _w.stockview.itemId,
1292 'printStock:' + _w.stockview.itemId, {}, {},
1293 function () {}, _w.taskExecError,
1296 }, _w.taskContractError
1299 printStockAuctionPdf : function()
1302 'printStock:' + _w.stockview.itemId, 'Auction', 'Pdf.PrintPortal', _w.stockview.itemData.auction.id,
1305 'printStock:' + _w.stockview.itemId, {}, {},
1306 function () {}, _w.taskExecError,
1309 }, _w.taskContractError
1312 loadHistoricalGrid : function( contract, data, options )
1315 'gridStockHistory', {Grid:{Filter:{"PricingHistory.stockId":_w.stockview.itemId}}}, options,
1316 _w.stockview._onHistoryGridDataReceived, _w.taskExecError
1320 _onHistoryGridDataReceived : function( response )
1322 _w.stockview.gridStatus = 'Active';
1323 _w.stockview.ti.hydrateParam('gridPricingHistoryRowRepeater', {});
1326 if (response.Data.DataSet.length == 0)
1328 $('#pricing_history_none_found').show();
1329 $('#PHColumnHeaders').hide();
1333 $('#pricing_history_none_found').hide();
1334 $('#PHColumnHeaders').show();
1337 for (var i = 0; i < response.Data.DataSet.length; i++)
1339 var row = response.Data.DataSet[i];
1345 PriceguideOffer : 'R ',
1346 AuctionWinningBid : 'R '
1354 PriceguideOffer : '',
1355 AuctionWinningBid : '',
1363 'Trade' : row.trade,
1364 'TotalRecon' : row.totalRecon,
1366 'PriceguideOffer' : row.pricegOffer,
1367 'AuctionWinningBid' : row.auctionWinningBid,
1372 _w.stockview.ti.hydrateParam('gridPricingHistoryRowRepeater', {
1373 constructor : 'GridDataRow',
1376 //response.Data.Meta.bind = _w.stockview.pageStockGrid;
1379 _listMakesModelsTypes : function( callback )
1383 if (!_w.stockview.itemData.vehicleYear)
1387 if (_w.stockview.itemData.type
1388 && _w.stockview.itemData.type.category
1389 && _w.stockview.itemData.type.category.id)
1391 App.DataStore.loadSelectListData(
1392 'makes', false, 'Stock', 'Utility.ListMakes', null,
1394 "category" : _w.stockview.itemData.type.category.id,
1395 "year" : _w.stockview.itemData.vehicleYear
1396 }}, {}, $.proxy(function(categoryId)
1398 if (8 == categoryId)
1400 var data = App.DataStore.getData('makes');
1405 App.DataStore.setData('makes', data);
1407 }, this, _w.stockview.itemData.type.category.id)
1409 if (_w.stockview.itemData.type
1410 && _w.stockview.itemData.type.model
1411 && _w.stockview.itemData.type.model.make
1412 && _w.stockview.itemData.type.model.make.id)
1414 App.DataStore.loadSelectListData(
1415 'models', false, 'Stock', 'Utility.ListModels', null,
1417 "make" : _w.stockview.itemData.type.model.make.id,
1418 "category" : _w.stockview.itemData.type.category.id,
1419 "year" : _w.stockview.itemData.vehicleYear
1420 }}, {}, $.proxy(function(categoryId)
1422 if (8 == categoryId)
1424 var data = App.DataStore.getData('models');
1429 App.DataStore.setData('models', data);
1431 }, this, _w.stockview.itemData.type.category.id)
1433 if (_w.stockview.itemData.type.model.id)
1435 App.DataStore.loadSelectListData(
1436 'types', false, 'Stock', 'Utility.ListTypes', null,
1438 "model" : _w.stockview.itemData.type.model.id,
1439 "category" : _w.stockview.itemData.type.category.id,
1440 "year" : _w.stockview.itemData.vehicleYear
1441 }}, {}, $.proxy(function(categoryId, callback)
1443 if (8 == categoryId)
1445 var data = App.DataStore.getData('types');
1450 App.DataStore.setData('types', data);
1456 }, this, _w.stockview.itemData.type.category.id, callback)
1463 _onDataAndTemplate : function ()
1465 _w.stockview.relistReservePrice = _w.stockview.itemData.auction
1466 && _w.stockview.itemData.auction.reservePrice
1467 ? _w.stockview.itemData.auction.reservePrice
1469 $('#reservePrice').val(_w.stockview.relistReservePrice);
1470 if (!_w.stockview.newItem)
1472 App.DataStore.loadSelectListData(
1473 'tuhpi', false, 'Stock', 'Tuhpi.List', null,{"Filter":
1475 "stock" : _w.stockview.itemId,
1476 "company" : App.companyData.id
1479 // data is retrieved
1480 var tuHpiData = App.DataStore.getData('tuhpi');
1482 _w.stockview._loadHpiReportData(tuHpiData);
1484 //for (var i = 0; i < tuHpiData.length; i++)
1486 // var tuHpiId = tuHpiData[i].id
1487 // var tuHpiCreated = tuHpiData[i].created
1492 // $('#tuhpiDate').html(tuHpiCreated);
1493 // $('#downloadTuhpi').show();
1494 // $('#HPIbtnConfirm').prop('disabled', false);
1499 // $('#tuhpiDate').html('Not Requested Yet');
1500 // $('#downloadTuhpi').hide();
1501 // $('#HPIbtnConfirm').prop('disabled', false);
1505 if ('Sold' == _w.stockview.itemData.jobState
1506 && true == _w.stockview.itemData.auction.Within30DaysOfEnd
1507 && App.companyData.id == _w.stockview.itemData.auction.company)
1509 $('#btnDispute').show();
1510 $('#btnLogDispute').click(function() {
1511 var comp = $('#complaint').val();
1514 alert('Please specify the complaint.');
1519 againstCompany : _w.stockview.itemData.auction.soldToCompany,
1520 auction : _w.stockview.itemData.auction.id,
1525 'createDispute', 'Dispute', 'Dispute.Create',
1526 null, {}, function(){
1528 'createDispute', data, {},
1530 alert('Dispute logged.');
1531 $('#dropDsp').slideToggle();
1534 }, _w.taskContractError
1540 $('#endDate').prop('readonly', true);
1543 $.each($.find('.rand-input'), function(i, input) {
1544 total += parseFloat($(input).val());
1546 $('#' + _w.stockview.ti.tid + '_damageTotal').html('R ' + total);
1547 $('#' + _w.stockview.ti.tid + '_initialTradePrice').val($('#' + _w.stockview.ti.tid + '_tradePrice').html());
1548 $('#' + _w.stockview.ti.tid + '_updatedTradePrice').val(_w.stockview.itemData.tradePrice);
1549 $('#retailPrice').val(_w.stockview.itemData.retailPrice);
1550 $('#tradePrice').val(_w.stockview.itemData.tradePrice);
1551 $('#listPrice').val(_w.stockview.itemData.listPrice);
1552 if ('Archived' == _w.stockview.itemData.jobState)
1554 true == App.permissions.stockUnarchive ? $('#btnUnarchive').show() : $('#btnUnarchive').hide();
1556 if ('Retail' == _w.stockview.itemData.jobState)
1558 true == App.permissions.stockReclaimRetail ? $('#btnReclaimFromRetail').show() : $('#btnReclaimFromRetail').hide();
1564 if ('Stock' == _w.stockview.itemData.jobState || _w.stockview.newItem)
1566 true == App.permissions.stockUpdate ? $('#btnUpdate').show() : $('#btnUpdate').hide();
1567 true == App.permissions.stockRouteRetail && !_w.stockview.newItem ? $('#optSendToRetail').show() : $('#optSendToRetail').hide();
1568 true == App.permissions.stockRoutePriceguide ? $('#optSendToPg').show() : $('#optSendToPg').hide();
1569 if (true == App.permissions.stockRouteAuction)
1572 ? $('#btnSendToTc').show()
1573 : $('#optSendToAction').show();
1574 if (_w.stockview.newItem)
1576 $('#btnSendToTc').hide();
1581 $('#optSendToAction').hide();
1583 true == App.permissions.stockArchive ? $('#btnArchive').show() : $('#btnArchive').hide();
1585 if ('Auction' == _w.stockview.itemData.jobState)
1587 (true == App.permissions.stockUpdate && "0.00" == _w.stockview.itemData.highestBid) ? $('#btnUpdate').show() : $('#btnUpdate').hide();
1588 $('#btnSendToTc').hide();
1589 $('#optSendToAction').hide();
1590 $('#optSendToRetail').hide();
1591 $('#optSendToPg').hide();
1592 $('#btnArchive').hide();
1594 if ('Relist' == _w.stockview.itemData.jobState)
1596 (true == App.permissions.stockUpdate && "0.00" == _w.stockview.itemData.highestBid) ? $('#btnUpdate').show() : $('#btnUpdate').hide();
1597 $('#btnSendToTc').hide();
1598 $('#optSendToAction').hide();
1599 $('#optSendToRetail').hide();
1600 $('#optSendToPg').hide();
1601 $('#btnArchive').show();
1604 true == App.permissions.stockPrint ? $('#printStockPdf').show() : $('#printStockPdf').hide();
1605 true == App.permissions.stockB4cReport ? $('#btnB4cAccidentReport').show() : $('#btnB4cAccidentReport').hide();
1606 true == App.permissions.stockBmw ? $('#btnBwmAccidentReport').show() : $('#btnBwmAccidentReport').hide();
1608 if (!App.permissions.pgPage && !App.permissions.auctionPag)
1610 $('.pg-a-data-wrapper').hide();
1612 if (true == App.permissions.pgPage) { $('.price-guide-info').show(); };
1613 if (true == App.permissions.auctionPage) { $('.auction-info').show(); };
1615 if (App.permissions.settingsHpiReport == false)
1617 $('#requestHPIreport').hide();
1618 $('#requestHPIAccidentReport').hide();
1621 if (_w.stockview.newItem)
1623 $('.info-block').hide();
1624 $('#optSendToPg').hide();
1625 $('#printStockPdf').hide();
1626 $('#btnArchive').hide();
1628 //HPI Report Hide on New
1629 $('#requestHPIreport').hide();
1630 $('#requestHPIAccidentReport').hide();
1631 $('.hpiReport').hide();
1635 if (App.permissions.settingsHpiReport)
1637 $('#requestHPIreport').show();
1638 $('#requestHPIAccidentReport').show();
1640 if (null == App.API.taskContract('gridStockHistory'))
1643 'gridStockHistory', 'Stock', 'PricingHistory.Grid', null,
1644 {}, _w.stockview.loadHistoricalGrid, _w.taskContractError
1646 $('#pricing_history_none_found').hide();
1647 $('#PHColumnHeaders').hide();
1651 _w.stockview.loadHistoricalGrid( null, {}, {} );
1655 if ('Sold' == _w.stockview.itemData.jobState)
1657 $('.printStockPdf').addClass('hide');
1658 $('.printStockAuctionPdf').removeClass('hide');
1661 _w.stockview._setupValidation();
1664 _onStockViewDataReceived : function( response )
1666 _w.stockview.itemId = response.Data.id;
1667 _w.stockview.itemData = response.Data;
1668 _w.stockview._listMakesModelsTypes();
1669 _w.stockview.setStockViewFormMeta(response.Data);
1670 _w.stockview.ti.hydrate(_w.stockview.formMeta);
1671 if (_w.stockview.ti.published)
1673 _w.stockview._onDataAndTemplate();
1675 App.DataStore.loadSelectListGroup([
1676 {dataId: 'years', isStatic: true, workspace: 'Stock', task: 'Year.SelectList'},
1677 {dataId: 'categories', isStatic: true, workspace: 'Stock', task: 'Category.SelectList'},
1678 {dataId: 'conditions', isStatic: true, workspace: 'Stock', task: 'Condition.SelectList'},
1679 {dataId: 'exteriorColours', isStatic: true, workspace: 'Stock', task: 'ExteriorColour.SelectList'},
1680 {dataId: 'interiorColours', isStatic: true, workspace: 'Stock', task: 'InteriorColour.SelectList'},
1681 {dataId: 'upholsteries', isStatic: true, workspace: 'Stock', task: 'Upholstery.SelectList'},
1682 {dataId: 'papers', isStatic: true, workspace: 'Stock', task: 'Paper.SelectList'},
1683 {dataId: 'natis', isStatic: true, workspace: 'Stock', task: 'Natis.SelectList'},
1684 {dataId: 'fsh', isStatic: true, workspace: 'Stock', task: 'FullServiceHistory.SelectList'},
1685 {dataId: 'fuelTypes', isStatic: true, workspace: 'Stock', task: 'FuelType.SelectList'},
1686 {dataId: 'transmissionTypes', isStatic: true, workspace: 'Stock', task: 'TransmissionType.SelectList'},
1687 {dataId: 'damages', isStatic: true, workspace: 'Stock', task: 'Damage.SelectList'},
1688 {dataId: 'accessories', isStatic: true, workspace: 'Stock', task: 'Accessory.SelectList'},
1689 {dataId: 'clubs', isStatic: true, workspace: 'PriceGuide', task: 'Club.SelectList'}
1693 _setupValidation : function ()
1695 App.DataStore.listen('regValidation', 'damages', function(id, damages) {
1697 mainImage: "required",
1698 vehicleYear: "required",
1699 vehicleCategory: "required",
1703 vehicleMake: { required: function(){
1704 return $('#vehicleMake').parent().css('display') != 'none';
1706 vehicleModel: { required: function(){
1707 return $('#vehicleModel').parent().css('display') != 'none';
1709 vehicleType: { required: function(){
1710 return $('#vehicleType').parent().css('display') != 'none';
1713 stockNumber: "required",
1715 vehicleMakeManual: { required: function(){
1716 return $('#vehicleMakeManual').parent().parent().css('display') != 'none';
1718 vehicleModelManual: { required: function(){
1719 return $('#vehicleModelManual').parent().parent().css('display') != 'none';
1721 vehicleTypeManual: { required: function(){
1722 return $('#vehicleTypeManual').parent().parent().css('display') != 'none';
1725 vehicleFuelType: "required",
1726 vehicleTransmissionType: "required",
1727 registrationNumber: "required",
1728 km: { required: true, digits: true }
1730 for (var i = 0; i < damages.length; i++)
1732 rules['damage' + damages[i].value + 'Amount'] = {number: true};
1735 $('#frmStockView').validate({
1738 mainImage : "This field is required.",
1739 vehicleYear : "This field is required.",
1740 vehicleCategory : "This field is required.",
1741 vehicleMake : "This field is required.",
1742 vehicleModel : "This field is required.",
1743 stockNumber : "This field is required.",
1744 vehicleType : "This field is required.",
1746 vehicleMakeManual : "This field is required.",
1747 vehicleModelManual : "This field is required.",
1748 vehicleTypeManual : "This field is required.",
1750 vehicleFuelType : "This field is required.",
1751 vehicleTransmissionType : "This field is required.",
1752 registrationNumber : "This field is required.",
1753 km : {required: "This field is required."}
1755 invalidHandler: function(event, validator) {
1756 var errors = validator.numberOfInvalids();
1757 if (0 < _w.stockview.validations && errors)
1759 var message = errors == 1
1760 ? 'You missed 1 field. It has been highlighted'
1761 : 'You missed ' + errors + ' fields. They have been highlighted';
1764 _w.stockview.validations++;
1766 submitHandler: function( form ) {
1767 $('#btnUpdate').prop('disabled', true);
1768 var data = _w.stockview._prepStockUpdateData();
1769 if (_w.stockview.newItem)
1772 'createStock', {"Stock":data}, {},
1773 _w.stockview._onStockUpdated, _w.taskExecError
1779 'updateStock:' + _w.stockview.itemId, {"Stock":data}, {},
1780 _w.stockview._onStockUpdated, _w.taskExecError
1785 $('#btnUpdate').prop('disabled', false);
1788 _w.stockview.validations = 0;
1789 $('#frmStockView').valid();
1791 $('label.error').remove();
1792 $('.valid').removeClass('valid');
1796 _onTuTcUpdateReady : function ()
1799 'TransUnionFromMmCode', {
1801 vehicleYear : parseInt($('#vehicleYear').val()),
1802 type : parseInt($('#vehicleType').val()),
1803 stockId : _w.stockview.itemId
1806 _w.stockview._onTuTcUpdateReceived, function(){}
1810 _onTuTcUpdateReceived : function ( response )
1812 if ('Success' != response.Data.Status)
1815 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1817 App.API.directRoute(
1818 'tcStock:' + _w.stockview.itemId,
1819 'Stock', 'Stock.SendToTradeCenter', _w.stockview.itemId, {},
1820 _w.stockview._onStockUpdated, _w.taskExecError
1826 var vals = response.Data.VehicleDetails[0].Value;
1827 $('#retailPrice').val(vals.RetailPrice);
1828 $('#tradePrice').val(vals.TradePrice);
1829 $('#listPrice').val(vals.NewPrice);
1830 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + vals.RetailPrice + '.00');
1831 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + vals.TradePrice + '.00');
1832 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + vals.NewPrice + '.00');
1834 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1836 App.API.directRoute(
1837 'tcStock:' + _w.stockview.itemId,
1838 'Stock', 'Stock.SendToTradeCenter', _w.stockview.itemId, {},
1839 _w.stockview._onStockUpdated, _w.taskExecError
1845 _onTuUpdateReady : function ()
1848 'TransUnionFromMmCode', {
1850 vehicleYear : parseInt($('#vehicleYear').val()),
1851 type : parseInt($('#vehicleType').val()),
1852 stockId : _w.stockview.itemId
1855 _w.stockview._onTuUpdateReceived, function(){}
1859 _onTuUpdateReceived : function ( response )
1861 if ('Success' != response.Data.Status)
1864 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1867 'sendToAuction:' + _w.stockview.itemId, 'Stock', 'Stock.SendToAuction', _w.stockview.itemId,
1869 var endDate = $('#endDate').val();
1870 var reservePrice = $('#reservePrice').val();
1872 'sendToAuction:' + _w.stockview.itemId, {Context: {endDate: endDate, reservePrice: reservePrice}}, {},
1873 _w.stockview._onStockUpdated, _w.taskExecError
1875 }, _w.taskContractError
1881 var vals = response.Data.VehicleDetails[0].Value;
1882 $('#retailPrice').val(vals.RetailPrice);
1883 $('#tradePrice').val(vals.TradePrice);
1884 $('#listPrice').val(vals.NewPrice);
1885 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + vals.RetailPrice + '.00');
1886 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + vals.TradePrice + '.00');
1887 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + vals.NewPrice + '.00');
1889 'updateStock:' + _w.stockview.itemId, {"Stock":_w.stockview._prepStockUpdateData()}, {},
1892 'sendToAuction:' + _w.stockview.itemId, 'Stock', 'Stock.SendToAuction', _w.stockview.itemId,
1894 var endDate = $('#endDate').val();
1895 var reservePrice = $('#reservePrice').val();
1897 'sendToAuction:' + _w.stockview.itemId, {Context: {endDate: endDate, reservePrice: reservePrice}}, {},
1898 _w.stockview._onStockUpdated, _w.taskExecError
1900 }, _w.taskContractError
1906 _onTuReady : function ()
1909 'TransUnionFromMmCode', {
1911 vehicleYear : parseInt($('#vehicleYear').val()),
1912 type : parseInt($('#vehicleType').val())
1915 _w.stockview._onTuReceived, function(){alert('There were no trade and retail from TransUnion');}
1919 _onTuReceived : function ( response )
1921 if ('Success' != response.Data.Status)
1923 if ('No Results From TransUnion' == response.Data.Status || 'No Values From TransUnion' == response.Data.Status) {
1924 //write zero values for transunion failed
1926 $('#retailPrice').val(vals);
1927 $('#tradePrice').val(vals);
1928 $('#listPrice').val(vals);
1929 $('#' + _w.stockview.ti.tid + '_retailPrice').html(vals);
1930 $('#' + _w.stockview.ti.tid + '_tradePrice').html(vals);
1931 $('#' + _w.stockview.ti.tid + '_listPrice').html(vals);
1933 alert(response.Data.Status);
1936 var vals = response.Data.VehicleDetails[0].Value;
1937 $('#retailPrice').val(vals.RetailPrice);
1938 $('#tradePrice').val(vals.TradePrice);
1939 $('#listPrice').val(vals.NewPrice);
1940 $('#' + _w.stockview.ti.tid + '_retailPrice').html('R ' + vals.RetailPrice + '.00');
1941 $('#' + _w.stockview.ti.tid + '_tradePrice').html('R ' + vals.TradePrice + '.00');
1942 $('#' + _w.stockview.ti.tid + '_listPrice').html('R ' + vals.NewPrice + '.00');
1945 _prepStockUpdateData : function()
1947 var data = _w.stockview.ti.harvest();
1948 data.km = '' == data.km
1950 : parseInt(data.km);
1951 var retailPrice = $('#retailPrice').val();
1952 var tradePrice = $('#tradePrice').val();
1953 var listPrice = $('#listPrice').val();
1954 var retailAmountRequired = $('#retailAmountRequired').val();
1955 data.retailPrice = ('' == retailPrice)
1957 : parseFloat(retailPrice);
1958 data.tradePrice = ('' == tradePrice)
1960 : parseFloat(tradePrice);
1961 data.listPrice = ('' == listPrice)
1963 : parseFloat(listPrice);
1964 data.retailAmountRequired = ('' == retailAmountRequired)
1966 : parseFloat(retailAmountRequired);
1967 delete data.damageTotal;
1968 if (-1 == data.make)
1974 if (-1 == data.model)
1979 if (-1 == data.type)
1983 if ('' == data.mainImage)
1985 delete data.mainImage;
1987 if ('' == data.leftImage)
1989 delete data.leftImage;
1991 if ('' == data.backImage)
1993 delete data.backImage;
1995 if ('' == data.engineImage)
1997 delete data.engineImage;
1999 if ('' == data.frontImage)
2001 delete data.frontImage;
2003 if ('' == data.rightImage)
2005 delete data.rightImage;
2007 if ('' == data.interiorImage)
2009 delete data.interiorImage;
2011 if ('' == data.natisImage)
2013 delete data.natisImage;
2019 _onStockUpdated : function( response )
2021 window.location.hash = '/stock';
2023 _onHpiDownloadButtonClick: function (event)
2025 //console.log('event.currentTarget.dataset',event.currentTarget.dataset);
2027 var hpiType = event.currentTarget.dataset.value;
2028 var hpiId = event.currentTarget.dataset.id;
2030 //console.log('hpiId',hpiId);
2031 //console.log('hpiType',hpiType);
2033 if('ACC' == hpiType)
2036 'printTuhpiAccident:' + _w.stockview.itemId, 'Stock', 'Tuhpi.PrintAccident', _w.stockview.itemId,
2037 {'PdfTemplate':{'recordId':hpiId}}, function () {
2039 'printTuhpiAccident:' + _w.stockview.itemId, {}, {},
2041 }, _w.taskExecError,
2044 }, _w.taskContractError
2050 'printTuhpi:' + _w.stockview.itemId, 'Stock', 'Tuhpi.Print', _w.stockview.itemId,
2051 {'PdfTemplate':{'recordId':hpiId}}, function () {
2053 'printTuhpi:' + _w.stockview.itemId, {}, {},
2055 }, _w.taskExecError,
2058 }, _w.taskContractError
2064 _loadHpiReportData: function (hpiData) {
2065 var tuHpiData = hpiData;
2067 if (0 < tuHpiData.length) {
2068 $('#HPIreportData').html('');
2070 var tuHpiCreated = '';
2072 var tuHpiButtonType = '';
2075 for (var i = 0; i < tuHpiData.length; i++) {
2078 tuHpiId = tuHpiData[i].id;
2079 tuHpiCreated = tuHpiData[i].created;
2080 tuHpiType = tuHpiData[i].hpi_type;
2081 tuHpiButtonType = tuHpiData[i].hpi_type;
2083 var hpiDataHtml = '<div class="control-group mobile-control-group row-fluid" style="display: block;border:1px solid #d3d3d3;" id="' + i + '">'
2084 + '<div class="control-group mobile-control-group span4" style="padding-left:10px; padding-top:13px;">Last date requested:</div>'
2085 + '<div class="control-group mobile-control-group span4" style="padding-left:10px;border-left:1px solid #d3d3d3; padding-top:13px;">'
2086 + '<div id="tuhpiDate_' + i + '" class="span9">Not requested yet.</div>'
2088 + '<div class="control-group mobile-control-group span4" style="padding-left:10px;border-left:1px solid #d3d3d3; padding-top:13px;">'
2089 + '<div id="tuhpiType_' + i + '" class="span8">Not requested yet.</div>'
2090 + '<div class="span4">'
2091 + '<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>'
2096 $('#HPIreportData').append(hpiDataHtml);
2099 $('#tuhpiDate_' + i).html(tuHpiCreated);
2100 $('#tuhpiType_' + i).html(tuHpiType);
2101 $('#downloadTuhpi').show();
2102 $('#HPIbtnConfirm').prop('disabled', false);
2105 $('#tuhpiDate_' + i).html('Not Requested Yet');
2106 $('#tuhpiType_' + i).html('Not Requested Yet');
2107 $('#downloadTuhpi').hide();
2111 $('#downloadTuhpi_' + tuHpiId).click(function (event) {
2112 _w.stockview._onHpiDownloadButtonClick(event);