{"version":3,"sources":["cool.min.js"],"names":["angular","module","analyticsService","$window","$log","logEvent","event","ga","location","pathname","target","text","trim","info","logCATEvent","category","action","logCATUEvent","pathHash","hash","factory","dataService","$q","$http","config","reviewDateValidation","dates","post","serviceBaseUrl","then","success","catch","failure","authorize","authAgainstApi","response","log","res","data","payload","username","loweredEmail","password","userId","failSilently","ie11CacheBugFix","Date","getTime","getProfile","get","submitFreightMarketingForm","getCityInfo","zip","state","city","getAvailableShippers","getAvailableBillers","shipperCode","serviceUrl","getAvailableLoadAt","getAvailableIntermediate","getAvailableConsignees","getHazmatItems","getStates","getOrder","orderId","getOrders","saveOrder","summaryModel","isFavorite","isSubmitted","userAuthenticationCheck","id","jsonsnapshot","JSON","stringify","deleteOrder","delete","saveWorkInProgress","order","path","loadAtLoadDetails","pickupDateNormalized","_normalizeDate","pickupDate","ConsigneeLoadDetails","deliveryDateNormalized","deliveryDate","previousDate","previousDateNormalized","loadDetails","devDate","prevDate","date","moment","format","capacityCheck","successCapacity","submitOrder","loadAt","i","intermediateStops","length","stopLoadDetails","saveStopLoadDetails","consignee","consginee","result","results","error","err","responseStatus","errors","message","forEach","toastr","errorCode","ok","document","href","COOLApiUrl","controllerLogic","$state","$location","$filter","resetDates","LoadAt","saveLoadAtLoadDetails","dateWithoutTimeZoneOffset","Consignee","saveConsigneeLoadDetails","stop","capacity","e","l","d","t","lac","sc","equipmentType","saveLoadAtLocationinfo","customerInfo","cityArea","toString","pickupTimeRange","from","Shipper","saveShipperInfo","customerCode","time","loadAtCode","userTimezoneOffset","getTimezoneOffset","populateSelected","selectedCustomer","update","setCity","newCity","name","ctcCode","populateCities","stateSelected","stateCode","abbreviation","country","availableCities","postalCode","cities","push","when","toggleManualEntry","form","customerCodeSwitch","manualEntrySwitch","customerContactInfo","manualEntry","srcObj","destObj","key","hasOwnProperty","service","SetStep","step","process","this","validated","currentStep","currentProcessStep","proceed","go","params","transitionState","ExtraModels","specialHandlingItem","obj","merge","baseOrder","BillTo","saveBillTo","Intermediate","genOrdNum","saveStopLocationInfo","saveStopShipmentReference","saveStopSpecialHandling","stopNumberList","stopType","totalWeight","shipmentPieces","specialInstructions","range","specialHandling","refs","saveLoadAtShipmentRef","saveLoadAtSpecialHandling","loadType","freightLoading","trailerNumber","availableTrailers","tempRange","saveConsigneeLocationInfo","saveConsigneeShipmentRef","deliveryType","deliveryTimeRange","isPartialSave","specialOptions","current","defaultValues","options","Title","Value","Selected","Amount","resetData","extend","containsItem","nameKey","specialHandlingItems","items","itemType","hazmatDescription","hazmatWeight","highValueApproxValue","jitYesOrNo","customerName","addressLine1","addressLine2","areaCode","phone","formattedPhone","selectedState","contactName","contactEmail","contactPhone","shipmentRef","referenceNumberList","billOfLadingList","purchaseOrderList","doesShipmentRequireSpecialHandling","dFromHr","dFromMin","dToHr","dToMin","dFromAmPm","dToAmPm","to","convertTime","fHours","fMinutes","fAmPm","tHours","tMinutes","tAmPm","Number","s4","Math","floor","random","substring","defaultService","orderName","pageRefreshed","submitted","currentStop","stateProvider","$stateProvider","url","loaded","views","viewProgressIndicator","templateUrl","controller","mobileProgress","viewTab","resolve","currentTabs","tabs","summary","states","defer","element","html","split","promise","$timeout","origin","reject","abstract","title","locationTitle","viewProgressIndicator@","mobileProgress@","viewForm@","processStep","viewSummary@","$stateParams","deferred","reload","$promise","addStop","suppressSummary","viewMain","configVars","environment","host","directive","restrict","require","link","scope","attr","$formatters","shift","constant","$provide","decorator","$delegate","constructor","prototype","$onRootScope","listener","unsubscribe","$on","$httpProvider","defaults","withCredentials","mobileTimeDirective","attributes","timeAdjustment","hours","getHours","minutes","getMinutes","ampm","rawHours","console","model","$watch","value","oldValue","template","ifAndroidSetCaret","inputLength","navigator","userAgent","toLowerCase","indexOf","inputValue","phonenumberModel","String","number","replace","tel","slice","$inject","phoneNumber","spinnerCool","transclude","timeEntryDirective","padHours","padMinutes","match","checkIfMidnight","midnightMinutes","disabled","timerange","uid","timeMinutesFilter","filter","timeHoursFilter","clearFilter","vm","showFilter","search","ascending","orderBy","currentColumnSort","descending","elem","remove","orderToDelete","closeButton","timeOut","extendedTimeOut","preventDuplicates","cancelWarning","cancelClick","_deleteOrder","unsubIdx","unsubmittedOrders","copiedIdx","copiedOrders","splice","isSubmittedOrder","getOrderName","editingName","jsonSnapshot","preName","saveOrderName","saveSubmittedOrderName","_saveSubmittedDate","_removeFavorite","warning","idx","favoritedOrders","orderFavoriteToRemove","submittedDate","modifiedDate","_saveFavorite","getPickupDate","getReferences","that","map","ref","references","loadAtNumberList","consigneeNumberList","join","orders","parseCSharpDate","preSortOrder","isUnsubmittedOrder","freshCopy","submittedOrders","jsonDate","tapToDismiss","orderToCopy","copyClick","_copyAmount","$","x","addClass","updateHandle","el","val","textContent","$element","onInit","$handle","$range","click","clear","on","closest","copies","copyDates","newOrder","copy","toUpperCase","copyNumber","getElementById","scrollIntoView","is","orderStatus","getDeliveryDate","editOrderName","copyOrder","toggleFilter","clearModal","MyOrdersController","$sce","phrase","RegExp","trustAsHtml","returnArray","searchText","AND_OR","regexp_and","regexp_or","input","snap","pickup","toLocaleDateString","dropoff","searchedString","txt","charAt","substr","snapshot","parse","setLocation","shipmentRefNotEntered","otherRefs","srefs","bol","or","po","stops","SaveShipmentReference","ShipmentRef","dateValidation","loadat","bindContinueEvent","submitReview","editOrderController","progressIndicatorController","$scope","$rootScope","constructNavLink","active","stopNum","navBar","goBack","stepCase","back","saveAndExit","calcTabLength","tabLength","bindOnLoadEvent","cState","parentUrl","goToStop","saveAndContinue","notCompletedOrder","preventDefault","children","insertAfter","submitAnyway","capacityReq","hasCapacity","altDate","year","month","stringDate","day","_removeLoadingSplash","_submitOrder","ignoredCapacity","orderObject","GenOrderObject","switchLoadAtDate","deleteWarning","openModal","overlay","body","append","closeModal","submitOverlay","edit","reference","editStop","ReferenceBuilder","GenSpecialHandling","billTo","handling","specialHandlingSubmission","item","specialHandlingObject","handlingItems","hazmatEmergencyContactName","hazmatEmergencyContactNumber","hasHazmat","hasJit","ordId","q","Reference","count","billOfLading","purchaseOrder","pickupNum","qualifier","delivery","qual","wght","pcs","saveAndQuit","reviewController","pickUpNumberList","validationSwitch","ShipmentRefController","specialHandlingController","hazmatItem","selection","removeItems","addItem","extraModels","removeItem","setSpecialHandling","clearHazmat","summaryController","openSummary","isStopActive","btnDeliveryTypeClick","cosigneeLoadDetailsController","cosigneeLocationController","selectedCity","oldCode","syncStates","loadCustomers","customers","finally","$emit","save","additionalStop","additionalStopsController","clearWeightPieces","stopId","stopsLocationInfoController","continueHref","completeLoadAt","email","animate","scrollTop","checkCapacity","liveLoadClick","loadAtLoadDetailsController","resp","billToInfoController","shipperInfoController"],"mappings":"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","file":"cool.min.js","sourcesContent":["(function () {\r\n 'use strict';\r\n\r\nangular.module('app.orders.services', []);\r\n\r\n})();\n(function () {\r\n\t'use strict';\r\n\r\n\tangular\r\n\t .module('app.orders.services')\r\n\t .factory('analyticsService',[ '$window', '$log' ,analyticsService]);\r\n\r\n\tfunction analyticsService($window, $log) {\r\n\r\n\t\tvar services = {\r\n\t\t\tlogEvent: logEvent,\r\n\t\t\tlogCATEvent: logCATEvent,\r\n\t\t\tlogCATUEvent: logCATUEvent\r\n\t\t};\r\n\t\treturn services;\r\n\r\n\t\tfunction logEvent(event) {\r\n\t\t\tga('send', 'event', $window.location.pathname, 'click', event.target.text.trim());\r\n\t\t\t$log.info('GA Tracking event fired for: ', event)\r\n\t\t}\r\n\r\n\t\tfunction logCATEvent(category, action, text) {\r\n\t\t\tga('send', 'event', category, action, text);\r\n\t\t\t$log.info('GA Tracking event fired for: ', category, action, text)\r\n\t\t}\r\n\r\n\t\tfunction logCATUEvent(category, action, text) {\r\n\t\t\tga('send', 'event', category, action, text + pathHash() );\r\n\t\t\t$log.info('GA Tracking event fired for: ', category, action, text + pathHash() )\r\n\t\t}\r\n\r\n\t\tfunction pathHash(){\r\n\t\t\treturn $window.location.pathname + $window.location.hash;\r\n\t\t}\r\n\r\n\t}\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders.services')\r\n .factory('dataService',[ '$q', '$log', '$http', 'config', '$window',dataService]);\r\n\r\n function dataService($q, $log, $http, config, $window) {\r\n var serviceBaseUrl = config.COOLApiUrl;\r\n\r\n var services = {\r\n getAvailableShippers: getAvailableShippers,\r\n getAvailableBillers: getAvailableBillers,\r\n getAvailableLoadAt: getAvailableLoadAt,\r\n getAvailableIntermediate: getAvailableIntermediate,\r\n getAvailableConsignees: getAvailableConsignees,\r\n getHazmatItems: getHazmatItems,\r\n getStates: getStates,\r\n getOrder: getOrder,\r\n getOrders: getOrders,\r\n saveOrder: saveOrder,\r\n deleteOrder: deleteOrder,\r\n saveWorkInProgress: saveWorkInProgress,\r\n capacityCheck: capacityCheck,\r\n submitOrder: submitOrder,\r\n getCityInfo: getCityInfo,\r\n authorize: authorize,\r\n reviewDateValidation: reviewDateValidation,\r\n submitFreightMarketingForm: submitFreightMarketingForm\r\n };\r\n return services;\r\n\r\n function reviewDateValidation(dates) {\r\n var serviceUrl = '/backoffice/validate-review-dates';\r\n return $http.post(serviceBaseUrl + serviceUrl, dates)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n function authorize() {\r\n var ie11CacheBugFix = (new Date()).getTime();\r\n var getProfile = '/apiv2/UserProfile?format=json' + ie11CacheBugFix\r\n return $http.get(getProfile) \r\n .then(authAgainstApi)\r\n .catch(failSilently);\r\n\r\n function authAgainstApi(response) {\r\n $log.log(response)\r\n var res = response.data;\r\n var serviceUrl = '/auth';\r\n var payload = {\r\n username: res.loweredEmail,\r\n password: res.userId\r\n };\r\n return $http.post(serviceBaseUrl + serviceUrl, payload)\r\n .then(success)\r\n .catch(failSilently);\r\n }\r\n }\r\n\r\n function submitFreightMarketingForm(payload) {\r\n var serviceUrl = '/swift-trans/send-online-ordering';\r\n return $http.post(serviceBaseUrl + serviceUrl, payload)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n function getCityInfo(zip, state, city) {\r\n var serviceUrl = '/backoffice/getcityinfo';\r\n var payload = {\r\n state: state,\r\n city: city,\r\n zip: zip\r\n };\r\n return $http.post(serviceBaseUrl + serviceUrl, payload)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n function getAvailableShippers() {\r\n var serviceUrl = '/lookup/availableShippers';\r\n return $http.get(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failSilently);\r\n }\r\n\r\n function getAvailableBillers(shipperCode) {\r\n var serviceUrl = '/lookup/availableBillers?shipperCode=' + shipperCode;\r\n return $http.get(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failSilently);\r\n }\r\n\r\n function getAvailableLoadAt(shipperCode) {\r\n var serviceUrl = '/lookup/availableLoadAt?shipperCode=' + shipperCode;\r\n return $http.get(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failSilently);\r\n }\r\n\r\n function getAvailableIntermediate(shipperCode) {\r\n var serviceUrl = '/lookup/availableIntermediate?shipperCode=' + shipperCode;\r\n return $http.get(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failSilently);\r\n }\r\n\r\n function getAvailableConsignees(shipperCode) {\r\n var serviceUrl = '/lookup/availableConsignees?shipperCode=' + shipperCode;\r\n return $http.get(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failSilently);\r\n }\r\n\r\n function getHazmatItems() {\r\n var serviceUrl = '/backoffice/gethazmat';\r\n return $http.get(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n function getStates() {\r\n var serviceUrl = '/backoffice/getStates';\r\n return $http.get(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n function getOrder(orderId) {\r\n var serviceUrl = '/temp-orders/' + orderId;\r\n return $http.get(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n function getOrders() {\r\n var serviceUrl = '/temp-orders';\r\n return $http.get(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n //saves json of current order\r\n function saveOrder(summaryModel, isFavorite, isSubmitted) {\r\n return userAuthenticationCheck()\r\n .then(function () {\r\n if (typeof isFavorite === 'undefined')\r\n isFavorite = false;\r\n\r\n if (typeof isSubmitted === 'undefined')\r\n isSubmitted = false;\r\n\r\n var serviceUrl = '/temp-orders';\r\n var payload = {\r\n id: summaryModel.orderId,\r\n jsonsnapshot: JSON.stringify(summaryModel),\r\n isFavorite: isFavorite,\r\n isSubmitted: isSubmitted\r\n }\r\n return $http.post(serviceBaseUrl + serviceUrl, payload)\r\n .then(success)\r\n .catch(failure);\r\n })\r\n }\r\n\r\n function deleteOrder(orderId) {\r\n var serviceUrl = '/temp-orders/' + orderId;\r\n return $http.delete(serviceBaseUrl + serviceUrl)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n function saveWorkInProgress(order, path) {\r\n var serviceUrl = '/validate' + path;\r\n \r\n //Do Review Conversions if Review\r\n if (order.loadAtLoadDetails)\r\n order.loadAtLoadDetails.pickupDateNormalized = _normalizeDate(order.loadAtLoadDetails.pickupDate)\r\n if (order.ConsigneeLoadDetails)\r\n order.ConsigneeLoadDetails.deliveryDateNormalized = _normalizeDate(order.ConsigneeLoadDetails.deliveryDate);\r\n if (order.ConsigneeLoadDetails && order.ConsigneeLoadDetails.previousDate)\r\n order.ConsigneeLoadDetails.previousDateNormalized = _normalizeDate(order.ConsigneeLoadDetails.previousDate)\r\n\r\n //Do Time Conversions Normal\r\n if (order.pickupDate)\r\n order.pickupDateNormalized = _normalizeDate(order.pickupDate);\r\n\r\n if (order.loadDetails && order.loadDetails.pickupDate)\r\n order.loadDetails.pickupDateNormalized = _normalizeDate(order.loadDetails.pickupDate);\r\n\r\n if (order.loadDetails && order.loadDetails.previousDate)\r\n order.loadDetails.previousDateNormalized = _normalizeDate(order.loadDetails.previousDate);\r\n\r\n var devDate = order.deliveryDate\r\n if (devDate)\r\n order.deliveryDateNormalized = _normalizeDate(devDate);\r\n\r\n var prevDate = order.previousDate\r\n if (prevDate)\r\n order.previousDateNormalized = _normalizeDate(prevDate);\r\n\r\n return $http.post(serviceBaseUrl + serviceUrl, order)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n function _normalizeDate(date) {\r\n return moment(date).format(\"MM/DD/YYYY\");\r\n }\r\n\r\n function capacityCheck(payload) {\r\n var serviceUrl = '/backoffice/checkcapacity';\r\n return $http.post(serviceBaseUrl + serviceUrl, payload)\r\n .then(successCapacity)\r\n .catch(failure);\r\n }\r\n\r\n function submitOrder(order) {\r\n //normalized Pickup\r\n if (order.loadAt && order.loadAt.pickupDate)\r\n order.loadAt.pickupDateNormalized = _normalizeDate(order.loadAt.pickupDate);\r\n\r\n //Normalize Stops\r\n for (var i = 0; i < order.intermediateStops.length; i++) {\r\n var stopLoadDetails = order.intermediateStops[i].saveStopLoadDetails.loadDetails\r\n stopLoadDetails.pickupDateNormalized = _normalizeDate(stopLoadDetails.pickupDate);\r\n }\r\n \r\n\r\n //normalize Consignee\r\n if (order.consignee && order.consignee.deliveryDate)\r\n order.consignee.deliveryDateNormalized = _normalizeDate(order.consginee.deliveryDate);\r\n\r\n\r\n var serviceUrl = '/submit/cool-order';\r\n return $http.post(serviceBaseUrl + serviceUrl, order)\r\n .then(success)\r\n .catch(failure);\r\n }\r\n\r\n function successCapacity(response){\r\n var result = response.data;\r\n $log.info(\"Capacity success! Data:\", result);\r\n return result;\r\n }\r\n\r\n function success(response) {\r\n var results = response.data.result || response.data.results;\r\n return results;\r\n }\r\n\r\n function failure(error) {\r\n var err = error.data;\r\n if (err.responseStatus && err.responseStatus.errors) {\r\n var message = '';\r\n if (err.responseStatus.errors.length > 0) {\r\n angular.forEach(err.responseStatus.errors,\r\n function(error) {\r\n message += error.message + '
';\r\n });\r\n toastr.error(message);\r\n } else {\r\n message = err.responseStatus.message;\r\n toastr.error(err.responseStatus.errorCode + ': ' + message);\r\n }\r\n \r\n } \r\n $log.error('Error: ', err);\r\n throw err;\r\n }\r\n\r\n function userAuthenticationCheck() {\r\n return $http.get(\"/apiv2/UserAuthenicated\")\r\n .then(function (response) {\r\n if (response.data.ok === false)\r\n $window.document.location.href = '/'\r\n })\r\n }\r\n\r\n function failSilently(error) {\r\n $log.error(error.data);\r\n throw error;\r\n }\r\n\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders.services')\r\n .service('controllerLogic', ['$state', '$location', '$filter', 'dataService', '$q', controllerLogic]);\r\n\r\n function controllerLogic($state, $location, $filter, dataService, $q) {\r\n var services = {\r\n populateSelected: populateSelected,\r\n setCity: setCity,\r\n populateCities: populateCities,\r\n toggleManualEntry: toggleManualEntry,\r\n resetDates: resetDates,\r\n dateWithoutTimeZoneOffset: dateWithoutTimeZoneOffset,\r\n capacity: capacity\r\n }\r\n return services;\r\n\r\n //Public Shared Logic\r\n\r\n function resetDates(summaryModel) {\r\n if (summaryModel.LoadAt.saveLoadAtLoadDetails.pickupDate)\r\n summaryModel.LoadAt.saveLoadAtLoadDetails.pickupDate = dateWithoutTimeZoneOffset(summaryModel.LoadAt.saveLoadAtLoadDetails.pickupDate);\r\n if (summaryModel.Consignee.saveConsigneeLoadDetails.deliveryDate)\r\n summaryModel.Consignee.saveConsigneeLoadDetails.deliveryDate = dateWithoutTimeZoneOffset(summaryModel.Consignee.saveConsigneeLoadDetails.deliveryDate);\r\n if (summaryModel.intermediateStops.length > 0) {\r\n for (var i = 0; i < summaryModel.intermediateStops.length; i++) {\r\n var stop = summaryModel.intermediateStops[i];\r\n if (stop.saveStopLoadDetails.loadDetails.pickupDate)\r\n stop.saveStopLoadDetails.loadDetails.pickupDate = dateWithoutTimeZoneOffset(stop.saveStopLoadDetails.loadDetails.pickupDate)\r\n }\r\n }\r\n return summaryModel;\r\n }\r\n\r\n function capacity(summaryModel) {\r\n \r\n var loadAtCode\r\n\r\n var e, l, d, t, lac, sc;\r\n var loadAt = summaryModel.LoadAt;\r\n\r\n e = loadAt.saveLoadAtLoadDetails.equipmentType;\r\n l = loadAt.saveLoadAtLocationinfo.customerInfo.cityArea;\r\n d = $filter('date')(loadAt.saveLoadAtLoadDetails.pickupDate, 'yyyyMMdd').toString() || null;\r\n t = loadAt.saveLoadAtLoadDetails.pickupTimeRange.from + '00';\r\n sc = summaryModel.Shipper.saveShipperInfo.customerInfo.customerCode || \"\";\r\n lac = loadAt.saveLoadAtLocationinfo.customerInfo.customerCode || \"\";\r\n\r\n return {\r\n equipmentType: e,\r\n location: l,\r\n date: d,\r\n time: t,\r\n shipperCode: sc,\r\n loadAtCode: lac\r\n };\r\n }\r\n\r\n function dateWithoutTimeZoneOffset(date) {\r\n var date = new Date(date)\r\n var userTimezoneOffset = new Date().getTimezoneOffset() * 60000;\r\n return new Date(date.getTime() + userTimezoneOffset);\r\n }\r\n\r\n function populateSelected(selectedCustomer, customerInfo) {\r\n update(selectedCustomer, customerInfo);\r\n }\r\n\r\n function setCity(customerInfo, newCity) {\r\n if (newCity) {\r\n customerInfo.city = newCity.name;\r\n customerInfo.ctcCode = newCity.ctcCode;\r\n customerInfo.cityArea = newCity.cityArea;\r\n }\r\n }\r\n\r\n function populateCities(stateSelected, customerInfo) {\r\n if (stateSelected) {\r\n customerInfo.stateCode = stateSelected.abbreviation;\r\n customerInfo.country = stateSelected.country;\r\n customerInfo.stateSelected = stateSelected;\r\n }\r\n var availableCities = [];\r\n if (customerInfo.postalCode && customerInfo.stateCode)\r\n return dataService.getCityInfo(customerInfo.postalCode, customerInfo.stateCode, '')\r\n .then(function (cities) {\r\n for (var i = 0; i < cities.length; i++) {\r\n availableCities.push(cities[i]);\r\n }\r\n return availableCities;\r\n });\r\n else\r\n return $q.when(availableCities);\r\n }\r\n\r\n function toggleManualEntry(form, customerCodeSwitch, manualEntrySwitch) {\r\n if (customerCodeSwitch) {\r\n form.customerInfo.customerCode = customerCodeSwitch;\r\n customerCodeSwitch = \"\";\r\n } else {\r\n customerCodeSwitch = form.customerInfo.customerCode;\r\n form.customerInfo.customerCode = \"\";\r\n }\r\n manualEntrySwitch = !manualEntrySwitch;\r\n form.customerContactInfo.manualEntry = manualEntrySwitch;\r\n return manualEntrySwitch;\r\n }\r\n\r\n //Helper Methods\r\n function update(srcObj, destObj) {\r\n for (var key in destObj) {\r\n if (destObj.hasOwnProperty(key) && srcObj.hasOwnProperty(key)) {\r\n destObj[key] = srcObj[key];\r\n }\r\n }\r\n }\r\n }\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders.services')\r\n .service('summaryModel', ['$state', '$location', '$filter',summaryModel]);\r\n\r\n function summaryModel($state, $location, $filter) {\r\n var service = {};\r\n var refs = new shipmentRef();\r\n var defaultService = {\r\n orderId: genOrdNum(),\r\n orderName: \"\",\r\n pageRefreshed: true,\r\n currentStep: 1,\r\n currentProcessStep: 1,\r\n convertTime: convertTime,\r\n validated: false,\r\n submitted: false,\r\n intermediateStops: [],\r\n currentStop: null,\r\n SetStep: SetStep,\r\n shipmentRef: refs,\r\n ExtraModels: ExtraModels,\r\n Shipper: Shipper(),\r\n BillTo: BillTo(),\r\n Consignee: Consignee(refs),\r\n LoadAt: LoadAt(refs),\r\n Intermediate: Intermediate,\r\n proceed: proceed,\r\n containsItem: containsItem,\r\n specialOptions: specialOptions(),\r\n resetData: function () {\r\n var refs = new shipmentRef();\r\n this.orderName = \"\";\r\n this.submitted = false;\r\n this.shipmentRef = refs;\r\n this.intermediateStops = [];\r\n this.orderId = genOrdNum();\r\n this.specialOptions = specialOptions();\r\n this.currentStep = 1,\r\n this.currentProcessStep = 1,\r\n this.validated = false,\r\n this.Shipper = Shipper();\r\n this.BillTo = BillTo();\r\n this.Consignee = Consignee(refs);\r\n this.LoadAt = LoadAt(refs);\r\n return service = angular.extend(service, defaultService);\r\n }\r\n };\r\n return defaultService;\r\n\r\n function SetStep(step, process) {\r\n this.validated = true;\r\n if (step >= this.currentStep) {\r\n this.currentStep = step + 1;\r\n if (process)\r\n this.currentProcessStep = process;\r\n }\r\n }\r\n\r\n function proceed(href) {\r\n var finalStep = 5;\r\n if (href)\r\n $location.path(href);\r\n else\r\n this.currentProcessStep < finalStep ? $state.go($state.params.transitionState) : $state.go('layout.review.order');\r\n }\r\n\r\n function ExtraModels() {\r\n return {\r\n specialHandlingItem: specialHandlingItem,\r\n customerInfo: customerInfo\r\n };\r\n }\r\n\r\n function Shipper() {\r\n return {\r\n saveShipperInfo: saveShipperInfo()\r\n };\r\n }\r\n\r\n function saveShipperInfo() {\r\n var obj = {\r\n customerInfo: customerInfo(),\r\n customerContactInfo: customerContactInfo()\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n\r\n function BillTo() {\r\n return {\r\n saveBillTo: saveBillTo()\r\n };\r\n\r\n function saveBillTo() {\r\n var obj = {\r\n customerInfo: customerInfo(),\r\n customerContactInfo: customerContactInfo()\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n }\r\n\r\n function Intermediate() {\r\n return {\r\n id: genOrdNum(),\r\n saveStopLocationInfo: saveStopLocationInfo(),\r\n saveStopShipmentReference: saveStopShipmentReference(),\r\n saveStopLoadDetails: saveStopLoadDetails(),\r\n saveStopSpecialHandling: saveStopSpecialHandling()\r\n };\r\n }\r\n\r\n function saveStopLocationInfo() {\r\n var obj = {\r\n customerInfo: customerInfo(),\r\n customerContactInfo: customerContactInfo()\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n\r\n function saveStopShipmentReference() {\r\n var obj = {\r\n stopNumberList: []\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n\r\n function saveStopLoadDetails() {\r\n var obj = {\r\n loadDetails: loadDetails()\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n\r\n function loadDetails() {\r\n return {\r\n stopType: '',\r\n totalWeight: '',\r\n shipmentPieces: '',\r\n specialInstructions: '',\r\n pickupDate: '',\r\n pickupTimeRange: range()\r\n };\r\n }\r\n }\r\n\r\n function saveStopSpecialHandling() {\r\n var obj = {\r\n specialHandling: specialHandling()\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n\r\n function LoadAt(refs) {\r\n return {\r\n saveLoadAtLoadDetails: saveLoadAtLoadDetails(),\r\n saveLoadAtLocationinfo: saveLoadAtLocationinfo(),\r\n saveLoadAtShipmentRef: refs,\r\n saveLoadAtSpecialHandling: saveLoadAtSpecialHandling()\r\n };\r\n }\r\n\r\n function saveLoadAtSpecialHandling() {\r\n var obj = {\r\n specialHandling: specialHandling()\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n\r\n function saveLoadAtLoadDetails() {\r\n var obj = {\r\n loadType: '',\r\n equipmentType: '',\r\n freightLoading: '',\r\n specialInstructions: '',\r\n trailerNumber: '',\r\n availableTrailers: '',\r\n totalWeight: '',\r\n shipmentPieces: '',\r\n pickupDate: '',\r\n pickupTimeRange: range(),\r\n tempRange: range()\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n\r\n function saveLoadAtLocationinfo() {\r\n var obj = {\r\n customerInfo: customerInfo(),\r\n customerContactInfo: customerContactInfo()\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n\r\n function Consignee(refs) {\r\n return {\r\n saveConsigneeLoadDetails: saveConsigneeLoadDetails(),\r\n saveConsigneeLocationInfo: saveConsigneeLocationInfo(),\r\n saveConsigneeShipmentRef: refs\r\n };\r\n }\r\n\r\n function saveConsigneeLoadDetails() {\r\n var obj = {\r\n deliveryType: '',\r\n availableTrailers: '',\r\n deliveryDate: '',\r\n deliveryTimeRange: range(),\r\n specialInstructions: ''\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n function saveConsigneeLocationInfo() {\r\n var obj = {\r\n customerInfo: customerInfo(),\r\n customerContactInfo: customerContactInfo()\r\n };\r\n angular.merge(obj, baseOrder());\r\n return obj;\r\n }\r\n\r\n function baseOrder() {\r\n return {\r\n isPartialSave: false\r\n };\r\n }\r\n\r\n function specialOptions() {\r\n var current = {};\r\n var defaultValues = {\r\n options: [\r\n { Title: 'JIT', Value: false, Selected: false },\r\n { Title: 'High Value', Value: false, Amount: null, Selected: false }\r\n ],\r\n resetData: function () {\r\n return current = angular.extend(current, defaultValues);\r\n }\r\n };\r\n defaultValues.resetData();\r\n return current;\r\n }\r\n\r\n function containsItem(nameKey, specialHandlingItems) {\r\n var items = specialHandlingItems;\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].itemType === nameKey) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function specialHandlingItem() {\r\n var current = { itemType: '' };\r\n var defaultValues = {\r\n hazmatDescription: '',\r\n hazmatWeight: null,\r\n highValueApproxValue: null,\r\n jitYesOrNo: '',\r\n resetData: function () {\r\n return current = angular.extend(current, defaultValues);\r\n }\r\n };\r\n defaultValues.resetData();\r\n return current;\r\n }\r\n\r\n function customerInfo() {\r\n var current = {};\r\n var defaultValues = {\r\n customerCode: '',\r\n customerName: '',\r\n addressLine1: '',\r\n addressLine2: '',\r\n city: '',\r\n country: '',\r\n ctcCode: '',\r\n cityArea: '',\r\n stateCode: '',\r\n postalCode: '',\r\n areaCode: '',\r\n phone: '',\r\n formattedPhone: '',\r\n selectedState: '',\r\n resetData: function () {\r\n return current = angular.extend(current, defaultValues);\r\n }\r\n };\r\n defaultValues.resetData();\r\n return current;\r\n }\r\n\r\n function customerContactInfo() {\r\n return {\r\n contactName: '',\r\n contactEmail: '',\r\n contactPhone: '',\r\n manualEntry: false\r\n };\r\n }\r\n\r\n function shipmentRef() {\r\n return {\r\n referenceNumberList: [],\r\n billOfLadingList: [],\r\n purchaseOrderList: []\r\n };\r\n }\r\n\r\n function specialHandling() {\r\n var current = {};\r\n var defaultValues = {\r\n doesShipmentRequireSpecialHandling: 'no',\r\n items: [],\r\n resetData: function () {\r\n current = angular.extend(current, defaultValues);\r\n return current;\r\n }\r\n };\r\n defaultValues.resetData();\r\n return current;\r\n }\r\n\r\n function range() {\r\n return {\r\n dFromHr: null,\r\n dFromMin: null,\r\n dToHr: null,\r\n dToMin: null,\r\n dFromAmPm: 'AM',\r\n dToAmPm: 'AM',\r\n from: '',\r\n to: ''\r\n };\r\n }\r\n\r\n function convertTime(range) {\r\n //From Time\r\n var fHours = range.dFromHr,\r\n fMinutes = range.dFromMin,\r\n fAmPm = range.dFromAmPm;\r\n\r\n var tHours = range.dToHr,\r\n tMinutes = range.dToMin,\r\n tAmPm = range.dToAmPm;\r\n\r\n if (fAmPm == 'PM') {\r\n if(fHours != 12)\r\n fHours = Number(fHours) + 12;\r\n }\r\n range.from = fHours + fMinutes;\r\n\r\n if (tAmPm == 'PM') {\r\n if (tHours != 12)\r\n tHours = Number(tHours) + 12;\r\n }\r\n range.to = tHours + tMinutes;\r\n }\r\n\r\n function genOrdNum() {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n return s4() + s4() + s4() + s4();\r\n }\r\n }\r\n})();\n(function() {\r\n\t'use strict';\r\n\r\n\tangular.module('app.orders', [\r\n\t\t'angular-svg-round-progressbar',\r\n\t\t'ui.router',\r\n\t\t'angucomplete-alt',\r\n\t\t'app.orders.services',\r\n\t\t'ngResource',\r\n\t\t'ngTagsInput',\r\n\t\t'ngCookies'\r\n\t]);\r\n\r\n\tvar configVars = config();\r\n\r\n\tangular.module('app.orders').directive('datepickerPopup', function() {\r\n\t\treturn {\r\n\t\t\trestrict: 'EAC',\r\n\t\t\trequire: 'ngModel',\r\n\t\t\tlink: function(scope, element, attr, controller) {\r\n\t\t\t\t//remove the default formatter from the input directive to prevent conflict\r\n\t\t\t\tcontroller.$formatters.shift();\r\n\t\t\t}\r\n\t\t};\r\n\t});\r\n\r\n\tangular.module('app.orders').constant('config', configVars);\r\n\r\n\tfunction config() {\r\n\t\tvar environment;\r\n\t\t//set to true to point to Knight API local environment\r\n\t\tvar localDebug = false;\r\n\r\n\t\t//will set environment based on local debug, or website URL\r\n\t\tif (localDebug == true) {\r\n\t\t\tenvironment = 'local';\r\n\t\t} else {\r\n\t\t\tif (\r\n\t\t\t\tlocation.host === 'www.knightfreighttracker.com' ||\r\n\t\t\t\tlocation.host === 'knightfreighttracker.com'\r\n\t\t\t)\r\n\t\t\t\tenvironment = 'production';\r\n\t\t\telse environment = 'staging';\r\n\t\t}\r\n\r\n\t\tvar productionUrl = 'http://api.knightfreighttracker.com';\r\n\t\tvar stagingUrl = 'http://10.86.0.245:8585';\r\n\t\tvar localUrl = 'http://local-knight-freighttracker.ilgqa.com';\r\n\r\n\t\tif (environment === 'production')\r\n\t\t\treturn {\r\n\t\t\t\tCOOLApiUrl: productionUrl\r\n\t\t\t};\r\n\t\telse if (environment === 'staging')\r\n\t\t\treturn {\r\n\t\t\t\tCOOLApiUrl: stagingUrl\r\n\t\t\t};\r\n\t\treturn {\r\n\t\t\tCOOLApiUrl: localUrl\r\n\t\t};\r\n\t}\r\n\r\n\tangular.module('app.orders').config([\r\n\t\t'$provide',\r\n\t\tfunction($provide) {\r\n\t\t\t$provide.decorator('$rootScope', [\r\n\t\t\t\t'$delegate',\r\n\t\t\t\tfunction($delegate) {\r\n\t\t\t\t\t$delegate.constructor.prototype.$onRootScope = function(\r\n\t\t\t\t\t\tname,\r\n\t\t\t\t\t\tlistener\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tvar unsubscribe = $delegate.$on(name, listener);\r\n\t\t\t\t\t\tthis.$on('$destroy', unsubscribe);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\treturn $delegate;\r\n\t\t\t\t}\r\n\t\t\t]);\r\n\t\t}\r\n\t]);\r\n\r\n\tangular.module('app.orders').config([\r\n\t\t'$httpProvider',\r\n\t\tfunction($httpProvider) {\r\n\t\t\t$httpProvider.defaults.withCredentials = true;\r\n\t\t\treturn $httpProvider;\r\n\t\t}\r\n\t]);\r\n\r\n\tangular.module('app.orders').config(['$stateProvider', stateProvider]);\r\n\r\n\tfunction stateProvider($stateProvider) {\r\n\t\t$stateProvider\r\n\t\t\t.state('layout', {\r\n\t\t\t\turl: '',\r\n\t\t\t\tparams: { loaded: true },\r\n\t\t\t\tviews: {\r\n\t\t\t\t\tviewProgressIndicator: {\r\n\t\t\t\t\t\ttemplateUrl:\r\n\t\t\t\t\t\t\t'/Templates/Orders/Shared/ProgressIndicator',\r\n\t\t\t\t\t\tcontroller: 'ProgressIndicatorController as vm'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tmobileProgress: {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/MobileProgress',\r\n\t\t\t\t\t\tcontroller: 'ProgressIndicatorController as vm'\r\n\t\t\t\t\t},\r\n\t\t\t\t\tviewTab: {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/Tab',\r\n\t\t\t\t\t\tcontroller: 'ProgressIndicatorController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\tcurrentTabs: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\tfunction($q, $state) {\r\n\t\t\t\t\t\t\tvar tabs = $state.get();\r\n\t\t\t\t\t\t\treturn $q.when(tabs);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t],\r\n\t\t\t\t\tsummary: [\r\n\t\t\t\t\t\t'summaryModel',\r\n\t\t\t\t\t\tfunction(summaryModel) {\r\n\t\t\t\t\t\t\treturn summaryModel;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t],\r\n\t\t\t\t\tstates: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\t'dataService',\r\n\t\t\t\t\t\tfunction($q, $state, dataService) {\r\n\t\t\t\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\t\t\t\tdataService.getStates().then(function(data) {\r\n\t\t\t\t\t\t\t\tdefer.resolve(data);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tangular\r\n\t\t\t\t\t\t\t\t.element('#current-user')\r\n\t\t\t\t\t\t\t\t.html()\r\n\t\t\t\t\t\t\t\t.split('>')[4]\r\n\t\t\t\t\t\t\t\t.split('<')[0]\r\n\t\t\t\t\t\t\t\t.trim();\r\n\t\t\t\t\t\t\treturn defer.promise;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t],\r\n\t\t\t\t\tauthorize: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\t'dataService',\r\n\t\t\t\t\t\t'$window',\r\n\t\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t\tfunction($q, $state, dataService, $window, $timeout) {\r\n\t\t\t\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\tdataService\r\n\t\t\t\t\t\t\t\t\t.authorize()\r\n\t\t\t\t\t\t\t\t\t.then(function(data) {\r\n\t\t\t\t\t\t\t\t\t\tdefer.resolve(data);\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.catch(function(err) {\r\n\t\t\t\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\t\t\t\tdataService\r\n\t\t\t\t\t\t\t\t\t\t\t\t.authorize()\r\n\t\t\t\t\t\t\t\t\t\t\t\t.then(function(data) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefer.resolve(data);\r\n\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t.catch(function(err) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t$window.location.href =\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$window.location.origin;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefer.reject(err);\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t}, 1500);\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t\t\treturn defer.promise;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t},\r\n\t\t\t\tabstract: true\r\n\t\t\t})\r\n\t\t\t.state('layout.determination', {\r\n\t\t\t\turl: '/processOrder/:orderId',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 0,\r\n\t\t\t\t\tprocess: 'Processing',\r\n\t\t\t\t\ttitle: 'Processing',\r\n\t\t\t\t\ttransitionState: 'layout.shipper-billto.createOrder',\r\n\t\t\t\t\tlocationTitle: 'Processing'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewProgressIndicator@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/Processing',\r\n\t\t\t\t\t\tcontroller: 'ProgressIndicatorController as vm'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'mobileProgress@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/Processing',\r\n\t\t\t\t\t\tcontroller: 'ProgressIndicatorController as vm'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/Processing',\r\n\t\t\t\t\t\tcontroller: 'DeterminationController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.shipper-billto', {\r\n\t\t\t\turl: '/shipper-billto',\r\n\t\t\t\tparams: { process: 'Shipper / Bill To', processStep: 1 },\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewSummary@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/ShipperBillto/Summary',\r\n\t\t\t\t\t\tcontroller: 'SummaryController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\tsummary: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$stateParams',\r\n\t\t\t\t\t\t'summaryModel',\r\n\t\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\tfunction(\r\n\t\t\t\t\t\t\t$q,\r\n\t\t\t\t\t\t\t$stateParams,\r\n\t\t\t\t\t\t\tsummaryModel,\r\n\t\t\t\t\t\t\t$timeout,\r\n\t\t\t\t\t\t\t$state\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tvar deferred = $q.defer();\r\n\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\tif (summaryModel.pageRefreshed) {\r\n\t\t\t\t\t\t\t\t\t$state.go('myorders', {}, { reload: true });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t\t\t$stateParams.summary = summaryModel;\r\n\t\t\t\t\t\t\treturn deferred.resolve.$promise;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t},\r\n\t\t\t\tabstract: true\r\n\t\t\t})\r\n\t\t\t.state('layout.shipper-billto.createOrder', {\r\n\t\t\t\turl: '/create-order',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 1,\r\n\t\t\t\t\tprocess: 'Create Order',\r\n\t\t\t\t\ttitle: 'Shipper Info',\r\n\t\t\t\t\ttransitionState: 'layout.shipper-billto.billtoinfo',\r\n\t\t\t\t\tlocationTitle: 'Shipper'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/LocationInfo',\r\n\t\t\t\t\t\tcontroller: 'ShipperInfoController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.shipper-billto.billtoinfo', {\r\n\t\t\t\turl: '/billto-info',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 2,\r\n\t\t\t\t\tprocess: 'Bill To',\r\n\t\t\t\t\ttitle: 'Bill To Info',\r\n\t\t\t\t\ttransitionState: 'layout.loadat.locationinfo',\r\n\t\t\t\t\tlocationTitle: 'Bill To'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/LocationInfo',\r\n\t\t\t\t\t\tcontroller: 'BillToInfoController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.loadat', {\r\n\t\t\t\turl: '/loadat',\r\n\t\t\t\tparams: { process: 'Load At Information', processStep: 2 },\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewSummary@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/LoadAt/Summary',\r\n\t\t\t\t\t\tcontroller: 'SummaryController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\tsummary: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$stateParams',\r\n\t\t\t\t\t\t'summaryModel',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t\tfunction(\r\n\t\t\t\t\t\t\t$q,\r\n\t\t\t\t\t\t\t$stateParams,\r\n\t\t\t\t\t\t\tsummaryModel,\r\n\t\t\t\t\t\t\t$state,\r\n\t\t\t\t\t\t\t$timeout\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tvar deferred = $q.defer();\r\n\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\tif (summaryModel.pageRefreshed) {\r\n\t\t\t\t\t\t\t\t\t$state.go('myorders', {}, { reload: true });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t\t\t$stateParams.summary = summaryModel.LoadAt;\r\n\t\t\t\t\t\t\treturn deferred.resolve.$promise;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t},\r\n\t\t\t\tabstract: true\r\n\t\t\t})\r\n\t\t\t.state('layout.loadat.locationinfo', {\r\n\t\t\t\turl: '/location',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 3,\r\n\t\t\t\t\ttitle: 'Location Info',\r\n\t\t\t\t\ttransitionState: 'layout.loadat.shipmentref',\r\n\t\t\t\t\tlocationTitle: 'Load At'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/LocationInfo',\r\n\t\t\t\t\t\tcontroller: 'LoadAtLocationController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.loadat.shipmentref', {\r\n\t\t\t\turl: '/shipmentref',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 4,\r\n\t\t\t\t\ttitle: 'Shipment Reference',\r\n\t\t\t\t\ttransitionState: 'layout.loadat.loaddetails'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/ShipmentRef',\r\n\t\t\t\t\t\tcontroller: 'ShipmentRefController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.loadat.loaddetails', {\r\n\t\t\t\turl: '/load-details',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 5,\r\n\t\t\t\t\ttitle: 'Load Details',\r\n\t\t\t\t\ttransitionState: 'layout.loadat.specialhandling'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/LoadAt/LoadDetails',\r\n\t\t\t\t\t\tcontroller: 'LoadAtLoadDetailsController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.loadat.specialhandling', {\r\n\t\t\t\turl: '/special-handling',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 6,\r\n\t\t\t\t\ttitle: 'Special Handling',\r\n\t\t\t\t\ttransitionState: 'layout.intermediate.additionalstops'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/SpecialHandling',\r\n\t\t\t\t\t\tcontroller: 'SpecialHandlingController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.intermediate', {\r\n\t\t\t\turl: '/intermediate',\r\n\t\t\t\tparams: { process: 'Intermediate Stops', processStep: 3 },\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewSummary@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Stops/Summary',\r\n\t\t\t\t\t\tcontroller: 'SummaryController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\tsummary: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$stateParams',\r\n\t\t\t\t\t\t'summaryModel',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t\tfunction(\r\n\t\t\t\t\t\t\t$q,\r\n\t\t\t\t\t\t\t$stateParams,\r\n\t\t\t\t\t\t\tsummaryModel,\r\n\t\t\t\t\t\t\t$state,\r\n\t\t\t\t\t\t\t$timeout\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tvar deferred = $q.defer();\r\n\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\tif (summaryModel.pageRefreshed) {\r\n\t\t\t\t\t\t\t\t\t$state.go('myorders', {}, { reload: true });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t\t\t$stateParams.summary =\r\n\t\t\t\t\t\t\t\tsummaryModel.intermediateStops;\r\n\t\t\t\t\t\t\treturn deferred.resolve.$promise;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t},\r\n\t\t\t\tabstract: true\r\n\t\t\t})\r\n\t\t\t.state('layout.intermediate.additionalstops', {\r\n\t\t\t\turl: '/additional-stops',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 7,\r\n\t\t\t\t\ttitle: 'Any Additional Stops?',\r\n\t\t\t\t\ttransitionState: 'layout.intermediate.locationinfo',\r\n\t\t\t\t\taddStop: false,\r\n\t\t\t\t\tsuppressSummary: true\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Stops/AdditionalStops',\r\n\t\t\t\t\t\tcontroller: 'AdditionalStopsController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.intermediate.locationinfo', {\r\n\t\t\t\turl: '/location-info',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 8,\r\n\t\t\t\t\ttitle: 'Location Info',\r\n\t\t\t\t\ttransitionState: 'layout.intermediate.shipmentref',\r\n\t\t\t\t\tlocationTitle: 'Intermediate Stop'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/LocationInfo',\r\n\t\t\t\t\t\tcontroller: 'StopsLocationInfoController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.intermediate.shipmentref', {\r\n\t\t\t\turl: '/shipment-ref',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 9,\r\n\t\t\t\t\ttitle: 'Shipment Reference',\r\n\t\t\t\t\ttransitionState: 'layout.intermediate.loaddetails'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/ShipmentRef',\r\n\t\t\t\t\t\tcontroller: 'ShipmentRefController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.intermediate.loaddetails', {\r\n\t\t\t\turl: '/load-details',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 10,\r\n\t\t\t\t\ttitle: 'Load Details',\r\n\t\t\t\t\ttransitionState: 'layout.intermediate.specialhandling'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Stops/LoadDetails',\r\n\t\t\t\t\t\tcontroller: 'StopsLoadDetailsController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.intermediate.specialhandling', {\r\n\t\t\t\turl: '/special-handling',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 11,\r\n\t\t\t\t\ttitle: 'Special Handling',\r\n\t\t\t\t\ttransitionState: 'layout.intermediate.additionalstops'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/SpecialHandling',\r\n\t\t\t\t\t\tcontroller: 'SpecialHandlingController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.consignee', {\r\n\t\t\t\turl: '/consignee',\r\n\t\t\t\tparams: { process: 'Consignee', processStep: 4 },\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewSummary@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Consignee/Summary',\r\n\t\t\t\t\t\tcontroller: 'SummaryController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\tsummary: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$stateParams',\r\n\t\t\t\t\t\t'summaryModel',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t\tfunction(\r\n\t\t\t\t\t\t\t$q,\r\n\t\t\t\t\t\t\t$stateParams,\r\n\t\t\t\t\t\t\tsummaryModel,\r\n\t\t\t\t\t\t\t$state,\r\n\t\t\t\t\t\t\t$timeout\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tvar deferred = $q.defer();\r\n\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\tif (summaryModel.pageRefreshed) {\r\n\t\t\t\t\t\t\t\t\t$state.go('myorders', {}, { reload: true });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t\t\t$stateParams.summary = summaryModel.Consignee;\r\n\t\t\t\t\t\t\treturn deferred.resolve.$promise;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t},\r\n\t\t\t\tabstract: true\r\n\t\t\t})\r\n\t\t\t.state('layout.consignee.locationinfo', {\r\n\t\t\t\turl: '/location-info',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 12,\r\n\t\t\t\t\ttitle: 'Location Information',\r\n\t\t\t\t\ttransitionState: 'layout.consignee.shipmentref',\r\n\t\t\t\t\tlocationTitle: 'Consignee'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/LocationInfo',\r\n\t\t\t\t\t\tcontroller: 'ConsigneeLocationController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.consignee.shipmentref', {\r\n\t\t\t\turl: '/shipment-reference',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 13,\r\n\t\t\t\t\ttitle: 'Shipment Reference',\r\n\t\t\t\t\ttransitionState: 'layout.consignee.loaddetails'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Shared/ShipmentRef',\r\n\t\t\t\t\t\tcontroller: 'ShipmentRefController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.consignee.loaddetails', {\r\n\t\t\t\turl: '/load-details',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 14,\r\n\t\t\t\t\ttitle: 'Load Details',\r\n\t\t\t\t\ttransitionState: 'layout.review.order'\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Consignee/LoadDetails',\r\n\t\t\t\t\t\tcontroller: 'ConsigneeLoadDetailsController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.edit', {\r\n\t\t\t\turl: '/edit',\r\n\t\t\t\tparams: { process: 'Required Changes', processStep: 4.5 },\r\n\t\t\t\tabstract: true\r\n\t\t\t})\r\n\t\t\t.state('layout.edit.order', {\r\n\t\t\t\turl: '/order',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 14.5,\r\n\t\t\t\t\ttitle: 'Required Changes',\r\n\t\t\t\t\ttransitionState: 'layout.review.order',\r\n\t\t\t\t\tsuppressSummary: true\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Review/EditOrder',\r\n\t\t\t\t\t\tcontroller: 'EditOrderController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\tsummary: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\t'summaryModel',\r\n\t\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t\tfunction($q, $state, summaryModel, $timeout) {\r\n\t\t\t\t\t\t\tvar deferred = $q.defer();\r\n\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\tif (summaryModel.pageRefreshed) {\r\n\t\t\t\t\t\t\t\t\t$state.go('myorders', {}, { reload: true });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t\t\treturn deferred.resolve.$promise;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('layout.review', {\r\n\t\t\t\turl: '/review',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tprocess: 'Required Changes / Review & Submit',\r\n\t\t\t\t\tprocessStep: 5\r\n\t\t\t\t},\r\n\t\t\t\tabstract: true\r\n\t\t\t})\r\n\t\t\t.state('layout.review.order', {\r\n\t\t\t\turl: '/order',\r\n\t\t\t\tparams: {\r\n\t\t\t\t\tstep: 15,\r\n\t\t\t\t\ttitle: 'Review & Submit',\r\n\t\t\t\t\ttransitionState: 'myorders',\r\n\t\t\t\t\tsuppressSummary: true\r\n\t\t\t\t},\r\n\t\t\t\tviews: {\r\n\t\t\t\t\t'viewForm@': {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/Review/ReviewOrder',\r\n\t\t\t\t\t\tcontroller: 'ReviewController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\tsummary: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\t'summaryModel',\r\n\t\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t\tfunction($q, $state, summaryModel, $timeout) {\r\n\t\t\t\t\t\t\tvar deferred = $q.defer();\r\n\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\tif (summaryModel.pageRefreshed) {\r\n\t\t\t\t\t\t\t\t\t$state.go('myorders', {}, { reload: true });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t\t\treturn deferred.resolve.$promise;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.state('myorders', {\r\n\t\t\t\turl: '/myorders',\r\n\t\t\t\tparams: { loaded: true },\r\n\t\t\t\tviews: {\r\n\t\t\t\t\tviewMain: {\r\n\t\t\t\t\t\ttemplateUrl: '/Templates/Orders/MyOrders/MyOrders',\r\n\t\t\t\t\t\tcontroller: 'MyOrdersController as vm'\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tresolve: {\r\n\t\t\t\t\tauthorize: [\r\n\t\t\t\t\t\t'$q',\r\n\t\t\t\t\t\t'$state',\r\n\t\t\t\t\t\t'dataService',\r\n\t\t\t\t\t\t'$window',\r\n\t\t\t\t\t\t'$timeout',\r\n\t\t\t\t\t\tfunction($q, $state, dataService, $window, $timeout) {\r\n\t\t\t\t\t\t\tvar defer = $q.defer();\r\n\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\tdataService\r\n\t\t\t\t\t\t\t\t\t.authorize()\r\n\t\t\t\t\t\t\t\t\t.then(function(data) {\r\n\t\t\t\t\t\t\t\t\t\tdefer.resolve(data);\r\n\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t.catch(function(err) {\r\n\t\t\t\t\t\t\t\t\t\t$timeout(function() {\r\n\t\t\t\t\t\t\t\t\t\t\tdataService\r\n\t\t\t\t\t\t\t\t\t\t\t\t.authorize()\r\n\t\t\t\t\t\t\t\t\t\t\t\t.then(function(data) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefer.resolve(data);\r\n\t\t\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t\t\t\t.catch(function(err) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t$window.location.href =\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$window.location.origin;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefer.reject(err);\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t}, 1500);\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t\t\treturn defer.promise;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .directive('mobileTime', mobileTimeDirective);\r\n\r\n function mobileTimeDirective($filter) {\r\n\r\n function link(scope, element, attributes) {\r\n scope.$watch('time', function (value, oldValue) {\r\n timeAdjustment();\r\n });\r\n\r\n function timeAdjustment() {\r\n if (scope.time) {\r\n var hours = scope.time.getHours();\r\n var minutes = scope.time.getMinutes().toString();\r\n var ampm = hours > 12 ? \"PM\" : \"AM\"\r\n var rawHours = hours.toString();\r\n\r\n if (hours > 12) {\r\n hours = (hours - 12).toString();\r\n } else {\r\n hours = hours.toString();\r\n }\r\n\r\n if (rawHours.length === 1)\r\n rawHours = \"0\" + rawHours\r\n\r\n if (hours.length === 1)\r\n hours = \"0\" + hours;\r\n \r\n if (minutes.length === 1)\r\n minutes = \"0\" + minutes;\r\n console.log('hours are: ', hours, rawHours)\r\n if(scope.from){\r\n scope.model.dFromHr = hours;\r\n scope.model.dFromMin = minutes;\r\n scope.model.dFromAmPm = ampm;\r\n scope.model.from = rawHours + minutes;\r\n } else {\r\n scope.model.dToHr = hours;\r\n scope.model.dToMin = minutes;\r\n scope.model.dToAmPm = ampm;\r\n scope.model.to = rawHours + minutes;\r\n }\r\n if (scope.model.from === \"0000\") {\r\n scope.model.dFromHr = \"00\";\r\n scope.model.dFromMin = \"01\";\r\n scope.model.dFromAmPm = ampm;\r\n scope.model.from = \"0001\";\r\n }\r\n }\r\n }\r\n }\r\n\r\n return {\r\n link: link,\r\n restrict: 'E',\r\n scope: {\r\n time: '=time',\r\n model: '=model',\r\n from: '=from'\r\n },\r\n template: \r\n '
\\\r\n \\\r\n\t\t\t\t\t\t\\\r\n\t\t\t\t\t
'\r\n };\r\n }\r\n})();\r\n\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .directive('phoneNumber', phoneNumber)\r\n .filter('phone', phoneFilter);\r\n\r\n function phoneNumber($filter) {\r\n /*\r\n Intended use:\r\n \r\n Where:\r\n someModel.phonenumber: {String} value which to bind only the numeric characters [0-9] entered\r\n ie, if user enters 617-2223333, value of 6172223333 will be bound to model\r\n prompt: {String} text to keep in placeholder when no numeric input entered\r\n */\r\n\r\n function link(scope, element, attributes) {\r\n\r\n // scope.inputValue is the value of input element used in template\r\n scope.inputValue = scope.phonenumberModel;\r\n\r\n scope.$watch('inputValue', function(value, oldValue) {\r\n value = String(value);\r\n var number = value.replace(/[^0-9]+/g, '');\r\n scope.phonenumberModel = number;\r\n scope.inputValue = $filter('phone')(number);\r\n if (scope.inputValue.length > 0)\r\n ifAndroidSetCaret(scope.inputValue.length, element)\r\n });\r\n\r\n scope.$watch('phonenumberModel', function (value, oldValue) {\r\n value = String(value);\r\n var number = value.replace(/[^0-9]+/g, '');\r\n scope.phonenumberModel = number;\r\n scope.inputValue = $filter('phone')(number);\r\n if(scope.inputValue.length > 0)\r\n ifAndroidSetCaret(scope.inputValue.length, element)\r\n });\r\n\r\n function ifAndroidSetCaret(inputLength, element) {\r\n var ua = navigator.userAgent.toLowerCase();\r\n var isAndroid = ua.indexOf(\"android\") > -1;\r\n if (isAndroid) {\r\n setTimeout(function () {\r\n element[0].lastElementChild.setSelectionRange(inputLength, inputLength)\r\n }, 0);\r\n }\r\n }\r\n }\r\n\r\n return {\r\n link: link,\r\n restrict: 'E',\r\n scope: {\r\n phonenumberPlaceholder: '=placeholder',\r\n phonenumberModel: '=model',\r\n ngDisabled: '='\r\n },\r\n template: '',\r\n };\r\n }\r\n\r\n function phoneFilter() {\r\n return function (tel) {\r\n if (!tel) { return ''; }\r\n\r\n var value = tel.toString().trim().replace(/^\\+/, '');\r\n\r\n if (value.match(/[^0-9]/)) {\r\n return tel;\r\n }\r\n\r\n var country, city, number;\r\n\r\n switch (value.length) {\r\n case 1:\r\n case 2:\r\n case 3:\r\n city = value;\r\n break;\r\n\r\n default:\r\n city = value.slice(0, 3);\r\n number = value.slice(3);\r\n }\r\n\r\n if(number){\r\n if(number.length>3){\r\n number = number.slice(0, 3) + '-' + number.slice(3,7);\r\n }\r\n else{\r\n number = number;\r\n }\r\n\r\n return (\"(\" + city + \") \" + number).trim();\r\n }\r\n else{\r\n return \"(\" + city;\r\n }\r\n };\r\n }\r\n})();\r\n\r\n\n(function () {\r\n 'use strict';\r\n angular\r\n .module('app.orders')\r\n .directive('spinnerCool', spinnerCool);\r\n\r\n function spinnerCool() {\r\n var directive = {\r\n restrict: 'E',\r\n replace: true,\r\n transclude: true,\r\n scope: {\r\n },\r\n template: ''\r\n };\r\n\r\n return directive;\r\n }\r\n})();\r\n\r\n// use true false for vm.example\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .directive('timeEntry', timeEntryDirective)\r\n .filter('timeHours', timeHoursFilter)\r\n .filter('timeHours', timeMinutesFilter);\r\n\r\n function timeEntryDirective($filter) {\r\n\r\n function link(scope, element, attributes) {\r\n scope.padHours = padHours;\r\n scope.padMinutes = padMinutes;\r\n\r\n scope.$watch('hours', function (value, oldValue) {\r\n var length = 0;\r\n if (value)\r\n length = value.length;\r\n if (length === 1) {\r\n if (value.match(/[0-9]/)) {\r\n if (value.match(/[3-9]/)) {\r\n padHours();\r\n }\r\n timeAdjustment();\r\n } else {\r\n scope.hours = oldValue;\r\n }\r\n } else if (length == 2) {\r\n if (value.match(/0[1-9]|1[0-2]/))\r\n timeAdjustment();\r\n else\r\n scope.hours = oldValue;\r\n } \r\n });\r\n\r\n scope.$watch('minutes', function (value, oldValue) {\r\n var length = 0;\r\n var checkIfMidnight = scope.ampm === \"AM\" && scope.hours === \"12\" && value === \"0\";\r\n if (value)\r\n length = value.length;\r\n if (length === 1) {\r\n if (value.match(/[0-9]/)){\r\n if (checkIfMidnight) {\r\n midnightMinutes();\r\n }\r\n if (value.match(/[6-9]/)) {\r\n padMinutes();\r\n }\r\n timeAdjustment();\r\n }\r\n else\r\n scope.minutes = oldValue;\r\n } else if(length === 2){\r\n if (value.match(/[0-5][0-9]/)) {\r\n if (checkIfMidnight) {\r\n midnightMinutes();\r\n }\r\n timeAdjustment();\r\n }\r\n else\r\n scope.minutes = oldValue;\r\n }\r\n });\r\n\r\n scope.$watch('ampm', function (value, oldValue) {\r\n timeAdjustment();\r\n });\r\n\r\n function midnightMinutes() {\r\n scope.minutes = \"01\";\r\n }\r\n\r\n function padHours() {\r\n if (scope.hours && scope.hours.length === 1)\r\n scope.hours = \"0\" + scope.hours;\r\n }\r\n \r\n function padMinutes() {\r\n if(scope.minutes && scope.minutes.length === 1)\r\n scope.minutes = \"0\" + scope.minutes;\r\n }\r\n\r\n function timeAdjustment() {\r\n scope.adjuster(scope.timerange);\r\n }\r\n }\r\n\r\n return {\r\n link: link,\r\n restrict: 'E',\r\n scope: {\r\n hours: '=hours',\r\n minutes: '=minutes',\r\n disabled: '=disabled',\r\n ampm: '=ampm',\r\n adjuster: '=adjuster',\r\n timerange: '=timerange',\r\n uid: '@uid'\r\n },\r\n template: \r\n '
\\\r\n \\\r\n :\\\r\n \\\r\n
\\\r\n \\\r\n \\\r\n \\\r\n \\\r\n
\\\r\n \\\r\n
'\r\n };\r\n }\r\n\r\n function timeHoursFilter() {\r\n return function (time) {\r\n if (!time) { return ''; }\r\n\r\n var value = time.toString();\r\n\r\n if (value.match(/1[0-2]|0[0-9]/)) {\r\n return time;\r\n }\r\n\r\n };\r\n }\r\n\r\n function timeMinutesFilter() {\r\n return function (time) {\r\n if (!time) { return ''; }\r\n\r\n var value = time.toString();\r\n\r\n if (value.match(/[0-5][0-9]/)) {\r\n return time;\r\n }\r\n };\r\n }\r\n})();\r\n\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n\t\t.module('app.orders')\r\n\t\t.controller('MyOrdersController', ['$scope', '$state', '$log', 'dataService', 'analyticsService', '$filter', '$timeout', MyOrdersController]);\r\n\r\n angular\r\n .module('app.orders')\r\n .filter('highlight', ['$sce', function ($sce) {\r\n return function (text, phrase) {\r\n if (phrase) text = text.replace(new RegExp('(' + phrase + ')', 'gi'),\r\n '$1')\r\n\r\n return $sce.trustAsHtml(text)\r\n }\r\n }])\r\n .filter(\"multiSearch\", function () {\r\n return function (input, searchText, AND_OR) {\r\n var returnArray = [],\r\n // Split on single or multi space\r\n splitext = searchText.toLowerCase(),\r\n // Build Regexp with Logical AND using \"look ahead assertions\"\r\n regexp_and = \"(?=.*\" + splitext + \")\",\r\n // Build Regexp with logicial OR\r\n regexp_or = searchText.toLowerCase(),\r\n // Compile the regular expression\r\n re = new RegExp((AND_OR == \"AND\") ? regexp_and : regexp_or, \"i\");\r\n\r\n for (var x = 0; x < input.length; x++) {\r\n var order = input[x];\r\n var snap = order.jsonSnapshot;\r\n var references = referenceBuilder(snap);\r\n var pickup = snap.LoadAt.saveLoadAtLoadDetails.pickupDate;\r\n var dropoff = snap.Consignee.saveConsigneeLoadDetails.deliveryDate;\r\n\r\n if (pickup) {\r\n pickup = new Date(pickup).toLocaleDateString();\r\n pickup = pickup.slice(0, -4) + pickup.slice(pickup.length - 2);\r\n }\r\n\r\n if (dropoff) {\r\n dropoff = new Date(dropoff).toLocaleDateString();\r\n dropoff = dropoff.slice(0, -4) + dropoff.slice(dropoff.length - 2);\r\n }\r\n\r\n var searchedString =\r\n snap.orderId + \" \" +\r\n snap.orderName + \" \" +\r\n snap.LoadAt.saveLoadAtLocationinfo.customerInfo.city + \" \" +\r\n snap.LoadAt.saveLoadAtLocationinfo.customerInfo.stateCode + \" \" +\r\n snap.Consignee.saveConsigneeLocationInfo.customerInfo.city + \" \" +\r\n snap.Consignee.saveConsigneeLocationInfo.customerInfo.stateCode + \" \" +\r\n pickup + \" \" +\r\n dropoff + \" \" +\r\n references;\r\n\r\n if (re.test(searchedString)) returnArray.push(order);\r\n }\r\n return returnArray;\r\n\r\n function referenceBuilder(snap) {\r\n var that = snap;\r\n var references = [];\r\n var ordId = snap.orderId;\r\n if (that.LoadAt.saveLoadAtShipmentRef.referenceNumberList.length > 0)\r\n that.LoadAt.saveLoadAtShipmentRef.referenceNumberList.map(function (ref) { references.push(ref.text) });\r\n if (that.LoadAt.saveLoadAtShipmentRef.billOfLadingList.length > 0)\r\n that.LoadAt.saveLoadAtShipmentRef.billOfLadingList.map(function (ref) { references.push(ref.text) });\r\n if (that.LoadAt.saveLoadAtShipmentRef.purchaseOrderList.length > 0)\r\n that.LoadAt.saveLoadAtShipmentRef.purchaseOrderList.map(function (ref) { references.push(ref.text) });\r\n if (that.LoadAt.saveLoadAtShipmentRef.loadAtNumberList && that.LoadAt.saveLoadAtShipmentRef.loadAtNumberList.length > 0)\r\n that.LoadAt.saveLoadAtShipmentRef.loadAtNumberList.map(function (ref) { references.push(ref.text) });\r\n if (that.Consignee.saveConsigneeShipmentRef.consigneeNumberList && that.Consignee.saveConsigneeShipmentRef.consigneeNumberList.length > 0)\r\n that.Consignee.saveConsigneeShipmentRef.consigneeNumberList.map(function (ref) { references.push(ref.text) });\r\n for (var i = 0; i < that.intermediateStops.length; i++) {\r\n var stop = that.intermediateStops[i];\r\n if (stop.saveStopShipmentReference.stopNumberList && stop.saveStopShipmentReference.stopNumberList.length > 0)\r\n stop.saveStopShipmentReference.stopNumberList.map(function (ref) { references.push(ref.text) });\r\n }\r\n\r\n return references;\r\n }\r\n }\r\n })\r\n .filter('titleCase', function () {\r\n return function (input) {\r\n input = input || '';\r\n return input.replace(/\\w\\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });\r\n };\r\n })\r\n\r\n function MyOrdersController($scope, $state, $log, dataService, analyticsService, $filter, $timeout) {\r\n var vm = this;\r\n vm.loaded = false;\r\n\r\n vm.orderStatus = [];\r\n vm.orders = [];\r\n vm.favoritedOrders = [];\r\n vm.submittedOrders = [];\r\n vm.unsubmittedOrders = [];\r\n vm.copiedOrders = [];\r\n vm.deleteOrder = deleteOrder;\r\n vm.getReferences = getReferences;\r\n vm.getPickupDate = getPickupDate;\r\n vm.getDeliveryDate = getDeliveryDate;\r\n\r\n vm.getOrderName = getOrderName;\r\n vm.saveOrderName = saveOrderName;\r\n vm.saveSubmittedOrderName = saveSubmittedOrderName;\r\n vm.editOrderName = editOrderName;\r\n vm.copyOrder = copyOrder;\r\n\r\n vm.setFavorite = setFavorite;\r\n\r\n vm.orderBy = orderBy;\r\n vm.currentColumnSort = '-modifiedDate';\r\n vm.search = \"\"\r\n vm.toggleFilter = toggleFilter;\r\n\r\n activate();\r\n\r\n function toggleFilter() {\r\n if (vm.showFilter == false) {\r\n clearFilter();\r\n vm.showFilter = true;\r\n } else {\r\n clearFilter();\r\n }\r\n }\r\n\r\n function clearFilter() {\r\n vm.showFilter = false;\r\n vm.search = \"\";\r\n }\r\n\r\n function orderBy(orderBy) {\r\n var descending = '-' + orderBy;\r\n var ascending = orderBy;\r\n\r\n if (vm.currentColumnSort === ascending)\r\n return vm.currentColumnSort = descending;\r\n else\r\n return vm.currentColumnSort = ascending;\r\n }\r\n\r\n function activate() {\r\n getOrders();\r\n clearModal();\r\n $timeout(function () {\r\n clearModal();\r\n }, 2000)\r\n }\r\n\r\n function clearModal() {\r\n var elem = angular.element('#submitOverlay');\r\n if (elem)\r\n elem.remove();\r\n }\r\n\r\n function deleteOrder(order) {\r\n vm.orderToDelete = order;\r\n var options = { closeButton: \"true\", timeOut: 0, extendedTimeOut: 0, preventDuplicates: true };\r\n var submittedWarningHeader = \"Order Already Submitted\";\r\n var submittedWarning = \"To cancel an order that has already been submitted, please contact our customer service department at 800-532-7091 for assistance.\";\r\n var cancelWarning = \"Are you sure you wish to cancel order: \" + order.id + \"?\";\r\n var cancelButton = \"Cancel\";\r\n\r\n analyticsService.logCATEvent(\"COOL\", \"Clicked to Cancel Order\", \"Clicked to Cancel Order on My Orders page\");\r\n\r\n if (order.jsonSnapshot.submitted) {\r\n toastr.warning(submittedWarning, submittedWarningHeader, options);\r\n } else {\r\n toastr.options.cancelClick = _deleteOrder;\r\n toastr.warning(cancelButton, cancelWarning, options);\r\n }\r\n }\r\n\r\n function _deleteOrder() {\r\n var order = vm.orderToDelete;\r\n var unsubIdx = vm.unsubmittedOrders.indexOf(order);\r\n var copiedIdx = vm.copiedOrders.indexOf(order);\r\n\r\n return dataService.deleteOrder(order.id)\r\n\t\t\t\t.then(function () {\r\n\t\t\t\t vm.orders.splice(unsubIdx, 1);\r\n\t\t\t\t if (unsubIdx > -1)\r\n\t\t\t\t vm.unsubmittedOrders.splice(unsubIdx, 1);\r\n else\r\n\t\t\t\t vm.copiedOrders.splice(copiedIdx, 1);\r\n\t\t\t\t toastr.clear();\r\n\t\t\t\t});\r\n }\r\n\r\n function isSubmittedOrder(summaryModel) {\r\n return summaryModel.submitted === true;\r\n }\r\n\r\n function isUnsubmittedOrder(summaryModel) {\r\n return summaryModel.submitted === false;\r\n }\r\n\r\n function getOrderName(summaryModel) {\r\n return summaryModel.orderName\r\n }\r\n\r\n function editOrderName(order) {\r\n if (order.editingName == true) {\r\n order.jsonSnapshot.orderName = order.preName\r\n }\r\n order.preName = order.jsonSnapshot.orderName;\r\n order.editingName = !order.editingName;\r\n }\r\n\r\n function saveOrderName(order) {\r\n return dataService.saveOrder(order.jsonSnapshot)\r\n\t\t\t\t.then(function () {\r\n\t\t\t\t order.editingName = false;\r\n\t\t\t\t})\r\n }\r\n\r\n function saveSubmittedOrderName(order) {\r\n _saveSubmittedDate(order);\r\n return dataService.saveOrder(order.jsonSnapshot, order.isFavorite, true)\r\n\t\t\t\t.then(function () {\r\n\t\t\t\t order.editingName = false;\r\n\t\t\t\t})\r\n }\r\n\r\n function setFavorite(order) {\r\n if (order.isFavorite === true) {\r\n var options = { closeButton: \"true\", timeOut: 0, extendedTimeOut: 0, preventDuplicates: true };\r\n var cancelWarning = \"Remove order \" + (order.jsonSnapshot.orderName || order.id) + \" from favorites?\"\r\n var cancelButton = \"Cancel\";\r\n vm.orderFavoriteToRemove = order;\r\n toastr.options.cancelClick = _removeFavorite;\r\n toastr.warning(cancelButton, cancelWarning, options);\r\n } else {\r\n _saveFavorite(order)\r\n }\r\n }\r\n\r\n function _removeFavorite() {\r\n vm.orderFavoriteToRemove.isFavorite = false;\r\n return dataService.saveOrder(vm.orderFavoriteToRemove.jsonSnapshot, vm.orderFavoriteToRemove.isFavorite)\r\n\t\t\t\t.then(function () {\r\n\t\t\t\t var idx = vm.favoritedOrders.indexOf(vm.orderFavoriteToRemove);\r\n\t\t\t\t vm.favoritedOrders.splice(idx, 1);\r\n\t\t\t\t toastr.clear();\r\n\t\t\t\t})\r\n }\r\n\r\n function _saveSubmittedDate(order) {\r\n if (!order.jsonSnapshot.submittedDate)\r\n order.jsonSnapshot.submittedDate = order.modifiedDate;\r\n }\r\n\r\n function _saveFavorite(order) {\r\n order.isFavorite = true;\r\n _saveSubmittedDate(order);\r\n\r\n return dataService.saveOrder(order.jsonSnapshot, order.isFavorite)\r\n .then(function () {\r\n vm.favoritedOrders.push(order);\r\n })\r\n }\r\n\r\n function getPickupDate(summaryModel) {\r\n return summaryModel.LoadAt.saveLoadAtLoadDetails.pickupDate;\r\n }\r\n\r\n function getDeliveryDate(summaryModel) {\r\n return summaryModel.Consignee.saveConsigneeLoadDetails.deliveryDate;\r\n }\r\n\r\n function getReferences(summaryModel) {\r\n var that = summaryModel;\r\n var references = [];\r\n\r\n if (that.LoadAt.saveLoadAtShipmentRef.billOfLadingList.length > 0)\r\n that.LoadAt.saveLoadAtShipmentRef.billOfLadingList.map(function (ref) { references.push(ref.text) });\r\n if (that.LoadAt.saveLoadAtShipmentRef.purchaseOrderList.length > 0)\r\n that.LoadAt.saveLoadAtShipmentRef.purchaseOrderList.map(function (ref) { references.push(ref.text) });\r\n if (that.LoadAt.saveLoadAtShipmentRef.referenceNumberList.length > 0)\r\n that.LoadAt.saveLoadAtShipmentRef.referenceNumberList.map(function (ref) { references.push(ref.text) });\r\n if (that.LoadAt.saveLoadAtShipmentRef.loadAtNumberList && that.LoadAt.saveLoadAtShipmentRef.loadAtNumberList.length > 0)\r\n that.LoadAt.saveLoadAtShipmentRef.loadAtNumberList.map(function (ref) { references.push(ref.text) });\r\n\r\n for (var i = 0; i < that.intermediateStops.length; i++) {\r\n var stop = that.intermediateStops[i];\r\n if (stop.saveStopShipmentReference.stopNumberList && stop.saveStopShipmentReference.stopNumberList.length > 0)\r\n stop.saveStopShipmentReference.stopNumberList.map(function (ref) { references.push(ref.text) });\r\n }\r\n\r\n if (that.Consignee.saveConsigneeShipmentRef.consigneeNumberList && that.Consignee.saveConsigneeShipmentRef.consigneeNumberList.length > 0)\r\n that.Consignee.saveConsigneeShipmentRef.consigneeNumberList.map(function (ref) { references.push(ref.text) });\r\n\r\n return references.join(', ');\r\n }\r\n\r\n function getOrders() {\r\n return dataService.getOrders().then(function (data) {\r\n vm.orders = data;\r\n for (var i = 0; i < vm.orders.length; i++) {\r\n vm.orders[i].jsonSnapshot = JSON.parse(vm.orders[i].jsonSnapshot);\r\n vm.orders[i].createdDate = parseCSharpDate(vm.orders[i].createdDate);\r\n vm.orders[i].modifiedDate = parseCSharpDate(vm.orders[i].modifiedDate);\r\n\r\n if (!vm.orders[i].jsonSnapshot.orderName)\r\n vm.orders[i].jsonSnapshot.orderName = \"\"\r\n var preSortOrder = vm.orders[i];\r\n if (preSortOrder.isFavorite)\r\n vm.favoritedOrders.push(preSortOrder)\r\n if (isUnsubmittedOrder(preSortOrder.jsonSnapshot) && !preSortOrder.jsonSnapshot.freshCopy)\r\n vm.unsubmittedOrders.push(preSortOrder)\r\n if (isUnsubmittedOrder(preSortOrder.jsonSnapshot) && preSortOrder.jsonSnapshot.freshCopy)\r\n vm.copiedOrders.push(preSortOrder)\r\n if (isSubmittedOrder(preSortOrder.jsonSnapshot)) {\r\n if (preSortOrder.jsonSnapshot.submittedDate)\r\n preSortOrder.modifiedDate = new Date(preSortOrder.jsonSnapshot.submittedDate)\r\n vm.submittedOrders.push(preSortOrder)\r\n }\r\n \r\n }\r\n vm.loaded = true;\r\n });\r\n }\r\n\r\n function parseCSharpDate(jsonDate) {\r\n var date = new Date(parseInt(jsonDate.substr(6)));\r\n return date;\r\n }\r\n\r\n function copyOrder(order) {\r\n var options = { closeButton: \"true\", timeOut: 0, tapToDismiss: false, extendedTimeOut: 0, preventDuplicates: true };\r\n var copyWarning = \"Copy order \" + (order.jsonSnapshot.orderName || order.id) + \"?\"\r\n var copylButton = \"How many copies would you like? Cancel\";\r\n var copyDates = false\r\n vm.orderToCopy = order;\r\n toastr.options.copyClick = _copyAmount;\r\n var x = toastr.warning(copylButton, copyWarning, options);\r\n $(x).addClass('nox');\r\n $(function () {\r\n var $element = $('input[type=\"range\"]');\r\n var $handle;\r\n $element\r\n\t\t\t\t\t.rangeslider({\r\n\t\t\t\t\t polyfill: false,\r\n\t\t\t\t\t onInit: function () {\r\n\t\t\t\t\t $handle = $('.rangeslider__handle', this.$range);\r\n\t\t\t\t\t updateHandle($handle[0], this.value);\r\n\t\t\t\t\t }\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on('input', function () {\r\n\t\t\t\t\t updateHandle($handle[0], this.value);\r\n\t\t\t\t\t});\r\n function updateHandle(el, val) {\r\n el.textContent = val;\r\n }\r\n });\r\n $('.toast-title, a.button').click(function () {\r\n toastr.clear();\r\n });\r\n $('div#toast-container').on('click', function (event) {\r\n if (!$(event.target).closest('div.toast').length) {\r\n toastr.clear();\r\n }\r\n });\r\n }\r\n\r\n function _copyOrder(copies, copyDates) {\r\n for (var i = 0; i < copies; i++) {\r\n var copyNumber = i + 1;\r\n var orderId = genOrdNum();\r\n var newOrder = angular.copy(vm.orderToCopy);\r\n var orderName = angular.copy(vm.orderToCopy.jsonSnapshot.orderName || newOrder.id.toUpperCase()) + \" (Copy \" + copyNumber + \")\";\r\n newOrder.id = orderId;\r\n newOrder.jsonSnapshot.orderId = orderId;\r\n newOrder.jsonSnapshot.submitted = false;\r\n newOrder.jsonSnapshot.submittedDate = \"\"\r\n newOrder.modifiedDate = new Date();\r\n newOrder.jsonSnapshot.currentStep = 14.5;\r\n newOrder.jsonSnapshot.orderName = orderName\r\n if(copyDates === false)\r\n newOrder.jsonSnapshot.LoadAt.saveLoadAtLoadDetails.pickupDate = \"\",\r\n\t\t\t\tnewOrder.jsonSnapshot.LoadAt.saveLoadAtLoadDetails.pickupTimeRange = new range()\r\n newOrder.jsonSnapshot.LoadAt.saveLoadAtLoadDetails.trailerNumber = \"\"\r\n var refs = new shipmentRef();\r\n newOrder.jsonSnapshot.shipmentRef = refs;\r\n newOrder.jsonSnapshot.LoadAt.saveLoadAtShipmentRef = refs;\r\n newOrder.jsonSnapshot.Consignee.saveConsigneeShipmentRef = refs;\r\n if (copyDates === false)\r\n newOrder.jsonSnapshot.Consignee.saveConsigneeLoadDetails.deliveryDate = \"\";\r\n\t\t\t\tnewOrder.jsonSnapshot.Consignee.saveConsigneeLoadDetails.deliveryTimeRange = new range();\r\n\r\n for(var x = 0; x < newOrder.jsonSnapshot.intermediateStops.length; x++){\r\n var stop = newOrder.jsonSnapshot.intermediateStops[x];\r\n stop.id = orderId;\r\n if (copyDates === false) {\r\n stop.saveStopLoadDetails.loadDetails.pickupDate = \"\";\r\n stop.saveStopLoadDetails.loadDetails.pickupTimeRange = new range();\r\n }\r\n stop.saveStopLoadDetails.loadDetails.previousDate = \"\";\r\n stop.saveStopShipmentReference.stopNumberList = [];\r\n }\r\n newOrder.jsonSnapshot.freshCopy = true;\r\n saveOrder(newOrder.jsonSnapshot);\r\n newOrder.freshCopy = true;\r\n vm.copiedOrders.push(newOrder);\r\n }\r\n document.getElementById('copiedOrders').scrollIntoView();\r\n toastr.clear();\r\n }\r\n\r\n function _copyAmount() {\r\n var copyAmount = $('#copyAmount').val();\r\n var copyDates = $('#copyDates').is(':checked');\r\n _copyOrder(copyAmount, copyDates);\r\n }\r\n\r\n function saveOrder(jsonSnapshot) {\r\n return dataService.saveOrder(jsonSnapshot);\r\n }\r\n\r\n function shipmentRef() {\r\n return {\r\n referenceNumberList: [],\r\n billOfLadingList: [],\r\n purchaseOrderList: []\r\n };\r\n }\r\n\r\n function range() {\r\n return {\r\n dFromHr: null,\r\n dFromMin: null,\r\n dToHr: null,\r\n dToMin: null,\r\n dFromAmPm: 'AM',\r\n dToAmPm: 'AM',\r\n from: '',\r\n to: ''\r\n };\r\n }\r\n\r\n function genOrdNum() {\r\n function s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n\t\t\t\t .toString(16)\r\n\t\t\t\t .substring(1);\r\n }\r\n return s4() + s4() + s4() + s4();\r\n }\r\n };\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('DeterminationController', ['$state', 'dataService' ,'summaryModel','$q','controllerLogic', determinationController]);\r\n\r\n function determinationController($state, dataService, summaryModel, $q, controllerLogic) {\r\n var vm = this;\r\n vm.oldSummary = angular.copy(summaryModel);\r\n activate();\r\n\r\n function activate() {\r\n summaryModel.resetData();\r\n var orderId = $state.params.orderId;\r\n summaryModel.pageRefreshed = false;\r\n if(orderId !== \"start\") {\r\n return dataService.getOrder(orderId)\r\n .then(function (result) {\r\n var snapshot = JSON.parse(result.jsonSnapshot);\r\n angular.merge(summaryModel, snapshot);\r\n summaryModel = controllerLogic.resetDates(summaryModel);\r\n }).then(function () {\r\n setLocation();\r\n });\r\n } else {\r\n setLocation();\r\n }\r\n }\r\n\r\n function setLocation() {\r\n switch (summaryModel.currentStep) {\r\n case 1:\r\n $state.go('layout.shipper-billto.createOrder');\r\n break;\r\n case 2:\r\n $state.go('layout.shipper-billto.billtoinfo');\r\n break;\r\n case 3:\r\n $state.go('layout.loadat.locationinfo');\r\n break;\r\n case 4:\r\n $state.go('layout.loadat.shipmentref');\r\n break;\r\n case 5:\r\n $state.go('layout.loadat.loaddetails');\r\n break;\r\n case 6:\r\n $state.go('layout.loadat.specialhandling');\r\n break;\r\n case 7:\r\n $state.go('layout.intermediate.additionalstops');\r\n break;\r\n case 8:\r\n $state.go('layout.intermediate.locationinfo');\r\n break;\r\n case 9:\r\n $state.go('layout.intermediate.shipmentref');\r\n break;\r\n case 10:\r\n $state.go('layout.intermediate.loaddetails');\r\n break;\r\n case 11:\r\n $state.go('layout.intermediate.specialhandling');\r\n break;\r\n case 12:\r\n $state.go('layout.consignee.locationinfo');\r\n break;\r\n case 13:\r\n $state.go('layout.consignee.shipmentref');\r\n break;\r\n case 14:\r\n $state.go('layout.consignee.loaddetails');\r\n break;\r\n case 14.5:\r\n $state.go('layout.edit.order');\r\n break;\r\n case 15:\r\n $state.go('layout.review.order');\r\n break;\r\n case 16:\r\n $state.go('layout.review.order');\r\n break;\r\n }\r\n }\r\n\r\n };\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('EditOrderController', ['summaryModel', '$log', '$scope', '$state', 'dataService', '$timeout', 'controllerLogic', editOrderController]);\r\n\r\n function editOrderController(summaryModel, $log, $scope, $state, dataService, $timeout, controllerLogic) {\r\n var vm = this;\r\n vm.summary = summaryModel;\r\n vm.convertTime = summaryModel.convertTime;\r\n vm.shipmentRefNotEntered = shipmentRefNotEntered;\r\n\r\n activate();\r\n\r\n function activate() {\r\n bindContinueEvent();\r\n }\r\n\r\n function shipmentRefNotEntered(otherRefs) {\r\n var srefs = summaryModel.shipmentRef;\r\n var bol = srefs.billOfLadingList.length\r\n var po = srefs.purchaseOrderList.length\r\n var ref = srefs.referenceNumberList.length\r\n var or = 0;\r\n if (otherRefs)\r\n or += otherRefs.length;\r\n var length = bol + po + ref + or\r\n return length === 0;\r\n }\r\n\r\n function submitReview(href) {\r\n var dates = dateValidation();\r\n var shipmentRef = summaryModel.shipmentRef\r\n shipmentRef.stops = []\r\n for (var i = 0; i < summaryModel.intermediateStops.length; i++) {\r\n var stop = summaryModel.intermediateStops[i];\r\n shipmentRef.stops.push(stop.saveStopShipmentReference.stopNumberList);\r\n }\r\n\r\n var payload = {\r\n loadAtLoadDetails: summaryModel.LoadAt.saveLoadAtLoadDetails,\r\n ConsigneeLoadDetails: summaryModel.Consignee.saveConsigneeLoadDetails,\r\n SaveShipmentReference: { ShipmentRef: shipmentRef }\r\n }\r\n\r\n if (dates.stops.length > 0) {\r\n payload.ConsigneeLoadDetails.previousDate = dates.stops[dates.stops.length - 1];\r\n } else {\r\n payload.ConsigneeLoadDetails.previousDate = dates.loadat;\r\n }\r\n return dataService.reviewDateValidation(dates)\r\n .then(function () {\r\n return dataService.saveWorkInProgress(payload, '/review/edit-order')\r\n .then(function () {\r\n summaryModel.freshCopy = false;\r\n summaryModel.currentStep = 15;\r\n return dataService.saveOrder(summaryModel)\r\n\t\t\t\t .then(function () {\r\n\t\t\t\t summaryModel.proceed(href);\r\n\t\t\t\t });\r\n });\r\n });\r\n }\r\n\r\n function _normalizeDate(date) {\r\n if (date)\r\n return moment(date).format(\"MM/DD/YYYY\");\r\n else\r\n return \"\";\r\n }\r\n\r\n function dateValidation() {\r\n\r\n var dates = {\r\n loadat: _normalizeDate(vm.summary.LoadAt.saveLoadAtLoadDetails.pickupDate),\r\n stops: [],\r\n consignee: _normalizeDate(vm.summary.Consignee.saveConsigneeLoadDetails.deliveryDate)\r\n };\r\n for (var i = 0; i < vm.summary.intermediateStops.length; i++) {\r\n var stop = vm.summary.intermediateStops[i];\r\n dates.stops.push(_normalizeDate(stop.saveStopLoadDetails.loadDetails.pickupDate));\r\n }\r\n return dates;\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n submitReview(href);\r\n });\r\n }\r\n };\r\n})();\n(function () {\r\n\t'use strict';\r\n\r\n\tangular\r\n\t\t.module('app.orders')\r\n\t\t.controller('ProgressIndicatorController', ['$scope', '$rootScope', '$log', 'dataService', 'analyticsService', '$state', '$stateParams', '$q', 'summary', 'currentTabs', 'summaryModel','$timeout', progressIndicatorController]);\r\n\r\n\tfunction progressIndicatorController($scope, $rootScope, $log, dataService, analyticsService, $state, $stateParams, $q, summary, currentTabs, summaryModel, $timeout) {\r\n\t\tvar vm = this;\r\n\t\tvm.saveAndContinue = saveAndContinue;\r\n\t\tvm.saveAndExit = saveAndExit;\r\n\t\tvm.summary = summary;\r\n\t\tvm.currentTabs = currentTabs;\r\n\t\tvm.goBack = goBack;\r\n\t\tvm.proceed = proceed;\r\n\t\tvm.step = $state.params.step;\r\n\r\n\t\tactivate();\r\n\r\n\t\tfunction activate() {\r\n\t\t bindOnLoadEvent();\r\n\t\t}\r\n\r\n\t\tfunction generateNavBar() {\r\n var navBar = constructNavLink('- Order Navigation -', false);\r\n var currentStep = vm.summary.currentStep;\r\n\r\n\t\t navBar += constructNavLink('Shipper', true, '/shipper-billto/create-order');\r\n\t\t navBar += constructNavLink('BillTo', currentStep >= 2, '/shipper-billto/billto-info');\r\n\t\t navBar += constructNavLink('Load At', currentStep >= 3, '/loadat/location');\r\n\r\n\t\t for (var i = 0; i < vm.summary.intermediateStops.length; i++) {\r\n\t\t navBar += constructNavLink('Intermediate Stop #' + (i + 1), true, null,(i+1));\r\n\t\t }\r\n\r\n\t\t navBar += constructNavLink('Consignee', currentStep >= 12, '/consignee/location-info');\r\n\t\t navBar += constructNavLink('Review Order', currentStep >= 15, '/review/order');\r\n\r\n\t\t \r\n\r\n\t\t return navBar;\r\n\r\n\t\t \r\n\r\n\t\t function constructNavLink(name, active, href, stopNum) {\r\n var action = ''\r\n if (href)\r\n action = '';\r\n else if (stopNum)\r\n action = ''\r\n\r\n if(active)\r\n return '
  • ' + action + name + '
  • '\r\n else\r\n return '
  • ' + name + '
  • '\r\n\r\n function alertTest() {\r\n\r\n }\r\n\t\t }\r\n\t\t}\r\n\r\n\t\tfunction goBack() {\r\n\t\t\tstepCase(vm.processStep - 1, true);\r\n\t\t}\r\n\r\n\t\tfunction proceed() {\r\n\t\t\tstepCase(vm.processStep + 1, false);\r\n\t\t}\r\n\r\n\t\tfunction stepCase(processStep, back) {\r\n\t\t\tif (vm.summary.intermediateStops.length < 1 && processStep == 3)\r\n\t\t\t\tback ? processStep = 2 : processStep = 4;\r\n\t\t\tswitch (processStep) {\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\t$state.go('layout.shipper-billto.createOrder');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\t$state.go('layout.loadat.locationinfo');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\t$state.go('layout.intermediate.locationinfo');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 4:\r\n\t\t\t\t\t$state.go('layout.consignee.locationinfo');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 5:\r\n\t\t\t\t\t$state.go('layout.review.order');\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction saveAndExit() {\r\n\t\t summaryModel.validated = false;\r\n\t\t summaryModel.freshCopy = false;\r\n\t\t\treturn dataService.saveOrder(summaryModel)\r\n\t\t\t\t.then(function () {\r\n\t\t\t\t\tanalyticsService.logCATUEvent(\"COOL\", \"Clicked Save & Quit\", \"Clicked Save & Quit on \");\r\n\t\t\t\t\t$state.go(\"myorders\");\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction calcTabLength() {\r\n\t\t\tswitch (vm.currentTabs.length) {\r\n\t\t\t\tcase 1:\r\n\t\t\t\t\tvm.tabLength = \"oneTab\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 2:\r\n\t\t\t\t\tvm.tabLength = \"twoTab\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 3:\r\n\t\t\t\t\tvm.tabLength = \"threeTab\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 4:\r\n\t\t\t\t\tvm.tabLength = \"fourTab\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 5:\r\n\t\t\t\t\tangular.element('#additionalstops').remove();\r\n\t\t\t\t\tvm.tabLength = \"fourTab\";\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction saveAndContinue(href) {\r\n\t\t\t$rootScope.$emit('continue-event', href);\r\n\t\t}\r\n\r\n\t\tfunction bindOnLoadEvent() {\r\n\t\t\t$scope.$onRootScope('$viewContentLoading',\r\n\t\t\t\tfunction () {\r\n\t\t\t\t\t//takes current state params and binds them to view model\r\n\t\t\t\t\tvm.title = $state.params.title || '';\r\n\t\t\t\t\tvm.process = $state.params.process;\r\n\t\t\t\t\tvm.step = $state.params.step;\r\n\t\t\t\t\tvm.processStep = $state.params.processStep;\r\n\t\t\t\t\tvm.transitionState = $state.params.transitionState;\r\n\t\t\t\t\tvm.parentUrl = $state.current.name.split('.')[1];\r\n\t\t\t\t\t$q.when(vm.currentTabs = currentTabs\r\n\t\t\t\t\t\t.filter(function (cState) { return cState.name.indexOf('layout.' + vm.parentUrl + '.') === 0; }))\r\n\t\t\t\t\t\t\t.then(function () {\r\n\t\t\t\t\t\t\t\tcalcTabLength();\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\taddCoolNavHook();\r\n\t\t\t\t\taddCoolNav();\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tfunction addCoolNav() {\r\n\t\t var notDeterminationStep = vm.step !== 0;\r\n\t\t var notEditReviewStep = vm.step !== 14.5;\r\n\t\t var notCompletedOrder = vm.summary.currentStep !== 16;\r\n\t\t var notMyOrders = location.href.indexOf(\"myorders\") === -1;\r\n\r\n\t\t if (notDeterminationStep && notEditReviewStep && notCompletedOrder && notMyOrders) {\r\n\t\t $('#coolNav').replaceWith(generateNavBar())\r\n\t\t $('.coolNavLink').click(function (event) {\r\n\t\t event.preventDefault();\r\n\t\t var href = $($(this).children()[0]).attr('href');\r\n\t\t saveAndContinue(href);\r\n\t\t });\r\n\t\t $('#stop-1').click(function (event) {\r\n\t\t event.preventDefault();\r\n goToStop(0)\r\n\t\t });\r\n\t\t $('#stop-2').click(function (event) {\r\n\t\t event.preventDefault();\r\n\t\t goToStop(1)\r\n\t\t });\r\n\t\t $('#stop-3').click(function (event) {\r\n\t\t event.preventDefault();\r\n\t\t goToStop(2)\r\n\t\t });\r\n\t\t $('#stop-4').click(function (event) {\r\n\t\t event.preventDefault();\r\n\t\t goToStop(3)\r\n\t\t });\r\n\t\t }\r\n\r\n\t\t function goToStop(idx) {\r\n\t\t $timeout(function () {\r\n\t\t vm.summary.currentStop = vm.summary.intermediateStops[idx];\r\n\t\t }, 0).then(function () {\r\n\t\t saveAndContinue('/intermediate/location-info');\r\n\t\t })\r\n\t\t }\r\n\t\t \r\n\t\t}\r\n\r\n\t\tfunction addCoolNavHook() {\r\n\t\t $('#coolNav').remove();\r\n\t\t $('.coolNavLink').remove();\r\n\t\t $('
  • ').insertAfter('#newOrder');\r\n\t\t}\r\n\t};\r\n})();\n(function() {\r\n\t'use strict';\r\n\r\n\tangular\r\n\t\t.module('app.orders')\r\n\t\t.controller('ReviewController', [\r\n\t\t\t'summaryModel',\r\n\t\t\t'$log',\r\n\t\t\t'$scope',\r\n\t\t\t'$state',\r\n\t\t\t'dataService',\r\n\t\t\t'$timeout',\r\n\t\t\t'controllerLogic',\r\n\t\t\t'$window',\r\n\t\t\treviewController\r\n\t\t]);\r\n\r\n\tfunction reviewController(\r\n\t\tsummaryModel,\r\n\t\t$log,\r\n\t\t$scope,\r\n\t\t$state,\r\n\t\tdataService,\r\n\t\t$timeout,\r\n\t\tcontrollerLogic,\r\n\t\t$window\r\n\t) {\r\n\t\tvar vm = this;\r\n\t\tvm.edit = edit;\r\n\t\tvm.editStop = editStop;\r\n\t\tvm.summary = summaryModel;\r\n\t\tvm.closeModal = closeModal;\r\n\t\tvm.deleteStop = deleteStop;\r\n\t\tvm.getOrderName = getOrderName;\r\n\t\tvm.editOrderName = editOrderName;\r\n\t\tvm.saveOrderName = saveOrderName;\r\n\t\tvm.editingName = false;\r\n\t\tvm.preName;\r\n\t\tvm.submitAnyway = submitAnyway;\r\n\r\n\t\tvm.altDate = new Date();\r\n\t\tvm.hasCapacity = true;\r\n\r\n\t\tvm.switchLoadAtDate = switchLoadAtDate;\r\n\t\tvm.saveAndQuit = saveAndQuit;\r\n\r\n\t\tactivate();\r\n\r\n\t\tfunction activate() {\r\n\t\t\tbindContinueEvent();\r\n\t\t}\r\n\r\n\t\tfunction getOrderName() {\r\n\t\t\treturn vm.summary.orderName || 'No order name';\r\n\t\t}\r\n\r\n\t\tfunction editOrderName(order) {\r\n\t\t\tif (vm.editingName) {\r\n\t\t\t\tvm.summary.orderName = vm.preName;\r\n\t\t\t}\r\n\t\t\tvm.preName = vm.summary.orderName;\r\n\t\t\tvm.editingName = !vm.editingName;\r\n\t\t}\r\n\r\n\t\tfunction saveOrderName() {\r\n\t\t\treturn dataService.saveOrder(vm.summary).then(function() {\r\n\t\t\t\tvm.editingName = false;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction submitAnyway() {\r\n\t\t\t_submitOrder(true);\r\n\t\t}\r\n\r\n\t\tfunction submitOrder() {\r\n\t\t\tvar capacityReq = controllerLogic.capacity(summaryModel);\r\n\t\t\tvar dates = dateValidation();\r\n\t\t\treturn dataService.reviewDateValidation(dates).then(function() {\r\n\t\t\t\tangular.element('.rvo-loading').show();\r\n\t\t\t\treturn dataService\r\n\t\t\t\t\t.capacityCheck(capacityReq)\r\n\t\t\t\t\t.then(function(response) {\r\n\t\t\t\t\t\tif (response.result) {\r\n\t\t\t\t\t\t\t_submitOrder(false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!response.result) {\r\n\t\t\t\t\t\t\tvm.hasCapacity = response.result;\r\n\t\t\t\t\t\t\tvar altDate = response.altDate,\r\n\t\t\t\t\t\t\t\tyear = altDate.substring(0, 4),\r\n\t\t\t\t\t\t\t\tmonth = altDate.substring(4, 6),\r\n\t\t\t\t\t\t\t\tday = altDate.substring(6, 8);\r\n\t\t\t\t\t\t\tvar stringDate = month + '/' + day + '/' + year;\r\n\t\t\t\t\t\t\tvm.altDate = new Date(Date.parse(stringDate));\r\n\t\t\t\t\t\t\t_removeLoadingSplash();\r\n\t\t\t\t\t\t\t$('html, body').animate({ scrollTop: 0 }, 'slow');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch(function() {\r\n\t\t\t\t\t\t_removeLoadingSplash();\r\n\t\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction _normalizeDate(date) {\r\n\t\t\tif (date) return moment(date).format('MM/DD/YYYY');\r\n\t\t\telse return '';\r\n\t\t}\r\n\r\n\t\tfunction dateValidation() {\r\n\t\t\tvar dates = {\r\n\t\t\t\tloadat: _normalizeDate(\r\n\t\t\t\t\tvm.summary.LoadAt.saveLoadAtLoadDetails.pickupDate\r\n\t\t\t\t),\r\n\t\t\t\tstops: [],\r\n\t\t\t\tconsignee: _normalizeDate(\r\n\t\t\t\t\tvm.summary.Consignee.saveConsigneeLoadDetails.deliveryDate\r\n\t\t\t\t)\r\n\t\t\t};\r\n\t\t\tfor (var i = 0; i < vm.summary.intermediateStops.length; i++) {\r\n\t\t\t\tvar stop = vm.summary.intermediateStops[i];\r\n\t\t\t\tdates.stops.push(\r\n\t\t\t\t\t_normalizeDate(\r\n\t\t\t\t\t\tstop.saveStopLoadDetails.loadDetails.pickupDate\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\treturn dates;\r\n\t\t}\r\n\r\n\t\tfunction _removeLoadingSplash() {\r\n\t\t\tangular.element('.rvo-loading').hide();\r\n\t\t}\r\n\r\n\t\tfunction _submitOrder(ignoredCapacity) {\r\n\t\t\tvar orderObject = new GenOrderObject(ignoredCapacity);\r\n\t\t\treturn dataService\r\n\t\t\t\t.submitOrder(orderObject)\r\n\t\t\t\t.then(function(result) {\r\n\t\t\t\t\tsummaryModel.currentStep++;\r\n\t\t\t\t\tsummaryModel.submitted = true;\r\n\t\t\t\t\treturn dataService\r\n\t\t\t\t\t\t.saveOrder(summaryModel)\r\n\t\t\t\t\t\t.then(function() {\r\n\t\t\t\t\t\t\t_removeLoadingSplash();\r\n\t\t\t\t\t\t\topenModal();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch(function() {\r\n\t\t\t\t\t\t\t_removeLoadingSplash();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t})\r\n\t\t\t\t.catch(function() {\r\n\t\t\t\t\t_removeLoadingSplash();\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction switchLoadAtDate() {\r\n\t\t\tsummaryModel.LoadAt.saveLoadAtLoadDetails.pickupDate = vm.altDate;\r\n\t\t\tvm.hasCapacity = true;\r\n\t\t}\r\n\r\n\t\tfunction saveAndQuit() {\r\n\t\t\tsummaryModel.validated = false;\r\n\t\t\treturn dataService.saveOrder(summaryModel).then(function() {\r\n\t\t\t\t$state.go('myorders');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction deleteStop(idx) {\r\n\t\t\tvar that = this;\r\n\t\t\tvar stopNum = idx + 1;\r\n\t\t\tvar options = {\r\n\t\t\t\tcloseButton: 'true',\r\n\t\t\t\ttimeOut: 0,\r\n\t\t\t\textendedTimeOut: 0,\r\n\t\t\t\tpreventDuplicates: true\r\n\t\t\t};\r\n\t\t\tvar deleteWarning =\r\n\t\t\t\t'Are you sure you wish to delete stop #' + stopNum + ' ?';\r\n\t\t\tvar deleteButton =\r\n\t\t\t\t\"Cancel\";\r\n\t\t\ttoastr.options.deleteStop = _deleteStop;\r\n\t\t\ttoastr.warning(deleteButton, deleteWarning, options, idx);\r\n\r\n\t\t\tfunction _deleteStop() {\r\n\t\t\t\tvm.summary.intermediateStops.splice(idx, 1);\r\n\t\t\t\treturn dataService.saveOrder(summaryModel).then(function() {\r\n\t\t\t\t\ttoastr.clear();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction openModal() {\r\n\t\t\tvar overlay =\r\n\t\t\t\t\"\";\r\n\t\t\tangular.element(document.body).append(overlay);\r\n\t\t}\r\n\r\n\t\tfunction closeModal() {\r\n\t\t\tvm.submitOverlay = false;\r\n\t\t}\r\n\r\n\t\tfunction edit(reference) {\r\n\t\t\tswitch (reference) {\r\n\t\t\t\tcase 'shipper':\r\n\t\t\t\t\t$state.go('layout.shipper-billto.createOrder');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'billto':\r\n\t\t\t\t\t$state.go('layout.shipper-billto.billtoinfo');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'load-time':\r\n\t\t\t\t\t$state.go('layout.loadat.loaddetails');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'load-ref':\r\n\t\t\t\t\t$state.go('layout.loadat.shipmentref');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'load-loc':\r\n\t\t\t\t\t$state.go('layout.loadat.locationinfo');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'load-sum':\r\n\t\t\t\t\t$state.go('layout.loadat.loaddetails');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'load-spec':\r\n\t\t\t\t\t$state.go('layout.loadat.specialhandling');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'con-time':\r\n\t\t\t\t\t$state.go('layout.consignee.loaddetails');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'con-info':\r\n\t\t\t\t\t$state.go('layout.consignee.loaddetails');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'con-ref':\r\n\t\t\t\t\t$state.go('layout.consignee.shipmentref');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'con-loc':\r\n\t\t\t\t\t$state.go('layout.consignee.locationinfo');\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction editStop(reference, idx) {\r\n\t\t\tsummaryModel.currentStop = summaryModel.intermediateStops[idx];\r\n\t\t\tswitch (reference) {\r\n\t\t\t\tcase 'time':\r\n\t\t\t\t\t$state.go('layout.intermediate.loaddetails');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'ref':\r\n\t\t\t\t\t$state.go('layout.intermediate.shipmentref');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'loc':\r\n\t\t\t\t\t$state.go('layout.intermediate.locationinfo');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'info':\r\n\t\t\t\t\t$state.go('layout.intermediate.loaddetails');\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'spec':\r\n\t\t\t\t\t$state.go('layout.intermediate.specialhandling');\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction bindContinueEvent() {\r\n\t\t\t$scope.$onRootScope('continue-event', function() {\r\n\t\t\t\tsubmitOrder();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction GenOrderObject(ignoredCapacity) {\r\n\t\t\tvar references = new ReferenceBuilder();\r\n\t\t\tvar specialHandling = new GenSpecialHandling();\r\n\t\t\tvar order = {\r\n\t\t\t\tid: summaryModel.orderId,\r\n\t\t\t\torderName: summaryModel.orderName,\r\n\t\t\t\tvalidated: summaryModel.validated,\r\n\t\t\t\tshipper: summaryModel.Shipper,\r\n\t\t\t\tbillTo: summaryModel.BillTo,\r\n\t\t\t\tloadAt: summaryModel.LoadAt,\r\n\t\t\t\tintermediateStops: summaryModel.intermediateStops,\r\n\t\t\t\treferences: references,\r\n\t\t\t\tconsignee: summaryModel.Consignee,\r\n\t\t\t\tspecialHandling: specialHandling,\r\n\t\t\t\tignoredCapacity: ignoredCapacity\r\n\t\t\t};\r\n\t\t\treturn order;\r\n\t\t}\r\n\r\n\t\tfunction GenSpecialHandling() {\r\n\t\t\tvar handling =\r\n\t\t\t\tsummaryModel.LoadAt.saveLoadAtSpecialHandling.specialHandling;\r\n\t\t\tvar specialHandlingSubmission = {\r\n\t\t\t\thasHazmat: false,\r\n\t\t\t\thasHighValue: false,\r\n\t\t\t\thasJit: false,\r\n\t\t\t\thandlingItems: []\r\n\t\t\t};\r\n\t\t\tif (handling.doesShipmentRequireSpecialHandling === 'yes') {\r\n\t\t\t\tvar items = handling.items;\r\n\t\t\t\tfor (var i = 0; i < items.length; i++) {\r\n\t\t\t\t\tspecialHandlingSubmission = processSpecialHandlingItem(\r\n\t\t\t\t\t\titems[i],\r\n\t\t\t\t\t\tspecialHandlingSubmission\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn specialHandlingSubmission;\r\n\r\n\t\t\tfunction processSpecialHandlingItem(item, specialHandlingObject) {\r\n\t\t\t\tswitch (item.itemType) {\r\n\t\t\t\t\tcase 'hazmat':\r\n\t\t\t\t\t\tif (item.hazmatDescription) {\r\n\t\t\t\t\t\t\tspecialHandlingObject.handlingItems.push(\r\n\t\t\t\t\t\t\t\titem.hazmatDescription +\r\n\t\t\t\t\t\t\t\t\t' - ' +\r\n\t\t\t\t\t\t\t\t\titem.hazmatWeight +\r\n\t\t\t\t\t\t\t\t\t' lbs'\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tspecialHandlingObject.handlingItems.push(\r\n\t\t\t\t\t\t\t\t'Contact Name: ' +\r\n\t\t\t\t\t\t\t\t\titem.hazmatEmergencyContactName\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tspecialHandlingObject.handlingItems.push(\r\n\t\t\t\t\t\t\t\t'Contact Number: ' +\r\n\t\t\t\t\t\t\t\t\titem.hazmatEmergencyContactNumber\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tspecialHandlingObject.hasHazmat = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'highvalue':\r\n\t\t\t\t\t\tspecialHandlingObject.handlingItems.push(\r\n\t\t\t\t\t\t\t'Approx Value: ' + item.highValueApproxValue\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tspecialHandlingObject.hasHighValue = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase 'jit':\r\n\t\t\t\t\t\tspecialHandlingObject.hasJit = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\treturn specialHandlingObject;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction ReferenceBuilder() {\r\n\t\t\tvar that = summaryModel;\r\n\t\t\tvar references = [];\r\n\t\t\tvar loadAtStopNum = 1;\r\n\t\t\tvar consigneeStopNum = 90;\r\n\t\t\tvar ordId = summaryModel.orderId;\r\n\t\t\tvar q = {\r\n\t\t\t\tbillOfLading: 'BO',\r\n\t\t\t\tpurchaseOrder: 'PO',\r\n\t\t\t\tdelivery: 'DE',\r\n\t\t\t\tpickupNum: 'PU',\r\n\t\t\t\treference: 'RF',\r\n\t\t\t\thazmat: 'HZ'\r\n\t\t\t};\r\n\t\t\tvar count = 1;\r\n\t\t\tif (\r\n\t\t\t\tthat.LoadAt.saveLoadAtShipmentRef.referenceNumberList.length > 0\r\n\t\t\t)\r\n\t\t\t\tthat.LoadAt.saveLoadAtShipmentRef.referenceNumberList.map(\r\n\t\t\t\t\tfunction(ref) {\r\n\t\t\t\t\t\treferences.push(\r\n\t\t\t\t\t\t\tnew Reference(\r\n\t\t\t\t\t\t\t\tordId,\r\n\t\t\t\t\t\t\t\tloadAtStopNum,\r\n\t\t\t\t\t\t\t\tcount++,\r\n\t\t\t\t\t\t\t\tref.text,\r\n\t\t\t\t\t\t\t\tq.reference\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\tif (that.LoadAt.saveLoadAtShipmentRef.billOfLadingList.length > 0)\r\n\t\t\t\tthat.LoadAt.saveLoadAtShipmentRef.billOfLadingList.map(function(\r\n\t\t\t\t\tref\r\n\t\t\t\t) {\r\n\t\t\t\t\treferences.push(\r\n\t\t\t\t\t\tnew Reference(\r\n\t\t\t\t\t\t\tordId,\r\n\t\t\t\t\t\t\tloadAtStopNum,\r\n\t\t\t\t\t\t\tcount++,\r\n\t\t\t\t\t\t\tref.text,\r\n\t\t\t\t\t\t\tq.billOfLading\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\tif (that.LoadAt.saveLoadAtShipmentRef.purchaseOrderList.length > 0)\r\n\t\t\t\tthat.LoadAt.saveLoadAtShipmentRef.purchaseOrderList.map(\r\n\t\t\t\t\tfunction(ref) {\r\n\t\t\t\t\t\treferences.push(\r\n\t\t\t\t\t\t\tnew Reference(\r\n\t\t\t\t\t\t\t\tordId,\r\n\t\t\t\t\t\t\t\tloadAtStopNum,\r\n\t\t\t\t\t\t\t\tcount++,\r\n\t\t\t\t\t\t\t\tref.text,\r\n\t\t\t\t\t\t\t\tq.purchaseOrder\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\tif (\r\n\t\t\t\tthat.LoadAt.saveLoadAtShipmentRef.loadAtNumberList &&\r\n\t\t\t\tthat.LoadAt.saveLoadAtShipmentRef.loadAtNumberList.length > 0\r\n\t\t\t)\r\n\t\t\t\tthat.LoadAt.saveLoadAtShipmentRef.loadAtNumberList.map(function(\r\n\t\t\t\t\tref\r\n\t\t\t\t) {\r\n\t\t\t\t\treferences.push(\r\n\t\t\t\t\t\tnew Reference(\r\n\t\t\t\t\t\t\tordId,\r\n\t\t\t\t\t\t\tloadAtStopNum,\r\n\t\t\t\t\t\t\tcount++,\r\n\t\t\t\t\t\t\tref.text,\r\n\t\t\t\t\t\t\tq.pickupNum\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\tif (\r\n\t\t\t\tthat.Consignee.saveConsigneeShipmentRef.consigneeNumberList &&\r\n\t\t\t\tthat.Consignee.saveConsigneeShipmentRef.consigneeNumberList\r\n\t\t\t\t\t.length > 0\r\n\t\t\t)\r\n\t\t\t\tthat.Consignee.saveConsigneeShipmentRef.consigneeNumberList.map(\r\n\t\t\t\t\tfunction(ref) {\r\n\t\t\t\t\t\treferences.push(\r\n\t\t\t\t\t\t\tnew Reference(\r\n\t\t\t\t\t\t\t\tordId,\r\n\t\t\t\t\t\t\t\tconsigneeStopNum,\r\n\t\t\t\t\t\t\t\tcount++,\r\n\t\t\t\t\t\t\t\tref.text,\r\n\t\t\t\t\t\t\t\tq.delivery\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\tvar stopNum = 2;\r\n\t\t\tfor (var i = 0; i < that.intermediateStops.length; i++) {\r\n\t\t\t\tvar stop = that.intermediateStops[i];\r\n\t\t\t\tvar stopType =\r\n\t\t\t\t\tthat.intermediateStops[i].saveStopLoadDetails.loadDetails\r\n\t\t\t\t\t\t.stopType;\r\n\t\t\t\tvar qualifier = q.pickupNum;\r\n\t\t\t\tif (stopType === 'D') qualifier = q.delivery;\r\n\t\t\t\tif (\r\n\t\t\t\t\tstop.saveStopShipmentReference.stopNumberList &&\r\n\t\t\t\t\tstop.saveStopShipmentReference.stopNumberList.length > 0\r\n\t\t\t\t)\r\n\t\t\t\t\tstop.saveStopShipmentReference.stopNumberList.map(function(\r\n\t\t\t\t\t\tref\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\treferences.push(\r\n\t\t\t\t\t\t\tnew Reference(\r\n\t\t\t\t\t\t\t\tordId,\r\n\t\t\t\t\t\t\t\tstopNum,\r\n\t\t\t\t\t\t\t\tcount++,\r\n\t\t\t\t\t\t\t\tref.text,\r\n\t\t\t\t\t\t\t\tqualifier\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t});\r\n\t\t\t\tstopNum++;\r\n\t\t\t}\r\n\r\n\t\t\treturn references;\r\n\t\t}\r\n\r\n\t\tfunction Reference(ordId, stopNum, key, ref, qual, wght, pcs) {\r\n\t\t\treturn {\r\n\t\t\t\torderNumber: ordId,\r\n\t\t\t\tstopNumber: stopNum,\r\n\t\t\t\tkeySequence: key,\r\n\t\t\t\treferenceNumber: ref,\r\n\t\t\t\tqualifier: qual,\r\n\t\t\t\tweight: wght,\r\n\t\t\t\tpieces: pcs\r\n\t\t\t};\r\n\t\t}\r\n\t}\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('ShipmentRefController', ['$scope', '$state', '$log', 'dataService', 'summaryModel', ShipmentRefController]);\r\n\r\n function ShipmentRefController($scope, $state, $log, dataService, summaryModel) {\r\n var vm = this;\r\n vm.step = $state.params.step;\r\n vm.summary = summaryModel;\r\n setForm();\r\n\r\n activate();\r\n\r\n function activate() {\r\n bindContinueEvent();\r\n }\r\n\r\n function setForm() {\r\n vm.form = summaryModel.shipmentRef;\r\n if(vm.step === 9)\r\n vm.stopNumberList = summaryModel.currentStop.saveStopShipmentReference.stopNumberList;\r\n for (var i = 0; i < summaryModel.intermediateStops.length; i++) {\r\n if (summaryModel.intermediateStops[i].id === summaryModel.currentStop.id) {\r\n summaryModel.intermediateStops[i] = summaryModel.currentStop;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n function validationSwitch() {\r\n var reference;\r\n switch (vm.step) {\r\n case 9:\r\n reference = summaryModel.currentStop.saveStopShipmentReference.stopNumberList;\r\n break;\r\n case 13:\r\n reference = vm.form.consigneeNumberList;\r\n break;\r\n default:\r\n reference = vm.form.loadAtNumberList;\r\n break;\r\n }\r\n return reference;\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n vm.form.pickUpNumberList = validationSwitch();\r\n return dataService.saveWorkInProgress({ shipmentRef: vm.form }, '/shipment-reference')\r\n .then(function () {\r\n summaryModel.SetStep($state.params.step);\r\n vm.form.pickUpNumberList = [];\r\n return dataService.saveOrder(summaryModel)\r\n .then(function () {\r\n summaryModel.proceed(href);\r\n });\r\n });\r\n });\r\n }\r\n };\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('SpecialHandlingController', ['$scope', '$state', '$log', 'dataService', 'summaryModel', '$q', specialHandlingController]);\r\n\r\n function specialHandlingController($scope, $state, $log, dataService, summaryModel, $q) {\r\n var vm = this;\r\n vm.hazmatItems = []; \r\n vm.form = summaryModel.LoadAt.saveLoadAtSpecialHandling;\r\n vm.setSpecialHandling = setSpecialHandling;\r\n vm.removeItem = removeItem;\r\n vm.addItem = addItem;\r\n vm.setHazmatDescription = setHazmatDescription;\r\n vm.specialOptions = summaryModel.specialOptions.options;\r\n vm.containsItem = summaryModel.containsItem;\r\n vm.clearHazmat = clearHazmat;\r\n\r\n var extraModels = summaryModel.ExtraModels();\r\n\r\n activate();\r\n\r\n function activate() {\r\n bindContinueEvent();\r\n $log.info('form: ',vm.form);\r\n if (vm.form.specialHandling.items.length < 1)\r\n addItem(); \r\n return dataService.getHazmatItems()\r\n .then(function (data) {\r\n vm.hazmatItems = data;\r\n });\r\n }\r\n\r\n function clearHazmat(hazmatItem) {\r\n console.log(hazmatItem);\r\n if (hazmatItem.hazmatDescription)\r\n hazmatItem.hazmatDescription = \"\";\r\n }\r\n\r\n function setHazmatDescription(selection, item) {\r\n item.hazmatDescription = selection.title;\r\n }\r\n\r\n function setSpecialHandling(val) {\r\n vm.form.specialHandling.doesShipmentRequireSpecialHandling = val;\r\n if (val == 'no')\r\n $q.when(removeItems()).then(addItem());\r\n \r\n }\r\n\r\n function addItem() {\r\n vm.form.specialHandling.items.push(extraModels.specialHandlingItem());\r\n }\r\n\r\n function removeItems() {\r\n while (vm.form.specialHandling.items.length > 0)\r\n vm.form.specialHandling.items.splice(0, 1);\r\n }\r\n\r\n function removeItem(idx) {\r\n if (vm.form.specialHandling.items.length > 1)\r\n vm.form.specialHandling.items.splice(idx, 1);\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n return dataService.saveWorkInProgress(vm.form, '/special-handling')\r\n .then(function () {\r\n summaryModel.SetStep($state.params.step, $state.params.processStep + 1);\r\n return dataService.saveOrder(summaryModel).then(function () {\r\n summaryModel.proceed(href);\r\n });\r\n });\r\n });\r\n }\r\n };\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('SummaryController', ['$stateParams', 'summaryModel', '$rootScope', summaryController]);\r\n\r\n function summaryController($stateParams, summaryModel) {\r\n var vm = this;\r\n vm.equals = angular.equals;\r\n vm.summaryModel = summaryModel;\r\n vm.summary = $stateParams.summary;\r\n vm.shipmentRefs = summaryModel.shipmentRef;\r\n\t\tvm.isStopActive = false;\r\n\t\tvm.openSummary = openSummary;\r\n\r\n\t\tactive();\r\n\r\n\t\tfunction openSummary(summary) {\r\n\t\t\tsummary.isStopActive = !summary.isStopActive;\r\n\t\t}\r\n\r\n\t\tfunction active() {\r\n\t\t\tif (vm.summary.length > 0) {\r\n\t\t\t\tfor (var i = 0; i < vm.summary.length; i++) {\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar summary = vm.summary[i];\r\n\t\t\t\t\tsummary.isStopActive = false;\r\n\r\n\t\t\t\t\tif (summary.id === vm.summaryModel.currentStop.id) {\r\n\t\t\t\t\t\tsummary.isStopActive = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t};\r\n})();\r\n\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('ConsigneeLoadDetailsController', ['$scope', '$rootScope', '$state', '$log', 'dataService', 'summaryModel', cosigneeLoadDetailsController]);\r\n\r\n function cosigneeLoadDetailsController($scope, $rootScope, $state, $log, dataService, summaryModel) {\r\n var vm = this;\r\n\r\n vm.btnDeliveryTypeClick = btnDeliveryTypeClick;\r\n vm.form = summaryModel.Consignee.saveConsigneeLoadDetails;\r\n vm.convertTime = summaryModel.convertTime;\r\n activate();\r\n\r\n function activate() {\r\n bindContinueEvent();\r\n }\r\n\r\n function btnDeliveryTypeClick(val) {\r\n vm.form.deliveryType = val;\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n var payload = vm.form;\r\n if (summaryModel.intermediateStops.length < 1) {\r\n payload.previousDate = summaryModel.LoadAt.saveLoadAtLoadDetails.pickupDate;\r\n }\r\n else {\r\n var idx = summaryModel.intermediateStops.length - 1;\r\n payload.previousDate = summaryModel.intermediateStops[idx].saveStopLoadDetails.loadDetails.pickupDate;\r\n }\r\n return dataService.saveWorkInProgress(payload, '/consignee/load-details')\r\n .then(function () {\r\n summaryModel.SetStep($state.params.step, $state.params.processStep + 1);\r\n return dataService.saveOrder(summaryModel)\r\n\t\t\t\t .then(function () {\r\n\t\t\t\t summaryModel.proceed(href);\r\n\t\t\t\t });\r\n });\r\n });\r\n }\r\n };\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('ConsigneeLocationController', ['$scope', '$rootScope', '$state', '$log', 'dataService', 'controllerLogic', 'summaryModel', 'states', '$timeout', cosigneeLocationController]);\r\n\r\n function cosigneeLocationController($scope, $rootScope, $state, $log, dataService, controllerLogic, summaryModel, states, $timeout) {\r\n var vm = this;\r\n vm.customers = [];\r\n vm.active = false;\r\n\r\n vm.form = summaryModel.Consignee.saveConsigneeLocationInfo;\r\n vm.selectedCustomer = vm.form.customerInfo;\r\n vm.manualEntry = vm.form.customerContactInfo.manualEntry;\r\n\r\n vm.states = states;\r\n\r\n vm.populateSelected = populateSelected;\r\n vm.populateCities = populateCities;\r\n vm.toggleManualEntry = toggleManualEntry;\r\n vm.setCity = setCity;\r\n\r\n activate();\r\n\r\n function activate() {\r\n syncStates();\r\n bindContinueEvent();\r\n return loadCustomers()\r\n .finally(function () {\r\n if (vm.manualEntry)\r\n populateCities();\r\n vm.active = true;\r\n });\r\n }\r\n\r\n function setCity() {\r\n controllerLogic.setCity(vm.form.customerInfo, vm.selectedCity);\r\n }\r\n\r\n function populateCities(stateSelected) {\r\n return controllerLogic.populateCities(stateSelected, vm.form.customerInfo)\r\n .then(function (availableCities) {\r\n vm.availableCities = availableCities;\r\n for (var i = 0; i < vm.availableCities.length; i++) {\r\n var city = vm.availableCities[i];\r\n if (city.name == vm.form.customerInfo.city) {\r\n vm.selectedCity = city;\r\n break;\r\n }\r\n }\r\n if (!vm.selectedCity)\r\n vm.selectedCity = vm.availableCities[0];\r\n setCity();\r\n });\r\n }\r\n\r\n function toggleManualEntry() {\r\n vm.manualEntry = controllerLogic.toggleManualEntry(vm.form, vm.oldCode, vm.manualEntry);\r\n if (vm.manualEntry)\r\n populateCities(vm.selectedState);\r\n }\r\n\r\n function populateSelected() {\r\n syncStates();\r\n controllerLogic.populateSelected(vm.selectedCustomer, vm.form.customerInfo);\r\n }\r\n\r\n function syncStates() {\r\n for (var x = 0; x < vm.states.length; x++)\r\n if (vm.states[x].abbreviation === vm.selectedCustomer.stateCode) {\r\n vm.selectedState = vm.states[x];\r\n vm.form.customerInfo.selectedState = vm.selectedState;\r\n }\r\n }\r\n \r\n function loadCustomers() {\r\n return dataService.getAvailableConsignees(summaryModel.Shipper.saveShipperInfo.customerInfo.customerCode)\r\n .then(function (data) {\r\n vm.customers = data;\r\n if (vm.customers.length < 1) {\r\n $timeout(function () {\r\n return dataService.getAvailableConsignees(summaryModel.Shipper.saveShipperInfo.customerInfo.customerCode)\r\n .then(function (data) {\r\n vm.customers = data;\r\n if (vm.customers.length === 0)\r\n toggleManualEntry();\r\n return vm.customers;\r\n })\r\n }, 500)\r\n }\r\n return vm.customers;\r\n });\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n console.log(href)\r\n return dataService.saveWorkInProgress(vm.form, '/location-info')\r\n .then(function () {\r\n summaryModel.SetStep($state.params.step);\r\n summaryModel.proceed(href);\r\n });\r\n });\r\n }\r\n };\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('AdditionalStopsController', ['$scope', '$state', '$log', 'dataService', 'summaryModel', additionalStopsController]);\r\n\r\n function additionalStopsController($scope, $state, $log, dataService, summaryModel) {\r\n var vm = this;\r\n vm.customers = [];\r\n vm.selectedCustomer = {};\r\n vm.addStop = addStop;\r\n vm.addNewStop = $state.params.addStop || false;\r\n\r\n activate();\r\n\r\n function activate() {\r\n bindContinueEvent();\r\n console.log(vm.addNewStop, $state.params.addStop);\r\n if(vm.addNewStop)\r\n addStop(true);\r\n }\r\n\r\n function addStop(bool) {\r\n vm.additionalStop = bool;\r\n $scope.$emit('continue-event');\r\n }\r\n\r\n function save(href) {\r\n var request = {};\r\n return dataService.saveWorkInProgress({}, '/stop/additional')\r\n .then(function (response) {\r\n $state.params.stopId = response.stopId;\r\n if (vm.additionalStop) {\r\n summaryModel.intermediateStops.push(summaryModel.Intermediate());\r\n summaryModel.currentStop = summaryModel.intermediateStops[summaryModel.intermediateStops.length - 1];\r\n return dataService.saveOrder(summaryModel)\r\n .then(function () {\r\n summaryModel.proceed(href);\r\n });\r\n } else {\r\n summaryModel.SetStep(11, $state.params.processStep + 1);\r\n return dataService.saveOrder(summaryModel).then(function () {\r\n $state.go('layout.consignee.locationinfo');\r\n });\r\n }\r\n });\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n save(href);\r\n });\r\n }\r\n };\r\n})();\n(function () {\r\n 'use strict';\r\n angular\r\n .module('app.orders')\r\n .controller('StopsLoadDetailsController', ['$scope', '$state', '$log', 'dataService', 'summaryModel', stopsLoadDetailsController]);\r\n\r\n function stopsLoadDetailsController($scope, $state, $log, dataService, summaryModel) {\r\n var vm = this;\r\n vm.convertTime = summaryModel.convertTime;\r\n vm.clearWeightPieces = clearWeightPieces;\r\n \r\n setForm();\r\n activate();\r\n\r\n function activate() {\r\n bindContinueEvent();\r\n }\r\n\r\n function setForm() {\r\n vm.form = summaryModel.currentStop.saveStopLoadDetails.loadDetails;\r\n }\r\n\r\n \r\n function clearWeightPieces() {\r\n vm.form.totalWeight = null;\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n var payload = summaryModel.currentStop.saveStopLoadDetails;\r\n var idx = summaryModel.intermediateStops.indexOf(summaryModel.currentStop);\r\n if(summaryModel.intermediateStops.length <= 1 || idx == 0){\r\n payload.loadDetails.previousDate = summaryModel.LoadAt.saveLoadAtLoadDetails.pickupDate;\r\n }\r\n else {\r\n payload.loadDetails.previousDate = summaryModel.intermediateStops[idx - 1].saveStopLoadDetails.loadDetails.pickupDate;\r\n }\r\n return dataService.saveWorkInProgress(payload, '/stop/load-details').then(function (response) {\r\n summaryModel.SetStep($state.params.step);\r\n return dataService.saveOrder(summaryModel).then(function () {\r\n summaryModel.proceed(href);\r\n });\r\n });\r\n\r\n });\r\n }\r\n };\r\n})();\n(function () {\r\n\t'use strict';\r\n\r\n\tangular\r\n\t\t.module('app.orders')\r\n\t\t.controller('StopsLocationInfoController', ['$scope', '$state', '$log', 'dataService', 'summaryModel', 'controllerLogic', 'states', '$timeout', stopsLocationInfoController]);\r\n\r\n\tfunction stopsLocationInfoController($scope, $state, $log, dataService, summaryModel, controllerLogic, states, $timeout) {\r\n\t\t//TODO: refactor to use multiple intermediates\r\n\t\tvar vm = this;\r\n\t\tvm.active = false;\r\n\r\n\t\tvm.customers = [];\r\n\t\tsetForm();\r\n\t\tvm.selectedCustomer = vm.form.customerInfo;\r\n\t\tvm.states = states;\r\n\r\n\t\tvm.stopId = $state.params.stopId;\r\n\r\n\t\tvm.populateSelected = populateSelected;\r\n\t\tvm.populateCities = populateCities;\r\n\t\tvm.toggleManualEntry = toggleManualEntry;\r\n\t\tvm.loadCustomers = loadCustomers;\r\n\t\tvm.setCity = setCity;\r\n\r\n\t\tactivate();\r\n\t\t \r\n\t\tfunction activate() {\r\n\t\t\tsyncStates();\r\n\t\t\tbindContinueEvent();\r\n\t\t\treturn loadCustomers()\r\n\t\t\t\t.finally(function () {\r\n\t\t\t\t\tif (vm.manualEntry)\r\n\t\t\t\t\t\tpopulateCities();\r\n\t\t\t\t\tvm.active = true;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction setCity() {\r\n\t\t\tcontrollerLogic.setCity(vm.form.customerInfo, vm.selectedCity);\r\n\t\t}\r\n\r\n\t\tfunction populateCities(stateSelected) {\r\n\t\t\treturn controllerLogic.populateCities(stateSelected, vm.form.customerInfo)\r\n\t\t\t\t.then(function (availableCities) {\r\n\t\t\t\t\tvm.availableCities = availableCities;\r\n\t\t\t\t\tfor (var i = 0; i < vm.availableCities.length; i++) {\r\n\t\t\t\t\t\tvar city = vm.availableCities[i];\r\n\t\t\t\t\t\tif (city.name == vm.form.customerInfo.city) {\r\n\t\t\t\t\t\t\tvm.selectedCity = city;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!vm.selectedCity)\r\n\t\t\t\t\t\tvm.selectedCity = vm.availableCities[0];\r\n\t\t\t\t\tsetCity();\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction loadCustomers() {\r\n\t\t\treturn dataService.getAvailableIntermediate(summaryModel.Shipper.saveShipperInfo.customerInfo.customerCode)\r\n\t\t\t\t.then(function (data) {\r\n\t\t\t\t\tvm.customers = data;\r\n\t\t\t\t\tif (vm.customers.length < 1) {\r\n\t\t\t\t\t\t$timeout(function () {\r\n\t\t\t\t\t\t\treturn dataService.getAvailableIntermediate(summaryModel.Shipper.saveShipperInfo.customerInfo.customerCode)\r\n\t\t\t\t\t\t\t\t.then(function (data) {\r\n\t\t\t\t\t\t\t\t\tvm.customers = data;\r\n\t\t\t\t\t\t\t\t\tif (vm.customers.length === 0)\r\n\t\t\t\t\t\t\t\t\t\ttoggleManualEntry();\r\n\t\t\t\t\t\t\t\t\treturn vm.customers;\r\n\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t}, 500)\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn vm.customers;\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction toggleManualEntry() {\r\n\t\t\tvm.manualEntry = controllerLogic.toggleManualEntry(vm.form, vm.oldCode, vm.manualEntry);\r\n\t\t\tif (vm.manualEntry)\r\n\t\t\t\tpopulateCities(vm.selectedState);\r\n\t\t}\r\n\r\n\t\tfunction populateSelected() {\r\n\t\t\tsyncStates();\r\n\t\t\tcontrollerLogic.populateSelected(vm.selectedCustomer, vm.form.customerInfo);\r\n\t\t}\r\n\r\n\t\tfunction syncStates() {\r\n\t\t\tfor (var x = 0; x < vm.states.length; x++)\r\n\t\t\t\tif (vm.states[x].abbreviation === vm.selectedCustomer.stateCode) {\r\n\t\t\t\t\tvm.selectedState = vm.states[x];\r\n\t\t\t\t\tvm.form.customerInfo.selectedState = vm.selectedState;\r\n\t\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction setForm() {\r\n\t\t\tvm.form = summaryModel.currentStop.saveStopLocationInfo;\r\n\t\t\tvm.manualEntry = vm.form.customerContactInfo.manualEntry;\r\n\t\t}\r\n\r\n\r\n\t\tfunction bindContinueEvent() {\r\n\t\t\t$scope.$onRootScope('continue-event', function (event, href) {\r\n\t\t\t\treturn dataService.saveWorkInProgress(vm.form, '/location-info').then(function (response) {\r\n\t\t\t\t\tsummaryModel.SetStep($state.params.step);\r\n\t\t\t\t\treturn dataService.saveOrder(summaryModel).then(function () {\r\n\t\t\t\t\t\tsummaryModel.proceed(href);\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t \r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('LoadAtLoadDetailsController', ['$scope', '$state', '$log', 'dataService', 'summaryModel', 'controllerLogic','$window', loadAtLoadDetailsController]);\r\n\r\n function loadAtLoadDetailsController($scope, $state, $log, dataService, summaryModel, controllerLogic, $window) {\r\n var vm = this;\r\n vm.form = summaryModel.LoadAt.saveLoadAtLoadDetails;\r\n\r\n vm.loadTypeClick = loadTypeClick;\r\n vm.liveLoadClick = liveLoadClick;\r\n vm.convertTime = summaryModel.convertTime;\r\n vm.completeLoadAt = completeLoadAt;\r\n\r\n vm.altDate = new Date();\r\n vm.hasCapacity = true;\r\n\r\n vm.switchLoadAtDate = switchLoadAtDate;\r\n vm.saveAndQuit = saveAndQuit;\r\n\r\n activate();\r\n\r\n function activate() {\r\n bindContinueEvent();\r\n }\r\n\r\n function switchLoadAtDate(){\r\n summaryModel.LoadAt.saveLoadAtLoadDetails.pickupDate = vm.altDate;\r\n vm.hasCapacity = true;\r\n }\r\n\r\n function saveAndQuit(){\r\n summaryModel.validated = false;\r\n\t return dataService.saveOrder(summaryModel)\r\n .then(function () {\r\n $state.go(\"myorders\");\r\n });\r\n }\r\n\r\n function loadTypeClick(loadType) {\r\n vm.form.loadType = loadType;\r\n if (loadType == 'refrigerated')\r\n vm.form.equipmentType = \"RF\";\r\n else {\r\n vm.form.equipmentType = \"\";\r\n }\r\n }\r\n \r\n function liveLoadClick(item) {\r\n vm.form.trailerNumber = null;\r\n vm.form.freightLoading = item;\r\n }\r\n\r\n function completeLoadAt(){\r\n summaryModel.SetStep($state.params.step);\r\n return dataService.saveOrder(summaryModel)\r\n .then(function () {\r\n summaryModel.proceed(vm.continueHref);\r\n });\r\n }\r\n\r\n function checkCapacity(href) {\r\n var capacityReq = controllerLogic.capacity(summaryModel);\r\n vm.continueHref = href;\r\n return dataService.capacityCheck(capacityReq)\r\n .then(function (response) {\r\n if (response.result) {\r\n completeLoadAt();\r\n } \r\n if(!response.result) {\r\n vm.hasCapacity = response.result;\r\n vm.contactEmail = response.email;\r\n var altDate = response.altDate,\r\n year = altDate.substring(0,4),\r\n month = altDate.substring(4,6),\r\n day = altDate.substring(6,8);\r\n var stringDate = month + '/' + day + '/' + year;\r\n vm.altDate = new Date(Date.parse(stringDate));\r\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n };\r\n });\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n return dataService.saveWorkInProgress(vm.form, '/loadat/load-details')\r\n .then(function () {\r\n checkCapacity(href);\r\n });\r\n });\r\n }\r\n };\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('LoadAtLocationController', ['$scope', '$rootScope', '$state', '$log', 'dataService', 'summaryModel', 'states', 'controllerLogic', '$timeout', loadAtLocationController]);\r\n\r\n function loadAtLocationController($scope, $rootScope, $state, $log, dataService, summaryModel, states, controllerLogic, $timeout) {\r\n var vm = this;\r\n vm.active = false;\r\n\r\n vm.customers = [];\r\n vm.form = summaryModel.LoadAt.saveLoadAtLocationinfo;\r\n vm.selectedCustomer = vm.form.customerInfo;\r\n vm.manualEntry = vm.form.customerContactInfo.manualEntry;\r\n\r\n vm.populateSelected = populateSelected;\r\n\r\n vm.states = states;\r\n vm.setCity = setCity;\r\n vm.populateCities = populateCities;\r\n vm.toggleManualEntry = toggleManualEntry;\r\n\r\n activate();\r\n\r\n function activate() {\r\n syncStates();\r\n bindContinueEvent();\r\n return loadCustomers()\r\n .finally(function () {\r\n if (vm.manualEntry) {\r\n populateCities(vm.selectedState);\r\n }\r\n vm.active = true;\r\n });\r\n }\r\n\r\n function populateCities(stateSelected) {\r\n return controllerLogic.populateCities(stateSelected, vm.form.customerInfo)\r\n .then(function (availableCities) {\r\n vm.availableCities = availableCities;\r\n for (var i = 0; i < vm.availableCities.length; i++) {\r\n var city = vm.availableCities[i];\r\n if (city.name == vm.form.customerInfo.city) {\r\n vm.selectedCity = city;\r\n break;\r\n }\r\n }\r\n if (!vm.selectedCity)\r\n vm.selectedCity = vm.availableCities[0];\r\n setCity();\r\n });\r\n }\r\n\r\n function setCity() {\r\n controllerLogic.setCity(vm.form.customerInfo, vm.selectedCity);\r\n }\r\n\r\n function toggleManualEntry() {\r\n vm.manualEntry = controllerLogic.toggleManualEntry(vm.form, vm.oldCode, vm.manualEntry);\r\n if (vm.manualEntry)\r\n populateCities(vm.selectedState);\r\n }\r\n\r\n function populateSelected() {\r\n syncStates();\r\n controllerLogic.populateSelected(vm.selectedCustomer, vm.form.customerInfo);\r\n }\r\n\r\n function syncStates() {\r\n for (var x = 0; x < vm.states.length; x++)\r\n if (vm.states[x].abbreviation === vm.selectedCustomer.stateCode) {\r\n vm.selectedState = vm.states[x];\r\n vm.form.customerInfo.selectedState = vm.selectedState;\r\n }\r\n }\r\n\r\n function loadCustomers() {\r\n return dataService.getAvailableLoadAt(summaryModel.Shipper.saveShipperInfo.customerInfo.customerCode)\r\n .then(function (data) {\r\n vm.customers = data;\r\n if (vm.customers.length < 1) {\r\n $timeout(function () {\r\n return dataService.getAvailableLoadAt(summaryModel.Shipper.saveShipperInfo.customerInfo.customerCode)\r\n .then(function (data) {\r\n vm.customers = data;\r\n if (vm.customers.length === 0)\r\n toggleManualEntry();\r\n return vm.customers;\r\n })\r\n }, 500)\r\n }\r\n return vm.customers;\r\n });\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n return dataService.saveWorkInProgress(vm.form, '/location-info')\r\n .then(function () {\r\n summaryModel.SetStep($state.params.step);\r\n return dataService.saveOrder(summaryModel).then(function () {\r\n summaryModel.proceed(href);\r\n });\r\n });\r\n });\r\n }\r\n };\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('BillToInfoController', ['$scope', '$rootScope', '$state', '$log', 'dataService', 'summaryModel', 'states', 'controllerLogic', '$timeout', billToInfoController]);\r\n\r\n function billToInfoController($scope, $rootScope, $state, $log, dataService, summaryModel, states, controllerLogic, $timeout) {\r\n var vm = this;\r\n vm.active = false;\r\n\r\n vm.customers = [];\r\n vm.form = summaryModel.BillTo.saveBillTo;\r\n vm.manualEntry = vm.form.customerContactInfo.manualEntry;\r\n\r\n vm.selectedCustomer = vm.form.customerInfo;\r\n \r\n\r\n vm.states = states;\r\n\r\n vm.toggleManualEntry = toggleManualEntry;\r\n vm.populateCities = populateCities;\r\n vm.populateSelected = populateSelected;\r\n vm.setCity = setCity;\r\n\r\n activate();\r\n\r\n function activate() {\r\n syncStates();\r\n bindContinueEvent();\r\n return getBillers()\r\n .finally(function () {\r\n if (vm.manualEntry)\r\n populateCities();\r\n vm.active = true;\r\n });\r\n }\r\n\r\n function setCity() {\r\n controllerLogic.setCity(vm.form.customerInfo, vm.selectedCity);\r\n }\r\n\r\n function toggleManualEntry() {\r\n vm.manualEntry = controllerLogic.toggleManualEntry(vm.form, vm.oldCode, vm.manualEntry);\r\n if (vm.manualEntry)\r\n populateCities(vm.selectedState);\r\n }\r\n\r\n function populateSelected() {\r\n syncStates();\r\n controllerLogic.populateSelected(vm.selectedCustomer, vm.form.customerInfo);\r\n }\r\n\r\n function syncStates() {\r\n for (var x = 0; x < vm.states.length; x++)\r\n if (vm.states[x].abbreviation === vm.selectedCustomer.stateCode) {\r\n vm.selectedState = vm.states[x];\r\n vm.form.customerInfo.selectedState = vm.selectedState;\r\n }\r\n }\r\n\r\n\r\n function populateCities(stateSelected) {\r\n return controllerLogic.populateCities(stateSelected, vm.form.customerInfo)\r\n .then(function (availableCities) {\r\n vm.availableCities = availableCities;\r\n for (var i = 0; i < vm.availableCities.length; i++) {\r\n var city = vm.availableCities[i];\r\n if (city.name == vm.form.customerInfo.city) {\r\n vm.selectedCity = city;\r\n break;\r\n }\r\n }\r\n if (!vm.selectedCity)\r\n vm.selectedCity = vm.availableCities[0];\r\n setCity();\r\n });\r\n }\r\n\r\n function getBillers() {\r\n return dataService.getAvailableBillers(summaryModel.Shipper.saveShipperInfo.customerInfo.customerCode)\r\n .then(function (data) {\r\n vm.customers = data;\r\n if (vm.customers.length < 1) {\r\n $timeout(function () {\r\n return dataService.getAvailableBillers(summaryModel.Shipper.saveShipperInfo.customerInfo.customerCode)\r\n .then(function (data) {\r\n vm.customers = data;\r\n if (vm.customers.length === 0)\r\n toggleManualEntry();\r\n return vm.customers;\r\n })\r\n }, 500)\r\n }\r\n return vm.customers;\r\n });\r\n }\r\n\r\n function bindContinueEvent() {\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n return dataService.saveWorkInProgress(vm.form, '/location-info')\r\n .then(function (resp) {\r\n summaryModel.SetStep($state.params.step, $state.params.processStep + 1);\r\n return dataService.saveOrder(summaryModel)\r\n .then(function () {\r\n summaryModel.proceed(href);\r\n });\r\n });\r\n });\r\n }\r\n };\r\n})();\n(function () {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.orders')\r\n .controller('ShipperInfoController', ['$scope', '$log', 'dataService', '$state', 'summaryModel', 'states', 'controllerLogic', '$timeout', shipperInfoController]);\r\n\r\n function shipperInfoController($scope, $log, dataService, $state, summaryModel, states, controllerLogic, $timeout) {\r\n var vm = this;\r\n vm.active = false;\r\n\r\n vm.customers = [];\r\n vm.toggleManualEntry = toggleManualEntry;\r\n\r\n vm.form = summaryModel.Shipper.saveShipperInfo;\r\n vm.selectedCustomer = vm.form.customerInfo;\r\n vm.manualEntry = vm.form.customerContactInfo.manualEntry;\r\n\r\n vm.states = states;\r\n vm.populateCities = populateCities;\r\n vm.populateSelected = populateSelected;\r\n vm.setCity = setCity;\r\n\r\n if (summaryModel.currentStep > 2)\r\n vm.shipperLocked = true;\r\n\r\n activate();\r\n\r\n function activate() {\r\n syncStates();\r\n bindContinueEvent();\r\n return getShippers()\r\n .finally(function () {\r\n if (vm.manualEntry)\r\n populateCities();\r\n vm.active = true;\r\n });\r\n }\r\n\r\n function setCity() {\r\n controllerLogic.setCity(vm.form.customerInfo, vm.selectedCity);\r\n }\r\n\r\n function toggleManualEntry() {\r\n vm.manualEntry = controllerLogic.toggleManualEntry(vm.form, vm.oldCode, vm.manualEntry);\r\n if (vm.manualEntry)\r\n populateCities(vm.selectedState);\r\n }\r\n\r\n function populateSelected() {\r\n syncStates();\r\n controllerLogic.populateSelected(vm.selectedCustomer, vm.form.customerInfo);\r\n }\r\n\r\n function syncStates() {\r\n for (var x = 0; x < vm.states.length; x++)\r\n if (vm.states[x].abbreviation === vm.selectedCustomer.stateCode) {\r\n vm.selectedState = vm.states[x];\r\n vm.form.customerInfo.selectedState = vm.selectedState;\r\n }\r\n }\r\n\r\n function populateCities(stateSelected) {\r\n return controllerLogic.populateCities(stateSelected, vm.form.customerInfo)\r\n .then(function (availableCities) {\r\n vm.availableCities = availableCities;\r\n for (var i = 0; i < vm.availableCities.length; i++) {\r\n var city = vm.availableCities[i];\r\n if (city.name == vm.form.customerInfo.city) {\r\n vm.selectedCity = city;\r\n break;\r\n }\r\n }\r\n if (!vm.selectedCity)\r\n vm.selectedCity = vm.availableCities[0];\r\n setCity();\r\n });\r\n }\r\n\r\n function getShippers() {\r\n return dataService.getAvailableShippers()\r\n .then(function (data) {\r\n vm.customers = data;\r\n\r\n if (vm.customers.length < 1) {\r\n $timeout(function () {\r\n return dataService.getAvailableShippers()\r\n .then(function (data) {\r\n vm.customers = data;\r\n if (vm.customers.length === 0)\r\n toggleManualEntry();\r\n return vm.customers;\r\n })\r\n }, 500)\r\n }\r\n return vm.customers;\r\n });\r\n }\r\n\r\n function bindContinueEvent(){\r\n $scope.$onRootScope('continue-event', function (event, href) {\r\n return dataService.saveWorkInProgress(vm.form, '/shipper/location-info')\r\n .then(function () {\r\n summaryModel.SetStep($state.params.step);\r\n return dataService.saveOrder(summaryModel).then(function () {\r\n summaryModel.proceed(href);\r\n });\r\n });\r\n });\r\n }\r\n };\r\n})();"]}