{"version":3,"sources":["app.js","certificates/certificates.component.js","account/account.component.js","checkout/checkout.component.js","addressDropdown/addressDropdown.component.js","bonusDiscountDetailsModal/bonusDiscountDetailsModal.component.js","contact/contact.component.js","forgotPassword/forgotPassword.component.js","cart/cart.component.js","cart/cartProductList.component.js","cart/cartProductListItem.component.js","impersonate/impersonate.component.js","changePassword/changePassword.component.js","customerDropdown/customerDropdown.component.js","orders/orders.component.js","home/homeComponent.js","login/chooseCustomerContent.component.js","login/chooseProductContent.component.js","login/loginForm.component.js","login/loginModal.js","login/twoFactorForm.component.js","incentiveDetailsModal/incentiveDetailsModal.component.js","productDetail/productDetail.component.js","productClass/productClass.component.js","receive/receive.component.js","productSearch/productSearch.component.js","productSearch/productSearchResults.component.js","purchaseOrder/purchaseOrder.component.js","purchaseOrder/purchaseOrderProductList.component.js","purchaseOrder/purchaseOrderProductListItem.component.js","purchaseOrder/purchaseOrderShipment.component.js","saml/saml.component.js","reports/reports.component.js","_factories/stToast.js","_services/addressService.js","_services/cartService.js","_services/certificatesService.js","_services/customersService.js","_services/lookupsService.js","_services/ordersService.js","_services/productsService.js","_services/receivesService.js","_services/reportService.js","_services/sessionService.js","_services/stSecurity.js","_services/utils.js","shippingLabel/shippingLabel.component.js","sideNav/sideNav.component.js","twoFactorSetup/twoFactorSetup.component.js","_directives/intOnly.js","_directives/modalMovable.js","_directives/stConfirmPopover.js","_directives/working.js","account/childAccounts/childAccounts.component.js","home/loggedInHome/loggedInHome.component.js","home/loggedOutHome/loggedOutHome.component.js","productSearch/premierModal/premierModal.component.js","saml/notFound/notFound.component.js","saml/test/test.js","saml/slo/slo.component.js","_shared/bundleSuggest/bundleSuggest.component.js","reports/productUtilizationReport/productUtilizationReport.component.js","reports/productUtilizationReport/productUtilizationReportSearch.component.js","_shared/footer/footer.component.js","reports/certificateOfAnalysisReport/certificateOfAnalysisComponent.js","_shared/header/header.component.js","_shared/header/header2.component.js","_shared/header/header3.component.js","account/childAccounts/addUser/addUser.component.js","_shared/footer/sitemap/sitemap.component.js","incentiveDetailsModal/plugins/bundleQualifyingProducts/bundleQualifyingProducts.component.js"],"names":["angular","module","constant","appId","CSOS","RX","config","routes","toastr","modal","run","$rootScope","$location","$window","$timeout","$http","toastrConfig","session","url","includes","refresh","then","isLoaded","$on","timeout","checkVersion","get","serverVersion","result","data","version","localVersion","window","Pims","fullVersionNumber","origClass","positionClass","info","allowHtml","closeButton","autoDismiss","tapToDismiss","hoverToClose","timeOut","extendedTimeOut","onTap","location","reload","$inject","$routeProvider","$locationProvider","html5Mode","when","template","resolve","loggedIn","otherwise","redirectTo","authorized","abilities","valid","auth","authorize","loginModal","getCurrentUser","user","extend","preventOpenDuplicates","$uibModalProvider","options","controllerAs","component","templateUrl","controller","$q","FileUploader","utils","toast","$ctrl","token","uploadingCert","certificatePassword","certificateDeaNumber","errors","warnings","infos","uploader","queueLimit","removeAfterUpload","withCredentials","headers","deleteCert","certificates","deleteCertificate","cert","certificate_id","index","findIndex","c","splice","success","canUpload","queue","length","onBeforeUploadItem","item","formData","push","onWhenAddingFileFailed","filter","name","clearQueue","addToQueue","upload","isSuccess","isUploaded","uploadAll","onCompleteItem","response","status","Success","scr","SaveCertificateResult","existing","find","CertificateId","cert_hash","CertificateHash","customer_id","customer","company_id","contact_dea","upload_user_id","friendly_name","FriendlyName","cert_issued_to","IssuedTo","valid_from_date","ValidFromDate","valid_to_date","ExpirationDate","the_cert","public_key_XML","PublicKeyXmlString","key_usage","KeyUsage","issued_by","IssuedBy","is_deleted","create_date","create_user","document","getElementById","value","AlreadyExists","console","log","InvalidPassword","ValidateCertificateResult","vcr","LdapNotAvailable","DeaNumberNotValid","Expired","PrivateKeyMissing","Revoked","ChainNotValid","user_id","first_name","last_name","password","password2","ui","isLoading","passwordUpdated","canContinue","passwordsDontMatch","passwordErrors","saveNewPasswordClicked","post","is_valid","d","catch","errorHandler","finally","$routeParams","CART_TYPE_CODE","today","Date","setHours","cart","busy","billingAddress","shippingAddress","noCheckoutReasons","noCalculateShippingReasons","noCalculateShippingErrors","noCalculateShippingCount","customer_order_no","order_name","shipping_instructions","order_form_number","order_form_number_222","order_form_number_222_confirm","order_form_number_prefix","getFullYear","toString","substr","certificate","CsosCheckoutMode","calculatingShipping","validatingOrderFormNumber","orderFormNumberIsUnique","notCsosDeaNumbers","notCsosDeaNumber","recurWeeklyDefaultStartDate","addDays","recurBiweeklyDefaultStartDate","recurMonthlyDefaultStartDate","addMonths","recur","recurPeriod","recurStartdate","deas","some","dea","identification_code","date","days","setDate","getDate","months","setMonth","getMonth","getDeasWithAllCartItemSchedules","items","every","sDea","schedules","indexOf","schedule_name","map","canCheckout","isUpdating","cartTypeCode","shippingMethod","offer_saturday_delivery","useSaturdayShipping","deliveryPhoneInput","formShippingMethod","deliveryContactPhoneInput","$invalid","$error","required","pattern","shipping_cost","recurStartdateHasError","canCalculateShipping","is_overnight","is_overnight_possible","why_overnight_not_possible","$onInit","orderId","getPurchaseOrder","addresses","billingAddresses","a","contact_id","order","bill_contact_id","shippingAddresses","ship_contact_id","changeAddress","containsScheduleII","addressType","address","loadShippingMethods","zip_code","validateOrderFormNumber","unshift","delivery_contact_phone","phone","showBundleSuggest","showAddCertificate","certs","showShippingCouldBeFreeMessage","toggleSaturdayShipping","calculateShipping","shippingContactId","saturdayShipping","error","reason","calcShippingFailed","buyerDeaNumber","orderFormNumber","isOrderFormNumberUnique","does_exist","checkoutClicked","createPurchaseOrderCsos","path","OrderId","SaveOrderResult","sor","ValidateOrderResult","vor","DrugSchedulesInvalid","InvalidSchedules","CertSchedules","cs_dea_number","createPurchaseOrder","recurPeriodChanged","period","minDate","startDate","toggles","toggleDatePicker","datePicker","datePickerOptions","timezone","bindings","selectedAddress","onAddressSelected","isWorking","certDisplay","addCertDisplay","addressNeedsCert","selectAddress","formatAddress","certLine","address1","address2","city_name","state_code","formatAddressForList","onClose","onDismiss","onReturnToLogin","onContinue","EMAIL_FORMAT","emailFormat","email","canProceed","proceedClicked","cartTypeName","qty","product","kitCheck","$onChanges","changes","currentValue","quantity","products","allProducts","item_id","p","sale_UOM","kit_check_surcharge","hasBundleIncentive","incentives","i","incentive_type_Code","showUpdate","showUpdateButton","undefined","max_sale_qty","showDiscountPendingBudesonide","showDiscountPendingNotBudesonide","calcDiscountApplied","price","inc","display_in_line_item_level_bit","forEach","discount_amount","updateClicked","updateItem","kitCheckChanged","deleteItem","deleteClicked","calcPrimaryPackQty","multiplier","unit_of_measure","units_per_case","vials_per_unit","removeItem","isQuantityGreaterThanMaxQuantity","getMaxQuantityErrorMessage","sale_UOM_desc","$cookies","put","id","isExpired","noRecordFound","emailSent","is_expired","continueClicked","reset_pwd_guid","sendEmailClicked","selectedCustomerId","selectedCompanyName","onCustomerSelected","customers","orderBy","company_name","is_admin","search","isCustomerTextValid","$scope","$filter","$analytics","orders","lookups","customerSelected","selectedCustomer","searchCriteria","all","loadAddressesForSelectedCustomer","loadProductsForSelectedCustomer","anyAddress","shipping_contact_id","addressSelected","dateFilter","addressDateRange","order_from_date","order_to_date","selectedProduct","productSelected","isProductSearchTextValid","productSearchText","$watchCollection","newDates","oldDates","moment","isSame","orderStatuses","OrderStatus","Description","getOrderStatuses","concat","hasSearched","clear","getShippingByOrderDate","getForCustomer","canSearch","form","$valid","getExport","eventTrack","category","label","searchResults","order_id","order_date","status_description","ship_first_name","ship_last_name","ship_address1","ship_address2","order_total","reorderClicked","tenYearsAgo","setYear","homeController","home","onCancel","defaultCustomer","copy","setCustomer","setCartType","onForgotPassword","service","loginModalService","loginModalController","close","dismiss","UiState","Login","TwoFactor","ChooseCustomer","ChooseProduct","ForgotPassword","authCode","errorMessage","state","initialState","forgotPassword","loginContinue","trim","request","login","logged_in","has_error","checkIfCustomerIsChosen","logout","isLoggedIn","logOut","twoFactorContinue","auth_code","setDefaultCartType","customerChosen","productChosen","forgotPasswordContinue","returnToLogin","$uibModal","open","incentive","itemId","loading","existingCount","mnRequired","mnChecked","maxQuantity","selectedUom","selectedUomDesc","loadProduct","showIncentiveDetails","modalInstance","$uibModalInstance","ctrl","incentive_id","selectUom","uom","uomDesc","canSelectUom","inCart","kit_check_selected","sessionProduct","confirm_to_sell","Drift","querySelector","paneContainer","hoverDelay","zoomFactor","hoverBoundingBox","is_schedule_drug","canAddToCart","isCartFull","addToCartClicked","full_description","quantity_uom_code","addItem","retail_packaging","shouldContactCustomerService","ndcs","ndc_code","productClass","classId","receivesService","productsService","pendingReceives","historicalReceives","sevenDaysAgo","search_from_date","search_to_date","unexpected","lot","receive_date","searchPending","res","r","order_qty","rec_qty","rec_date","getForUnexpectedReceive","sort","sortItemDesc","b","item_desc","canReceive","rec","canUnexpectedReceive","receiveClicked","req","quantity_received","quantity_UOM","order_UOM","lot_no","notes","create","saveUnexpectedClicked","searchHistorical","cancelClicked","cancel","order_receive_id","receive_status_code","uncancelClicked","uncancel","productType","cs","parseInt","showBonusIncentive","has_bonus_discount","bonusProgressPct","Math","round","bonus_discount_current_amount","bonus_discount_goal_amount","showBonusDiscountDetails","classification","getClassification","searchResultItemClass","itemFilter","array","classifications","class_id","found","item_ids","searchingText","class_name","hideReorder","ordersService","reportService","noReorderReasons","errorOnOrder","lots","shippingLabelExists","shippingLabelDoesNotExist","clickHereText","canCreateShippingLabel","trackingNumber","loadOrder","err","createShippingLabel","getShippingLabel","TrackingNumber","mergeUnique","arr1","arr2","v","has_CoA","shipmentLots","shipment","lines","reduce","prev","line","orderLots","shipments","itemTotal","price_per","itemDiscountTotal","full_price","itemBonusDiscountTotal","surchargeTotal","shipping_charges","reorderItemCount","getReorderItemCount","itemCount","maxItemCount","l","can_reorder","itemDiscountSubTotal","itemBonusDiscountSubTotal","itemSubTotal","surchargeSubTotal","origSubTotal","subTotal","sortLots","is_form222","exists","result2","shippingLabelBytes","Bytes","canReorder","orderAgainClicked","orderAgain","certOfAnalClicked","getCertificateOfAnalysisRpt","printE222Form","getE222Form","packListClicked","getPackListRpt","invoiceClicked","getInvoiceRpt","reports","getQuarterlyRpts","openQuarterlyReport","getQuarterlyRpt","report","factory","toastFactory","title","message","tit","msg","statusText","Message","self","allDeas","getShipping","companyId","getBilling","shipping","billing","getAddresses","getDeaNumbers","sortDeas","contactType","sortAddresses","customerId","getShippingByShipDate","ship_from_date","ship_to_date","cartId","rx_cart_qty","cs_cart_qty","paymentTerms","shippingMethods","groundShippingMethodId","secondDayShippingMethodId","total","processItems","groundMethod","m","shipping_method_desc","toLowerCase","shipping_method_id","secondDayMethod","sale_UOM_price","clearing","cart_id","payment_terms","getCartCounts","rx_qty","cs_qty","zipCode","shippingCost","promises","getShippingMethods","getGroundDays","results","groundDays","method","defaultMethod","is_default","can_upgrade_to_2ndday","originalDefault","is_free_available","not_free_message","ShippingMethodId","ContactId","SaturdayShipping","WrkOrderId","wrk_order_id","addItems","new_quantity","existingQuantity","buyer_DEA_number","billing_contact_id","is_recurring","recurring_frequency","recur_start_date","shipping_wrk_order_id","certificate_dea_number","certificate_password","po","detail","order_line_total_amount","delete","JSON","stringify","orderStatusesPromise","order_status","order_create_user","sc","format","Object","keys","key","subtract","startOf","toDate","searchText","hasSearchCriteria","productNames","hasCs","isSearching","getAll","loadProductNames","has_cs","loadClassifications","groups","sortGroups","g","sortProducts","searchAll","curr","getClassifications","sortClassifications","getAllGrouped","getAllClassifications","display_group_id","from","to","ie","navigator","userAgent","match","getProductUtilizationSearch","searchRequest","popup","createPopup","lotNo","responseType","openReport","handleError","the_quarter","upd_file_name","body","append","createElement","innerHtml","filename","file","Blob","type","fileUrl","URL","createObjectURL","msSaveBlob","href","cartService","addressService","customersService","certificatesService","newVersionAvailable","allProductsGrouped","updateCache","mainLoad","productsGrouped","existingI","si","incentive_name","incentive_description_html","incentive_type","item_html","item_suggest_html","ei","inhalationClassification","inhalationGroup","add_header_html","filteredProducts","display_group","currentUserPromise","setUser","cart_type_code","reject","remove","gotoProductSearch","cleanSearchText","gotoCart","backToSearchResults","replace","notAuthenticated","notAuthorized","stHttpInterceptor","authFactory","utilsFactory","$httpProvider","interceptors","$injector","AUTH_EVENTS","Authorization","$broadcast","Utils","Array","prototype","expression","reverse","comparator","groupBy","prop","val","element","closest","selector","startChar","substring","hasClass","parent","tagName","isRxLoc","isCsLoc","isClassificationLoc","barcodeUri","verifyKey","verifyMsg","verified","canVerify","canSave","canDisableTwoFactor","is_2_factor_enabled","verifyClicked","saveClicked","disableTwoFactorClicked","directive","MAX_SIGNED_INT","require","link","scope","attrs","ngModelCtrl","$parsers","isUndefined","clean","startsWith","$setViewValue","$render","isNaN","$modelValue","bind","event","keyCode","preventDefault","$document","restrict","iElement","iAttrs","startX","startY","x","y","dialogWrapper","css","position","on","pageX","pageY","mousemove","mouseup","top","left","unbind","confirmDirective","templateCache","$compile","$parse","$sce","confirmIf","confirmYes","confirmBypassed","yesHtml","trustAsHtml","noHtml","popoverIsOpen","confirm","removeAttr","popoverTitle","confirmTitle","popoverPlacement","confirmPlacement","attr","$observe","e","stopPropagation","ifFunc","$apply","yesClicked","noClicked","$templateCache","working","compile","priority","terminal","spinner","nodeName","disabled","ngDisabled","$set","readonly","ngReadonly","formGroup","addClass","after","postLink","users","loadUsers","toggleRoleClicked","userId","roleName","role_name","toggleSessionRole","is_reporting","is_ordering","is_cs","toggleDisabledClicked","is_active","u","userAdded","canChangeAdmin","canChangeDisabled","canDelete","incentiveId","getItems","allShippingAddresses","filterAddresses","productUtilizationReport","now","thirtyDaysAgo","selected","loadAddresses","s","defaultShippingAddress","datesAreInvalid","pack_from_date","pack_to_date","productResult","pur","invoice_id","invoice_date","product_type_id","product_description","NDC_Code","unit_count","case_count","unit_pack_UOM_desc","unit_price","primary_pack_UOM_desc","primary_pack_quantity","total_price","shipping_address_id","ship_DEA_number","ship_country_code","ship_state_code","ship_city_name","ship_zip_code","ship_date","created_by","toggle","fromDatePickerOptions","endDatePickerOptions","isAfter","versionNumber","hideFooter","$$path","certificateOfAnalysisCtrl","model","notFound","loginUrl","encodeURI","showLogo","$watch","logoSrc","blob","newSearchText","logoClicked","hideHeader","isSaml","is_saml","sloUrl","slo_url","killSearchKeyUp","cartSelected","searchKeyUp","$event","onUserAdded","roles","admin","reporting","purchasing","showStep1","showStep2","canAddUser","addUserClicked","is_admin_role","is_reporting_role","is_purchasing_role","newUser","demoMode"],"mappings":"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","file":"script.js","sourcesContent":["\r\n(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\",\r\n [\r\n \"angularFileUpload\",\r\n \"ngAnimate\",\r\n \"ngRoute\",\r\n \"ngCookies\",\r\n \"ui.bootstrap\",\r\n \"ui.validate\",\r\n \"stSecurity\",\r\n \"stToast\",\r\n \"stConfirmPopover\",\r\n \"ngSanitize\",\r\n \"ngCsv\",\r\n \"angulartics\",\r\n \"angulartics.google.tagmanager\",\r\n \"ngAria\"\r\n ])\r\n .constant(\"appConfig\",\r\n {\r\n appId: \"PimsSc.Web\"\r\n })\r\n .constant(\"EMAIL_FORMAT\", /[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?/)\r\n .constant(\"CART_TYPE_CODE\",\r\n {\r\n CSOS: \"CSO\",\r\n RX: \"RXO\"\r\n })\r\n .config(routes)\r\n .config(toastr)\r\n .config(modal)\r\n .run(run);\r\n\r\n function run($rootScope, $location, $window, $timeout, $http, toastr, toastrConfig, session) {\r\n\r\n if (!$location.url().includes(\"impersonate\") && !$location.url().includes(\"saml\"))\r\n session.refresh().then(() => session.isLoaded = true);\r\n\r\n //if (!$location.url().includes(\"impersonate\")) \r\n // session.refresh().then(() => session.isLoaded = true);\r\n\r\n // Google Analytics\r\n $rootScope.$on('$routeChangeSuccess', function () {\r\n //$window.ga(\"set\", \"page\", $location.url());Remove when using angularitcs.\r\n //$window.ga(\"send\", \"pageview\"); Remove when using angularitcs.\r\n });\r\n\r\n const timeout = 5 * 60 * 1000;\r\n $timeout(function checkVersion() {\r\n $http\r\n .get(\"/api/versions\")\r\n .then(result => {\r\n const serverVersion = result.data.version;\r\n const localVersion = window.Pims.fullVersionNumber;\r\n\r\n if (serverVersion !== localVersion) {\r\n // show modal\r\n const origClass = toastrConfig.positionClass;\r\n toastrConfig.positionClass = \"toast-bottom-left\";\r\n toastr.info(\r\n `There is a new version available. Click here to refresh.`,\r\n null,\r\n {\r\n allowHtml: true,\r\n closeButton: false,\r\n autoDismiss: false,\r\n tapToDismiss: false,\r\n hoverToClose: false,\r\n timeOut: 0,\r\n extendedTimeOut: 0,\r\n onTap: () => {\r\n window.location.reload();\r\n }\r\n });\r\n toastrConfig.positionClass = origClass;\r\n } else\r\n $timeout(checkVersion, timeout);\r\n });\r\n }, timeout);\r\n }\r\n run.$inject = [\"$rootScope\", \"$location\", \"$window\", \"$timeout\", \"$http\", \"toastr\", \"toastrConfig\", \"sessionService\"];\r\n\r\n /**\r\n * @param {ng.route.IRouteProvider} $routeProvider\r\n * @param {ng.ILocationProvider} $locationProvider\r\n */\r\n function routes($routeProvider, $locationProvider) {\r\n $locationProvider.html5Mode(true);\r\n\r\n $routeProvider\r\n .when(\"/\", { template: \"\" })\r\n .when(\"/change-password/:id\", { template: \"\" })\r\n .when(\"/forgot-password\", { template: \"\" })\r\n .when(\"/account\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/two-factor-setup\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/child-accounts\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/products/all\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/products/cs\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/product-class/:classId\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/product-search/:searchText?\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/product-detail/:id\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/cart\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/reports\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/product-utilization-report\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/checkout/:orderId?\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/purchase-order/:orderId\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/order-complete/:orderId\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/impersonate/:token\", { template: \"\" })\r\n .when(\"/contact\", { template: \"\" })\r\n .when(\"/orders\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/certificate-of-analysis-report\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/certificates\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/receive\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/shipping-label/:orderId\", { template: \"\", resolve: loggedIn() })\r\n .when(\"/saml/sso/:token\", { template: \"\" })\r\n .when(\"/saml/not-found/:email\", { template: \"\" })\r\n .when(\"/saml/test/sso/:token\", { template: \"\" })\r\n .when(\"/saml/test/not-found/:email\", { template: \"\" })\r\n .when(\"/slo\", { template: \"\" })\r\n .when(\"/sitemap\", { template: \"\" })\r\n .otherwise({ redirectTo: \"/\" });\r\n\r\n function authorized(abilities) {\r\n return {\r\n valid: [\"stAuthFactory\", auth => auth.authorize(abilities)]\r\n };\r\n };\r\n\r\n function loggedIn() {\r\n return {\r\n valid: [\r\n \"sessionService\", \"loginModal\", function (session, loginModal) {\r\n // if no current user, then login\r\n return session.getCurrentUser(true).then(user => user || loginModal());\r\n }\r\n ]\r\n };\r\n };\r\n }\r\n routes.$inject = [\"$routeProvider\", \"$locationProvider\"];\r\n\r\n\r\n function toastr(toastrConfig) {\r\n angular\r\n .extend(toastrConfig, {\r\n positionClass: 'toast-top-full-width',\r\n preventOpenDuplicates: true,\r\n timeOut: 3000\r\n });\r\n }\r\n toastr.$inject = [\"toastrConfig\"];\r\n\r\n function modal($uibModalProvider) {\r\n angular.extend($uibModalProvider.options, {\r\n controllerAs: \"$ctrl\",\r\n //backdrop: \"static\",\r\n //keyboard: false\r\n });\r\n }\r\n modal.$inject = [\"$uibModalProvider\"];\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\r\n\r\n\r\n\r\n\r\n\r\n","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .component(\"certificates\", { // certificates\n templateUrl: \"src/app/certificates/certificates.html\",\n controller: controller\n });\n\n function controller($q, session, FileUploader, utils, toast) {\n const $ctrl = this;\n const token = utils.token();\n $ctrl.session = session;\n\n $ctrl.uploadingCert = false;\n $ctrl.certificatePassword = \"\";\n $ctrl.certificateDeaNumber = \"\";\n $ctrl.errors = [];\n $ctrl.warnings = [];\n $ctrl.infos = [];\n\n $ctrl.uploader = new FileUploader({\n url: \"/api/csos-certificates\",\n queueLimit: 1,\n removeAfterUpload: false,\n withCredentials: false,\n headers: {\n \"Authorization\": token\n }\n });\n\n $ctrl.deleteCert = cert => {\n session.certificates\n .deleteCertificate(cert.certificate_id)\n .then(response => {\n const index = session.certificates.certificates.findIndex(c => c.certificate_id === cert.certificate_id);\n if (index !== -1)\n session.certificates.certificates.splice(index, 1);\n toast.success(\"Delete Certificate\", \"Certificate has been deleted.\");\n });\n };\n\n\n\n $ctrl.canUpload = () => {\n return $ctrl.uploader.queue.length &&\n $ctrl.certificatePassword.length &&\n $ctrl.certificateDeaNumber.length;\n };\n\n // Have to do this to set properties other than the init of FileUploader. derrrrrp\n $ctrl.uploader.onBeforeUploadItem = function (item) {\n item.formData.push({ \"certificatePassword\": $ctrl.certificatePassword });\n item.formData.push({ \"certificateDeaNumber\": $ctrl.certificateDeaNumber });\n }\n\n // Have to do this to replace the item in the picker. derrrrrrp.\n $ctrl.uploader.onWhenAddingFileFailed = function (item, filter, options) {\n if (filter.name == \"queueLimit\") {\n $ctrl.uploader.clearQueue();\n $ctrl.uploader.addToQueue(item);\n }\n }\n\n $ctrl.upload = () => {\n $ctrl.errors = [];\n $ctrl.uploadingCert = true;\n\n // Have to reset these to send the same file again. derrrrrrp.\n const item = $ctrl.uploader.queue[0];\n item.isSuccess = false;\n item.isUploaded = false;\n item.formData = [];\n $ctrl.uploader.uploadAll();\n };\n\n $ctrl.uploader.onCompleteItem = function (item, response, status, headers) {\n $ctrl.uploadingCert = false;\n\n if (response.Success === true) {\n const scr = response.SaveCertificateResult;\n const existing = session.certificates.certificates.find(c => c.certificate_id === scr.CertificateId);\n\n if (!existing) {\n session.certificates.certificates.push({\n certificate_id: scr.CertificateId,\n cert_hash: scr.CertificateHash,\n customer_id: session.customer.company_id,\n contact_dea: $ctrl.certificateDeaNumber,\n upload_user_id: \"\",\n friendly_name: scr.FriendlyName,\n cert_issued_to: scr.IssuedTo,\n valid_from_date: scr.ValidFromDate,\n valid_to_date: scr.ExpirationDate,\n the_cert: null,\n public_key_XML: scr.PublicKeyXmlString,\n key_usage: scr.KeyUsage,\n issued_by: scr.IssuedBy,\n is_deleted: \"N\",\n create_date: null,\n create_user: null\n });\n }\n\n document.getElementById(\"fileInput\").value = null;\n $ctrl.uploader.clearQueue();\n $ctrl.certificatePassword = \"\";\n $ctrl.certificateDeaNumber = \"\";\n\n if (!!scr.AlreadyExists)\n toast.success(\"Upload Certificate\", \"Certificate already exists.\");\n else\n toast.success(\"Upload Certificate\", \"Certificate has been uploaded.\");\n\n } else {\n console.log(\"Failed to upload certificate.\", response);\n if (response.InvalidPassword) { $ctrl.errors.push(\"Invalid Password\"); return; }\n\n if (response.SaveCertificateResult) {\n const scr = response.SaveCertificateResult;\n\n if (scr.ValidateCertificateResult) {\n const vcr = scr.ValidateCertificateResult;\n\n // Warning\n if (!!vcr.LdapNotAvailable) $ctrl.warnings.push(\"Failed to contact the DEA LDAP server. Please try again later.\");\n\n // Errors\n if (!!vcr.DeaNumberNotValid) { $ctrl.errors.push(\"DEA Number is not correct.\"); }\n if (!!vcr.Expired) { $ctrl.errors.push(\"The certificate is Expired.\"); }\n if (!!vcr.PrivateKeyMissing) { $ctrl.errors.push(\"The certificate is missing the private key.\"); }\n if (!!vcr.Revoked) { $ctrl.errors.push(\"The certificate has been revoked.\"); }\n if (!!vcr.ChainNotValid) { $ctrl.errors.push(\"The certificate is not a valid certificate for CSOS (Certificate chain not valid).\"); }\n }\n }\n if (!$ctrl.errors.length && !$ctrl.warnings.length && !$ctrl.infos.length)\n $ctrl.warnings.push(\"Failed to upload certificate. Please refresh the page and try again.\");\n }\n }\n }\n controller.$inject = [\"$q\", \"sessionService\", \"FileUploader\", \"stUtilsFactory\", \"stToastFactory\"];\n\n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"account\", { // account\n templateUrl: \"src/app/account/account.html\",\n controller: controller\n });\n\n function controller($http, session, toast) {\n const $ctrl = this;\n $ctrl.session = session;\n \n $ctrl.user = {\n user_id: session.user.user_id,\n first_name: session.user.first_name,\n last_name: session.user.last_name,\n password: \"\",\n password2: \"\"\n };\n $ctrl.ui = {\n isLoading: false,\n passwordUpdated: false,\n canContinue: () => {\n return !$ctrl.ui.isLoading && $ctrl.user.password && $ctrl.user.password2 && ($ctrl.user.password === $ctrl.user.password2);\n },\n passwordsDontMatch: () => {\n return $ctrl.user.password && $ctrl.user.password2 && ($ctrl.user.password !== $ctrl.user.password2);\n },\n passwordErrors: []\n };\n\n $ctrl.saveNewPasswordClicked = () => {\n $ctrl.ui.passwordUpdated = false;\n $ctrl.ui.passwordErrors = [];\n $ctrl.ui.isLoading = true;\n $http\n .post(`/api/users/change-password-self/`, { password: $ctrl.user.password })\n .then(result => {\n if (result.data[0].is_valid) {\n toast.success(\"Set Password\", \"Password has been saved.\");\n $ctrl.user.password = \"\";\n $ctrl.user.password2 = \"\";\n $ctrl.ui.passwordUpdated = true;\n } else {\n $ctrl.ui.passwordErrors = result.data.filter(d => !d.is_valid);\n }\n })\n .catch(toast.errorHandler)\n .finally(() => $ctrl.ui.isLoading = false);\n };\n }\n controller.$inject = [\"$http\", \"sessionService\", \"stToastFactory\"];\n \n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"checkout\", { // checkout\r\n templateUrl: \"src/app/checkout/checkout.html\",\r\n controller: controller\r\n });\r\n\r\n function controller($q, $window, $location, $routeParams, session, toast, $rootScope, CART_TYPE_CODE) {\r\n const $ctrl = this;\r\n const today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n $ctrl.session = session;\r\n $ctrl.cart = session.cart;\r\n $ctrl.CART_TYPE_CODE = CART_TYPE_CODE;\r\n $ctrl.busy = true;\r\n $ctrl.billingAddress = null;\r\n $ctrl.shippingAddress = null;\r\n $ctrl.noCheckoutReasons = [];\r\n $ctrl.errors = [];\r\n $ctrl.noCalculateShippingReasons = [];\r\n $ctrl.noCalculateShippingErrors = [];\r\n $ctrl.noCalculateShippingCount = 0;\r\n $ctrl.customer_order_no = \"\";\r\n $ctrl.order_name = \"\";\r\n $ctrl.shipping_instructions = \"\";\r\n $ctrl.order_form_number = \"\";\r\n $ctrl.order_form_number_222 = \"\";\r\n $ctrl.order_form_number_222_confirm = \"\";\r\n $ctrl.order_form_number_prefix = (new Date().getFullYear().toString().substr(-2)) + \"X\";\r\n $ctrl.certificate = null;\r\n $ctrl.certificatePassword = null;\r\n $ctrl.CsosCheckoutMode = \"CSOS\";\r\n $ctrl.calculatingShipping = false;\r\n $ctrl.validatingOrderFormNumber = false;\r\n $ctrl.orderFormNumberIsUnique = true;\r\n $ctrl.notCsosDeaNumbers = [];\r\n $ctrl.notCsosDeaNumber = \"\";\r\n $ctrl.recurWeeklyDefaultStartDate = addDays(today, 7);\r\n $ctrl.recurBiweeklyDefaultStartDate = addDays(today, 14);\r\n $ctrl.recurMonthlyDefaultStartDate = addMonths(today, 1);\r\n $ctrl.recur = false;\r\n $ctrl.recurPeriod = \"weekly\";\r\n $ctrl.recurStartdate = $ctrl.recurWeeklyDefaultStartDate;\r\n\r\n $ctrl.certificates = () => session.certificates.certificates.filter(c => $ctrl.shippingAddress && $ctrl.shippingAddress.deas.some(dea => dea.identification_code === c.contact_dea));\r\n\r\n function addDays(date, days) {\r\n const result = new Date(date);\r\n result.setDate(result.getDate() + days);\r\n return result;\r\n }\r\n\r\n function addMonths(date, months) {\r\n const result = new Date(date);\r\n result.setMonth(result.getMonth() + months);\r\n return result;\r\n }\r\n\r\n function getDeasWithAllCartItemSchedules() {\r\n return $ctrl.shippingAddress.deas.filter(sDea => session.cart.items.every(item => {\r\n\r\n return sDea.schedules.indexOf(item.schedule_name) >= 0;\r\n })).map(sDea => sDea.identification_code);\r\n };\r\n\r\n $ctrl.canCheckout = () => {\r\n $ctrl.noCheckoutReasons = [];\r\n\r\n if (session.cart.items.some(item => item.isUpdating))\r\n $ctrl.noCheckoutReasons.push(\"Finish Updating Item Qty\");\r\n\r\n if (!$ctrl.shippingAddress) {\r\n $ctrl.noCheckoutReasons.push(\"Select Shipping Address\");\r\n\r\n if (!$ctrl.billingAddress)\r\n $ctrl.noCheckoutReasons.push(\"Select Billing Address\");\r\n } else {\r\n\r\n if (!$ctrl.billingAddress)\r\n $ctrl.noCheckoutReasons.push(\"Select Billing Address\");\r\n\r\n if (session.cartTypeCode === CART_TYPE_CODE.CSOS) {\r\n\r\n if ($ctrl.CsosCheckoutMode === \"CSOS\") {\r\n if (!$ctrl.certificate)\r\n $ctrl.noCheckoutReasons.push(\"Select CSOS Certificate\");\r\n else {\r\n if (!$ctrl.certificatePassword)\r\n $ctrl.noCheckoutReasons.push(\"Enter Certificate Password\");\r\n else if ($ctrl.order_form_number.length) {\r\n if ($ctrl.order_form_number.length !== 6)\r\n $ctrl.noCheckoutReasons.push(\"Order Form Number must be 6 characters.\");\r\n else if ($ctrl.validatingOrderFormNumber)\r\n $ctrl.noCheckoutReasons.push(\"Validating Order Form Number...\");\r\n else if (!$ctrl.orderFormNumberIsUnique)\r\n $ctrl.noCheckoutReasons.push(\"Order Form Number must be unique.\");\r\n }\r\n }\r\n } else if ($ctrl.CsosCheckoutMode === \"Form222\") {\r\n // form 222\r\n if ($ctrl.order_form_number_222.length === 0) {\r\n $ctrl.noCheckoutReasons.push(\"Enter Order Form Number\");\r\n } else if ($ctrl.order_form_number_222.length !== 9) {\r\n $ctrl.noCheckoutReasons.push(\"Order Form Number must be 9 characters.\");\r\n } else {\r\n if ($ctrl.order_form_number_222_confirm.length === 0) {\r\n $ctrl.noCheckoutReasons.push(\"Enter Confirm Order Form Number\");\r\n } else {\r\n if ($ctrl.order_form_number_222 !== $ctrl.order_form_number_222_confirm)\r\n $ctrl.noCheckoutReasons.push(\"Order Form Numbers do not match\");\r\n }\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n if ($ctrl.cart.shippingMethod != null &&\r\n $ctrl.cart.shippingMethod.offer_saturday_delivery === \"Y\" &&\r\n $ctrl.cart.shippingMethod.useSaturdayShipping) {\r\n var deliveryPhoneInput = $ctrl.formShippingMethod.deliveryContactPhoneInput;\r\n\r\n if (deliveryPhoneInput.$invalid && deliveryPhoneInput.$error.required) {\r\n $ctrl.noCheckoutReasons.push(\"Enter Delivery Contact Phone\");\r\n } else if (deliveryPhoneInput.$invalid && deliveryPhoneInput.$error.pattern) {\r\n $ctrl.noCheckoutReasons.push(\"Enter a valid Delivery Contact Phone\");\r\n }\r\n }\r\n\r\n if (session.cart.shippingMethod == null || session.cart.shippingMethod.shipping_cost == null)\r\n $ctrl.noCheckoutReasons.push(\"Calculate Shipping\");\r\n\r\n if ($ctrl.recur && $ctrl.recurStartdateHasError())\r\n $ctrl.noCheckoutReasons.push(\"Start Date is not valid.\");\r\n\r\n return !$ctrl.noCheckoutReasons.length;\r\n };\r\n\r\n $ctrl.canCalculateShipping = () => {\r\n $ctrl.noCalculateShippingReasons = [];\r\n\r\n if (!$ctrl.shippingAddress)\r\n $ctrl.noCalculateShippingReasons.push(\"Select Shipping Address\");\r\n\r\n if ($ctrl.cart.shippingMethod.is_overnight === \"Y\" && $ctrl.cart.shippingMethod.is_overnight_possible === \"N\")\r\n $ctrl.noCalculateShippingReasons.push($ctrl.cart.shippingMethod.why_overnight_not_possible);\r\n\r\n return !$ctrl.noCalculateShippingReasons.length;\r\n };\r\n\r\n $ctrl.$onInit = () => {\r\n if ($routeParams && $routeParams.orderId) {\r\n session.cart.getPurchaseOrder($routeParams.orderId).then(order => {\r\n $ctrl.billingAddress =\r\n $ctrl.session.addresses.billingAddresses.find(a => a.contact_id ===\r\n order.bill_contact_id); // || undefined\r\n $ctrl.shippingAddress =\r\n $ctrl.session.addresses.shippingAddresses.find(a => a.contact_id ===\r\n order.ship_contact_id); // || undefined\r\n $ctrl.shipping_instructions = order.shipping_instructions;\r\n\r\n $ctrl.changeAddress(\"shipping\", $ctrl.shippingAddress);\r\n })\r\n .catch(toast.errorHandler)\r\n .finally(() => $ctrl.busy = false);\r\n } else {\r\n $ctrl.busy = false;\r\n }\r\n\r\n if ($ctrl.session.cartTypeCode === $ctrl.CART_TYPE_CODE.CSOS && !$ctrl.session.cart.containsScheduleII && $ctrl.session.cart.items.length > 0) {\r\n $ctrl.CsosCheckoutMode = \"NotCSOS\";\r\n }\r\n };\r\n\r\n $ctrl.changeAddress = (addressType, address) => {\r\n if (addressType === \"shipping\") {\r\n\r\n $ctrl.calculatingShipping = true;\r\n\r\n $ctrl.shippingAddress = address;\r\n if (session.cartTypeCode === CART_TYPE_CODE.CSOS) {\r\n if ($ctrl.certificates().length) {\r\n $ctrl.certificate = $ctrl.certificates()[0];\r\n $ctrl.CsosCheckoutMode = \"CSOS\";\r\n } else {\r\n if ($ctrl.session.cart.containsScheduleII)\r\n $ctrl.CsosCheckoutMode = \"Form222\";\r\n else\r\n $ctrl.CsosCheckoutMode = \"NotCSOS\";\r\n }\r\n\r\n }\r\n\r\n session.cart\r\n .loadShippingMethods(address.zip_code, address.contact_id)\r\n .finally(() => $ctrl.calculatingShipping = false);;\r\n $ctrl.validateOrderFormNumber();\r\n\r\n const deas = getDeasWithAllCartItemSchedules();\r\n $ctrl.notCsosDeaNumbers = deas;\r\n $ctrl.notCsosDeaNumbers.unshift(\"Not Listed\");\r\n if (deas.length <= 1)\r\n $ctrl.notCsosDeaNumber = $ctrl.notCsosDeaNumbers[0];\r\n else\r\n $ctrl.notCsosDeaNumber = $ctrl.notCsosDeaNumbers[1];\r\n\r\n // init delivery phone number\r\n $ctrl.delivery_contact_phone = address.phone;\r\n\r\n\r\n } else {\r\n $ctrl.billingAddress = address;\r\n }\r\n };\r\n\r\n $ctrl.showBundleSuggest = () => {\r\n //return !$ctrl.session.cart.items.some(i => i.incentives.filter(i => i.incentive_type_Code === \"BND\").length > 0);\r\n return false;\r\n };\r\n\r\n $ctrl.showAddCertificate = () => {\r\n if (!$ctrl.shippingAddress)\r\n return false;\r\n\r\n if (session.cartTypeCode !== CART_TYPE_CODE.CSOS)\r\n return false;\r\n\r\n const certs = session.certificates.certificates;\r\n\r\n if ($ctrl.certificates && certs.some(c => $ctrl.shippingAddress.deas.some(dea => dea.identification_code === c.contact_dea)))\r\n return false;\r\n return true;\r\n };\r\n\r\n\r\n $ctrl.showShippingCouldBeFreeMessage = () => {\r\n return true;\r\n };\r\n\r\n $ctrl.toggleSaturdayShipping = () => {\r\n session.cart.shippingMethod.shipping_cost = null;\r\n };\r\n\r\n $ctrl.calculateShipping = () => {\r\n $ctrl.calculatingShipping = true;\r\n $ctrl.noCalculateShippingErrors = [];\r\n const shippingContactId = $ctrl.shippingAddress.contact_id;\r\n const saturdayShipping = !!session.cart.shippingMethod.useSaturdayShipping;\r\n return session.cart\r\n .calculateShipping(shippingContactId, saturdayShipping)\r\n .then(result => {\r\n if (!result.success) {\r\n console.error(result.reason);\r\n calcShippingFailed();\r\n }\r\n else\r\n $ctrl.noCalculateShippingCount = 0;\r\n })\r\n .catch(result => {\r\n calcShippingFailed();\r\n })\r\n .finally(() => $ctrl.calculatingShipping = false);\r\n };\r\n\r\n function calcShippingFailed() {\r\n $ctrl.noCalculateShippingCount++;\r\n $ctrl.noCalculateShippingErrors.push(\"Calculate Shipping Failed. Please try again.\");\r\n if ($ctrl.noCalculateShippingCount >= 2)\r\n $ctrl.noCalculateShippingErrors.push(\"If this keeps happening please contact support.\");\r\n }\r\n\r\n $ctrl.validateOrderFormNumber = () => {\r\n $ctrl.validatingOrderFormNumber = true;\r\n const buyerDeaNumber = $ctrl.certificate ? $ctrl.certificate.contact_dea : null;\r\n\r\n let orderFormNumber = null;\r\n if ($ctrl.CsosCheckoutMode === \"CSOS\")\r\n orderFormNumber = $ctrl.order_form_number.length > 0 ? $ctrl.order_form_number_prefix + $ctrl.order_form_number : null;\r\n else\r\n orderFormNumber = $ctrl.order_form_number.length > 0 ? $ctrl.order_form_number : null;\r\n\r\n\r\n if (!buyerDeaNumber || !orderFormNumber) {\r\n $ctrl.validatingOrderFormNumber = false;\r\n return;\r\n }\r\n\r\n\r\n session.cart\r\n .isOrderFormNumberUnique(buyerDeaNumber, orderFormNumber)\r\n .then(result => {\r\n if (result.does_exist)\r\n $ctrl.orderFormNumberIsUnique = false;\r\n else\r\n $ctrl.orderFormNumberIsUnique = true;\r\n })\r\n .finally(() => $ctrl.validatingOrderFormNumber = false);\r\n };\r\n\r\n $ctrl.checkoutClicked = () => {\r\n $ctrl.errors = [];\r\n $ctrl.busy = true;\r\n\r\n if (session.cartTypeCode === CART_TYPE_CODE.CSOS && $ctrl.CsosCheckoutMode === \"CSOS\") {\r\n session\r\n .cart\r\n .createPurchaseOrderCsos(\r\n $ctrl.billingAddress.contact_id,\r\n $ctrl.shippingAddress.contact_id,\r\n $ctrl.customer_order_no,\r\n $ctrl.order_name,\r\n $ctrl.shipping_instructions,\r\n $ctrl.certificate.contact_dea,\r\n $ctrl.certificate.certificate_id,\r\n $ctrl.certificatePassword,\r\n $ctrl.order_form_number.length ? $ctrl.order_form_number_prefix + $ctrl.order_form_number : null,\r\n $ctrl.delivery_contact_phone\r\n )\r\n .then(response => {\r\n if (response.Success) {\r\n //$window.ga(\"send\", \"event\", \"Orders\", \"orderCreated\");\r\n toast.success(\"Checkout\", \"Success\");\r\n $location.path(`/order-complete/${response.OrderId}`);\r\n } else {\r\n console.log(\"Checkout Failed\", response);\r\n if (response.InvalidPassword) { $ctrl.errors.push(\"Invalid Certificate Password\"); return; }\r\n\r\n if (response.SaveOrderResult) {\r\n const sor = response.SaveOrderResult;\r\n\r\n if (sor.ValidateOrderResult) {\r\n const vor = sor.ValidateOrderResult;\r\n\r\n if (!!vor.DrugSchedulesInvalid) {\r\n $ctrl.errors.push(`${vor.InvalidSchedules} cannot be purchased with this certificate.`);\r\n console.log(`Cert Schedules:${vor.CertSchedules}`);\r\n return;\r\n }\r\n\r\n if (vor.ValidateCertificateResult) {\r\n const vcr = vor.ValidateCertificateResult;\r\n\r\n if (!!vcr.LdapNotAvailable) $ctrl.errors.push(\"Failed to contact the DEA LDAP server. Please try again later.\");\r\n if (!!vcr.DeaNumberNotValid) { $ctrl.errors.push(\"DEA Number is not correct.\"); return; }\r\n if (!!vcr.Expired) { $ctrl.errors.push(\"The certificate is Expired.\"); return; }\r\n if (!!vcr.PrivateKeyMissing) { $ctrl.errors.push(\"The certificate is missing the private key.\"); return; }\r\n if (!!vcr.Revoked) { $ctrl.errors.push(\"The certificate has been revoked.\"); return; }\r\n if (!!vcr.ChainNotValid) { $ctrl.errors.push(\"The certificate is not a valid certificate for CSOS (Certificate chain not valid).\"); return; }\r\n }\r\n }\r\n }\r\n if (!$ctrl.errors.length)\r\n $ctrl.errors.push(\"Please refresh the page and try again.\");\r\n }\r\n })\r\n .catch(toast.errorHandler)\r\n .finally(() => $ctrl.busy = false);\r\n } else {\r\n\r\n let cs_dea_number = null;\r\n if (session.cartTypeCode === CART_TYPE_CODE.CSOS && $ctrl.CsosCheckoutMode === \"NotCSOS\") {\r\n if ($ctrl.notCsosDeaNumber !== \"Not Listed\")\r\n cs_dea_number = $ctrl.notCsosDeaNumber;\r\n }\r\n\r\n session\r\n .cart\r\n .createPurchaseOrder(\r\n $ctrl.billingAddress.contact_id,\r\n $ctrl.shippingAddress.contact_id,\r\n $ctrl.customer_order_no,\r\n $ctrl.order_name,\r\n $ctrl.shipping_instructions,\r\n $ctrl.order_form_number_222,\r\n cs_dea_number,\r\n $ctrl.recur,\r\n $ctrl.recur ? $ctrl.recurPeriod : null,\r\n $ctrl.delivery_contact_phone,\r\n $ctrl.recurStartdate\r\n )\r\n .then(orderId => {\r\n //$window.ga(\"send\", \"event\", \"Orders\", \"orderCreated\");\r\n toast.success(\"Checkout\", \"Success\");\r\n $location.path(`/order-complete/${orderId}`);\r\n })\r\n .catch(toast.errorHandler)\r\n .finally(() => $ctrl.busy = false);\r\n }\r\n };\r\n\r\n $ctrl.recurPeriodChanged = () => {\r\n const period = $ctrl.recurPeriod;\r\n switch (period) {\r\n case \"weekly\":\r\n $ctrl.recurStartdate = $ctrl.recurWeeklyDefaultStartDate;\r\n break;\r\n case \"biweekly\":\r\n $ctrl.recurStartdate = $ctrl.recurBiweeklyDefaultStartDate;\r\n break;\r\n case \"monthly\":\r\n $ctrl.recurStartdate = $ctrl.recurMonthlyDefaultStartDate;\r\n break;\r\n }\r\n };\r\n\r\n $ctrl.recurStartdateHasError = () => {\r\n const minDate = addDays(today, 1);\r\n const startDate = $ctrl.recurStartdate;\r\n\r\n if (!startDate)\r\n return true;\r\n\r\n if (startDate < minDate)\r\n return true;\r\n\r\n return false;\r\n };\r\n\r\n //DATEPICKER FUNCTION\r\n $ctrl.toggles = {};\r\n $ctrl.toggleDatePicker = datePicker => {\r\n $ctrl.toggles[datePicker] = !$ctrl.toggles[datePicker];\r\n };\r\n\r\n $ctrl.datePickerOptions = {\r\n \"show-weeks\": false,\r\n timezone: \"utc\",\r\n minDate: addDays(today, 1)\r\n };\r\n }\r\n controller.$inject = [\"$q\", \"$window\", \"$location\", \"$routeParams\", \"sessionService\", \"stToastFactory\", \"$rootScope\", \"CART_TYPE_CODE\"];\r\n\r\n})()","(function(){\r\n \"use strict\";\r\n \r\n angular\r\n .module(\"app\")\r\n .component(\"addressDropdown\", { // shipping-address-dropdown\r\n templateUrl: \"src/app/addressDropdown/addressDropdown.html\",\r\n controller: controller,\r\n bindings: {\r\n addresses: \"<\",\r\n certificates: \"<\",\r\n selectedAddress: \"<\",\r\n onAddressSelected: \"&\",\r\n isWorking: \"<\",\r\n certDisplay: \"<\",\r\n addCertDisplay: \"<\"\r\n }\r\n });\r\n\r\n function controller() {\r\n const $ctrl = this;\r\n $ctrl.addressNeedsCert = () => {\r\n if (!$ctrl.selectedAddress)\r\n return false;\r\n if ($ctrl.selectedAddress && $ctrl.certificates && $ctrl.certificates.some(c => $ctrl.selectedAddress.deas.some(dea => dea.identification_code === c.contact_dea)))\r\n return false;\r\n return true;\r\n }\r\n\r\n $ctrl.selectAddress = address => {\r\n $ctrl.selectedAddress = address;\r\n $ctrl.onAddressSelected({ address });\r\n };\r\n\r\n $ctrl.formatAddress = address => {\r\n if (!address) return \"Select Address\";\r\n\r\n let certLine = `
CSOS Certificate: Not Found`;\r\n if ($ctrl.certificates && $ctrl.certificates.some(c => address.deas.some(dea => dea.identification_code === c.contact_dea))) {\r\n certLine = `
CSOS Certificate: Yes`;\r\n }\r\n\r\n return !address.customer_id\r\n ? `${address.first_name}`\r\n : `${address.first_name} ${address.last_name}` +\r\n (address.address1 ? `
${address.address1}` : '') +\r\n (address.address2 ? `
${address.address2}` : '') +\r\n `
${address.city_name}, ${address.state_code} ${address.zip_code}` +\r\n ($ctrl.certDisplay ? certLine : '');\r\n };\r\n\r\n // this puts around the name\r\n $ctrl.formatAddressForList = address => {\r\n let certLine = `
CSOS Certificate: Not Found`;\r\n if ($ctrl.certificates && $ctrl.certificates.some(c => address.deas.some(dea => dea.identification_code === c.contact_dea))) {\r\n certLine = `
CSOS Certificate: Yes`;\r\n }\r\n\r\n return !address.customer_id\r\n ? `${address.first_name}`\r\n : `${address.first_name} ${address.last_name}` +\r\n (address.address1 ? `
${address.address1}` : '') +\r\n (address.address2 ? `
${address.address2}` : '') +\r\n `
${address.city_name}, ${address.state_code} ${address.zip_code}` +\r\n ($ctrl.certDisplay ? certLine : '');\r\n };\r\n\r\n }\r\n controller.$inject = [];\r\n \r\n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"bonusDiscountDetailsModal\", { // bonus-discount-details-modal\n bindings: {\n onClose: \"&\",\n onDismiss: \"&\"\n },\n templateUrl: \"src/app/bonusDiscountDetailsModal/bonusDiscountDetailsModal.html\",\n controller: controller\n });\n\n function controller(session) {\n const $ctrl = this;\n $ctrl.session = session;\n\n $ctrl.$onInit = () => {\n\n };\n }\n controller.$inject = [\"sessionService\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"contact\", { // contact\n templateUrl: \"src/app/contact/contact.html\",\n controller: controller\n });\n\n function controller() {\n const $ctrl = this;\n }\n controller.$inject = [];\n \n})()","(function() {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"forgotPassword\",\r\n { // forgot-password\r\n templateUrl: \"src/app/forgotPassword/forgotPassword.html\",\r\n controller: controller,\r\n bindings: {\r\n ui: \"<\",\r\n onReturnToLogin: \"&\",\r\n onContinue: \"&\"\r\n }\r\n });\r\n\r\n function controller(EMAIL_FORMAT) {\r\n const $ctrl = this;\r\n $ctrl.emailFormat = EMAIL_FORMAT;\r\n\r\n $ctrl.formData = {\r\n email: \"\"\r\n };\r\n }\r\n\r\n controller.$inject = [\"EMAIL_FORMAT\"];\r\n\r\n})();","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"cart\", { // cart\n templateUrl: \"src/app/cart/cart.html\",\n controller: controller\n });\n\n function controller($location, session, CART_TYPE_CODE) {\n const $ctrl = this;\n $ctrl.session = session;\n\n $ctrl.canProceed = () => session.cart.items.every(item => !item.isUpdating);\n\n $ctrl.proceedClicked = () => {\n $location.path(\"/checkout\");\n };\n\n $ctrl.cartTypeName = () => {\n if (session.cartTypeCode === CART_TYPE_CODE.CSOS)\n return \"Controlled Substances Cart\";\n return \"Cart\";\n };\n\n $ctrl.showBundleSuggest = () => {\n //return !$ctrl.session.cart.items.some(i => i.incentives.filter(i => i.incentive_type_Code === \"BND\").length > 0);\n return false;\n };\n }\n controller.$inject = [\"$location\", \"sessionService\", \"CART_TYPE_CODE\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"cartProductList\", { // cart-product-list\n templateUrl: \"src/app/cart/cartProductList.html\",\n controller: controller\n });\n\n\tfunction controller(session) {\n const $ctrl = this;\n\t\t$ctrl.session = session;\n\t}\n\tcontroller.$inject = [\"sessionService\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"cartProductListItem\", { // cart-product-list-item\n bindings: {\n\t\t\t\titem: \"<\"\n },\n templateUrl: \"src/app/cart/cartProductListItem.html\",\n controller: controller\n });\n\n function controller(session, toast, CART_TYPE_CODE) {\n const $ctrl = this;\n $ctrl.session = session;\n $ctrl.CART_TYPE_CODE = CART_TYPE_CODE;\n\t $ctrl.ui = {\n\t busy: false\n\t };\n $ctrl.session = session;\n $ctrl.qty = 0;\n $ctrl.product = null;\n $ctrl.kitCheck = false;\n\n\n $ctrl.$onChanges = changes => {\n $ctrl.qty = changes.item.currentValue.quantity;\n };\n\n $ctrl.$onInit = () => {\n $ctrl.product = session.products.allProducts.find(p => $ctrl.item.item_id === p.item_id && $ctrl.item.sale_UOM === p.sale_UOM);\n $ctrl.kitCheck = $ctrl.item.kit_check_surcharge != null;\n };\n\n $ctrl.hasBundleIncentive = () => {\n $ctrl.item.incentives.some(i => i.incentive_type_Code === \"BND\");\n };\n\n\t\t$ctrl.showUpdate = () => {\n\n\t\t\t// show update button on ui \n var showUpdateButton = $ctrl.item && $ctrl.qty !== undefined && $ctrl.qty !== $ctrl.item.quantity;\n\n if ($ctrl.item.max_sale_qty)\n showUpdateButton = showUpdateButton && $ctrl.qty <= $ctrl.item.max_sale_qty;\n\n\t\t\t// flag item as being updated\n\t\t\tconst isUpdating = $ctrl.qty != $ctrl.item.quantity;\n\t\t $ctrl.item.isUpdating = isUpdating;\n\t\t\t\n\t\t\treturn showUpdateButton;\n\t\t};\n\n $ctrl.showDiscountPendingBudesonide = () => {\n //if ($ctrl.item.incentives.length > 0)\n // return false;\n\n //if ($ctrl.item.item_id === 287 || $ctrl.item.item_id === 285)\n // return true;\n\n return false;\n };\n\n $ctrl.showDiscountPendingNotBudesonide = () => {\n //if ($ctrl.item.incentives.length > 0)\n // return false;\n\n //if ($ctrl.item.item_id === 287 || $ctrl.item.item_id === 285)\n // return false;\n\n //return session.incentives.some(inc => inc.items.some(i => i.item_id === $ctrl.item.item_id));\n return false;\n };\n\n //$ctrl.calcOrigPrice = () => {\n // var price = $ctrl.item.sale_UOM_price;\n // $ctrl.item.incentives.forEach(inc => price += inc.discount_amount);\n // return price;\n //};\n\n $ctrl.calcDiscountApplied = () => {\n var price = 0;\n $ctrl.item.incentives.filter(inc => inc.display_in_line_item_level_bit).forEach(inc => price += inc.discount_amount);\n return price;\n };\n\n $ctrl.updateClicked = () => {\n return updateItem();\n };\n\n $ctrl.kitCheckChanged = () => {\n return updateItem();\n };\n\n function updateItem() {\n $ctrl.ui.busy = true;\n const kit_check_surcharge = $ctrl.kitCheck ? $ctrl.product.kit_check_surcharge : null;\n if ($ctrl.qty == 0) {\n return deleteItem();\n } else {\n return session\n .cart\n .updateItem($ctrl.item.item_id, $ctrl.qty, $ctrl.item.sale_UOM, kit_check_surcharge)\n .then(() => {\n $ctrl.item.isUpdating = false;\n })\n .catch(toast.errorHandler)\n .finally(() => { $ctrl.ui.busy = false; });\n }\n }\n\n $ctrl.deleteClicked = () => {\n return deleteItem();\n };\n\n $ctrl.calcPrimaryPackQty = () => {\n const multiplier = $ctrl.item.unit_of_measure === $ctrl.item.sale_UOM ? 1 : $ctrl.item.units_per_case;\n return $ctrl.item.vials_per_unit * multiplier * $ctrl.qty;\n\t };\n\n function deleteItem() {\n $ctrl.ui.busy = true;\n\t\t\treturn session\n\t\t\t\t.cart\n\t\t\t\t.removeItem($ctrl.item.item_id, $ctrl.item.sale_UOM)\n .catch(toast.errorHandler)\n .finally(() => { $ctrl.ui.busy = false; });\n }\n\n $ctrl.isQuantityGreaterThanMaxQuantity = () => {\n return $ctrl.item.max_sale_qty && $ctrl.qty > $ctrl.item.max_sale_qty;\n };\n\n $ctrl.getMaxQuantityErrorMessage = () => {\n return `Maximum Quantity is ${$ctrl.item.max_sale_qty} ${$ctrl.item.sale_UOM_desc}${$ctrl.item.max_sale_qty === 1 ? \"\" : \"s\"}.`;\n }\n }\n controller.$inject = [\"sessionService\", \"stToastFactory\", \"CART_TYPE_CODE\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"impersonate\", { // impersonate\n templateUrl: \"src/app/impersonate/impersonate.html\",\n controller: controller\n });\n\n function controller($routeParams, $cookies, $location, session, loginModal) {\n const $ctrl = this;\n\n $ctrl.$onInit = () => {\n const token = $routeParams.token;\n $cookies.put(\"stcart\", token);\n session.refresh(true).then(() => {\n\n session.isLoaded = true; // Set this here because overriding the app.run function.\n\n if (!session.customer)\n loginModal(\"chooseCustomer\").then(() => $location.path(\"/\"));\n else\n $location.path(\"/\");\n\n });\n };\n }\n controller.$inject = [\"$routeParams\", \"$cookies\", \"$location\", \"sessionService\", \"loginModal\"];\n \n})()","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .component(\"changePassword\", { // change-password\n templateUrl: \"src/app/changePassword/changePassword.html\",\n controller: controller\n });\n\n function controller($routeParams, $http, toast) {\n const $ctrl = this;\n $ctrl.id = $routeParams.id;\n $ctrl.user = {\n user_id: \"\",\n first_name: \"\",\n last_name: \"\",\n password: \"\",\n password2: \"\"\n };\n $ctrl.ui = {\n isLoading: true,\n isExpired: false,\n noRecordFound: false,\n emailSent: false,\n passwordUpdated: false,\n canContinue: () => {\n return !$ctrl.ui.isLoading && $ctrl.user.password && $ctrl.user.password2 && ($ctrl.user.password === $ctrl.user.password2);\n },\n passwordsDontMatch: () => {\n return $ctrl.user.password && $ctrl.user.password2 && ($ctrl.user.password !== $ctrl.user.password2); \n },\n passwordErrors: []\n };\n\n $ctrl.$onInit = () => {\n $http\n .get(`/api/users/for-change-password/${$ctrl.id}/`)\n .then(result => {\n if (!result.data) {\n $ctrl.ui.noRecordFound = true;\n } else if (result.data.is_expired) {\n $ctrl.user.user_id = result.data.user_id;\n $ctrl.ui.isExpired = true;\n } else {\n $ctrl.user.user_id = result.data.user_id;\n $ctrl.user.first_name = result.data.first_name;\n $ctrl.user.last_name = result.data.last_name;\n }\n })\n .catch(toast.errorHandler)\n .finally(() => $ctrl.ui.isLoading = false);\n };\n\n $ctrl.continueClicked = () => {\n $http\n .post(`/api/users/change-password/`, { reset_pwd_guid: $ctrl.id, password: $ctrl.user.password })\n .then(result => {\n if (result.data[0].is_valid) {\n toast.success(\"Set Password\", \"Password has been saved.\");\n $ctrl.ui.passwordUpdated = true;\n } else {\n $ctrl.ui.passwordErrors = result.data.filter(d => !d.is_valid);\n }\n })\n .catch(toast.errorHandler);\n };\n\n $ctrl.sendEmailClicked = () => {\n $ctrl.ui.emailSent = true;\n $http\n .post(`/api/users/password-reset/`, { user_id: $ctrl.user.user_id })\n .then(result => {\n toast.success(\"Send Email\", \"Email has been sent.\");\n })\n .catch(error => {\n toast.errorHandler(error);\n $ctrl.ui.emailSent = false;\n });\n };\n }\n controller.$inject = [\"$routeParams\", \"$http\", \"stToastFactory\"];\n\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"customerDropdown\", { // customer-dropdown\r\n templateUrl: \"src/app/customerDropdown/customerDropdown.html\",\r\n controller: controller,\r\n bindings: {\r\n selectedCustomerId: \"<\",\r\n selectedCompanyName: \"<\",\r\n onCustomerSelected: \"&\"\r\n }\r\n });\r\n\r\n function controller(session) {\r\n const $ctrl = this;\r\n $ctrl.session = session;\r\n $ctrl.customer = null;\r\n\r\n // customer dropdown\r\n $ctrl.customers = [...session.user.customers].orderBy(\"company_name\");\r\n if ($ctrl.customers.length > 1) {\r\n $ctrl.customers.unshift({ customer_id: null, company_name: \"Any Customer\" });\r\n }\r\n\r\n $ctrl.$onChanges = () => {\r\n if (!session.user.is_admin)\r\n $ctrl.customer = $ctrl.customers.find(c => c.customer_id === $ctrl.selectedCustomerId);\r\n else if ($ctrl.selectedCompanyName && $ctrl.selectedCustomerId !== ($ctrl.customer || {}).customer_id) {\r\n // if customer is passed in, and different from what is currently selected...\r\n $ctrl.search($ctrl.selectedCompanyName).then(customers => {\r\n $ctrl.customer = customers.find(c => c.customer_id === $ctrl.selectedCustomerId);\r\n });\r\n }\r\n };\r\n\r\n // customer search for admin users\r\n $ctrl.search = company_name => session.customers.search(company_name);\r\n\r\n $ctrl.isCustomerTextValid = () => {\r\n // When a customer is selected, $ctrl.customer will be the object selected,\r\n // otherwise it will just be a string of whatever the user has typed.\r\n // It is valid if nothing is selected, or a product object is selected\r\n return $ctrl.customer == null || $ctrl.customer.length === 0 || typeof $ctrl.customer === \"object\";\r\n };\r\n\r\n }\r\n controller.$inject = [\"sessionService\"];\r\n\r\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"orders\", { // orders\r\n templateUrl: \"src/app/orders/orders.html\",\r\n controller: controller\r\n });\r\n\r\n /**\r\n * @param {ng.IScope} $scope\r\n * @param {ng.IQService} $q\r\n * @param {ng.IFilterService} $filter\r\n * @param {any} orders\r\n * @param {any} lookups\r\n * @param {any} session\r\n * @param {any} toast\r\n */\r\n function controller($window, $location, $scope, $q, $filter, $analytics, orders, lookups, session, toast) {\r\n const $ctrl = this;\r\n $ctrl.ui = {\r\n busy: {\r\n addresses: false,\r\n products: false,\r\n search: false\r\n }\r\n };\r\n\r\n // orders service\r\n $ctrl.orders = orders;\r\n\r\n // customer dropdown\r\n $ctrl.customerSelected = customer => {\r\n if ($ctrl.selectedCustomer === customer) return $q.resolve();\r\n\r\n $ctrl.selectedCustomer = customer;\r\n $ctrl.orders.searchCriteria.customer_id = customer ? customer.customer_id : null;\r\n $ctrl.orders.searchCriteria.company_name = customer ? customer.company_name : null;\r\n return $q.all([\r\n loadAddressesForSelectedCustomer(),\r\n loadProductsForSelectedCustomer()\r\n ]);\r\n };\r\n\r\n // address dropdown\r\n const anyAddress = { customer_id: null, shipping_contact_id: null, first_name: \"Any Address\" };\r\n $ctrl.addresses = [anyAddress];\r\n $ctrl.selectedAddress = anyAddress;\r\n $ctrl.addressSelected = address => {\r\n $ctrl.selectedAddress = address;\r\n $ctrl.orders.searchCriteria.shipping_contact_id = address.shipping_contact_id;\r\n };\r\n\r\n const dateFilter = $filter('date');\r\n $ctrl.addressDateRange = () => {\r\n if (!$ctrl.orders.searchCriteria.order_from_date || !$ctrl.orders.searchCriteria.order_to_date)\r\n return \"\";\r\n else\r\n return `used between ${dateFilter($ctrl.orders.searchCriteria.order_from_date, 'MM/dd/yyyy')} and ${dateFilter($ctrl.orders.searchCriteria.order_to_date, 'MM/dd/yyyy')}`;\r\n }\r\n\r\n // products dropdown\r\n $ctrl.products = [];\r\n $ctrl.selectedProduct = null;\r\n $ctrl.productSelected = product => {\r\n $ctrl.selectedProduct = product;\r\n $ctrl.orders.searchCriteria.item_id = product ? product.item_id : null;\r\n };\r\n $ctrl.isProductSearchTextValid = () => {\r\n // When a product is selected, $ctrl.productSearchText will be the object selected,\r\n // otherwise it will just be a string of whatever the user has typed.\r\n // It is valid if nothing is selected, or a product object is selected\r\n return $ctrl.productSearchText == null || $ctrl.productSearchText.length === 0 || typeof $ctrl.productSearchText === \"object\";\r\n };\r\n\r\n // handle date changes\r\n $scope.$watchCollection(() => ({\r\n order_from_date: $ctrl.orders.searchCriteria.order_from_date,\r\n order_to_date: $ctrl.orders.searchCriteria.order_to_date\r\n }),\r\n (newDates, oldDates) => {\r\n if (newDates === oldDates) return;\r\n if (moment(newDates.order_from_date).isSame(oldDates.order_from_date) && moment(newDates.order_to_date).isSame(oldDates.order_to_date)) return;\r\n\r\n if (newDates.order_from_date && newDates.order_to_date)\r\n loadAddressesForSelectedCustomer();\r\n });\r\n\r\n // order status dropdown\r\n $ctrl.orderStatuses = [{ OrderStatus: null, Description: \"Any\" }];\r\n\r\n $ctrl.$onInit = () => {\r\n $q.all([\r\n lookups.getOrderStatuses(),\r\n loadAddressesForSelectedCustomer(),\r\n loadProductsForSelectedCustomer()\r\n ])\r\n .then(([orderStatuses]) => {\r\n $ctrl.orderStatuses = $ctrl.orderStatuses.concat(orderStatuses);\r\n if (!$ctrl.orders.hasSearched)\r\n $ctrl.clear();\r\n $ctrl.search();\r\n })\r\n .catch(toast.errorHandler);\r\n };\r\n\r\n function loadAddressesForSelectedCustomer() {\r\n $ctrl.ui.busy.addresses = true;\r\n return session.addresses.getShippingByOrderDate(\r\n $ctrl.orders.searchCriteria.customer_id,\r\n $ctrl.orders.searchCriteria.order_from_date,\r\n $ctrl.orders.searchCriteria.order_to_date)\r\n .then(addresses => {\r\n $ctrl.addresses = [anyAddress].concat(addresses);\r\n $ctrl.addressSelected($ctrl.addresses.find(a => a.shipping_contact_id === $ctrl.orders.searchCriteria.shipping_contact_id) || anyAddress);\r\n })\r\n .finally(() => { $ctrl.ui.busy.addresses = false; });\r\n }\r\n\r\n function loadProductsForSelectedCustomer() {\r\n $ctrl.ui.busy.products = true;\r\n return session.products.getForCustomer($ctrl.orders.searchCriteria.customer_id)\r\n .then(products => {\r\n $ctrl.products = products;\r\n $ctrl.productSelected(products.find(p => p.item_id === $ctrl.orders.searchCriteria.item_id));\r\n $ctrl.productSearchText = $ctrl.selectedProduct;\r\n })\r\n .finally(() => { $ctrl.ui.busy.products = false; });\r\n }\r\n\r\n $ctrl.canSearch = () => $ctrl.orders.canSearch() && $ctrl.form.$valid;\r\n\r\n $ctrl.search = () => {\r\n $ctrl.ui.busy.search = true;\r\n $ctrl.orders.search()\r\n .catch(toast.errorHandler)\r\n .finally(() => { $ctrl.ui.busy.search = false; });\r\n };\r\n\r\n $ctrl.clear = () => {\r\n $ctrl.orders.clear();\r\n $ctrl.customerSelected(session.customer).then(() => {\r\n $ctrl.selectedAddress = $ctrl.addresses[0];\r\n $ctrl.productSelected(undefined);\r\n $ctrl.productSearchText = undefined;\r\n });\r\n };\r\n\r\n $ctrl.getExport = () => {\r\n $analytics.eventTrack(\"Click\", { category: \"Export\", label: \"Orders\", value: $ctrl.orders.searchResults.length });\r\n return $ctrl.orders.searchResults.map(order => ({\r\n \"Customer\": order.company_name,\r\n \"Customer Order Number\": order.customer_order_no,\r\n \"Order Id\": order.order_id,\r\n \"Order Date\": order.order_date,\r\n \"Status\": order.status_description,\r\n \"Ship To\": `${order.ship_first_name} ${order.ship_last_name}`,\r\n \"Address\": `${order.ship_address1 || ''}`,\r\n \"Address 2\": `${order.ship_address2 || ''}`,\r\n \"City\": `${order.city_name || ''}`,\r\n \"State\": `${order.state_code || ''}`,\r\n \"Zip\": `${order.zip_code || ''}`,\r\n \"Order Name\": order.order_name,\r\n \"Total\": order.order_total\r\n }));\r\n };\r\n\r\n // format address in grid\r\n $ctrl.formatAddress = order => {\r\n return `${order.ship_first_name} ${order.ship_last_name}
` +\r\n `${order.ship_address1}
` +\r\n (order.ship_address2 ? `${order.ship_address2}
` : '') +\r\n `${order.city_name || ''}${order.city_name && ', ' || ''}${order.state_code || ''} ${order.zip_code || ''}`;\r\n };\r\n\r\n $ctrl.reorderClicked = (orderId) => {\r\n //$window.ga(\"send\", \"event\", \"Reorder\", \"orderListReorderClicked\");\r\n $analytics.eventTrack(\"Click\", { category: \"Reorder\", label: \"Order History\", value: `${orderId}` });\r\n $location.path(`/purchase-order/${orderId}`);\r\n };\r\n\r\n //DATEPICKER FUNCTION\r\n $ctrl.toggles = {};\r\n $ctrl.toggleDatePicker = datePicker => {\r\n $ctrl.toggles[datePicker] = !$ctrl.toggles[datePicker];\r\n };\r\n const tenYearsAgo = new Date();\r\n tenYearsAgo.setYear(tenYearsAgo.getFullYear() - 10);\r\n\r\n $ctrl.datePickerOptions = {\r\n \"show-weeks\": false,\r\n timezone: \"utc\",\r\n minDate: tenYearsAgo\r\n };\r\n }\r\n controller.$inject = [\"$window\", \"$location\", \"$scope\", \"$q\", \"$filter\", \"$analytics\", \"ordersService\", \"lookupsService\", \"sessionService\", \"stToastFactory\"];\r\n\r\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"home\", {\r\n templateUrl: \"src/app/home/home.html\",\r\n controller: homeController\r\n });\r\n\r\n\r\n function homeController($scope, session) {\r\n const $ctrl = this;\r\n $ctrl.session = session;\r\n $scope.home = true;\r\n }\r\n homeController.$inject = [\"$scope\", \"sessionService\"];\r\n\r\n\r\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"chooseCustomerContent\", { // choose-customer-content\r\n templateUrl: \"src/app/login/chooseCustomerContent.html\",\r\n controller: controller,\r\n bindings: {\r\n onContinue: \"&\",\r\n onCancel: \"&\"\r\n }\r\n });\r\n\r\n function controller(session, toast) {\r\n const $ctrl = this;\r\n $ctrl.session = session;\r\n $ctrl.ui = {\r\n busy: false\r\n\t\t};\r\n\r\n\t\tconst defaultCustomer = {\r\n\t\t\tcompany_name: 'Select Customer',\r\n\t\t\tcustomer_id: null\r\n\t\t};\r\n\t\t$ctrl.customers = angular.copy($ctrl.session.user.customers);\r\n\t\t$ctrl.customers.unshift(defaultCustomer);\r\n $ctrl.selectedCustomer = defaultCustomer;\r\n\r\n $ctrl.customerSelected = () => {\r\n $ctrl.ui.busy = true;\r\n session\r\n .setCustomer($ctrl.selectedCustomer)\r\n .then(() => {\r\n $ctrl.onContinue();\r\n })\r\n .catch(toast.errorHandler)\r\n .finally(() => $ctrl.ui.busy = false);\r\n };\r\n\r\n }\r\n controller.$inject = [\"sessionService\", \"stToastFactory\"];\r\n\r\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"chooseProductContent\", { // choose-product-content\r\n templateUrl: \"src/app/login/chooseProductContent.html\",\r\n controller: controller,\r\n bindings: {\r\n onContinue: \"&\",\r\n onCancel: \"&\"\r\n }\r\n });\r\n\r\n function controller(session, toast, CART_TYPE_CODE) {\r\n const $ctrl = this;\r\n $ctrl.session = session;\r\n $ctrl.CART_TYPE_CODE = CART_TYPE_CODE;\r\n $ctrl.ui = {\r\n busy: false\r\n\t\t};\r\n\r\n $ctrl.productSelected = cartTypeCode => {\r\n $ctrl.ui.busy = true;\r\n session\r\n .setCartType(cartTypeCode)\r\n .then(() => {\r\n $ctrl.onContinue();\r\n })\r\n .catch(toast.errorHandler)\r\n .finally(() => $ctrl.ui.busy = false);\r\n };\r\n\r\n }\r\n controller.$inject = [\"sessionService\", \"stToastFactory\", \"CART_TYPE_CODE\"];\r\n\r\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"loginForm\", {\r\n templateUrl: \"src/app/login/loginForm.html\",\r\n controller: controller,\r\n bindings: {\r\n ui: \"<\",\r\n onForgotPassword: \"&\",\r\n onContinue: \"&\",\r\n onCancel: \"&\"\r\n }\r\n });\r\n\r\n function controller(EMAIL_FORMAT) {\r\n const $ctrl = this;\r\n $ctrl.emailFormat = EMAIL_FORMAT;\r\n\r\n $ctrl.formData = {\r\n email: \"\",\r\n password: \"\"\r\n };\r\n }\r\n controller.$inject = [\"EMAIL_FORMAT\"];\r\n\r\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .service(\"loginModal\", loginModalService)\r\n .component(\"loginModalComponent\",\r\n { // login\r\n templateUrl: \"src/app/login/loginModal.html\",\r\n controller: loginModalController,\r\n bindings: {\r\n resolve: \"<\",\r\n close: \"&\",\r\n dismiss: \"&\"\r\n }\r\n });\r\n\r\n const UiState = {\r\n Login: \"login\",\r\n TwoFactor: \"twoFactor\",\r\n ChooseCustomer: \"chooseCustomer\",\r\n ChooseProduct: \"chooseProduct\",\r\n ForgotPassword: \"forgotPassword\"\r\n };\r\n\r\n /**\r\n * @param {ng.IHttpService} $http\r\n * @param {ng.ILocationService} $location\r\n * @param {ng.IQService} $q\r\n * @param {PimsSc.SessionService} session\r\n * @param {string} EMAIL_FORMAT\r\n * @param {PimsSc.StToastFactory} toast\r\n */\r\n function loginModalController($http, $location, $q, session, EMAIL_FORMAT, toast, CART_TYPE_CODE) {\r\n const $ctrl = this;\r\n $ctrl.emailFormat = EMAIL_FORMAT;\r\n $ctrl.form = {\r\n email: \"\",\r\n password: \"\",\r\n authCode: \"\",\r\n errorMessage: \"\"\r\n };\r\n $ctrl.ui = {\r\n state: null,\r\n busy: false\r\n };\r\n $ctrl.$onInit = () => {\r\n $ctrl.ui.state = $ctrl.resolve.initialState || UiState.Login;\r\n };\r\n\r\n $ctrl.forgotPassword = () => {\r\n $ctrl.form.errorMessage = \"\";\r\n $ctrl.ui.state = UiState.ForgotPassword;\r\n };\r\n\r\n $ctrl.loginContinue = form => {\r\n angular.extend($ctrl.form, form);\r\n $ctrl.ui.busy = true;\r\n $ctrl.form.errorMessage = \"\";\r\n $ctrl.form.email = $ctrl.form.email.trim();\r\n\r\n const request = {\r\n email: $ctrl.form.email,\r\n password: $ctrl.form.password\r\n };\r\n session\r\n .login(request)\r\n .then(result => {\r\n\r\n if (!result.logged_in) {\r\n if (result.has_error)\r\n $ctrl.form.errorMessage = result.reason;\r\n else\r\n $ctrl.ui.state = UiState.TwoFactor;\r\n return;\r\n }\r\n checkIfCustomerIsChosen();\r\n })\r\n .catch(toast.errorHandler)\r\n .finally(() => $ctrl.ui.busy = false);\r\n };\r\n\r\n $ctrl.onCancel = () => {\r\n const logout = session.isLoggedIn ? session.logOut() : $q.resolve();\r\n logout.then(() => {\r\n $ctrl.dismiss();\r\n $location.path(\"/\");\r\n });\r\n };\r\n\r\n $ctrl.twoFactorContinue = form => {\r\n angular.extend($ctrl.form, form);\r\n $ctrl.ui.busy = true;\r\n $ctrl.form.errorMessage = \"\";\r\n\r\n const request = {\r\n email: $ctrl.form.email,\r\n password: $ctrl.form.password,\r\n auth_code: $ctrl.form.authCode\r\n };\r\n session\r\n .login(request)\r\n .then(result => {\r\n if (!result.logged_in) {\r\n $ctrl.form.errorMessage = result.reason;\r\n return;\r\n }\r\n checkIfCustomerIsChosen();\r\n })\r\n .catch(toast.errorHandler)\r\n .finally(() => $ctrl.ui.busy = false);\r\n }\r\n\r\n function checkIfCustomerIsChosen() {\r\n if (!session.customer)\r\n $ctrl.ui.state = UiState.ChooseCustomer;\r\n else if (!session.cartTypeCode)\r\n setDefaultCartType().then(() => $ctrl.close());\r\n else\r\n $ctrl.close();\r\n //$location.path(\"/\");\r\n }\r\n\r\n $ctrl.customerChosen = () => {\r\n setDefaultCartType().then(() => $ctrl.close());\r\n //$ctrl.ui.state = UiState.ChooseProduct; dont select product -- per muthu (login has too many steps)\r\n //$location.path(\"/\");\r\n };\r\n\r\n $ctrl.productChosen = () => {\r\n $ctrl.close();\r\n //$location.path(\"/\");\r\n };\r\n\r\n function setDefaultCartType() {\r\n $ctrl.ui.busy = true;\r\n return session\r\n .setCartType(CART_TYPE_CODE.RX)\r\n .catch(toast.errorHandler)\r\n .finally(() => $ctrl.ui.busy = false);\r\n }\r\n\r\n $ctrl.forgotPasswordContinue = form => {\r\n $ctrl.ui.busy = true;\r\n $http.post(\"/api/users/password-reset-for-email\", { email: form.email })\r\n .then(() => $ctrl.ui.emailSent = true)\r\n .catch(toast.errorHandler)\r\n .finally(() => $ctrl.ui.busy = false);\r\n };\r\n\r\n $ctrl.returnToLogin = () => {\r\n $ctrl.form.errorMessage = \"\";\r\n $ctrl.ui.state = UiState.Login;\r\n }\r\n\r\n }\r\n loginModalController.$inject = [\"$http\", \"$location\", \"$q\", \"sessionService\", \"EMAIL_FORMAT\", \"stToastFactory\", \"CART_TYPE_CODE\"];\r\n\r\n /**\r\n * @param {ng.ui.bootstrap.IModalService} $uibModal\r\n */\r\n function loginModalService($uibModal) {\r\n let modal;\r\n return function (initialState) {\r\n // only open the login modal if it's not already open\r\n if (!modal) {\r\n modal = $uibModal.open({\r\n component: \"loginModalComponent\",\r\n resolve: {\r\n initialState: () => initialState\r\n }\r\n });\r\n modal.result.finally(() => { modal = null; });\r\n }\r\n return modal.result;\r\n };\r\n }\r\n loginModalService.$inject = [\"$uibModal\"];\r\n\r\n})();","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"twoFactorForm\", {\r\n templateUrl: \"src/app/login/twoFactorForm.html\",\r\n controller: controller,\r\n bindings: {\r\n ui: \"<\",\r\n onContinue: \"&\"\r\n }\r\n });\r\n\r\n function controller() {\r\n const $ctrl = this;\r\n\r\n $ctrl.formData = {\r\n authCode: \"\"\r\n };\r\n }\r\n controller.$inject = [];\r\n\r\n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"incentiveDetailsModal\", { // incentive-details-modal\n bindings: {\n onClose: \"&\",\n onDismiss: \"&\",\n incentive: \"<\"\n },\n templateUrl: \"src/app/incentiveDetailsModal/incentiveDetailsModal.html\",\n controller: controller\n });\n\n function controller() {\n const $ctrl = this;\n\n $ctrl.$onInit = () => {\n\n };\n }\n controller.$inject = [];\n \n})()","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .component(\"productDetail\", { // product-detail\n templateUrl: \"src/app/productDetail/productDetail.html\",\n controller: controller\n });\n\n function controller($routeParams, $location, $uibModal, $analytics, toast, session, $timeout, CART_TYPE_CODE) {\n const $ctrl = this;\n const itemId = $routeParams.id;\n $ctrl.session = session;\n $ctrl.CART_TYPE_CODE = CART_TYPE_CODE;\n $ctrl.product = null;\n $ctrl.quantity = \"\";\n $ctrl.loading = true;\n $ctrl.busy = false;\n $ctrl.existingCount = 0;\n $ctrl.mnRequired = false;\n $ctrl.mnChecked = false;\n $ctrl.maxQuantity = 9999;\n $ctrl.kitCheck = false;\n\n $ctrl.selectedUom = null;\n $ctrl.selectedUomDesc = null;\n\n $ctrl.$onInit = () => {\n session.products\n .get(itemId)\n .then(loadProduct)\n .catch(toast.errorHandler)\n .finally(() => $ctrl.loading = false);\n };\n\n $ctrl.showIncentiveDetails = showIncentiveDetails;\n\n function showIncentiveDetails() {\n let modalInstance = $uibModal.open({\n template: ``,\n controller: [\"$uibModalInstance\", function ($uibModalInstance) {\n const ctrl = this;\n ctrl.incentive = session.incentives.find(i => i.incentive_id === $ctrl.product.incentives[0].incentive_id);\n ctrl.dismiss = $uibModalInstance.dismiss;\n ctrl.close = result => $uibModalInstance.close(result);\n }],\n controllerAs: \"$ctrl\"\n });\n\n modalInstance.result\n .then(function (result) {\n //console.log(\"modalInstance.result\", result);\n });\n }\n\n $ctrl.selectUom = (uom, uomDesc) => {\n $ctrl.selectedUom = uom;\n $ctrl.selectedUomDesc = uomDesc;\n };\n\n $ctrl.canSelectUom = uom => {\n const inCart = session.cart.items.find(i => i.item_id === $ctrl.product.item_id);\n if (!inCart)\n return true;\n return inCart.sale_UOM === uom;\n };\n\n function loadProduct(product) {\n $ctrl.product = product;\n $ctrl.kitCheck = product.kit_check_selected;\n\n const sessionProduct = session.allProducts.find(p => p.item_id === product.item_id);\n if (sessionProduct)\n $ctrl.product.incentives = sessionProduct.incentives;\n\n $ctrl.mnRequired = product.confirm_to_sell === \"Y\";\n\n if (!product.max_sale_qty && product.max_sale_qty !== 0) {\n // null|undefined\r\n } else {\n $ctrl.maxQuantity = product.max_sale_qty; // Can be zero (not allowed to sell, but show in the cart)\r\n }\n\n $timeout(() => {\n new Drift(document.querySelector('.product-detail-image'),\n {\n paneContainer: document.querySelector('.product-detail-image-zoom'),\n hoverDelay: 500,\n zoomFactor: 5,\n hoverBoundingBox: false // this has a bug :(\n });\n },\n 100);\n\n const cartTypeCode = product.is_schedule_drug ? CART_TYPE_CODE.CSOS : CART_TYPE_CODE.RX;\n\n return session\n .setCartType(cartTypeCode)\n .then(() => {\n const inCart = session.cart.items.find(i => i.item_id === product.item_id);\n if (inCart) {\n $ctrl.existingCount = inCart.quantity;\n $ctrl.kitCheck = inCart.kit_check_surcharge != null;\n $ctrl.selectUom(inCart.sale_UOM, inCart.sale_UOM_desc);\n } else {\n $ctrl.selectUom(product.sale_UOM, product.sale_UOM_desc);\n }\n });\n }\n\n\n $ctrl.canAddToCart = () => {\n\n if ($ctrl.maxQuantity === 0)\n return false;\n\n let valid = $ctrl.quantity > 0\n && !$ctrl.isQuantityGreaterThanMaxQuantity()\n && !session.cart.isCartFull;\n\n if (valid && $ctrl.mnRequired)\n valid = $ctrl.mnChecked;\n\n return valid;\n };\n\n $ctrl.addToCartClicked = () => {\n $ctrl.busy = true;\n $analytics.eventTrack(\"Add to Cart\", { category: \"Product\", label: `${$ctrl.product.full_description}`, value: `${itemId}` });\n const item = {\n item_id: itemId,\n quantity: $ctrl.quantity,\n quantity_uom_code: $ctrl.selectedUom,\n kit_check_surcharge: $ctrl.kitCheck ? $ctrl.product.kit_check_surcharge : null\n };\n session.cart\n .addItem(item)\n .then(() => $location.path(\"/cart\"))\n .catch(toast.errorHandler)\n .finally(() => $ctrl.busy = false);\n };\n\n $ctrl.calcPrimaryPackQty = () => {\n const multiplier = $ctrl.selectedUomDesc === $ctrl.product.retail_packaging ? 1 : $ctrl.product.units_per_case;\n return $ctrl.product.vials_per_unit * multiplier * ($ctrl.quantity || 0);\n };\n\n $ctrl.isQuantityGreaterThanMaxQuantity = () => {\n if ($ctrl.existingCount) {\n return $ctrl.quantity + $ctrl.existingCount > $ctrl.maxQuantity;\n }\n return $ctrl.quantity > $ctrl.maxQuantity;\n };\n\n $ctrl.getMaxQuantityErrorMessage = () => {\n return `This product will be allocated to a maximum of ${$ctrl.maxQuantity} ${$ctrl.selectedUomDesc}${$ctrl.maxQuantity === 1 ? \"\" : \"s\"} per purchase order.`;\n }\n\n $ctrl.shouldContactCustomerService = () => {\n const ndcs = ['69374-520-05'];\r\n return ndcs.indexOf($ctrl.product.ndc_code) >= 0;\r\n }\n }\n controller.$inject = [\"$routeParams\", \"$location\", \"$uibModal\", \"$analytics\", \"stToastFactory\", \"sessionService\", \"$timeout\", \"CART_TYPE_CODE\"];\n\n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"productClass\", { // product-class\n templateUrl: \"src/app/productClass/productClass.html\",\n controller: controller\n });\n\n function controller($routeParams, session, CART_TYPE_CODE) {\n const $ctrl = this;\n $ctrl.productClass = $routeParams.classId;\n\n\n $ctrl.$onInit = () => {\n //const classId = $routeParams.classId;\n //const classification = session.classifications.find(c => c.class_id.toString() === classId);\n //$ctrl.className = classification ? classification.class_name : \"Unknown\";\n\n ////session.products.getClassification(classId)\n //// .then(classification => {\n //// $ctrl.className = classification ? classification.class_name : \"Unknown\";\n //// });\n //session.products.searchCriteria.searchText = \"\";\n //session.products.searchCriteria.classId = classId;\n //session.products.searchAll();\n };\n\n //$ctrl.productSelected = cartTypeCode => {\n // session\n // .setCartType(cartTypeCode)\n // .then(() => {\n // session.products.searchCriteria.searchText = \"\";\n // session.gotoProductSearch();\n // });\n //};\n }\n controller.$inject = [\"$routeParams\", \"sessionService\", \"CART_TYPE_CODE\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"receive\", { // receive\n templateUrl: \"src/app/receive/receive.html\",\n controller: controller\n });\n\n function controller(receivesService, productsService, toast) {\n const $ctrl = this;\n $ctrl.pendingReceives = [];\n $ctrl.historicalReceives = [];\n const sevenDaysAgo = new Date();\n sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);\n $ctrl.search_from_date = sevenDaysAgo;\n $ctrl.search_to_date = new Date();\n $ctrl.unexpected = {\n order_id: null,\n product: null,\n lot: \"\",\n quantity: null,\n receive_date: new Date(),\n uom: \"CT\"\n };\n $ctrl.products = [];\n\n $ctrl.toggles = {};\n $ctrl.toggleDatePicker = datePicker => {\n $ctrl.toggles[datePicker] = !$ctrl.toggles[datePicker];\n };\n const tenYearsAgo = new Date();\n tenYearsAgo.setYear(tenYearsAgo.getFullYear() - 10);\n\n $ctrl.datePickerOptions = {\n \"show-weeks\": false,\n timezone: \"utc\",\n minDate: tenYearsAgo\n };\n\n $ctrl.$onInit = () => {\n receivesService.searchPending().then(res => {\n $ctrl.pendingReceives = res.map(r => {\n r.qty = r.order_qty - r.rec_qty;\n r.rec_date = new Date();\n return r;\n });\n });\n productsService.getForUnexpectedReceive().then(res => {\n $ctrl.products = res.sort(sortItemDesc);\n $ctrl.unexpected.product = $ctrl.products[0].item_id;\n });\n };\n\n function sortItemDesc(a, b) {\n if (a.item_desc < b.item_desc)\n return -1;\n if (a.item_desc > b.item_desc)\n return 1;\n return 0;\n }\n\n $ctrl.canReceive = (rec) => {\n if (!rec.qty)\n return false;\n\n if (!rec.rec_date)\n return false;\n\n return true;\n };\n\n $ctrl.canUnexpectedReceive = (rec) => {\n if (!$ctrl.unexpected.lot)\n return false;\n\n if (!$ctrl.unexpected.quantity)\n return false;\n\n if (!$ctrl.unexpected.receive_date)\n return false;\n\n return true;\n };\n\n $ctrl.receiveClicked = rec => {\n const req = {\n receive_date: rec.rec_date, \n order_id: rec.order_id,\n item_id: rec.item_id,\n quantity_received: rec.qty,\n quantity_UOM: rec.order_UOM,\n lot_no: rec.lot_no,\n notes: null\n };\n receivesService\n .create(req)\n .then(res => {\n toast.success(\"Receive\", \"Receive created.\");\n rec.rec_qty = rec.rec_qty + rec.qty;\n rec.qty = rec.order_qty - rec.rec_qty;\n if (rec.qty <= 0) {\n const index = $ctrl.pendingReceives.indexOf(rec);\n $ctrl.pendingReceives.splice(index, 1);\n }\n });\n };\n\n $ctrl.saveUnexpectedClicked = () => {\n const req = {\n receive_date: $ctrl.unexpected.receive_date,\n order_id: $ctrl.unexpected.order_id,\n item_id: $ctrl.unexpected.product,\n quantity_received: $ctrl.unexpected.quantity,\n quantity_UOM: $ctrl.unexpected.uom,\n lot_no: $ctrl.unexpected.lot,\n notes: null\n };\n receivesService\n .create(req)\n .then(res => {\n toast.success(\"Receive\", \"Receive created.\");\n $ctrl.unexpected.order_id = null;\n $ctrl.unexpected.quantity = null;\n $ctrl.unexpected.lot = null;\n $ctrl.unexpected.product = $ctrl.products[0].item_id;\n $ctrl.unexpected.receive_date = new Date();\n $ctrl.unexpected.uom = \"CT\";\n });\n };\n\n $ctrl.search = () => {\n receivesService\n .searchHistorical($ctrl.search_from_date, $ctrl.search_to_date)\n .then(res => $ctrl.historicalReceives = res);\n };\n\n $ctrl.cancelClicked = rec => {\n receivesService\n .cancel(rec.order_receive_id)\n .then(res => rec.receive_status_code = \"CAN\");\n };\n\n $ctrl.uncancelClicked = rec => {\n receivesService\n .uncancel(rec.order_receive_id)\n .then(res => rec.receive_status_code = \"COM\");\n };\n\n }\n controller.$inject = [\"receivesService\", \"productsService\", \"stToastFactory\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"productSearch\", { // product-search\n bindings: {\n productType: \"@\",\n productClass: \"@\"\n },\n templateUrl: \"src/app/productSearch/productSearch.html\",\n controller: controller\n });\n\n function controller($routeParams, $uibModal, session, CART_TYPE_CODE) {\n const $ctrl = this;\n $ctrl.session = session;\n //$ctrl.CART_TYPE_CODE = CART_TYPE_CODE;\n \n \n\n $ctrl.$onInit = () => {\n\n session.products.searchCriteria.cs = $ctrl.productType === CART_TYPE_CODE.CSOS;\n session.products.searchCriteria.classId = $ctrl.productClass == null ? null : parseInt($ctrl.productClass);\n\n //const modalInstance = $uibModal.open({\n // template:\n // ``,\n // controller: [\n // \"$uibModalInstance\", function ($uibModalInstance) {\n // const ctrl = this;\n // ctrl.dismiss = $uibModalInstance.dismiss;\n // ctrl.close = result => $uibModalInstance.close(result);\n // }\n // ],\n // controllerAs: \"$ctrl\"\n //});\n\n //session.products.searchCriteria.classId = null;\n //let searchText = session.products.searchCriteria.searchText;\n\n //if (!session.products.searchCriteria.searchText && !!$routeParams.searchText)\n // searchText = decodeURI($routeParams.searchText);\n //else if (!$routeParams.searchText) \n // searchText = \"\";\n\n //if (session.products.searchCriteria.cs) {\n // session\n // .setCartType(CART_TYPE_CODE.CSOS)\n // .then(() => {\n // session.products.searchCriteria.searchText = searchText;\n // session.products.search();\n // });\n //} else {\n // session\n // .setCartType(CART_TYPE_CODE.RX)\n // .then(() => {\n // session.products.searchCriteria.searchText = searchText;\n // session.products.searchAll();\n // });\n //}\n };\n\n $ctrl.showBonusIncentive = () => {\n return session.customer && session.customer.has_bonus_discount;\n };\n\n $ctrl.bonusProgressPct = () => {\n return Math.round(session.customer.bonus_discount_current_amount / session.customer.bonus_discount_goal_amount*100);\n };\n\n $ctrl.showBonusDiscountDetails = () => {\n const modalInstance = $uibModal.open({\n template:\n ``,\n controller: [\n \"$uibModalInstance\", function($uibModalInstance) {\n const ctrl = this;\n ctrl.dismiss = $uibModalInstance.dismiss;\n ctrl.close = result => $uibModalInstance.close(result);\n }\n ],\n controllerAs: \"$ctrl\"\n });\n\n modalInstance.result\n .then(function(result) {\n //console.log(\"modalInstance.result\", result);\n });\n };\n\n //$ctrl.productSelected = cartTypeCode => {\n // session\n // .setCartType(cartTypeCode)\n // .then(() => {\n // session.products.searchCriteria.searchText = \"\";\n // session.gotoProductSearch();\n // });\n //};\n }\n controller.$inject = [\"$routeParams\", \"$uibModal\", \"sessionService\", \"CART_TYPE_CODE\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"productSearchResults\", { // product-search-results\n templateUrl: \"src/app/productSearch/productSearchResults.html\",\n controller: controller\n });\n\n function controller(session, CART_TYPE_CODE) {\n const $ctrl = this;\n $ctrl.session = session;\n $ctrl.searchCriteria = $ctrl.session.products.searchCriteria;\n $ctrl.classification = null;\n $ctrl.CART_TYPE_CODE = CART_TYPE_CODE;\n\n $ctrl.classification = getClassification();\n\n $ctrl.searchResultItemClass = product => {\n if (product.is_schedule_drug)\n return \"search-result-item-schedule-drug\";\n return \"\";\n };\n\n $ctrl.itemFilter = (value, index, array) => {\n //$ctrl.session.products.searchCriteria.searchText\n if ($ctrl.session.products.searchCriteria.cs && !value.is_schedule_drug)\n return false;\n\n if ($ctrl.session.products.searchCriteria.classId != null) {\n const classification = session.classifications.find(c => c.class_id === $ctrl.session.products.searchCriteria.classId);\n if (!classification)\n return false;\n\n const found = classification.item_ids.find(i => i === value.item_id);\n if (!found)\n return false;\n\n //if (!classification.item_ids.includes(value.item_id))\n // return false;\n }\n\n return true;\n };\n\n $ctrl.searchingText = () => {\n if ($ctrl.session.products.searchCriteria.cs)\n return \"Controlled Substances\";\n \n if ($ctrl.session.products.searchCriteria.classId != null) {\n const classification = session.classifications.find(c => c.class_id === $ctrl.session.products.searchCriteria.classId);\n return `${classification.class_name}`;\n }\n \n return \"All Products\";\n };\n\n\n function getClassification() {\n if ($ctrl.session.products.searchCriteria.classId != null)\n return session.classifications.find(c => c.class_id === $ctrl.session.products.searchCriteria.classId);\n\n return null;\n };\n }\n controller.$inject = [\"sessionService\", \"CART_TYPE_CODE\"];\n \n})()","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .component(\"purchaseOrder\", { // purchase-order\n bindings: {\n hideReorder: \"<\"\n },\n templateUrl: \"src/app/purchaseOrder/purchaseOrder.html\",\n controller: controller\n });\n\n function controller($window, $routeParams, $location, session, ordersService, toast, reportService) {\n const $ctrl = this;\n $ctrl.session = session;\n $ctrl.orderId = $routeParams.orderId;\n $ctrl.order = null;\n\t\t$ctrl.noReorderReasons = [];\n $ctrl.errorOnOrder = null;\n $ctrl.lots = [];\n $ctrl.shippingLabelExists = false;\n $ctrl.shippingLabelDoesNotExist = false;\n $ctrl.clickHereText = \"Click here\";\n $ctrl.canCreateShippingLabel = true;\n $ctrl.trackingNumber = \"\";\n\n $ctrl.$onInit = () => {\n //if (session.user.is_impersonating)\n // $ctrl.noReorderReasons.push(\"Cannot reorder while impersonating.\"); // This requirement was removed.\n\n\t\t\tsession.cart\n\t\t\t\t.getPurchaseOrder($routeParams.orderId)\n .then(loadOrder)\n\t\t\t\t.catch((err) => {\n\t\t\t\t\t$ctrl.errorOnOrder = err.data;\n\t\t\t\t});\n\t\t\t\t\n };\n\n $ctrl.createShippingLabel = () => {\n $ctrl.canCreateShippingLabel = false;\n $ctrl.clickHereText = \"Creating...\";\n\n ordersService.getShippingLabel($ctrl.orderId).then(result => {\n $ctrl.trackingNumber = result.data.TrackingNumber;\n $ctrl.shippingLabelDoesNotExist = false;\n $ctrl.shippingLabelExists = true;\n });\n };\n\n function mergeUnique(arr1, arr2) {\n const items = [];\n arr1.forEach(v => items.push(v));\n arr2.forEach(v => {\n const existing = items.find(i => i.lot_no === v.lot_no);\n if (!existing)\n items.push(v);\n else {\n if (!existing.has_CoA)\n existing.has_CoA = v.has_CoA; // overwrite false with true if any of the lots return true.\n }\n });\n return items;\n }\n\n function shipmentLots(shipment) {\n return shipment.lines.reduce((prev, line) => {\n if (line.lot_no)\n return mergeUnique(prev, [\n {\n lot_no: line.lot_no,\n has_CoA: line.has_CoA\n }]);\n else\n return prev;\n }, []);\n }\n\n function orderLots(order) {\n return order.shipments.reduce((prev, shipment) => {\n return mergeUnique(prev, shipmentLots(shipment));\n }, []);\n }\n\n function itemTotal(item) {\n return item.quantity * item.price_per;\n }\n\n function itemDiscountTotal(item) {\n return item.display_in_line_item_level_bit ? (item.full_price - item.price_per) * item.quantity : 0;\n }\n\n function itemBonusDiscountTotal(item) {\n return !item.display_in_line_item_level_bit ? (item.full_price - item.price_per) * item.quantity : 0;\n }\n\n function surchargeTotal(item) {\n const kitCheck = item.kit_check_surcharge == null ? 0 : item.kit_check_surcharge;\n return item.quantity * kitCheck;\n }\n\n function loadOrder(order) {\n if (!order.shipping_charges)\n order.shipping_charges = 0;\n\n $ctrl.order = order;\n\n if (order.customer_id !== session.customer.customer_id)\n $ctrl.noReorderReasons.push(`Order for ${order.company_name}`);\n\n const reorderItemCount = getReorderItemCount(order);\n\n if (session.cart.itemCount + reorderItemCount > session.cart.maxItemCount)\n $ctrl.noReorderReasons.push(\"Cart does not have enough room for all reorder items.\");\n\n if (!order.lines.some(l => l.can_reorder))\n $ctrl.noReorderReasons.push(\"None of the items are able to be ordered.\");\n\n order.itemDiscountSubTotal = order.lines.reduce((prev, item) => prev + itemDiscountTotal(item), 0);\n order.itemBonusDiscountSubTotal = order.lines.reduce((prev, item) => prev + itemBonusDiscountTotal(item), 0);\n order.itemSubTotal = order.lines.reduce((prev, item) => prev + itemTotal(item), 0);\n order.surchargeSubTotal = order.lines.reduce((prev, item) => prev + surchargeTotal(item), 0);\n order.origSubTotal = order.itemSubTotal + order.itemDiscountSubTotal + order.itemBonusDiscountSubTotal;\n order.subTotal = order.itemSubTotal + order.surchargeSubTotal;\n\n\n if (order.shipments) \n $ctrl.lots = orderLots(order).sort(sortLots);\n\n if ($ctrl.order.is_form222) {\n return ordersService.shippingLabelExists($ctrl.orderId).then(result => {\n if (result.data.exists) {\n return ordersService.getShippingLabel($ctrl.orderId).then(result2 => {\n $ctrl.trackingNumber = result2.data.TrackingNumber;\n $ctrl.shippingLabelBytes = `data:image/gif;base64,${result2.data.Bytes}`;\n $ctrl.shippingLabelExists = true;\n });\n\n } else\n $ctrl.shippingLabelDoesNotExist = true;\n return order;\n });\n } else {\n return order;\n }\n }\n\n $ctrl.canReorder = () => {\n return $ctrl.noReorderReasons.length === 0;\n };\n\n $ctrl.orderAgainClicked = () => {\n ordersService.orderAgain($ctrl.orderId)\n .then(session.cart.refresh)\n .then(() => {\n //$window.ga(\"send\", \"event\", \"Reorder\", \"orderAgainClicked\");\n $location.path(`/checkout/${$ctrl.orderId}`);\n })\n .catch(toast.errorHandler);\n };\n\n function getReorderItemCount(order) {\n return $ctrl.order.lines.reduce((prev, value) => {\n if (value.can_reorder)\n prev = prev + value.quantity;\n return prev;\n }, 0);\n }\n\n $ctrl.certOfAnalClicked = lot => {\n //$window.ga(\"send\", \"event\", \"CertOfAnalysis\", \"certOfAnalysisFromPOClicked\");\n if (lot.has_CoA)\n reportService.getCertificateOfAnalysisRpt(lot.lot_no);\n else\n $location.path(\"/contact\");\n\n };\n\n $ctrl.printE222Form =() => {\n //$window.ga(\"send\", \"event\", \"e222Form\", \"e222FormClicked\");\n\n reportService.getE222Form($ctrl.orderId);\n };\n\n function sortLots(a, b) {\n if (a.lot_no < b.lot_no)\n return -1;\n if (a.lot_no > b.lot_no)\n return 1;\n return 0;\n }\n }\n controller.$inject = [\"$window\", \"$routeParams\", \"$location\", \"sessionService\", \"ordersService\", \"stToastFactory\", \"reportService\"];\n\n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"purchaseOrderProductList\", { // purchase-order-product-list\n bindings: {\n order:\"<\" \n },\n templateUrl: \"src/app/purchaseOrder/purchaseOrderProductList.html\",\n controller: controller\n });\n\n function controller(session) {\n const $ctrl = this;\n $ctrl.session = session;\n }\n controller.$inject = [\"sessionService\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"purchaseOrderProductListItem\", { // purchase-order-product-list-item\n bindings: {\n item: \"<\"\n },\n templateUrl: \"src/app/purchaseOrder/purchaseOrderProductListItem.html\",\n controller: controller\n });\n\n function controller(session) {\n const $ctrl = this;\n }\n controller.$inject = [\"sessionService\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"purchaseOrderShipment\", { // purchase-order-shipment\n bindings: {\n shipment: \"<\" \n },\n templateUrl: \"src/app/purchaseOrder/purchaseOrderShipment.html\",\n controller: controller\n });\n\n function controller($window, session, reportService) {\n const $ctrl = this;\n $ctrl.session = session;\n\n $ctrl.packListClicked = orderId => {\n //$window.ga(\"send\", \"event\", \"PackListReport\", \"packListReportClicked\");\n reportService.getPackListRpt(orderId);\n };\n\n $ctrl.invoiceClicked = orderId => {\n //$window.ga(\"send\", \"event\", \"InvoiceReport\", \"invoiceReportClicked\");\n reportService.getInvoiceRpt(orderId);\n };\n }\n controller.$inject = [\"$window\", \"sessionService\", \"reportService\"];\n \n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"saml\", { // impersonate\n templateUrl: \"src/app/saml/saml.html\",\n controller: controller\n });\n\n function controller($routeParams, $cookies, $location, session, loginModal) {\n const $ctrl = this;\n\n $ctrl.$onInit = () => {\n const token = $routeParams.token;\n $cookies.put(\"stcart\", token);\n session.refresh(true).then(() => {\n\n session.isLoaded = true; // Set this here because overriding the app.run function.\n\n if (!session.customer)\n loginModal(\"chooseCustomer\").then(() => $location.path(\"/\"));\n else\n $location.path(\"/\");\n\n });\n };\n }\n controller.$inject = [\"$routeParams\", \"$cookies\", \"$location\", \"sessionService\", \"loginModal\"];\n \n})()","(function () {\n\t\"use strict\";\n\n\tangular\n\t\t.module(\"app\")\n\t\t.component(\"reports\", { // logged-in-home\n\t\t\ttemplateUrl: \"src/app/reports/reports.html\",\n\t\t\tcontroller: controller\n\t\t});\n\n function controller(session, reportService) {\n\t\tconst $ctrl = this;\n $ctrl.session = session;\n $ctrl.reports = [];\n\n\t $ctrl.$onInit = () => {\n\t reportService.getQuarterlyRpts().then(reports => $ctrl.reports = reports);\n };\n\n $ctrl.openQuarterlyReport = report => {\n reportService.getQuarterlyRpt(report);\n };\n }\n controller.$inject = [\"sessionService\", \"reportService\"];\n\n})()","(function () {\r\n\r\n \"use strict\";\r\n\r\n // Created with \"angular-toastr\": \"1.7.0\"\r\n\r\n angular\r\n .module(\"stToast\", [\r\n \"toastr\"\r\n ])\r\n .factory(\"stToastFactory\", toastFactory);\r\n\r\n function toastFactory(toastr) {\r\n\r\n return {\r\n success: success,\r\n info: info,\r\n error: error,\r\n errorHandler: errorHandler\r\n }\r\n\r\n\r\n function success(title, message) {\r\n toastr.success(message, title, {\r\n allowHtml: true\r\n });\r\n }\r\n\r\n\r\n function info(title, message) {\r\n toastr.info(`${message} (Click this message to close it.)`, title, {\r\n allowHtml: true,\r\n closeButton: true,\r\n autoDismiss: false,\r\n tapToDismiss: true,\r\n hoverToClose: false,\r\n timeOut: 0,\r\n extendedTimeOut: 0\r\n });\r\n }\r\n\r\n function error(title, message) {\r\n toastr.error(`${message} (Click this message to close it.)`, title, {\r\n allowHtml: true,\r\n closeButton: true,\r\n autoDismiss: false,\r\n tapToDismiss: true,\r\n hoverToClose: false,\r\n timeOut: 0,\r\n extendedTimeOut: 0\r\n });\r\n }\r\n\r\n /// error - javascript error - required\r\n /// title - string for title - optional\r\n function errorHandler(err, title) {\r\n if (!err || !err.status) {\r\n console.log(\"stToastFactory.errorHandler called with invalid parameters\", err, title);\r\n return;\r\n }\r\n\r\n if (err.status === 400) {\r\n const tit = title ||\"Information\";\r\n let msg = err.statusText; // data.Message\r\n if (err.data && err.data.Message)\r\n msg = err.data.Message;\r\n console.log(`${tit} ${msg}`, err);\r\n info(tit, msg);\r\n } else {\r\n const tit = title || \"Error\";\r\n const msg = \"Something went wrong and it was logged. If you need further support please contact the help desk.\";\r\n console.log(`${tit} ${msg}`, err);\r\n error(tit, msg);\r\n }\r\n }\r\n\r\n }\r\n\r\n toastFactory.$inject = [\"toastr\"];\r\n\r\n})();","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .service(\"addressService\", service);\n\n function service($http, $q) {\n const self = this;\n self.shippingAddresses = [];\n self.billingAddresses = [];\n self.allDeas = [];\n\n self.refresh = companyId => {\n return $q\n .all([\n self.getShipping(companyId),\n self.getBilling(companyId)\n ])\n .then(([shipping, billing]) => {\n self.shippingAddresses = shipping;\n self.billingAddresses = billing;\n });\n };\n\n self.getBilling = companyId => {\n return getAddresses(companyId, 2);\n };\n\n self.getShipping = companyId => {\n return $q\n .all([\n getAddresses(companyId, 3),\n getDeaNumbers(companyId)\n ])\n .then(([addresses, deas]) => {\n self.allDeas = deas;\n addresses.forEach(a => a.deas = deas.filter(d => d.contact_id === a.contact_id).sort(sortDeas));\n return addresses;\n });\n };\n\n function getAddresses(companyId, contactType) {\n return $http\n .get(`/api/addresses/for-customer/${companyId}/of-type/${contactType}`)\n .then(res => res.data.sort(sortAddresses));\n }\n\n function getDeaNumbers(customerId) {\n return $http.get(`/api/customers/${customerId}/dea-numbers`).then(res => res.data);\n }\n\n self.getShippingByShipDate = (customer_id, ship_from_date, ship_to_date) => {\n return $http\n .post(`/api/addresses/load-shipping-addresses`, { customer_id, ship_from_date, ship_to_date })\n .then(res => res.data.sort(sortAddresses));\n }\n\n self.getShippingByOrderDate = (customer_id, order_from_date, order_to_date) => {\n return $http\n .post(`/api/addresses/shipping-addresses-by-order-date`, { customer_id, order_from_date, order_to_date })\n .then(res => res.data.sort(sortAddresses));\n }\n\n function sortAddresses(a, b) {\n if (`${a.first_name} ${a.last_name}` < `${b.first_name} ${b.last_name}`)\n return -1;\n if (`${a.first_name} ${a.last_name}` > `${b.first_name} ${b.last_name}`)\n return 1;\n return 0;\n }\n\n function sortDeas(a, b) {\n if (a.identification_code < b.identification_code)\n return -1;\n if (a.identification_code > b.identification_code)\n return 1;\n return 0;\n }\n\n }\n service.$inject = [\"$http\", \"$q\"];\n\n})()","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .service(\"cartService\", service);\n\n function service($q, $http) {\n const self = this;\n const maxItemCount = 9999;\n\n self.items = [];\n self.cartId = 0;\n self.itemCount = 0;\n self.rx_cart_qty = 0;\n self.cs_cart_qty = 0;\n self.itemSubTotal = 0;\n self.itemDiscountSubTotal = 0;\n self.itemBonusDiscountSubTotal = 0;\n self.surchargeSubTotal = 0;\n self.origSubTotal = 0;\n self.subTotal = 0;\n self.paymentTerms = \"\";\n self.isCartFull = false;\n self.maxItemCount = maxItemCount;\n self.containsScheduleII = false;\n\n self.shippingMethods = [];\n self.shippingMethod = null;\n\n self.groundShippingMethodId = null;\n self.secondDayShippingMethodId = null;\n\n self.total = null;\n\n self.clear = () => {\n processItems([], true);\n };\n\n self.refresh = () => {\n return $http\n .get(\"/api/carts\")\n .then(res => processItems(res.data, false))\n .then(self.loadShippingMethods)\n .then(() => {\n const groundMethod = self.shippingMethods.find(m => m.shipping_method_desc.toLowerCase() === \"ground\");\n if (groundMethod)\n self.groundShippingMethodId = groundMethod.shipping_method_id;\n else\n self.groundShippingMethodId = null;\r\n\r\n const secondDayMethod = self.shippingMethods.find(m => m.shipping_method_desc.toLowerCase() === \"2nd day\");\n if (secondDayMethod)\n self.secondDayShippingMethodId = secondDayMethod.shipping_method_id;\n else\n self.secondDayShippingMethodId = null;\r\n });\n };\n\n function itemTotal(item) {\n return item.quantity * item.sale_UOM_price;\n }\n\n function itemDiscountTotal(item) {\n return item.incentives.filter(i => i.incentive_type_Code !== \"BDT\").reduce((prev, inc) => prev + inc.discount_amount * item.quantity, 0);\n }\n\n function itemBonusDiscountTotal(item) {\n return item.incentives.filter(i => i.incentive_type_Code === \"BDT\").reduce((prev, inc) => prev + inc.discount_amount * item.quantity, 0);\n }\n\n function surchargeTotal(item) {\n const kitCheck = item.kit_check_surcharge == null ? 0 : item.kit_check_surcharge;\n return item.quantity * kitCheck;\n }\n\n function processItems(items, clearing) {\n self.items = items || [];\n self.itemCount = items.reduce((prev, item) => prev + item.quantity, 0);\n self.itemDiscountSubTotal = self.items.reduce((prev, item) => prev + itemDiscountTotal(item), 0);\n self.itemBonusDiscountSubTotal = self.items.reduce((prev, item) => prev + itemBonusDiscountTotal(item), 0);\n self.itemSubTotal = self.items.reduce((prev, item) => prev + itemTotal(item), 0);\n self.surchargeSubTotal = self.items.reduce((prev, item) => prev + surchargeTotal(item), 0);\n self.origSubTotal = self.itemSubTotal + self.itemDiscountSubTotal + self.itemBonusDiscountSubTotal;\n self.subTotal = self.itemSubTotal + self.surchargeSubTotal;\n if (self.items.length) {\n self.cartId = items[0].cart_id;\n self.paymentTerms = items[0].payment_terms;\n } else {\n self.cartId = 0;\n self.paymentTerms = \"\";\n }\n\n self.isCartFull = self.itemCount >= maxItemCount;\n self.containsScheduleII = self.items.some(i => i.schedule_name === \"Schedule I\" || i.schedule_name === \"Schedule II\" || i.schedule_name === \"Schedule IIN\");\n\n //console.log(\"cart.items\", self.items);\n\n if (!clearing)\n return $http\n .get(\"/api/carts/counts\")\n .then(res => getCartCounts(res.data));\n }\n\n function getCartCounts(data) {\n self.rx_cart_qty = data.rx_qty;\n self.cs_cart_qty = data.cs_qty;\n }\n\n self.loadShippingMethods = (zipCode, shippingContactId) => {\n if (self.cartId === 0) {\n self.shippingCost = null;\n self.shippingMethod = null;\n self.shippingMethods = [];\n } else {\n\n const promises = [\n self.getShippingMethods(zipCode)\n ];\n\n if (zipCode && shippingContactId && self.groundShippingMethodId) \n promises.push(self.getGroundDays(shippingContactId));\n\n return $q.all(promises)\n .then(results => {\n self.shippingMethods = results[0];\n let groundDays = -1;\n if (results.length > 1) {\n if (results[1].success)\r\n groundDays = results[1].groundDays;\r\n }\n\n let method = null;\n let defaultMethod = self.shippingMethods.find(m => m.is_default === \"Y\");\n if (self.shippingMethod)\n method = self.shippingMethods.find(m => m.shipping_method_id === self.shippingMethod.shipping_method_id);\n\n // default to second day for free if the ground freight is over 2 days and if the default is ground.\n if (groundDays > 2 &&\n self.secondDayShippingMethodId &&\n defaultMethod.shipping_method_id === self.groundShippingMethodId &&\n defaultMethod.can_upgrade_to_2ndday) {\n\n const originalDefault = angular.copy(defaultMethod);\n // Un-Default the original default.\n defaultMethod.is_default = \"N\";\n\n // Make second day the new default and free.\n defaultMethod = self.shippingMethods.find(m => m.shipping_method_id === self.secondDayShippingMethodId);\r\n defaultMethod.is_default = \"Y\";\r\n defaultMethod.is_free_available = originalDefault.is_free_available;\r\n defaultMethod.shipping_cost = originalDefault.shipping_cost;\r\n defaultMethod.not_free_message = originalDefault.not_free_message;\r\n }\n\n if (method && defaultMethod) {\n if (method !== defaultMethod)\n method = defaultMethod;\n } else {\n method = defaultMethod;\n }\n self.shippingMethod = method;\n });\n\n //let url = `/api/shipping-methods/${self.cartId}`;\n //if (zipCode)\n // url += `/zip/${zipCode}`;\n\n //$http\n // .get(url)\n // .then(res => self.shippingMethods = res.data)\n // .then(() => {\n // const groundMethod = self.shippingMethods.find(m => m.shipping_method_desc.toLowerCase() === \"ground\");\n // if(groundMethod)\n // self.groundShippingMethodId = groundMethod.shipping_method_id;\n // else \n // self.groundShippingMethodId = null;\n\n\n // let method = null;\n // const defaultMethod = self.shippingMethods.find(m => m.is_default === \"Y\");\n // if (self.shippingMethod)\n // method = self.shippingMethods.find(m => m.shipping_method_id === self.shippingMethod.shipping_method_id);\n\n // if (method && defaultMethod) {\n // if (method !== defaultMethod)\n // method = defaultMethod;\n // } else {\n // method = defaultMethod;\n // }\n // self.shippingMethod = method;\n // });\n }\n\n }\n\n self.getShippingMethods = (zipCode) => {\n let url = `/api/shipping-methods/${self.cartId}`;\n if (zipCode)\n url += `/zip/${zipCode}`;\n return $http\n .get(url)\n .then(res => res.data)\r\n }\n\n self.getGroundDays = (shippingContactId) => {\n let url = `/api/shipping-methods/ground-days`;\n return $http\n .post(url, {\n ShippingMethodId: self.groundShippingMethodId,\n ContactId: shippingContactId,\n SaturdayShipping: false\r\n })\n .then(res => {\r\n const data = res.data;\r\n if (data && data.success)\r\n return data.groundDays;\r\n else\r\n return -1;\r\n });\r\n }\n\n\n self.calculateShipping = (shippingContactId, saturdayShipping) => {\n const request = {\n WrkOrderId: self.shippingMethod.wrk_order_id,\n ShippingMethodId: self.shippingMethod.shipping_method_id,\n ContactId: shippingContactId,\n SaturdayShipping: saturdayShipping\n };\n return $http.post(`/api/shipping-methods/cost`, request)\n .then(result => result.data)\n .then(data => {\n if (data.success) {\n self.shippingMethod.shipping_cost = data.shipping_cost;\n self.shippingMethod.wrk_order_id = data.wrk_order_id;\n } else {\n self.shippingMethod.shipping_cost = null;\n }\n return data;\n });\n };\n\n self.getGroundDays = (shippingContactId, saturdayShipping) => {\n const request = {\n WrkOrderId: self.shippingMethod.wrk_order_id,\n ShippingMethodId: self.shippingMethod.shipping_method_id,\n ContactId: shippingContactId,\n SaturdayShipping: saturdayShipping\n };\n return $http.post(`/api/shipping-methods/ground-days`, request)\n .then(result => result.data)\n .then(data => {\n if (data.success) {\n self.shippingMethod.groundDays = data.groundDays;\n } else {\n self.shippingMethod.groundDays = null;\n }\n return data;\n });\n };\n\n self.total = () => {\n if (self.shippingMethod && self.shippingMethod.shipping_cost != null)\n return self.subTotal + self.shippingMethod.shipping_cost;\n return null;\n }\n\n\n self.addItem = (item) => {\n return self.addItems([item]);\n };\n\n self.addItems = items => {\n return $q\n .all(items.map(addItem))\n .then(() => {\n return self\n .refresh(); // todo: instead of going to the database, could add new item to self.items. But would need more item data.\n });\n };\n\n function addItem(item) {\n\n let quantity = item.quantity;\n if (self.itemCount + quantity > maxItemCount)\n quantity = maxItemCount - self.itemCount;\n\n const req = {\n item_id: item.item_id,\n quantity,\n quantity_uom_code: item.quantity_uom_code,\n kit_check_surcharge: item.kit_check_surcharge\n };\n return $http.post(\"/api/carts/add-item\", req);\n }\n\n self.updateItem = (item_id, new_quantity, quantity_uom_code, kit_check_surcharge) => {\n\n let quantity = new_quantity;\n const existingQuantity = self.items.find(i => i.item_id == item_id && i.sale_UOM == quantity_uom_code).quantity;\n if (quantity > existingQuantity) {\n if (self.itemCount - existingQuantity + quantity > maxItemCount)\n quantity = maxItemCount - (self.itemCount - existingQuantity);\n }\n\n const req = {\n item_id,\n new_quantity: quantity,\n quantity_uom_code,\n kit_check_surcharge\n };\n return $http\n .post(\"/api/carts/update-item\", req)\n .then(() => {\n return self\n .refresh(); // todo: instead of going to the database, could add new item to self.items. But would need more item data.\n });\n };\n\n self.removeItem = (item_id, quantity_uom_code) => {\n const req = {\n item_id,\n quantity_uom_code\n };\n return $http\n .post(\"/api/carts/remove-item\", req)\n .then(() => {\n return self\n .refresh(); // todo: instead of going to the database, could add new item to self.items. But would need more item data.\n });\n };\n\n self.isOrderFormNumberUnique = (buyerDeaNumber, orderFormNumber) => {\n const req = {\n buyer_DEA_number: buyerDeaNumber,\n order_form_number: orderFormNumber\n };\n return $http\n .post(\"/api/orders/order-form-number-search\", req)\n .then(res => res.data);\n };\n\n\n self.createPurchaseOrder = (\n billing_contact_id,\n shipping_contact_id,\n customer_order_no,\n order_name,\n shipping_instructions,\n order_form_number,\n cs_dea_number,\n is_recurring,\n recurring_frequency,\n delivery_contact_phone,\n recur_start_date\n ) => {\n const req = {\n cart_id: self.cartId,\n billing_contact_id,\n shipping_contact_id,\n customer_order_no,\n order_name,\n shipping_instructions,\n shipping_charges: self.shippingMethod.shipping_cost,\n shipping_method_id: self.shippingMethod.shipping_method_id,\n shipping_wrk_order_id: self.shippingMethod.wrk_order_id,\n order_form_number,\n cs_dea_number,\n is_recurring,\n recurring_frequency,\n delivery_contact_phone: delivery_contact_phone,\n recur_start_date\n };\n\n return $http\n .post(\"/api/carts/checkout\", req)\n .then(res => {\n return self\n .refresh()\n .then(() => res.data.order_id);\n });\n };\n\n self.createPurchaseOrderCsos = (\n billing_contact_id,\n shipping_contact_id,\n customer_order_no,\n order_name,\n shipping_instructions,\n certificateDeaNumber,\n certificate_id,\n certificatePassword,\n order_form_number,\n delivery_contact_phone\n ) => {\n const req = {\n cart_id: self.cartId,\n billing_contact_id,\n shipping_contact_id,\n customer_order_no,\n order_name,\n shipping_instructions,\n shipping_charges: self.shippingMethod.shipping_cost,\n shipping_method_id: self.shippingMethod.shipping_method_id,\n shipping_wrk_order_id: self.shippingMethod.wrk_order_id,\n certificate_dea_number: certificateDeaNumber,\n certificate_id: certificate_id,\n certificate_password: certificatePassword,\n order_form_number: order_form_number,\n is_recurring: false,\n recurring_frequency: null,\n delivery_contact_phone: delivery_contact_phone,\n recur_start_date: null\n };\n\n return $http\n .post(\"/api/carts/checkout-csos\", req)\n .then(res => {\n if (res.data.Success) {\n return self\n .refresh()\n .then(() => res.data);\n }\n return res.data;\n });\n };\n\n self.getPurchaseOrder = orderId => {\n return $http\n .get(`/api/carts/purchase-orders/${orderId}`)\n .then(res => {\n const po = res.data.detail;\n po.lines = res.data.lines;\n po.shipments = res.data.shipments;\n\n po.itemCount = po.lines.reduce((prev, item) => prev + item.quantity, 0);\n\n po.total = po.order_line_total_amount + po.shipping_charges;\n\n return po;\n });\n };\n }\n\n service.$inject = [\"$q\", \"$http\"];\n\n})();","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .service(\"certificatesService\", service);\n\n function service($http) {\n const self = this;\n self.isLoading = false;\n self.certificates = [];\n\n self.refresh = () => {\n self.isLoading = true;\n return $http\n .get(\"/api/csos-certificates/\")\n .then(result => {\n self.certificates = result.data;\n })\n .finally(() => self.isLoading = false);\n };\n\n self.deleteCertificate = (certificate_id) => {\n self.isLoading = true;\n return $http\n .delete(`/api/csos-certificates/${certificate_id}`)\n .then(result => {\n const index = self.certificates.findIndex(c => c.certificate_id === certificate_id);\n if(index !== -1)\n self.certificates.splice(index, 1);\n })\n .finally(() => self.isLoading = false);\n };\n }\n service.$inject = [\"$http\"];\n \n})()","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .service(\"customersService\", service);\n\n function service($http) {\n const self = this;\n\n self.search = company_name => $http.post(\"/api/customers/search\", JSON.stringify(company_name)).then(res => res.data);\n }\n service.$inject = [\"$http\"];\n\n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .service(\"lookupsService\", service);\n\n function service($http) {\n const self = this;\n\n let orderStatusesPromise;\n self.getOrderStatuses = () => orderStatusesPromise || (orderStatusesPromise = $http.get('/api/lookups/orderstatuses').then(result => result.data.orderBy('Description')));\n }\n service.$inject = [\"$http\"];\n \n})()","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .service(\"ordersService\", service);\n\n function service($http) {\n const self = this;\n\n self.searchCriteria = {\n customer_id: null,\n company_name: null,\n order_id: null,\n customer_order_no: null,\n order_from_date: null,\n order_to_date: null,\n item_id: null,\n shipping_contact_id: null,\n order_name: null,\n order_status: null,\n order_create_user: null\n };\n\n self.hasSearched = false;\n\n self.searchResults = [];\n\n self.total = () => self.searchResults.reduce((total, order) => total + order.order_total, 0);\n\n self.canSearch = () => {\n const sc = self.searchCriteria;\n return sc.order_id ||\n sc.customer_order_no ||\n (sc.order_from_date && sc.order_to_date);\n }\n\n self.search = () => {\n self.searchResults = [];\n self.hasSearched = false;\n\n // remove time from dates due to timezone\n const request = angular.copy(self.searchCriteria);\n if (request.order_from_date) request.order_from_date = moment(request.order_from_date).format(\"MM/DD/YYYY\");\n if (request.order_to_date) request.order_to_date = moment(request.order_to_date).format(\"MM/DD/YYYY\");\n\n return $http\n .post(`/api/orders/search`, request)\n .then(result => {\n self.searchResults = result.data;\n self.hasSearched = true;\n });\n };\n\n self.orderAgain = orderId => {\n return $http.post(`/api/orders/${orderId}/order-again`);\n };\n\n self.shippingLabelExists = orderId => {\n return $http.get(`/api/shipping-labels/${orderId}/exists/`);\n };\n\n self.getShippingLabel = orderId => {\n return $http.get(`/api/shipping-labels/${orderId}/`);\n };\n\n self.clear = () => {\n Object.keys(self.searchCriteria).forEach(key => self.searchCriteria[key] = null);\n self.searchCriteria.order_from_date = moment().subtract(45, \"days\").startOf(\"day\").toDate();\n self.searchCriteria.order_to_date = moment().startOf(\"day\").toDate();\n self.searchResults = [];\n self.hasSearched = false;\n }\n\n self.clear(); // set defaults\n }\n service.$inject = [\"$http\"];\n\n})()","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .service(\"productsService\", service);\n\n function service($http, $q) {\n const self = this;\n\n self.searchCriteria = {\n searchText: null,\n classId: null,\n cs: false\n };\n self.hasSearchCriteria = () => {\n if (self.searchCriteria.searchText != null && self.searchCriteria.searchText.length > 0)\n return true;\n\n if (self.searchCriteria.classId != null)\n return true;\n\n if (self.searchCriteria.cs)\n return true;\n\n return false;\n };\n //self.classifications = [];\n self.productNames = [];\n self.hasCs = false;\n self.searchResults = [];\n self.isSearching = false;\n self.allProducts = [];\n\n self.refresh = () => {\n return $q.all([\n self.getAll(),\n self.loadProductNames(),\n //self.loadClassifications(true)\n ]).then(([allProducts]) => {\n self.allProducts = allProducts;\n });\n };\n\n\n self.loadProductNames = () => {\n return $q.all([\n $http.get(`/api/products/names-for-customer`),\n $http.post(`/api/products/has-cs`)\n ]).then(results => {\n self.productNames = results[0].data.sort();\n self.hasCs = results[1].data.has_cs;\n });\n };\n\n //let loadClassificationsPromise;\n //self.loadClassifications = updateCache => {\n // if (!loadClassificationsPromise || updateCache)\n // loadClassificationsPromise =\n // self.getClassifications()\n // .then(result => self.classifications = result)\n // .catch(err => {\n // loadClassificationsPromise = null; // make sure next call to getCurrentUser() isn't getting a cached failure\n // return $q.reject(err);\n // });\n\n // return loadClassificationsPromise;\n //}\n\n \n\n self.getClassification = class_id => {\n if (self.classifications.length) {\n const classification = self.classifications.find(c => c.class_id == class_id);\n return $q.resolve(classification);\n } else {\n return self.loadClassifications()\n .then(() => {\n const classification = self.classifications.find(c => c.class_id == class_id);\n return classification;\n });\n }\n };\n\n self.search = () => {\n self.searchResults = [];\n self.isSearching = true;\n const request = {\n searchText: self.searchCriteria.searchText,\n classId: self.searchCriteria.classId\n };\n return $http\n .post(`/api/products/search`, request)\n .then(result => {\n const groups = result.data.sort(sortGroups);\n groups.forEach(g => g.items.sort(sortProducts));\n self.searchResults = groups;\n })\n .finally(() => self.isSearching = false);\n };\n\n self.searchAll = () => {\n self.searchResults = [];\n self.isSearching = true;\n const request = {\n searchText: self.searchCriteria.searchText,\n classId: self.searchCriteria.classId\n };\n return $http\n .post(`/api/products/search-all`, request)\n .then(result => {\n const groups = result.data.sort(sortGroups);\n groups.forEach(g => g.items.sort(sortProducts));\n self.searchResults = groups;\n })\n .finally(() => self.isSearching = false);\n };\n\n self.getAll = () => {\n const request = {\n searchText: null,\n classId: null\n };\n return $http\n .post(`/api/products/search-all`, request)\n .then(result => {\n return result.data.reduce((prev, curr) => prev.concat(curr.items), []);\n });\n };\n\n\n\n\n\n self.getClassifications = () => {\n return $http.get(\"/api/products/classifications\")\n .then(result => result.data.sort(sortClassifications));\n };\n\n self.getAllGrouped = () => {\n const request = {\n searchText: null,\n classId: null\n };\n return $http\n .post(`/api/products/search-all`, request)\n .then(result => result.data);\n };\n\n self.getAllClassifications = () => {\n const request = {\n searchText: null,\n classId: null\n };\n return $http\n .post(\"/api/products/all-classifications\", request)\n .then(result => result.data.sort(sortClassifications));\n };\n\n\n\n\n\n self.get = itemId => $http.get(`/api/products/${itemId}`).then(res => res.data);\n\n self.getForCustomer = customerId => $http.get(`/api/products/for-customer/${customerId ? customerId : \"\"}`).then(res => res.data);\n\n self.getForUnexpectedReceive = () => $http.get(`/api/products/for-unexpected-receive`).then(res => res.data);\n\n self.clear = () => {\n self.searchCriteria.searchText = null;\n self.searchCriteria.classId = null;\n self.productNames = [];\n self.classifications = [];\n self.searchResults = [];\n }\n\n function sortGroups(a, b) {\n return a.display_group_id - b.display_group_id;\n }\n\n function sortProducts(a, b) {\n if (a.full_description < b.full_description)\n return -1;\n if (a.full_description > b.full_description)\n return 1;\n return 0;\n }\n\n function sortClassifications(a, b) {\n if (a.class_name < b.class_name)\n return -1;\n if (a.class_name > b.class_name)\n return 1;\n return 0;\n }\n }\n service.$inject = [\"$http\", \"$q\"];\n\n})()","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .service(\"receivesService\", service);\n\n function service($http, $q) {\n const self = this;\n\n self.searchPending = () => {\n return $http.post(`/api/receives/search-pending`).then(res => res.data);\n }\n\n self.searchHistorical = (from, to) => {\n const req = {\n from,\n to\n };\n return $http.post(`/api/receives/search-historical`, req).then(res => res.data);\n }\n\n self.create = req => {\n //const req = {\n // receive_date, \n // order_id,\n // item_id,\n // quantity_received,\n // quantity_UOM,\n // lot_no,\n // notes \n //};\n return $http.post(`/api/receives`, req).then(res => res.data);\n }\n\n self.cancel = order_receive_id => {\n const req = {\n order_receive_id\n };\n return $http.post(`/api/receives/cancel`, req).then(res => res.data);\n }\n\n self.uncancel = order_receive_id => {\n const req = {\n order_receive_id\n };\n return $http.post(`/api/receives/uncancel`, req).then(res => res.data);\n }\n }\n service.$inject = [\"$http\", \"$q\"];\n\n})()","(function () {\r\n\t\"use strict\";\r\n\r\n\tangular\r\n\t\t.module(\"app\")\r\n\t\t.service(\"reportService\", service);\r\n\r\n\tfunction service($http) {\r\n\t\tconst self = this;\t\t\r\n\r\n const ie = navigator.userAgent.match(/Edge|\\.NET|MSIE/g);\r\n\r\n\t self.getProductUtilizationSearch = (searchRequest) => {\r\n\t return $http\r\n\t .post(`api/reports/product-utilization-report`, searchRequest)\r\n\t .then(res => res.data);\r\n\t };\r\n\r\n\t self.getCertificateOfAnalysisRpt = lotNo => {\r\n\t const popup = createPopup(`Certificate Of Analysis - ${lotNo}`);\r\n\r\n\t return $http.get(`/api/reports/certificate-of-analysis-report/${lotNo}`,\r\n\t { responseType: \"arraybuffer\" } /*This is important to open the pdf*/)\r\n\t .then(result => openReport(result.data, `${lotNo}.pdf`, popup))\r\n\t .catch(err => handleError(popup, err));\r\n };\r\n\r\n self.getQuarterlyRpts = () => {\r\n\t return $http\r\n .get(`api/reports/quarterly`)\r\n\t .then(res => res.data);\r\n\t };\r\n\r\n\t self.getQuarterlyRpt = report => {\r\n const popup = createPopup(`Quarterly - ${report.the_quarter}`);\r\n\r\n return $http.get(`/api/reports/quarterly/${report.the_quarter}`,\r\n\t { responseType: \"arraybuffer\" } /*This is important to open the pdf*/)\r\n\t .then(result => openReport(result.data, `${report.upd_file_name}`, popup))\r\n\t .catch(err => handleError(popup, err));\r\n\t };\r\n\r\n\t self.getPackListRpt = orderId => {\r\n\t const popup = createPopup(`Pack List - ${orderId}`);\r\n\r\n\t return $http.get(`/api/reports/pack-list/${orderId}`,\r\n\t { responseType: \"arraybuffer\" } /*This is important to open the pdf*/)\r\n\t .then(result => openReport(result.data, `${orderId}.pdf`, popup))\r\n\t .catch(err => handleError(popup, err));\r\n\t };\r\n\r\n\t self.getInvoiceRpt = orderId => {\r\n\t const popup = createPopup(`Invoice - ${orderId}`);\r\n\r\n\t return $http.get(`/api/reports/invoice/${orderId}`,\r\n\t { responseType: \"arraybuffer\" } /*This is important to open the pdf*/)\r\n\t .then(result => openReport(result.data, `${orderId}.pdf`, popup))\r\n\t .catch(err => handleError(popup, err));\r\n\t };\r\n\r\n\t self.getE222Form = orderId => {\r\n\t const popup = createPopup(`Invoice - ${orderId}`);\r\n\r\n\t return $http.get(`/api/reports/e222Form/${orderId}`,\r\n\t { responseType: \"arraybuffer\" } /*This is important to open the pdf*/)\r\n\t .then(result => openReport(result.data, `${orderId}.pdf`, popup))\r\n\t .catch(err => handleError(popup, err));\r\n\t };\r\n\r\n function createPopup(title) {\r\n let popup = undefined;\r\n if (!ie) {\r\n popup = window.open(\"\", title);\r\n popup.document.body.append(popup.document.createElement('div').innerHtml = 'Loading...');\r\n }\r\n return popup;\r\n }\r\n\r\n function openReport(data, filename, popup) {\r\n const file = new Blob([data], { type: \"application/pdf\" });\r\n const fileUrl = URL.createObjectURL(file);\r\n \r\n if (ie) {\r\n window.navigator.msSaveBlob(file, filename);\r\n } else {\r\n popup.location.href = fileUrl;\r\n }\r\n } \r\n\r\n function handleError(popup, err) {\r\n if (popup) popup.close();\r\n throw err;\r\n }\r\n\t}\r\n\tservice.$inject = [\"$http\"];\r\n\r\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .service(\"sessionService\", service);\r\n\r\n function service($http, $q, $cookies, $location, productsService, cartService, addressService, ordersService, customersService, certificatesService) {\r\n const self = this;\r\n self.newVersionAvailable = false;\r\n self.isLoaded = false;\r\n self.isLoggedIn = false;\r\n self.user = null;\r\n self.customer = null;\r\n self.cartTypeCode = null;\r\n\r\n self.allProductsGrouped = [];\r\n self.allProducts = [];\r\n self.classifications = [];\r\n self.productNames = [];\r\n self.incentives = [];\r\n\r\n self.products = productsService;\r\n self.cart = cartService;\r\n self.addresses = addressService;\r\n self.customers = customersService;\r\n self.certificates = certificatesService;\r\n\r\n self.refresh = updateCache => self.getCurrentUser(updateCache);\r\n\r\n\r\n function mainLoad() {\r\n return $q.all([\r\n productsService.getAllGrouped(),\r\n productsService.getAllClassifications()\r\n ]).then(([productsGrouped, classifications]) => {\r\n self.allProductsGrouped = productsGrouped;\r\n self.allProducts = productsGrouped.reduce((prev, curr) => prev.concat(curr.items), []);\r\n self.productNames = self.allProducts.reduce((prev, curr) => prev.concat(curr.full_description), []);\r\n self.classifications = classifications;\r\n\r\n\r\n self.incentives = [];\r\n self.allProducts.forEach(p => {\r\n p.incentives.forEach(i => {\r\n const existingI = self.incentives.find(si => si.incentive_id === i.incentive_id);\r\n if (!existingI) {\r\n self.incentives.push({\r\n incentive_id: i.incentive_id,\r\n incentive_name: i.incentive_name,\r\n incentive_description_html: i.incentive_description_html,\r\n incentive_type: i.incentive_type,\r\n items: [\r\n {\r\n item_id: i.item_id,\r\n item_html: i.item_html,\r\n item_suggest_html: i.item_suggest_html,\r\n discount_amount: i.discount_amount,\r\n sale_UOM_price: p.sale_UOM_price,\r\n full_description: p.full_description,\r\n sale_UOM_desc: p.sale_UOM_desc\r\n }]\r\n });\r\n } else {\r\n if (!existingI.items.some(ei => ei.item_id === i.item_id))\r\n existingI.items.push({\r\n item_id: i.item_id,\r\n item_html: i.item_html,\r\n item_suggest_html: i.item_suggest_html,\r\n discount_amount: i.discount_amount,\r\n sale_UOM_price: p.sale_UOM_price,\r\n full_description: p.full_description,\r\n sale_UOM_desc: p.sale_UOM_desc\r\n });\r\n }\r\n });\r\n });\r\n\r\n // Check out this hack! LOL\r\n const inhalationClassification = classifications.find(c => c.class_id === 6);\r\n if (inhalationClassification) {\r\n const inhalationGroup = self.allProductsGrouped.find(g => g.display_group_id === 4);\r\n if (inhalationGroup)\r\n inhalationGroup.add_header_html = inhalationClassification.add_header_html;\r\n }\r\n\r\n\r\n //console.log(\"session.allProductsGrouped\", self.allProductsGrouped);\r\n //console.log(\"session.allProducts\", self.allProducts);\r\n //console.log(\"session.productNames\", self.productNames);\r\n //console.log(\"session.classifications\", self.classifications);\r\n //console.log(\"session.incentives\", self.incentives);\r\n //console.log(\"session.customer\", self.customer);\r\n });\r\n }\r\n\r\n self.filteredProducts = () => {\r\n if (!productsService.searchCriteria.searchText.length)\r\n return self.allProductsGrouped;\r\n\r\n return [\r\n {\r\n display_group: `Search Results for `,\r\n display_group_id: 1,\r\n items: self.allProducts\r\n }\r\n ];\r\n };\r\n\r\n\r\n let currentUserPromise;\r\n self.getCurrentUser = updateCache => {\r\n if (!currentUserPromise || updateCache)\r\n currentUserPromise =\r\n $http.get(\"/api/users/current\")\r\n .then(result => {\r\n const user = result.data;\r\n\r\n if (user == null || !self.customer || self.customer.customer_id != user.customer_id)\r\n return self.setUser(user).then(() => user);\r\n\r\n if (!self.cartTypeCode || self.cartTypeCode != user.cart_type_code)\r\n return self.setCartType(user.cart_type_code).then(() => user);\r\n\r\n return $q.resolve(user);\r\n })\r\n .catch(err => {\r\n currentUserPromise = null; // make sure next call to getCurrentUser() isn't getting a cached failure\r\n return $q.reject(err);\r\n });\r\n\r\n return currentUserPromise;\r\n }\r\n\r\n self.setUser = user => {\r\n let customer = null;\r\n\r\n if (user) {\r\n self.user = user;\r\n const customerId = user.customer_id;\r\n\r\n if (customerId)\r\n customer = self.user.customers.find(c => c.customer_id === customerId);\r\n\r\n if (!customer && self.user.customers.length === 1)\r\n customer = self.user.customers[0];\r\n } else {\r\n $cookies.remove(\"stcart\");\r\n self.user = null;\r\n }\r\n\r\n return self.setCustomer(customer, user.cart_type_code);\r\n }\r\n\r\n self.setCustomer = (customer, cartTypeCode) => {\r\n const customerId = customer ? customer.customer_id : null;\r\n const req = {\r\n company_id: customerId // insert emoji of banging head on desk\r\n };\r\n return $http\r\n .post(\"/api/security/session-company\", req)\r\n .then(() => {\r\n if (customerId) {\r\n self.customer = customer;\r\n mainLoad();\r\n\r\n addressService.refresh(customerId); // dont think we need to wait on this.\r\n certificatesService.refresh(); // dont think we need to wait on this.\r\n return self.setCartType(cartTypeCode || self.cartTypeCode);\r\n } else {\r\n self.customer = null;\r\n return self.setCartType(null);\r\n }\r\n });\r\n };\r\n\r\n self.setCartType = cartTypeCode => {\r\n productsService.clear();\r\n productsService.isSearching = true; // keeps the search ui clean when changing customers.\r\n cartService.clear();\r\n ordersService.clear();\r\n\r\n const req = {\r\n cart_type_code: cartTypeCode\r\n };\r\n return $http\r\n .post(\"/api/security/session-cart-type\", req)\r\n .then(() => {\r\n if (cartTypeCode) {\r\n self.cartTypeCode = cartTypeCode;\r\n return $q.all([\r\n productsService.refresh(),\r\n cartService.refresh()\r\n ]).then(() => {\r\n self.isLoggedIn = true;\r\n });\r\n } else {\r\n self.isLoggedIn = false;\r\n self.cartTypeCode = null;\r\n }\r\n });\r\n }\r\n\r\n self.logOut = () => {\r\n return $http\r\n .post(\"/api/security/logout\")\r\n .then(() => self.refresh(true));\r\n };\r\n\r\n self.login = request => {\r\n return $http\r\n .post(\"/api/security/login\", request)\r\n .then(result => {\r\n if (result.data.logged_in) {\r\n $cookies.put(\"stcart\", result.data.token);\r\n return self.refresh(true).then(() => result.data);\r\n }\r\n return result.data;\r\n });\r\n };\r\n\r\n self.gotoProductSearch = () => {\r\n const path = `/product-search/${cleanSearchText(productsService.searchCriteria.searchText)}/`;\r\n $location.path(path);\r\n };\r\n\r\n self.gotoCart = () => {\r\n const path = `cart/`;\r\n $location.path(path);\r\n };\r\n\r\n self.backToSearchResults = () => {\r\n if (productsService.searchCriteria.searchText) {\r\n self.gotoProductSearch();\r\n } else if (productsService.searchCriteria.classId) {\r\n $location.path(`/product-class/${productsService.searchCriteria.classId}`);\r\n } else {\r\n $location.path(\"/\");\r\n }\r\n };\r\n\r\n function cleanSearchText(value) {\r\n // get rid of / . @\r\n return value.replace(/[\\\\\\/.@#]/g, \"\");\r\n }\r\n }\r\n service.$inject = [\"$http\", \"$q\", \"$cookies\", \"$location\", \"productsService\", \"cartService\", \"addressService\", \"ordersService\", \"customersService\", \"certificatesService\"];\r\n\r\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"stSecurity\", [\"ngCookies\"])\r\n .constant(\"AUTH_EVENTS\", {\r\n notAuthenticated: \"auth-not-authenticated\",\r\n notAuthorized: \"auth-not-authorized\"\r\n })\r\n .factory(\"stHttpInterceptor\", stHttpInterceptor)\r\n .factory(\"stAuthFactory\", authFactory)\r\n .factory(\"stUtilsFactory\", utilsFactory)\r\n .config(config);\r\n\r\n\r\n function config($httpProvider) {\r\n $httpProvider.interceptors.push(\"stHttpInterceptor\");\r\n }\r\n config.$inject = [\"$httpProvider\"];\r\n\r\n\r\n function stHttpInterceptor($q, $rootScope, $injector, utils, AUTH_EVENTS) {\r\n let $http, loginModal; // need to get at runtime to avoid circular dependency\r\n return {\r\n 'request': config => {\r\n const token = utils.token();\r\n if (token) {\r\n config.headers.Authorization = `${token}`;\r\n }\r\n\r\n return config || $q.when(config);\r\n },\r\n 'responseError': response => {\r\n if (response.status === 401) {\r\n $http = $http || $injector.get(\"$http\");\r\n loginModal = loginModal || $injector.get(\"loginModal\");\r\n return loginModal().then(() => $http(response.config));\r\n }\r\n\r\n if (response.status === 403) {\r\n $rootScope.$broadcast(AUTH_EVENTS.notAuthorized);\r\n }\r\n\r\n return $q.reject(response);\r\n }\r\n };\r\n }\r\n stHttpInterceptor.$inject = [\"$q\", \"$rootScope\", \"$injector\", \"stUtilsFactory\", \"AUTH_EVENTS\"];\r\n\r\n\r\n function authFactory($http, $location, $cookies, utils) {\r\n return {\r\n session: () => {\r\n const token = utils.token();\r\n return $http.get(`/api/security/session/${token}/`);\r\n },\r\n authorize: abilities => {\r\n const token = utils.token();\r\n return $http.post(\"/api/users/authorize\", { token, abilities });\r\n }\r\n };\r\n }\r\n authFactory.$inject = [\"$http\", \"$location\", \"$cookies\", \"stUtilsFactory\", \"userFactory\"];\r\n\r\n\r\n function utilsFactory($cookies) {\r\n return {\r\n token: () => $cookies.get(\"stcart\")\r\n };\r\n }\r\n utilsFactory.$inject = [\"$cookies\"];\r\n\r\n})();","class Utils {\r\n static $inject = ['$filter'];\r\n\r\n /**\r\n * @param {ng.IFilterService} $filter\r\n */\r\n constructor($filter) {\r\n const orderBy = $filter('orderBy');\r\n\r\n Array.prototype.orderBy = function (expression, reverse, comparator) {\r\n return orderBy(this, expression, reverse, comparator);\r\n }\r\n\r\n Array.prototype.groupBy = function (prop) {\r\n return this.reduce(function (groups, item) {\r\n var val = item[prop];\r\n groups[val] = groups[val] || [];\r\n groups[val].push(item);\r\n return groups;\r\n }, {});\r\n }\r\n\r\n // used by working directive\r\n angular.element.prototype.closest = function closest(selector) {\r\n if (selector && selector.length) {\r\n const startChar = selector.substring(0, 1);\r\n switch (startChar) {\r\n case '.':\r\n return this.hasClass(selector.substring(1, selector.length)) ? this : (this.parent().length ? this.parent().closest(selector) : this.parent());\r\n\r\n case '#':\r\n return selector.substring(1, selector.length) == this[0].id ? this : (this.parent().length ? this.parent().closest(selector) : this.parent());\r\n\r\n default: //tagname\r\n return (this[0].tagName && selector.toLowerCase() == this[0].tagName.toLowerCase()) ? this : (this.parent().length ? this.parent().closest(selector) : this.parent());\r\n }\r\n }\r\n else {\r\n return this.parent();\r\n }\r\n }\r\n }\r\n}\r\n\r\nangular\r\n .module('app')\r\n .service('utils', Utils)\r\n .run(['utils', utils => { }]); // instantiate the service so the constructor runs and creates the Array functions","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .component(\"shippingLabel\", { // shipping-label\r\n templateUrl: \"src/app/shippingLabel/shippingLabel.html\",\r\n controller: controller\r\n });\r\n\r\n function controller($routeParams, session, ordersService) {\r\n const $ctrl = this;\r\n $ctrl.session = session;\r\n $ctrl.orderId = $routeParams.orderId;\r\n $ctrl.shippingLabelBytes = \"\";\r\n\r\n $ctrl.$onInit = () => {\r\n return ordersService.getShippingLabel($ctrl.orderId).then(result => {\r\n $ctrl.shippingLabelBytes = `data:image/gif;base64,${result.data.Bytes}`;\r\n });\r\n };\r\n }\r\n controller.$inject = [\"$routeParams\", \"sessionService\", \"ordersService\"];\r\n\r\n})()","(function(){\n \"use strict\";\n \n angular\n .module(\"app\")\n .component(\"sideNav\", { // side-nav\n templateUrl: \"src/app/sideNav/sideNav.html\",\n controller: controller\n });\n\n function controller($window, $location, $analytics, session, CART_TYPE_CODE) {\n const $ctrl = this;\n $ctrl.session = session;\n $ctrl.CART_TYPE_CODE = CART_TYPE_CODE;\n\n $ctrl.reorderClicked = () => {\n //$window.ga(\"send\", \"event\", \"Reorder\", \"sideNavReorderClicked\");\n $analytics.eventTrack(\"Click\", { category: \"Reorder\", label: \"Left Nav\" });\n $location.path(`/orders/`);\n };\n\n $ctrl.productSelected = (cartTypeCode, classId) => {\n\n if (cartTypeCode == null) {\n session.products.searchCriteria.cs = false;\n session.products.searchCriteria.classId = classId;\n } else {\n session.products.searchCriteria.cs = cartTypeCode === CART_TYPE_CODE.CSOS;\n session.products.searchCriteria.classId = null;\n }\n \n //session.products.searchCriteria.searchText = \"\";\n //session.gotoProductSearch();\n //session\n // .setCartType(cartTypeCode)\n // .then(() => {\n // session.products.searchCriteria.searchText = \"\";\n // session.gotoProductSearch();\n // });\n };\n\n $ctrl.isRxLoc = () => {\n return session.products.searchCriteria.cs === false && session.products.searchCriteria.classId == null;\n //return session.cartTypeCode === CART_TYPE_CODE.RX && !$location.path().contains('product-class') && !$location.path().contains('product-detail');\n };\n\n $ctrl.isCsLoc = () => {\n return session.products.searchCriteria.cs === true && session.products.searchCriteria.classId == null;\n //return session.cartTypeCode === CART_TYPE_CODE.CSOS && !$location.path().contains('product-class') && !$location.path().contains('product-detail');\n };\n\n $ctrl.isClassificationLoc = (classId) => {\n return session.products.searchCriteria.cs === false && session.products.searchCriteria.classId === classId;\n //return $location.path().contains(`product-class/${ classification }`);\n };\n }\n controller.$inject = [\"$window\", \"$location\", \"$analytics\", \"sessionService\", \"CART_TYPE_CODE\"];\n \n})()","(function () {\n \"use strict\";\n\n angular\n .module(\"app\")\n .component(\"twoFactorSetup\", { // two-factor-setup\n templateUrl: \"src/app/twoFactorSetup/twoFactorSetup.html\",\n controller: controller\n });\n\n function controller($http, toast) {\n const $ctrl = this;\n $ctrl.form = {\n barcodeUri: \"\",\n verifyKey: \"\",\n verifyMsg: \"\"\n };\n $ctrl.ui = {\n state: \"setup\",\n loading: true,\n busy: false,\n verified: false,\n canVerify: () => {\n return !$ctrl.ui.busy && $ctrl.form.verifyKey && ($ctrl.form.verifyKey.length > 3) && !$ctrl.ui.verified;\n },\n canSave: () => {\n return !$ctrl.ui.busy && $ctrl.ui.verified;\n },\n canDisableTwoFactor: () => {\n return !$ctrl.ui.busy;\n }\n };\n\n $ctrl.$onInit = () => {\n // get qr code\n $http\n .get(\"/api/security/two-factor-setup\")\n .then(result => {\n const data = result.data;\n $ctrl.form.barcodeUri = data.barcodeUri;\n if (data.is_2_factor_enabled)\n $ctrl.ui.state = \"turnOff\";\n })\n .catch(toast.errorHandler)\n .finally(() => $ctrl.ui.loading = false);\n };\n\n $ctrl.verifyClicked = () => {\n $ctrl.ui.busy = true;\n $ctrl.form.verifyMsg = \"\";\n $http\n .post(\"/api/security/two-factor-verify\", { key: $ctrl.form.verifyKey })\n .then(result => {\n const data = result.data;\n $ctrl.form.verifyMsg = data.reason;\n\n if (data.success)\n $ctrl.ui.verified = true;\n })\n .catch(toast.errorHandler)\n .finally(() => $ctrl.ui.busy = false);\n };\n\n $ctrl.saveClicked = () => {\n $ctrl.ui.busy = true;\n $http\n .post(\"/api/security/two-factor-enable\")\n .then(result => {\n toast.success(\"Two Factor Setup\", \"Two factor has been enabled.\");\n $ctrl.ui.state = \"turnOff\";\n })\n .catch(toast.errorHandler)\n .finally(() => $ctrl.ui.busy = false);\n };\n\n $ctrl.disableTwoFactorClicked = () => {\n $ctrl.ui.busy = true;\n $http\n .post(\"/api/security/two-factor-disable\")\n .then(() => {\n $ctrl.ui.loading = true;\n $ctrl.ui.verified = false;\n $ctrl.form.verifyKey = \"\";\n\n $http\n .get(\"/api/security/two-factor-setup\")\n .then(result => {\n const data = result.data;\n $ctrl.form.barcodeUri = data.barcodeUri;\n toast.success(\"Two Factor Setup\", \"Two factor has been disabled.\");\n $ctrl.ui.state = \"setup\";\n })\n .catch(toast.errorHandler)\n .finally(() => $ctrl.ui.loading = false);\n })\n .catch(toast.errorHandler)\n .finally(() => $ctrl.ui.busy = false);\n };\n }\n controller.$inject = [\"$http\", \"stToastFactory\"];\n\n})()","(function () {\r\n \"use strict\";\r\n\r\n angular\r\n .module(\"app\")\r\n .directive(\"intOnly\", d);\r\n\r\n function d() {\r\n const MAX_SIGNED_INT = 2147483647;\r\n return {\r\n require: \"ngModel\",\r\n link: function (scope, element, attrs, ngModelCtrl) {\r\n if (!ngModelCtrl) {\r\n return;\r\n }\r\n\r\n ngModelCtrl.$parsers.push(function (val) {\r\n // return value is what ng-model is set to\r\n if (angular.isUndefined(val)) {\r\n val = \"\";\r\n }\r\n\r\n let clean = val.toString().replace(/[^0-9]/g, \"\");\r\n\r\n if (val.length && val.startsWith(\"-\") && attrs[\"allowNegative\"])\r\n clean = \"-\" + clean;\r\n\r\n if (clean === \"-\") {\r\n if (val !== \"-\") {\r\n ngModelCtrl.$setViewValue(clean); // leave \"-\" in the view\r\n ngModelCtrl.$render();\r\n }\r\n return \"\"; // no value for ng-model\r\n }\r\n\r\n clean = parseInt(clean);\r\n if (isNaN(clean))\r\n clean = \"\";\r\n else if (clean > MAX_SIGNED_INT)\r\n clean = ngModelCtrl.$modelValue; // use previous good value\r\n\r\n if (val !== clean.toString()) {\r\n ngModelCtrl.$setViewValue(clean);\r\n ngModelCtrl.$render();\r\n }\r\n\r\n return clean;\r\n });\r\n\r\n element.bind(\"keypress\", function (event) {\r\n if (event.keyCode === 32) {\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n };\r\n }\r\n d.$inject = [];\r\n\r\n})()","(function () {\r\n \"use strict\";\r\n\r\n ////////\r\n // Put this on the modal header\r\n //